diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 5cbc2165b1..69a8b73ebd 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -97,6 +97,7 @@ STR_0092 :LIM Launched Roller Coaster STR_0093 :Hybrid Coaster STR_0094 :Single Rail Roller Coaster STR_0095 :Alpine Coaster +STR_0096 :Classic Wooden Roller Coaster STR_0512 :A compact roller coaster with a spiral lift hill and smooth, twisting drops. STR_0513 :A looping roller coaster where the riders ride in a standing position STR_0514 :Trains suspended beneath the roller coaster track swing out to the side around corners @@ -179,6 +180,7 @@ STR_0602 :Roller coaster trains are accelerated out of the station by linear STR_0603 :A wooden style roller coaster with a steel track, allowing for steep drops and inversions STR_0604 :Riders ride single file on a narrow monorail track, as they race through tight inversions and direction changes STR_0605 :Riders toboggan down a meandering steel track, braking to control their speed +STR_0606 :An older-style wooden roller coaster with a fast and rough ride, with plenty of air-time, some lateral G’s, and designed to feel ‘out-of-control’ STR_0767 :Guest {INT32} STR_0768 :Handyman {INT32} STR_0769 :Mechanic {INT32} diff --git a/distribution/changelog.txt b/distribution/changelog.txt index b85065858f..862ab996be 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -6,6 +6,7 @@ - Feature: [#16662] Show a warning message when g2.dat is mismatched. - Feature: [#17107] Ride operating settings can be set via text input. - Feature: [#17638] Added Zero G rolls, medium loops and large corkscrews to the Hybrid and Single-Rail coasters. +- Feature: [#17900] Add “Classic Wooden Coaster” with shallow banked turns. - Feature: [objects#198] Add additional pirate roofs. - Improved: [#15358] Park and scenario names can now contain up to 128 characters. - Improved: [#16840] Add support for rectangular heightmaps. diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 8c4fc4c32f..ac3ee0d528 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -15911,5 +15911,15 @@ }, { "path": "empty.png" + }, + { + "path": "track/wooden/classic_wooden_preview_track.png", + "x_offset": 1, + "y_offset": 1 + }, + { + "path": "track/wooden/classic_wooden_preview_supports.png", + "x_offset": 2, + "y_offset": 1 } ] diff --git a/resources/g2/track/wooden/classic_wooden_preview_supports.png b/resources/g2/track/wooden/classic_wooden_preview_supports.png new file mode 100644 index 0000000000..84db247f2c Binary files /dev/null and b/resources/g2/track/wooden/classic_wooden_preview_supports.png differ diff --git a/resources/g2/track/wooden/classic_wooden_preview_track.png b/resources/g2/track/wooden/classic_wooden_preview_track.png new file mode 100644 index 0000000000..4d0362085b Binary files /dev/null and b/resources/g2/track/wooden/classic_wooden_preview_track.png differ diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index bc8fdbfa69..242d892827 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -64,6 +64,7 @@ static constexpr const ride_type_t RideTypeViewOrder[] = { RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER, RIDE_TYPE_VIRGINIA_REEL, RIDE_TYPE_REVERSER_ROLLER_COASTER, + RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER, RIDE_TYPE_WOODEN_ROLLER_COASTER, RIDE_TYPE_WOODEN_WILD_MOUSE, RIDE_TYPE_STEEL_WILD_MOUSE, diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index bc0ed411c8..6f770921b1 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -355,6 +355,7 @@ + @@ -391,6 +392,7 @@ + @@ -843,6 +845,7 @@ + diff --git a/src/openrct2/localisation/StringIds.h b/src/openrct2/localisation/StringIds.h index e2e5701d5c..b34413d542 100644 --- a/src/openrct2/localisation/StringIds.h +++ b/src/openrct2/localisation/StringIds.h @@ -112,6 +112,7 @@ enum : uint16_t STR_RIDE_NAME_HYBRID_COASTER = 93, STR_RIDE_NAME_SINGLE_RAIL_ROLLER_COASTER = 94, STR_RIDE_NAME_ALPINE_COASTER = 95, + STR_RIDE_NAME_CLASSIC_WOODEN_ROLLER_COASTER = 96, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER = 512, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER = 513, @@ -204,6 +205,7 @@ enum : uint16_t STR_RIDE_DESCRIPTION_HYBRID_COASTER = 603, STR_RIDE_DESCRIPTION_SINGLE_RAIL_ROLLER_COASTER = 604, STR_RIDE_DESCRIPTION_ALPINE_COASTER = 605, + STR_RIDE_DESCRIPTION_CLASSIC_WOODEN_ROLLER_COASTER = 606, STR_GUEST_X = 767, STR_HANDYMAN_X = 768, diff --git a/src/openrct2/network/NetworkBase.cpp b/src/openrct2/network/NetworkBase.cpp index ffa0abcf1d..f6d795dbd5 100644 --- a/src/openrct2/network/NetworkBase.cpp +++ b/src/openrct2/network/NetworkBase.cpp @@ -42,7 +42,7 @@ // This string specifies which version of network stream current build uses. // It is used for making sure only compatible builds get connected, even within // single OpenRCT2 version. -#define NETWORK_STREAM_VERSION "8" +#define NETWORK_STREAM_VERSION "9" #define NETWORK_STREAM_ID OPENRCT2_VERSION "-" NETWORK_STREAM_VERSION static Peep* _pickup_peep = nullptr; diff --git a/src/openrct2/park/ParkFile.h b/src/openrct2/park/ParkFile.h index 27bf8378a3..d0c172a532 100644 --- a/src/openrct2/park/ParkFile.h +++ b/src/openrct2/park/ParkFile.h @@ -8,10 +8,10 @@ struct ObjectRepositoryItem; namespace OpenRCT2 { // Current version that is saved. - constexpr uint32_t PARK_FILE_CURRENT_VERSION = 13; + constexpr uint32_t PARK_FILE_CURRENT_VERSION = 14; // The minimum version that is forwards compatible with the current version. - constexpr uint32_t PARK_FILE_MIN_VERSION = 12; + constexpr uint32_t PARK_FILE_MIN_VERSION = 14; // The minimum version that is backwards compatible with the current version. // If this is increased beyond 0, uncomment the checks in ParkFile.cpp and Context.cpp! diff --git a/src/openrct2/rct1/Tables.cpp b/src/openrct2/rct1/Tables.cpp index ce5633f20d..8b86514cf7 100644 --- a/src/openrct2/rct1/Tables.cpp +++ b/src/openrct2/rct1/Tables.cpp @@ -172,7 +172,7 @@ namespace RCT1 static uint8_t map[] = { - RIDE_TYPE_WOODEN_ROLLER_COASTER, // RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER + RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER,// RCT1_RIDE_TYPE_WOODEN_ROLLER_COASTER RIDE_TYPE_STAND_UP_ROLLER_COASTER, // RCT1_RIDE_TYPE_STAND_UP_STEEL_ROLLER_COASTER RIDE_TYPE_SUSPENDED_SWINGING_COASTER, // RCT1_RIDE_TYPE_SUSPENDED_ROLLER_COASTER RIDE_TYPE_INVERTED_ROLLER_COASTER, // RCT1_RIDE_TYPE_INVERTED_ROLLER_COASTER diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index a8f7b45d9f..94b46880f4 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -598,6 +598,7 @@ enum RIDE_TYPE_HYBRID_COASTER, RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER, RIDE_TYPE_ALPINE_COASTER, + RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER, RIDE_TYPE_COUNT }; diff --git a/src/openrct2/ride/RideData.cpp b/src/openrct2/ride/RideData.cpp index 2e79f12a10..7485b2658f 100644 --- a/src/openrct2/ride/RideData.cpp +++ b/src/openrct2/ride/RideData.cpp @@ -33,6 +33,7 @@ #include "coaster/meta/AlpineCoaster.h" #include "coaster/meta/BobsleighCoaster.h" #include "coaster/meta/ClassicMiniRollerCoaster.h" +#include "coaster/meta/ClassicWoodenRollerCoaster.h" #include "coaster/meta/CompactInvertedCoaster.h" #include "coaster/meta/CorkscrewRollerCoaster.h" #include "coaster/meta/FlyingRollerCoaster.h" @@ -334,6 +335,7 @@ constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = { /* RIDE_TYPE_HYBRID_COASTER */ HybridCoasterRTD, /* RIDE_TYPE_SINGLE_RAIL_ROLLER_COASTER */ SingleRailRollerCoasterRTD, /* RIDE_TYPE_ALPINE_COASTER */ AlpineCoasterRTD, + /* RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER */ ClassicWoodenRollerCoasterRTD, }; bool RideTypeDescriptor::HasFlag(uint64_t flag) const diff --git a/src/openrct2/ride/TrackPaint.h b/src/openrct2/ride/TrackPaint.h index 7b2651bfa5..cf537dd56f 100644 --- a/src/openrct2/ride/TrackPaint.h +++ b/src/openrct2/ride/TrackPaint.h @@ -483,3 +483,4 @@ namespace AlpineRC { TRACK_PAINT_FUNCTION GetTrackPaintFunction(int32_t trackType); } +TRACK_PAINT_FUNCTION get_track_paint_function_classic_wooden_rc(int32_t trackType); diff --git a/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp b/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp new file mode 100644 index 0000000000..f6333befc6 --- /dev/null +++ b/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp @@ -0,0 +1,1978 @@ +/***************************************************************************** + * Copyright (c) 2014-2022 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#include "../../drawing/Drawing.h" +#include "../../interface/Viewport.h" +#include "../../paint/Paint.h" +#include "../../paint/Supports.h" +#include "../../paint/tile_element/Paint.TileElement.h" +#include "../../sprites.h" +#include "../../world/Map.h" +#include "../RideData.h" +#include "../TrackData.h" +#include "../TrackPaint.h" +#include "WoodenRollerCoaster.h" + +enum +{ + SPR_CLASSIC_WOODEN_RC_BRAKE_0 = SPR_CSG_BEGIN + 64985, + SPR_CLASSIC_WOODEN_RC_BRAKE_1 = SPR_CSG_BEGIN + 64986, + + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE = SPR_CSG_BEGIN + 64788, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE = SPR_CSG_BEGIN + 64789, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW = SPR_CSG_BEGIN + 64790, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW = SPR_CSG_BEGIN + 64791, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE = SPR_CSG_BEGIN + 64816, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW = SPR_CSG_BEGIN + 64817, + + SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE = SPR_CSG_BEGIN + 64792, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE = SPR_CSG_BEGIN + 64793, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW = SPR_CSG_BEGIN + 64794, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW = SPR_CSG_BEGIN + 64795, + SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW = SPR_CSG_BEGIN + 64818, + + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SW_NE = SPR_CSG_BEGIN + 64796, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NW_SE = SPR_CSG_BEGIN + 64797, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NE_SW = SPR_CSG_BEGIN + 64798, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SE_NW = SPR_CSG_BEGIN + 64799, + + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SW_NE = SPR_CSG_BEGIN + 64800, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NW_SE = SPR_CSG_BEGIN + 64801, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NE_SW = SPR_CSG_BEGIN + 64802, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SE_NW = SPR_CSG_BEGIN + 64803, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NW_SE = SPR_CSG_BEGIN + 64819, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NE_SW = SPR_CSG_BEGIN + 64820, + + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SW_NE = SPR_CSG_BEGIN + 64804, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NW_SE = SPR_CSG_BEGIN + 64805, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NE_SW = SPR_CSG_BEGIN + 64806, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SE_NW = SPR_CSG_BEGIN + 64807, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NW_SE = SPR_CSG_BEGIN + 64821, + SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NE_SW = SPR_CSG_BEGIN + 64822, + + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SW_NE = SPR_CSG_BEGIN + 64808, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NW_SE = SPR_CSG_BEGIN + 64809, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NE_SW = SPR_CSG_BEGIN + 64810, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SE_NW = SPR_CSG_BEGIN + 64811, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NW_SE = SPR_CSG_BEGIN + 64823, + SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NE_SW = SPR_CSG_BEGIN + 64824, + + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SW_NE = SPR_CSG_BEGIN + 64812, + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NW_SE = SPR_CSG_BEGIN + 64813, + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NE_SW = SPR_CSG_BEGIN + 64814, + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SE_NW = SPR_CSG_BEGIN + 64815, + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NW_SE = SPR_CSG_BEGIN + 64825, + SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NE_SW = SPR_CSG_BEGIN + 64826, + + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0 = 23635 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2 = 23636 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3 = 23637 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5 = 23638 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6 = 23639 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0 = 23640 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2 = 23641 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3 = 23642 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5 = 23643 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6 = 23644 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0 = 23645 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2 = 23646 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3 = 23647 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5 = 23648 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6 = 23649 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0 = 23650 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2 = 23651 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3 = 23652 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5 = 23653 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6 = 23654 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0 = 23655 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2 = 23656 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3 = 23657 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5 = 23658 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6 = 23659 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0 = 23660 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2 = 23661 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3 = 23662 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5 = 23663 + SPR_CSG_BEGIN + 41290, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6 = 23664 + SPR_CSG_BEGIN + 41290, + + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_0 = SPR_CSG_BEGIN + 65129, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_2 = SPR_CSG_BEGIN + 65130, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_3 = SPR_CSG_BEGIN + 65131, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_0 = SPR_CSG_BEGIN + 65132, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_2 = SPR_CSG_BEGIN + 65133, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_3 = SPR_CSG_BEGIN + 65134, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_0 = SPR_CSG_BEGIN + 65135, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_2 = SPR_CSG_BEGIN + 65136, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_3 = SPR_CSG_BEGIN + 65137, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_0 = SPR_CSG_BEGIN + 65138, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_2 = SPR_CSG_BEGIN + 65139, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_3 = SPR_CSG_BEGIN + 65140, + + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_0 = SPR_CSG_BEGIN + 65141, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_2 = SPR_CSG_BEGIN + 65142, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_3 = SPR_CSG_BEGIN + 65143, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_0 = SPR_CSG_BEGIN + 65144, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_2 = SPR_CSG_BEGIN + 65145, + SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_3 = SPR_CSG_BEGIN + 65146, + + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_0 = SPR_CSG_BEGIN + 65309, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_1 = SPR_CSG_BEGIN + 65310, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_2 = SPR_CSG_BEGIN + 65311, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_3 = SPR_CSG_BEGIN + 65312, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_0 = SPR_CSG_BEGIN + 65313, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_2 = SPR_CSG_BEGIN + 65314, + + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_0 = SPR_CSG_BEGIN + 65315, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_1 = SPR_CSG_BEGIN + 65316, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_2 = SPR_CSG_BEGIN + 65317, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_3 = SPR_CSG_BEGIN + 65318, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_0 = SPR_CSG_BEGIN + 65319, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_2 = SPR_CSG_BEGIN + 65320, + + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_0 = SPR_CSG_BEGIN + 65321, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_1 = SPR_CSG_BEGIN + 65322, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_2 = SPR_CSG_BEGIN + 65323, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_3 = SPR_CSG_BEGIN + 65324, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_0 = SPR_CSG_BEGIN + 65325, + SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_2 = SPR_CSG_BEGIN + 65326, + + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_0 = SPR_CSG_BEGIN + 65327, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_1 = SPR_CSG_BEGIN + 65328, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_2 = SPR_CSG_BEGIN + 65329, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_3 = SPR_CSG_BEGIN + 65330, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_0 = SPR_CSG_BEGIN + 65331, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_2 = SPR_CSG_BEGIN + 65332, + + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_0 = SPR_CSG_BEGIN + 65333, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_1 = SPR_CSG_BEGIN + 65334, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_2 = SPR_CSG_BEGIN + 65335, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_3 = SPR_CSG_BEGIN + 65336, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_0 = SPR_CSG_BEGIN + 65337, + SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_2 = SPR_CSG_BEGIN + 65338, + + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_0 = SPR_CSG_BEGIN + 65339, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_1 = SPR_CSG_BEGIN + 65340, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_2 = SPR_CSG_BEGIN + 65341, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_3 = SPR_CSG_BEGIN + 65342, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_0 = SPR_CSG_BEGIN + 65343, + SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_2 = SPR_CSG_BEGIN + 65344, + + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_0 = SPR_CSG_BEGIN + 65345, + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_1 = SPR_CSG_BEGIN + 65346, + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_2 = SPR_CSG_BEGIN + 65347, + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_3 = SPR_CSG_BEGIN + 65348, + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_0 = SPR_CSG_BEGIN + 65349, + SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_2 = SPR_CSG_BEGIN + 65350, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_0 = SPR_CSG_BEGIN + 65399, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_1 = SPR_CSG_BEGIN + 65400, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_2 = SPR_CSG_BEGIN + 65401, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_4 = SPR_CSG_BEGIN + 65402, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_0 = SPR_CSG_BEGIN + 65415, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_1 = SPR_CSG_BEGIN + 65416, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_2 = SPR_CSG_BEGIN + 65417, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_4 = SPR_CSG_BEGIN + 65418, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_0 = SPR_CSG_BEGIN + 65403, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_1 = SPR_CSG_BEGIN + 65404, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_2 = SPR_CSG_BEGIN + 65405, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_4 = SPR_CSG_BEGIN + 65406, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_0 = SPR_CSG_BEGIN + 65407, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_1 = SPR_CSG_BEGIN + 65408, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_2 = SPR_CSG_BEGIN + 65409, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_4 = SPR_CSG_BEGIN + 65410, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_0 = SPR_CSG_BEGIN + 65419, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_1 = SPR_CSG_BEGIN + 65420, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_2 = SPR_CSG_BEGIN + 65421, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_4 = SPR_CSG_BEGIN + 65422, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_0 = SPR_CSG_BEGIN + 65411, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_1 = SPR_CSG_BEGIN + 65412, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_2 = SPR_CSG_BEGIN + 65413, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_4 = SPR_CSG_BEGIN + 65414, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_0 = SPR_CSG_BEGIN + 65399 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_1 = SPR_CSG_BEGIN + 65400 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_2 = SPR_CSG_BEGIN + 65401 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_4 = SPR_CSG_BEGIN + 65402 + 24, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_0 = SPR_CSG_BEGIN + 65403 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_1 = SPR_CSG_BEGIN + 65404 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_2 = SPR_CSG_BEGIN + 65405 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_4 = SPR_CSG_BEGIN + 65406 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_0 = SPR_CSG_BEGIN + 65439, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_1 = SPR_CSG_BEGIN + 65440, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_2 = SPR_CSG_BEGIN + 65441, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_4 = SPR_CSG_BEGIN + 65442, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_0 = SPR_CSG_BEGIN + 65407 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_1 = SPR_CSG_BEGIN + 65408 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_2 = SPR_CSG_BEGIN + 65409 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_4 = SPR_CSG_BEGIN + 65410 + 24, + + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_0 = SPR_CSG_BEGIN + 65411 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_1 = SPR_CSG_BEGIN + 65412 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_2 = SPR_CSG_BEGIN + 65413 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_4 = SPR_CSG_BEGIN + 65414 + 24, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_0 = SPR_CSG_BEGIN + 65443, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_1 = SPR_CSG_BEGIN + 65444, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_2 = SPR_CSG_BEGIN + 65445, + SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_4 = SPR_CSG_BEGIN + 65446, +}; + +static void classic_wooden_rc_track_brakes( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1] = { + { + { SPR_CLASSIC_WOODEN_RC_BRAKE_0, 0, { 0, 2, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BRAKE_1, 0, { 2, 1, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BRAKE_0, 0, { 0, 2, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BRAKE_1, 0, { 2, 1, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + } + }; + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence], height); + wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_flat_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, + const TrackElement& trackElement) + +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } } + }; + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_flat_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_left_bank_to_flat( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_flat_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_right_bank_to_flat( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_flat_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_left_bank_to_25_deg_up( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 1 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_8); + } + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 48, 0x20); +} + +static void classic_wooden_rc_track_right_bank_to_25_deg_up( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 1 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_8); + } + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 48, 0x20); +} + +static void classic_wooden_rc_track_25_deg_up_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 5 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 40, 0x20); +} + +static void classic_wooden_rc_track_25_deg_up_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][1][2] = { + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + {}, + } }, + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + } }, + + { { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + } }, + { + { + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + {}, + }, + } + }; + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + wooden_a_supports_paint_setup(session, direction & 1, 5 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) + { + paint_util_push_tunnel_rotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); + } + else + { + paint_util_push_tunnel_rotated(session, direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 40, 0x20); +} + +static void classic_wooden_rc_track_left_bank_to_25_deg_down( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_25_deg_up_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_right_bank_to_25_deg_down( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_25_deg_up_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_25_deg_down_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_right_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_25_deg_down_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_left_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_banked_right_quarter_turn_5( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][7][2] = { + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, + 0, + { 0, 16, 0 }, + { 0, 16, 27 }, + { 32, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, + 0, + { 16, 0, 0 }, + { 16, 0, 27 }, + { 16, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3, 0, { 16, 16, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, + 0, + { 16, 16, 0 }, + { 16, 16, 27 }, + { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + }, + }, + }; + static constexpr const int8_t supportType[4][7] = { + { 0, -1, 4, 2, -1, 4, 1 }, + { 1, -1, 5, 3, -1, 5, 0 }, + { 0, -1, 2, 4, -1, 2, 1 }, + { 1, -1, 3, 5, -1, 3, 0 }, + }; + + static constexpr const int blockedSegments[7] = { + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, + SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, + SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + }; + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + track_paint_util_right_quarter_turn_5_tiles_tunnel(session, height, direction, trackSequence, TUNNEL_SQUARE_FLAT); + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(blockedSegments[trackSequence], direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_banked_left_quarter_turn_5( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + classic_wooden_rc_track_banked_right_quarter_turn_5( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_right_quarter_turn_3_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_0, 0, { 0, 6, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_0, 0, { 0, 6, 0 }, { 0, 6, 27 }, { 32, 20, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_2, 0, { 16, 16, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_2, + 0, + { 16, 16, 0 }, + { 16, 16, 27 }, + { 16, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_3, 0, { 6, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_3, 0, { 6, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_0, 0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_3, 0, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_0, 0, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_0, 0, { 0, 0, 0 }, { 0, 6, 27 }, { 32, 20, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_3, 0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_3, 0, { 0, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_0, 0, { 6, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_2, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_3, 0, { 0, 6, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { 4, -1, -1, 4 }, + { 5, -1, -1, 5 }, + { 2, -1, -1, 2 }, + { 3, -1, -1, 3 }, + }; + + static constexpr const int blockedSegments[4] = { + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + 0, + SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + }; + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + track_paint_util_right_quarter_turn_3_tiles_tunnel(session, height, direction, trackSequence, TUNNEL_SQUARE_FLAT); + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(blockedSegments[trackSequence], direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_left_quarter_turn_3_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + classic_wooden_rc_track_right_quarter_turn_3_bank(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_left_eighth_bank_to_diag( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][5][2] = { + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_4, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 34, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_2, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_2, + 0, + { 0, 0, 0 }, + { 16, 16, 27 }, + { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 18, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_4, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 } }, + }, + }, + }; + + static constexpr const int8_t supportType[4][5] = { + { 0, 0, 3, 5, -1 }, + { 1, 1, 4, 2, -1 }, + { 0, 0, 5, 3, -1 }, + { 1, 1, 2, 4, -1 }, + }; + + static constexpr const int blockedSegments[5] = { + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + }; + + if (trackSequence == 0 && (direction == 0 || direction == 3)) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + } + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(blockedSegments[trackSequence], direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_right_eighth_bank_to_diag( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][5][2] = { + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_1, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_1, + 0, + { 0, 0, 0 }, + { 0, 16, 27 }, + { 32, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_4, + 0, + { 0, 0, 0 }, + { 16, 0, 27 }, + { 16, 16, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 0 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_2, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_4, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 34, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_2, 0, { 0, 0, 0 }, { 4, 4, 0 }, { 28, 28, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_2, 0, { 0, 0, 0 }, { 4, 4, 27 }, { 28, 28, 0 } }, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 18, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_4, + 0, + { 0, 0, 0 }, + { 0, 16, 27 }, + { 16, 16, 0 } }, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 0 } }, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_4, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][5] = { + { 0, 0, 2, 4, -1 }, + { 1, 1, 3, 5, -1 }, + { 0, 0, 4, 2, -1 }, + { 1, 1, 5, 3, -1 }, + }; + + static constexpr const int blockedSegments[5] = { + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, + }; + + if (trackSequence == 0 && (direction == 0 || direction == 3)) + { + paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); + } + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + + paint_util_set_segment_support_height( + session, paint_util_rotate_segments(blockedSegments[trackSequence], direction), 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_left_eighth_bank_to_orthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + classic_wooden_rc_track_right_eighth_bank_to_diag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_right_eighth_bank_to_orthogonal( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + classic_wooden_rc_track_left_eighth_bank_to_diag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_flat_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_diag_flat_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_diag_left_bank_to_flat( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_flat_to_right_bank( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_right_bank_to_flat( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_flat_to_left_bank(session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 32, 0x20); +} + +static void classic_wooden_rc_track_diag_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_left_bank(session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_left_bank_to_25_deg_up( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 56, 0x20); +} + +static void classic_wooden_rc_track_diag_right_bank_to_25_deg_up( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 56, 0x20); +} + +static void classic_wooden_rc_track_diag_25_deg_up_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 56, 0x20); +} + +static void classic_wooden_rc_track_diag_25_deg_up_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + static constexpr const sprite_bb_2 imageIds[4][4][2] = { + { + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + }, + { + { + {}, + {}, + }, + { + {}, + {}, + }, + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + }, + { + {}, + {}, + }, + }, + { + { + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + { + {}, + {}, + }, + }, + }; + + static constexpr const int8_t supportType[4][4] = { + { -1, 2, 4, -1 }, + { -1, 3, 5, -1 }, + { -1, 4, 2, -1 }, + { -1, 5, 3, -1 }, + }; + + if (supportType[direction][trackSequence] != -1) + { + wooden_a_supports_paint_setup( + session, supportType[direction][trackSequence], 0, height, session.TrackColours[SCHEME_SUPPORTS]); + } + + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][0], height); + wooden_rc_track_paint_bb(session, &imageIds[direction][trackSequence][1], height); + paint_util_set_segment_support_height(session, SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(session, height + 56, 0x20); +} + +static void classic_wooden_rc_track_diag_left_bank_to_25_deg_down( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_25_deg_up_to_right_bank( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_right_bank_to_25_deg_down( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_25_deg_up_to_left_bank( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_25_deg_down_to_left_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_right_bank_to_25_deg_up( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +static void classic_wooden_rc_track_diag_25_deg_down_to_right_bank( + paint_session& session, const Ride& ride, uint8_t trackSequence, Direction direction, int32_t height, + const TrackElement& trackElement) +{ + classic_wooden_rc_track_diag_left_bank_to_25_deg_up( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); +} + +// Stylistically, this coaster is _very_ similar to the regular Wooden Roller Coaster. +// The only difference is to which parts the colours are applied, and the degree of the banking. +// As such, all non-banked pieces are simply drawn as regular wooden roller coaster pieces with a different paint scheme. +TRACK_PAINT_FUNCTION get_track_paint_function_classic_wooden_rc(int32_t trackType) +{ + if (!is_csg_loaded()) + { + return get_track_paint_function_classic_wooden_rc_fallback(trackType); + } + + switch (trackType) + { + case TrackElemType::Brakes: + return classic_wooden_rc_track_brakes; + case TrackElemType::FlatToLeftBank: + return classic_wooden_rc_track_flat_to_left_bank; + case TrackElemType::FlatToRightBank: + return classic_wooden_rc_track_flat_to_right_bank; + case TrackElemType::LeftBankToFlat: + return classic_wooden_rc_track_left_bank_to_flat; + case TrackElemType::RightBankToFlat: + return classic_wooden_rc_track_right_bank_to_flat; + case TrackElemType::BankedLeftQuarterTurn5Tiles: + return classic_wooden_rc_track_banked_left_quarter_turn_5; + case TrackElemType::BankedRightQuarterTurn5Tiles: + return classic_wooden_rc_track_banked_right_quarter_turn_5; + case TrackElemType::LeftBankToUp25: + return classic_wooden_rc_track_left_bank_to_25_deg_up; + case TrackElemType::RightBankToUp25: + return classic_wooden_rc_track_right_bank_to_25_deg_up; + case TrackElemType::Up25ToLeftBank: + return classic_wooden_rc_track_25_deg_up_to_left_bank; + case TrackElemType::Up25ToRightBank: + return classic_wooden_rc_track_25_deg_up_to_right_bank; + case TrackElemType::LeftBankToDown25: + return classic_wooden_rc_track_left_bank_to_25_deg_down; + case TrackElemType::RightBankToDown25: + return classic_wooden_rc_track_right_bank_to_25_deg_down; + case TrackElemType::Down25ToLeftBank: + return classic_wooden_rc_track_25_deg_down_to_left_bank; + case TrackElemType::Down25ToRightBank: + return classic_wooden_rc_track_25_deg_down_to_right_bank; + case TrackElemType::LeftBank: + return classic_wooden_rc_track_left_bank; + case TrackElemType::RightBank: + return classic_wooden_rc_track_right_bank; + case TrackElemType::LeftBankedQuarterTurn3Tiles: + return classic_wooden_rc_track_left_quarter_turn_3_bank; + case TrackElemType::RightBankedQuarterTurn3Tiles: + return classic_wooden_rc_track_right_quarter_turn_3_bank; + case TrackElemType::LeftEighthBankToDiag: + return classic_wooden_rc_track_left_eighth_bank_to_diag; + case TrackElemType::RightEighthBankToDiag: + return classic_wooden_rc_track_right_eighth_bank_to_diag; + case TrackElemType::LeftEighthBankToOrthogonal: + return classic_wooden_rc_track_left_eighth_bank_to_orthogonal; + case TrackElemType::RightEighthBankToOrthogonal: + return classic_wooden_rc_track_right_eighth_bank_to_orthogonal; + case TrackElemType::DiagFlatToLeftBank: + return classic_wooden_rc_track_diag_flat_to_left_bank; + case TrackElemType::DiagFlatToRightBank: + return classic_wooden_rc_track_diag_flat_to_right_bank; + case TrackElemType::DiagLeftBankToFlat: + return classic_wooden_rc_track_diag_left_bank_to_flat; + case TrackElemType::DiagRightBankToFlat: + return classic_wooden_rc_track_diag_right_bank_to_flat; + case TrackElemType::DiagLeftBankToUp25: + return classic_wooden_rc_track_diag_left_bank_to_25_deg_up; + case TrackElemType::DiagRightBankToUp25: + return classic_wooden_rc_track_diag_right_bank_to_25_deg_up; + case TrackElemType::DiagUp25ToLeftBank: + return classic_wooden_rc_track_diag_25_deg_up_to_left_bank; + case TrackElemType::DiagUp25ToRightBank: + return classic_wooden_rc_track_diag_25_deg_up_to_right_bank; + case TrackElemType::DiagLeftBankToDown25: + return classic_wooden_rc_track_diag_left_bank_to_25_deg_down; + case TrackElemType::DiagRightBankToDown25: + return classic_wooden_rc_track_diag_right_bank_to_25_deg_down; + case TrackElemType::DiagDown25ToLeftBank: + return classic_wooden_rc_track_diag_25_deg_down_to_left_bank; + case TrackElemType::DiagDown25ToRightBank: + return classic_wooden_rc_track_diag_25_deg_down_to_right_bank; + case TrackElemType::DiagLeftBank: + return classic_wooden_rc_track_diag_left_bank; + case TrackElemType::DiagRightBank: + return classic_wooden_rc_track_diag_right_bank; + } + + return get_track_paint_function_classic_wooden_rc_fallback(trackType); +} diff --git a/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp b/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp index 4dcf014f5f..4383cd038e 100644 --- a/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp +++ b/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2014-2020 OpenRCT2 developers + * Copyright (c) 2014-2022 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 @@ -7,6 +7,8 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ +#include "WoodenRollerCoaster.h" + #include "../../config/Config.h" #include "../../drawing/Drawing.h" #include "../../interface/Viewport.h" @@ -20,15 +22,6 @@ #include "../TrackData.h" #include "../TrackPaint.h" -struct sprite_bb_2 -{ - uint32_t sprite_id_a; - uint32_t sprite_id_b; - CoordsXYZ offset; - CoordsXYZ bb_offset; - CoordsXYZ bb_size; -}; - enum { SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE = 23497, @@ -455,52 +448,13 @@ static constexpr const uint32_t _wooden_rc_station_block_brakes_image_ids[4][2] { SPR_G2_WOODEN_RC_STATION_BLOCK_BRAKE_OPEN_NW_SE, SPR_G2_WOODEN_RC_STATION_BLOCK_BRAKE_CLOSED_NW_SE }, }; -static uint32_t wooden_rc_get_track_colour(paint_session& session) -{ - return (session.TrackColours[SCHEME_TRACK] & ~0xF80000) | session.TrackColours[SCHEME_SUPPORTS]; -} - -static uint32_t wooden_rc_get_rails_colour(paint_session& session) +uint32_t wooden_rc_get_rails_colour(paint_session& session) { return session.TrackColours[SCHEME_TRACK]; } -static paint_struct* wooden_rc_track_paint( - paint_session& session, uint32_t imageIdTrack, uint32_t imageIdRails, uint8_t direction, int8_t x_offset, int8_t y_offset, - int16_t bound_box_length_x, int16_t bound_box_length_y, int8_t bound_box_length_z, int16_t z_offset, - int16_t bound_box_offset_x, int16_t bound_box_offset_y, int16_t bound_box_offset_z) -{ - uint32_t imageId = imageIdTrack | wooden_rc_get_track_colour(session); - uint32_t railsImageId = imageIdRails | wooden_rc_get_rails_colour(session); - - PaintAddImageAsParentRotated( - session, direction, imageId, { x_offset, y_offset, z_offset }, - { bound_box_length_x, bound_box_length_y, bound_box_length_z }, - { bound_box_offset_x, bound_box_offset_y, bound_box_offset_z }); - return PaintAddImageAsChildRotated( - session, direction, railsImageId, { x_offset, y_offset, z_offset }, - { bound_box_length_x, bound_box_length_y, bound_box_length_z }, - { bound_box_offset_x, bound_box_offset_y, bound_box_offset_z }); -} - -static void wooden_rc_track_paint_bb(paint_session& session, const sprite_bb_2* bb, int16_t height) -{ - if (bb->sprite_id_a == 0) - return; - - uint32_t imageId = bb->sprite_id_a | wooden_rc_get_track_colour(session); - uint32_t railsImageId = bb->sprite_id_b | wooden_rc_get_rails_colour(session); - - PaintAddImageAsParent( - session, imageId, { bb->offset.x, bb->offset.y, height + bb->offset.z }, - { bb->bb_size.x, bb->bb_size.y, bb->bb_size.z }, { bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z }); - PaintAddImageAsChild( - session, railsImageId, { static_cast(bb->offset.x), static_cast(bb->offset.y), height + bb->offset.z }, - { bb->bb_size.x, bb->bb_size.y, static_cast(bb->bb_size.z) }, - { bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z }); -} - /** rct2: 0x008AC568 */ +template static void wooden_rc_track_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -519,7 +473,7 @@ static void wooden_rc_track_flat( }; uint8_t isChained = trackElement.HasChain() ? 1 : 0; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][isChained], railsImageIds[direction][isChained], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -528,6 +482,7 @@ static void wooden_rc_track_flat( paint_util_set_general_support_height(session, height + 32, 0x20); } +template static void wooden_rc_track_station( paint_session& session, const Ride& ride, [[maybe_unused]] uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -544,11 +499,11 @@ static void wooden_rc_track_station( { const auto brakeImg = trackElement.BlockBrakeClosed() ? _wooden_rc_station_block_brakes_image_ids[direction][1] : _wooden_rc_station_block_brakes_image_ids[direction][0]; - wooden_rc_track_paint(session, brakeImg, SPR_G2_EMPTY, direction, 0, 2, 32, 27, 2, height, 0, 2, height); + wooden_rc_track_paint(session, brakeImg, SPR_G2_EMPTY, direction, 0, 2, 32, 27, 2, height, 0, 2, height); } else { - wooden_rc_track_paint( + wooden_rc_track_paint( session, stationImageIds[direction][0], stationImageIds[direction][1], direction, 0, 2, 32, 27, 2, height, 0, 2, height); } @@ -560,6 +515,7 @@ static void wooden_rc_track_station( } /** rct2: 0x008AC578 */ +template static void wooden_rc_track_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -620,12 +576,12 @@ static void wooden_rc_track_25_deg_up( }; uint8_t isChained = trackElement.HasChain() ? 1 : 0; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][0], imageIds[isChained][direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } @@ -645,6 +601,7 @@ static void wooden_rc_track_25_deg_up( } /** rct2: 0x008AC588 */ +template static void wooden_rc_track_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -658,12 +615,12 @@ static void wooden_rc_track_60_deg_up( if (direction == 0 || direction == 3) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); } else { - session.WoodenSupportsPrependTo = wooden_rc_track_paint( + session.WoodenSupportsPrependTo = wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 2, 24, 93, height, 28, 4, height - 16); } wooden_a_supports_paint_setup(session, direction & 1, 21 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -682,6 +639,7 @@ static void wooden_rc_track_60_deg_up( } /** rct2: 0x008AC598 */ +template static void wooden_rc_track_flat_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -742,12 +700,12 @@ static void wooden_rc_track_flat_to_25_deg_up( }; uint8_t isChained = trackElement.HasChain() ? 1 : 0; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][0], imageIds[isChained][direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } @@ -767,6 +725,7 @@ static void wooden_rc_track_flat_to_25_deg_up( } /** rct2: 0x008AC5A8 */ +template static void wooden_rc_track_25_deg_up_to_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -800,14 +759,14 @@ static void wooden_rc_track_25_deg_up_to_60_deg_up( if (direction == 0 || direction == 3) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); } else { - session.WoodenSupportsPrependTo = wooden_rc_track_paint( + session.WoodenSupportsPrependTo = wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 2, 24, 43, height, 28, 4, height + 2); - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 2, 43, height, 0, 4, height); } wooden_a_supports_paint_setup(session, direction & 1, 13 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -826,6 +785,7 @@ static void wooden_rc_track_25_deg_up_to_60_deg_up( } /** rct2: 0x008AC5B8 */ +template static void wooden_rc_track_60_deg_up_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -859,14 +819,14 @@ static void wooden_rc_track_60_deg_up_to_25_deg_up( if (direction == 0 || direction == 3) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); } else { - session.WoodenSupportsPrependTo = wooden_rc_track_paint( + session.WoodenSupportsPrependTo = wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 24, 1, 61, height, 4, 28, height - 16); - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 2, 43, height, 0, 4, height); } wooden_a_supports_paint_setup(session, direction & 1, 17 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -885,6 +845,7 @@ static void wooden_rc_track_60_deg_up_to_25_deg_up( } /** rct2: 0x008AC5C8 */ +template static void wooden_rc_track_25_deg_up_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -945,12 +906,12 @@ static void wooden_rc_track_25_deg_up_to_flat( }; uint8_t isChained = trackElement.HasChain() ? 1 : 0; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][0], imageIds[isChained][direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } @@ -970,53 +931,60 @@ static void wooden_rc_track_25_deg_up_to_flat( } /** rct2: 0x008AC5D8 */ +template static void wooden_rc_track_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC5E8 */ +template static void wooden_rc_track_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC5F8 */ +template static void wooden_rc_track_flat_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_flat(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_to_flat(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC608 */ +template static void wooden_rc_track_25_deg_down_to_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_60_deg_up_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_60_deg_up_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC618 */ +template static void wooden_rc_track_60_deg_down_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_to_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC628 */ +template static void wooden_rc_track_25_deg_down_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_flat_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_flat_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } +template static void wooden_rc_track_right_quarter_turn_5( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1358,8 +1326,8 @@ static void wooden_rc_track_right_quarter_turn_5( { 1, -1, 3, 5, -1, 3, 0 }, }; - wooden_rc_track_paint_bb(session, &imageIds[0][direction][trackSequence], height); - wooden_rc_track_paint_bb(session, &imageIds[1][direction][trackSequence], height); + wooden_rc_track_paint_bb(session, &imageIds[0][direction][trackSequence], height); + wooden_rc_track_paint_bb(session, &imageIds[1][direction][trackSequence], height); track_paint_util_right_quarter_turn_5_tiles_tunnel(session, height, direction, trackSequence, TUNNEL_SQUARE_FLAT); if (supportType[direction][trackSequence] != -1) @@ -1399,15 +1367,17 @@ static void wooden_rc_track_right_quarter_turn_5( paint_util_set_general_support_height(session, height + 32, 0x20); } +template static void wooden_rc_track_left_quarter_turn_5( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_right_quarter_turn_5(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_quarter_turn_5(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008AC658 */ +template static void wooden_rc_track_flat_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1439,11 +1409,11 @@ static void wooden_rc_track_flat_to_left_bank( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 3) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -1453,6 +1423,7 @@ static void wooden_rc_track_flat_to_left_bank( } /** rct2: 0x008AC668 */ +template static void wooden_rc_track_flat_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1484,11 +1455,11 @@ static void wooden_rc_track_flat_to_right_bank( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 0 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -1498,21 +1469,24 @@ static void wooden_rc_track_flat_to_right_bank( } /** rct2: 0x008AC678 */ +template static void wooden_rc_track_left_bank_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_flat_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_flat_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC688 */ +template static void wooden_rc_track_right_bank_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_flat_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_flat_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } +template static void wooden_rc_track_banked_right_quarter_turn_5( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1854,8 +1828,8 @@ static void wooden_rc_track_banked_right_quarter_turn_5( { 1, -1, 3, 5, -1, 3, 0 }, }; - wooden_rc_track_paint_bb(session, &imageIds[0][direction][trackSequence], height); - wooden_rc_track_paint_bb(session, &imageIds[1][direction][trackSequence], height); + wooden_rc_track_paint_bb(session, &imageIds[0][direction][trackSequence], height); + wooden_rc_track_paint_bb(session, &imageIds[1][direction][trackSequence], height); track_paint_util_right_quarter_turn_5_tiles_tunnel(session, height, direction, trackSequence, TUNNEL_SQUARE_FLAT); if (supportType[direction][trackSequence] != -1) @@ -1895,15 +1869,18 @@ static void wooden_rc_track_banked_right_quarter_turn_5( paint_util_set_general_support_height(session, height + 32, 0x20); } +template static void wooden_rc_track_banked_left_quarter_turn_5( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_banked_right_quarter_turn_5(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_banked_right_quarter_turn_5( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008AC6B8 */ +template static void wooden_rc_track_left_bank_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1935,11 +1912,11 @@ static void wooden_rc_track_left_bank_to_25_deg_up( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 1 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -1956,6 +1933,7 @@ static void wooden_rc_track_left_bank_to_25_deg_up( } /** rct2: 0x008AC6C8 */ +template static void wooden_rc_track_right_bank_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -1987,11 +1965,11 @@ static void wooden_rc_track_right_bank_to_25_deg_up( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 1 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -2008,6 +1986,7 @@ static void wooden_rc_track_right_bank_to_25_deg_up( } /** rct2: 0x008AC6D8 */ +template static void wooden_rc_track_25_deg_up_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2039,11 +2018,11 @@ static void wooden_rc_track_25_deg_up_to_left_bank( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 5 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -2060,6 +2039,7 @@ static void wooden_rc_track_25_deg_up_to_left_bank( } /** rct2: 0x008AC6E8 */ +template static void wooden_rc_track_25_deg_up_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2091,11 +2071,11 @@ static void wooden_rc_track_25_deg_up_to_right_bank( }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(session, direction & 1, 5 + direction, height, session.TrackColours[SCHEME_SUPPORTS]); @@ -2112,38 +2092,43 @@ static void wooden_rc_track_25_deg_up_to_right_bank( } /** rct2: 0x008AC6F8 */ +template static void wooden_rc_track_left_bank_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_to_right_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC708 */ +template static void wooden_rc_track_right_bank_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_to_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC718 */ +template static void wooden_rc_track_25_deg_down_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_right_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC728 */ +template static void wooden_rc_track_25_deg_down_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_left_bank_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC738 */ +template static void wooden_rc_track_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2155,7 +2140,7 @@ static void wooden_rc_track_left_bank( { SPR_WOODEN_RC_LEFT_BANK_SE_NW, SPR_WOODEN_RC_LEFT_BANK_RAILS_SE_NW }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -2164,14 +2149,16 @@ static void wooden_rc_track_left_bank( } /** rct2: 0x008AC748 */ +template static void wooden_rc_track_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC758 */ +template static void wooden_rc_track_left_quarter_turn_5_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2183,8 +2170,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23781, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23781, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24647, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2192,14 +2179,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23786, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23786, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24652, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23812, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23812, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24678, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 67 }); @@ -2207,8 +2194,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23791, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23791, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24657, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2216,8 +2203,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23796, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23796, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24662, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2241,8 +2228,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23782, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23782, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24648, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -2250,14 +2237,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23787, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23787, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24653, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23813, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23813, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24679, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 67 }); @@ -2265,8 +2252,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23792, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23792, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24658, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -2274,14 +2261,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23797, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23797, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24663, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23819, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23819, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24685, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 67 }); @@ -2300,8 +2287,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23783, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23783, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24649, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -2309,14 +2296,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23788, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23788, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24654, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23814, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 23814, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24680, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 59 }); @@ -2324,8 +2311,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23793, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23793, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24659, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -2333,14 +2320,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23798, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23798, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24664, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23820, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 23820, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24686, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 59 }); @@ -2365,8 +2352,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23784, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23784, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24650, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -2374,14 +2361,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23789, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23789, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24655, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23815, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23815, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24681, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -2389,14 +2376,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23794, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23794, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24660, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23817, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23817, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24683, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -2404,14 +2391,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23799, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23799, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24665, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23821, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23821, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24687, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 67 }); @@ -2430,8 +2417,8 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23785, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23785, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24651, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); @@ -2439,14 +2426,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23790, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23790, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24656, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23816, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23816, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24682, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2454,14 +2441,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23795, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23795, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24661, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23818, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23818, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24684, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2469,14 +2456,14 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23800, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23800, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24666, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23822, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23822, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24688, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2499,6 +2486,7 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up( } /** rct2: 0x008AC768 */ +template static void wooden_rc_track_right_quarter_turn_5_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2510,8 +2498,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23761, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23761, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24627, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2519,8 +2507,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23766, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23766, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24632, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2528,14 +2516,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23771, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23771, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24637, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23807, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23807, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24673, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 67 }); @@ -2543,8 +2531,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23776, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23776, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24642, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -2568,14 +2556,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23762, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23762, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24628, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23801, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23801, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24667, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 67 }); @@ -2583,8 +2571,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23767, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23767, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24633, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -2592,14 +2580,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23772, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23772, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24638, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23808, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23808, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24674, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 67 }); @@ -2607,8 +2595,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23777, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23777, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24643, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -2627,14 +2615,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23763, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23763, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24629, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23802, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 23802, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24668, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 59 }); @@ -2642,8 +2630,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23768, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23768, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24634, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -2651,14 +2639,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23773, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23773, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24639, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23809, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 23809, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24675, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 59 }); @@ -2666,8 +2654,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23778, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23778, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24644, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -2692,14 +2680,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23764, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23764, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24630, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23803, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23803, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24669, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 67 }); @@ -2707,14 +2695,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23769, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23769, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24635, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23805, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23805, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24671, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -2722,14 +2710,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23774, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23774, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24640, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23810, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23810, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24676, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -2737,8 +2725,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23779, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23779, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24645, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -2757,14 +2745,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23765, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23765, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24631, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23804, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23804, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24670, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2772,14 +2760,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23770, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23770, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24636, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23806, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23806, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24672, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2787,14 +2775,14 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23775, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23775, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24641, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23811, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23811, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24677, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -2802,8 +2790,8 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23780, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23780, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24646, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); @@ -2826,24 +2814,29 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up( } /** rct2: 0x008AC778 */ +template static void wooden_rc_track_left_quarter_turn_5_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_right_quarter_turn_5_25_deg_up(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008AC788 */ +template static void wooden_rc_track_right_quarter_turn_5_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_left_quarter_turn_5_25_deg_up(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008AC798 */ +template static void wooden_rc_track_s_bend_left( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -2855,8 +2848,8 @@ static void wooden_rc_track_s_bend_left( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23725, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23725, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24591, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -2864,14 +2857,14 @@ static void wooden_rc_track_s_bend_left( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23729, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23729, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24595, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23741, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23741, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24607, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -2879,8 +2872,8 @@ static void wooden_rc_track_s_bend_left( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23728, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23728, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24594, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -2888,14 +2881,14 @@ static void wooden_rc_track_s_bend_left( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23732, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23732, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24598, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23744, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23744, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24610, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 27 }); @@ -2914,8 +2907,8 @@ static void wooden_rc_track_s_bend_left( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23726, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23726, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24592, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); @@ -2923,14 +2916,14 @@ static void wooden_rc_track_s_bend_left( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23730, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23730, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24596, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23742, { 0, 0, height }, { 32, 26, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23742, { 0, 0, height }, + { 32, 26, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24608, { 0, 0, height }, { 32, 26, 0 }, { 0, 0, height + 27 }); @@ -2938,8 +2931,8 @@ static void wooden_rc_track_s_bend_left( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23727, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23727, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24593, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); @@ -2947,14 +2940,14 @@ static void wooden_rc_track_s_bend_left( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23731, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23731, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24597, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23743, { 0, 0, height }, { 32, 26, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23743, { 0, 0, height }, + { 32, 26, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24609, { 0, 0, height }, { 32, 26, 0 }, { 0, 6, height + 27 }); @@ -2973,8 +2966,8 @@ static void wooden_rc_track_s_bend_left( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23727, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23727, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24593, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); @@ -2982,14 +2975,14 @@ static void wooden_rc_track_s_bend_left( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23731, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23731, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24597, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23743, { 0, 0, height }, { 32, 26, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23743, { 0, 0, height }, + { 32, 26, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24609, { 0, 0, height }, { 32, 26, 0 }, { 0, 6, height + 27 }); @@ -2997,8 +2990,8 @@ static void wooden_rc_track_s_bend_left( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23726, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23726, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24592, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); @@ -3006,14 +2999,14 @@ static void wooden_rc_track_s_bend_left( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23730, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23730, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24596, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23742, { 0, 0, height }, { 32, 26, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23742, { 0, 0, height }, + { 32, 26, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24608, { 0, 0, height }, { 32, 26, 0 }, { 0, 0, height + 27 }); @@ -3032,8 +3025,8 @@ static void wooden_rc_track_s_bend_left( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23728, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23728, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24594, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3041,14 +3034,14 @@ static void wooden_rc_track_s_bend_left( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23732, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23732, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24598, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23744, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23744, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24610, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 27 }); @@ -3056,8 +3049,8 @@ static void wooden_rc_track_s_bend_left( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23725, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23725, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24591, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3065,14 +3058,14 @@ static void wooden_rc_track_s_bend_left( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23729, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23729, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24595, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23741, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23741, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24607, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -3095,6 +3088,7 @@ static void wooden_rc_track_s_bend_left( } /** rct2: 0x008AC7A8 */ +template static void wooden_rc_track_s_bend_right( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -3106,14 +3100,14 @@ static void wooden_rc_track_s_bend_right( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23733, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23733, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24599, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23745, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23745, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24611, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -3121,8 +3115,8 @@ static void wooden_rc_track_s_bend_right( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23737, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23737, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24603, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3130,14 +3124,14 @@ static void wooden_rc_track_s_bend_right( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23736, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23736, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24602, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23748, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23748, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24614, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -3145,8 +3139,8 @@ static void wooden_rc_track_s_bend_right( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23740, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23740, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24606, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3165,14 +3159,14 @@ static void wooden_rc_track_s_bend_right( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23734, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23734, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24600, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23746, { 0, 0, height }, { 32, 26, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23746, { 0, 0, height }, + { 32, 26, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24612, { 0, 0, height }, { 32, 26, 0 }, { 0, 6, height + 27 }); @@ -3180,8 +3174,8 @@ static void wooden_rc_track_s_bend_right( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23738, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23738, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24604, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); @@ -3189,14 +3183,14 @@ static void wooden_rc_track_s_bend_right( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23735, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23735, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24601, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23747, { 0, 0, height }, { 32, 26, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23747, { 0, 0, height }, + { 32, 26, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24613, { 0, 0, height }, { 32, 26, 0 }, { 0, 0, height + 27 }); @@ -3204,8 +3198,8 @@ static void wooden_rc_track_s_bend_right( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23739, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23739, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24605, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); @@ -3224,14 +3218,14 @@ static void wooden_rc_track_s_bend_right( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23735, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23735, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24601, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23747, { 0, 0, height }, { 32, 26, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23747, { 0, 0, height }, + { 32, 26, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24613, { 0, 0, height }, { 32, 26, 0 }, { 0, 0, height + 27 }); @@ -3239,8 +3233,8 @@ static void wooden_rc_track_s_bend_right( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23739, { 0, 0, height }, { 32, 26, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23739, { 0, 0, height }, + { 32, 26, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24605, { 0, 0, height }, { 32, 26, 2 }, { 0, 0, height }); @@ -3248,14 +3242,14 @@ static void wooden_rc_track_s_bend_right( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23734, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23734, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24600, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23746, { 0, 0, height }, { 32, 26, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23746, { 0, 0, height }, + { 32, 26, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24612, { 0, 0, height }, { 32, 26, 0 }, { 0, 6, height + 27 }); @@ -3263,8 +3257,8 @@ static void wooden_rc_track_s_bend_right( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23738, { 0, 0, height }, { 32, 26, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23738, { 0, 0, height }, + { 32, 26, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24604, { 0, 0, height }, { 32, 26, 2 }, { 0, 6, height }); @@ -3283,14 +3277,14 @@ static void wooden_rc_track_s_bend_right( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23736, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23736, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24602, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23748, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23748, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24614, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -3298,8 +3292,8 @@ static void wooden_rc_track_s_bend_right( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23740, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23740, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24606, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3307,14 +3301,14 @@ static void wooden_rc_track_s_bend_right( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23733, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23733, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24599, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23745, { 0, 0, height }, { 32, 25, 0 }, - { 0, 3, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23745, { 0, 0, height }, + { 32, 25, 0 }, { 0, 3, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24611, { 0, 0, height }, { 32, 25, 0 }, { 0, 3, height + 27 }); @@ -3322,8 +3316,8 @@ static void wooden_rc_track_s_bend_right( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23737, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23737, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24603, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -3346,6 +3340,7 @@ static void wooden_rc_track_s_bend_right( } /** rct2: 0x008ACE18 */ +template static void wooden_rc_track_left_vertical_loop( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -3603,6 +3598,7 @@ static void wooden_rc_track_left_vertical_loop( } /** rct2: 0x008ACE28 */ +template static void wooden_rc_track_right_vertical_loop( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -3828,6 +3824,7 @@ static void wooden_rc_track_right_vertical_loop( } /** rct2: 0x008AC7E8 */ +template static void wooden_rc_track_left_quarter_turn_3( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -3839,8 +3836,8 @@ static void wooden_rc_track_left_quarter_turn_3( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23828, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23828, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24694, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -3848,14 +3845,14 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23831, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23831, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24697, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23840, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23840, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24706, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -3863,8 +3860,8 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23834, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23834, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24700, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -3872,14 +3869,14 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23825, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23825, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24691, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23837, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23837, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24703, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -3901,44 +3898,44 @@ static void wooden_rc_track_left_quarter_turn_3( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23827, { 16, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23827, { 16, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24693, { 16, 0, height }, { 16, 16, 2 }, { 16, 0, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23830, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23830, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24696, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23839, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23839, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24705, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23833, { 0, 16, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23833, { 0, 16, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24699, { 0, 16, height }, { 16, 16, 2 }, { 0, 16, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23824, { 16, 16, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23824, { 16, 16, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24690, { 16, 16, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23836, { 16, 16, height }, { 16, 16, 0 }, - { 16, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23836, { 16, 16, height }, + { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24702, { 16, 16, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); @@ -3953,8 +3950,8 @@ static void wooden_rc_track_left_quarter_turn_3( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23826, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23826, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24692, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -3962,14 +3959,14 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23829, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23829, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24695, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23838, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23838, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24704, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -3977,8 +3974,8 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23832, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23832, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24698, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -3986,14 +3983,14 @@ static void wooden_rc_track_left_quarter_turn_3( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23823, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23823, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24689, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23835, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23835, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24701, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -4016,15 +4013,17 @@ static void wooden_rc_track_left_quarter_turn_3( } /** rct2: 0x008AC7F8 */ +template static void wooden_rc_track_right_quarter_turn_3( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_left_quarter_turn_3(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_quarter_turn_3(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008AC808 */ +template static void wooden_rc_track_left_quarter_turn_3_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -4036,7 +4035,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_5, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_5, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24712, { 0, 0, height }, { 32, 20, 2 }, @@ -4045,13 +4045,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_8, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_8, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24715, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_17, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_17, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24724, { 0, 0, height }, { 32, 20, 0 }, @@ -4060,7 +4062,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_11, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_11, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24718, { 0, 0, height }, { 32, 20, 2 }, @@ -4069,13 +4072,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_2, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_2, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24709, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_14, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_14, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24721, { 0, 0, height }, { 32, 20, 0 }, @@ -4098,7 +4103,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_4, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_4, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24711, { 0, 0, height }, { 16, 16, 2 }, @@ -4106,13 +4112,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_7, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_7, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24714, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_16, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_16, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24723, { 0, 0, height }, { 16, 16, 0 }, @@ -4120,7 +4128,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_10, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_10, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24717, { 0, 0, height }, { 16, 16, 2 }, @@ -4128,13 +4137,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_1, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_1, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24708, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_13, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_13, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24720, { 0, 0, height }, { 16, 16, 0 }, @@ -4150,7 +4161,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_3, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_3, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24710, { 0, 0, height }, { 20, 32, 2 }, @@ -4159,13 +4171,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_6, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_6, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24713, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_15, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_15, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24722, { 0, 0, height }, { 20, 32, 0 }, @@ -4174,7 +4188,8 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_9, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_9, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24716, { 0, 0, height }, { 20, 32, 2 }, @@ -4183,13 +4198,15 @@ static void wooden_rc_track_left_quarter_turn_3_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_0, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_0, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24707, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_12, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_12, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24719, { 0, 0, height }, { 20, 32, 0 }, @@ -4213,15 +4230,18 @@ static void wooden_rc_track_left_quarter_turn_3_bank( } /** rct2: 0x008AC818 */ +template static void wooden_rc_track_right_quarter_turn_3_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_left_quarter_turn_3_bank(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_quarter_turn_3_bank( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008AC828 */ +template static void wooden_rc_track_left_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -4233,8 +4253,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23906, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23906, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24772, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -4242,14 +4262,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23908, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23908, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24774, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23919, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23919, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24785, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -4257,8 +4277,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23910, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23910, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24776, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -4266,14 +4286,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23904, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23904, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24770, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23917, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23917, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24783, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -4300,8 +4320,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23905, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23905, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24771, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -4309,14 +4329,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23907, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23907, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24773, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23918, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23918, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24784, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4324,14 +4344,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23909, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23909, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24775, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23920, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23920, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24786, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4339,14 +4359,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23903, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23903, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24769, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23916, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23916, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24782, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4369,6 +4389,7 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up( } /** rct2: 0x008AC838 */ +template static void wooden_rc_track_right_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -4380,14 +4401,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23895, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23895, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24761, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23911, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23911, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24777, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -4395,8 +4416,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23897, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23897, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24763, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -4404,14 +4425,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23899, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23899, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24765, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23914, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23914, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24780, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -4419,8 +4440,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23901, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23901, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24767, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -4447,14 +4468,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23896, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23896, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24762, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23912, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23912, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24778, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4462,14 +4483,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23898, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23898, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24764, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23913, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23913, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24779, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4477,14 +4498,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23900, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23900, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24766, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23915, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23915, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24781, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -4492,8 +4513,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23902, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23902, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24768, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -4516,24 +4537,29 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up( } /** rct2: 0x008AC848 */ +template static void wooden_rc_track_left_quarter_turn_3_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_right_quarter_turn_3_25_deg_up(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008AC858 */ +template static void wooden_rc_track_right_quarter_turn_3_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_left_quarter_turn_3_25_deg_up(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008ACAB8 */ +template static void wooden_rc_track_left_half_banked_helix_up_small( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -4545,7 +4571,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_41, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_41, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24748, { 0, 0, height }, { 32, 20, 2 }, @@ -4554,13 +4581,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_44, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_44, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24751, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_53, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_53, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24760, { 0, 0, height }, { 32, 20, 0 }, @@ -4569,7 +4598,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_47, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_47, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24754, { 0, 0, height }, { 32, 20, 2 }, @@ -4578,13 +4608,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_38, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_38, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24745, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_50, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_50, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24757, { 0, 0, height }, { 32, 20, 0 }, @@ -4626,7 +4658,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_40, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_40, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24747, { 0, 0, height }, { 16, 16, 2 }, @@ -4634,13 +4667,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_43, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_43, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24750, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_52, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_52, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24759, { 0, 0, height }, { 16, 16, 0 }, @@ -4648,7 +4683,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_46, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_46, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24753, { 0, 0, height }, { 16, 16, 2 }, @@ -4656,13 +4692,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_37, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_37, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24744, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_49, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_49, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24756, { 0, 0, height }, { 16, 16, 0 }, @@ -4678,7 +4716,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_39, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_39, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24746, { 0, 0, height }, { 20, 32, 2 }, @@ -4687,13 +4726,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_42, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_42, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24749, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_51, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_51, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24758, { 0, 0, height }, { 20, 32, 0 }, @@ -4702,7 +4743,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_45, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_45, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24752, { 0, 0, height }, { 20, 32, 2 }, @@ -4711,13 +4753,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_36, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_36, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24743, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_48, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_48, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24755, { 0, 0, height }, { 20, 32, 0 }, @@ -4746,13 +4790,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_38, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_38, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24745, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_50, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_50, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24757, { 0, 0, height }, { 20, 32, 0 }, @@ -4761,7 +4807,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_41, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_41, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24748, { 0, 0, height }, { 20, 32, 2 }, @@ -4770,13 +4817,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_44, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_44, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24751, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_53, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_53, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24760, { 0, 0, height }, { 20, 32, 0 }, @@ -4785,7 +4834,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_47, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_47, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24754, { 0, 0, height }, { 20, 32, 2 }, @@ -4832,13 +4882,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_37, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_37, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24744, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_49, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_49, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24756, { 0, 0, height }, { 16, 16, 0 }, @@ -4846,7 +4898,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_40, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_40, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24747, { 0, 0, height }, { 16, 16, 2 }, @@ -4854,13 +4907,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_43, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_43, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24750, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_52, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_52, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24759, { 0, 0, height }, { 16, 16, 0 }, @@ -4868,7 +4923,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_46, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_46, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24753, { 0, 0, height }, { 16, 16, 2 }, @@ -4884,13 +4940,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_36, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_36, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24743, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_48, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_48, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24755, { 0, 0, height }, { 32, 20, 0 }, @@ -4899,7 +4957,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_39, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_39, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24746, { 0, 0, height }, { 32, 20, 2 }, @@ -4908,13 +4967,15 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_42, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_42, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24749, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_51, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_51, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24758, { 0, 0, height }, { 32, 20, 0 }, @@ -4923,7 +4984,8 @@ static void wooden_rc_track_left_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_45, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_45, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24752, { 0, 0, height }, { 32, 20, 2 }, @@ -4946,6 +5008,7 @@ static void wooden_rc_track_left_half_banked_helix_up_small( } /** rct2: 0x008ACAC8 */ +template static void wooden_rc_track_right_half_banked_helix_up_small( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -4957,13 +5020,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_18, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_18, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24725, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_30, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_30, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24737, { 0, 0, height }, { 32, 20, 0 }, @@ -4972,7 +5037,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_21, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_21, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24728, { 0, 0, height }, { 32, 20, 2 }, @@ -4981,13 +5047,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_24, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_24, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24731, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_33, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_33, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24740, { 0, 0, height }, { 32, 20, 0 }, @@ -4996,7 +5064,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_27, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_27, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24734, { 0, 0, height }, { 32, 20, 2 }, @@ -5038,13 +5107,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_19, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_19, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24726, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_31, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_31, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24738, { 0, 0, height }, { 16, 16, 0 }, @@ -5052,7 +5123,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_22, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_22, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24729, { 0, 0, height }, { 16, 16, 2 }, @@ -5060,13 +5132,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_25, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_25, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24732, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_34, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_34, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24741, { 0, 0, height }, { 16, 16, 0 }, @@ -5074,7 +5148,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_28, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_28, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24735, { 0, 0, height }, { 16, 16, 2 }, @@ -5090,13 +5165,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_20, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_20, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24727, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_32, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_32, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24739, { 0, 0, height }, { 20, 32, 0 }, @@ -5105,7 +5182,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_23, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_23, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24730, { 0, 0, height }, { 20, 32, 2 }, @@ -5114,13 +5192,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_26, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_26, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24733, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_35, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_35, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24742, { 0, 0, height }, { 20, 32, 0 }, @@ -5129,7 +5209,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_29, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_29, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24736, { 0, 0, height }, { 20, 32, 2 }, @@ -5158,7 +5239,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_21, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_21, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24728, { 0, 0, height }, { 20, 32, 2 }, @@ -5167,13 +5249,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_24, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_24, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24731, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_33, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_33, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24740, { 0, 0, height }, { 20, 32, 0 }, @@ -5182,7 +5266,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_27, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_27, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24734, { 0, 0, height }, { 20, 32, 2 }, @@ -5191,13 +5276,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_18, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_18, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24725, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_30, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_30, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24737, { 0, 0, height }, { 20, 32, 0 }, @@ -5244,7 +5331,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_22, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_22, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24729, { 0, 0, height }, { 16, 16, 2 }, @@ -5252,13 +5340,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_25, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_25, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24732, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_34, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_34, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24741, { 0, 0, height }, { 16, 16, 0 }, @@ -5266,7 +5356,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_28, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_28, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24735, { 0, 0, height }, { 16, 16, 2 }, @@ -5274,13 +5365,14 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23860, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23860, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24726, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_31, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_31, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24738, { 0, 0, height }, { 16, 16, 0 }, @@ -5296,7 +5388,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_23, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_23, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24730, { 0, 0, height }, { 32, 20, 2 }, @@ -5305,13 +5398,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_26, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_26, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24733, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_35, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_35, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24742, { 0, 0, height }, { 32, 20, 0 }, @@ -5320,7 +5415,8 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_29, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_29, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24736, { 0, 0, height }, { 32, 20, 2 }, @@ -5329,13 +5425,15 @@ static void wooden_rc_track_right_half_banked_helix_up_small( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_20, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_20, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24727, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_32, + session, direction, + wooden_rc_get_track_colour(session) | SPR_WOODEN_RC_SMALL_RIGHT_BANKED_TURN_32, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24739, { 0, 0, height }, { 32, 20, 0 }, @@ -5358,6 +5456,7 @@ static void wooden_rc_track_right_half_banked_helix_up_small( } /** rct2: 0x008ACAD8 */ +template static void wooden_rc_track_left_half_banked_helix_down_small( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -5368,10 +5467,12 @@ static void wooden_rc_track_left_half_banked_helix_down_small( direction = (direction - 1) & 3; } trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_right_half_banked_helix_up_small(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_half_banked_helix_up_small( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008ACAE8 */ +template static void wooden_rc_track_right_half_banked_helix_down_small( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -5382,10 +5483,12 @@ static void wooden_rc_track_right_half_banked_helix_down_small( direction = (direction + 1) & 3; } trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_left_half_banked_helix_up_small(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_half_banked_helix_up_small( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008ACAF8 */ +template static void wooden_rc_track_left_half_banked_helix_up_large( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -5397,8 +5500,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23704, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23704, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24570, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -5406,14 +5509,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23709, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23709, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24575, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23724, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23724, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24590, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 27 }); @@ -5421,8 +5524,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23714, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23714, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24580, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -5430,14 +5533,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23699, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23699, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24565, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23719, { 0, 0, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23719, { 0, 0, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24585, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -5465,8 +5568,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23703, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23703, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24569, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -5474,14 +5577,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23708, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23708, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24574, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23723, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23723, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24589, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -5489,8 +5592,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23713, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23713, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24579, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -5498,14 +5601,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23698, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23698, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24564, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23718, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23718, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24584, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -5524,8 +5627,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23702, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23702, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24568, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -5533,14 +5636,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23707, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23707, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24573, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23722, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 29 }); + session, direction, wooden_rc_get_track_colour(session) | 23722, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 29 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24588, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 29 }); @@ -5548,8 +5651,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23712, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23712, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24578, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -5557,14 +5660,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23697, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23697, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24563, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23717, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23717, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24583, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -5587,8 +5690,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23701, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23701, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24567, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -5596,14 +5699,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23706, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23706, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24572, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23721, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23721, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24587, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 33 }); @@ -5611,8 +5714,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23711, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23711, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24577, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); @@ -5620,14 +5723,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23696, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23696, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24562, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23716, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23716, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24582, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 27 }); @@ -5646,8 +5749,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23700, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23700, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24566, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -5655,14 +5758,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23705, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23705, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24571, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23720, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23720, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24586, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 33 }); @@ -5670,8 +5773,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23710, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23710, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24576, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -5679,14 +5782,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23695, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height + 8 }); + session, direction, wooden_rc_get_track_colour(session) | 23695, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24561, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23715, { 0, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23715, { 0, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24581, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -5714,14 +5817,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23699, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23699, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24565, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23719, { 0, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23719, { 0, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24585, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -5729,8 +5832,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23704, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23704, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24570, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -5738,14 +5841,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23709, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23709, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24575, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23724, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23724, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24590, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 27 }); @@ -5753,8 +5856,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23714, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23714, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24580, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -5787,14 +5890,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23698, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23698, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24564, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23718, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23718, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24584, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 27 }); @@ -5802,8 +5905,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23703, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23703, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24569, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); @@ -5811,14 +5914,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23708, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23708, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24574, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23723, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23723, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24589, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 27 }); @@ -5826,8 +5929,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23713, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23713, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24579, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -5846,14 +5949,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23697, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23697, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24563, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23717, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23717, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24583, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -5861,8 +5964,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23702, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23702, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24568, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -5870,14 +5973,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23707, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23707, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24573, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23722, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 29 }); + session, direction, wooden_rc_get_track_colour(session) | 23722, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 29 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24588, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 29 }); @@ -5885,8 +5988,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23712, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23712, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24578, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -5909,14 +6012,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23696, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23696, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24562, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23716, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23716, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24582, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -5924,8 +6027,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23701, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23701, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24567, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -5933,14 +6036,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23706, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23706, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24572, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23721, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23721, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24587, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 33 }); @@ -5948,8 +6051,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23711, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23711, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24577, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -5968,14 +6071,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23695, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height + 8 }); + session, direction, wooden_rc_get_track_colour(session) | 23695, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24561, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23715, { 0, 0, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23715, { 0, 0, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24581, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -5983,8 +6086,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23700, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23700, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24566, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -5992,14 +6095,14 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23705, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23705, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24571, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23720, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23720, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24586, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 33 }); @@ -6007,8 +6110,8 @@ static void wooden_rc_track_left_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23710, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23710, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24576, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -6030,6 +6133,7 @@ static void wooden_rc_track_left_half_banked_helix_up_large( } /** rct2: 0x008ACB08 */ +template static void wooden_rc_track_right_half_banked_helix_up_large( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6041,14 +6145,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23665, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23665, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24531, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23685, { 0, 0, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23685, { 0, 0, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24551, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -6056,8 +6160,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23670, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23670, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24536, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -6065,14 +6169,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23675, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23675, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24541, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23690, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23690, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24556, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 27 }); @@ -6080,8 +6184,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23680, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23680, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24546, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -6109,14 +6213,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23666, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23666, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24532, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23686, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23686, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24552, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -6124,8 +6228,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23671, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23671, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24537, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -6133,14 +6237,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23676, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23676, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24542, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23691, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23691, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24557, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -6148,8 +6252,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23681, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23681, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24547, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -6168,14 +6272,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23667, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23667, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24533, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23687, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23687, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24553, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -6183,8 +6287,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23672, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23672, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24538, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -6192,14 +6296,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23677, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23677, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24543, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23692, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 29 }); + session, direction, wooden_rc_get_track_colour(session) | 23692, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 29 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24558, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 29 }); @@ -6207,8 +6311,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23682, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23682, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24548, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -6231,14 +6335,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23668, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23668, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24534, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23688, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23688, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24554, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 27 }); @@ -6246,8 +6350,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23673, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23673, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24539, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); @@ -6255,14 +6359,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23678, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23678, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24544, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23693, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23693, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24559, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 33 }); @@ -6270,8 +6374,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23683, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23683, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24549, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -6289,15 +6393,15 @@ static void wooden_rc_track_right_half_banked_helix_up_large( switch (direction) { case 0: - PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23669, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height + 8 }); + PaintAddImageAsChildRotated( + session, direction, wooden_rc_get_track_colour(session) | 23669, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24535, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23689, { 0, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23689, { 0, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24555, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -6305,8 +6409,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23674, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23674, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24540, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -6314,14 +6418,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23679, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23679, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24545, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23694, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23694, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24560, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 33 }); @@ -6329,8 +6433,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23684, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23684, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24550, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -6358,8 +6462,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23670, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23670, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24536, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -6367,14 +6471,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23675, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23675, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24541, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23690, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23690, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24556, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 27 }); @@ -6382,8 +6486,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23680, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23680, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24546, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -6391,14 +6495,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23665, { 0, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23665, { 0, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24531, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23685, { 0, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23685, { 0, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24551, { 0, 0, height }, { 20, 32, 0 }, { 6, 0, height + 27 }); @@ -6431,8 +6535,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23671, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23671, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24537, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -6440,14 +6544,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23676, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23676, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24542, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23691, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23691, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24557, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 27 }); @@ -6455,8 +6559,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23681, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23681, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24547, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); @@ -6464,14 +6568,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23666, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23666, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24532, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23686, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23686, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24552, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 27 }); @@ -6490,8 +6594,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23672, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23672, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24538, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -6499,14 +6603,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23677, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23677, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24543, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23692, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 29 }); + session, direction, wooden_rc_get_track_colour(session) | 23692, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 29 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24558, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 29 }); @@ -6514,8 +6618,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23682, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23682, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24548, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -6523,14 +6627,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23667, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23667, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24533, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23687, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23687, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24553, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -6553,8 +6657,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23673, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23673, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24539, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -6562,14 +6666,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23678, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23678, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24544, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23693, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23693, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24559, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 33 }); @@ -6577,8 +6681,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23683, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23683, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24549, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -6586,14 +6690,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23668, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 23668, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24534, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23688, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23688, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24554, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -6612,8 +6716,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23674, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23674, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24540, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -6621,14 +6725,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23679, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 23679, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24545, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23694, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 33 }); + session, direction, wooden_rc_get_track_colour(session) | 23694, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 33 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24560, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 33 }); @@ -6636,8 +6740,8 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23684, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23684, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24550, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -6645,14 +6749,14 @@ static void wooden_rc_track_right_half_banked_helix_up_large( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23669, { 0, 0, height }, { 32, 20, 2 }, - { 0, 6, height + 8 }); + session, direction, wooden_rc_get_track_colour(session) | 23669, { 0, 0, height }, + { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24535, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height + 8 }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23689, { 0, 0, height }, { 32, 20, 0 }, - { 0, 6, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 23689, { 0, 0, height }, + { 32, 20, 0 }, { 0, 6, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24555, { 0, 0, height }, { 32, 20, 0 }, { 0, 6, height + 27 }); @@ -6674,6 +6778,7 @@ static void wooden_rc_track_right_half_banked_helix_up_large( } /** rct2: 0x008ACB18 */ +template static void wooden_rc_track_left_half_banked_helix_down_large( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6684,10 +6789,12 @@ static void wooden_rc_track_left_half_banked_helix_down_large( direction = (direction - 1) & 3; } trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_right_half_banked_helix_up_large(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_half_banked_helix_up_large( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008ACB28 */ +template static void wooden_rc_track_right_half_banked_helix_down_large( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6698,10 +6805,12 @@ static void wooden_rc_track_right_half_banked_helix_down_large( direction = (direction + 1) & 3; } trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_left_half_banked_helix_up_large(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_half_banked_helix_up_large( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008ACB98 */ +template static void wooden_rc_track_left_quarter_turn_1_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6710,13 +6819,13 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24209, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24209, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25075, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24217, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24217, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25083, { 0, 0, height }, { 28, 28, 1 }, @@ -6724,13 +6833,13 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24210, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24210, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25076, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24218, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24218, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25084, { 0, 0, height }, { 28, 28, 1 }, @@ -6738,13 +6847,13 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24211, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24211, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25077, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24219, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24219, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25085, { 0, 0, height }, { 28, 28, 1 }, @@ -6752,13 +6861,13 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24212, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24212, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25078, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24220, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24220, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25086, { 0, 0, height }, { 28, 28, 1 }, @@ -6771,6 +6880,7 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up( } /** rct2: 0x008ACB78 */ +template static void wooden_rc_track_right_quarter_turn_1_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6779,13 +6889,13 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24213, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24213, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25079, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24221, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24221, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25087, { 0, 0, height }, { 28, 28, 1 }, @@ -6793,13 +6903,13 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24214, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24214, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25080, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24222, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24222, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25088, { 0, 0, height }, { 28, 28, 1 }, @@ -6807,13 +6917,13 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24215, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24215, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25081, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24223, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24223, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25089, { 0, 0, height }, { 28, 28, 1 }, @@ -6821,13 +6931,13 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24216, { 0, 0, height }, { 28, 28, 3 }, + session, direction, wooden_rc_get_track_colour(session) | 24216, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25082, { 0, 0, height }, { 28, 28, 3 }, { 2, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24224, { 0, 0, height }, { 28, 28, 1 }, + session, direction, wooden_rc_get_track_colour(session) | 24224, { 0, 0, height }, { 28, 28, 1 }, { 2, 2, height + 99 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25090, { 0, 0, height }, { 28, 28, 1 }, @@ -6840,22 +6950,27 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up( } /** rct2: 0x008ACB88 */ +template static void wooden_rc_track_left_quarter_turn_1_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_quarter_turn_1_60_deg_up(session, ride, trackSequence, (direction + 1) & 3, height, trackElement); + wooden_rc_track_right_quarter_turn_1_60_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008ACBA8 */ +template static void wooden_rc_track_right_quarter_turn_1_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_quarter_turn_1_60_deg_up(session, ride, trackSequence, (direction - 1) & 3, height, trackElement); + wooden_rc_track_left_quarter_turn_1_60_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008AC868 */ +template static void wooden_rc_track_brakes( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6867,7 +6982,7 @@ static void wooden_rc_track_brakes( { SPR_WOODEN_RC_BRAKES_NW_SE, SPR_WOODEN_RC_BRAKES_RAILS_NW_SE }, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction][0], imageIds[direction][1], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -6876,6 +6991,7 @@ static void wooden_rc_track_brakes( } /** rct2: 0x008ACC78 */ +template static void wooden_rc_track_25_deg_up_left_banked( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6884,7 +7000,7 @@ static void wooden_rc_track_25_deg_up_left_banked( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24249, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24249, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25115, { 0, 0, height }, { 32, 25, 2 }, @@ -6893,13 +7009,13 @@ static void wooden_rc_track_25_deg_up_left_banked( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24250, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24250, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25116, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24257, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24257, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25123, { 0, 0, height }, { 32, 1, 9 }, @@ -6908,13 +7024,13 @@ static void wooden_rc_track_25_deg_up_left_banked( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24251, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24251, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25117, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24258, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24258, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25124, { 0, 0, height }, { 32, 1, 9 }, @@ -6923,7 +7039,7 @@ static void wooden_rc_track_25_deg_up_left_banked( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24252, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24252, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25118, { 0, 0, height }, { 32, 25, 2 }, @@ -6944,6 +7060,7 @@ static void wooden_rc_track_25_deg_up_left_banked( } /** rct2: 0x008ACC88 */ +template static void wooden_rc_track_25_deg_up_right_banked( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -6952,7 +7069,7 @@ static void wooden_rc_track_25_deg_up_right_banked( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24253, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24253, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25119, { 0, 0, height }, { 32, 25, 2 }, @@ -6961,13 +7078,13 @@ static void wooden_rc_track_25_deg_up_right_banked( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24254, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24254, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25120, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24259, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24259, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25125, { 0, 0, height }, { 32, 1, 9 }, @@ -6976,13 +7093,13 @@ static void wooden_rc_track_25_deg_up_right_banked( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24255, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24255, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25121, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24260, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24260, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25126, { 0, 0, height }, { 32, 1, 9 }, @@ -6991,7 +7108,7 @@ static void wooden_rc_track_25_deg_up_right_banked( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24256, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24256, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25122, { 0, 0, height }, { 32, 25, 2 }, @@ -7012,6 +7129,7 @@ static void wooden_rc_track_25_deg_up_right_banked( } /** rct2: 0x008AC878 */ +template static void wooden_rc_track_on_ride_photo( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -7020,7 +7138,7 @@ static void wooden_rc_track_on_ride_photo( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23753, { 0, 2, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 23753, { 0, 2, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24619, { 0, 2, height }, { 32, 25, 2 }, @@ -7028,7 +7146,7 @@ static void wooden_rc_track_on_ride_photo( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23754, { 0, 2, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 23754, { 0, 2, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24620, { 0, 2, height }, { 32, 25, 2 }, @@ -7036,7 +7154,7 @@ static void wooden_rc_track_on_ride_photo( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23753, { 0, 2, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 23753, { 0, 2, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24619, { 0, 2, height }, { 32, 25, 2 }, @@ -7044,7 +7162,7 @@ static void wooden_rc_track_on_ride_photo( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23754, { 0, 2, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 23754, { 0, 2, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24620, { 0, 2, height }, { 32, 25, 2 }, @@ -7059,22 +7177,25 @@ static void wooden_rc_track_on_ride_photo( } /** rct2: 0x008ACC98 */ +template static void wooden_rc_track_25_deg_down_left_banked( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_right_banked(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_right_banked(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACCA8 */ +template static void wooden_rc_track_25_deg_down_right_banked( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_left_banked(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_left_banked(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACE08 */ +template static void wooden_rc_track_water_splash( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -7089,8 +7210,8 @@ static void wooden_rc_track_water_splash( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23989, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23989, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24855, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7107,16 +7228,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24863, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23993, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23993, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24859, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23990, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23990, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24856, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7133,16 +7254,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24864, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23994, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23994, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24860, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23987, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23987, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24853, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7159,16 +7280,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24861, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23991, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23991, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24857, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23988, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23988, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24854, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7185,8 +7306,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24862, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23992, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23992, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24858, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7202,8 +7323,8 @@ static void wooden_rc_track_water_splash( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23977, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23977, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24843, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7220,16 +7341,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24851, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23981, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23981, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24847, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23978, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23978, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24844, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7246,16 +7367,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24852, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23982, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23982, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24848, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23975, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23975, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24841, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7272,16 +7393,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24849, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23979, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23979, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24845, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23976, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23976, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24842, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7298,8 +7419,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24850, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23980, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23980, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24846, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7315,8 +7436,8 @@ static void wooden_rc_track_water_splash( case 0: case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23999, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23999, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24865, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7333,8 +7454,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24869, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 24001, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 24001, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24867, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7342,8 +7463,8 @@ static void wooden_rc_track_water_splash( case 1: case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24000, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 24000, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24866, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7360,8 +7481,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24870, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 24002, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 24002, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24868, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7376,8 +7497,8 @@ static void wooden_rc_track_water_splash( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23975, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23975, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24841, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7394,16 +7515,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24849, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23979, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23979, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24845, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23976, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23976, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24842, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7420,16 +7541,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24850, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23980, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23980, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24846, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23977, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23977, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24843, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7446,16 +7567,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24851, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23981, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23981, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24847, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23978, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23978, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24844, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7472,8 +7593,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24852, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23982, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23982, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24848, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7488,8 +7609,8 @@ static void wooden_rc_track_water_splash( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23987, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23987, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24853, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7506,16 +7627,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24861, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23991, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23991, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24857, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23988, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23988, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24854, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7532,16 +7653,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24862, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23992, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23992, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24858, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23989, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23989, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24855, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7558,16 +7679,16 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24863, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23993, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23993, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24859, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23990, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23990, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24856, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7584,8 +7705,8 @@ static void wooden_rc_track_water_splash( session, direction, session.TrackColours[SCHEME_SUPPORTS] | 24864, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( - session, direction, wooden_rc_get_track_colour(session) | 23994, { 0, 0, height }, { 32, 25, 2 }, - { 0, 3, height }); + session, direction, wooden_rc_get_track_colour(session) | 23994, { 0, 0, height }, + { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24860, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); @@ -7600,6 +7721,7 @@ static void wooden_rc_track_water_splash( } /** rct2: 0x008AC958 */ +template static void wooden_rc_track_left_eighth_to_diag( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -7611,8 +7733,8 @@ static void wooden_rc_track_left_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24137, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24137, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25003, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -7620,14 +7742,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24141, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24141, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25007, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24153, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24153, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25019, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -7635,8 +7757,8 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24145, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24145, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25011, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -7644,14 +7766,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24149, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24149, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25015, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24157, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24157, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25023, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -7670,8 +7792,8 @@ static void wooden_rc_track_left_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24138, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24138, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25004, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -7679,14 +7801,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24142, { 0, 0, height }, { 34, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24142, { 0, 0, height }, + { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25008, { 0, 0, height }, { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24154, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24154, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25020, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -7694,8 +7816,8 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24146, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24146, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25012, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -7703,14 +7825,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24150, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24150, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25016, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24158, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24158, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25024, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -7725,8 +7847,8 @@ static void wooden_rc_track_left_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24139, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24139, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25005, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -7734,14 +7856,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24143, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24143, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25009, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24155, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24155, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25021, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); @@ -7749,8 +7871,8 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24147, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24147, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25013, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -7758,14 +7880,14 @@ static void wooden_rc_track_left_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24151, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24151, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25017, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24159, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24159, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25025, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -7799,44 +7921,44 @@ static void wooden_rc_track_left_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24140, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24140, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25006, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24144, { 0, 0, height }, { 16, 18, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24144, { 0, 0, height }, + { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25010, { 0, 0, height }, { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24156, { 0, 0, height }, { 16, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24156, { 0, 0, height }, + { 16, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25022, { 0, 0, height }, { 16, 16, 0 }, { 0, 16, height + 27 }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24148, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24148, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25014, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24152, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24152, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25018, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24160, { 0, 0, height }, { 16, 16, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24160, { 0, 0, height }, + { 16, 16, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25026, { 0, 0, height }, { 16, 16, 0 }, { 16, 0, height + 27 }); @@ -7849,6 +7971,7 @@ static void wooden_rc_track_left_eighth_to_diag( } /** rct2: 0x008AC968 */ +template static void wooden_rc_track_right_eighth_to_diag( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -7860,14 +7983,14 @@ static void wooden_rc_track_right_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24113, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24113, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24979, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24129, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24129, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24995, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -7875,8 +7998,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24117, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24117, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24983, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -7884,14 +8007,14 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24121, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24121, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24987, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24133, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24133, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24999, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -7899,8 +8022,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24125, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24125, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24991, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -7919,14 +8042,14 @@ static void wooden_rc_track_right_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24114, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24114, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24980, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24130, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24130, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24996, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -7934,8 +8057,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24118, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24118, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24984, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -7943,14 +8066,14 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24122, { 0, 0, height }, { 34, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24122, { 0, 0, height }, + { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24988, { 0, 0, height }, { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24134, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24134, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25000, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -7958,8 +8081,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24126, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24126, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24992, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -7974,14 +8097,14 @@ static void wooden_rc_track_right_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24115, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24115, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24981, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24131, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24131, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24997, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -7989,8 +8112,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24119, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24119, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24985, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -7998,14 +8121,14 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24123, { 0, 0, height }, { 28, 28, 2 }, - { 4, 4, height }); + session, direction, wooden_rc_get_track_colour(session) | 24123, { 0, 0, height }, + { 28, 28, 2 }, { 4, 4, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24989, { 0, 0, height }, { 28, 28, 2 }, { 4, 4, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24135, { 0, 0, height }, { 28, 28, 0 }, - { 4, 4, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24135, { 0, 0, height }, + { 28, 28, 0 }, { 4, 4, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25001, { 0, 0, height }, { 28, 28, 0 }, { 4, 4, height + 27 }); @@ -8013,8 +8136,8 @@ static void wooden_rc_track_right_eighth_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24127, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24127, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24993, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -8048,44 +8171,44 @@ static void wooden_rc_track_right_eighth_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24116, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24116, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24982, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24132, { 0, 0, height }, { 16, 16, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24132, { 0, 0, height }, + { 16, 16, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24998, { 0, 0, height }, { 16, 16, 0 }, { 16, 0, height + 27 }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24120, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24120, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24986, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24124, { 0, 0, height }, { 16, 18, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24124, { 0, 0, height }, + { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24990, { 0, 0, height }, { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24136, { 0, 0, height }, { 16, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24136, { 0, 0, height }, + { 16, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25002, { 0, 0, height }, { 16, 16, 0 }, { 0, 16, height + 27 }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24128, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24128, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24994, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); @@ -8098,24 +8221,27 @@ static void wooden_rc_track_right_eighth_to_diag( } /** rct2: 0x008AC978 */ +template static void wooden_rc_track_left_eighth_to_orthogonal( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - wooden_rc_track_right_eighth_to_diag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_right_eighth_to_diag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC988 */ +template static void wooden_rc_track_right_eighth_to_orthogonal( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - wooden_rc_track_left_eighth_to_diag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); + wooden_rc_track_left_eighth_to_diag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); } /** rct2: 0x008AC998 */ +template static void wooden_rc_track_left_eighth_bank_to_diag( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -8127,8 +8253,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24185, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24185, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25051, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -8136,14 +8262,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24189, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24189, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25055, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24201, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24201, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25067, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -8151,8 +8277,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24193, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24193, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25059, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -8160,14 +8286,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24197, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24197, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25063, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24205, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24205, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25071, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -8186,8 +8312,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24186, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24186, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25052, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -8195,14 +8321,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24190, { 0, 0, height }, { 34, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24190, { 0, 0, height }, + { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25056, { 0, 0, height }, { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24202, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24202, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25068, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -8210,8 +8336,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24194, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24194, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25060, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -8219,14 +8345,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24198, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24198, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25064, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24206, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24206, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25072, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -8241,8 +8367,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24187, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24187, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25053, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -8250,14 +8376,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24191, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24191, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25057, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24203, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24203, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25069, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 27 }); @@ -8265,8 +8391,8 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24195, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24195, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25061, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -8274,14 +8400,14 @@ static void wooden_rc_track_left_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24199, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24199, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25065, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24207, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24207, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25073, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -8315,44 +8441,44 @@ static void wooden_rc_track_left_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24188, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24188, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25054, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24192, { 0, 0, height }, { 16, 18, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24192, { 0, 0, height }, + { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25058, { 0, 0, height }, { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24204, { 0, 0, height }, { 16, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24204, { 0, 0, height }, + { 16, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25070, { 0, 0, height }, { 16, 16, 0 }, { 0, 16, height + 27 }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24196, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24196, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25062, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24200, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24200, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25066, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24208, { 0, 0, height }, { 16, 16, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24208, { 0, 0, height }, + { 16, 16, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25074, { 0, 0, height }, { 16, 16, 0 }, { 16, 0, height + 27 }); @@ -8365,6 +8491,7 @@ static void wooden_rc_track_left_eighth_bank_to_diag( } /** rct2: 0x008AC9A8 */ +template static void wooden_rc_track_right_eighth_bank_to_diag( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -8376,14 +8503,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24161, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24161, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25027, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24177, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24177, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25043, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -8391,8 +8518,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24165, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24165, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25031, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -8400,14 +8527,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24169, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24169, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25035, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24181, { 0, 0, height }, { 32, 32, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24181, { 0, 0, height }, + { 32, 32, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25047, { 0, 0, height }, { 32, 32, 0 }, { 0, 0, height + 27 }); @@ -8415,8 +8542,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24173, { 0, 0, height }, { 32, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24173, { 0, 0, height }, + { 32, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25039, { 0, 0, height }, { 32, 32, 2 }, { 0, 0, height }); @@ -8435,14 +8562,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24162, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24162, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25028, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24178, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24178, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25044, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 27 }); @@ -8450,8 +8577,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24166, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24166, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25032, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -8459,14 +8586,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24170, { 0, 0, height }, { 34, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24170, { 0, 0, height }, + { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25036, { 0, 0, height }, { 34, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24182, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24182, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25048, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 27 }); @@ -8474,8 +8601,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24174, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24174, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25040, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -8490,14 +8617,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24163, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24163, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25029, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24179, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24179, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25045, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 27 }); @@ -8505,8 +8632,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24167, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24167, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25033, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -8514,14 +8641,14 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24171, { 0, 0, height }, { 28, 28, 2 }, - { 4, 4, height }); + session, direction, wooden_rc_get_track_colour(session) | 24171, { 0, 0, height }, + { 28, 28, 2 }, { 4, 4, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25037, { 0, 0, height }, { 28, 28, 2 }, { 4, 4, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24183, { 0, 0, height }, { 28, 28, 0 }, - { 4, 4, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24183, { 0, 0, height }, + { 28, 28, 0 }, { 4, 4, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25049, { 0, 0, height }, { 28, 28, 0 }, { 4, 4, height + 27 }); @@ -8529,8 +8656,8 @@ static void wooden_rc_track_right_eighth_bank_to_diag( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24175, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24175, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25041, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -8564,44 +8691,44 @@ static void wooden_rc_track_right_eighth_bank_to_diag( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24164, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24164, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25030, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24180, { 0, 0, height }, { 16, 16, 0 }, - { 16, 0, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24180, { 0, 0, height }, + { 16, 16, 0 }, { 16, 0, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25046, { 0, 0, height }, { 16, 16, 0 }, { 16, 0, height + 27 }); break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24168, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24168, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25034, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24172, { 0, 0, height }, { 16, 18, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24172, { 0, 0, height }, + { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25038, { 0, 0, height }, { 16, 18, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24184, { 0, 0, height }, { 16, 16, 0 }, - { 0, 16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24184, { 0, 0, height }, + { 16, 16, 0 }, { 0, 16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25050, { 0, 0, height }, { 16, 16, 0 }, { 0, 16, height + 27 }); break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24176, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24176, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25042, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); @@ -8614,24 +8741,29 @@ static void wooden_rc_track_right_eighth_bank_to_diag( } /** rct2: 0x008AC9B8 */ +template static void wooden_rc_track_left_eighth_bank_to_orthogonal( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - wooden_rc_track_right_eighth_bank_to_diag(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_right_eighth_bank_to_diag( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008AC9C8 */ +template static void wooden_rc_track_right_eighth_bank_to_orthogonal( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - wooden_rc_track_left_eighth_bank_to_diag(session, ride, trackSequence, (direction + 3) & 3, height, trackElement); + wooden_rc_track_left_eighth_bank_to_diag( + session, ride, trackSequence, (direction + 3) & 3, height, trackElement); } /** rct2: 0x008AC888 */ +template static void wooden_rc_track_diag_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -8645,7 +8777,7 @@ static void wooden_rc_track_diag_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24050, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24050, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24916, { -16, -16, height }, @@ -8659,7 +8791,7 @@ static void wooden_rc_track_diag_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24008, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24008, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24874, { -16, -16, height }, @@ -8677,13 +8809,13 @@ static void wooden_rc_track_diag_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24047, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24047, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24913, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24051, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24051, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24917, { -16, -16, height }, @@ -8707,13 +8839,13 @@ static void wooden_rc_track_diag_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24005, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24005, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24871, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24009, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24009, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24875, { -16, -16, height }, @@ -8747,13 +8879,13 @@ static void wooden_rc_track_diag_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24049, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24049, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24915, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24052, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24052, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24918, { -16, -16, height }, @@ -8777,13 +8909,13 @@ static void wooden_rc_track_diag_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24007, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24007, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24873, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24010, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24010, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24876, { -16, -16, height }, @@ -8805,7 +8937,7 @@ static void wooden_rc_track_diag_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24048, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24048, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24914, { -16, -16, height }, @@ -8819,7 +8951,7 @@ static void wooden_rc_track_diag_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24006, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24006, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24872, { -16, -16, height }, @@ -8834,6 +8966,7 @@ static void wooden_rc_track_diag_flat( } /** rct2: 0x008AC8B8 */ +template static void wooden_rc_track_diag_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -8847,7 +8980,7 @@ static void wooden_rc_track_diag_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24068, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24068, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24934, { -16, -16, height }, @@ -8861,7 +8994,7 @@ static void wooden_rc_track_diag_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24026, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24026, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24892, { -16, -16, height }, @@ -8879,13 +9012,13 @@ static void wooden_rc_track_diag_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24065, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24065, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24931, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24069, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24069, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24935, { -16, -16, height }, @@ -8909,13 +9042,13 @@ static void wooden_rc_track_diag_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24023, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24023, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24889, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24027, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24027, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24893, { -16, -16, height }, @@ -8949,13 +9082,13 @@ static void wooden_rc_track_diag_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24067, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24067, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24933, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24070, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24070, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24936, { -16, -16, height }, @@ -8979,13 +9112,13 @@ static void wooden_rc_track_diag_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24025, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24025, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24891, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24028, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24028, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24894, { -16, -16, height }, @@ -9007,7 +9140,7 @@ static void wooden_rc_track_diag_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24066, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24066, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24932, { -16, -16, height }, @@ -9021,7 +9154,7 @@ static void wooden_rc_track_diag_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24024, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24024, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24890, { -16, -16, height }, @@ -9036,6 +9169,7 @@ static void wooden_rc_track_diag_25_deg_up( } /** rct2: 0x008AC8E8 */ +template static void wooden_rc_track_diag_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9047,8 +9181,8 @@ static void wooden_rc_track_diag_60_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24044, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24044, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24910, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9062,14 +9196,14 @@ static void wooden_rc_track_diag_60_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24041, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24041, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24907, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24045, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 91 }); + session, direction, wooden_rc_get_track_colour(session) | 24045, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 91 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24911, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 91 }); @@ -9099,14 +9233,14 @@ static void wooden_rc_track_diag_60_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24043, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24043, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24909, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24046, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 91 }); + session, direction, wooden_rc_get_track_colour(session) | 24046, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 91 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24912, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 91 }); @@ -9124,8 +9258,8 @@ static void wooden_rc_track_diag_60_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24042, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24042, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24908, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9138,6 +9272,7 @@ static void wooden_rc_track_diag_60_deg_up( } /** rct2: 0x008AC898 */ +template static void wooden_rc_track_diag_flat_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9151,7 +9286,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24056, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24056, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24922, { -16, -16, height }, @@ -9165,7 +9300,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24014, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24014, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24880, { -16, -16, height }, @@ -9183,13 +9318,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24053, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24053, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24919, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24057, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24057, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24923, { -16, -16, height }, @@ -9213,13 +9348,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24011, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24011, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24877, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24015, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24015, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24881, { -16, -16, height }, @@ -9253,13 +9388,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24055, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24055, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24921, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24058, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24058, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24924, { -16, -16, height }, @@ -9283,13 +9418,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24013, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24013, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24879, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24016, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24016, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24882, { -16, -16, height }, @@ -9311,7 +9446,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24054, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24054, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24920, { -16, -16, height }, @@ -9325,7 +9460,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24012, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24012, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24878, { -16, -16, height }, @@ -9340,6 +9475,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_up( } /** rct2: 0x008AC8C8 */ +template static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9351,8 +9487,8 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24032, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24032, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24898, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9366,14 +9502,14 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24029, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24029, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24895, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24033, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24033, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24899, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -9403,14 +9539,14 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24031, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24031, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24897, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24034, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24034, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24900, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -9428,8 +9564,8 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24030, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24030, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24896, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9442,6 +9578,7 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up( } /** rct2: 0x008AC8D8 */ +template static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9453,8 +9590,8 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24038, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24038, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24904, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9468,14 +9605,14 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24035, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24035, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24901, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24039, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24039, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24905, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -9505,14 +9642,14 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24037, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24037, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24903, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24040, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24040, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24906, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -9530,8 +9667,8 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24036, { -16, -16, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24036, { -16, -16, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24902, { -16, -16, height }, { 16, 16, 2 }, { 0, 0, height }); @@ -9544,6 +9681,7 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up( } /** rct2: 0x008AC8A8 */ +template static void wooden_rc_track_diag_25_deg_up_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9557,7 +9695,7 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24062, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24062, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24928, { -16, -16, height }, @@ -9571,7 +9709,7 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24020, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24020, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24886, { -16, -16, height }, @@ -9589,13 +9727,13 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24059, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24059, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24925, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24063, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24063, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24929, { -16, -16, height }, @@ -9619,13 +9757,13 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24017, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24017, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24883, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24021, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24021, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24887, { -16, -16, height }, @@ -9659,13 +9797,13 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24061, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24061, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24927, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24064, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24064, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24930, { -16, -16, height }, @@ -9689,13 +9827,13 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24019, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24019, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24885, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24022, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24022, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24888, { -16, -16, height }, @@ -9717,7 +9855,7 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24060, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24060, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24926, { -16, -16, height }, @@ -9731,7 +9869,7 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24018, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24018, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24884, { -16, -16, height }, @@ -9746,6 +9884,7 @@ static void wooden_rc_track_diag_25_deg_up_to_flat( } /** rct2: 0x008AC918 */ +template static void wooden_rc_track_diag_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9759,7 +9898,7 @@ static void wooden_rc_track_diag_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24066, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24066, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24932, { -16, -16, height }, @@ -9773,7 +9912,7 @@ static void wooden_rc_track_diag_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24024, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24024, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24890, { -16, -16, height }, @@ -9791,13 +9930,13 @@ static void wooden_rc_track_diag_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24067, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24067, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24933, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24070, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24070, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24936, { -16, -16, height }, @@ -9821,13 +9960,13 @@ static void wooden_rc_track_diag_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24025, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24025, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24891, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24028, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24028, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24894, { -16, -16, height }, @@ -9861,13 +10000,13 @@ static void wooden_rc_track_diag_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24065, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24065, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24931, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24069, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24069, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24935, { -16, -16, height }, @@ -9891,13 +10030,13 @@ static void wooden_rc_track_diag_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24023, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24023, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24889, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24027, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24027, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 43 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24893, { -16, -16, height }, @@ -9919,7 +10058,7 @@ static void wooden_rc_track_diag_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24068, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24068, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24934, { -16, -16, height }, @@ -9933,7 +10072,7 @@ static void wooden_rc_track_diag_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24026, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24026, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24892, { -16, -16, height }, @@ -9948,6 +10087,7 @@ static void wooden_rc_track_diag_25_deg_down( } /** rct2: 0x008AC948 */ +template static void wooden_rc_track_diag_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -9959,8 +10099,8 @@ static void wooden_rc_track_diag_60_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24042, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24042, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24908, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -9974,14 +10114,14 @@ static void wooden_rc_track_diag_60_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24043, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24043, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24909, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24046, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 91 }); + session, direction, wooden_rc_get_track_colour(session) | 24046, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 91 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24912, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 91 }); @@ -10011,14 +10151,14 @@ static void wooden_rc_track_diag_60_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24041, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24041, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24907, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24045, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 91 }); + session, direction, wooden_rc_get_track_colour(session) | 24045, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 91 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24911, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 91 }); @@ -10036,8 +10176,8 @@ static void wooden_rc_track_diag_60_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24044, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24044, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24910, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10050,6 +10190,7 @@ static void wooden_rc_track_diag_60_deg_down( } /** rct2: 0x008AC8F8 */ +template static void wooden_rc_track_diag_flat_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10063,7 +10204,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24060, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24060, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24926, { -16, -16, height }, @@ -10077,7 +10218,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24018, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24018, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24884, { -16, -16, height }, @@ -10093,13 +10234,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24061, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24061, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24927, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24064, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24064, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24930, { -16, -16, height }, @@ -10123,13 +10264,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24019, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24019, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24885, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24022, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24022, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24888, { -16, -16, height }, @@ -10161,13 +10302,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24059, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24059, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24925, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24063, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24063, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24929, { -16, -16, height }, @@ -10191,13 +10332,13 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24017, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24017, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24883, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24021, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24021, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24887, { -16, -16, height }, @@ -10217,7 +10358,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24062, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24062, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24928, { -16, -16, height }, @@ -10231,7 +10372,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24020, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24020, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24886, { -16, -16, height }, @@ -10247,6 +10388,7 @@ static void wooden_rc_track_diag_flat_to_25_deg_down( } /** rct2: 0x008AC928 */ +template static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10258,8 +10400,8 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24036, { -16, -16, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24036, { -16, -16, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24902, { -16, -16, height }, { 16, 16, 2 }, { 0, 0, height }); @@ -10273,14 +10415,14 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24037, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24037, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24903, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24040, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24040, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24906, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -10310,14 +10452,14 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24035, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24035, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24901, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24039, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24039, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24905, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -10335,8 +10477,8 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24038, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24038, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24904, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10349,6 +10491,7 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down( } /** rct2: 0x008AC938 */ +template static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10360,8 +10503,8 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24030, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24030, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24896, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10375,14 +10518,14 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24031, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24031, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24897, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24034, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24034, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24900, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -10412,14 +10555,14 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24029, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24029, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24895, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24033, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24033, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24899, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 59 }); @@ -10437,8 +10580,8 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24032, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24032, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24898, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10451,6 +10594,7 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down( } /** rct2: 0x008AC908 */ +template static void wooden_rc_track_diag_25_deg_down_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10464,7 +10608,7 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24054, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24054, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24920, { -16, -16, height }, @@ -10478,7 +10622,7 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24012, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24012, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24878, { -16, -16, height }, @@ -10496,13 +10640,13 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24055, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24055, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24921, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24058, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24058, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24924, { -16, -16, height }, @@ -10526,13 +10670,13 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24013, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24013, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24879, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24016, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24016, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24882, { -16, -16, height }, @@ -10566,13 +10710,13 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24053, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24053, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24919, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24057, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24057, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24923, { -16, -16, height }, @@ -10596,13 +10740,13 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24011, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24011, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24877, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24015, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24015, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24881, { -16, -16, height }, @@ -10624,7 +10768,7 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24056, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24056, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24922, { -16, -16, height }, @@ -10638,7 +10782,7 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24014, { -16, -16, height }, + session, direction, wooden_rc_get_track_colour(session) | 24014, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24880, { -16, -16, height }, @@ -10653,6 +10797,7 @@ static void wooden_rc_track_diag_25_deg_down_to_flat( } /** rct2: 0x008ACA18 */ +template static void wooden_rc_track_diag_flat_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10664,8 +10809,8 @@ static void wooden_rc_track_diag_flat_to_left_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24080, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24080, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24946, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10679,14 +10824,14 @@ static void wooden_rc_track_diag_flat_to_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24077, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24077, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24943, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24081, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24081, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24947, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10716,14 +10861,14 @@ static void wooden_rc_track_diag_flat_to_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24079, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24079, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24945, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24082, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24082, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24948, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10741,8 +10886,8 @@ static void wooden_rc_track_diag_flat_to_left_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24078, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24078, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24944, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10755,6 +10900,7 @@ static void wooden_rc_track_diag_flat_to_left_bank( } /** rct2: 0x008AC9F8 */ +template static void wooden_rc_track_diag_flat_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10766,8 +10912,8 @@ static void wooden_rc_track_diag_flat_to_right_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24086, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24086, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24952, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10781,14 +10927,14 @@ static void wooden_rc_track_diag_flat_to_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24083, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24083, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24949, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24087, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24087, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24953, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10818,14 +10964,14 @@ static void wooden_rc_track_diag_flat_to_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24085, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24085, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24951, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24088, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24088, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24954, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10843,8 +10989,8 @@ static void wooden_rc_track_diag_flat_to_right_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24084, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24084, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24950, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10857,6 +11003,7 @@ static void wooden_rc_track_diag_flat_to_right_bank( } /** rct2: 0x008ACA08 */ +template static void wooden_rc_track_diag_left_bank_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10868,8 +11015,8 @@ static void wooden_rc_track_diag_left_bank_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24084, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24084, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24950, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10883,14 +11030,14 @@ static void wooden_rc_track_diag_left_bank_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24085, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24085, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24951, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24088, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24088, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24954, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10920,14 +11067,14 @@ static void wooden_rc_track_diag_left_bank_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24083, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24083, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24949, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24087, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24087, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24953, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -10945,8 +11092,8 @@ static void wooden_rc_track_diag_left_bank_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24086, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24086, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24952, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10959,6 +11106,7 @@ static void wooden_rc_track_diag_left_bank_to_flat( } /** rct2: 0x008ACA28 */ +template static void wooden_rc_track_diag_right_bank_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -10970,8 +11118,8 @@ static void wooden_rc_track_diag_right_bank_to_flat( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24078, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24078, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24944, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -10985,14 +11133,14 @@ static void wooden_rc_track_diag_right_bank_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24079, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24079, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24945, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24082, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24082, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24948, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -11022,14 +11170,14 @@ static void wooden_rc_track_diag_right_bank_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24077, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24077, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24943, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24081, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24081, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24947, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -11047,8 +11195,8 @@ static void wooden_rc_track_diag_right_bank_to_flat( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24080, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24080, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24946, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11061,6 +11209,7 @@ static void wooden_rc_track_diag_right_bank_to_flat( } /** rct2: 0x008ACA58 */ +template static void wooden_rc_track_diag_left_bank_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11072,8 +11221,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24104, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24104, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24970, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11087,14 +11236,14 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24101, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24101, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24967, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24105, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24105, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24971, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11124,14 +11273,14 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24103, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24103, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24969, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24106, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24106, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24972, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11149,8 +11298,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24102, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24102, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24968, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11163,6 +11312,7 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up( } /** rct2: 0x008ACA68 */ +template static void wooden_rc_track_diag_right_bank_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11174,8 +11324,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24110, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24110, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24976, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11189,14 +11339,14 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24107, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24107, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24973, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24111, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24111, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24977, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11226,14 +11376,14 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24109, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24109, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24975, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24112, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24112, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24978, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11251,8 +11401,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24108, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24108, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24974, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11265,6 +11415,7 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up( } /** rct2: 0x008ACA38 */ +template static void wooden_rc_track_diag_25_deg_up_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11276,8 +11427,8 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24092, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24092, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24958, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11291,14 +11442,14 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24089, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24089, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24955, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24093, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24093, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24959, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11328,14 +11479,14 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24091, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24091, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24957, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24094, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24094, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24960, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11353,8 +11504,8 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24090, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24090, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24956, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11367,6 +11518,7 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank( } /** rct2: 0x008ACA48 */ +template static void wooden_rc_track_diag_25_deg_up_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11378,8 +11530,8 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24098, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24098, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24964, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11393,14 +11545,14 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24095, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24095, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24961, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24099, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24099, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24965, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11430,14 +11582,14 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24097, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24097, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24963, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24100, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24100, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24966, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11455,8 +11607,8 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24096, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24096, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24962, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11469,6 +11621,7 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank( } /** rct2: 0x008ACA78 */ +template static void wooden_rc_track_diag_left_bank_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11480,8 +11633,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24096, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24096, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24962, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11493,14 +11646,14 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24097, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24097, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24963, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24100, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24100, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24966, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11528,14 +11681,14 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24095, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24095, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24961, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24099, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24099, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24965, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11551,8 +11704,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24098, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24098, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24964, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11566,6 +11719,7 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down( } /** rct2: 0x008ACA88 */ +template static void wooden_rc_track_diag_right_bank_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11577,8 +11731,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24090, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24090, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24956, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11590,14 +11744,14 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24091, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24091, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24957, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24094, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24094, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24960, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11625,14 +11779,14 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24089, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24089, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24955, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24093, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24093, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24959, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11648,8 +11802,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24092, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24092, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24958, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11663,6 +11817,7 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down( } /** rct2: 0x008ACA98 */ +template static void wooden_rc_track_diag_25_deg_down_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11674,8 +11829,8 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24108, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24108, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24974, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11689,14 +11844,14 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24109, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24109, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24975, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24112, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24112, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24978, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11726,14 +11881,14 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24107, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24107, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24973, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24111, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24111, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24977, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11751,8 +11906,8 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24110, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24110, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24976, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11765,6 +11920,7 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank( } /** rct2: 0x008ACAA8 */ +template static void wooden_rc_track_diag_25_deg_down_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11776,8 +11932,8 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24102, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24102, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24968, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11791,14 +11947,14 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24103, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24103, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24969, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24106, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24106, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24972, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11828,14 +11984,14 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24101, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24101, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24967, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24105, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 35 }); + session, direction, wooden_rc_get_track_colour(session) | 24105, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 35 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24971, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 }); @@ -11853,8 +12009,8 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24104, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24104, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24970, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11867,6 +12023,7 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank( } /** rct2: 0x008AC9D8 */ +template static void wooden_rc_track_diag_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11878,8 +12035,8 @@ static void wooden_rc_track_diag_left_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24074, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24074, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24940, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11893,14 +12050,14 @@ static void wooden_rc_track_diag_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24071, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24071, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24937, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24075, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24075, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24941, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -11930,14 +12087,14 @@ static void wooden_rc_track_diag_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24073, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24073, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24939, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24076, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24076, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24942, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -11955,8 +12112,8 @@ static void wooden_rc_track_diag_left_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24072, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24072, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24938, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11969,6 +12126,7 @@ static void wooden_rc_track_diag_left_bank( } /** rct2: 0x008AC9E8 */ +template static void wooden_rc_track_diag_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -11980,8 +12138,8 @@ static void wooden_rc_track_diag_right_bank( { case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24072, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24072, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24938, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -11995,14 +12153,14 @@ static void wooden_rc_track_diag_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24073, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24073, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24939, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24076, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24076, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24942, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -12032,14 +12190,14 @@ static void wooden_rc_track_diag_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24071, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24071, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24937, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24075, { -16, -16, height }, { 32, 32, 0 }, - { -16, -16, height + 27 }); + session, direction, wooden_rc_get_track_colour(session) | 24075, { -16, -16, height }, + { 32, 32, 0 }, { -16, -16, height + 27 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24941, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 }); @@ -12057,8 +12215,8 @@ static void wooden_rc_track_diag_right_bank( { case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24074, { -16, -16, height }, { 32, 32, 2 }, - { -16, -16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24074, { -16, -16, height }, + { 32, 32, 2 }, { -16, -16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24940, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height }); @@ -12071,6 +12229,7 @@ static void wooden_rc_track_diag_right_bank( } /** rct2: 0x008ACB38 */ +template static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12082,8 +12241,8 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23958, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23958, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24824, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12091,14 +12250,14 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23960, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23960, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24826, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23971, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23971, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24837, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12106,8 +12265,8 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23962, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23962, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24828, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12115,14 +12274,14 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23956, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23956, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24822, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23969, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23969, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24835, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12149,8 +12308,8 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23957, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23957, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24823, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12158,14 +12317,14 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23959, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23959, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24825, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23970, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23970, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24836, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12173,14 +12332,14 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23961, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23961, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24827, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23972, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23972, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24838, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12188,14 +12347,14 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23955, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23955, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24821, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23968, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23968, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24834, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12218,6 +12377,7 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up( } /** rct2: 0x008ACB48 */ +template static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12229,14 +12389,14 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23947, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23947, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24813, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23963, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23963, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24829, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12244,8 +12404,8 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23949, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23949, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24815, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12253,14 +12413,14 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23951, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23951, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24817, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23966, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23966, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24832, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12268,8 +12428,8 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23953, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23953, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24819, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12296,14 +12456,14 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23948, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23948, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24814, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23964, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23964, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24830, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12311,14 +12471,14 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23950, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23950, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24816, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23965, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23965, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24831, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12326,14 +12486,14 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23952, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23952, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24818, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23967, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23967, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24833, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12341,8 +12501,8 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23954, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23954, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24820, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12365,6 +12525,7 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up( } /** rct2: 0x008ACB58 */ +template static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12376,14 +12537,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23950, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23950, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24816, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23965, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23965, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24831, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12391,14 +12552,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23952, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23952, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24818, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23967, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23967, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24833, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12406,8 +12567,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23954, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23954, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24820, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12415,14 +12576,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23948, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23948, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24814, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23964, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23964, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24830, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12449,8 +12610,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23949, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23949, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24815, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12458,14 +12619,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23951, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23951, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24817, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23966, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23966, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24832, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12473,8 +12634,8 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23953, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23953, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24819, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12482,14 +12643,14 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23947, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23947, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24813, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23963, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23963, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24829, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12512,6 +12673,7 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank( } /** rct2: 0x008ACB68 */ +template static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12523,14 +12685,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23955, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23955, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24821, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23968, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23968, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24834, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12538,8 +12700,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23957, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23957, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24823, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12547,14 +12709,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23959, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23959, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24825, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23970, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23970, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24836, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12562,14 +12724,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23961, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23961, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24827, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23972, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23972, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24838, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12596,14 +12758,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23956, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23956, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24822, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23969, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23969, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24835, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12611,8 +12773,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23958, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23958, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24824, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12620,14 +12782,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23960, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23960, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24826, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23971, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23971, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24837, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12635,8 +12797,8 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23962, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23962, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24828, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12659,13 +12821,14 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank( } /** rct2: 0x008ACDF8 */ +template static void wooden_rc_track_block_brakes( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { const auto brakeImg = trackElement.BlockBrakeClosed() ? _wooden_rc_block_brakes_image_ids[direction][1] : _wooden_rc_block_brakes_image_ids[direction][0]; - wooden_rc_track_paint( + wooden_rc_track_paint( session, brakeImg, _wooden_rc_block_brakes_image_ids[direction][2], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -12674,6 +12837,7 @@ static void wooden_rc_track_block_brakes( } /** rct2: 0x008ACCB8 */ +template static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12685,8 +12849,8 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23932, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23932, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24798, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12694,14 +12858,14 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23934, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23934, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24800, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23945, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23945, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24811, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12709,8 +12873,8 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23936, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23936, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24802, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12718,14 +12882,14 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23930, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23930, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24796, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23943, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23943, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24809, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12752,8 +12916,8 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23931, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23931, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24797, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12761,14 +12925,14 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23933, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23933, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24799, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23944, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23944, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24810, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12776,14 +12940,14 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23935, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23935, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24801, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23946, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23946, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24812, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12791,14 +12955,14 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23929, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23929, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24795, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23942, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23942, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24808, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12821,6 +12985,7 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( } /** rct2: 0x008ACCC8 */ +template static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12832,14 +12997,14 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23921, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23921, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24787, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23937, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23937, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24803, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12847,8 +13012,8 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23923, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23923, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24789, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12856,14 +13021,14 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23925, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23925, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24791, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23940, { 0, 6, height }, { 32, 20, 0 }, - { 0, 6, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23940, { 0, 6, height }, + { 32, 20, 0 }, { 0, 6, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24806, { 0, 6, height }, { 32, 20, 0 }, { 0, 6, height + 67 }); @@ -12871,8 +13036,8 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23927, { 0, 6, height }, { 32, 20, 2 }, - { 0, 6, height }); + session, direction, wooden_rc_get_track_colour(session) | 23927, { 0, 6, height }, + { 32, 20, 2 }, { 0, 6, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24793, { 0, 6, height }, { 32, 20, 2 }, { 0, 6, height }); @@ -12899,14 +13064,14 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23922, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23922, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24788, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23938, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23938, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24804, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12914,14 +13079,14 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23924, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23924, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24790, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23939, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23939, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24805, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12929,14 +13094,14 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23926, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23926, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24792, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23941, { 6, 0, height }, { 20, 32, 0 }, - { 6, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 23941, { 6, 0, height }, + { 20, 32, 0 }, { 6, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24807, { 6, 0, height }, { 20, 32, 0 }, { 6, 0, height + 67 }); @@ -12944,8 +13109,8 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 23928, { 6, 0, height }, { 20, 32, 2 }, - { 6, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 23928, { 6, 0, height }, + { 20, 32, 2 }, { 6, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 24794, { 6, 0, height }, { 20, 32, 2 }, { 6, 0, height }); @@ -12968,26 +13133,29 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( } /** rct2: 0x008ACCD8 */ +template static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( + wooden_rc_track_right_banked_quarter_turn_3_25_deg_up( session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008ACCE8 */ +template static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( + wooden_rc_track_left_banked_quarter_turn_3_25_deg_up( session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008ACC38 */ +template static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -12999,8 +13167,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24321, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24321, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25187, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13008,14 +13176,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24326, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24326, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25192, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24352, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24352, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25218, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 67 }); @@ -13023,8 +13191,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24331, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24331, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25197, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13032,8 +13200,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24336, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24336, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25202, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13057,8 +13225,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24322, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24322, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25188, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -13066,14 +13234,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24327, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24327, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25193, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24353, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24353, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25219, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 67 }); @@ -13081,8 +13249,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24332, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24332, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25198, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -13090,14 +13258,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24337, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24337, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25203, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24359, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24359, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25225, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 67 }); @@ -13116,8 +13284,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24323, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24323, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25189, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -13125,14 +13293,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24328, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24328, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25194, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24354, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24354, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25220, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 59 }); @@ -13140,8 +13308,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24333, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24333, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25199, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -13149,14 +13317,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24338, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24338, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25204, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24360, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24360, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25226, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 59 }); @@ -13181,8 +13349,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24324, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24324, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25190, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -13190,14 +13358,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24329, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24329, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25195, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24355, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24355, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25221, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -13205,14 +13373,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24334, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24334, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25200, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24357, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24357, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25223, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -13220,14 +13388,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24339, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24339, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25205, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24361, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24361, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25227, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 67 }); @@ -13246,8 +13414,8 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24325, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24325, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25191, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); @@ -13255,14 +13423,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24330, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24330, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25196, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24356, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24356, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25222, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13270,14 +13438,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24335, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24335, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25201, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24358, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24358, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25224, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13285,14 +13453,14 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24340, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24340, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25206, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24362, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24362, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25228, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13315,6 +13483,7 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( } /** rct2: 0x008ACC48 */ +template static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13326,8 +13495,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24301, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24301, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25167, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13335,8 +13504,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24306, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24306, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25172, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13344,14 +13513,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24311, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24311, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25177, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24347, { 0, 0, height }, { 32, 27, 0 }, - { 0, 2, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24347, { 0, 0, height }, + { 32, 27, 0 }, { 0, 2, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25213, { 0, 0, height }, { 32, 27, 0 }, { 0, 2, height + 67 }); @@ -13359,8 +13528,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24316, { 0, 0, height }, { 32, 27, 2 }, - { 0, 2, height }); + session, direction, wooden_rc_get_track_colour(session) | 24316, { 0, 0, height }, + { 32, 27, 2 }, { 0, 2, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25182, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height }); @@ -13384,14 +13553,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24302, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24302, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25168, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24341, { 0, 0, height }, { 32, 16, 0 }, - { 0, 16, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24341, { 0, 0, height }, + { 32, 16, 0 }, { 0, 16, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25207, { 0, 0, height }, { 32, 16, 0 }, { 0, 16, height + 67 }); @@ -13399,8 +13568,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24307, { 0, 0, height }, { 32, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24307, { 0, 0, height }, + { 32, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25173, { 0, 0, height }, { 32, 16, 2 }, { 0, 16, height }); @@ -13408,14 +13577,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24312, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24312, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25178, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24348, { 0, 0, height }, { 32, 16, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24348, { 0, 0, height }, + { 32, 16, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25214, { 0, 0, height }, { 32, 16, 0 }, { 0, 0, height + 67 }); @@ -13423,8 +13592,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24317, { 0, 0, height }, { 32, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24317, { 0, 0, height }, + { 32, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25183, { 0, 0, height }, { 32, 16, 2 }, { 0, 0, height }); @@ -13443,14 +13612,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24303, { 0, 0, height }, { 16, 16, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24303, { 0, 0, height }, + { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25169, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24342, { 0, 0, height }, { 16, 16, 0 }, - { 0, 0, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24342, { 0, 0, height }, + { 16, 16, 0 }, { 0, 0, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25208, { 0, 0, height }, { 16, 16, 0 }, { 0, 0, height + 59 }); @@ -13458,8 +13627,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24308, { 0, 0, height }, { 16, 16, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24308, { 0, 0, height }, + { 16, 16, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25174, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height }); @@ -13467,14 +13636,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24313, { 0, 0, height }, { 16, 16, 2 }, - { 16, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24313, { 0, 0, height }, + { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25179, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24349, { 0, 0, height }, { 16, 16, 0 }, - { 16, 16, height + 59 }); + session, direction, wooden_rc_get_track_colour(session) | 24349, { 0, 0, height }, + { 16, 16, 0 }, { 16, 16, height + 59 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25215, { 0, 0, height }, { 16, 16, 0 }, { 16, 16, height + 59 }); @@ -13482,8 +13651,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24318, { 0, 0, height }, { 16, 16, 2 }, - { 0, 16, height }); + session, direction, wooden_rc_get_track_colour(session) | 24318, { 0, 0, height }, + { 16, 16, 2 }, { 0, 16, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25184, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height }); @@ -13508,14 +13677,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24304, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24304, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25170, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24343, { 0, 0, height }, { 16, 32, 0 }, - { 16, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24343, { 0, 0, height }, + { 16, 32, 0 }, { 16, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25209, { 0, 0, height }, { 16, 32, 0 }, { 16, 0, height + 67 }); @@ -13523,14 +13692,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24309, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24309, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25175, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24345, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24345, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25211, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -13538,14 +13707,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24314, { 0, 0, height }, { 16, 32, 2 }, - { 0, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24314, { 0, 0, height }, + { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25180, { 0, 0, height }, { 16, 32, 2 }, { 0, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24350, { 0, 0, height }, { 16, 32, 0 }, - { 0, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24350, { 0, 0, height }, + { 16, 32, 0 }, { 0, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25216, { 0, 0, height }, { 16, 32, 0 }, { 0, 0, height + 67 }); @@ -13553,8 +13722,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24319, { 0, 0, height }, { 16, 32, 2 }, - { 16, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24319, { 0, 0, height }, + { 16, 32, 2 }, { 16, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25185, { 0, 0, height }, { 16, 32, 2 }, { 16, 0, height }); @@ -13573,14 +13742,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24305, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24305, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25171, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24344, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24344, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25210, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13588,14 +13757,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24310, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24310, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25176, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24346, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24346, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25212, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13603,14 +13772,14 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24315, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24315, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25181, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24351, { 0, 0, height }, { 27, 32, 0 }, - { 2, 0, height + 67 }); + session, direction, wooden_rc_get_track_colour(session) | 24351, { 0, 0, height }, + { 27, 32, 0 }, { 2, 0, height + 67 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25217, { 0, 0, height }, { 27, 32, 0 }, { 2, 0, height + 67 }); @@ -13618,8 +13787,8 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24320, { 0, 0, height }, { 27, 32, 2 }, - { 2, 0, height }); + session, direction, wooden_rc_get_track_colour(session) | 24320, { 0, 0, height }, + { 27, 32, 2 }, { 2, 0, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25186, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height }); @@ -13642,26 +13811,29 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( } /** rct2: 0x008ACC58 */ +template static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( + wooden_rc_track_right_banked_quarter_turn_5_25_deg_up( session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } /** rct2: 0x008ACC68 */ +template static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( + wooden_rc_track_left_banked_quarter_turn_5_25_deg_up( session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /** rct2: 0x008ACCF8 */ +template static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13670,7 +13842,7 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24261, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24261, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25127, { 0, 0, height }, { 32, 25, 2 }, @@ -13679,7 +13851,7 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24262, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24262, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25128, { 0, 0, height }, { 32, 25, 2 }, @@ -13688,7 +13860,7 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24263, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24263, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25129, { 0, 0, height }, { 32, 25, 2 }, @@ -13697,7 +13869,7 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24264, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24264, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25130, { 0, 0, height }, { 32, 25, 2 }, @@ -13718,6 +13890,7 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( } /** rct2: 0x008ACD08 */ +template static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13726,7 +13899,7 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24265, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24265, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25131, { 0, 0, height }, { 32, 25, 2 }, @@ -13735,7 +13908,7 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24266, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24266, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25132, { 0, 0, height }, { 32, 25, 2 }, @@ -13744,7 +13917,7 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24267, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24267, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25133, { 0, 0, height }, { 32, 25, 2 }, @@ -13753,7 +13926,7 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24268, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24268, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25134, { 0, 0, height }, { 32, 25, 2 }, @@ -13774,6 +13947,7 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( } /** rct2: 0x008ACD18 */ +template static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13782,7 +13956,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24269, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24269, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25135, { 0, 0, height }, { 32, 25, 2 }, @@ -13791,7 +13965,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24270, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24270, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25136, { 0, 0, height }, { 32, 25, 2 }, @@ -13800,7 +13974,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24271, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24271, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25137, { 0, 0, height }, { 32, 25, 2 }, @@ -13809,7 +13983,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24272, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24272, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25138, { 0, 0, height }, { 32, 25, 2 }, @@ -13830,6 +14004,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( } /** rct2: 0x008ACD28 */ +template static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13838,7 +14013,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24273, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24273, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25139, { 0, 0, height }, { 32, 25, 2 }, @@ -13847,7 +14022,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24274, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24274, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25140, { 0, 0, height }, { 32, 25, 2 }, @@ -13856,7 +14031,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24275, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24275, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25141, { 0, 0, height }, { 32, 25, 2 }, @@ -13865,7 +14040,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24276, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24276, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25142, { 0, 0, height }, { 32, 25, 2 }, @@ -13886,40 +14061,47 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( } /** rct2: 0x008ACD38 */ +template static void wooden_rc_track_25_deg_down_to_left_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( + wooden_rc_track_right_banked_25_deg_up_to_25_deg_up( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACD48 */ +template static void wooden_rc_track_25_deg_down_to_right_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_banked_25_deg_up_to_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_left_banked_25_deg_up_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACD58 */ +template static void wooden_rc_track_left_banked_25_deg_down_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( + wooden_rc_track_25_deg_up_to_right_banked_25_deg_up( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACD68 */ +template static void wooden_rc_track_right_banked_25_deg_down_to_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_25_deg_up_to_left_banked_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_25_deg_up_to_left_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACD78 */ +template static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13928,7 +14110,7 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24277, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24277, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25143, { 0, 0, height }, { 32, 25, 2 }, @@ -13937,13 +14119,13 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24278, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24278, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25144, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24293, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24293, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25159, { 0, 0, height }, { 32, 1, 9 }, @@ -13952,13 +14134,13 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24279, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24279, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25145, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24294, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24294, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25160, { 0, 0, height }, { 32, 1, 9 }, @@ -13967,7 +14149,7 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24280, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24280, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25146, { 0, 0, height }, { 32, 25, 2 }, @@ -13988,6 +14170,7 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( } /** rct2: 0x008ACD88 */ +template static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -13996,7 +14179,7 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24281, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24281, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25147, { 0, 0, height }, { 32, 25, 2 }, @@ -14005,13 +14188,13 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24282, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24282, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25148, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24295, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24295, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25161, { 0, 0, height }, { 32, 1, 9 }, @@ -14020,13 +14203,13 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24283, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24283, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25149, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24296, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24296, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25162, { 0, 0, height }, { 32, 1, 9 }, @@ -14035,7 +14218,7 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24284, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24284, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25150, { 0, 0, height }, { 32, 25, 2 }, @@ -14056,6 +14239,7 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( } /** rct2: 0x008ACD98 */ +template static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14064,7 +14248,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24285, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24285, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25151, { 0, 0, height }, { 32, 25, 2 }, @@ -14073,13 +14257,13 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24286, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24286, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25152, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24297, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24297, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25163, { 0, 0, height }, { 32, 1, 9 }, @@ -14088,13 +14272,13 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24287, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24287, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25153, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24298, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24298, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25164, { 0, 0, height }, { 32, 1, 9 }, @@ -14103,7 +14287,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24288, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24288, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25154, { 0, 0, height }, { 32, 25, 2 }, @@ -14124,6 +14308,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( } /** rct2: 0x008ACDA8 */ +template static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14132,7 +14317,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24289, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24289, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25155, { 0, 0, height }, { 32, 25, 2 }, @@ -14141,13 +14326,13 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24290, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24290, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25156, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24299, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24299, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25165, { 0, 0, height }, { 32, 1, 9 }, @@ -14156,13 +14341,13 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24291, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24291, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25157, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24300, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24300, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25166, { 0, 0, height }, { 32, 1, 9 }, @@ -14171,7 +14356,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24292, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24292, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25158, { 0, 0, height }, { 32, 25, 2 }, @@ -14192,42 +14377,47 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( } /** rct2: 0x008ACDB8 */ +template static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( + wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACDC8 */ +template static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( + wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACDD8 */ +template static void wooden_rc_track_left_banked_25_deg_down_to_left_banked_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( + wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACDE8 */ +template static void wooden_rc_track_right_banked_25_deg_down_to_right_banked_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( + wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up( session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACBB8 */ +template static void wooden_rc_track_flat_to_left_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14236,7 +14426,7 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24225, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24225, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25091, { 0, 0, height }, { 32, 25, 2 }, @@ -14245,13 +14435,13 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24226, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24226, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25092, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24241, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24241, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25107, { 0, 0, height }, { 32, 1, 9 }, @@ -14260,13 +14450,13 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24227, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24227, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25093, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24242, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24242, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25108, { 0, 0, height }, { 32, 1, 9 }, @@ -14275,7 +14465,7 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24228, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24228, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25094, { 0, 0, height }, { 32, 25, 2 }, @@ -14296,6 +14486,7 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up( } /** rct2: 0x008ACBC8 */ +template static void wooden_rc_track_flat_to_right_banked_25_deg_up( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14304,7 +14495,7 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24229, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24229, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25095, { 0, 0, height }, { 32, 25, 2 }, @@ -14313,13 +14504,13 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24230, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24230, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25096, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24243, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24243, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25109, { 0, 0, height }, { 32, 1, 9 }, @@ -14328,13 +14519,13 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24231, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24231, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25097, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24244, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24244, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25110, { 0, 0, height }, { 32, 1, 9 }, @@ -14343,7 +14534,7 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24232, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24232, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25098, { 0, 0, height }, { 32, 25, 2 }, @@ -14364,6 +14555,7 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up( } /** rct2: 0x008ACBD8 */ +template static void wooden_rc_track_left_banked_25_deg_up_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14372,7 +14564,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24233, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24233, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25099, { 0, 0, height }, { 32, 25, 2 }, @@ -14381,13 +14573,13 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24234, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24234, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25100, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24245, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24245, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25111, { 0, 0, height }, { 32, 1, 9 }, @@ -14396,13 +14588,13 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24235, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24235, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25101, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24246, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24246, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25112, { 0, 0, height }, { 32, 1, 9 }, @@ -14411,7 +14603,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24236, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24236, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25102, { 0, 0, height }, { 32, 25, 2 }, @@ -14432,6 +14624,7 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat( } /** rct2: 0x008ACBE8 */ +template static void wooden_rc_track_right_banked_25_deg_up_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14440,7 +14633,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat( { case 0: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24237, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24237, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25103, { 0, 0, height }, { 32, 25, 2 }, @@ -14449,13 +14642,13 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat( break; case 1: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24238, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24238, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25104, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24247, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24247, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25113, { 0, 0, height }, { 32, 1, 9 }, @@ -14464,13 +14657,13 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat( break; case 2: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24239, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24239, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25105, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24248, { 0, 0, height }, { 32, 1, 9 }, + session, direction, wooden_rc_get_track_colour(session) | 24248, { 0, 0, height }, { 32, 1, 9 }, { 0, 26, height + 5 }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25114, { 0, 0, height }, { 32, 1, 9 }, @@ -14479,7 +14672,7 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat( break; case 3: PaintAddImageAsParentRotated( - session, direction, wooden_rc_get_track_colour(session) | 24240, { 0, 0, height }, { 32, 25, 2 }, + session, direction, wooden_rc_get_track_colour(session) | 24240, { 0, 0, height }, { 32, 25, 2 }, { 0, 3, height }); PaintAddImageAsChildRotated( session, direction, wooden_rc_get_rails_colour(session) | 25106, { 0, 0, height }, { 32, 25, 2 }, @@ -14500,37 +14693,46 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat( } /** rct2: 0x008ACBF8 */ +template static void wooden_rc_track_flat_to_left_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_right_banked_25_deg_up_to_flat(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_right_banked_25_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACC08 */ +template static void wooden_rc_track_flat_to_right_banked_25_deg_down( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_left_banked_25_deg_up_to_flat(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_left_banked_25_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACC18 */ +template static void wooden_rc_track_left_banked_25_deg_down_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_flat_to_right_banked_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_flat_to_right_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } /** rct2: 0x008ACC28 */ +template static void wooden_rc_track_right_banked_25_deg_down_to_flat( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) { - wooden_rc_track_flat_to_left_banked_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); + wooden_rc_track_flat_to_left_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } +template static void wooden_rc_track_booster( paint_session& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height, const TrackElement& trackElement) @@ -14548,7 +14750,7 @@ static void wooden_rc_track_booster( SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW, }; - wooden_rc_track_paint( + wooden_rc_track_paint( session, imageIds[direction], railsImageIds[direction], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(session, direction & 1, 0, height, session.TrackColours[SCHEME_SUPPORTS]); paint_util_push_tunnel_rotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -14556,292 +14758,302 @@ static void wooden_rc_track_booster( paint_util_set_general_support_height(session, height + 32, 0x20); } -TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int32_t trackType) +template TRACK_PAINT_FUNCTION get_track_paint_function_wooden_and_classic_wooden_rc(int32_t trackType) { switch (trackType) { case TrackElemType::Flat: - return wooden_rc_track_flat; + return wooden_rc_track_flat; case TrackElemType::EndStation: case TrackElemType::BeginStation: case TrackElemType::MiddleStation: - return wooden_rc_track_station; + return wooden_rc_track_station; case TrackElemType::Up25: - return wooden_rc_track_25_deg_up; + return wooden_rc_track_25_deg_up; case TrackElemType::Up60: - return wooden_rc_track_60_deg_up; + return wooden_rc_track_60_deg_up; case TrackElemType::FlatToUp25: - return wooden_rc_track_flat_to_25_deg_up; + return wooden_rc_track_flat_to_25_deg_up; case TrackElemType::Up25ToUp60: - return wooden_rc_track_25_deg_up_to_60_deg_up; + return wooden_rc_track_25_deg_up_to_60_deg_up; case TrackElemType::Up60ToUp25: - return wooden_rc_track_60_deg_up_to_25_deg_up; + return wooden_rc_track_60_deg_up_to_25_deg_up; case TrackElemType::Up25ToFlat: - return wooden_rc_track_25_deg_up_to_flat; + return wooden_rc_track_25_deg_up_to_flat; case TrackElemType::Down25: - return wooden_rc_track_25_deg_down; + return wooden_rc_track_25_deg_down; case TrackElemType::Down60: - return wooden_rc_track_60_deg_down; + return wooden_rc_track_60_deg_down; case TrackElemType::FlatToDown25: - return wooden_rc_track_flat_to_25_deg_down; + return wooden_rc_track_flat_to_25_deg_down; case TrackElemType::Down25ToDown60: - return wooden_rc_track_25_deg_down_to_60_deg_down; + return wooden_rc_track_25_deg_down_to_60_deg_down; case TrackElemType::Down60ToDown25: - return wooden_rc_track_60_deg_down_to_25_deg_down; + return wooden_rc_track_60_deg_down_to_25_deg_down; case TrackElemType::Down25ToFlat: - return wooden_rc_track_25_deg_down_to_flat; + return wooden_rc_track_25_deg_down_to_flat; case TrackElemType::LeftQuarterTurn5Tiles: - return wooden_rc_track_left_quarter_turn_5; + return wooden_rc_track_left_quarter_turn_5; case TrackElemType::RightQuarterTurn5Tiles: - return wooden_rc_track_right_quarter_turn_5; + return wooden_rc_track_right_quarter_turn_5; case TrackElemType::FlatToLeftBank: - return wooden_rc_track_flat_to_left_bank; + return wooden_rc_track_flat_to_left_bank; case TrackElemType::FlatToRightBank: - return wooden_rc_track_flat_to_right_bank; + return wooden_rc_track_flat_to_right_bank; case TrackElemType::LeftBankToFlat: - return wooden_rc_track_left_bank_to_flat; + return wooden_rc_track_left_bank_to_flat; case TrackElemType::RightBankToFlat: - return wooden_rc_track_right_bank_to_flat; + return wooden_rc_track_right_bank_to_flat; case TrackElemType::BankedLeftQuarterTurn5Tiles: - return wooden_rc_track_banked_left_quarter_turn_5; + return wooden_rc_track_banked_left_quarter_turn_5; case TrackElemType::BankedRightQuarterTurn5Tiles: - return wooden_rc_track_banked_right_quarter_turn_5; + return wooden_rc_track_banked_right_quarter_turn_5; case TrackElemType::LeftBankToUp25: - return wooden_rc_track_left_bank_to_25_deg_up; + return wooden_rc_track_left_bank_to_25_deg_up; case TrackElemType::RightBankToUp25: - return wooden_rc_track_right_bank_to_25_deg_up; + return wooden_rc_track_right_bank_to_25_deg_up; case TrackElemType::Up25ToLeftBank: - return wooden_rc_track_25_deg_up_to_left_bank; + return wooden_rc_track_25_deg_up_to_left_bank; case TrackElemType::Up25ToRightBank: - return wooden_rc_track_25_deg_up_to_right_bank; + return wooden_rc_track_25_deg_up_to_right_bank; case TrackElemType::LeftBankToDown25: - return wooden_rc_track_left_bank_to_25_deg_down; + return wooden_rc_track_left_bank_to_25_deg_down; case TrackElemType::RightBankToDown25: - return wooden_rc_track_right_bank_to_25_deg_down; + return wooden_rc_track_right_bank_to_25_deg_down; case TrackElemType::Down25ToLeftBank: - return wooden_rc_track_25_deg_down_to_left_bank; + return wooden_rc_track_25_deg_down_to_left_bank; case TrackElemType::Down25ToRightBank: - return wooden_rc_track_25_deg_down_to_right_bank; + return wooden_rc_track_25_deg_down_to_right_bank; case TrackElemType::LeftBank: - return wooden_rc_track_left_bank; + return wooden_rc_track_left_bank; case TrackElemType::RightBank: - return wooden_rc_track_right_bank; + return wooden_rc_track_right_bank; case TrackElemType::LeftQuarterTurn5TilesUp25: - return wooden_rc_track_left_quarter_turn_5_25_deg_up; + return wooden_rc_track_left_quarter_turn_5_25_deg_up; case TrackElemType::RightQuarterTurn5TilesUp25: - return wooden_rc_track_right_quarter_turn_5_25_deg_up; + return wooden_rc_track_right_quarter_turn_5_25_deg_up; case TrackElemType::LeftQuarterTurn5TilesDown25: - return wooden_rc_track_left_quarter_turn_5_25_deg_down; + return wooden_rc_track_left_quarter_turn_5_25_deg_down; case TrackElemType::RightQuarterTurn5TilesDown25: - return wooden_rc_track_right_quarter_turn_5_25_deg_down; + return wooden_rc_track_right_quarter_turn_5_25_deg_down; case TrackElemType::SBendLeft: - return wooden_rc_track_s_bend_left; + return wooden_rc_track_s_bend_left; case TrackElemType::SBendRight: - return wooden_rc_track_s_bend_right; + return wooden_rc_track_s_bend_right; case TrackElemType::LeftVerticalLoop: - return wooden_rc_track_left_vertical_loop; + return wooden_rc_track_left_vertical_loop; case TrackElemType::RightVerticalLoop: - return wooden_rc_track_right_vertical_loop; + return wooden_rc_track_right_vertical_loop; case TrackElemType::LeftQuarterTurn3Tiles: - return wooden_rc_track_left_quarter_turn_3; + return wooden_rc_track_left_quarter_turn_3; case TrackElemType::RightQuarterTurn3Tiles: - return wooden_rc_track_right_quarter_turn_3; + return wooden_rc_track_right_quarter_turn_3; case TrackElemType::LeftBankedQuarterTurn3Tiles: - return wooden_rc_track_left_quarter_turn_3_bank; + return wooden_rc_track_left_quarter_turn_3_bank; case TrackElemType::RightBankedQuarterTurn3Tiles: - return wooden_rc_track_right_quarter_turn_3_bank; + return wooden_rc_track_right_quarter_turn_3_bank; case TrackElemType::LeftQuarterTurn3TilesUp25: - return wooden_rc_track_left_quarter_turn_3_25_deg_up; + return wooden_rc_track_left_quarter_turn_3_25_deg_up; case TrackElemType::RightQuarterTurn3TilesUp25: - return wooden_rc_track_right_quarter_turn_3_25_deg_up; + return wooden_rc_track_right_quarter_turn_3_25_deg_up; case TrackElemType::LeftQuarterTurn3TilesDown25: - return wooden_rc_track_left_quarter_turn_3_25_deg_down; + return wooden_rc_track_left_quarter_turn_3_25_deg_down; case TrackElemType::RightQuarterTurn3TilesDown25: - return wooden_rc_track_right_quarter_turn_3_25_deg_down; + return wooden_rc_track_right_quarter_turn_3_25_deg_down; case TrackElemType::LeftHalfBankedHelixUpSmall: - return wooden_rc_track_left_half_banked_helix_up_small; + return wooden_rc_track_left_half_banked_helix_up_small; case TrackElemType::RightHalfBankedHelixUpSmall: - return wooden_rc_track_right_half_banked_helix_up_small; + return wooden_rc_track_right_half_banked_helix_up_small; case TrackElemType::LeftHalfBankedHelixDownSmall: - return wooden_rc_track_left_half_banked_helix_down_small; + return wooden_rc_track_left_half_banked_helix_down_small; case TrackElemType::RightHalfBankedHelixDownSmall: - return wooden_rc_track_right_half_banked_helix_down_small; + return wooden_rc_track_right_half_banked_helix_down_small; case TrackElemType::LeftHalfBankedHelixUpLarge: - return wooden_rc_track_left_half_banked_helix_up_large; + return wooden_rc_track_left_half_banked_helix_up_large; case TrackElemType::RightHalfBankedHelixUpLarge: - return wooden_rc_track_right_half_banked_helix_up_large; + return wooden_rc_track_right_half_banked_helix_up_large; case TrackElemType::LeftHalfBankedHelixDownLarge: - return wooden_rc_track_left_half_banked_helix_down_large; + return wooden_rc_track_left_half_banked_helix_down_large; case TrackElemType::RightHalfBankedHelixDownLarge: - return wooden_rc_track_right_half_banked_helix_down_large; + return wooden_rc_track_right_half_banked_helix_down_large; case TrackElemType::LeftQuarterTurn1TileUp60: - return wooden_rc_track_left_quarter_turn_1_60_deg_up; + return wooden_rc_track_left_quarter_turn_1_60_deg_up; case TrackElemType::RightQuarterTurn1TileUp60: - return wooden_rc_track_right_quarter_turn_1_60_deg_up; + return wooden_rc_track_right_quarter_turn_1_60_deg_up; case TrackElemType::LeftQuarterTurn1TileDown60: - return wooden_rc_track_left_quarter_turn_1_60_deg_down; + return wooden_rc_track_left_quarter_turn_1_60_deg_down; case TrackElemType::RightQuarterTurn1TileDown60: - return wooden_rc_track_right_quarter_turn_1_60_deg_down; + return wooden_rc_track_right_quarter_turn_1_60_deg_down; case TrackElemType::Brakes: - return wooden_rc_track_brakes; + return wooden_rc_track_brakes; case TrackElemType::Up25LeftBanked: - return wooden_rc_track_25_deg_up_left_banked; + return wooden_rc_track_25_deg_up_left_banked; case TrackElemType::Up25RightBanked: - return wooden_rc_track_25_deg_up_right_banked; + return wooden_rc_track_25_deg_up_right_banked; case TrackElemType::OnRidePhoto: - return wooden_rc_track_on_ride_photo; + return wooden_rc_track_on_ride_photo; case TrackElemType::Down25LeftBanked: - return wooden_rc_track_25_deg_down_left_banked; + return wooden_rc_track_25_deg_down_left_banked; case TrackElemType::Down25RightBanked: - return wooden_rc_track_25_deg_down_right_banked; + return wooden_rc_track_25_deg_down_right_banked; case TrackElemType::Watersplash: - return wooden_rc_track_water_splash; + return wooden_rc_track_water_splash; case TrackElemType::LeftEighthToDiag: - return wooden_rc_track_left_eighth_to_diag; + return wooden_rc_track_left_eighth_to_diag; case TrackElemType::RightEighthToDiag: - return wooden_rc_track_right_eighth_to_diag; + return wooden_rc_track_right_eighth_to_diag; case TrackElemType::LeftEighthToOrthogonal: - return wooden_rc_track_left_eighth_to_orthogonal; + return wooden_rc_track_left_eighth_to_orthogonal; case TrackElemType::RightEighthToOrthogonal: - return wooden_rc_track_right_eighth_to_orthogonal; + return wooden_rc_track_right_eighth_to_orthogonal; case TrackElemType::LeftEighthBankToDiag: - return wooden_rc_track_left_eighth_bank_to_diag; + return wooden_rc_track_left_eighth_bank_to_diag; case TrackElemType::RightEighthBankToDiag: - return wooden_rc_track_right_eighth_bank_to_diag; + return wooden_rc_track_right_eighth_bank_to_diag; case TrackElemType::LeftEighthBankToOrthogonal: - return wooden_rc_track_left_eighth_bank_to_orthogonal; + return wooden_rc_track_left_eighth_bank_to_orthogonal; case TrackElemType::RightEighthBankToOrthogonal: - return wooden_rc_track_right_eighth_bank_to_orthogonal; + return wooden_rc_track_right_eighth_bank_to_orthogonal; case TrackElemType::DiagFlat: - return wooden_rc_track_diag_flat; + return wooden_rc_track_diag_flat; case TrackElemType::DiagUp25: - return wooden_rc_track_diag_25_deg_up; + return wooden_rc_track_diag_25_deg_up; case TrackElemType::DiagUp60: - return wooden_rc_track_diag_60_deg_up; + return wooden_rc_track_diag_60_deg_up; case TrackElemType::DiagFlatToUp25: - return wooden_rc_track_diag_flat_to_25_deg_up; + return wooden_rc_track_diag_flat_to_25_deg_up; case TrackElemType::DiagUp25ToUp60: - return wooden_rc_track_diag_25_deg_up_to_60_deg_up; + return wooden_rc_track_diag_25_deg_up_to_60_deg_up; case TrackElemType::DiagUp60ToUp25: - return wooden_rc_track_diag_60_deg_up_to_25_deg_up; + return wooden_rc_track_diag_60_deg_up_to_25_deg_up; case TrackElemType::DiagUp25ToFlat: - return wooden_rc_track_diag_25_deg_up_to_flat; + return wooden_rc_track_diag_25_deg_up_to_flat; case TrackElemType::DiagDown25: - return wooden_rc_track_diag_25_deg_down; + return wooden_rc_track_diag_25_deg_down; case TrackElemType::DiagDown60: - return wooden_rc_track_diag_60_deg_down; + return wooden_rc_track_diag_60_deg_down; case TrackElemType::DiagFlatToDown25: - return wooden_rc_track_diag_flat_to_25_deg_down; + return wooden_rc_track_diag_flat_to_25_deg_down; case TrackElemType::DiagDown25ToDown60: - return wooden_rc_track_diag_25_deg_down_to_60_deg_down; + return wooden_rc_track_diag_25_deg_down_to_60_deg_down; case TrackElemType::DiagDown60ToDown25: - return wooden_rc_track_diag_60_deg_down_to_25_deg_down; + return wooden_rc_track_diag_60_deg_down_to_25_deg_down; case TrackElemType::DiagDown25ToFlat: - return wooden_rc_track_diag_25_deg_down_to_flat; + return wooden_rc_track_diag_25_deg_down_to_flat; case TrackElemType::DiagFlatToLeftBank: - return wooden_rc_track_diag_flat_to_left_bank; + return wooden_rc_track_diag_flat_to_left_bank; case TrackElemType::DiagFlatToRightBank: - return wooden_rc_track_diag_flat_to_right_bank; + return wooden_rc_track_diag_flat_to_right_bank; case TrackElemType::DiagLeftBankToFlat: - return wooden_rc_track_diag_left_bank_to_flat; + return wooden_rc_track_diag_left_bank_to_flat; case TrackElemType::DiagRightBankToFlat: - return wooden_rc_track_diag_right_bank_to_flat; + return wooden_rc_track_diag_right_bank_to_flat; case TrackElemType::DiagLeftBankToUp25: - return wooden_rc_track_diag_left_bank_to_25_deg_up; + return wooden_rc_track_diag_left_bank_to_25_deg_up; case TrackElemType::DiagRightBankToUp25: - return wooden_rc_track_diag_right_bank_to_25_deg_up; + return wooden_rc_track_diag_right_bank_to_25_deg_up; case TrackElemType::DiagUp25ToLeftBank: - return wooden_rc_track_diag_25_deg_up_to_left_bank; + return wooden_rc_track_diag_25_deg_up_to_left_bank; case TrackElemType::DiagUp25ToRightBank: - return wooden_rc_track_diag_25_deg_up_to_right_bank; + return wooden_rc_track_diag_25_deg_up_to_right_bank; case TrackElemType::DiagLeftBankToDown25: - return wooden_rc_track_diag_left_bank_to_25_deg_down; + return wooden_rc_track_diag_left_bank_to_25_deg_down; case TrackElemType::DiagRightBankToDown25: - return wooden_rc_track_diag_right_bank_to_25_deg_down; + return wooden_rc_track_diag_right_bank_to_25_deg_down; case TrackElemType::DiagDown25ToLeftBank: - return wooden_rc_track_diag_25_deg_down_to_left_bank; + return wooden_rc_track_diag_25_deg_down_to_left_bank; case TrackElemType::DiagDown25ToRightBank: - return wooden_rc_track_diag_25_deg_down_to_right_bank; + return wooden_rc_track_diag_25_deg_down_to_right_bank; case TrackElemType::DiagLeftBank: - return wooden_rc_track_diag_left_bank; + return wooden_rc_track_diag_left_bank; case TrackElemType::DiagRightBank: - return wooden_rc_track_diag_right_bank; + return wooden_rc_track_diag_right_bank; case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25: - return wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up; + return wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up; case TrackElemType::RightBankToRightQuarterTurn3TilesUp25: - return wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up; + return wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up; case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank: - return wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank; + return wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank; case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank: - return wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank; + return wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank; case TrackElemType::BlockBrakes: - return wooden_rc_track_block_brakes; + return wooden_rc_track_block_brakes; case TrackElemType::LeftBankedQuarterTurn3TileUp25: - return wooden_rc_track_left_banked_quarter_turn_3_25_deg_up; + return wooden_rc_track_left_banked_quarter_turn_3_25_deg_up; case TrackElemType::RightBankedQuarterTurn3TileUp25: - return wooden_rc_track_right_banked_quarter_turn_3_25_deg_up; + return wooden_rc_track_right_banked_quarter_turn_3_25_deg_up; case TrackElemType::LeftBankedQuarterTurn3TileDown25: - return wooden_rc_track_left_banked_quarter_turn_3_25_deg_down; + return wooden_rc_track_left_banked_quarter_turn_3_25_deg_down; case TrackElemType::RightBankedQuarterTurn3TileDown25: - return wooden_rc_track_right_banked_quarter_turn_3_25_deg_down; + return wooden_rc_track_right_banked_quarter_turn_3_25_deg_down; case TrackElemType::LeftBankedQuarterTurn5TileUp25: - return wooden_rc_track_left_banked_quarter_turn_5_25_deg_up; + return wooden_rc_track_left_banked_quarter_turn_5_25_deg_up; case TrackElemType::RightBankedQuarterTurn5TileUp25: - return wooden_rc_track_right_banked_quarter_turn_5_25_deg_up; + return wooden_rc_track_right_banked_quarter_turn_5_25_deg_up; case TrackElemType::LeftBankedQuarterTurn5TileDown25: - return wooden_rc_track_left_banked_quarter_turn_5_25_deg_down; + return wooden_rc_track_left_banked_quarter_turn_5_25_deg_down; case TrackElemType::RightBankedQuarterTurn5TileDown25: - return wooden_rc_track_right_banked_quarter_turn_5_25_deg_down; + return wooden_rc_track_right_banked_quarter_turn_5_25_deg_down; case TrackElemType::Up25ToLeftBankedUp25: - return wooden_rc_track_25_deg_up_to_left_banked_25_deg_up; + return wooden_rc_track_25_deg_up_to_left_banked_25_deg_up; case TrackElemType::Up25ToRightBankedUp25: - return wooden_rc_track_25_deg_up_to_right_banked_25_deg_up; + return wooden_rc_track_25_deg_up_to_right_banked_25_deg_up; case TrackElemType::LeftBankedUp25ToUp25: - return wooden_rc_track_left_banked_25_deg_up_to_25_deg_up; + return wooden_rc_track_left_banked_25_deg_up_to_25_deg_up; case TrackElemType::RightBankedUp25ToUp25: - return wooden_rc_track_right_banked_25_deg_up_to_25_deg_up; + return wooden_rc_track_right_banked_25_deg_up_to_25_deg_up; case TrackElemType::Down25ToLeftBankedDown25: - return wooden_rc_track_25_deg_down_to_left_banked_25_deg_down; + return wooden_rc_track_25_deg_down_to_left_banked_25_deg_down; case TrackElemType::Down25ToRightBankedDown25: - return wooden_rc_track_25_deg_down_to_right_banked_25_deg_down; + return wooden_rc_track_25_deg_down_to_right_banked_25_deg_down; case TrackElemType::LeftBankedDown25ToDown25: - return wooden_rc_track_left_banked_25_deg_down_to_25_deg_down; + return wooden_rc_track_left_banked_25_deg_down_to_25_deg_down; case TrackElemType::RightBankedDown25ToDown25: - return wooden_rc_track_right_banked_25_deg_down_to_25_deg_down; + return wooden_rc_track_right_banked_25_deg_down_to_25_deg_down; case TrackElemType::LeftBankedFlatToLeftBankedUp25: - return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up; + return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up; case TrackElemType::RightBankedFlatToRightBankedUp25: - return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up; + return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up; case TrackElemType::LeftBankedUp25ToLeftBankedFlat: - return wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat; + return wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat; case TrackElemType::RightBankedUp25ToRightBankedFlat: - return wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat; + return wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat; case TrackElemType::LeftBankedFlatToLeftBankedDown25: - return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_down; + return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_down; case TrackElemType::RightBankedFlatToRightBankedDown25: - return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_down; + return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_down; case TrackElemType::LeftBankedDown25ToLeftBankedFlat: - return wooden_rc_track_left_banked_25_deg_down_to_left_banked_flat; + return wooden_rc_track_left_banked_25_deg_down_to_left_banked_flat; case TrackElemType::RightBankedDown25ToRightBankedFlat: - return wooden_rc_track_right_banked_25_deg_down_to_right_banked_flat; + return wooden_rc_track_right_banked_25_deg_down_to_right_banked_flat; case TrackElemType::FlatToLeftBankedUp25: - return wooden_rc_track_flat_to_left_banked_25_deg_up; + return wooden_rc_track_flat_to_left_banked_25_deg_up; case TrackElemType::FlatToRightBankedUp25: - return wooden_rc_track_flat_to_right_banked_25_deg_up; + return wooden_rc_track_flat_to_right_banked_25_deg_up; case TrackElemType::LeftBankedUp25ToFlat: - return wooden_rc_track_left_banked_25_deg_up_to_flat; + return wooden_rc_track_left_banked_25_deg_up_to_flat; case TrackElemType::RightBankedUp25ToFlat: - return wooden_rc_track_right_banked_25_deg_up_to_flat; + return wooden_rc_track_right_banked_25_deg_up_to_flat; case TrackElemType::FlatToLeftBankedDown25: - return wooden_rc_track_flat_to_left_banked_25_deg_down; + return wooden_rc_track_flat_to_left_banked_25_deg_down; case TrackElemType::FlatToRightBankedDown25: - return wooden_rc_track_flat_to_right_banked_25_deg_down; + return wooden_rc_track_flat_to_right_banked_25_deg_down; case TrackElemType::LeftBankedDown25ToFlat: - return wooden_rc_track_left_banked_25_deg_down_to_flat; + return wooden_rc_track_left_banked_25_deg_down_to_flat; case TrackElemType::RightBankedDown25ToFlat: - return wooden_rc_track_right_banked_25_deg_down_to_flat; + return wooden_rc_track_right_banked_25_deg_down_to_flat; case TrackElemType::Booster: - return wooden_rc_track_booster; + return wooden_rc_track_booster; } return nullptr; } + +TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int32_t trackType) +{ + return get_track_paint_function_wooden_and_classic_wooden_rc(trackType); +} + +TRACK_PAINT_FUNCTION get_track_paint_function_classic_wooden_rc_fallback(int32_t trackType) +{ + return get_track_paint_function_wooden_and_classic_wooden_rc(trackType); +} diff --git a/src/openrct2/ride/coaster/WoodenRollerCoaster.h b/src/openrct2/ride/coaster/WoodenRollerCoaster.h new file mode 100644 index 0000000000..d6c2242fb9 --- /dev/null +++ b/src/openrct2/ride/coaster/WoodenRollerCoaster.h @@ -0,0 +1,74 @@ +/***************************************************************************** + * Copyright (c) 2014-2022 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#pragma once + +#include "../../paint/Paint.h" +#include "../../world/Location.hpp" +#include "../TrackPaint.h" + +#include + +struct sprite_bb_2 +{ + uint32_t sprite_id_a; + uint32_t sprite_id_b; + CoordsXYZ offset; + CoordsXYZ bb_offset; + CoordsXYZ bb_size; +}; + +template uint32_t wooden_rc_get_track_colour(const paint_session& session) +{ + if (isClassic) + return session.TrackColours[SCHEME_TRACK]; + else + return (session.TrackColours[SCHEME_TRACK] & ~0xF80000) | session.TrackColours[SCHEME_SUPPORTS]; +} + +uint32_t wooden_rc_get_rails_colour(paint_session& session); + +template +paint_struct* wooden_rc_track_paint( + paint_session& session, uint32_t imageIdTrack, uint32_t imageIdRails, uint8_t direction, int8_t x_offset, int8_t y_offset, + int16_t bound_box_length_x, int16_t bound_box_length_y, int8_t bound_box_length_z, int16_t z_offset, + int16_t bound_box_offset_x, int16_t bound_box_offset_y, int16_t bound_box_offset_z) +{ + uint32_t imageId = imageIdTrack | wooden_rc_get_track_colour(session); + uint32_t railsImageId = imageIdRails | wooden_rc_get_rails_colour(session); + + PaintAddImageAsParentRotated( + session, direction, imageId, { x_offset, y_offset, z_offset }, + { bound_box_length_x, bound_box_length_y, bound_box_length_z }, + { bound_box_offset_x, bound_box_offset_y, bound_box_offset_z }); + return PaintAddImageAsChildRotated( + session, direction, railsImageId, { x_offset, y_offset, z_offset }, + { bound_box_length_x, bound_box_length_y, bound_box_length_z }, + { bound_box_offset_x, bound_box_offset_y, bound_box_offset_z }); +} + +template void wooden_rc_track_paint_bb(paint_session& session, const sprite_bb_2* bb, int16_t height) +{ + if (bb->sprite_id_a == 0) + return; + + uint32_t imageId = bb->sprite_id_a | wooden_rc_get_track_colour(session); + PaintAddImageAsParent( + session, imageId, { bb->offset.x, bb->offset.y, height + bb->offset.z }, bb->bb_size, + { bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z }); + if (bb->sprite_id_b != 0) + { + uint32_t railsImageId = bb->sprite_id_b | wooden_rc_get_rails_colour(session); + PaintAddImageAsChild( + session, railsImageId, { bb->offset.x, bb->offset.y, height + bb->offset.z }, bb->bb_size, + { bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z }); + } +} + +TRACK_PAINT_FUNCTION get_track_paint_function_classic_wooden_rc_fallback(int32_t trackType); diff --git a/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h b/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h new file mode 100644 index 0000000000..bbefe7ad79 --- /dev/null +++ b/src/openrct2/ride/coaster/meta/ClassicWoodenRollerCoaster.h @@ -0,0 +1,57 @@ +/***************************************************************************** + * Copyright (c) 2014-2022 OpenRCT2 developers + * + * For a complete list of all authors, please refer to contributors.md + * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 + * + * OpenRCT2 is licensed under the GNU General Public License version 3. + *****************************************************************************/ + +#pragma once + +#include "../../../sprites.h" +#include "../../RideData.h" +#include "../../ShopItem.h" +#include "../../Track.h" + +// clang-format off +constexpr const RideTypeDescriptor ClassicWoodenRollerCoasterRTD = +{ + SET_FIELD(AlternateType, RIDE_TYPE_NULL), + SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER), + SET_FIELD(EnabledTrackPieces, {TRACK_FLAT, TRACK_STRAIGHT, TRACK_STATION_END, TRACK_LIFT_HILL, TRACK_FLAT_ROLL_BANKING, TRACK_VERTICAL_LOOP, TRACK_SLOPE, TRACK_SLOPE_STEEP_UP, TRACK_SLOPE_STEEP_DOWN, TRACK_SLOPE_CURVE, TRACK_S_BEND, TRACK_CURVE_SMALL, TRACK_CURVE, TRACK_BRAKES, TRACK_ON_RIDE_PHOTO, TRACK_WATER_SPLASH, TRACK_BLOCK_BRAKES}), + SET_FIELD(ExtraTrackPieces, {}), + SET_FIELD(CoveredTrackPieces, 0), + SET_FIELD(StartTrackPiece, TrackElemType::EndStation), + SET_FIELD(TrackPaintFunction, get_track_paint_function_classic_wooden_rc), + SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | + RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | + RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), + SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 0 }), + SET_FIELD(Naming, { STR_RIDE_NAME_CLASSIC_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_WOODEN_ROLLER_COASTER }), + SET_FIELD(NameConvention, { RideComponentType::Train, RideComponentType::Track, RideComponentType::Station }), + SET_FIELD(EnumName, nameof(RIDE_TYPE_CLASSIC_WOODEN_ROLLER_COASTER)), + SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)), + SET_FIELD(Heights, { 41, 24, 8, 11, }), + SET_FIELD(MaxMass, 19), + SET_FIELD(LiftData, { OpenRCT2::Audio::SoundId::LiftWood, 5, 7 }), + SET_FIELD(RatingsCalculationFunction, ride_ratings_calculate_wooden_roller_coaster), + SET_FIELD(RatingsMultipliers, { 52, 33, 8 }), + SET_FIELD(UpkeepCosts, { 40, 20, 80, 10, 3, 10 }), + SET_FIELD(BuildCosts, {37.50_GBP, 3.50_GBP, 50, }), + SET_FIELD(DefaultPrices, { 20, 20 }), + SET_FIELD(DefaultMusic, MUSIC_OBJECT_WILD_WEST), + SET_FIELD(PhotoItem, ShopItem::Photo3), + SET_FIELD(BonusValue, 105), + SET_FIELD(ColourPresets, TRACK_COLOUR_PRESETS( + { COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN, COLOUR_SATURATED_BROWN}, + { COLOUR_WHITE, COLOUR_LIGHT_BROWN, COLOUR_WHITE }, + { COLOUR_LIGHT_BROWN, COLOUR_BLACK, COLOUR_LIGHT_BROWN }, + )), + SET_FIELD(ColourPreview, { SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_TRACK, SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS }), + SET_FIELD(ColourKey, RideColourKey::Ride), + SET_FIELD(Name, "classic_wooden_rc"), +}; +// clang-format on diff --git a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h index 8d5f089e00..89834cdc16 100644 --- a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h @@ -1,5 +1,5 @@ /***************************************************************************** - * Copyright (c) 2014-2020 OpenRCT2 developers + * Copyright (c) 2014-2022 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index 3014da1769..487342feb4 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1166,7 +1166,10 @@ enum SPR_G2_WOODEN_RC_STATION_BLOCK_BRAKE_CLOSED_NW_SE, SPR_G2_EMPTY, - SPR_G2_END = SPR_G2_EMPTY + 1, + SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_TRACK, + SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS, + + SPR_G2_END = SPR_RIDE_DESIGN_PREVIEW_CLASSIC_WOODEN_ROLLER_COASTER_SUPPORTS + 1, SPR_CSG_BEGIN = SPR_G2_END, SPR_CSG_END = SPR_CSG_BEGIN + RCT1::Limits::Num_LL_CSG_Entries,