- 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.
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
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
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.
Changed `MazeSetTrackAction` to use `MapCanConstructWithClearAt` instead of `MapCanConstructAt` so trees get cleared like they do for regular track placement.
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.
* Update changelog.txt
* Fix#25854: Game draws too much bar at 0 happiness and energy
Fixes#25854
Originally the minimum for happiness was 10/255. It was changed to 10/100, and this PR changes it to 3/100 to get back to the old minimum.
* Update changelog.txt
* Fix implementation mistake from #1644. Guest happiness calcs
There was meant to be happiness growth rate penalties when very hungry, thirsty, low energy, high toilet
* Fix regression
* Fix nausea growth generation
* No really fix it
* Add changelog entry
* Change issue number
* Bump network version
* Update replays
- Improved: [#24912] Staff now use an appropriate standing animation while waiting at level crossings.
- Improved: [#25515] Path dragging can now be disabled via multiplayer group permissions.
- Improved: [#25529] The map selection grid no longer redraws every frame if it has not changed.
- Improved: [#25530] Wall dragging can now be cancelled without closing the Scenery window.
- Improved: [#25575] Updated the network protocol to a new format that supports larger packets, allowing clients to connect reliably to servers with many objects or large maps.
- Improved: [#25621] Added the Polish Złoty (PLN) to the list of available currencies.
- Improved: [#25625] Renewing and refurbishing rides now also resets the downtime.
- Improved: [#25662] The sprite build command is faster when building sprites from the same image file.
- Change: [#21912] Toilet income is now categorised as shop sales instead of ride tickets.
- Change: [#25403] Guests will not slide down the Spiral Slide if it's broken, even if they have already entered the ride structure.
- Change: [#25485] Make the enlarged pressed swatch sprite more pronounced.
- Change: [#25544] The default game window size is now 1280×720px instead of 640×480px.
- Fix: [#9895] Stand-up coaster gets wrong intensity boost from the synchronisation bonus.
- Fix: [#11617] Path corner connections are broken when hovering track design ghosts with paths over them in zero clearances.
- Fix: [#22484] Lingering ghost entrance after placing park entrance.
- Fix: [#24952] Duplicate track designs when running via Steam without having RCT1 linked.
- Fix: [#25187] On-ride photo platform does not render as ghost when placing track design.
- Fix: [#25229] Excessive logging of game actions, reduced to top-level game actions and filters ghost related ones.
- Fix: [#25469] Drawing in the ui.imageManager.draw callback causes an assertion.
- Fix: [#25524] The track construction arrow does not immediately change position when deleting track pieces.
- Fix: [#25552] Clear Scenery does not show an error message about insufficient money if cash is negative.
- Fix: [#25565] Chairlift station ends are missing tunnels at certain rotations.
- Fix: [#25569] Placing park entrances in multiplayer does not show for other players, causing desyncs.
- Fix: [#25571] Potential crash due to drawing a Crooked House ride.
- Fix: [#25588] When the master server becomes unreachable the server would not register again until a restart.
- Fix: [#25592] Log flume, river rapids, & splash boats can get control failure breakdown instead of brakes failure.
- Fix: [#25595] Invisible entrance is added to imported SV4 saves.
- Fix: [#25601] Inspection interval of a ride gets reset when opening the construction window.
- Fix: [#25628] Availability of AVX2 and SSE4.1 is not detected correctly.
- Fix: [#25639] Scenery window crashes when a no longer present object is still selected.
- Fix: [#25641] Desync because of mismatching inspection intervals.
- Fix: [#25642] The selection marker for purchasing land rights is not drawn with the correct colours.
- Fix: [#25646] It is possible to remove scenery and paths when setting staff patrol areas and purchasing land.
- Fix: [#25660] After saving a track design with scenery, that ride’s entrances and exits are visible in ‘Highlight path issues’ mode.
- Fix: [#25717] Umbrellas given to guests by means of cheats do not use the full (extended) range of colours.