* Fix#20486: Placing track designs with scenery disabled desyncs
* Remove pointless error logging, too much log spam
* Don't entirely disable all scenery when one element is obstructed
* Update changelog.txt
* Bump up network version
* clang-format
* 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