* Use precompiled headers for libopenrct2 with MSVC
* Exclude PCH from duktape
duktape needs all the warnings turned off and forcing PCH also enables
warnings. As there is nothing duktape would consume from our header,
remove forcing inclusion of that header into duktape.
* Provide msbuild parameter for using PCH only in CI
* 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
* Move footpathitem entry into new getter
* Move scenery group entry into new getter
* Move water entry into new getter
* Move large scenery entry into new getter
* Remove unused header includes
* Fix compile issue
* Include missing header from vcxproj
* Add object entry manager
Port over wall and banner
* Port over small scenery to ObjectEntryManager
Clang format files
Actually make things safe
Fix build
This already revealed some places where implicit conversions were done, including some where its use was nonsense (MouseInput.cpp).
The changes to the Intent class were necessary to keep things working, and this splits things up more neatly.
* Refactor all uses of IAudioChannel and the audio mixer.
* Use shared_ptr to avoid dead pointers hanging about.
* Reload particular audio channels where necessary after object reload.