Calling `Close()` on a window deletes its object, rendering any future
uses of its members invalid.
In this case `WindowsCloseAll` closed Editor window itself rendering
call to `ManageTracks` on a deleted pointer. Previously
`WindowsCloseAll` was called, but earlier in the same function we have
already closed all windows but Editor itself. It is sufficient to close
the editor once we have opened `TrackDesignList`.
When this got fixed, I noticed `TrackDesignList` could not locate any
rides, which was happening due to calls to `ObjectManager::UnloadAll`
in several places. Code to load the selected ride back was added.
Calling `Close()` on a window deletes its object, rendering any future
uses of its members invalid.
This can be triggered by opening inventions list window, holding an
invention, closing the inventions list window (e.g. with keyboard) and
then releasing the held invention
In park/replay from dump #19574 there was a calamity that happened
likely due to a plugin. Pretty much all rides were deleted in single
tick, which caused the park to mark some locations as null and then it
tripped on one of the many assertions. In many of the places it already
bails out if ride or vehicle is a nullptr, so I followed with similar
approach for invalid ride exits.
* Fix#19503. Hide 3+ queue junction railings behind a flag
This is to prevent existing parks from changing their behaviour
* Clang format
* Bump version numbers. Update changelog
* Update text
* Update S6Importer.cpp
Edit a stray tile in the lava river of Infernal Views to have its missing lava.
* Update changelog.txt
* Update contributors.md
* Add speed and frame properties
* add steam position modifier
* copy code from OpenLoco
* update sin and cos
* add computation function
* finalize locomotion code
* fix formatting
* refine code
* refactor things slightly
* manually fix formatting
* use PascalCase and rename
* fix copyright notice
* fix name again
* rename function, move outt of namespace
* fix rebase issues
* remove pitch table derived from physics
* rename some stuff
* flip vertical component sign to make sense
* change json structure
* create steam particles based on number of animation frames
* fix formatting
* add slope for spiral lift hill down
* fix formatting again
* parens around bitwise and
* make animations separate functions
* rename MultiDimCoaster to MultiDimension
* use EnumValue method
* rework multidim frame count
* bump network to be safe
* fix formatting
* move array out of function
* make table const
* move struct into RideObject.cpp
* try new method to fix numbers in multidim
* implement ZehMatt modulo
* add documentation to new function
* include Yaw.hpp
* rename src/ride/SteamPosition.hpp to src/math/Trigonometry.hpp
* actually add src/math/Trigonometry.hpp
* move ComputeSteamOffset to Vehicle.cpp
* use static asserts on arrays
* fix changelog grammar
* add more static asserts