* Part of #21421: Refactor RIDE_INITIAL_RELIABILITY in Ride.h
* Part of #21421: Refactor STATION_DEPART_FLAG and STATION_DEPART_MASK
* Part of #21421: Refactor MAX_STATION_PLATFORM_LENGTH
* Part of #21421: Refactor RIDE_RATING_UNDEFINED
* Part of #21421: Refactor TRACK_BLOCK_END
* Part of #21421: Refactor TRACK_PREVIEW_IMAGE_SIZE
* Part of #21421: Refactor based on feedback
* Part of #21421: Fix signed/unsigned mismatch on Win
* Improved consistency kTrackPreviewImageSize
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
* Part of #21421: kMaxStationPlatformLength to int8
---------
Co-authored-by: Michael Steenbeek <m.o.steenbeek@gmail.com>
Also changed a few instances where GetGameState was called inside the same function.
The change in Peep.cpp is needed because of a function conflict. FormatStringID exists both in the global and in the OpenRCT2 namespace.
PR #20483 introduced a check for covered stations, but incorrectly checked the RCT2 IDs.
This commit replaces this check with a proper flag check, which will work for any station style, including custom ones.
* Remove flag RIDE_TYPE_FLAG_HAS_NO_TRACK (#20239)
* Fix a couple of logical conditions in entity/Staff.cpp
* Bump NETWORK_STREAM_VERSION and add myself to contributors.md
Part 2 of #19922Fixes#19964
There are a lot of files changed, so this PR is structured to be easy to follow by looking at individual commits.
This PR refactors how the special track element list is created. The refactors include:
Divorces creating the list from RideConstructionWindow for modularity, including potential plugin API
Adds list of special track elements which can be re-ordered for more sensible organization
Same-named track elements will collapse into as few entries as possible
Separates up helixes from down helixes in track flags
Track flag separation was done to remove special code related to alpine coaster. Refactors to ride construction window were tested against and confirmed working with:
alpine coaster
suspended swinging coaster
hybrid coaster
inverted coaster
* spiral lifthill down paintcode
* rename string anyway
* add some stuff I forgot and add documentation
* use static assert on SpriteGroupMultiplier
* add slope to list of opposite slopes
* bump scripting version
* update openrct2.d.ts
* improve documentation
* Initial commit for backwards-facing trains
* Allow persistence for reversed cars across save/load
* Make log flume turntable compatible with new reversal implementation
* Style fixes + Better implementation of inverted bank angles
* Further Style Fixes
* Code cleanup from PR feedback
* Fix GetBankRotationForDrawing function declaration
* Use update flag for reversed state
* Replace modulo operation with bit mask
* Correct guest pathing destination when entering reversed cars
* More style fixes
* Add plugin support for reversed vehicles
* Fix formatting error
* Derive reversal from ride mode for car spawning
* Formatting
* Rename function to GetPaintBankRotation
* Add reversed trains modes to Multi Dimension Coaster
* Change name of isReversed plugin API parameter for consistency
* Replace reversal operating modes with separate ride setting
* Add ALLOW_REVERSED_TRAINS flag to more ride types
* Make clang-format happy
* More Formatting
* Fix ALLOW_REVERSED_TRAINS flag on a couple rides
* Exclude flat rides from Reverse Trains tickbox when cheats are enabled
* Formatting
* Use Disable Vehicle Limits cheat for checkbox appearance condition
* Use correct swinging sprites when cars are reversed
* Update changelog and Plugin/Network/Park version numbers
* Formatting
* Add separate error String ID for clarity
* Add name to contributors.md
* Fix ride vehicle preview window with reversed trains for RCT1 train types
* Bump version numbers again
---------
Co-authored-by: Trevor Finney <8711258+finneyt@users.noreply.github.com>
* Refactor and clean up date handling
* Remove gDate, remove direct access to days_in_month
* Adjust the MultiLaunch test
* Bump network version
---------
Co-authored-by: ζeh Matt <5415177+ZehMatt@users.noreply.github.com>
* Use money64 for ride prices and shop items
* Use money64 for park entrance fee
* Use money64 for gGuestInitialCash
* Use money64 for upkeep costs
* Use money64 for ride value
* Use money64 for marketing campaign cost
* Use money64 for object prices
* Use money64 for land prices
* Use money64 for guest expenditure
* Replace remaining occurrences of money32 with money64
* Update replays
* Bump network version
---------
Co-authored-by: duncanspumpkin <duncans_pumpkin@hotmail.co.uk>