* Check if actions can be performed safely
* Add explanatory comment
* Refactor Easter egg logic in Guest::UpdateWalking
* Add changelog entry
* Make the comment more explanatory
* Update NetworkBase.cpp
* Update changelog for v0.28
- Feature: [#25218] `sprite exportobject` command, which allows extracting images from an object.
- Feature: [#25274] New title sequence (see https://github.com/OpenRCT2/title-sequences/releases/tag/v0.4.26 for credits).
- Improved: [#2296, #2307] The land tool now takes sloped track and paths into account when modifying land.
- Change: [#25111] Frozen guests no longer finish consuming any food or drink they are carrying.
- Change: [#25161] Revert to the ‘fair ride price’ calculation of vanilla RCT2.
- Change: [#25201] Ride List: put unknown popularity and satisfaction last when sorting.
- Change: [#25228] [Plugin] The available staff costumes array is now ordered alphabetically by name.
- Change: [#25240] The LIM Launched Coaster now defaults to powered launch without passing station again (as it did in vanilla RCT2).
- Change: [#25248] Revert Crooked House & Circus default prices to vanilla values.
- Change: [#25266] Lightning and thunder have less chance of occurring during blizzards.
- Removed: [#25225] `sprite exportalldat`, replaced with `sprite exportobject`.
- Fix: [#24513] Ride/track designs can now be shifted underground as well.
- Fix: [#24682] The scenery window isn't high enough to accommodate all tool buttons when there are multiple rows of groups/tabs.
- Fix: [#24882] Guests are shown with hats and umbrellas whilst clapping.
- Fix: [#24998] Some custom small scenery objects do not load.
- Fix: [#25131] The Reverse Freefall Coaster On-ride photo section track has incorrectly coloured ties.
- Fix: [#25132] Crash when trying to use simulate on incomplete ride.
- Fix: [#25134] Vehicles visually glitch on diagonal steep slopes.
- Fix: [#25146] The support clearance height of the diagonal brakes for the Junior, inverted Flying and inverted Lay-down Roller Coasters is too high.
- Fix: [#25147] The wooden support clearance heights for steep Log Flume track pieces are too low.
- Fix: [#25159] One of the tiles on the Hybrid Coaster diagonal flat track does not block metal or wooden supports correctly.
- Fix: [#25160] The Go-Karts steep to flat track piece has incorrect wooden support clearance heights.
- Fix: [#25163] Some of the Junior Roller Coaster flat to steep track wooden support clearance heights are different to RCT1.
- Fix: [#25173] Desync when placing a park entrance in multiplayer.
- Fix: [#25179] The LIM Launched Roller Coaster inline twists have incorrect wooden support clearance heights (original bug).
- Fix: [#25201] Ride list sort order can be unstable when sorted in descending order.
- Fix: [#25207] Building a block brake on an LIM coaster does not automatically switch it to powered launch block sectioned mode.
- Fix: [#25238] The chance of thunder and lightning effects happening is lower than vanilla.
- Fix: [#25288] Water ride “chain” sound does not loop.
Since about a year ago, OpenRCT2 has allowed players to shift ride/track designs using modifier keys (#22669). This was, however, limited to heights above-ground. This PR changes this by omitting the 'Z placement assist' when ctrl/shift modifiers are used. This means the helpful 'nudge' to overground is now omitted if (and only if) these modifier keys are involved.
Below is an example of what placement now looks like (with clearance checks disabled for easier debugging):
https://github.com/user-attachments/assets/3b23bc1d-ab7b-43a2-ad40-216ab83952d2
This allows you to modify the land underneath sloped track and paths without the zero clearances cheat.
Closes#2296Closes#2307https://github.com/user-attachments/assets/8cb51199-a5b4-48e4-9cc3-34fd6ce7410e
It passes the slope in to the function that checks for construction clearances, and calculates whether it fits under the track or path.
In some very rare cases it is possible to build some track pieces in an arguably invalid way over 2 height sloped land, this does not let you raise the land in to that invalid position after the track piece has been built.
* Rename Network::NetworkReadPacket class to Network::ReadPacket
* Rename Network::NetworkKey class to Network::Key
* Rename Network::NetworkPacket class to Network::Packet
* Rename Network::NetworkUser class to Network::User
* Rename Network::NetworkConnection class to Network::Connection
- Feature: [#24949] Add an option to the command line screenshot function to draw debug bounding boxes.
- Improved: [#9890, #18714] Rides using block-sectioned operating modes can now enter simulating mode without having to complete the circuit first.
- Improved: [#24734] Save files now use Zstd compression for faster saving and smaller files.
- Improved: [#24890] The ride list is now searchable.
- Improved: [#24893] The ride list now has headers, and can be sorted in both directions.
- Improved: [#24921] The command line sprite build command now prints out the images table entry for the compiled sprite file.
- Improved: [#24953] Opening the Scenario Editor, Track Designer or Track Designs Manager now display the progress bar.
- Improved: [#25027] Land style dropdown now has tooltips with the name of the land types.
- Improved: [#25057] The progress window now has a Go Karts variant.
- Change: [#23351] Diagonal sloped Go-Kart track can no longer be built without cheats if the karts do not have sprites for them.
- Change: [#24606] Increase Misc Entity limit from 1600 to 3200.
- Change: [#24974] Raise the Go-Karts maximum support height to allow 2 large sloped turns to be built on flat ground.
- Change: [#25024] Guests in mazes no longer jump during heavy snow or blizzards, as they would when it rains.
- Fix: [#12831] Zooming to cursor on land edges sometimes causes the camera to move to the wrong position.
- Fix: [#16988] AppImage version does not show changelog.
- Fix: [#19137] Non-inverted left corkscrew supports are incorrect at one angle (original bug).
- Fix: [#23440] Quarter loops do not block metal supports correctly (original bug).
- Fix: [#24001] Sloped diagonal metal supports that are offset with a crossbeam draw incorrectly.
- Fix: [#24151] Sprites are cut off by 1 row of pixels when using OpenGL on Intel Macs.
- Fix: [#24173] Allow all game speeds between 1 and 8 when debugging tools are enabled.
- Fix: [#24745] Potential crash when lighting effects are enabled and loading a save or a new scenario.
- Fix: [#24835] Dive loop track pieces do not have tunnels.
- Fix: [#24884] Smooth map and add beaches functions use incorrect map size with height map image files.
- Fix: [#24915] LIM Launched (original bug), Corkscrew and Twister Roller Coaster inline twists have some incorrect tunnels.
- Fix: [#24916] LIM Launched inline twists can draw over land edges when built underground (original bug).
- Fix: [#24953] Crash when opening the Scenario Editor, Track Designer or Track Designs Manager.
- Fix: [#24955] Hybrid Zero G Rolls do not fully block metal supports.
- Fix: [#24958] Android: fix crash when device is offline.
- Fix: [#24961] Queues with corner connections set with the tile inspector draw incorrect sprites.
- Fix: [#24972] Fix crash when closing windows would open other windows.
- Fix: [#24986] LIM Launched Roller Coaster inline twists block metal supports on the wrong side (original bug).
- Fix: [#24989] Classic Wooden Roller Coaster small banked turns do not block metal supports correctly.
- Fix: [#24993] The Mine Train Coaster sloped left medium turn has an incorrectly rotated support at one angle.
- Fix: [#24994] The Alpine Coaster and Mine Ride left s-bends have an incorrectly rotated support at certain angles.
- Fix: [#25001] The Hybrid Coaster small banked sloped right turn and large sloped right turn to orthogonal have some incorrectly rotated supports.
- Fix: [#25002] The large right turn to diagonal on the Miniature Railway draws incorrectly at certain angles.
- Fix: [#25005] The Corkscrew Roller Coaster inline twist inverted supports draw below the track.
- Fix: [#25006] The Twister Roller Coaster inline twists do not draw in tunnels at some angles.
- Fix: [#25046] Zooming with the zoom buttons on the extra viewport is not focused on the centre of the viewport.
- Fix: [#25054] Panning a viewport in a window that is partially outside the game’s window can draw incorrectly or crash in software rendering.
- Fix: [#25062] Certain peep actions cannot be triggered if they are under or inside a track piece due to faulty verification of them being on a level crossing.
- Fix: [#25067] Progress bars can flicker when downloading maps in multiplayer mode.
- Fix: [#25075] The Hybrid Coaster quarter loops draw over land edges and walls directly next to them.
- Fix: [#25080] Water has missing land edges when opposite corners of the tile and adjacent tile are the same height and the others are lower.
- Feature: [#24468] [Plugin] Add awards to plugin API.
- Feature: [#24702] [Plugin] Add bindings for missing cheats (forcedParkRating, ignoreRidePrice, makeAllDestructible).
- Feature: [#24794] The load/save browser can now optionally show mini map previews instead of screenshots.
- Improved: [#24812] Taiwan Park has been added to the Extras tab if it is present.
- Improved: [OpenSFX#12] Add Brake Fix, Buy and Dinghy Slide running sounds.
- Change: [#24730] Security guards now only walk slowly in crowded areas.
- Change: [#24843] Update android targetSDK to 36.
- Fix: [#24598] Cannot load .park files that use official legacy footpaths by accident.
- Fix: [#24611] The confirmation prompt for track file deletion is not vertically aligned.
- Fix: [#24711] The map smoothing function only partially works for custom height map image files.
- Fix: [#24761] The reliability bar in the ride window visually does not go below 10%.
- Fix: [#24773] The new ride window debug authors does not show the correct authors for non legacy ride objects.
- Fix: [#24775] The scenery and new ride windows do not filter by file name or identifier correctly for non legacy objects.
- Fix: [#24777] The stall item preview cycles between all possible colours when random checkbox is ticked.
- Fix: [#24794] The load/save browser does not resize cleanly when toggling the preview sidebar.
- Fix: [#24824] The Air Powered Vertical Coaster top section track piece has vertical tunnels (original bug).
- Fix: [#24825] The River Rapids flat-to-gentle track piece tunnels are incorrect on the gentle side.
- Fix: [#24826] The Junior Roller Coaster flat-to-steep track piece tunnels are incorrect.
- Fix: [#24829] The pattern of long grass across tiles is different to RCT1 and RCT2.
- Fix: [#24831] Park names are being overwritten for custom RCT1 scenarios that use competition id slots.
- Fix: [#24838] Not using localized word for conjunction when having multiple shortcuts for the same action.
- Fix: [#24841] Fullscreen options do not work correctly with Emscripten.
* Let security guards alternate between slow and fast walking
* Alternate based on amount of nearby guests instead
* Optimise loop to exit early once threshold has been reached
* Only count walking guests for security crowdedness
* Update replay bundle to v0.0.89
* Update NetworkBase.cpp
- Feature: [#22476] “Time since last inspection” statistic is available in the rides window.
- Feature: [#24313] [Plugin] Add API for setting a ride vehicle’s sprite to a smoke plume.
- Improved: [#24345] Vehicle fallback sprites are less likely to glitch with the track.
- Improved: [#24362, #24491] The Windows installer is now translated as well.
- Improved: [#24364] Improve the fallback vehicle sprites for Zero G Rolls, and allow small ones to be built without cheats if the fallbacks are available.
- Improved: [#24368] Clicking the in-game update notication now leads to a more user-friendly download page.
- Improved: [#24400] Ride list in preservation window is now sorted alphabetically.
- Improved: [#24409] Steam installs of RCT Classic are now detected automatically.
- Improved: [#24413] Better performance when moving the viewport on Windows and Linux platforms.
- Improved: [#24417] Improve the fallback vehicle sprites for Dive Loops.
- Improved: [#24433] The ride, new ride, scenery, path, viewport, park and tool windows no longer redraw every frame if they have not changed.
- Improved: [#24467] Apply tweening only to on-screen entities when not zoomed out for better performance with uncapped FPS.
- Improved: [#24474] More efficiently search viewports when playing Audio.
- Improved: [#24479] More descriptive error messages for `set` commands in the in-game console.
- Improved: [#24563] The Linux .desktop file will now request the more powerful dedicated GPU on hybrid graphics systems.
- Change: [#24342, #24484] g2.dat is now split into g2.dat, fonts.dat and tracks.dat.
- Change: [#24362] The Windows installer now prevents installing to the same folder as RollerCoaster Tycoon 2 or Classic.
- Change: [#24418] Small & Large Zero G Rolls can now be built on the LIM Launched RC without cheats if vehicle sprites are available.
- Fix: [#5269] Font bugs when using the Russian release of RCT2 as the base game.
- Fix: [#11071, #22958] The virtual floor does not always draw correctly.
- Fix: [#18220] Some custom RCT1 scenarios are detected as competition DLC scenarios.
- Fix: [#20095] UCES Halloween - Cemetery Ridge scenario has mismatched entrance/exit on haunted house.
- Fix: [#20158] Custom animated scenery .DATs with frame offsets draw a random sprite at the end of their animation.
- Fix: [#22628] Potential crash while rebuilding the scenario index.
- Fix: [#23289] Dodgems and Flying Saucer cars can spawn on top of each other when the ride is opened.
- Fix: [#24332] Banner font renders differently when using RCT Classic as the base game.
- Fix: [#24343] Large gently sloped turns are buildable without cheats when the vehicles do not have sprites for them.
- Fix: [#24346] Possible crash during line drawing in OpenGL mode.
- Fix: [#24353] ‘Show dirty visuals’ is off by one pixel and does not work correctly with higher framerates.
- Fix: [#24362] When upgrading from an older version on Windows, old versions of official objects are not always removed.
- Fix: [#24366] Zero G Rolls have some incorrect vehicle yaw rotations.
- Fix: [#24371] Fix divide by zero in the scenery window when there is no scenery.
- Fix: [#24378] Prevent ride and stall statistics from overflowing.
- Fix: [#24388] Shortcut keys are not localised based on the user’s language settings.
- Fix: [#24403] Park fences draw underneath and through opaque water.
- Fix: [#24406] The network status window uses an undefined string for its title.
- Fix: [#24444] In the object load error window, the guide text overlaps when the title bar is enlarged.
- Fix: [#24446] [Plugin] Fix regression breaking the track iterator on specific track pieces.
- Fix: [#24447] Shortcut list is not refreshed when changing language.
- Fix: [#24448] Shortcuts involving the Caps Lock key are wrongly localised to NumPad Dot.
- Fix: [#24464] Window and viewport visibility is not calculated correctly causing minor performance issues.
- Fix: [#24488] Objects are not always redrawn immediately when they are reloaded from the Object Selection window.
- Fix: [#24544] RCT1 Maze designs with wooden walls are not imported correctly.
- Fix: [#24567] Long flat-to-steep wooden mine support sprites don't connect to flat supports exactly.
- Feature: [#24206] [Plugin] Add APIs for breaking down rides, reading the current breakdown, and for fixing broken down rides.
- Improved: [#20073] The OpenGL drawing engine now supports screen invalidation which avoids the redrawing of unchanged regions.
- Improved: [#21767] RCT Classic for macOS can now be used as the source game.
- Improved: [#23590] Title bars are now drawn bigger when “Enlarged UI” is enabled.
- Improved: [#23626] Add small, medium and large flat and sloped turns, S-bends and diagonal track to the Go-Karts.
- Improved: [#23982] The scenario objective window has been merged into the scenario options window.
- Improved: [#24233] RCT Classic+ from Apple Arcade can now be used as the source game, and is detected automatically.
- Improved: [#24260] Better performance on parks that have a lot of Guests and Entertainers.
- Improved: [#24319] RCT Classic installs via Steam are now detected automatically on Windows.
- Change: [#23803] Lightning strikes and thunder now happen at the same frequency independently of the game speed.
- Change: [#23857] Replace display options tab with custom sprites.
- Change: [#24069] [Plugin] Plugins are now available in the scenario editor and track designer.
- Change: [#24135] Compress Emscripten js/wasm files.
- Change: [#24194] The advanced options tab has been reworked to make it easier to find the RCT1 path setting.
- Change: [#24235] Small changes to RCT1 theme.
- Change: [#24236] Controls and Interface options now both have their own tabs in the Options window.
- Change: [#24308] “Software” and “Software (hardware display)” renderers have been merged into a single “Software” renderer.
- Change: [#24317] The scenery window now shows at least one row of scenery objects, even if there are multiple rows of tabs.
- Fix: [#18479] Tile elements ordered beneath water do not draw correctly.
- Fix: [#19782] Game stops counting inversions and golf holes after 31 (original bug).
- Fix: [#21207] Track List window gets positioned incorrectly.
- Fix: [#21919] Non-recolourable cars still show colour picker (original bug).
- Fix: [#22182] [Plugin] Crash when using map.getAllEntities("car").
- Fix: [#22634] Asset packs with sound effect overrides are not loaded correctly at startup.
- Fix: [#23108] Missing pieces on Hypercoaster and Hyper-Twister, even with the ‘all drawable track pieces’ cheat enabled.
- Fix: [#24013] Failure to load a scenario preview image (minimap) could lead to an uncaught exception error message.
- Fix: [#24045] [Plugin] Data storage is not cleared when converting save game to scenario.
- Fix: [#24121] Checkbox labels run beyond the edge of the window if they’re too long to fit.
- Fix: [#24142] [Plugin] Track origin is miscalculated on downward slopes.
- Fix: [#24220] Narrow station platforms have missing sides on certain rotations.
- Fix: [#24286] Steam installs of RCT1 and RCT2 are not autodetected on macOS.
- Fix: [#24310] [Plugin] Missing invalidation on various plugin api setters for entities.
* Disable lightning flashes at higher speeds
* Scale lightning/thunder inversely proportional to game speed
* Change gGameSpéed from uint32 to uint8
* Update changelog.txt
* Increment network version