1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-02-02 19:56:13 +01:00

29626 Commits

Author SHA1 Message Date
Michał Janiszewski
dae57fccf6 Release v0.4.31
- Feature: [#25844] The sprite builder now also supports adding JSON-based palettes.
- Improved: [#3788] Self-intersecting track designs can now be placed.
- Improved: [#25719] The weather change dropdown now shows icons next to the weather types for easier selection.
- Improved: [#25765] The ‘View options’ and ‘Special track elements’ dropdowns no longer need click-and-hold.
- Improved: [#25858] macOS now supports the onboarding menu.
- Improved: [#25882] Maze construction now auto-removes trees.
- Improved: [objects#421] The vehicle tab of some rides now shows more of the vehicle.
- Change: [#25018] Add upkeep cost to booster pieces.
- Fix: [#4643, #25167] Many metal supports draw with a filled in top when they didn’t in vanilla, causing some slight misalignment and glitching.
- Fix: [#15009] Landscaping tools do not display estimates when the game is paused (original bug).
- Fix: [#18441] Replacing footpaths sometimes results in a spurious “Footpath in the way” error (original bug).
- Fix: [#20620] In-game console caret does not update when pasting.
- Fix: [#20652] Twister Roller Coaster design ‘u(0241)’ has no preview and cannot be built (bug in track design).
- Fix: [#23859] Wrong banner text displayed after loading a different park.
- Fix: [#25221] When trying to cancel game file discovery, the prompt reappears.
- Fix: [#25703, #25889] Crash when scanning scenarios with packed objects in parallel.
- Fix: [#25739] Game freezes when a tab in the New Ride window contains more than 384 items.
- Fix: [#25745] Crash when a player connection is aborted early.
- Fix: [#25775] Network download sizes are in bytes instead of the listed kibibytes.
- Fix: [#25799] The animated options tab icon of the news window does not always redraw.
- Fix: [#25850] Guests do not have their happiness penalised by low energy, high hunger, high thirst, high toilet.
- Fix: [#25850] Ride nausea generation is different compared to vanilla.
- Fix: [#25854] When a guest is at 0 happiness or energy, the game draws too big of a bar in the guest stats window.
- Fix: [#25862] Diagonal and inclined brakes are not counted when calculating upkeep cost.
- Fix: [#25873] Repainting a banner in OpenRCT2-specific colours results in an error message.
- Fix: [#25879] Guest window viewport doesn’t follow vehicle when they board a ride.
- Fix: [#25908] Crash from use-after-free in banner text formatting during multithreaded rendering.
- Fix: [objects#419] Alignment of RCT2 red, yellow and green queue previews is off.
- Fix: [objects#424] Jet Aeroplane decor has a hole in it.
- Fix: [objects#425] Capacity of ‘Blob from outer space ride’ is incorrectly listed.
v0.4.31
2026-02-01 16:17:17 +01:00
Michał Janiszewski
4c818b793c Merge branch 'develop' 2026-02-01 16:10:27 +01:00
Michael Steenbeek
c7a97ccbd7 Merge pull request #25908 from frozensnowy/fix23859+25659-banner-text-issues
Fix #23859: Wrong banner text displayed after loading different park
2026-02-01 15:46:40 +01:00
frozensnowy
10ea862bda Fix #23859: Wrong banner text displayed after loading different park
The scrolling text cache matches entries using memcmp on raw Formatter data which includes pointers to ride/banner names. When loading a new park, memory addresses can be reused, causing false cache matches that display text from the previous park. This adds invalidate() calls to both park loading paths to clear stale cache entries
2026-02-01 13:41:47 +01:00
frozensnowy
ce0969884e Fix: Crash from use-after-free in banner text formatting during multithreaded rendering
The Banner struct had a mutable formattedTextBuffer member that was written during every call to formatTextWithColourTo(). During multithreaded rendering, multiple threads could write to this buffer simultaneously when the same banner appeared in different viewport columns, causing use-after-free. This is replaced with thread_local to give each thread its own buffer which matches the existing pattern used elsewhere in the codebase
2026-02-01 13:41:43 +01:00
Gymnasiast
13250e5536 Fix typo in changelog
[ci skip]
2026-02-01 11:43:50 +01:00
Gymnasiast
13356535a8 Add #20652 to changelog
[ci skip]
2026-02-01 11:40:58 +01:00
OpenRCT2 git bot
9099047a5b Merge Localisation/master into OpenRCT2/develop 2026-02-01 04:41:39 +00:00
frozensnowy
778c15142a Fix #25889, #25703: Crash when scanning scenarios with packed objects (#25899)
When ScenarioFileIndex scans scenarios in parallel via JobPool, S6 files with packed objects called ExportPackedObject from multiple threads,
causing a race condition in ObjectRepository's vector. This changes passes skipObjectCheck=true during scanning, consistent with .park and .sc4 file handling. Objects are extracted later when actually loading.
2026-02-01 00:09:08 +01:00
Gymnasiast
4a5ca9eb3f Add missing changelog entries, fix up a few
[ci skip]
2026-02-01 00:07:14 +01:00
matheusvb3
ff72e07385 Remove redundant typename keyword usage (#25901) 2026-01-31 23:59:59 +01:00
Michael Steenbeek
9ec3dfd821 Update objects release to v1.7.6 (#25897) 2026-01-31 19:53:43 +01:00
frozensnowy
75db9f34c4 Fix #25879: Guest window viewport doesn't follow vehicle when on ride (#25883) 2026-01-31 14:41:20 +01:00
Michael Steenbeek
3af94367ec Merge pull request #25857 from matheusvb3/addclamp-final
Clamp some Guest and ParkData fields
2026-01-31 12:35:31 +01:00
frozensnowy
0552f8fdff Fix #25882: Maze construction does not auto-remove trees (#25886)
Changed `MazeSetTrackAction` to use `MapCanConstructWithClearAt` instead of `MapCanConstructAt` so trees get cleared like they do for regular track placement.
2026-01-31 11:33:03 +00:00
frozensnowy
52b0f68aee Fix #3788: Self-intersecting track designs cannot be placed (#25894)
When placing a track design that loops back on itself, earlier placed pieces would block later pieces during clearance checks.

This commit adds an optional RideId parameter to MapCanConstructWithClearAt to skip track elements belonging to the same ride during track design placement.
2026-01-31 12:29:58 +01:00
Gymnasiast
a94841b162 Split one changelog entry into two
[ci skip]
2026-01-31 12:27:20 +01:00
matheusvb3
d47fc1dc78 Clamp Guest fields 2026-01-31 12:20:31 +01:00
matheusvb3
3e224346d2 Clamp ParkData fields 2026-01-31 12:20:30 +01:00
Michał Janiszewski
7c38329a89 Update BACKTRACE_TOKEN for upcoming release 2026-01-31 12:18:40 +01:00
mix
bb39b5baee Fix #25749: Windows release builds are not built with LTCG (#25895) 2026-01-31 10:31:38 +01:00
OpenRCT2 git bot
3bf16febf6 Merge Localisation/master into OpenRCT2/develop 2026-01-30 04:30:27 +00:00
Aaron van Geffen
8460b64b3c Merge pull request #25719 from AaronVanGeffen/weather-cheats-dropdown
Add sprites to weather cheat dropdown
2026-01-29 22:52:01 +01:00
Aaron van Geffen
3602109659 Add small weather icons and tweak alignment 2026-01-29 22:21:55 +01:00
frozensnowy
445b38fe0f Fix #20620: Console caret does not update when pasting
Add missing RefreshCaret call after pasting text in the console.
2026-01-29 21:07:20 +00:00
matheusvb3
20f8339963 Convert car entry flags into a FlagHolder (#25784) 2026-01-29 22:00:03 +01:00
frozensnowy
560fb471e0 Fix #25775: Network download sizes are not in the claimed KiB 2026-01-29 21:43:05 +01:00
OpenRCT2 git bot
5b40d5b857 Merge Localisation/master into OpenRCT2/develop 2026-01-29 04:29:56 +00:00
Aaron van Geffen
1c37891559 Fix weather dropdown item padding in enlarged UI 2026-01-28 21:05:47 +01:00
Michael Steenbeek
343c7a70d7 Change colour to a strong enum (#25873) 2026-01-28 10:06:45 +01:00
OpenRCT2 git bot
bc0f2e8539 Merge Localisation/master into OpenRCT2/develop 2026-01-28 04:17:59 +00:00
Gymnasiast
78f8974c62 Add "original bug" to issue #18441
[ci skip]
2026-01-27 23:33:34 +01:00
Michael Steenbeek
6bc432dd12 Fix #18441: Spurious error when trying to replace footpath (#25880) 2026-01-27 22:47:19 +01:00
Michael Steenbeek
7aaa124cef Fix #15009: Landscaping tools do not display estimates when paused (#25866) 2026-01-27 22:09:33 +01:00
OpenRCT2 git bot
545d269295 Merge Localisation/master into OpenRCT2/develop 2026-01-27 04:19:10 +00:00
Michael Steenbeek
efaa5586d3 Merge pull request #25872 from Gymnasiast/backport/refactor-ride-ratings
Backport some things from #23179
2026-01-25 21:01:26 +01:00
Nick Peters-Luciani
3512cef39a Extract TrackGetIsSheltered() 2026-01-25 13:39:51 +01:00
Tulio Leao
5485ae4bde Extract kDynamicRideShelterRating constant 2026-01-25 13:39:51 +01:00
Aaron van Geffen
e6fa0e48d0 Rework palette information into palettes.dat (#25681)
* Rework all palette information into new palette.dat

* Harmonise order between sprites.json, SpriteIds.h, kPaletteToG1Offset

* Rename G1 counterparts for completeness/documentation

* Bump libsawyer to v1.4.0
2026-01-25 10:39:18 +01:00
Michael Steenbeek
fa72aaf6b2 Merge pull request #25868 from Gymnasiast/refactor/colour-h
Remove more stuff from Colour.h
2026-01-24 18:33:41 +01:00
Gymnasiast
27b5c8d44e Deduplicate water colour names 2026-01-24 17:17:13 +01:00
Gymnasiast
491f90b67a Replace kTextColour254 and kTextColour255 with COLOUR_NULL 2026-01-24 16:54:44 +01:00
Gymnasiast
96e349645c Move left palette index constants out of Colour.h 2026-01-24 16:50:09 +01:00
matheusvb3
182b5c65dd Add "use bool literals" rule to .clang-tidy (#25842) 2026-01-24 10:12:30 +01:00
Michael Steenbeek
14d4fe362e Merge pull request #25862 from MarcelVos96/booster-running-cost
Fix #25018: Add upkeep cost to booster pieces
2026-01-24 00:27:18 +01:00
Gymnasiast
0343d721e3 Fix: diagonal and inclined brakes not counted when calculating upkeep cost 2026-01-24 00:06:26 +01:00
MarcelVos96
716e3c92ab Add running cost to boosters 2026-01-24 00:06:26 +01:00
matheusvb3
dcba4cb099 Remove redundant namespaces qualifiers (#25837) 2026-01-23 21:46:08 +00:00
Michael Steenbeek
bb16feda8a Merge pull request #25858 from MichaelJBerk/macos-optionsWindow
Add support for native options dialog on macOS and add Quit button to onboarding
2026-01-22 23:41:46 +01:00
Gymnasiast
dcd097a3b1 Fix minimum height of Zenity/Kdialog window to 350 pixels 2026-01-22 20:59:24 +01:00