- Feature: [#15750] Allow using different types of park entrance in one park.
- Feature: [#20942] Allow removing all park fences from the Cheats window.
- Feature: [#21675] Guests ignore price limit cheat.
- Feature: [#22206] Add option to randomise train or vehicle colours.
- Feature: [#22392] [Plugin] Expose ride vehicle’s spin to the plugin API.
- Feature: [#22414] Finance graphs can be resized.
- Feature: [#22569] Footpath placement now respects the construction modifier keys (ctrl/shift).
- Change: [#21189] Patches to fix scenario bugs are now described in .parkpatch files, instead of inside the code.
- Change: [#21659] Increase the Hybrid Roller Coaster’s maximum lift speed to 17 km/h (11 mph).
- Change: [#22466] The Clear Scenery tool now uses a bulldozer cursor instead of a generic crosshair.
- Change: [#22490] The tool to change land and construction rights has been moved out of the Map window.
- Change: [#22490] In sandbox mode, changing land or construction rights now acts as buying or selling.
- Change: [#22491] Scrollbars are now hidden if the scrollable widget is not actually overflowing.
- Change: [#22541] In editor/sandbox mode, tool widgets now appear on the side of the map window, instead of the bottom.
- Change: [#22592] Cheats have been redistributed along three new tabs: date, staff, and nature/weather.
- Fix: [#21123] Transparency options are not respected on startup.
- Fix: [#21189] Additional missing/misplaced land & construction rights tiles in Schneider Shores and Urban Park.
- Fix: [#21908] Errors showing up when placing/moving track design previews.
- Fix: [#22307] Hover tooltips in financial charts are not invalidated properly.
- Fix: [#22316] Potential crash when switching the drawing engine while the game is running.
- Fix: [#22395, #22396] Misaligned tick marks in financial and guest count graphs (original bug).
- Fix: [#22457] Potential crash opening the scenario select window.
- Fix: [#22520] Virtual floor no longer appears when holding modifier keys during track construction.
- Fix: [#22527] Forcing an element type to “wall” via scripts can crash the game.
- Fix: [#22582] Lighting effects are not enabled/disabled correctly, making the game appear frozen.
- Fix: [#22598] Add several .parkpatch files to .sea scenarios with corresponding patches for RCT1 and RCT2 scenarios.
- Fix: [#22606] Virtual floor is sometimes drawn above the path when placing paths.
- Fix: [#22625] Fix compilation with orignal ride ratings.
- Fix: [#22663] Additional missing/misplaced land & construction rights tiles in Mystic Mountain, Build your own Six Flags Holland and Build your own Six Flags over Texas.
- Fix: [#22671] Game default to hide supports on startup.
- Fix: [#22671] Unchecking invisible option does not uncheck see-through option on transparency options and vice versa.
- Fix: [#22677] Hovering the file list in the load/save window causes a slowdown.
* Add prototype for ctrl/shift modifier keys in footpath tool
* Only allow paths at half heights when 'invalid heights' cheats are active
* Infer heights similarly to scenery tool when ModifierKey::ctrl is active
* Deduplicate code, use std::bit_ceil to compute new capacity
* Remove unused constructor overload
* Remove more unused functions
* Fix memory leak using assignment operator with move
* Make access explicit via constness, do not allow arbitrary access
* Move the template specialized Write/Read to private section
* Simplify a lot of code by using the right types
* Fix copy constructor
* Directly copy the member in copy constructor
* Fix little mistake
* Pluck a memory leak on Android, fix the build
* Update changelog.txt
* Add new park entrance placement window
* Start entrance tool as soon as window opens;
* Rename constants to conform to current code standards
* Increment PARK_FILE_CURRENT_VERSION
* Increment kNetworkStreamVersion
Co-authored-by: Aaron van Geffen <aaron@aaronweb.net>
- Feature: [#19596] Allow for playing back a replay without camera movement or alert box.
- Feature: [#20831] The ride selection window now shows object authors if debugging tools are active.
- Feature: [#20832] The ride music tab now shows a track listing for the current music style.
- Feature: [#22172] [Plugin] Expose ride satisfaction ratings to the plugin API.
- Feature: [#22184] [Plugin] Expose staff statistics to the plugin API.
- Feature: [#22213] [Plugin] Allow plugins to focus on textboxes in custom windows.
- Feature: [#22272] [Plugin] Expose ride vehicle’s current track type via car trackLocation.
- Feature: [#22301] Loading save games or scenarios now indicates loading progress.
- Feature: [OpenMusic#54] Added Progressive ride music style (feat. Approaching Nirvana).
- Improved: [#22352] The object selection window now groups relevant object tabs together.
- Improved: [#22357] Error messages are now themeable and easier to read.
- Improved: [#22361, objects#342, objects#343] Add additional colour presets to the Observation Tower, Twist, and Ferris Wheel.
- Improved: [#22433] Increase the network timeout from 7 to 20 seconds, should help slow clients getting disconnected.
- Improved: [#22437] File indexing now properly uses all CPU power, improving object and scenario indexing.
- Improved: [#22449] Reduced the time it takes to load and index objects, scenarios and tracks.
- Change: [#12292] The ‘Toggle visibility of toolbars’ shortcut is no longer assigned by default.
- Change: [#21494] Display pixel density is now taken into account for the initial window scale setting.
- Change: [#22230] The plugin/script engine is now initialised off the main thread.
- Change: [#22251] Hide author info in the scenery window unless debug tools are active.
- Change: [#22283] Let heavy snow and blizzard increase chance of brakes failure.
- Change: [#22309] The scenario editor now supports loading landscapes from .sea save files.
- Fix: [#17390] Glitchy animations for the ride type tabs in the object selection window.
- Fix: [#19210] The load/save window executes the loading code twice, resulting in a slowdown.
- Fix: [#21175] Terraform tool hotkeys don't work when toolbars are hidden.
- Fix: [#22056] Potential crash upon exiting the game.
- Fix: [#22101] Wrong tunnel shapes on Log Flume and Giga, Hybrid, Single-Rail and Alpine Coasters.
- Fix: [#22208] Cursor may fail to register hits in some cases (original bug).
- Fix: [#22209] Water tool selection may disappear near edge of map.
- Fix: [#22222] Staff list may remain invalid when changing tabs.
- Fix: [#22265] Button for switching covered tracks on slides doesn’t stay pressed.
- Fix: [#22284] Unrated rides cause high amount of nausea.
- Fix: [#22292] Progress bar widgets in guest and ride windows are not updating correctly.
- Fix: [#22304] Graphs don’t draw lines on the left edge of the screen.
- Fix: [#22308] OpenGL draws lines incorrectly in some cases.
- Fix: [#22318] Water sparkles are missing if transparent water is enabled without RCT1 linked.
- Fix: [#22333] Tile inspector closes other tool windows.
- Fix: [#22339] Printing ui.tool.cursor in console crashes the game.
- Fix: [#22348] Progress bar screen doesn’t handle window resizing.
- Fix: [#22389] Alpine coaster has wrong tunnel entrance type.
- Fix: [#22435] [Plugin] Off-by-one pixel issue in active widget width and height setters.
SDL requires a renderer to be created in an empty window, i.e. one
without any other renderer nor surface. Leaving the window with earlier
surface from another engine (e.g. when switching from SW to SW+HWD)
caused no renderer to be created (_sdlRenderer set to nullptr) and
setting up a bomb to explode next time we try to render a frame.
I think this can also get triggered when resizing/switching the focus of
a window.
While SDL already has internal checks for window surface presence in
`SDL_DestroyWindowSurface` _in the SDL version I checked_, I have no
certainty if this is correct for all of them. I added check for window
surface presence to better express the code intent as well.
`SDL_DestroyWindowSurface` was introduced in SDL 2.28
This should take care of most of the `BlitPixel`, `DrawRLESpriteMinify`
issues reported by backtrace.