From da80205933e7295eb8a0523d3c6143e2cc85cfb7 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 12:11:23 +0100 Subject: [PATCH 01/15] Setup wooden roller coaster paint function --- src/ride/coaster/wooden_roller_coaster.c | 17 +++++++++++++++++ src/ride/track_data.c | 2 +- src/ride/track_paint.h | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 846fd9695d..3eca4d8c72 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -13,3 +13,20 @@ * A full copy of the GNU General Public License can be found in licence.txt *****************************************************************************/ #pragma endregion + +#include "../../drawing/drawing.h" +#include "../../interface/viewport.h" +#include "../../paint/map_element/map_element.h" +#include "../../paint/paint.h" +#include "../../paint/supports.h" +#include "../../sprites.h" +#include "../../world/map.h" +#include "../../world/sprite.h" +#include "../ride_data.h" +#include "../track_data.h" +#include "../track_paint.h" + +TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direction) +{ + return NULL; +} diff --git a/src/ride/track_data.c b/src/ride/track_data.c index 0d00fe0c49..0a2a50113d 100644 --- a/src/ride/track_data.c +++ b/src/ride/track_data.c @@ -6293,7 +6293,7 @@ const TRACK_PAINT_FUNCTION_GETTER RideTypeTrackPaintFunctions[91] = { get_track_paint_function_circus_show, // RIDE_TYPE_CIRCUS_SHOW get_track_paint_function_ghost_train, // RIDE_TYPE_GHOST_TRAIN get_track_paint_function_twister_rc, // RIDE_TYPE_TWISTER_ROLLER_COASTER - 0, // RIDE_TYPE_WOODEN_ROLLER_COASTER + get_track_paint_function_wooden_rc, // RIDE_TYPE_WOODEN_ROLLER_COASTER get_track_paint_function_side_friction_rc, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER get_track_paint_function_wild_mouse, // RIDE_TYPE_WILD_MOUSE get_track_paint_function_multi_dimension_rc, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER diff --git a/src/ride/track_paint.h b/src/ride/track_paint.h index fb71e1e9f3..1255d6629a 100644 --- a/src/ride/track_paint.h +++ b/src/ride/track_paint.h @@ -327,6 +327,7 @@ TRACK_PAINT_FUNCTION get_track_paint_function_circus_show(int trackType, int dir TRACK_PAINT_FUNCTION get_track_paint_function_ghost_train(int trackType, int direction); TRACK_PAINT_FUNCTION get_track_paint_function_twister_rc(int trackType, int direction); TRACK_PAINT_FUNCTION get_track_paint_function_side_friction_rc(int trackType, int direction); +TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direction); TRACK_PAINT_FUNCTION get_track_paint_function_wild_mouse(int trackType, int direction); TRACK_PAINT_FUNCTION get_track_paint_function_multi_dimension_rc(int trackType, int direction); TRACK_PAINT_FUNCTION get_track_paint_function_flying_rc(int trackType, int direction); From 89d70545c5897386c359bb3f74c2047eda4ebf07 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 12:39:19 +0100 Subject: [PATCH 02/15] Implement flat --- src/ride/coaster/wooden_roller_coaster.c | 56 ++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 3eca4d8c72..425a1e363c 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -26,7 +26,63 @@ #include "../track_data.h" #include "../track_paint.h" +enum { + SPR_WOODEN_RC_FLAT_RAILS_SW_NE = 24619, + SPR_WOODEN_RC_FLAT_RAILS_NW_SE = 24620, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW = 24617, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW = 24618, + + SPR_WOODEN_RC_FLAT_SW_NE = 23753, + SPR_WOODEN_RC_FLAT_NW_SE = 23754, + SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, + SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, + SPR_WOODEN_RC_FLAT_CHAIN_NE_SW = 23751, + SPR_WOODEN_RC_FLAT_CHAIN_SE_NW = 23752, +}; + +static uint32 wooden_rc_get_track_colour() +{ + return (gTrackColours[SCHEME_TRACK] & ~0xF80000) | gTrackColours[SCHEME_SUPPORTS]; +} + +static uint32 wooden_rc_get_rails_colour() +{ + return gTrackColours[SCHEME_TRACK]; +} + +static void wooden_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][2] = { + { SPR_WOODEN_RC_FLAT_SW_NE, SPR_WOODEN_RC_FLAT_CHAIN_SW_NE }, + { SPR_WOODEN_RC_FLAT_NW_SE, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE }, + { SPR_WOODEN_RC_FLAT_SW_NE, SPR_WOODEN_RC_FLAT_CHAIN_NE_SW }, + { SPR_WOODEN_RC_FLAT_NW_SE, SPR_WOODEN_RC_FLAT_CHAIN_SE_NW }, + }; + static const uint32 railsImageIds[4][2] = { + { SPR_WOODEN_RC_FLAT_RAILS_SW_NE, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE }, + { SPR_WOODEN_RC_FLAT_RAILS_NW_SE, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE }, + { SPR_WOODEN_RC_FLAT_RAILS_SW_NE, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW }, + { SPR_WOODEN_RC_FLAT_RAILS_NW_SE, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW }, + }; + + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + uint32 imageId = imageIds[direction][isChained] | wooden_rc_get_track_colour(); + uint32 railsImageId = railsImageIds[direction][isChained] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direction) { + switch (trackType) { + case TRACK_ELEM_FLAT: + return wooden_rc_track_flat; + } return NULL; } From 7e2074d16b5e4e6e49f319c282ea49f77d4d8de7 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 12:58:49 +0100 Subject: [PATCH 03/15] Implement station and brakes --- src/ride/coaster/wooden_roller_coaster.c | 95 +++++++++++++++++++++++- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 425a1e363c..c6a3fb616a 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -34,12 +34,34 @@ enum { SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW = 24617, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW = 24618, - SPR_WOODEN_RC_FLAT_SW_NE = 23753, - SPR_WOODEN_RC_FLAT_NW_SE = 23754, + SPR_WOODEN_RC_BRAKES_RAILS_SW_NE = 24621, + SPR_WOODEN_RC_BRAKES_RAILS_NW_SE = 24622, + SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_SW_NE = 24623, + SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_NW_SE = 24624, + SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, SPR_WOODEN_RC_FLAT_CHAIN_NE_SW = 23751, SPR_WOODEN_RC_FLAT_CHAIN_SE_NW = 23752, + SPR_WOODEN_RC_FLAT_SW_NE = 23753, + SPR_WOODEN_RC_FLAT_NW_SE = 23754, + SPR_WOODEN_RC_BRAKES_SW_NE = 23755, + SPR_WOODEN_RC_BRAKES_NW_SE = 23756, + SPR_WOODEN_RC_BLOCK_BRAKES_SW_NE = 23757, + SPR_WOODEN_RC_BLOCK_BRAKES_NW_SE = 23758, + + SPR_WOODEN_RC_STATION_SW_NE = 23973, + SPR_WOODEN_RC_STATION_NW_SE = 23974, + + SPR_WOODEN_RC_STATION_RAILS_SW_NE = 24839, + SPR_WOODEN_RC_STATION_RAILS_NW_SE = 24840, +}; + +static const uint32 _wooden_rc_block_brakes_image_ids[4][2] = { + { SPR_WOODEN_RC_BLOCK_BRAKES_SW_NE, SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_SW_NE }, + { SPR_WOODEN_RC_BLOCK_BRAKES_NW_SE, SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_NW_SE }, + { SPR_WOODEN_RC_BLOCK_BRAKES_SW_NE, SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_SW_NE }, + { SPR_WOODEN_RC_BLOCK_BRAKES_NW_SE, SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_NW_SE }, }; static uint32 wooden_rc_get_track_colour() @@ -78,11 +100,80 @@ static void wooden_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 dir paint_util_set_general_support_height(height + 32, 0x20); } +static void wooden_rc_track_station(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 stationImageIds[4][2] = { + { SPR_WOODEN_RC_STATION_SW_NE, SPR_WOODEN_RC_STATION_RAILS_SW_NE }, + { SPR_WOODEN_RC_STATION_NW_SE, SPR_WOODEN_RC_STATION_RAILS_NW_SE }, + { SPR_WOODEN_RC_STATION_SW_NE, SPR_WOODEN_RC_STATION_RAILS_SW_NE }, + { SPR_WOODEN_RC_STATION_NW_SE, SPR_WOODEN_RC_STATION_RAILS_NW_SE }, + }; + + int trackType = mapElement->properties.track.type; + if (trackType == TRACK_ELEM_END_STATION) { + uint32 imageId = _wooden_rc_block_brakes_image_ids[direction][0] | wooden_rc_get_track_colour(); + uint32 railsImageId = _wooden_rc_block_brakes_image_ids[direction][1] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, railsImageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + } else { + uint32 imageId = stationImageIds[direction][0] | wooden_rc_get_track_colour(); + uint32 railsImageId = stationImageIds[direction][1] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, railsImageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + track_paint_util_draw_station(rideIndex, trackSequence, direction, height + 4, mapElement); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][2] = { + { SPR_WOODEN_RC_BRAKES_SW_NE, SPR_WOODEN_RC_BRAKES_RAILS_SW_NE }, + { SPR_WOODEN_RC_BRAKES_NW_SE, SPR_WOODEN_RC_BRAKES_RAILS_NW_SE }, + { SPR_WOODEN_RC_BRAKES_SW_NE, SPR_WOODEN_RC_BRAKES_RAILS_SW_NE }, + { SPR_WOODEN_RC_BRAKES_NW_SE, SPR_WOODEN_RC_BRAKES_RAILS_NW_SE }, + }; + + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + uint32 imageId = imageIds[direction][0] | wooden_rc_get_track_colour(); + uint32 railsImageId = imageIds[direction][1] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_block_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + uint32 imageId = _wooden_rc_block_brakes_image_ids[direction][0] | wooden_rc_get_track_colour(); + uint32 railsImageId = _wooden_rc_block_brakes_image_ids[direction][1] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direction) { switch (trackType) { case TRACK_ELEM_FLAT: return wooden_rc_track_flat; + case TRACK_ELEM_END_STATION: + case TRACK_ELEM_BEGIN_STATION: + case TRACK_ELEM_MIDDLE_STATION: + return wooden_rc_track_station; + case TRACK_ELEM_BRAKES: + return wooden_rc_track_brakes; + case TRACK_ELEM_BLOCK_BRAKES: + return wooden_rc_track_block_brakes; } return NULL; } From 18c3d9e618795cc7ffca030cbddace9e941931bd Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 17:39:07 +0100 Subject: [PATCH 04/15] Setup debug start info --- openrct2.vcxproj.user | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/openrct2.vcxproj.user b/openrct2.vcxproj.user index b782b153c4..92375e43c3 100644 --- a/openrct2.vcxproj.user +++ b/openrct2.vcxproj.user @@ -7,8 +7,7 @@ $(TargetDir)\openrct2.exe WindowsLocalDebugger $(TargetDir) - - + "C:\Users\Ted\Documents\OpenRCT2\save\paint_wooden_rc.sv6" $(TargetDir) From 268723269e521f24d2b61e63fcfde0894236a9a2 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 18:10:48 +0100 Subject: [PATCH 05/15] Implement deg 25 up --- src/ride/coaster/wooden_roller_coaster.c | 93 +++++++++++++++++++++--- 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index c6a3fb616a..f09c966434 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -27,17 +27,11 @@ #include "../track_paint.h" enum { - SPR_WOODEN_RC_FLAT_RAILS_SW_NE = 24619, - SPR_WOODEN_RC_FLAT_RAILS_NW_SE = 24620, - SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, - SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, - SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW = 24617, - SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW = 24618, + SPR_WOODEN_RC_25_DEG_FRONT_NW_SE = 23569, + SPR_WOODEN_RC_25_DEG_FRONT_NE_SW = 23570, - SPR_WOODEN_RC_BRAKES_RAILS_SW_NE = 24621, - SPR_WOODEN_RC_BRAKES_RAILS_NW_SE = 24622, - SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_SW_NE = 24623, - SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_NW_SE = 24624, + SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NW_SE = 23603, + SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NE_SW = 23604, SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, @@ -50,9 +44,46 @@ enum { SPR_WOODEN_RC_BLOCK_BRAKES_SW_NE = 23757, SPR_WOODEN_RC_BLOCK_BRAKES_NW_SE = 23758, + SPR_WOODEN_RC_25_DEG_SW_NE = 23545, + SPR_WOODEN_RC_25_DEG_NW_SE = 23546, + SPR_WOODEN_RC_25_DEG_NE_SW = 23547, + SPR_WOODEN_RC_25_DEG_SE_NW = 23548, + + SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE = 23579, + SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE = 23580, + SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW = 23581, + SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW = 23582, + SPR_WOODEN_RC_STATION_SW_NE = 23973, SPR_WOODEN_RC_STATION_NW_SE = 23974, + SPR_WOODEN_RC_25_DEG_RAILS_SW_NE = 24411, + SPR_WOODEN_RC_25_DEG_RAILS_NW_SE = 24412, + SPR_WOODEN_RC_25_DEG_RAILS_NE_SW = 24413, + SPR_WOODEN_RC_25_DEG_RAILS_SE_NW = 24414, + + SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NW_SE = 24435, + SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NE_SW = 24436, + + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE = 24445, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NW_SE = 24446, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NE_SW = 24447, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SE_NW = 24448, + + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NW_SE = 24469, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NE_SW = 24470, + + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW = 24617, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SE_NW = 24618, + SPR_WOODEN_RC_FLAT_RAILS_SW_NE = 24619, + SPR_WOODEN_RC_FLAT_RAILS_NW_SE = 24620, + SPR_WOODEN_RC_BRAKES_RAILS_SW_NE = 24621, + SPR_WOODEN_RC_BRAKES_RAILS_NW_SE = 24622, + SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_SW_NE = 24623, + SPR_WOODEN_RC_BLOCK_BRAKES_RAILS_NW_SE = 24624, + SPR_WOODEN_RC_STATION_RAILS_SW_NE = 24839, SPR_WOODEN_RC_STATION_RAILS_NW_SE = 24840, }; @@ -128,6 +159,46 @@ static void wooden_rc_track_station(uint8 rideIndex, uint8 trackSequence, uint8 paint_util_set_general_support_height(height + 32, 0x20); } +static void wooden_rc_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[2][4][4] = { + { + { SPR_WOODEN_RC_25_DEG_SW_NE, SPR_WOODEN_RC_25_DEG_RAILS_SW_NE, 0 }, + { SPR_WOODEN_RC_25_DEG_NW_SE, SPR_WOODEN_RC_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_NE_SW, SPR_WOODEN_RC_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_SE_NW, SPR_WOODEN_RC_25_DEG_RAILS_SE_NW, 0 }, + }, + { + { SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE, 0 }, + { SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SE_NW, 0 }, + } + }; + + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + uint32 imageId = imageIds[isChained][direction][0] | wooden_rc_get_track_colour(); + uint32 railsImageId = imageIds[isChained][direction][1] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, railsImageId, 0, 0, 32, 25, 2, height, 0, 3, height); + if (direction == 1 || direction == 2) { + imageId = imageIds[isChained][direction][2] | wooden_rc_get_track_colour(); + railsImageId = imageIds[isChained][direction][3] | wooden_rc_get_rails_colour(); + sub_98197C_rotated(direction, imageId, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, railsImageId, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 9 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -170,6 +241,8 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc case TRACK_ELEM_BEGIN_STATION: case TRACK_ELEM_MIDDLE_STATION: return wooden_rc_track_station; + case TRACK_ELEM_25_DEG_UP: + return wooden_rc_track_25_deg_up; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; case TRACK_ELEM_BLOCK_BRAKES: From e488f41427fb4c790bb95e1ef8e9517e4d67a61c Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 21:01:09 +0100 Subject: [PATCH 06/15] Implement 60, flat to 25, 25 to 60 --- src/ride/coaster/wooden_roller_coaster.c | 262 +++++++++++++++++++---- 1 file changed, 218 insertions(+), 44 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index f09c966434..c494b43d80 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -27,12 +27,63 @@ #include "../track_paint.h" enum { + SPR_WOODEN_RC_FLAT_TO_25_DEG_SW_NE = 23537, + SPR_WOODEN_RC_FLAT_TO_25_DEG_NW_SE = 23538, + SPR_WOODEN_RC_FLAT_TO_25_DEG_NE_SW = 23539, + SPR_WOODEN_RC_FLAT_TO_25_DEG_SE_NW = 23540, + + SPR_WOODEN_RC_25_DEG_SW_NE = 23545, + SPR_WOODEN_RC_25_DEG_NW_SE = 23546, + SPR_WOODEN_RC_25_DEG_NE_SW = 23547, + SPR_WOODEN_RC_25_DEG_SE_NW = 23548, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_SW_NE = 23549, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_FRONT_NW_SE = 23550, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_NW_SE = 23551, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_FRONT_NE_SW = 23552, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_NE_SW = 23553, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_SE_NW = 23554, + + SPR_WOODEN_RC_60_DEG_SW_NE = 23561, + + SPR_WOODEN_RC_60_DEG_CHAIN_SW_NE = 23561, + SPR_WOODEN_RC_60_DEG_NW_SE = 23562, + + SPR_WOODEN_RC_60_DEG_CHAIN_NW_SE = 23562, + SPR_WOODEN_RC_60_DEG_NE_SW = 23563, + + SPR_WOODEN_RC_60_DEG_CHAIN_NE_SW = 23563, + SPR_WOODEN_RC_60_DEG_SE_NW = 23564, + + SPR_WOODEN_RC_60_DEG_CHAIN_SE_NW = 23564, + SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NW_SE = 23565, + SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NE_SW = 23566, + SPR_WOODEN_RC_25_DEG_FRONT_NW_SE = 23569, + + SPR_WOODEN_RC_60_DEG_FRONT_NW_SE = 23569, SPR_WOODEN_RC_25_DEG_FRONT_NE_SW = 23570, + SPR_WOODEN_RC_60_DEG_FRONT_NE_SW = 23570, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SW_NE = 23571, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NW_SE = 23572, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NE_SW = 23573, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SE_NW = 23574, + + SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE = 23579, + SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE = 23580, + SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW = 23581, + SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW = 23582, + + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NW_SE = 23599, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NE_SW = 23600, + SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NW_SE = 23603, + + SPR_WOODEN_RC_60_DEG_CHAIN_FRONT_NW_SE = 23603, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NE_SW = 23604, + SPR_WOODEN_RC_60_DEG_CHAIN_FRONT_NE_SW = 23604, + SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, SPR_WOODEN_RC_FLAT_CHAIN_NE_SW = 23751, @@ -44,35 +95,66 @@ enum { SPR_WOODEN_RC_BLOCK_BRAKES_SW_NE = 23757, SPR_WOODEN_RC_BLOCK_BRAKES_NW_SE = 23758, - SPR_WOODEN_RC_25_DEG_SW_NE = 23545, - SPR_WOODEN_RC_25_DEG_NW_SE = 23546, - SPR_WOODEN_RC_25_DEG_NE_SW = 23547, - SPR_WOODEN_RC_25_DEG_SE_NW = 23548, - - SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE = 23579, - SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE = 23580, - SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW = 23581, - SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW = 23582, - SPR_WOODEN_RC_STATION_SW_NE = 23973, SPR_WOODEN_RC_STATION_NW_SE = 23974, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SW_NE = 24403, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NW_SE = 24404, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NE_SW = 24405, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SE_NW = 24406, + SPR_WOODEN_RC_25_DEG_RAILS_SW_NE = 24411, SPR_WOODEN_RC_25_DEG_RAILS_NW_SE = 24412, SPR_WOODEN_RC_25_DEG_RAILS_NE_SW = 24413, SPR_WOODEN_RC_25_DEG_RAILS_SE_NW = 24414, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_SW_NE = 24415, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_FRONT_NW_SE = 24416, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_NW_SE = 24417, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_FRONT_NE_SW = 24418, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_NE_SW = 24419, + SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_SE_NW = 24420, + + SPR_WOODEN_RC_60_DEG_RAILS_SW_NE = 24427, + + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_SW_NE = 24427, + SPR_WOODEN_RC_60_DEG_RAILS_NW_SE = 24428, + + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_NW_SE = 24428, + SPR_WOODEN_RC_60_DEG_RAILS_NE_SW = 24429, + + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_NE_SW = 24429, + SPR_WOODEN_RC_60_DEG_RAILS_SE_NW = 24430, + + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_SE_NW = 24430, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NW_SE = 24431, + SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NE_SW = 24432, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NW_SE = 24435, + + SPR_WOODEN_RC_60_DEG_RAILS_FRONT_NW_SE = 24435, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NE_SW = 24436, + SPR_WOODEN_RC_60_DEG_RAILS_FRONT_NE_SW = 24436, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SW_NE = 24437, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NW_SE = 24438, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NE_SW = 24439, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SE_NW = 24440, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE = 24445, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NW_SE = 24446, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NE_SW = 24447, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SE_NW = 24448, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NW_SE = 24465, + SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NE_SW = 24466, + SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NW_SE = 24469, + + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_FRONT_NW_SE = 24469, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NE_SW = 24470, + SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_FRONT_NE_SW = 24470, + SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NE_SW = 24617, @@ -105,6 +187,22 @@ static uint32 wooden_rc_get_rails_colour() return gTrackColours[SCHEME_TRACK]; } +static void wooden_rc_track_paint( + uint32 imageIdTrack, + uint32 imageIdRails, + uint8 direction, + sint8 x_offset, sint8 y_offset, + sint16 bound_box_length_x, sint16 bound_box_length_y, sint8 bound_box_length_z, + sint16 z_offset, + sint16 bound_box_offset_x, sint16 bound_box_offset_y, sint16 bound_box_offset_z +) { + uint32 imageId = imageIdTrack | wooden_rc_get_track_colour(); + uint32 railsImageId = imageIdRails | wooden_rc_get_rails_colour(); + + sub_98197C_rotated(direction, imageId, x_offset, y_offset, bound_box_length_x, bound_box_length_y, bound_box_length_z, z_offset, bound_box_offset_x, bound_box_offset_y, bound_box_offset_z); + sub_98199C_rotated(direction, railsImageId, x_offset, y_offset, bound_box_length_x, bound_box_length_y, bound_box_length_z, z_offset, bound_box_offset_x, bound_box_offset_y, bound_box_offset_z); +} + static void wooden_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -121,10 +219,7 @@ static void wooden_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 dir }; uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; - uint32 imageId = imageIds[direction][isChained] | wooden_rc_get_track_colour(); - uint32 railsImageId = railsImageIds[direction][isChained] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_rc_track_paint(imageIds[direction][isChained], railsImageIds[direction][isChained], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -142,15 +237,13 @@ static void wooden_rc_track_station(uint8 rideIndex, uint8 trackSequence, uint8 int trackType = mapElement->properties.track.type; if (trackType == TRACK_ELEM_END_STATION) { - uint32 imageId = _wooden_rc_block_brakes_image_ids[direction][0] | wooden_rc_get_track_colour(); - uint32 railsImageId = _wooden_rc_block_brakes_image_ids[direction][1] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, railsImageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + wooden_rc_track_paint( + _wooden_rc_block_brakes_image_ids[direction][0], + _wooden_rc_block_brakes_image_ids[direction][1], direction, 0, 2, 32, 27, 2, height, 0, 2, height); } else { - uint32 imageId = stationImageIds[direction][0] | wooden_rc_get_track_colour(); - uint32 railsImageId = stationImageIds[direction][1] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, railsImageId | gTrackColours[SCHEME_TRACK], 0, 2, 32, 27, 2, height, 0, 2, height); + wooden_rc_track_paint( + stationImageIds[direction][0], + stationImageIds[direction][1], direction, 0, 2, 32, 27, 2, height, 0, 2, height); } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); track_paint_util_draw_station(rideIndex, trackSequence, direction, height + 4, mapElement); @@ -163,29 +256,23 @@ static void wooden_rc_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint { static const uint32 imageIds[2][4][4] = { { - { SPR_WOODEN_RC_25_DEG_SW_NE, SPR_WOODEN_RC_25_DEG_RAILS_SW_NE, 0 }, + { SPR_WOODEN_RC_25_DEG_SW_NE, SPR_WOODEN_RC_25_DEG_RAILS_SW_NE, 0, 0 }, { SPR_WOODEN_RC_25_DEG_NW_SE, SPR_WOODEN_RC_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NW_SE }, { SPR_WOODEN_RC_25_DEG_NE_SW, SPR_WOODEN_RC_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NE_SW }, - { SPR_WOODEN_RC_25_DEG_SE_NW, SPR_WOODEN_RC_25_DEG_RAILS_SE_NW, 0 }, + { SPR_WOODEN_RC_25_DEG_SE_NW, SPR_WOODEN_RC_25_DEG_RAILS_SE_NW, 0, 0 }, }, { - { SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE, 0 }, + { SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE, 0, 0 }, { SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NW_SE }, { SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NE_SW }, - { SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SE_NW, 0 }, + { SPR_WOODEN_RC_25_DEG_CHAIN_SE_NW, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SE_NW, 0, 0 }, } }; uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; - uint32 imageId = imageIds[isChained][direction][0] | wooden_rc_get_track_colour(); - uint32 railsImageId = imageIds[isChained][direction][1] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, railsImageId, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_rc_track_paint(imageIds[isChained][direction][0], imageIds[isChained][direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); if (direction == 1 || direction == 2) { - imageId = imageIds[isChained][direction][2] | wooden_rc_get_track_colour(); - railsImageId = imageIds[isChained][direction][3] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, railsImageId, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_rc_track_paint(imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); } wooden_a_supports_paint_setup(direction & 1, 9 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -199,6 +286,93 @@ static void wooden_rc_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint paint_util_set_general_support_height(height + 56, 0x20); } +static void wooden_rc_track_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][2] = { + { SPR_WOODEN_RC_60_DEG_SW_NE, SPR_WOODEN_RC_60_DEG_RAILS_SW_NE }, + { SPR_WOODEN_RC_60_DEG_NW_SE, SPR_WOODEN_RC_60_DEG_RAILS_NW_SE }, + { SPR_WOODEN_RC_60_DEG_NE_SW, SPR_WOODEN_RC_60_DEG_RAILS_NE_SW }, + { SPR_WOODEN_RC_60_DEG_SE_NW, SPR_WOODEN_RC_60_DEG_RAILS_SE_NW }, + }; + + if (direction == 0 || direction == 3) { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); + } else { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 2, 24, 93, height, 28, 4, height - 16); + } + wooden_a_supports_paint_setup(direction & 1, 21 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 56, TUNNEL_8); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); +} + +static void wooden_rc_track_flat_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[2][4][4] = { + { + { SPR_WOODEN_RC_FLAT_TO_25_DEG_SW_NE, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_SE_NW, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SE_NW, 0, 0 }, + }, + { + { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SW_NE, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NW_SE, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NE_SW, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SE_NW, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SE_NW, 0, 0 }, + } + }; + + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + wooden_rc_track_paint(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(imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 1 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_25_DEG_TO_60_DEG_SW_NE, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_25_DEG_TO_60_DEG_NW_SE, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_TO_60_DEG_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_TO_60_DEG_NE_SW, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_TO_60_DEG_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_TO_60_DEG_SE_NW, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_SE_NW, 0, 0 }, + }; + + if (direction == 0 || direction == 3) { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); + } else { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 2, 24, 43, height, 28, 4, height + 2); + wooden_rc_track_paint(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 2, 43, height, 0, 4, height); + } + wooden_a_supports_paint_setup(direction & 1, 13 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 24, TUNNEL_8); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -208,11 +382,7 @@ static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 d { SPR_WOODEN_RC_BRAKES_NW_SE, SPR_WOODEN_RC_BRAKES_RAILS_NW_SE }, }; - uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; - uint32 imageId = imageIds[direction][0] | wooden_rc_get_track_colour(); - uint32 railsImageId = imageIds[direction][1] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -221,11 +391,9 @@ static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 d static void wooden_rc_track_block_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { - uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; - uint32 imageId = _wooden_rc_block_brakes_image_ids[direction][0] | wooden_rc_get_track_colour(); - uint32 railsImageId = _wooden_rc_block_brakes_image_ids[direction][1] | wooden_rc_get_rails_colour(); - sub_98197C_rotated(direction, imageId, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, railsImageId, 0, 2, 32, 25, 2, height, 0, 3, height); + wooden_rc_track_paint( + _wooden_rc_block_brakes_image_ids[direction][0], + _wooden_rc_block_brakes_image_ids[direction][1], direction, 0, 2, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -243,6 +411,12 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_station; case TRACK_ELEM_25_DEG_UP: return wooden_rc_track_25_deg_up; + case TRACK_ELEM_60_DEG_UP: + return wooden_rc_track_60_deg_up; + case TRACK_ELEM_FLAT_TO_25_DEG_UP: + return wooden_rc_track_flat_to_25_deg_up; + case TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP: + return wooden_rc_track_25_deg_up_to_60_deg_up; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; case TRACK_ELEM_BLOCK_BRAKES: From 4482babb65cd9486f05caf860b2a7610846e4c3c Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 21:46:04 +0100 Subject: [PATCH 07/15] Implement remaining simple slope tracks --- src/ride/coaster/wooden_roller_coaster.c | 146 +++++++++++++++++++++++ 1 file changed, 146 insertions(+) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index c494b43d80..3deaa447dd 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -168,6 +168,44 @@ enum { SPR_WOODEN_RC_STATION_RAILS_SW_NE = 24839, SPR_WOODEN_RC_STATION_RAILS_NW_SE = 24840, + + SPR_WOODEN_RC_60_DEG_TO_25_DEG_SW_NE = 23555, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_NW_SE = 23557, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_NE_SW = 23559, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_SE_NW = 23560, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SW_NE = 24421, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NW_SE = 24423, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NE_SW = 24425, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SE_NW = 24426, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NW_SE = 23556, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NE_SW = 23558, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NW_SE = 24422, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NE_SW = 24424, + + SPR_WOODEN_RC_25_DEG_TO_FLAT_SW_NE = 23541, + SPR_WOODEN_RC_25_DEG_TO_FLAT_NW_SE = 23542, + SPR_WOODEN_RC_25_DEG_TO_FLAT_NE_SW = 23543, + SPR_WOODEN_RC_25_DEG_TO_FLAT_SE_NW = 23544, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SW_NE = 24407, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NW_SE = 24408, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NE_SW = 24409, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SE_NW = 24410, + SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NW_SE = 23567, + SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NE_SW = 23568, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NW_SE = 24433, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NE_SW = 24434, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SW_NE = 23575, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NW_SE = 23576, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NE_SW = 23577, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SE_NW = 23578, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SW_NE = 24441, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NW_SE = 24442, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NE_SW = 24443, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SE_NW = 24444, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NW_SE = 23601, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NE_SW = 23602, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NW_SE = 24467, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NE_SW = 24468, }; static const uint32 _wooden_rc_block_brakes_image_ids[4][2] = { @@ -373,6 +411,97 @@ static void wooden_rc_track_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 trackS paint_util_set_general_support_height(height + 72, 0x20); } +static void wooden_rc_track_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_60_DEG_TO_25_DEG_SW_NE, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_60_DEG_TO_25_DEG_NW_SE, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_60_DEG_TO_25_DEG_NE_SW, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_60_DEG_TO_25_DEG_SE_NW, SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SE_NW, 0, 0 }, + }; + + if (direction == 0 || direction == 3) { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); + } else { + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 24, 1, 61, height, 4, 28, height - 16); + wooden_rc_track_paint(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 2, 43, height, 0, 4, height); + } + wooden_a_supports_paint_setup(direction & 1, 17 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 24, TUNNEL_8); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); +} + +static void wooden_rc_track_25_deg_up_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[2][4][4] = { + { + { SPR_WOODEN_RC_25_DEG_TO_FLAT_SW_NE, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_SE_NW, SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SE_NW, 0, 0 }, + }, + { + { SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SW_NE, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SE_NW, SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SE_NW, 0, 0 }, + } + }; + + uint8 isChained = track_element_is_lift_hill(mapElement) ? 1 : 0; + wooden_rc_track_paint(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(imageIds[isChained][direction][2], imageIds[isChained][direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 5 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_60_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_flat_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_to_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_60_deg_up_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_60_deg_down_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_60_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_flat_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -417,6 +546,23 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_flat_to_25_deg_up; case TRACK_ELEM_25_DEG_UP_TO_60_DEG_UP: return wooden_rc_track_25_deg_up_to_60_deg_up; + case TRACK_ELEM_60_DEG_UP_TO_25_DEG_UP: + return wooden_rc_track_60_deg_up_to_25_deg_up; + case TRACK_ELEM_25_DEG_UP_TO_FLAT: + return wooden_rc_track_25_deg_up_to_flat; + case TRACK_ELEM_25_DEG_DOWN: + return wooden_rc_track_25_deg_down; + case TRACK_ELEM_60_DEG_DOWN: + return wooden_rc_track_60_deg_down; + case TRACK_ELEM_FLAT_TO_25_DEG_DOWN: + return wooden_rc_track_flat_to_25_deg_down; + case TRACK_ELEM_25_DEG_DOWN_TO_60_DEG_DOWN: + return wooden_rc_track_25_deg_down_to_60_deg_down; + case TRACK_ELEM_60_DEG_DOWN_TO_25_DEG_DOWN: + return wooden_rc_track_60_deg_down_to_25_deg_down; + case TRACK_ELEM_25_DEG_DOWN_TO_FLAT: + return wooden_rc_track_25_deg_down_to_flat; + case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; case TRACK_ELEM_BLOCK_BRAKES: From 4c9caa1a675c72ad44a29a05a64d42e9e0a835f9 Mon Sep 17 00:00:00 2001 From: Ted John Date: Thu, 6 Oct 2016 23:05:44 +0100 Subject: [PATCH 08/15] Implement quarter turn 5 --- src/ride/coaster/wooden_roller_coaster.c | 296 ++++++++++++++++++----- 1 file changed, 232 insertions(+), 64 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 3deaa447dd..4b77751814 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -26,12 +26,23 @@ #include "../track_data.h" #include "../track_paint.h" +typedef struct sprite_bb_2 { + uint32 sprite_id_a; + uint32 sprite_id_b; + rct_xyz16 offset; + rct_xyz16 bb_offset; + rct_xyz16 bb_size; +} sprite_bb_2; + enum { SPR_WOODEN_RC_FLAT_TO_25_DEG_SW_NE = 23537, SPR_WOODEN_RC_FLAT_TO_25_DEG_NW_SE = 23538, SPR_WOODEN_RC_FLAT_TO_25_DEG_NE_SW = 23539, SPR_WOODEN_RC_FLAT_TO_25_DEG_SE_NW = 23540, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_SW_NE = 23541, + SPR_WOODEN_RC_25_DEG_TO_FLAT_NW_SE = 23542, + SPR_WOODEN_RC_25_DEG_TO_FLAT_NE_SW = 23543, + SPR_WOODEN_RC_25_DEG_TO_FLAT_SE_NW = 23544, SPR_WOODEN_RC_25_DEG_SW_NE = 23545, SPR_WOODEN_RC_25_DEG_NW_SE = 23546, SPR_WOODEN_RC_25_DEG_NE_SW = 23547, @@ -42,33 +53,36 @@ enum { SPR_WOODEN_RC_25_DEG_TO_60_DEG_FRONT_NE_SW = 23552, SPR_WOODEN_RC_25_DEG_TO_60_DEG_NE_SW = 23553, SPR_WOODEN_RC_25_DEG_TO_60_DEG_SE_NW = 23554, - + SPR_WOODEN_RC_60_DEG_TO_25_DEG_SW_NE = 23555, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NW_SE = 23556, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_NW_SE = 23557, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NE_SW = 23558, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_NE_SW = 23559, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_SE_NW = 23560, SPR_WOODEN_RC_60_DEG_SW_NE = 23561, - SPR_WOODEN_RC_60_DEG_CHAIN_SW_NE = 23561, SPR_WOODEN_RC_60_DEG_NW_SE = 23562, - SPR_WOODEN_RC_60_DEG_CHAIN_NW_SE = 23562, SPR_WOODEN_RC_60_DEG_NE_SW = 23563, - SPR_WOODEN_RC_60_DEG_CHAIN_NE_SW = 23563, SPR_WOODEN_RC_60_DEG_SE_NW = 23564, - SPR_WOODEN_RC_60_DEG_CHAIN_SE_NW = 23564, SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NW_SE = 23565, SPR_WOODEN_RC_FLAT_TO_25_DEG_FRONT_NE_SW = 23566, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NW_SE = 23567, + SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NE_SW = 23568, SPR_WOODEN_RC_25_DEG_FRONT_NW_SE = 23569, - SPR_WOODEN_RC_60_DEG_FRONT_NW_SE = 23569, SPR_WOODEN_RC_25_DEG_FRONT_NE_SW = 23570, - SPR_WOODEN_RC_60_DEG_FRONT_NE_SW = 23570, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SW_NE = 23571, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NW_SE = 23572, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_NE_SW = 23573, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_SE_NW = 23574, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SW_NE = 23575, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NW_SE = 23576, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NE_SW = 23577, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SE_NW = 23578, SPR_WOODEN_RC_25_DEG_CHAIN_SW_NE = 23579, SPR_WOODEN_RC_25_DEG_CHAIN_NW_SE = 23580, SPR_WOODEN_RC_25_DEG_CHAIN_NE_SW = 23581, @@ -76,13 +90,42 @@ enum { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NW_SE = 23599, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_FRONT_NE_SW = 23600, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NW_SE = 23601, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NE_SW = 23602, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NW_SE = 23603, - SPR_WOODEN_RC_60_DEG_CHAIN_FRONT_NW_SE = 23603, SPR_WOODEN_RC_25_DEG_CHAIN_FRONT_NE_SW = 23604, - SPR_WOODEN_RC_60_DEG_CHAIN_FRONT_NE_SW = 23604, + SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_0 = 23605, + SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_2 = 23606, + SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_3 = 23607, + SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_5 = 23608, + SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_6 = 23609, + SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_0 = 23610, + SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_2 = 23611, + SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_3 = 23612, + SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_5 = 23613, + SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_6 = 23614, + SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_0 = 23615, + SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_2 = 23616, + SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_3 = 23617, + SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_5 = 23618, + SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_6 = 23619, + SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_0 = 23620, + SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_2 = 23621, + SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_3 = 23622, + SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_5 = 23623, + SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_6 = 23624, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0 = 23625, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2 = 23626, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3 = 23627, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5 = 23628, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6 = 23629, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0 = 23630, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2 = 23631, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3 = 23632, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5 = 23633, + SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6 = 23634, SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, @@ -102,7 +145,10 @@ enum { SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NW_SE = 24404, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NE_SW = 24405, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SE_NW = 24406, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SW_NE = 24407, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NW_SE = 24408, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NE_SW = 24409, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SE_NW = 24410, SPR_WOODEN_RC_25_DEG_RAILS_SW_NE = 24411, SPR_WOODEN_RC_25_DEG_RAILS_NW_SE = 24412, SPR_WOODEN_RC_25_DEG_RAILS_NE_SW = 24413, @@ -113,33 +159,36 @@ enum { SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_FRONT_NE_SW = 24418, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_NE_SW = 24419, SPR_WOODEN_RC_25_DEG_TO_60_DEG_RAILS_SE_NW = 24420, - + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SW_NE = 24421, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NW_SE = 24422, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NW_SE = 24423, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NE_SW = 24424, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NE_SW = 24425, + SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SE_NW = 24426, SPR_WOODEN_RC_60_DEG_RAILS_SW_NE = 24427, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_SW_NE = 24427, SPR_WOODEN_RC_60_DEG_RAILS_NW_SE = 24428, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_NW_SE = 24428, SPR_WOODEN_RC_60_DEG_RAILS_NE_SW = 24429, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_NE_SW = 24429, SPR_WOODEN_RC_60_DEG_RAILS_SE_NW = 24430, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_SE_NW = 24430, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NW_SE = 24431, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_FRONT_NE_SW = 24432, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NW_SE = 24433, + SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NE_SW = 24434, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NW_SE = 24435, - SPR_WOODEN_RC_60_DEG_RAILS_FRONT_NW_SE = 24435, SPR_WOODEN_RC_25_DEG_RAILS_FRONT_NE_SW = 24436, - SPR_WOODEN_RC_60_DEG_RAILS_FRONT_NE_SW = 24436, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SW_NE = 24437, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NW_SE = 24438, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_NE_SW = 24439, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_SE_NW = 24440, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SW_NE = 24441, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NW_SE = 24442, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NE_SW = 24443, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SE_NW = 24444, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_SW_NE = 24445, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NW_SE = 24446, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_NE_SW = 24447, @@ -147,13 +196,42 @@ enum { SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NW_SE = 24465, SPR_WOODEN_RC_FLAT_TO_25_DEG_CHAIN_RAILS_FRONT_NE_SW = 24466, - + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NW_SE = 24467, + SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NE_SW = 24468, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NW_SE = 24469, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_FRONT_NW_SE = 24469, SPR_WOODEN_RC_25_DEG_CHAIN_RAILS_FRONT_NE_SW = 24470, - SPR_WOODEN_RC_60_DEG_CHAIN_RAILS_FRONT_NE_SW = 24470, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0 = 24471, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2 = 24472, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3 = 24473, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5 = 24474, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6 = 24475, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0 = 24476, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2 = 24477, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3 = 24478, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5 = 24479, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6 = 24480, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0 = 24481, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2 = 24482, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3 = 24483, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5 = 24484, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6 = 24485, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0 = 24486, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2 = 24487, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3 = 24488, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5 = 24489, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6 = 24490, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0 = 24491, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2 = 24492, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3 = 24493, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5 = 24494, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6 = 24495, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0 = 24496, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2 = 24497, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3 = 24498, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5 = 24499, + SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6 = 24500, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, @@ -168,44 +246,6 @@ enum { SPR_WOODEN_RC_STATION_RAILS_SW_NE = 24839, SPR_WOODEN_RC_STATION_RAILS_NW_SE = 24840, - - SPR_WOODEN_RC_60_DEG_TO_25_DEG_SW_NE = 23555, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_NW_SE = 23557, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_NE_SW = 23559, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_SE_NW = 23560, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SW_NE = 24421, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NW_SE = 24423, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_NE_SW = 24425, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_SE_NW = 24426, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NW_SE = 23556, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_FRONT_NE_SW = 23558, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NW_SE = 24422, - SPR_WOODEN_RC_60_DEG_TO_25_DEG_RAILS_FRONT_NE_SW = 24424, - - SPR_WOODEN_RC_25_DEG_TO_FLAT_SW_NE = 23541, - SPR_WOODEN_RC_25_DEG_TO_FLAT_NW_SE = 23542, - SPR_WOODEN_RC_25_DEG_TO_FLAT_NE_SW = 23543, - SPR_WOODEN_RC_25_DEG_TO_FLAT_SE_NW = 23544, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SW_NE = 24407, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NW_SE = 24408, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_NE_SW = 24409, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_SE_NW = 24410, - SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NW_SE = 23567, - SPR_WOODEN_RC_25_DEG_TO_FLAT_FRONT_NE_SW = 23568, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NW_SE = 24433, - SPR_WOODEN_RC_25_DEG_TO_FLAT_RAILS_FRONT_NE_SW = 24434, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SW_NE = 23575, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NW_SE = 23576, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_NE_SW = 23577, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_SE_NW = 23578, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SW_NE = 24441, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NW_SE = 24442, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_NE_SW = 24443, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_SE_NW = 24444, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NW_SE = 23601, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_FRONT_NE_SW = 23602, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NW_SE = 24467, - SPR_WOODEN_RC_25_DEG_TO_FLAT_CHAIN_RAILS_FRONT_NE_SW = 24468, }; static const uint32 _wooden_rc_block_brakes_image_ids[4][2] = { @@ -502,6 +542,130 @@ static void wooden_rc_track_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequ wooden_rc_track_flat_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); } +static void wooden_rc_track_paint_bb(const sprite_bb_2 *bb, sint16 height) +{ + if (bb->sprite_id_a == 0) return; + + uint32 imageId = bb->sprite_id_a | wooden_rc_get_track_colour(); + uint32 railsImageId = bb->sprite_id_b | wooden_rc_get_rails_colour(); + + sub_98197C(imageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); + sub_98199C(railsImageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); +} + +static void wooden_rc_track_right_quarter_turn_5(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const sprite_bb_2 imageIds[2][4][7] = { + { + { + { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + }, + { + { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 34, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3, { 0, 16, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + }, + { + { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }}, + { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3, { 16, 16, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + }, + { + { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + } + }, + { + { + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 32, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2, { 0, 16, 0 }, { 0, 16, 27 }, { 32, 16, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5, { 16, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6, { 2, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 } }, + }, + { + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + }, + { + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3, { 16, 16, 0 }, { 16, 16, 27 }, { 16, 16, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6, { 2, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + }, + { + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + } + }, + }; + static sint8 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 }, + }; + + wooden_rc_track_paint_bb(&imageIds[0][direction][trackSequence], height); + wooden_rc_track_paint_bb(&imageIds[1][direction][trackSequence], height); + track_paint_util_right_quarter_turn_5_tiles_tunnel(height, direction, trackSequence, TUNNEL_6); + + if (supportType[direction][trackSequence] != -1) { + wooden_a_supports_paint_setup(supportType[direction][trackSequence], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + } + + int blockedSegments = 0; + switch (trackSequence) { + case 0: blockedSegments = SEGMENTS_ALL; break; + case 2: blockedSegments = SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + case 3: blockedSegments = SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + case 5: blockedSegments = SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4; break; + case 6: blockedSegments = SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(blockedSegments, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_left_quarter_turn_5(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_right_quarter_turn_5(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -562,6 +726,10 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_60_deg_down_to_25_deg_down; case TRACK_ELEM_25_DEG_DOWN_TO_FLAT: return wooden_rc_track_25_deg_down_to_flat; + case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES: + return wooden_rc_track_left_quarter_turn_5; + case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES: + return wooden_rc_track_right_quarter_turn_5; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; From f18db76763094933e0c31aa2161e7c19ecd6391f Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 7 Oct 2016 18:21:48 +0100 Subject: [PATCH 09/15] Implement flat to bank --- src/ride/coaster/wooden_roller_coaster.c | 84 ++++++++++++++++++++++++ 1 file changed, 84 insertions(+) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 4b77751814..b9512c0cb8 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -35,6 +35,20 @@ typedef struct sprite_bb_2 { } sprite_bb_2; enum { + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE = 23497, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE = 23498, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW = 23499, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW = 23500, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE = 23501, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE = 23502, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW = 23503, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW = 23504, + + SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE = 23525, + SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW = 23526, + SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW = 23527, + + SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_SW_NE = 23536, SPR_WOODEN_RC_FLAT_TO_25_DEG_SW_NE = 23537, SPR_WOODEN_RC_FLAT_TO_25_DEG_NW_SE = 23538, SPR_WOODEN_RC_FLAT_TO_25_DEG_NE_SW = 23539, @@ -141,6 +155,20 @@ enum { SPR_WOODEN_RC_STATION_SW_NE = 23973, SPR_WOODEN_RC_STATION_NW_SE = 23974, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_SW_NE = 24363, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_NW_SE = 24364, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_NE_SW = 24365, + SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_SE_NW = 24366, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_SW_NE = 24367, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NW_SE = 24368, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NE_SW = 24369, + SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_SE_NW = 24370, + + SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_NW_SE = 24391, + SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_SE_NW = 24392, + SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_NE_SW = 24393, + + SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_SW_NE = 24402, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SW_NE = 24403, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NW_SE = 24404, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NE_SW = 24405, @@ -666,6 +694,54 @@ static void wooden_rc_track_left_quarter_turn_5(uint8 rideIndex, uint8 trackSequ wooden_rc_track_right_quarter_turn_5(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); } +static void wooden_rc_track_flat_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE, SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE, SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_NW_SE, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW, SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_NE_SW, 0, 0 }, + { SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW, SPR_WOODEN_RC_FLAT_TO_LEFT_BANK_RAILS_SE_NW, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_SE_NW }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_flat_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_SW_NE, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_SW_NE, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_SW_NE }, + { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NW_SE, 0, 0 }, + { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NE_SW, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_SE_NW, 0, 0 }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_left_bank_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_flat_to_right_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_bank_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_flat_to_left_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -730,6 +806,14 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_left_quarter_turn_5; case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES: return wooden_rc_track_right_quarter_turn_5; + case TRACK_ELEM_FLAT_TO_LEFT_BANK: + return wooden_rc_track_flat_to_left_bank; + case TRACK_ELEM_FLAT_TO_RIGHT_BANK: + return wooden_rc_track_flat_to_right_bank; + case TRACK_ELEM_LEFT_BANK_TO_FLAT: + return wooden_rc_track_left_bank_to_flat; + case TRACK_ELEM_RIGHT_BANK_TO_FLAT: + return wooden_rc_track_right_bank_to_flat; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; From 883912964eb5ba0ef8a728d6b5530cab78d5bd53 Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 7 Oct 2016 19:03:39 +0100 Subject: [PATCH 10/15] Implement banked quarter turn 5 --- src/ride/coaster/wooden_roller_coaster.c | 199 +++++++++++++++++++++-- 1 file changed, 188 insertions(+), 11 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index b9512c0cb8..10569e419b 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -140,6 +140,36 @@ enum { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3 = 23632, SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5 = 23633, SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6 = 23634, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0 = 23635, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2 = 23636, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3 = 23637, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5 = 23638, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6 = 23639, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0 = 23640, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2 = 23641, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3 = 23642, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5 = 23643, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6 = 23644, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0 = 23645, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2 = 23646, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3 = 23647, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5 = 23648, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6 = 23649, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0 = 23650, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2 = 23651, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3 = 23652, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5 = 23653, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6 = 23654, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0 = 23655, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2 = 23656, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3 = 23657, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5 = 23658, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6 = 23659, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0 = 23660, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2 = 23661, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3 = 23662, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5 = 23663, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6 = 23664, SPR_WOODEN_RC_FLAT_CHAIN_SW_NE = 23749, SPR_WOODEN_RC_FLAT_CHAIN_NW_SE = 23750, @@ -260,6 +290,36 @@ enum { SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3 = 24498, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5 = 24499, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6 = 24500, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0 = 24501, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2 = 24502, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3 = 24503, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5 = 24504, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6 = 24505, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0 = 24506, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2 = 24507, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3 = 24508, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5 = 24509, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6 = 24510, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0 = 24511, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2 = 24512, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3 = 24513, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5 = 24514, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6 = 24515, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0 = 24516, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2 = 24517, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3 = 24518, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5 = 24519, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6 = 24520, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0 = 24521, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2 = 24522, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3 = 24523, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5 = 24524, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6 = 24525, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0 = 24526, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2 = 24527, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3 = 24528, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5 = 24529, + SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6 = 24530, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_SW_NE = 24615, SPR_WOODEN_RC_FLAT_CHAIN_RAILS_NW_SE = 24616, @@ -309,6 +369,17 @@ static void wooden_rc_track_paint( sub_98199C_rotated(direction, railsImageId, x_offset, y_offset, bound_box_length_x, bound_box_length_y, bound_box_length_z, z_offset, bound_box_offset_x, bound_box_offset_y, bound_box_offset_z); } +static void wooden_rc_track_paint_bb(const sprite_bb_2 *bb, sint16 height) +{ + if (bb->sprite_id_a == 0) return; + + uint32 imageId = bb->sprite_id_a | wooden_rc_get_track_colour(); + uint32 railsImageId = bb->sprite_id_b | wooden_rc_get_rails_colour(); + + sub_98197C(imageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); + sub_98199C(railsImageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); +} + static void wooden_rc_track_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -570,17 +641,6 @@ static void wooden_rc_track_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequ wooden_rc_track_flat_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); } -static void wooden_rc_track_paint_bb(const sprite_bb_2 *bb, sint16 height) -{ - if (bb->sprite_id_a == 0) return; - - uint32 imageId = bb->sprite_id_a | wooden_rc_get_track_colour(); - uint32 railsImageId = bb->sprite_id_b | wooden_rc_get_rails_colour(); - - sub_98197C(imageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); - sub_98199C(railsImageId, (sint8)bb->offset.x, (sint8)bb->offset.y, bb->bb_size.x, bb->bb_size.y, (sint8)bb->bb_size.z, height + bb->offset.z, bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z, get_current_rotation()); -} - static void wooden_rc_track_right_quarter_turn_5(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const sprite_bb_2 imageIds[2][4][7] = { @@ -742,6 +802,119 @@ static void wooden_rc_track_right_bank_to_flat(uint8 rideIndex, uint8 trackSeque wooden_rc_track_flat_to_left_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); } +static void wooden_rc_track_banked_right_quarter_turn_5(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const sprite_bb_2 imageIds[2][4][7] = { + { + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + }, + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + }, + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 }}, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + }, + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0, { 0, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6, { 0, 0, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, + } + }, + { + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 32, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2, { 0, 0, 0 }, { 0, 16, 27 }, { 32, 16, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 } }, + }, + { + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + }, + { + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + }, + { + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + } + }, + }; + static sint8 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 }, + }; + + wooden_rc_track_paint_bb(&imageIds[0][direction][trackSequence], height); + wooden_rc_track_paint_bb(&imageIds[1][direction][trackSequence], height); + track_paint_util_right_quarter_turn_5_tiles_tunnel(height, direction, trackSequence, TUNNEL_6); + + if (supportType[direction][trackSequence] != -1) { + wooden_a_supports_paint_setup(supportType[direction][trackSequence], 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + } + + int blockedSegments = 0; + switch (trackSequence) { + case 0: blockedSegments = SEGMENTS_ALL; break; + case 2: blockedSegments = SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + case 3: blockedSegments = SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + case 5: blockedSegments = SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4; break; + case 6: blockedSegments = SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4; break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(blockedSegments, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_banked_left_quarter_turn_5(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_banked_right_quarter_turn_5(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -814,6 +987,10 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_left_bank_to_flat; case TRACK_ELEM_RIGHT_BANK_TO_FLAT: return wooden_rc_track_right_bank_to_flat; + case TRACK_ELEM_BANKED_LEFT_QUARTER_TURN_5_TILES: + return wooden_rc_track_banked_left_quarter_turn_5; + case TRACK_ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES: + return wooden_rc_track_banked_right_quarter_turn_5; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; From b13af924e6c9ca5cc41535f58c77b54acce9fd1a Mon Sep 17 00:00:00 2001 From: Ted John Date: Fri, 7 Oct 2016 20:39:28 +0100 Subject: [PATCH 11/15] Implement slope bank tracks --- src/ride/coaster/wooden_roller_coaster.c | 213 ++++++++++++++++++++++- 1 file changed, 209 insertions(+), 4 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 10569e419b..46aaafde04 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -43,11 +43,37 @@ enum { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE = 23502, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW = 23503, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW = 23504, - + SPR_WOODEN_RC_LEFT_BANK_SW_NE = 23505, + SPR_WOODEN_RC_LEFT_BANK_NW_SE = 23506, + SPR_WOODEN_RC_LEFT_BANK_NE_SW = 23507, + SPR_WOODEN_RC_LEFT_BANK_SE_NW = 23508, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_SW_NE = 23509, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_NW_SE = 23510, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_NE_SW = 23511, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_SE_NW = 23512, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_SW_NE = 23513, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_NW_SE = 23514, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_NE_SW = 23515, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_SE_NW = 23516, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_SW_NE = 23517, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_NW_SE = 23518, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_NE_SW = 23519, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_SE_NW = 23520, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_SW_NE = 23521, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_NW_SE = 23522, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_NE_SW = 23523, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_SE_NW = 23524, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE = 23525, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW = 23526, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW = 23527, - + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_FRONT_NW_SE = 23528, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_FRONT_NE_SW = 23529, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_FRONT_NW_SE = 23530, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_FRONT_NE_SW = 23531, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_FRONT_NW_SE = 23532, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_FRONT_NE_SW = 23533, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_FRONT_NW_SE = 23534, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_FRONT_NE_SW = 23535, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_FRONT_SW_NE = 23536, SPR_WOODEN_RC_FLAT_TO_25_DEG_SW_NE = 23537, SPR_WOODEN_RC_FLAT_TO_25_DEG_NW_SE = 23538, @@ -193,11 +219,37 @@ enum { SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NW_SE = 24368, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_NE_SW = 24369, SPR_WOODEN_RC_FLAT_TO_RIGHT_BANK_RAILS_SE_NW = 24370, - + SPR_WOODEN_RC_LEFT_BANK_RAILS_SW_NE = 24371, + SPR_WOODEN_RC_LEFT_BANK_RAILS_NW_SE = 24372, + SPR_WOODEN_RC_LEFT_BANK_RAILS_NE_SW = 24373, + SPR_WOODEN_RC_LEFT_BANK_RAILS_SE_NW = 24374, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_SW_NE = 24375, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_NW_SE = 24376, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_NE_SW = 24377, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_SE_NW = 24378, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_SW_NE = 24379, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_NW_SE = 24380, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_NE_SW = 24381, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_SE_NW = 24382, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_SW_NE = 24383, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_NW_SE = 24384, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_NE_SW = 24385, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_SE_NW = 24386, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_SW_NE = 24387, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_NW_SE = 24388, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_NE_SW = 24389, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_SE_NW = 24390, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_NW_SE = 24391, SPR_WOODEN_RC_RC_FLAT_TO_LEFT_BANK_RAILS_FRONT_SE_NW = 24392, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_NE_SW = 24393, - + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_FRONT_NW_SE = 24394, + SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_FRONT_NE_SW = 24395, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_FRONT_NW_SE = 24396, + SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_FRONT_NE_SW = 24397, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_FRONT_NW_SE = 24398, + SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_FRONT_NE_SW = 24399, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_FRONT_NW_SE = 24400, + SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_FRONT_NE_SW = 24401, SPR_WOODEN_RC_RC_FLAT_TO_RIGHT_BANK_RAILS_FRONT_SW_NE = 24402, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_SW_NE = 24403, SPR_WOODEN_RC_FLAT_TO_25_DEG_RAILS_NW_SE = 24404, @@ -915,6 +967,139 @@ static void wooden_rc_track_banked_left_quarter_turn_5(uint8 rideIndex, uint8 tr wooden_rc_track_banked_right_quarter_turn_5(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); } +static void wooden_rc_track_left_bank_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_SW_NE, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_NW_SE, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_NE_SW, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_SE_NW, SPR_WOODEN_RC_LEFT_BANK_TO_25_DEG_RAILS_SE_NW, 0, 0 }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 1 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_right_bank_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_SW_NE, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_NW_SE, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_NW_SE, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_FRONT_NW_SE, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_NE_SW, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_NE_SW, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_FRONT_NE_SW, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_SE_NW, SPR_WOODEN_RC_RIGHT_BANK_TO_25_DEG_RAILS_SE_NW, 0, 0 }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 1 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_25_deg_up_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_SW_NE, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_NW_SE, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_NE_SW, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_SE_NW, SPR_WOODEN_RC_25_DEG_TO_LEFT_BANK_RAILS_SE_NW, 0, 0 }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 5 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_25_deg_up_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][4] = { + { SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_SW_NE, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_SW_NE, 0, 0 }, + { SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_NW_SE, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_NW_SE, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_FRONT_NW_SE, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_FRONT_NW_SE }, + { SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_NE_SW, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_NE_SW, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_FRONT_NE_SW, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_FRONT_NE_SW }, + { SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_SE_NW, SPR_WOODEN_RC_25_DEG_TO_RIGHT_BANK_RAILS_SE_NW, 0, 0 }, + }; + + wooden_rc_track_paint(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(imageIds[direction][2], imageIds[direction][3], direction, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + } + wooden_a_supports_paint_setup(direction & 1, 5 + direction, height, gTrackColours[SCHEME_SUPPORTS], NULL); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_left_bank_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_right_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_bank_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_left_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_bank_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_bank_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + static const uint32 imageIds[4][2] = { + { SPR_WOODEN_RC_LEFT_BANK_SW_NE, SPR_WOODEN_RC_LEFT_BANK_RAILS_SW_NE }, + { SPR_WOODEN_RC_LEFT_BANK_NW_SE, SPR_WOODEN_RC_LEFT_BANK_RAILS_NW_SE }, + { SPR_WOODEN_RC_LEFT_BANK_NE_SW, SPR_WOODEN_RC_LEFT_BANK_RAILS_NE_SW }, + { SPR_WOODEN_RC_LEFT_BANK_SE_NW, SPR_WOODEN_RC_LEFT_BANK_RAILS_SE_NW }, + }; + + wooden_rc_track_paint(imageIds[direction][0], imageIds[direction][1], direction, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); +} + +static void wooden_rc_track_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -991,6 +1176,26 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_banked_left_quarter_turn_5; case TRACK_ELEM_BANKED_RIGHT_QUARTER_TURN_5_TILES: return wooden_rc_track_banked_right_quarter_turn_5; + case TRACK_ELEM_LEFT_BANK_TO_25_DEG_UP: + return wooden_rc_track_left_bank_to_25_deg_up; + case TRACK_ELEM_RIGHT_BANK_TO_25_DEG_UP: + return wooden_rc_track_right_bank_to_25_deg_up; + case TRACK_ELEM_25_DEG_UP_TO_LEFT_BANK: + return wooden_rc_track_25_deg_up_to_left_bank; + case TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANK: + return wooden_rc_track_25_deg_up_to_right_bank; + case TRACK_ELEM_LEFT_BANK_TO_25_DEG_DOWN: + return wooden_rc_track_left_bank_to_25_deg_down; + case TRACK_ELEM_RIGHT_BANK_TO_25_DEG_DOWN: + return wooden_rc_track_right_bank_to_25_deg_down; + case TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANK: + return wooden_rc_track_25_deg_down_to_left_bank; + case TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANK: + return wooden_rc_track_25_deg_down_to_right_bank; + case TRACK_ELEM_LEFT_BANK: + return wooden_rc_track_left_bank; + case TRACK_ELEM_RIGHT_BANK: + return wooden_rc_track_right_bank; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; From cd1f2f25ac981ae518338826e9d5cfd95f84be57 Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 10 Oct 2016 18:27:38 +0100 Subject: [PATCH 12/15] Add remaining track pieces using generator --- src/ride/coaster/wooden_roller_coaster.c | 7551 +++++++++++++++++++++- src/ride/track_paint.c | 37 + src/ride/track_paint.h | 14 + 3 files changed, 7601 insertions(+), 1 deletion(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 46aaafde04..682b02618a 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -1100,6 +1100,2722 @@ static void wooden_rc_track_right_bank(uint8 rideIndex, uint8 trackSequence, uin wooden_rc_track_left_bank(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); } +static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23781, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24647, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23786, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24652, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23812, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24678, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23791, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24657, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23796, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24662, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23782, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24648, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23787, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24653, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23813, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24679, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23792, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24658, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23797, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24663, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23819, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24685, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23783, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24649, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23788, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24654, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23814, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24680, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23793, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24659, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23798, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24664, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23820, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24686, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23784, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24650, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23789, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24655, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23815, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24681, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23794, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24660, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23817, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24683, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23799, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24665, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23821, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24687, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23785, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24651, 0, 0, 27, 32, 2, height, 2, 0, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23790, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24656, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23816, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24682, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23795, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24661, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23818, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24684, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23800, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24666, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23822, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24688, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23761, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24627, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23766, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24632, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23771, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24637, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23807, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24673, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23776, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24642, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23762, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24628, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23801, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24667, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23767, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24633, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23772, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24638, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23808, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24674, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23777, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24643, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23763, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24629, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23802, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24668, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23768, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24634, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23773, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24639, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23809, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24675, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23778, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24644, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23764, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24630, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23803, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24669, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23769, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24635, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23805, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24671, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23774, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24640, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23810, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24676, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23779, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24645, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23765, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24631, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23804, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24670, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23770, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24636, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23806, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24672, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23775, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24641, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23811, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24677, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23780, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24646, 0, 0, 27, 32, 2, height, 2, 0, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 1: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_left_quarter_turn_5_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_right_quarter_turn_5_25_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_quarter_turn_5_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_left_quarter_turn_5_25_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 1: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 2: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 1: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 2: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23453, 0, 6, 32, 20, 3, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23461, 0, 6, 32, 20, 3, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23460, 0, 6, 32, 20, 3, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23468, 0, 6, 32, 20, 7, height); + break; + } + metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23454, 0, 0, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23462, 0, 14, 32, 2, 63, height); + metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23459, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23467, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23455, 16, 0, 5, 16, 119, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23463, 12, 0, 3, 16, 119, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23458, 10, 16, 4, 16, 119, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23466, 16, 16, 4, 16, 119, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 168, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23456, 0, 0, 32, 16, 3, height + 32); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23464, 0, 0, 32, 16, 3, height + 32); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23457, 0, 16, 32, 16, 3, height + 32); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23465, 0, 16, 32, 16, 3, height + 32); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 4: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 5: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23457, 0, 16, 32, 16, 3, height + 32); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23465, 0, 16, 32, 16, 3, height + 32); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23456, 0, 0, 32, 16, 3, height + 32); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23464, 0, 0, 32, 16, 3, height + 32); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23458, 10, 16, 4, 16, 119, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23466, 16, 16, 4, 16, 119, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23455, 16, 0, 5, 16, 119, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23463, 12, 0, 3, 16, 119, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 168, 0x20); + break; + case 8: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23459, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23467, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23454, 0, 0, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23462, 0, 14, 32, 2, 63, height); + metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 9: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23460, 0, 6, 32, 20, 3, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23468, 0, 6, 32, 20, 7, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23453, 0, 6, 32, 20, 3, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23461, 0, 6, 32, 20, 3, height); + break; + } + metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); + switch (direction) { + case 1: + paint_util_push_tunnel_right(height - 8, TUNNEL_7); + break; + case 2: + paint_util_push_tunnel_left(height - 8, TUNNEL_7); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23484, 0, 6, 32, 20, 7, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23476, 0, 6, 32, 20, 3, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23477, 0, 6, 32, 20, 3, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23469, 0, 6, 32, 20, 3, height); + break; + } + metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23483, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23475, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23478, 0, 14, 32, 2, 63, height); + metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23470, 0, 0, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23482, 16, 16, 4, 16, 119, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23474, 10, 16, 4, 16, 119, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23479, 12, 0, 3, 16, 119, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23471, 16, 0, 5, 16, 119, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 168, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23481, 0, 16, 32, 16, 3, height + 32); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23473, 0, 16, 32, 16, 3, height + 32); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23480, 0, 0, 32, 16, 3, height + 32); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23472, 0, 0, 32, 16, 3, height + 32); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 4: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 5: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23480, 0, 0, 32, 16, 3, height + 32); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23472, 0, 0, 32, 16, 3, height + 32); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23481, 0, 16, 32, 16, 3, height + 32); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23473, 0, 16, 32, 16, 3, height + 32); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23479, 12, 0, 3, 16, 119, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23471, 16, 0, 5, 16, 119, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23482, 16, 16, 4, 16, 119, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23474, 10, 16, 4, 16, 119, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 168, 0x20); + break; + case 8: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23478, 0, 14, 32, 2, 63, height); + metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23470, 0, 0, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23483, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23475, 0, 6, 32, 26, 3, height); + metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 9: + switch (direction) { + case 0: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23477, 0, 6, 32, 20, 3, height); + break; + case 1: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23469, 0, 6, 32, 20, 3, height); + break; + case 2: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23484, 0, 6, 32, 20, 7, height); + break; + case 3: + sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23476, 0, 6, 32, 20, 3, height); + break; + } + metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); + switch (direction) { + case 1: + paint_util_push_tunnel_right(height - 8, TUNNEL_7); + break; + case 2: + paint_util_push_tunnel_left(height - 8, TUNNEL_7); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_left_quarter_turn_3(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23828, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24694, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23831, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24697, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23840, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24706, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23834, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24700, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23825, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24691, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23837, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24703, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23827, 16, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24693, 16, 0, 16, 16, 2, height, 16, 0, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23830, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24696, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23839, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24705, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23833, 0, 16, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24699, 0, 16, 16, 16, 2, height, 0, 16, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23824, 16, 16, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24690, 16, 16, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23836, 16, 16, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24702, 16, 16, 16, 16, 0, height, 16, 16, height + 27); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23826, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24692, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23829, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24695, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23838, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24704, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23832, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24698, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23823, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24689, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23835, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24701, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_quarter_turn_3(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_left_quarter_turn_3(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_quarter_turn_3_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23846, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24712, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23849, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24715, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23858, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24724, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23852, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24718, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23843, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24709, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23855, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24721, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23845, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24711, 0, 0, 16, 16, 2, height, 16, 0, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23848, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24714, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23857, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24723, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23851, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24717, 0, 0, 16, 16, 2, height, 0, 16, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23842, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24708, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23854, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24720, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23844, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24710, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23847, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24713, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23856, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24722, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23850, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24716, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23841, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24707, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23853, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_quarter_turn_3_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_left_quarter_turn_3_bank(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23906, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24772, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23908, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24774, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23919, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24785, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23910, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24776, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23904, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24770, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23917, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24783, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23905, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24771, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23907, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24773, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23918, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24784, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23909, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24775, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23920, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24786, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23903, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24769, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23916, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24782, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_right_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23895, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24761, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23911, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24777, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23897, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24763, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23899, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24765, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23914, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24780, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23901, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24767, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23896, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24762, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23912, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24778, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23898, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24764, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23913, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24779, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23900, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24766, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23915, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24781, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23902, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24768, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 1: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_left_quarter_turn_3_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_right_quarter_turn_3_25_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_quarter_turn_3_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_left_quarter_turn_3_25_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23882, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24748, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23885, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24751, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23894, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24760, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23888, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24754, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23879, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24745, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23891, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24757, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23881, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24747, 0, 0, 16, 16, 2, height, 16, 0, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23887, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24753, 0, 0, 16, 16, 2, height, 0, 16, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23880, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24746, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23883, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24749, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23892, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24758, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23886, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24752, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23877, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24743, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23889, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24755, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23879, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24745, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23891, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24757, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23882, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24748, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23885, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24751, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23894, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24760, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23888, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24754, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 5: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23881, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24747, 0, 0, 16, 16, 2, height, 0, 16, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23887, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24753, 0, 0, 16, 16, 2, height, 16, 0, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23877, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24743, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23889, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24755, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23880, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24746, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23883, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24749, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23892, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24758, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23886, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24752, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23859, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24725, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23871, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24737, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23862, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24728, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23865, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24731, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23874, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24740, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23868, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24734, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23863, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24729, 0, 0, 16, 16, 2, height, 0, 16, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23869, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24735, 0, 0, 16, 16, 2, height, 16, 0, height); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23861, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24727, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23873, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24739, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23864, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24730, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23867, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24733, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23876, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24742, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23870, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24736, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23862, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24728, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23865, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24731, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23874, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24740, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23868, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24734, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23859, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24725, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23871, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24737, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 5: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23863, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24729, 0, 0, 16, 16, 2, height, 16, 0, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23869, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24735, 0, 0, 16, 16, 2, height, 0, 16, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23864, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24730, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23867, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24733, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23876, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24742, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23870, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24736, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23861, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24727, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23873, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24739, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_half_banked_helix_down_small(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + if (trackSequence >= 4) { + trackSequence -= 4; + direction = (direction - 1) & 3; + } + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_right_half_banked_helix_up_small(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_half_banked_helix_down_small(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + if (trackSequence >= 4) { + trackSequence -= 4; + direction = (direction + 1) & 3; + } + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_left_half_banked_helix_up_small(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23704, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24570, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23709, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24575, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23724, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24590, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23714, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24580, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23699, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24565, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23719, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24585, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23703, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24569, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23708, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24574, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23723, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24589, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23713, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24579, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23698, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24564, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23718, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24584, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23702, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24568, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23712, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24578, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C0 | SEGMENT_C8 | SEGMENT_D0, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23701, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24567, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23706, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24572, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23721, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24587, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23711, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24577, 0, 0, 16, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23696, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24562, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23716, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24582, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23700, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24566, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23705, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24571, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23720, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24586, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23710, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24576, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23695, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24561, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23715, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24581, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23699, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24565, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24585, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23704, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24570, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23709, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24575, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23724, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24590, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23714, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24580, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 8: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 9: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23698, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24564, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23718, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24584, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23703, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24569, 0, 0, 16, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23708, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24574, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23723, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24589, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23713, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24579, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 10: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23702, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24568, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23712, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24578, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_D0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 11: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 12: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23696, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24562, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23716, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24582, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23701, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24567, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23706, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24572, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23721, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24587, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23711, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24577, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 13: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23695, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24561, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23715, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24581, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23700, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24566, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23705, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24571, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23720, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24586, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23710, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24576, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23665, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24531, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23685, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24551, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23670, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24536, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23675, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24541, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23690, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24556, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23680, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24546, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C8, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23666, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24532, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23686, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24552, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23671, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24537, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23676, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24542, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23691, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24557, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23681, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24547, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23672, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24538, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23682, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24548, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_D0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23668, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24534, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23688, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24554, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23673, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24539, 0, 0, 16, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23678, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24544, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23693, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24559, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23683, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24549, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23669, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24535, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23689, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24555, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23674, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24540, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23679, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24545, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23694, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24560, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23684, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24550, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 7: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23670, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24536, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23675, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24541, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23690, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24556, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23680, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24546, 0, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23665, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24531, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23685, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24551, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_CC, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 8: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 9: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23671, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24537, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23676, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24542, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23691, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24557, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23681, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24547, 0, 0, 16, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23666, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24532, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23686, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24552, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 10: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23672, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24538, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23682, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24548, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C0 | SEGMENT_C8 | SEGMENT_D0, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 11: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 12: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23673, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24539, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23678, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24544, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23693, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24559, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23683, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24549, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23668, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24534, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 23688, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24554, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 13: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23674, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24540, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23679, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24545, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 23694, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24560, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23684, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24550, 0, 0, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23669, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24535, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23689, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24555, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_D4, direction), 48, 0x20); + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_half_banked_helix_down_large(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + if (trackSequence >= 7) { + trackSequence -= 7; + direction = (direction - 1) & 3; + } + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_right_half_banked_helix_up_large(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_half_banked_helix_down_large(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + if (trackSequence >= 7) { + trackSequence -= 7; + direction = (direction + 1) & 3; + } + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_left_half_banked_helix_up_large(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_quarter_turn_1_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24209, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25075, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24217, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25083, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24210, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25076, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24218, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25084, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24211, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25077, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24219, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25085, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24212, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25078, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24220, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25086, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_left(height - 8, TUNNEL_8); + break; + case 2: + paint_util_push_tunnel_right(height + 56, TUNNEL_7); + break; + case 3: + paint_util_push_tunnel_right(height - 8, TUNNEL_7); + paint_util_push_tunnel_left(height + 56, TUNNEL_7); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); +} + +static void wooden_rc_track_right_quarter_turn_1_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24213, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25079, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24221, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25087, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24214, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25080, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24222, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25088, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24215, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25081, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24223, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25089, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24216, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25082, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24224, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25090, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height + 56, TUNNEL_7); + paint_util_push_tunnel_left(height - 8, TUNNEL_7); + break; + case 1: + paint_util_push_tunnel_left(height + 56, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_right(height - 8, TUNNEL_7); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); +} + +static void wooden_rc_track_left_quarter_turn_1_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_quarter_turn_1_60_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_quarter_turn_1_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_quarter_turn_1_60_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { static const uint32 imageIds[4][2] = { @@ -1116,6 +3832,3592 @@ static void wooden_rc_track_brakes(uint8 rideIndex, uint8 trackSequence, uint8 d paint_util_set_general_support_height(height + 32, 0x20); } +static void wooden_rc_track_25_deg_up_left_banked(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24249, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25115, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24250, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25116, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24257, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25123, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24251, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25117, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24258, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25124, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24252, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25118, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_25_deg_up_right_banked(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24253, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25119, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24254, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25120, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24259, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25125, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24255, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25121, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24260, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25126, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24256, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25122, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_on_ride_photo(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + track_paint_util_onride_photo_small_paint(direction, height + 16, mapElement); + paint_util_push_tunnel_rotated(direction, height, TUNNEL_9); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_25_deg_down_left_banked(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_right_banked(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_right_banked(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_left_banked(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23997, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24863, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23998, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24864, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23995, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24861, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23996, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24862, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height + 16, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23985, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24851, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23986, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24852, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23983, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24849, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23984, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24850, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + switch (direction) { + case 0: + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23999, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24865, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24003, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24869, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 24001, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24867, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 1: + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24000, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24866, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24004, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24870, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 24002, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24868, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23983, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24849, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23984, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24850, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23985, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24851, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23986, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24852, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23995, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24861, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23996, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24862, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23997, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24863, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23998, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24864, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, 0xAA380000 | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); + break; + } + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + paint_util_push_tunnel_rotated(direction, height + 16, TUNNEL_6); + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_left_eighth_to_diag(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24137, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25003, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24141, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25007, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24153, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25019, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24145, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25011, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24149, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25015, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24157, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25023, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24138, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25004, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24142, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25008, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24154, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25020, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24146, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25012, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24150, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25016, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24158, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25024, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24139, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25005, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24143, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25009, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24155, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25021, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24147, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25013, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24151, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25017, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24159, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25025, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24140, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25006, 0, 0, 16, 16, 2, height, 16, 16, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24144, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25010, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24156, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25022, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24148, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25014, 0, 0, 16, 16, 2, height, 0, 0, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24152, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25018, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24160, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25026, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_eighth_to_diag(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24113, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24979, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24129, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24995, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24117, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24983, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24121, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24987, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24133, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24999, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24125, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24991, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24114, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24980, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24130, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24996, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24118, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24984, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24122, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24988, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24134, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25000, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24126, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24992, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24115, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24981, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24131, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24997, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24119, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24985, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24123, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24989, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98197C_rotated(direction, 0xAA380000 | 24135, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25001, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24127, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24993, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24116, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24982, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24132, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24998, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24120, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24986, 0, 0, 16, 16, 2, height, 0, 0, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24124, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24990, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24136, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25002, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24128, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24994, 0, 0, 16, 16, 2, height, 16, 16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_eighth_to_orthogonal(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + wooden_rc_track_right_eighth_to_diag(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_eighth_to_orthogonal(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + wooden_rc_track_left_eighth_to_diag(rideIndex, trackSequence, (direction + 3) & 3, height, mapElement); +} + +static void wooden_rc_track_left_eighth_bank_to_diag(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24185, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25051, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24189, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25055, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24201, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25067, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24193, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25059, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24197, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25063, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24205, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25071, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24186, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25052, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24190, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25056, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24202, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25068, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24194, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25060, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24198, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25064, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24206, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25072, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24187, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25053, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24191, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25057, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24203, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25069, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24195, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25061, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24199, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25065, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24207, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25073, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24188, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25054, 0, 0, 16, 16, 2, height, 16, 16, height); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24192, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25058, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24204, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25070, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24196, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25062, 0, 0, 16, 16, 2, height, 0, 0, height); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24200, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25066, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24208, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25074, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_right_eighth_bank_to_diag(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24161, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25027, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24177, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25043, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24165, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25031, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24169, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25035, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24181, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25047, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24173, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25039, 0, 0, 32, 32, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24162, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25028, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24178, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25044, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24166, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25032, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24170, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25036, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24182, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25048, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24174, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25040, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24163, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25029, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24179, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25045, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24167, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25033, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24171, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25037, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98197C_rotated(direction, 0xAA380000 | 24183, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25049, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24175, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25041, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 4: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24164, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25030, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24180, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25046, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24168, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25034, 0, 0, 16, 16, 2, height, 0, 0, height); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24172, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25038, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24184, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25050, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24176, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25042, 0, 0, 16, 16, 2, height, 16, 16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_eighth_bank_to_orthogonal(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + wooden_rc_track_right_eighth_bank_to_diag(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_eighth_bank_to_orthogonal(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; + wooden_rc_track_left_eighth_bank_to_diag(rideIndex, trackSequence, (direction + 3) & 3, height, mapElement); +} + +static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24050, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24916, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24008, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24874, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24047, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24913, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24051, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24917, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24005, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24871, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24009, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24875, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24049, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24915, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24052, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24918, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24007, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24873, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24010, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24876, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24048, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24914, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24006, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24872, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + } +} + +static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_diag_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 104, 0x20); + break; + } +} + +static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_down_to_60_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_diag_60_deg_down_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } else { + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + if (track_element_is_lift_hill(mapElement)) { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } else { + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_flat_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_flat_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_left_bank_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_right_bank_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_left_bank_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_right_bank_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_up_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_up_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_left_bank_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_right_bank_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_down_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_25_deg_down_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + } +} + +static void wooden_rc_track_diag_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_diag_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 1: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 2: + switch (direction) { + case 0: + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + case 3: + switch (direction) { + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 32, 0x20); + break; + } +} + +static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23958, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24824, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23960, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24826, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23971, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24837, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23962, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24828, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23956, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24822, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23969, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24835, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23957, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24823, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23959, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24825, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23970, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24836, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23961, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24827, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23972, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24838, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23955, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24821, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23968, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24834, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + } +} + +static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23947, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24813, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23963, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24829, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23949, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24815, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23951, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24817, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23966, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24832, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23953, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24819, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23948, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24814, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23964, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24830, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23950, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24816, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23965, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24831, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23952, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24818, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23967, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24833, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23954, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24820, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_8); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + } +} + +static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23950, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24816, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23965, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24831, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23952, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24818, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23967, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24833, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23954, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24820, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23948, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24814, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23964, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24830, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23949, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24815, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23951, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24817, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23966, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24832, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23953, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24819, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23947, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24813, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23963, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24829, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 3: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + } +} + +static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23955, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24821, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23968, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24834, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23957, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24823, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23959, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24825, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23970, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24836, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23961, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24827, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23972, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24838, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23956, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24822, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23969, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24835, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23958, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24824, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23960, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24826, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23971, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24837, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23962, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24828, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height, TUNNEL_6); + break; + case 1: + paint_util_push_tunnel_left(height, TUNNEL_6); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + } +} + static void wooden_rc_track_block_brakes(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { wooden_rc_track_paint( @@ -1127,6 +7429,1044 @@ static void wooden_rc_track_block_brakes(uint8 rideIndex, uint8 trackSequence, u paint_util_set_general_support_height(height + 32, 0x20); } +static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23932, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24798, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23934, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24800, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23945, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24811, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23936, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24802, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23930, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24796, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23943, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24809, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23931, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24797, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23933, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24799, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23944, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24810, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23935, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24801, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23946, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24812, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23929, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24795, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23942, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24808, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23921, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24787, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23937, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24803, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23923, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24789, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23925, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24791, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, 0xAA380000 | 23940, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24806, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23927, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24793, 0, 6, 32, 20, 2, height, 0, 6, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 2: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 23922, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24788, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23938, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24804, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 23924, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24790, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23939, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24805, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 23926, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24792, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 23941, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24807, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 23928, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24794, 6, 0, 20, 32, 2, height, 6, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 1: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_right_banked_quarter_turn_3_25_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; + wooden_rc_track_left_banked_quarter_turn_3_25_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24321, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25187, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24326, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25192, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24352, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25218, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24331, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25197, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24336, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25202, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24322, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25188, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24327, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25193, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24353, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25219, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24332, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25198, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24337, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25203, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24359, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25225, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24323, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25189, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24328, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25194, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24354, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25220, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24333, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25199, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24338, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25204, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24360, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25226, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24324, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25190, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24329, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25195, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24355, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25221, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24334, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25200, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24357, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25223, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24339, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25205, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24361, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25227, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24325, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25191, 0, 0, 27, 32, 2, height, 2, 0, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24330, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25196, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24356, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25222, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24335, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25201, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24358, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25224, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24340, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25206, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24362, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25228, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 2: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 3: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (trackSequence) { + case 0: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24301, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25167, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24306, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25172, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24311, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25177, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, 0xAA380000 | 24347, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25213, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24316, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25182, 0, 0, 32, 27, 2, height, 0, 2, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 1: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 2: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24302, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25168, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24341, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25207, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24307, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25173, 0, 0, 32, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24312, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25178, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24348, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25214, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24317, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25183, 0, 0, 32, 16, 2, height, 0, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 3: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24303, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25169, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24342, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25208, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24308, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25174, 0, 0, 16, 16, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24313, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25179, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, 0xAA380000 | 24349, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25215, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24318, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25184, 0, 0, 16, 16, 2, height, 0, 16, height); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_BC | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 64, 0x20); + break; + case 4: + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 5: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24304, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25170, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24343, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25209, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24309, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25175, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24345, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25211, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24314, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25180, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24350, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25216, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24319, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25185, 0, 0, 16, 32, 2, height, 16, 0, height); + wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + case 6: + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24305, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25171, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24344, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25210, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24310, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25176, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24346, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25212, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24315, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25181, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, 0xAA380000 | 24351, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25217, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24320, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25186, 0, 0, 27, 32, 2, height, 2, 0, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + switch (direction) { + case 0: + paint_util_push_tunnel_right(height + 8, TUNNEL_8); + break; + case 1: + paint_util_push_tunnel_left(height + 8, TUNNEL_8); + break; + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 72, 0x20); + break; + } +} + +static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(rideIndex, trackSequence, (direction + 1) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; + wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(rideIndex, trackSequence, (direction - 1) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24261, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25127, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24262, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25128, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24263, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25129, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24264, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25130, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24265, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25131, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24266, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25132, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24267, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25133, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24268, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25134, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24269, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25135, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24270, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25136, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24271, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25137, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24272, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25138, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24273, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25139, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24274, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25140, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24275, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25141, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24276, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25142, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_7); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 56, 0x20); +} + +static void wooden_rc_track_25_deg_down_to_left_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_banked_25_deg_up_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_25_deg_down_to_right_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_banked_25_deg_up_to_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_left_banked_25_deg_down_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_right_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_25_deg_down_to_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_25_deg_up_to_left_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24277, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25143, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24278, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25144, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24293, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25159, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24279, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25145, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24294, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25160, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24280, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25146, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24281, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25147, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24282, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25148, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24295, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25161, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24283, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25149, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24296, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25162, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24284, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25150, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24285, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25151, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24286, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25152, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24297, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25163, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24287, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25153, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24298, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25164, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24288, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25154, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24289, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25155, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24290, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25156, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24299, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25165, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24291, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25157, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24300, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25166, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24292, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25158, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_left_banked_25_deg_down_to_left_banked_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_25_deg_down_to_right_banked_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_flat_to_left_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24225, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25091, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24226, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25092, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24241, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25107, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24227, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25093, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24242, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25108, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24228, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25094, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_flat_to_right_banked_25_deg_up(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24229, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25095, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24230, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25096, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24243, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25109, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24231, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25097, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24244, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25110, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24232, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25098, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height, TUNNEL_8); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 48, 0x20); +} + +static void wooden_rc_track_left_banked_25_deg_up_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24233, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25099, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24234, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25100, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24245, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25111, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24235, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25101, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24246, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25112, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24236, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25102, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_right_banked_25_deg_up_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + switch (direction) { + case 0: + sub_98197C_rotated(direction, 0xAA380000 | 24237, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25103, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 1: + sub_98197C_rotated(direction, 0xAA380000 | 24238, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25104, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24247, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25113, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 2: + sub_98197C_rotated(direction, 0xAA380000 | 24239, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25105, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, 0xAA380000 | 24248, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25114, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + case 3: + sub_98197C_rotated(direction, 0xAA380000 | 24240, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25106, 0, 0, 32, 25, 2, height, 0, 3, height); + wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); + break; + } + if (direction == 0 || direction == 3) { + paint_util_push_tunnel_rotated(direction, height - 8, TUNNEL_6); + } else { + paint_util_push_tunnel_rotated(direction, height + 8, TUNNEL_14); + } + paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); + paint_util_set_general_support_height(height + 40, 0x20); +} + +static void wooden_rc_track_flat_to_left_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_right_banked_25_deg_up_to_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_flat_to_right_banked_25_deg_down(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_left_banked_25_deg_up_to_flat(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_left_banked_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_flat_to_right_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + +static void wooden_rc_track_right_banked_25_deg_down_to_flat(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) +{ + wooden_rc_track_flat_to_left_banked_25_deg_up(rideIndex, trackSequence, (direction + 2) & 3, height, mapElement); +} + TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direction) { switch (trackType) { @@ -1196,11 +8536,220 @@ TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int trackType, int direc return wooden_rc_track_left_bank; case TRACK_ELEM_RIGHT_BANK: return wooden_rc_track_right_bank; - + case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_UP: + return wooden_rc_track_left_quarter_turn_5_25_deg_up; + case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_UP: + return wooden_rc_track_right_quarter_turn_5_25_deg_up; + case TRACK_ELEM_LEFT_QUARTER_TURN_5_TILES_25_DEG_DOWN: + return wooden_rc_track_left_quarter_turn_5_25_deg_down; + case TRACK_ELEM_RIGHT_QUARTER_TURN_5_TILES_25_DEG_DOWN: + return wooden_rc_track_right_quarter_turn_5_25_deg_down; + case TRACK_ELEM_S_BEND_LEFT: + return wooden_rc_track_s_bend_left; + case TRACK_ELEM_S_BEND_RIGHT: + return wooden_rc_track_s_bend_right; + case TRACK_ELEM_LEFT_VERTICAL_LOOP: + return wooden_rc_track_left_vertical_loop; + case TRACK_ELEM_RIGHT_VERTICAL_LOOP: + return wooden_rc_track_right_vertical_loop; + case TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES: + return wooden_rc_track_left_quarter_turn_3; + case TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES: + return wooden_rc_track_right_quarter_turn_3; + case TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_BANK: + return wooden_rc_track_left_quarter_turn_3_bank; + case TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_BANK: + return wooden_rc_track_right_quarter_turn_3_bank; + case TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP: + return wooden_rc_track_left_quarter_turn_3_25_deg_up; + case TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP: + return wooden_rc_track_right_quarter_turn_3_25_deg_up; + case TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN: + return wooden_rc_track_left_quarter_turn_3_25_deg_down; + case TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN: + return wooden_rc_track_right_quarter_turn_3_25_deg_down; + case TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL: + return wooden_rc_track_left_half_banked_helix_up_small; + case TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL: + return wooden_rc_track_right_half_banked_helix_up_small; + case TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL: + return wooden_rc_track_left_half_banked_helix_down_small; + case TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL: + return wooden_rc_track_right_half_banked_helix_down_small; + case TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE: + return wooden_rc_track_left_half_banked_helix_up_large; + case TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE: + return wooden_rc_track_right_half_banked_helix_up_large; + case TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE: + return wooden_rc_track_left_half_banked_helix_down_large; + case TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE: + return wooden_rc_track_right_half_banked_helix_down_large; + case TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_UP: + return wooden_rc_track_left_quarter_turn_1_60_deg_up; + case TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_UP: + return wooden_rc_track_right_quarter_turn_1_60_deg_up; + case TRACK_ELEM_LEFT_QUARTER_TURN_1_TILE_60_DEG_DOWN: + return wooden_rc_track_left_quarter_turn_1_60_deg_down; + case TRACK_ELEM_RIGHT_QUARTER_TURN_1_TILE_60_DEG_DOWN: + return wooden_rc_track_right_quarter_turn_1_60_deg_down; case TRACK_ELEM_BRAKES: return wooden_rc_track_brakes; + case TRACK_ELEM_25_DEG_UP_LEFT_BANKED: + return wooden_rc_track_25_deg_up_left_banked; + case TRACK_ELEM_25_DEG_UP_RIGHT_BANKED: + return wooden_rc_track_25_deg_up_right_banked; + case TRACK_ELEM_ON_RIDE_PHOTO: + return wooden_rc_track_on_ride_photo; + case TRACK_ELEM_25_DEG_DOWN_LEFT_BANKED: + return wooden_rc_track_25_deg_down_left_banked; + case TRACK_ELEM_25_DEG_DOWN_RIGHT_BANKED: + return wooden_rc_track_25_deg_down_right_banked; + case TRACK_ELEM_WATER_SPLASH: + return wooden_rc_track_water_splash; + case TRACK_ELEM_LEFT_EIGHTH_TO_DIAG: + return wooden_rc_track_left_eighth_to_diag; + case TRACK_ELEM_RIGHT_EIGHTH_TO_DIAG: + return wooden_rc_track_right_eighth_to_diag; + case TRACK_ELEM_LEFT_EIGHTH_TO_ORTHOGONAL: + return wooden_rc_track_left_eighth_to_orthogonal; + case TRACK_ELEM_RIGHT_EIGHTH_TO_ORTHOGONAL: + return wooden_rc_track_right_eighth_to_orthogonal; + case TRACK_ELEM_LEFT_EIGHTH_BANK_TO_DIAG: + return wooden_rc_track_left_eighth_bank_to_diag; + case TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_DIAG: + return wooden_rc_track_right_eighth_bank_to_diag; + case TRACK_ELEM_LEFT_EIGHTH_BANK_TO_ORTHOGONAL: + return wooden_rc_track_left_eighth_bank_to_orthogonal; + case TRACK_ELEM_RIGHT_EIGHTH_BANK_TO_ORTHOGONAL: + return wooden_rc_track_right_eighth_bank_to_orthogonal; + case TRACK_ELEM_DIAG_FLAT: + return wooden_rc_track_diag_flat; + case TRACK_ELEM_DIAG_25_DEG_UP: + return wooden_rc_track_diag_25_deg_up; + case TRACK_ELEM_DIAG_60_DEG_UP: + return wooden_rc_track_diag_60_deg_up; + case TRACK_ELEM_DIAG_FLAT_TO_25_DEG_UP: + return wooden_rc_track_diag_flat_to_25_deg_up; + case TRACK_ELEM_DIAG_25_DEG_UP_TO_60_DEG_UP: + return wooden_rc_track_diag_25_deg_up_to_60_deg_up; + case TRACK_ELEM_DIAG_60_DEG_UP_TO_25_DEG_UP: + return wooden_rc_track_diag_60_deg_up_to_25_deg_up; + case TRACK_ELEM_DIAG_25_DEG_UP_TO_FLAT: + return wooden_rc_track_diag_25_deg_up_to_flat; + case TRACK_ELEM_DIAG_25_DEG_DOWN: + return wooden_rc_track_diag_25_deg_down; + case TRACK_ELEM_DIAG_60_DEG_DOWN: + return wooden_rc_track_diag_60_deg_down; + case TRACK_ELEM_DIAG_FLAT_TO_25_DEG_DOWN: + return wooden_rc_track_diag_flat_to_25_deg_down; + case TRACK_ELEM_DIAG_25_DEG_DOWN_TO_60_DEG_DOWN: + return wooden_rc_track_diag_25_deg_down_to_60_deg_down; + case TRACK_ELEM_DIAG_60_DEG_DOWN_TO_25_DEG_DOWN: + return wooden_rc_track_diag_60_deg_down_to_25_deg_down; + case TRACK_ELEM_DIAG_25_DEG_DOWN_TO_FLAT: + return wooden_rc_track_diag_25_deg_down_to_flat; + case TRACK_ELEM_DIAG_FLAT_TO_LEFT_BANK: + return wooden_rc_track_diag_flat_to_left_bank; + case TRACK_ELEM_DIAG_FLAT_TO_RIGHT_BANK: + return wooden_rc_track_diag_flat_to_right_bank; + case TRACK_ELEM_DIAG_LEFT_BANK_TO_FLAT: + return wooden_rc_track_diag_left_bank_to_flat; + case TRACK_ELEM_DIAG_RIGHT_BANK_TO_FLAT: + return wooden_rc_track_diag_right_bank_to_flat; + case TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_UP: + return wooden_rc_track_diag_left_bank_to_25_deg_up; + case TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_UP: + return wooden_rc_track_diag_right_bank_to_25_deg_up; + case TRACK_ELEM_DIAG_25_DEG_UP_TO_LEFT_BANK: + return wooden_rc_track_diag_25_deg_up_to_left_bank; + case TRACK_ELEM_DIAG_25_DEG_UP_TO_RIGHT_BANK: + return wooden_rc_track_diag_25_deg_up_to_right_bank; + case TRACK_ELEM_DIAG_LEFT_BANK_TO_25_DEG_DOWN: + return wooden_rc_track_diag_left_bank_to_25_deg_down; + case TRACK_ELEM_DIAG_RIGHT_BANK_TO_25_DEG_DOWN: + return wooden_rc_track_diag_right_bank_to_25_deg_down; + case TRACK_ELEM_DIAG_25_DEG_DOWN_TO_LEFT_BANK: + return wooden_rc_track_diag_25_deg_down_to_left_bank; + case TRACK_ELEM_DIAG_25_DEG_DOWN_TO_RIGHT_BANK: + return wooden_rc_track_diag_25_deg_down_to_right_bank; + case TRACK_ELEM_DIAG_LEFT_BANK: + return wooden_rc_track_diag_left_bank; + case TRACK_ELEM_DIAG_RIGHT_BANK: + return wooden_rc_track_diag_right_bank; + case TRACK_ELEM_LEFT_BANK_TO_LEFT_QUARTER_TURN_3_TILES_25_DEG_UP: + return wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up; + case TRACK_ELEM_RIGHT_BANK_TO_RIGHT_QUARTER_TURN_3_TILES_25_DEG_UP: + return wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up; + case TRACK_ELEM_LEFT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_LEFT_BANK: + return wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank; + case TRACK_ELEM_RIGHT_QUARTER_TURN_3_TILES_25_DEG_DOWN_TO_RIGHT_BANK: + return wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank; case TRACK_ELEM_BLOCK_BRAKES: return wooden_rc_track_block_brakes; + case TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP: + return wooden_rc_track_left_banked_quarter_turn_3_25_deg_up; + case TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_UP: + return wooden_rc_track_right_banked_quarter_turn_3_25_deg_up; + case TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN: + return wooden_rc_track_left_banked_quarter_turn_3_25_deg_down; + case TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_3_TILE_25_DEG_DOWN: + return wooden_rc_track_right_banked_quarter_turn_3_25_deg_down; + case TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP: + return wooden_rc_track_left_banked_quarter_turn_5_25_deg_up; + case TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_UP: + return wooden_rc_track_right_banked_quarter_turn_5_25_deg_up; + case TRACK_ELEM_LEFT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN: + return wooden_rc_track_left_banked_quarter_turn_5_25_deg_down; + case TRACK_ELEM_RIGHT_BANKED_QUARTER_TURN_5_TILE_25_DEG_DOWN: + return wooden_rc_track_right_banked_quarter_turn_5_25_deg_down; + case TRACK_ELEM_25_DEG_UP_TO_LEFT_BANKED_25_DEG_UP: + return wooden_rc_track_25_deg_up_to_left_banked_25_deg_up; + case TRACK_ELEM_25_DEG_UP_TO_RIGHT_BANKED_25_DEG_UP: + return wooden_rc_track_25_deg_up_to_right_banked_25_deg_up; + case TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_25_DEG_UP: + return wooden_rc_track_left_banked_25_deg_up_to_25_deg_up; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_25_DEG_UP: + return wooden_rc_track_right_banked_25_deg_up_to_25_deg_up; + case TRACK_ELEM_25_DEG_DOWN_TO_LEFT_BANKED_25_DEG_DOWN: + return wooden_rc_track_25_deg_down_to_left_banked_25_deg_down; + case TRACK_ELEM_25_DEG_DOWN_TO_RIGHT_BANKED_25_DEG_DOWN: + return wooden_rc_track_25_deg_down_to_right_banked_25_deg_down; + case TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN: + return wooden_rc_track_left_banked_25_deg_down_to_25_deg_down; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_25_DEG_DOWN: + return wooden_rc_track_right_banked_25_deg_down_to_25_deg_down; + case TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_UP: + return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up; + case TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_UP: + return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up; + case TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_LEFT_BANKED_FLAT: + return wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_RIGHT_BANKED_FLAT: + return wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat; + case TRACK_ELEM_LEFT_BANKED_FLAT_TO_LEFT_BANKED_25_DEG_DOWN: + return wooden_rc_track_left_banked_flat_to_left_banked_25_deg_down; + case TRACK_ELEM_RIGHT_BANKED_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN: + return wooden_rc_track_right_banked_flat_to_right_banked_25_deg_down; + case TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_LEFT_BANKED_FLAT: + return wooden_rc_track_left_banked_25_deg_down_to_left_banked_flat; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_RIGHT_BANKED_FLAT: + return wooden_rc_track_right_banked_25_deg_down_to_right_banked_flat; + case TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_UP: + return wooden_rc_track_flat_to_left_banked_25_deg_up; + case TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_UP: + return wooden_rc_track_flat_to_right_banked_25_deg_up; + case TRACK_ELEM_LEFT_BANKED_25_DEG_UP_TO_FLAT: + return wooden_rc_track_left_banked_25_deg_up_to_flat; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_UP_TO_FLAT: + return wooden_rc_track_right_banked_25_deg_up_to_flat; + case TRACK_ELEM_FLAT_TO_LEFT_BANKED_25_DEG_DOWN: + return wooden_rc_track_flat_to_left_banked_25_deg_down; + case TRACK_ELEM_FLAT_TO_RIGHT_BANKED_25_DEG_DOWN: + return wooden_rc_track_flat_to_right_banked_25_deg_down; + case TRACK_ELEM_LEFT_BANKED_25_DEG_DOWN_TO_FLAT: + return wooden_rc_track_left_banked_25_deg_down_to_flat; + case TRACK_ELEM_RIGHT_BANKED_25_DEG_DOWN_TO_FLAT: + return wooden_rc_track_right_banked_25_deg_down_to_flat; } return NULL; } diff --git a/src/ride/track_paint.c b/src/ride/track_paint.c index 6a9439f1bd..7d1bbefe51 100644 --- a/src/ride/track_paint.c +++ b/src/ride/track_paint.c @@ -1600,6 +1600,43 @@ void track_paint_util_spinning_tunnel_paint(sint8 thickness, sint16 height, uint } } +void track_paint_util_onride_photo_small_paint(uint8 direction, sint32 height, rct_map_element *mapElement) +{ + static const uint32 imageIds[4][3] = + { + { SPR_ON_RIDE_PHOTO_SIGN_SMALL_SW_NE, SPR_ON_RIDE_PHOTO_CAMERA_SMALL_S, SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_S }, + { SPR_ON_RIDE_PHOTO_SIGN_SMALL_NW_SE, SPR_ON_RIDE_PHOTO_CAMERA_SMALL_W, SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_W }, + { SPR_ON_RIDE_PHOTO_SIGN_SMALL_NE_SW, SPR_ON_RIDE_PHOTO_CAMERA_SMALL_N, SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_N }, + { SPR_ON_RIDE_PHOTO_SIGN_SMALL_SE_NW, SPR_ON_RIDE_PHOTO_CAMERA_SMALL_E, SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_E }, + }; + + bool takingPhoto = (mapElement->properties.track.sequence & 0xF0) != 0; + uint32 imageId = imageIds[direction][0] | gTrackColours[SCHEME_MISC]; + uint32 flashImageId = imageIds[direction][takingPhoto ? 2 : 1] | gTrackColours[SCHEME_MISC]; + switch (direction) { + case 0: + sub_98196C(imageId, 26, 0, 1, 1, 19, height, get_current_rotation()); + sub_98196C(imageId, 26, 31, 1, 1, 19, height, get_current_rotation()); + sub_98196C(flashImageId, 6, 0, 1, 1, 19, height, get_current_rotation()); + break; + case 1: + sub_98196C(imageId, 0, 6, 1, 1, 19, height, get_current_rotation()); + sub_98196C(imageId, 31, 6, 1, 1, 19, height, get_current_rotation()); + sub_98196C(flashImageId, 0, 26, 1, 1, 19, height, get_current_rotation()); + break; + case 2: + sub_98196C(imageId, 6, 0, 1, 1, 19, height, get_current_rotation()); + sub_98196C(imageId, 6, 31, 1, 1, 19, height, get_current_rotation()); + sub_98196C(flashImageId, 26, 31, 1, 1, 19, height, get_current_rotation()); + break; + case 3: + sub_98196C(imageId, 0, 26, 1, 1, 19, height, get_current_rotation()); + sub_98196C(imageId, 31, 26, 1, 1, 19, height, get_current_rotation()); + sub_98196C(flashImageId, 31, 6, 1, 1, 19, height, get_current_rotation()); + break; + } +} + void track_paint_util_onride_photo_paint(uint8 direction, sint32 height, rct_map_element *mapElement) { static const uint32 imageIds[4][3] = diff --git a/src/ride/track_paint.h b/src/ride/track_paint.h index 1255d6629a..c3409824a5 100644 --- a/src/ride/track_paint.h +++ b/src/ride/track_paint.h @@ -160,6 +160,19 @@ enum { SPR_STATION_BASE_C_NW_SE = 22431, SPR_STATION_BASE_D = 22432, + SPR_ON_RIDE_PHOTO_CAMERA_SMALL_N = 23485, + SPR_ON_RIDE_PHOTO_CAMERA_SMALL_E = 23486, + SPR_ON_RIDE_PHOTO_CAMERA_SMALL_S = 23487, + SPR_ON_RIDE_PHOTO_CAMERA_SMALL_W = 23488, + SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_N = 23489, + SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_E = 23490, + SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_S = 23491, + SPR_ON_RIDE_PHOTO_CAMERA_FLASH_SMALL_W = 23492, + SPR_ON_RIDE_PHOTO_SIGN_SMALL_SW_NE = 23493, + SPR_ON_RIDE_PHOTO_SIGN_SMALL_NW_SE = 23494, + SPR_ON_RIDE_PHOTO_SIGN_SMALL_NE_SW = 23495, + SPR_ON_RIDE_PHOTO_SIGN_SMALL_SE_NW = 23496, + SPR_ON_RIDE_PHOTO_CAMERA_N = 25615, SPR_ON_RIDE_PHOTO_CAMERA_E = 25616, SPR_ON_RIDE_PHOTO_CAMERA_S = 25617, @@ -274,6 +287,7 @@ void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 tunn void track_paint_util_left_quarter_turn_1_tile_paint(sint8 thickness, sint16 height, sint16 boundBoxZOffset, int direction, uint32 colourFlags, const uint32 * sprites, uint8 rotation); void track_paint_util_left_quarter_turn_1_tile_tunnel(sint16 height, uint8 direction, uint8 trackSequence); void track_paint_util_spinning_tunnel_paint(sint8 thickness, sint16 height, uint8 direction, uint8 rotation); +void track_paint_util_onride_photo_small_paint(uint8 direction, sint32 height, rct_map_element *mapElement); void track_paint_util_onride_photo_paint(uint8 direction, sint32 height, rct_map_element *mapElement); void track_paint_util_right_helix_up_small_quarter_tiles_paint(const sint8 thickness[2], sint16 height, int direction, uint8 trackSequence, uint32 colourFlags, const uint32 sprites[4][3][2], const rct_xy16 offsets[4][3][2], const rct_xy16 boundsLengths[4][3][2], const rct_xyz16 boundsOffsets[4][3][2], uint8 rotation); void track_paint_util_right_helix_up_large_quarter_tiles_paint(const sint8 thickness[2], sint16 height, int direction, uint8 trackSequence, uint32 colourFlags, const uint32 sprites[4][5][2], const rct_xy16 offsets[4][5][2], const rct_xy16 boundsLengths[4][5][2], const rct_xyz16 boundsOffsets[4][5][2], uint8 rotation); From d405ef37a9de8fa296e7a6ece9c9e386bba297ea Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 10 Oct 2016 18:37:36 +0100 Subject: [PATCH 13/15] Fix track colours --- src/ride/coaster/wooden_roller_coaster.c | 3872 +++++++++++----------- 1 file changed, 1936 insertions(+), 1936 deletions(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 682b02618a..50b629e610 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -1106,25 +1106,25 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23781, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24647, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23781, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24647, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23786, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24652, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23812, 0, 0, 32, 27, 0, height, 0, 2, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24678, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23786, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24652, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23812, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24678, 0, 0, 32, 27, 0, height, 0, 2, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23791, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24657, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23791, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24657, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23796, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24662, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23796, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24662, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1141,27 +1141,27 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23782, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24648, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23782, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24648, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23787, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24653, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23813, 0, 0, 32, 16, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24679, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23787, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24653, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23813, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24679, 0, 0, 32, 16, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23792, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24658, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23792, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24658, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23797, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24663, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23819, 0, 0, 32, 16, 0, height, 0, 16, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24685, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23797, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24663, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23819, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24685, 0, 0, 32, 16, 0, height, 0, 16, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1171,27 +1171,27 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23783, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24649, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23783, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24649, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23788, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24654, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23814, 0, 0, 16, 16, 0, height, 16, 16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24680, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23788, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24654, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23814, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24680, 0, 0, 16, 16, 0, height, 16, 16, height + 59); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23793, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24659, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23793, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24659, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23798, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24664, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23820, 0, 0, 16, 16, 0, height, 0, 0, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24686, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23798, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24664, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23820, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24686, 0, 0, 16, 16, 0, height, 0, 0, height + 59); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1205,29 +1205,29 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23784, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24650, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23784, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24650, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23789, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24655, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23815, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24681, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23789, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24655, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23815, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24681, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23794, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24660, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23817, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24683, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23794, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24660, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23817, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24683, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23799, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24665, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23821, 0, 0, 16, 32, 0, height, 16, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24687, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23799, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24665, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23821, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24687, 0, 0, 16, 32, 0, height, 16, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1237,29 +1237,29 @@ static void wooden_rc_track_left_quarter_turn_5_25_deg_up(uint8 rideIndex, uint8 case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23785, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24651, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23785, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24651, 0, 0, 27, 32, 2, height, 2, 0, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23790, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24656, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23816, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24682, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23790, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24656, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23816, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24682, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23795, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24661, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23818, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24684, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23795, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24661, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23818, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24684, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23800, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24666, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23822, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24688, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23800, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24666, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23822, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24688, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1283,25 +1283,25 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23761, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24627, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23761, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24627, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23766, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24632, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23766, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24632, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23771, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24637, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23807, 0, 0, 32, 27, 0, height, 0, 2, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24673, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23771, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24637, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23807, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24673, 0, 0, 32, 27, 0, height, 0, 2, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23776, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24642, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23776, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24642, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1318,27 +1318,27 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23762, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24628, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23801, 0, 0, 32, 16, 0, height, 0, 16, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24667, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23762, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24628, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23801, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24667, 0, 0, 32, 16, 0, height, 0, 16, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23767, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24633, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23767, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24633, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23772, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24638, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23808, 0, 0, 32, 16, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24674, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23772, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24638, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23808, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24674, 0, 0, 32, 16, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23777, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24643, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23777, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24643, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1348,27 +1348,27 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23763, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24629, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23802, 0, 0, 16, 16, 0, height, 0, 0, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24668, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23763, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24629, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23802, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24668, 0, 0, 16, 16, 0, height, 0, 0, height + 59); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23768, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24634, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23768, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24634, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23773, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24639, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23809, 0, 0, 16, 16, 0, height, 16, 16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24675, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23773, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24639, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23809, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24675, 0, 0, 16, 16, 0, height, 16, 16, height + 59); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23778, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24644, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23778, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24644, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1382,29 +1382,29 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23764, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24630, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23803, 0, 0, 16, 32, 0, height, 16, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24669, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23764, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24630, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23803, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24669, 0, 0, 16, 32, 0, height, 16, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23769, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24635, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23805, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24671, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23769, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24635, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23805, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24671, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23774, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24640, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23810, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24676, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23774, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24640, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23810, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24676, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23779, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24645, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23779, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24645, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1414,29 +1414,29 @@ static void wooden_rc_track_right_quarter_turn_5_25_deg_up(uint8 rideIndex, uint case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23765, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24631, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23804, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24670, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23765, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24631, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23804, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24670, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23770, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24636, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23806, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24672, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23770, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24636, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23806, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24672, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23775, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24641, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23811, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24677, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23775, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24641, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23811, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24677, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23780, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24646, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23780, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24646, 0, 0, 27, 32, 2, height, 2, 0, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1472,27 +1472,27 @@ static void wooden_rc_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, ui case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1505,27 +1505,27 @@ static void wooden_rc_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, ui case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1535,27 +1535,27 @@ static void wooden_rc_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, ui case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23727, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24593, 0, 0, 32, 26, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23731, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24597, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23743, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24609, 0, 0, 32, 26, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23726, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24592, 0, 0, 32, 26, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23730, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24596, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23742, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24608, 0, 0, 32, 26, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1565,27 +1565,27 @@ static void wooden_rc_track_s_bend_left(uint8 rideIndex, uint8 trackSequence, ui case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23728, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24594, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23732, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24598, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23744, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24610, 0, 0, 32, 27, 0, height, 0, 2, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23725, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24591, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23729, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24595, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23741, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24607, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1609,27 +1609,27 @@ static void wooden_rc_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, u case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1642,27 +1642,27 @@ static void wooden_rc_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, u case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1672,27 +1672,27 @@ static void wooden_rc_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, u case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23735, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24601, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23747, 0, 0, 32, 26, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24613, 0, 0, 32, 26, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23739, 0, 0, 32, 26, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24605, 0, 0, 32, 26, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23734, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24600, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23746, 0, 0, 32, 26, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24612, 0, 0, 32, 26, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23738, 0, 0, 32, 26, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24604, 0, 0, 32, 26, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1702,27 +1702,27 @@ static void wooden_rc_track_s_bend_right(uint8 rideIndex, uint8 trackSequence, u case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23736, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24602, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23748, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24614, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23740, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24606, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23733, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24599, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23745, 0, 0, 32, 25, 0, height, 0, 3, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24611, 0, 0, 32, 25, 0, height, 0, 3, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23737, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24603, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -1746,16 +1746,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 0: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23453, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23453, 0, 6, 32, 20, 3, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23461, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23461, 0, 6, 32, 20, 3, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23460, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23460, 0, 6, 32, 20, 3, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23468, 0, 6, 32, 20, 7, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23468, 0, 6, 32, 20, 7, height); break; } metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); @@ -1768,19 +1768,19 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 1: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23454, 0, 0, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23454, 0, 0, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23462, 0, 14, 32, 2, 63, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23462, 0, 14, 32, 2, 63, height); metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23459, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23459, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23467, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23467, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; } @@ -1790,16 +1790,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 2: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23455, 16, 0, 5, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23455, 16, 0, 5, 16, 119, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23463, 12, 0, 3, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23463, 12, 0, 3, 16, 119, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23458, 10, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23458, 10, 16, 4, 16, 119, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23466, 16, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23466, 16, 16, 4, 16, 119, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -1808,16 +1808,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 3: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23456, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23456, 0, 0, 32, 16, 3, height + 32); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23464, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23464, 0, 0, 32, 16, 3, height + 32); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23457, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23457, 0, 16, 32, 16, 3, height + 32); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23465, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23465, 0, 16, 32, 16, 3, height + 32); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); @@ -1832,16 +1832,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 6: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23457, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23457, 0, 16, 32, 16, 3, height + 32); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23465, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23465, 0, 16, 32, 16, 3, height + 32); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23456, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23456, 0, 0, 32, 16, 3, height + 32); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23464, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23464, 0, 0, 32, 16, 3, height + 32); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); @@ -1850,16 +1850,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 7: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23458, 10, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23458, 10, 16, 4, 16, 119, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23466, 16, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23466, 16, 16, 4, 16, 119, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23455, 16, 0, 5, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23455, 16, 0, 5, 16, 119, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23463, 12, 0, 3, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23463, 12, 0, 3, 16, 119, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D4, direction), 0xFFFF, 0); @@ -1868,19 +1868,19 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 8: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23459, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23459, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23467, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23467, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23454, 0, 0, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23454, 0, 0, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23462, 0, 14, 32, 2, 63, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23462, 0, 14, 32, 2, 63, height); metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); break; } @@ -1890,16 +1890,16 @@ static void wooden_rc_track_left_vertical_loop(uint8 rideIndex, uint8 trackSeque case 9: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23460, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23460, 0, 6, 32, 20, 3, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23468, 0, 6, 32, 20, 7, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23468, 0, 6, 32, 20, 7, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23453, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23453, 0, 6, 32, 20, 3, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23461, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23461, 0, 6, 32, 20, 3, height); break; } metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); @@ -1923,16 +1923,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 0: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23484, 0, 6, 32, 20, 7, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23484, 0, 6, 32, 20, 7, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23476, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23476, 0, 6, 32, 20, 3, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23477, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23477, 0, 6, 32, 20, 3, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23469, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23469, 0, 6, 32, 20, 3, height); break; } metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); @@ -1945,19 +1945,19 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 1: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23483, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23483, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23475, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23475, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23478, 0, 14, 32, 2, 63, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23478, 0, 14, 32, 2, 63, height); metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23470, 0, 0, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23470, 0, 0, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); break; } @@ -1967,16 +1967,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 2: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23482, 16, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23482, 16, 16, 4, 16, 119, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23474, 10, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23474, 10, 16, 4, 16, 119, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23479, 12, 0, 3, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23479, 12, 0, 3, 16, 119, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23471, 16, 0, 5, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23471, 16, 0, 5, 16, 119, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -1985,16 +1985,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 3: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23481, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23481, 0, 16, 32, 16, 3, height + 32); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23473, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23473, 0, 16, 32, 16, 3, height + 32); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23480, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23480, 0, 0, 32, 16, 3, height + 32); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23472, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23472, 0, 0, 32, 16, 3, height + 32); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_BC | SEGMENT_C0 | SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); @@ -2009,16 +2009,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 6: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23480, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23480, 0, 0, 32, 16, 3, height + 32); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23472, 0, 0, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23472, 0, 0, 32, 16, 3, height + 32); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23481, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23481, 0, 16, 32, 16, 3, height + 32); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23473, 0, 16, 32, 16, 3, height + 32); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23473, 0, 16, 32, 16, 3, height + 32); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); @@ -2027,16 +2027,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 7: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23479, 12, 0, 3, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23479, 12, 0, 3, 16, 119, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23471, 16, 0, 5, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23471, 16, 0, 5, 16, 119, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23482, 16, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23482, 16, 16, 4, 16, 119, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23474, 10, 16, 4, 16, 119, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23474, 10, 16, 4, 16, 119, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B4 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC, direction), 0xFFFF, 0); @@ -2045,19 +2045,19 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 8: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23478, 0, 14, 32, 2, 63, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23478, 0, 14, 32, 2, 63, height); metal_a_supports_paint_setup(3, 4, 9, height, gTrackColours[SCHEME_SUPPORTS]); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23470, 0, 0, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23470, 0, 0, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 20, height, gTrackColours[SCHEME_SUPPORTS]); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23483, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23483, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23475, 0, 6, 32, 26, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23475, 0, 6, 32, 26, 3, height); metal_a_supports_paint_setup(3, 4, 16, height, gTrackColours[SCHEME_SUPPORTS]); break; } @@ -2067,16 +2067,16 @@ static void wooden_rc_track_right_vertical_loop(uint8 rideIndex, uint8 trackSequ case 9: switch (direction) { case 0: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23477, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23477, 0, 6, 32, 20, 3, height); break; case 1: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23469, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23469, 0, 6, 32, 20, 3, height); break; case 2: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23484, 0, 6, 32, 20, 7, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23484, 0, 6, 32, 20, 7, height); break; case 3: - sub_98196C_rotated(direction, gTrackColours[SCHEME_TRACK] | 23476, 0, 6, 32, 20, 3, height); + sub_98196C_rotated(direction, wooden_rc_get_rails_colour() | 23476, 0, 6, 32, 20, 3, height); break; } metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); @@ -2100,27 +2100,27 @@ static void wooden_rc_track_left_quarter_turn_3(uint8 rideIndex, uint8 trackSequ case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23828, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24694, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23828, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24694, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23831, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24697, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23840, 0, 6, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24706, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23831, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24697, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23840, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24706, 0, 6, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23834, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24700, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23834, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24700, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23825, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24691, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23837, 0, 6, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24703, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23825, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24691, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23837, 0, 6, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24703, 0, 6, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2136,24 +2136,24 @@ static void wooden_rc_track_left_quarter_turn_3(uint8 rideIndex, uint8 trackSequ case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23827, 16, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24693, 16, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23827, 16, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24693, 16, 0, 16, 16, 2, height, 16, 0, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23830, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24696, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23839, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24705, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23830, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24696, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23839, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24705, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23833, 0, 16, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24699, 0, 16, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23833, 0, 16, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24699, 0, 16, 16, 16, 2, height, 0, 16, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23824, 16, 16, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24690, 16, 16, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23836, 16, 16, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24702, 16, 16, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23824, 16, 16, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24690, 16, 16, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23836, 16, 16, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24702, 16, 16, 16, 16, 0, height, 16, 16, height + 27); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -2162,27 +2162,27 @@ static void wooden_rc_track_left_quarter_turn_3(uint8 rideIndex, uint8 trackSequ case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23826, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24692, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23826, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24692, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23829, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24695, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23838, 6, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24704, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23829, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24695, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23838, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24704, 6, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23832, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24698, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23832, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24698, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23823, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24689, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23835, 6, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24701, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23823, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24689, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23835, 6, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24701, 6, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2212,27 +2212,27 @@ static void wooden_rc_track_left_quarter_turn_3_bank(uint8 rideIndex, uint8 trac case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23846, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24712, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23846, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24712, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23849, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24715, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23858, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24724, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23849, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24715, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23858, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24724, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23852, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24718, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23852, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24718, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23843, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24709, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23855, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24721, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23843, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24709, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23855, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24721, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2248,24 +2248,24 @@ static void wooden_rc_track_left_quarter_turn_3_bank(uint8 rideIndex, uint8 trac case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23845, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24711, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23845, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24711, 0, 0, 16, 16, 2, height, 16, 0, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23848, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24714, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23857, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24723, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23848, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24714, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23857, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24723, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23851, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24717, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23851, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24717, 0, 0, 16, 16, 2, height, 0, 16, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23842, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24708, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23854, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24720, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23842, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24708, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23854, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24720, 0, 0, 16, 16, 0, height, 16, 16, height + 27); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -2274,27 +2274,27 @@ static void wooden_rc_track_left_quarter_turn_3_bank(uint8 rideIndex, uint8 trac case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23844, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24710, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23844, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24710, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23847, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24713, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23856, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24722, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23847, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24713, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23856, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24722, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23850, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24716, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23850, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24716, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23841, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24707, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23853, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23841, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24707, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23853, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2324,27 +2324,27 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23906, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24772, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23906, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24772, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23908, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24774, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23919, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24785, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23908, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24774, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23919, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24785, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23910, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24776, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23910, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24776, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23904, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24770, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23917, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24783, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23904, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24770, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23917, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24783, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2364,29 +2364,29 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_up(uint8 rideIndex, uint8 case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23905, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24771, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23905, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24771, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23907, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24773, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23918, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24784, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23907, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24773, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23918, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24784, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23909, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24775, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23920, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24786, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23909, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24775, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23920, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24786, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23903, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24769, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23916, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24782, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23903, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24769, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23916, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24782, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2410,27 +2410,27 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up(uint8 rideIndex, uint case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23895, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24761, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23911, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24777, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23895, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24761, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23911, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24777, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23897, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24763, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23897, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24763, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23899, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24765, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23914, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24780, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23899, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24765, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23914, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24780, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23901, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24767, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23901, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24767, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2450,29 +2450,29 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_up(uint8 rideIndex, uint case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23896, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24762, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23912, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24778, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23896, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24762, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23912, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24778, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23898, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24764, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23913, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24779, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23898, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24764, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23913, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24779, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23900, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24766, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23915, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24781, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23900, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24766, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23915, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24781, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23902, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24768, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23902, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24768, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2508,27 +2508,27 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23882, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24748, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23882, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24748, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23885, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24751, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23894, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24760, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23885, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24751, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23894, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24760, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23888, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24754, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23888, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24754, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23879, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24745, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23891, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24757, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23879, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24745, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23891, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24757, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2559,24 +2559,24 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23881, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24747, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23881, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24747, 0, 0, 16, 16, 2, height, 16, 0, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23887, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24753, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23887, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24753, 0, 0, 16, 16, 2, height, 0, 16, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -2585,27 +2585,27 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23880, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24746, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23880, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24746, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23883, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24749, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23892, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24758, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23883, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24749, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23892, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24758, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23886, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24752, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23886, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24752, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23877, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24743, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23889, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24755, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23877, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24743, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23889, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24755, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2624,27 +2624,27 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23879, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24745, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23891, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24757, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23879, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24745, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23891, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24757, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23882, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24748, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23882, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24748, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23885, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24751, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23894, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24760, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23885, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24751, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23894, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24760, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23888, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24754, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23888, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24754, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2680,24 +2680,24 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23878, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24744, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23890, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24756, 0, 0, 16, 16, 0, height, 16, 16, height + 27); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23881, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24747, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23881, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24747, 0, 0, 16, 16, 2, height, 0, 16, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23884, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24750, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23893, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24759, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23887, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24753, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23887, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24753, 0, 0, 16, 16, 2, height, 16, 0, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); @@ -2706,27 +2706,27 @@ static void wooden_rc_track_left_half_banked_helix_up_small(uint8 rideIndex, uin case 7: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23877, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24743, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23889, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24755, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23877, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24743, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23889, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24755, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23880, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24746, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23880, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24746, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23883, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24749, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23892, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24758, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23883, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24749, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23892, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24758, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23886, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24752, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23886, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24752, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2746,27 +2746,27 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23859, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24725, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23871, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24737, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23859, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24725, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23871, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24737, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23862, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24728, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23862, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24728, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23865, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24731, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23874, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24740, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23865, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24731, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23874, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24740, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23868, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24734, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23868, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24734, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2797,24 +2797,24 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23863, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24729, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23863, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24729, 0, 0, 16, 16, 2, height, 0, 16, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23869, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24735, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23869, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24735, 0, 0, 16, 16, 2, height, 16, 0, height); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_C0 | SEGMENT_C4 | SEGMENT_D0 | SEGMENT_D4, direction), 0xFFFF, 0); @@ -2823,27 +2823,27 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23861, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24727, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23873, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24739, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23861, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24727, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23873, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24739, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23864, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24730, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23864, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24730, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23867, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24733, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23876, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24742, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23867, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24733, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23876, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24742, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23870, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24736, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23870, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24736, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2862,27 +2862,27 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23862, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24728, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23862, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24728, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23865, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24731, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23874, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24740, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23865, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24731, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23874, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24740, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23868, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24734, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23868, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24734, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23859, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24725, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23871, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24737, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23859, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24725, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23871, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24737, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -2918,24 +2918,24 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23863, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24729, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23863, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24729, 0, 0, 16, 16, 2, height, 16, 0, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23866, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24732, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23875, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24741, 0, 0, 16, 16, 0, height, 0, 0, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23869, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24735, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23869, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24735, 0, 0, 16, 16, 2, height, 0, 16, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23860, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24726, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23872, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24738, 0, 0, 16, 16, 0, height, 16, 16, height + 27); break; } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_D0, direction), 0xFFFF, 0); @@ -2944,27 +2944,27 @@ static void wooden_rc_track_right_half_banked_helix_up_small(uint8 rideIndex, ui case 7: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23864, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24730, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23864, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24730, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23867, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24733, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23876, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24742, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23867, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24733, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23876, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24742, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23870, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24736, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23870, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24736, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23861, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24727, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23873, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24739, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23861, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24727, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23873, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24739, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3004,27 +3004,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23704, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24570, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23704, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24570, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23709, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24575, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23724, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24590, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23709, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24575, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23724, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24590, 0, 0, 32, 27, 0, height, 0, 2, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23714, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24580, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23714, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24580, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23699, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24565, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23719, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24585, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23699, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24565, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23719, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24585, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3042,27 +3042,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23703, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24569, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23703, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24569, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23708, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24574, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23723, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24589, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23708, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24574, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23723, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24589, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23713, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24579, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23713, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24579, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23698, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24564, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23718, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24584, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23698, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24564, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23718, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24584, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3072,27 +3072,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23702, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24568, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23702, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24568, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23712, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24578, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23712, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24578, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3107,27 +3107,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23701, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24567, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23701, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24567, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23706, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24572, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23721, 0, 0, 16, 32, 0, height, 0, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24587, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23706, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24572, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23721, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24587, 0, 0, 16, 32, 0, height, 0, 0, height + 33); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23711, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24577, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23711, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24577, 0, 0, 16, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23696, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24562, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23716, 0, 0, 16, 32, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24582, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23696, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24562, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23716, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24582, 0, 0, 16, 32, 0, height, 16, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3137,27 +3137,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23700, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24566, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23700, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24566, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23705, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24571, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23720, 0, 0, 27, 32, 0, height, 2, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24586, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23705, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24571, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23720, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24586, 0, 0, 27, 32, 0, height, 2, 0, height + 33); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23710, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24576, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23710, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24576, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23695, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24561, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23715, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24581, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23695, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24561, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23715, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24581, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3176,27 +3176,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 7: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23699, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24565, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24585, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23699, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24565, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23719, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24585, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23704, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24570, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23704, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24570, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23709, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24575, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23724, 0, 0, 27, 32, 0, height, 2, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24590, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23709, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24575, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23724, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24590, 0, 0, 27, 32, 0, height, 2, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23714, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24580, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23714, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24580, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3219,27 +3219,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 9: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23698, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24564, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23718, 0, 0, 16, 32, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24584, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23698, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24564, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23718, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24584, 0, 0, 16, 32, 0, height, 16, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23703, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24569, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23703, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24569, 0, 0, 16, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23708, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24574, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23723, 0, 0, 16, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24589, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23708, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24574, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23723, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24589, 0, 0, 16, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23713, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24579, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23713, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24579, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3249,27 +3249,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 10: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23697, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24563, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23717, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24583, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23702, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24568, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23702, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24568, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23707, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24573, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23722, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24588, 0, 0, 16, 16, 0, height, 16, 16, height + 29); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23712, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24578, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23712, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24578, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3284,27 +3284,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 12: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23696, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24562, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23716, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24582, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23696, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24562, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23716, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24582, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23701, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24567, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23701, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24567, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23706, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24572, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23721, 0, 0, 32, 16, 0, height, 0, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24587, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23706, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24572, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23721, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24587, 0, 0, 32, 16, 0, height, 0, 0, height + 33); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23711, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24577, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23711, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24577, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3314,27 +3314,27 @@ static void wooden_rc_track_left_half_banked_helix_up_large(uint8 rideIndex, uin case 13: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23695, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24561, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23715, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24581, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23695, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24561, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23715, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24581, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23700, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24566, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23700, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24566, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23705, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24571, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23720, 0, 0, 32, 27, 0, height, 0, 2, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24586, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23705, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24571, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23720, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24586, 0, 0, 32, 27, 0, height, 0, 2, height + 33); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23710, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24576, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23710, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24576, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3354,27 +3354,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23665, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24531, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23685, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24551, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23665, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24531, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23685, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24551, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23670, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24536, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23670, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24536, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23675, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24541, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23690, 0, 0, 32, 27, 0, height, 0, 2, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24556, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23675, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24541, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23690, 0, 0, 32, 27, 0, height, 0, 2, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24556, 0, 0, 32, 27, 0, height, 0, 2, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23680, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24546, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23680, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24546, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3392,27 +3392,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23666, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24532, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23686, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24552, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23666, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24532, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23686, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24552, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23671, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24537, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23671, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24537, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23676, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24542, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23691, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24557, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23676, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24542, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23691, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24557, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23681, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24547, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23681, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24547, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3422,27 +3422,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23672, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24538, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23672, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24538, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23682, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24548, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23682, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24548, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3457,27 +3457,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23668, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24534, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23688, 0, 0, 16, 32, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24554, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23668, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24534, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23688, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24554, 0, 0, 16, 32, 0, height, 16, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23673, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24539, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23673, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24539, 0, 0, 16, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23678, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24544, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23693, 0, 0, 16, 32, 0, height, 0, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24559, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23678, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24544, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23693, 0, 0, 16, 32, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24559, 0, 0, 16, 32, 0, height, 0, 0, height + 33); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23683, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24549, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23683, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24549, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3487,27 +3487,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23669, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24535, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23689, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24555, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23669, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24535, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23689, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24555, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23674, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24540, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23674, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24540, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23679, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24545, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23694, 0, 0, 27, 32, 0, height, 2, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24560, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23679, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24545, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23694, 0, 0, 27, 32, 0, height, 2, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24560, 0, 0, 27, 32, 0, height, 2, 0, height + 33); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23684, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24550, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23684, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24550, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3526,27 +3526,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 7: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23670, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24536, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23670, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24536, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23675, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24541, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23690, 0, 0, 27, 32, 0, height, 2, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24556, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23675, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24541, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23690, 0, 0, 27, 32, 0, height, 2, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24556, 0, 0, 27, 32, 0, height, 2, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23680, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24546, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23680, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24546, 0, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23665, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24531, 0, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23685, 0, 0, 20, 32, 0, height, 6, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24551, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23665, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24531, 0, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23685, 0, 0, 20, 32, 0, height, 6, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24551, 0, 0, 20, 32, 0, height, 6, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3569,27 +3569,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 9: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23671, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24537, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23671, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24537, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23676, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24542, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23691, 0, 0, 16, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24557, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23676, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24542, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23691, 0, 0, 16, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24557, 0, 0, 16, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23681, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24547, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23681, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24547, 0, 0, 16, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23666, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24532, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23686, 0, 0, 16, 32, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24552, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23666, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24532, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23686, 0, 0, 16, 32, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24552, 0, 0, 16, 32, 0, height, 16, 0, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3599,27 +3599,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 10: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23672, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24538, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23672, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24538, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23677, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24543, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23692, 0, 0, 16, 16, 0, height, 16, 16, height + 29); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24558, 0, 0, 16, 16, 0, height, 16, 16, height + 29); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23682, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24548, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23682, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24548, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23667, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24533, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23687, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24553, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3634,27 +3634,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 12: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23673, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24539, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23673, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24539, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23678, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24544, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23693, 0, 0, 32, 16, 0, height, 0, 0, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24559, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23678, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24544, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23693, 0, 0, 32, 16, 0, height, 0, 0, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24559, 0, 0, 32, 16, 0, height, 0, 0, height + 33); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23683, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24549, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23683, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24549, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23668, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24534, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 23688, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24554, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23668, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24534, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23688, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24554, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3664,27 +3664,27 @@ static void wooden_rc_track_right_half_banked_helix_up_large(uint8 rideIndex, ui case 13: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23674, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24540, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23674, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24540, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23679, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24545, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 23694, 0, 0, 32, 27, 0, height, 0, 2, height + 33); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24560, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23679, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24545, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23694, 0, 0, 32, 27, 0, height, 0, 2, height + 33); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24560, 0, 0, 32, 27, 0, height, 0, 2, height + 33); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23684, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24550, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23684, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24550, 0, 0, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23669, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24535, 0, 0, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23689, 0, 0, 32, 20, 0, height, 0, 6, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24555, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23669, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24535, 0, 0, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23689, 0, 0, 32, 20, 0, height, 0, 6, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24555, 0, 0, 32, 20, 0, height, 0, 6, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3722,28 +3722,28 @@ static void wooden_rc_track_left_quarter_turn_1_60_deg_up(uint8 rideIndex, uint8 { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24209, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25075, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24217, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25083, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24209, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25075, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24217, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25083, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24210, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25076, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24218, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25084, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24210, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25076, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24218, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25084, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24211, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25077, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24219, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25085, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24211, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25077, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24219, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25085, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24212, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25078, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24220, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25086, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24212, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25078, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24220, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25086, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; } switch (direction) { @@ -3766,28 +3766,28 @@ static void wooden_rc_track_right_quarter_turn_1_60_deg_up(uint8 rideIndex, uint { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24213, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25079, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24221, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25087, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24213, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25079, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24221, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25087, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24214, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25080, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24222, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25088, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24214, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25080, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24222, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25088, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24215, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25081, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24223, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25089, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24215, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25081, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24223, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25089, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24216, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25082, 0, 0, 28, 28, 3, height, 2, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24224, 0, 0, 28, 28, 1, height, 2, 2, height + 99); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25090, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24216, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25082, 0, 0, 28, 28, 3, height, 2, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24224, 0, 0, 28, 28, 1, height, 2, 2, height + 99); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25090, 0, 0, 28, 28, 1, height, 2, 2, height + 99); break; } switch (direction) { @@ -3836,27 +3836,27 @@ static void wooden_rc_track_25_deg_up_left_banked(uint8 rideIndex, uint8 trackSe { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24249, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25115, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24249, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25115, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24250, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25116, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24257, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25123, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24250, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25116, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24257, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25123, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24251, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25117, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24258, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25124, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24251, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25117, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24258, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25124, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24252, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25118, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24252, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25118, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3873,27 +3873,27 @@ static void wooden_rc_track_25_deg_up_right_banked(uint8 rideIndex, uint8 trackS { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24253, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25119, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24253, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25119, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24254, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25120, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24259, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25125, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24254, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25120, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24259, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25125, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24255, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25121, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24260, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25126, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24255, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25121, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24260, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25126, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24256, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25122, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24256, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25122, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -3910,20 +3910,20 @@ static void wooden_rc_track_on_ride_photo(uint8 rideIndex, uint8 trackSequence, { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23753, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24619, 0, 2, 32, 25, 2, height, 0, 3, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23754, 0, 2, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24620, 0, 2, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -3949,44 +3949,44 @@ static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, u case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23997, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24863, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23998, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24864, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23995, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24861, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23996, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24862, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -3997,44 +3997,44 @@ static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, u case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23985, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24851, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23986, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24852, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23983, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24849, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23984, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24850, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -4045,25 +4045,25 @@ static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, u switch (direction) { case 0: case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23999, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24865, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23999, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24865, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24003, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24869, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 24001, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24867, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 24001, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24867, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 1: case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24000, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24866, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24000, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24866, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24004, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24870, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 24002, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24868, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 24002, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24868, 0, 0, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -4073,44 +4073,44 @@ static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, u case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23975, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24841, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23983, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24849, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23979, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24845, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23976, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24842, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23984, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24850, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23980, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24846, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23977, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24843, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23985, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24851, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23981, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24847, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23978, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24844, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23986, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24852, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23982, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24848, 0, 0, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -4120,44 +4120,44 @@ static void wooden_rc_track_water_splash(uint8 rideIndex, uint8 trackSequence, u case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23987, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24853, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23995, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24861, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23991, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24857, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23988, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24854, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23996, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24862, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23992, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24858, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23989, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24855, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23997, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24863, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23993, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24859, 0, 0, 32, 25, 2, height, 0, 3, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23990, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24856, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, 0x61000000 | 5048, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, 0x00000000 | 5053, 0, 0, 32, 25, 2, height + 16, 0, 3, height + 16); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 23998, 0, 0, 32, 25, 2, height, 0, 3, height); sub_98199C_rotated(direction, gTrackColours[SCHEME_SUPPORTS] | 24864, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, 0xAA380000 | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_track_colour() | 23994, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24860, 0, 0, 32, 25, 2, height, 0, 3, height); break; } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -4174,27 +4174,27 @@ static void wooden_rc_track_left_eighth_to_diag(uint8 rideIndex, uint8 trackSequ case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24137, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25003, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24137, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25003, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24141, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25007, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24153, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25019, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24141, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25007, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24153, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25019, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24145, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25011, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24145, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25011, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24149, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25015, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24157, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25023, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24149, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25015, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24157, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25023, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4207,27 +4207,27 @@ static void wooden_rc_track_left_eighth_to_diag(uint8 rideIndex, uint8 trackSequ case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24138, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25004, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24138, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25004, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24142, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25008, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24154, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25020, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24142, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25008, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24154, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25020, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24146, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25012, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24146, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25012, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24150, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25016, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24158, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25024, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24150, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25016, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24158, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25024, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4237,27 +4237,27 @@ static void wooden_rc_track_left_eighth_to_diag(uint8 rideIndex, uint8 trackSequ case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24139, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25005, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24139, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25005, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24143, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25009, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24155, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25021, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24143, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25009, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24155, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25021, 0, 0, 16, 16, 0, height, 16, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24147, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25013, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24147, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25013, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24151, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25017, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24159, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25025, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24151, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25017, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24159, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25025, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4285,24 +4285,24 @@ static void wooden_rc_track_left_eighth_to_diag(uint8 rideIndex, uint8 trackSequ case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24140, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25006, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24140, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25006, 0, 0, 16, 16, 2, height, 16, 16, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24144, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25010, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24156, 0, 0, 16, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25022, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24144, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25010, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24156, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25022, 0, 0, 16, 16, 0, height, 0, 16, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24148, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25014, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24148, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25014, 0, 0, 16, 16, 2, height, 0, 0, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24152, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25018, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24160, 0, 0, 16, 16, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25026, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24152, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25018, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24160, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25026, 0, 0, 16, 16, 0, height, 16, 0, height + 27); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -4317,27 +4317,27 @@ static void wooden_rc_track_right_eighth_to_diag(uint8 rideIndex, uint8 trackSeq case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24113, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24979, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24129, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24995, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24113, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24979, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24129, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24995, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24117, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24983, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24117, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24983, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24121, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24987, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24133, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24999, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24121, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24987, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24133, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24999, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24125, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24991, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24125, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24991, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4350,27 +4350,27 @@ static void wooden_rc_track_right_eighth_to_diag(uint8 rideIndex, uint8 trackSeq case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24114, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24980, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24130, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24996, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24114, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24980, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24130, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24996, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24118, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24984, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24118, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24984, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24122, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24988, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24134, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25000, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24122, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24988, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24134, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25000, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24126, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24992, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24126, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24992, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4380,27 +4380,27 @@ static void wooden_rc_track_right_eighth_to_diag(uint8 rideIndex, uint8 trackSeq case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24115, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24981, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24131, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24997, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24115, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24981, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24131, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24997, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24119, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24985, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24119, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24985, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24123, 0, 0, 28, 28, 2, height, 4, 4, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24989, 0, 0, 28, 28, 2, height, 4, 4, height); - sub_98197C_rotated(direction, 0xAA380000 | 24135, 0, 0, 28, 28, 0, height, 4, 4, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25001, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24123, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24989, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24135, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25001, 0, 0, 28, 28, 0, height, 4, 4, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24127, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24993, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24127, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24993, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4428,24 +4428,24 @@ static void wooden_rc_track_right_eighth_to_diag(uint8 rideIndex, uint8 trackSeq case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24116, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24982, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24132, 0, 0, 16, 16, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24998, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24116, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24982, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24132, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24998, 0, 0, 16, 16, 0, height, 16, 0, height + 27); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24120, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24986, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24120, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24986, 0, 0, 16, 16, 2, height, 0, 0, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24124, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24990, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24136, 0, 0, 16, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25002, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24124, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24990, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24136, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25002, 0, 0, 16, 16, 0, height, 0, 16, height + 27); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24128, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24994, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24128, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24994, 0, 0, 16, 16, 2, height, 16, 16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -4472,27 +4472,27 @@ static void wooden_rc_track_left_eighth_bank_to_diag(uint8 rideIndex, uint8 trac case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24185, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25051, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24185, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25051, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24189, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25055, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24201, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25067, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24189, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25055, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24201, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25067, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24193, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25059, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24193, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25059, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24197, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25063, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24205, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25071, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24197, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25063, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24205, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25071, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4505,27 +4505,27 @@ static void wooden_rc_track_left_eighth_bank_to_diag(uint8 rideIndex, uint8 trac case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24186, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25052, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24186, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25052, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24190, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25056, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24202, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25068, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24190, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25056, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24202, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25068, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24194, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25060, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24194, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25060, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24198, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25064, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24206, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25072, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24198, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25064, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24206, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25072, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4535,27 +4535,27 @@ static void wooden_rc_track_left_eighth_bank_to_diag(uint8 rideIndex, uint8 trac case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24187, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25053, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24187, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25053, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24191, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25057, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24203, 0, 0, 16, 16, 0, height, 16, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25069, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24191, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25057, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24203, 0, 0, 16, 16, 0, height, 16, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25069, 0, 0, 16, 16, 0, height, 16, 16, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24195, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25061, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24195, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25061, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24199, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25065, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24207, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25073, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24199, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25065, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24207, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25073, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4583,24 +4583,24 @@ static void wooden_rc_track_left_eighth_bank_to_diag(uint8 rideIndex, uint8 trac case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24188, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25054, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24188, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25054, 0, 0, 16, 16, 2, height, 16, 16, height); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24192, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25058, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24204, 0, 0, 16, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25070, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24192, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25058, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24204, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25070, 0, 0, 16, 16, 0, height, 0, 16, height + 27); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24196, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25062, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24196, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25062, 0, 0, 16, 16, 2, height, 0, 0, height); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24200, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25066, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24208, 0, 0, 16, 16, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25074, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24200, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25066, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24208, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25074, 0, 0, 16, 16, 0, height, 16, 0, height + 27); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -4615,27 +4615,27 @@ static void wooden_rc_track_right_eighth_bank_to_diag(uint8 rideIndex, uint8 tra case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24161, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25027, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24177, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25043, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24161, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25027, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24177, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25043, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24165, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25031, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24165, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25031, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24169, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25035, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24181, 0, 0, 32, 32, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25047, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24169, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25035, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24181, 0, 0, 32, 32, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25047, 0, 0, 32, 32, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24173, 0, 0, 32, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25039, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24173, 0, 0, 32, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25039, 0, 0, 32, 32, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4648,27 +4648,27 @@ static void wooden_rc_track_right_eighth_bank_to_diag(uint8 rideIndex, uint8 tra case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24162, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25028, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24178, 0, 0, 32, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25044, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24162, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25028, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24178, 0, 0, 32, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25044, 0, 0, 32, 16, 0, height, 0, 16, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24166, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25032, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24166, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25032, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24170, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25036, 0, 0, 34, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24182, 0, 0, 32, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25048, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24170, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25036, 0, 0, 34, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24182, 0, 0, 32, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25048, 0, 0, 32, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(0, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24174, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25040, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24174, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25040, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4678,27 +4678,27 @@ static void wooden_rc_track_right_eighth_bank_to_diag(uint8 rideIndex, uint8 tra case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24163, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25029, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24179, 0, 0, 16, 16, 0, height, 0, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25045, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24163, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25029, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24179, 0, 0, 16, 16, 0, height, 0, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25045, 0, 0, 16, 16, 0, height, 0, 0, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24167, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25033, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24167, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25033, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24171, 0, 0, 28, 28, 2, height, 4, 4, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25037, 0, 0, 28, 28, 2, height, 4, 4, height); - sub_98197C_rotated(direction, 0xAA380000 | 24183, 0, 0, 28, 28, 0, height, 4, 4, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25049, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24171, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25037, 0, 0, 28, 28, 2, height, 4, 4, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24183, 0, 0, 28, 28, 0, height, 4, 4, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25049, 0, 0, 28, 28, 0, height, 4, 4, height + 27); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24175, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25041, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24175, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25041, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -4726,24 +4726,24 @@ static void wooden_rc_track_right_eighth_bank_to_diag(uint8 rideIndex, uint8 tra case 4: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24164, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25030, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24180, 0, 0, 16, 16, 0, height, 16, 0, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25046, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24164, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25030, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24180, 0, 0, 16, 16, 0, height, 16, 0, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25046, 0, 0, 16, 16, 0, height, 16, 0, height + 27); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24168, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25034, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24168, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25034, 0, 0, 16, 16, 2, height, 0, 0, height); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24172, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25038, 0, 0, 16, 18, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24184, 0, 0, 16, 16, 0, height, 0, 16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25050, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24172, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25038, 0, 0, 16, 18, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24184, 0, 0, 16, 16, 0, height, 0, 16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25050, 0, 0, 16, 16, 0, height, 0, 16, height + 27); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24176, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25042, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24176, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25042, 0, 0, 16, 16, 2, height, 16, 16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -4771,15 +4771,15 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24050, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24916, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24050, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24916, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24008, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24874, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24008, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24874, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -4790,10 +4790,10 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24047, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24913, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24051, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24917, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24047, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24913, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24051, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24917, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -4809,10 +4809,10 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24005, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24871, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24009, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24875, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24005, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24871, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24009, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24875, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -4839,10 +4839,10 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24049, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24915, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24052, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24918, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24049, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24915, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24052, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24918, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -4858,10 +4858,10 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24007, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24873, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24010, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24876, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24007, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24873, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24010, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24876, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -4876,15 +4876,15 @@ static void wooden_rc_track_diag_flat(uint8 rideIndex, uint8 trackSequence, uint if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24048, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24914, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24048, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24914, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24006, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24872, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24006, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24872, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -4901,15 +4901,15 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -4920,10 +4920,10 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -4939,10 +4939,10 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -4969,10 +4969,10 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -4988,10 +4988,10 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5006,15 +5006,15 @@ static void wooden_rc_track_diag_25_deg_up(uint8 rideIndex, uint8 trackSequence, if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5030,8 +5030,8 @@ static void wooden_rc_track_diag_60_deg_up(uint8 rideIndex, uint8 trackSequence, case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5040,10 +5040,10 @@ static void wooden_rc_track_diag_60_deg_up(uint8 rideIndex, uint8 trackSequence, case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5068,10 +5068,10 @@ static void wooden_rc_track_diag_60_deg_up(uint8 rideIndex, uint8 trackSequence, wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5084,8 +5084,8 @@ static void wooden_rc_track_diag_60_deg_up(uint8 rideIndex, uint8 trackSequence, case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5101,15 +5101,15 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5120,10 +5120,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5139,10 +5139,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5169,10 +5169,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5188,10 +5188,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5206,15 +5206,15 @@ static void wooden_rc_track_diag_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5230,8 +5230,8 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 t case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5240,10 +5240,10 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 t case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5268,10 +5268,10 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 t wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5284,8 +5284,8 @@ static void wooden_rc_track_diag_25_deg_up_to_60_deg_up(uint8 rideIndex, uint8 t case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5300,8 +5300,8 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 t case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5310,10 +5310,10 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 t case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5338,10 +5338,10 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 t wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5354,8 +5354,8 @@ static void wooden_rc_track_diag_60_deg_up_to_25_deg_up(uint8 rideIndex, uint8 t case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5371,15 +5371,15 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5390,10 +5390,10 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5409,10 +5409,10 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5439,10 +5439,10 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5458,10 +5458,10 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5476,15 +5476,15 @@ static void wooden_rc_track_diag_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5501,15 +5501,15 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24066, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24932, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24024, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24890, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5520,10 +5520,10 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24067, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24933, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24070, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24936, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5539,10 +5539,10 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24025, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24891, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24028, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24894, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5569,10 +5569,10 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24065, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24931, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24069, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24935, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5588,10 +5588,10 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24023, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24889, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24027, -16, -16, 32, 32, 0, height, -16, -16, height + 43); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24893, -16, -16, 32, 32, 0, height, -16, -16, height + 43); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5606,15 +5606,15 @@ static void wooden_rc_track_diag_25_deg_down(uint8 rideIndex, uint8 trackSequenc if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24068, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24934, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24026, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24892, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5630,8 +5630,8 @@ static void wooden_rc_track_diag_60_deg_down(uint8 rideIndex, uint8 trackSequenc case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24042, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24908, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5640,10 +5640,10 @@ static void wooden_rc_track_diag_60_deg_down(uint8 rideIndex, uint8 trackSequenc case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24043, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24909, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24046, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24912, -16, -16, 32, 32, 0, height, -16, -16, height + 91); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5668,10 +5668,10 @@ static void wooden_rc_track_diag_60_deg_down(uint8 rideIndex, uint8 trackSequenc wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24041, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24907, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24045, -16, -16, 32, 32, 0, height, -16, -16, height + 91); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24911, -16, -16, 32, 32, 0, height, -16, -16, height + 91); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5684,8 +5684,8 @@ static void wooden_rc_track_diag_60_deg_down(uint8 rideIndex, uint8 trackSequenc case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24044, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24910, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5701,15 +5701,15 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24060, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24926, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24018, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24884, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5720,10 +5720,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24061, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24927, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24064, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24930, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5739,10 +5739,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24019, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24885, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24022, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24888, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5769,10 +5769,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24059, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24925, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24063, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24929, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5788,10 +5788,10 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24017, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24883, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24021, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24887, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5806,15 +5806,15 @@ static void wooden_rc_track_diag_flat_to_25_deg_down(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24062, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24928, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24020, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24886, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5830,8 +5830,8 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down(uint8 rideIndex, uin case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24036, -16, -16, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24902, -16, -16, 16, 16, 2, height, 0, 0, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5840,10 +5840,10 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down(uint8 rideIndex, uin case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24037, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24903, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24040, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24906, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5868,10 +5868,10 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down(uint8 rideIndex, uin wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24035, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24901, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24039, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24905, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5884,8 +5884,8 @@ static void wooden_rc_track_diag_25_deg_down_to_60_deg_down(uint8 rideIndex, uin case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24038, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24904, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5900,8 +5900,8 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down(uint8 rideIndex, uin case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24030, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24896, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5910,10 +5910,10 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down(uint8 rideIndex, uin case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24031, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24897, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24034, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24900, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -5938,10 +5938,10 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down(uint8 rideIndex, uin wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24029, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24895, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24033, -16, -16, 32, 32, 0, height, -16, -16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24899, -16, -16, 32, 32, 0, height, -16, -16, height + 59); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -5954,8 +5954,8 @@ static void wooden_rc_track_diag_60_deg_down_to_25_deg_down(uint8 rideIndex, uin case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24032, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24898, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -5971,15 +5971,15 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24054, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24920, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24012, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24878, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -5990,10 +5990,10 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24055, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24921, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24058, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24924, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6009,10 +6009,10 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac } else { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24013, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24879, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24016, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24882, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6039,10 +6039,10 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24053, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24919, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24057, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24923, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6058,10 +6058,10 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24011, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24877, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24015, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24881, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6076,15 +6076,15 @@ static void wooden_rc_track_diag_25_deg_down_to_flat(uint8 rideIndex, uint8 trac if (track_element_is_lift_hill(mapElement)) { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24056, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24922, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } else { switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24014, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24880, -16, -16, 32, 32, 2, height, -16, -16, height); break; } } @@ -6100,8 +6100,8 @@ static void wooden_rc_track_diag_flat_to_left_bank(uint8 rideIndex, uint8 trackS case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6110,10 +6110,10 @@ static void wooden_rc_track_diag_flat_to_left_bank(uint8 rideIndex, uint8 trackS case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6138,10 +6138,10 @@ static void wooden_rc_track_diag_flat_to_left_bank(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6154,8 +6154,8 @@ static void wooden_rc_track_diag_flat_to_left_bank(uint8 rideIndex, uint8 trackS case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6170,8 +6170,8 @@ static void wooden_rc_track_diag_flat_to_right_bank(uint8 rideIndex, uint8 track case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6180,10 +6180,10 @@ static void wooden_rc_track_diag_flat_to_right_bank(uint8 rideIndex, uint8 track case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6208,10 +6208,10 @@ static void wooden_rc_track_diag_flat_to_right_bank(uint8 rideIndex, uint8 track wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6224,8 +6224,8 @@ static void wooden_rc_track_diag_flat_to_right_bank(uint8 rideIndex, uint8 track case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6240,8 +6240,8 @@ static void wooden_rc_track_diag_left_bank_to_flat(uint8 rideIndex, uint8 trackS case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24084, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24950, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6250,10 +6250,10 @@ static void wooden_rc_track_diag_left_bank_to_flat(uint8 rideIndex, uint8 trackS case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24085, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24951, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24088, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24954, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6278,10 +6278,10 @@ static void wooden_rc_track_diag_left_bank_to_flat(uint8 rideIndex, uint8 trackS wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24083, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24949, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24087, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24953, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6294,8 +6294,8 @@ static void wooden_rc_track_diag_left_bank_to_flat(uint8 rideIndex, uint8 trackS case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24086, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24952, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6310,8 +6310,8 @@ static void wooden_rc_track_diag_right_bank_to_flat(uint8 rideIndex, uint8 track case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24078, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24944, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6320,10 +6320,10 @@ static void wooden_rc_track_diag_right_bank_to_flat(uint8 rideIndex, uint8 track case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24079, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24945, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24082, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24948, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6348,10 +6348,10 @@ static void wooden_rc_track_diag_right_bank_to_flat(uint8 rideIndex, uint8 track wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24077, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24943, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24081, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24947, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6364,8 +6364,8 @@ static void wooden_rc_track_diag_right_bank_to_flat(uint8 rideIndex, uint8 track case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24080, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24946, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6380,8 +6380,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up(uint8 rideIndex, uint8 t case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6390,10 +6390,10 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up(uint8 rideIndex, uint8 t case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6418,10 +6418,10 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up(uint8 rideIndex, uint8 t wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6434,8 +6434,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_up(uint8 rideIndex, uint8 t case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6450,8 +6450,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up(uint8 rideIndex, uint8 case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6460,10 +6460,10 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up(uint8 rideIndex, uint8 case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6488,10 +6488,10 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up(uint8 rideIndex, uint8 wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6504,8 +6504,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_up(uint8 rideIndex, uint8 case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6520,8 +6520,8 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank(uint8 rideIndex, uint8 t case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6530,10 +6530,10 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank(uint8 rideIndex, uint8 t case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6558,10 +6558,10 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank(uint8 rideIndex, uint8 t wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6574,8 +6574,8 @@ static void wooden_rc_track_diag_25_deg_up_to_left_bank(uint8 rideIndex, uint8 t case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6590,8 +6590,8 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank(uint8 rideIndex, uint8 case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6600,10 +6600,10 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank(uint8 rideIndex, uint8 case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6628,10 +6628,10 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank(uint8 rideIndex, uint8 wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6644,8 +6644,8 @@ static void wooden_rc_track_diag_25_deg_up_to_right_bank(uint8 rideIndex, uint8 case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6660,8 +6660,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down(uint8 rideIndex, uint8 case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24096, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24962, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6670,10 +6670,10 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down(uint8 rideIndex, uint8 case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24097, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24963, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24100, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24966, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6698,10 +6698,10 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down(uint8 rideIndex, uint8 wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24095, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24961, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24099, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24965, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6714,8 +6714,8 @@ static void wooden_rc_track_diag_left_bank_to_25_deg_down(uint8 rideIndex, uint8 case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24098, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24964, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6730,8 +6730,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down(uint8 rideIndex, uint case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24090, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24956, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6740,10 +6740,10 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down(uint8 rideIndex, uint case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24091, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24957, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24094, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24960, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6768,10 +6768,10 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down(uint8 rideIndex, uint wooden_a_supports_paint_setup(5, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24089, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24955, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24093, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24959, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height + 16, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6784,8 +6784,8 @@ static void wooden_rc_track_diag_right_bank_to_25_deg_down(uint8 rideIndex, uint case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24092, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24958, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6800,8 +6800,8 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank(uint8 rideIndex, uint8 case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24108, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24974, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6810,10 +6810,10 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank(uint8 rideIndex, uint8 case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24109, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24975, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24112, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24978, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6838,10 +6838,10 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank(uint8 rideIndex, uint8 wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24107, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24973, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24111, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24977, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6854,8 +6854,8 @@ static void wooden_rc_track_diag_25_deg_down_to_left_bank(uint8 rideIndex, uint8 case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24110, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24976, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6870,8 +6870,8 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank(uint8 rideIndex, uint case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24102, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24968, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6880,10 +6880,10 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank(uint8 rideIndex, uint case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24103, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24969, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24106, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24972, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6908,10 +6908,10 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank(uint8 rideIndex, uint wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24101, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24967, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24105, -16, -16, 32, 32, 0, height, -16, -16, height + 35); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24971, -16, -16, 32, 32, 0, height, -16, -16, height + 35); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6924,8 +6924,8 @@ static void wooden_rc_track_diag_25_deg_down_to_right_bank(uint8 rideIndex, uint case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24104, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24970, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6940,8 +6940,8 @@ static void wooden_rc_track_diag_left_bank(uint8 rideIndex, uint8 trackSequence, case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -6950,10 +6950,10 @@ static void wooden_rc_track_diag_left_bank(uint8 rideIndex, uint8 trackSequence, case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -6978,10 +6978,10 @@ static void wooden_rc_track_diag_left_bank(uint8 rideIndex, uint8 trackSequence, wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -6994,8 +6994,8 @@ static void wooden_rc_track_diag_left_bank(uint8 rideIndex, uint8 trackSequence, case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -7010,8 +7010,8 @@ static void wooden_rc_track_diag_right_bank(uint8 rideIndex, uint8 trackSequence case 0: switch (direction) { case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24072, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24938, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -7020,10 +7020,10 @@ static void wooden_rc_track_diag_right_bank(uint8 rideIndex, uint8 trackSequence case 1: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24073, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24939, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24076, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24942, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: @@ -7048,10 +7048,10 @@ static void wooden_rc_track_diag_right_bank(uint8 rideIndex, uint8 trackSequence wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24071, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24937, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24075, -16, -16, 32, 32, 0, height, -16, -16, height + 27); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24941, -16, -16, 32, 32, 0, height, -16, -16, height + 27); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: @@ -7064,8 +7064,8 @@ static void wooden_rc_track_diag_right_bank(uint8 rideIndex, uint8 trackSequence case 3: switch (direction) { case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24074, -16, -16, 32, 32, 2, height, -16, -16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24940, -16, -16, 32, 32, 2, height, -16, -16, height); break; } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); @@ -7080,27 +7080,27 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up(uint8 rid case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23958, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24824, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23958, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24824, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23960, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24826, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23971, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24837, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23960, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24826, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23971, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24837, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23962, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24828, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23962, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24828, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23956, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24822, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23969, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24835, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23956, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24822, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23969, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24835, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7120,29 +7120,29 @@ static void wooden_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up(uint8 rid case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23957, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24823, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23957, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24823, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23959, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24825, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23970, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24836, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23959, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24825, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23970, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24836, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23961, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24827, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23972, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24838, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23961, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24827, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23972, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24838, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23955, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24821, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23968, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24834, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23955, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24821, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23968, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24834, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7166,27 +7166,27 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up(uint8 r case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23947, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24813, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23963, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24829, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23947, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24813, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23963, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24829, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23949, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24815, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23949, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24815, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23951, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24817, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23966, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24832, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23951, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24817, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23966, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24832, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23953, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24819, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23953, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24819, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7206,29 +7206,29 @@ static void wooden_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up(uint8 r case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23948, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24814, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23964, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24830, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23948, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24814, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23964, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24830, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23950, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24816, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23965, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24831, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23950, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24816, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23965, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24831, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23952, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24818, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23967, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24833, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23952, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24818, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23967, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24833, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23954, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24820, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23954, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24820, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7252,29 +7252,29 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank(uint8 r case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23950, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24816, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23965, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24831, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23950, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24816, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23965, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24831, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23952, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24818, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23967, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24833, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23952, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24818, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23967, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24833, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23954, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24820, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23954, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24820, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23948, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24814, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23964, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24830, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23948, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24814, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23964, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24830, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7294,27 +7294,27 @@ static void wooden_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank(uint8 r case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23949, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24815, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23949, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24815, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23951, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24817, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23966, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24832, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23951, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24817, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23966, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24832, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23953, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24819, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23953, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24819, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23947, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24813, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23963, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24829, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23947, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24813, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23963, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24829, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7338,29 +7338,29 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank(uint8 case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23955, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24821, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23968, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24834, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23955, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24821, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23968, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24834, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23957, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24823, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23957, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24823, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23959, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24825, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23970, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24836, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23959, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24825, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23970, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24836, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23961, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24827, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23972, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24838, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23961, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24827, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23972, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24838, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7380,27 +7380,27 @@ static void wooden_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank(uint8 case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23956, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24822, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23969, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24835, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23956, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24822, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23969, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24835, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23958, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24824, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23958, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24824, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23960, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24826, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23971, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24837, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23960, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24826, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23971, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24837, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23962, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24828, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23962, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24828, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7435,27 +7435,27 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up(uint8 rideIndex case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23932, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24798, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23932, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24798, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23934, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24800, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23945, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24811, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23934, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24800, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23945, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24811, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23936, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24802, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23936, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24802, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23930, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24796, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23943, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24809, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23930, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24796, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23943, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24809, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7475,29 +7475,29 @@ static void wooden_rc_track_left_banked_quarter_turn_3_25_deg_up(uint8 rideIndex case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23931, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24797, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23931, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24797, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23933, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24799, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23944, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24810, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23933, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24799, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23944, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24810, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23935, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24801, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23946, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24812, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23935, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24801, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23946, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24812, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23929, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24795, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23942, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24808, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23929, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24795, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23942, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24808, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7521,27 +7521,27 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up(uint8 rideInde case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23921, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24787, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23937, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24803, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23921, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24787, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23937, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24803, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23923, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24789, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23923, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24789, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23925, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24791, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98197C_rotated(direction, 0xAA380000 | 23940, 0, 6, 32, 20, 0, height, 0, 6, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24806, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23925, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24791, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23940, 0, 6, 32, 20, 0, height, 0, 6, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24806, 0, 6, 32, 20, 0, height, 0, 6, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23927, 0, 6, 32, 20, 2, height, 0, 6, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24793, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23927, 0, 6, 32, 20, 2, height, 0, 6, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24793, 0, 6, 32, 20, 2, height, 0, 6, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7561,29 +7561,29 @@ static void wooden_rc_track_right_banked_quarter_turn_3_25_deg_up(uint8 rideInde case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 23922, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24788, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23938, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24804, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23922, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24788, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23938, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24804, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 23924, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24790, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23939, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24805, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23924, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24790, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23939, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24805, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 23926, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24792, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 23941, 6, 0, 20, 32, 0, height, 6, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24807, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23926, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24792, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23941, 6, 0, 20, 32, 0, height, 6, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24807, 6, 0, 20, 32, 0, height, 6, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 23928, 6, 0, 20, 32, 2, height, 6, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 24794, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 23928, 6, 0, 20, 32, 2, height, 6, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 24794, 6, 0, 20, 32, 2, height, 6, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7619,25 +7619,25 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24321, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25187, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24321, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25187, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24326, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25192, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24352, 0, 0, 32, 27, 0, height, 0, 2, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25218, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24326, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25192, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24352, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25218, 0, 0, 32, 27, 0, height, 0, 2, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24331, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25197, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24331, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25197, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24336, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25202, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24336, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25202, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7654,27 +7654,27 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24322, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25188, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24322, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25188, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24327, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25193, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24353, 0, 0, 32, 16, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25219, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24327, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25193, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24353, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25219, 0, 0, 32, 16, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24332, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25198, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24332, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25198, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24337, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25203, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24359, 0, 0, 32, 16, 0, height, 0, 16, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25225, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24337, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25203, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24359, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25225, 0, 0, 32, 16, 0, height, 0, 16, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7684,27 +7684,27 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24323, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25189, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24323, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25189, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24328, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25194, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24354, 0, 0, 16, 16, 0, height, 16, 16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25220, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24328, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25194, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24354, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25220, 0, 0, 16, 16, 0, height, 16, 16, height + 59); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24333, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25199, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24333, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25199, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24338, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25204, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24360, 0, 0, 16, 16, 0, height, 0, 0, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25226, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24338, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25204, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24360, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25226, 0, 0, 16, 16, 0, height, 0, 0, height + 59); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7718,29 +7718,29 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24324, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25190, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24324, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25190, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24329, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25195, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24355, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25221, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24329, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25195, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24355, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25221, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24334, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25200, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24357, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25223, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24334, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25200, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24357, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25223, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24339, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25205, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24361, 0, 0, 16, 32, 0, height, 16, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25227, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24339, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25205, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24361, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25227, 0, 0, 16, 32, 0, height, 16, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7750,29 +7750,29 @@ static void wooden_rc_track_left_banked_quarter_turn_5_25_deg_up(uint8 rideIndex case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24325, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25191, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24325, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25191, 0, 0, 27, 32, 2, height, 2, 0, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24330, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25196, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24356, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25222, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24330, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25196, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24356, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25222, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24335, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25201, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24358, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25224, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24335, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25201, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24358, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25224, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24340, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25206, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24362, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25228, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24340, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25206, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24362, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25228, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7796,25 +7796,25 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideInde case 0: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24301, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25167, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24301, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25167, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24306, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25172, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24306, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25172, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24311, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25177, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98197C_rotated(direction, 0xAA380000 | 24347, 0, 0, 32, 27, 0, height, 0, 2, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25213, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24311, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25177, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24347, 0, 0, 32, 27, 0, height, 0, 2, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25213, 0, 0, 32, 27, 0, height, 0, 2, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24316, 0, 0, 32, 27, 2, height, 0, 2, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25182, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24316, 0, 0, 32, 27, 2, height, 0, 2, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25182, 0, 0, 32, 27, 2, height, 0, 2, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7831,27 +7831,27 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideInde case 2: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24302, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25168, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24341, 0, 0, 32, 16, 0, height, 0, 16, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25207, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24302, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25168, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24341, 0, 0, 32, 16, 0, height, 0, 16, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25207, 0, 0, 32, 16, 0, height, 0, 16, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24307, 0, 0, 32, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25173, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24307, 0, 0, 32, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25173, 0, 0, 32, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24312, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25178, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24348, 0, 0, 32, 16, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25214, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24312, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25178, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24348, 0, 0, 32, 16, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25214, 0, 0, 32, 16, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24317, 0, 0, 32, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25183, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24317, 0, 0, 32, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25183, 0, 0, 32, 16, 2, height, 0, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7861,27 +7861,27 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideInde case 3: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24303, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25169, 0, 0, 16, 16, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24342, 0, 0, 16, 16, 0, height, 0, 0, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25208, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24303, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25169, 0, 0, 16, 16, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24342, 0, 0, 16, 16, 0, height, 0, 0, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25208, 0, 0, 16, 16, 0, height, 0, 0, height + 59); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24308, 0, 0, 16, 16, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25174, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24308, 0, 0, 16, 16, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25174, 0, 0, 16, 16, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24313, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25179, 0, 0, 16, 16, 2, height, 16, 16, height); - sub_98197C_rotated(direction, 0xAA380000 | 24349, 0, 0, 16, 16, 0, height, 16, 16, height + 59); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25215, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24313, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25179, 0, 0, 16, 16, 2, height, 16, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24349, 0, 0, 16, 16, 0, height, 16, 16, height + 59); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25215, 0, 0, 16, 16, 0, height, 16, 16, height + 59); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24318, 0, 0, 16, 16, 2, height, 0, 16, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25184, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24318, 0, 0, 16, 16, 2, height, 0, 16, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25184, 0, 0, 16, 16, 2, height, 0, 16, height); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7895,29 +7895,29 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideInde case 5: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24304, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25170, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24343, 0, 0, 16, 32, 0, height, 16, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25209, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24304, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25170, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24343, 0, 0, 16, 32, 0, height, 16, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25209, 0, 0, 16, 32, 0, height, 16, 0, height + 67); wooden_a_supports_paint_setup(4, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24309, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25175, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24345, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25211, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24309, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25175, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24345, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25211, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(5, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24314, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25180, 0, 0, 16, 32, 2, height, 0, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24350, 0, 0, 16, 32, 0, height, 0, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25216, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24314, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25180, 0, 0, 16, 32, 2, height, 0, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24350, 0, 0, 16, 32, 0, height, 0, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25216, 0, 0, 16, 32, 0, height, 0, 0, height + 67); wooden_a_supports_paint_setup(2, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24319, 0, 0, 16, 32, 2, height, 16, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25185, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24319, 0, 0, 16, 32, 2, height, 16, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25185, 0, 0, 16, 32, 2, height, 16, 0, height); wooden_a_supports_paint_setup(3, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7927,29 +7927,29 @@ static void wooden_rc_track_right_banked_quarter_turn_5_25_deg_up(uint8 rideInde case 6: switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24305, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25171, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24344, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25210, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24305, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25171, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24344, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25210, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24310, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25176, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24346, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25212, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24310, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25176, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24346, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25212, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24315, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25181, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98197C_rotated(direction, 0xAA380000 | 24351, 0, 0, 27, 32, 0, height, 2, 0, height + 67); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25217, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24315, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25181, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24351, 0, 0, 27, 32, 0, height, 2, 0, height + 67); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25217, 0, 0, 27, 32, 0, height, 2, 0, height + 67); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24320, 0, 0, 27, 32, 2, height, 2, 0, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25186, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24320, 0, 0, 27, 32, 2, height, 2, 0, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25186, 0, 0, 27, 32, 2, height, 2, 0, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -7983,23 +7983,23 @@ static void wooden_rc_track_25_deg_up_to_left_banked_25_deg_up(uint8 rideIndex, { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24261, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25127, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24261, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25127, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24262, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25128, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24262, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25128, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24263, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25129, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24263, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25129, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24264, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25130, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24264, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25130, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8016,23 +8016,23 @@ static void wooden_rc_track_25_deg_up_to_right_banked_25_deg_up(uint8 rideIndex, { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24265, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25131, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24265, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25131, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24266, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25132, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24266, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25132, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24267, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25133, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24267, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25133, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24268, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25134, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24268, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25134, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8049,23 +8049,23 @@ static void wooden_rc_track_left_banked_25_deg_up_to_25_deg_up(uint8 rideIndex, { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24269, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25135, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24269, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25135, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24270, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25136, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24270, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25136, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24271, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25137, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24271, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25137, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24272, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25138, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24272, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25138, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8082,23 +8082,23 @@ static void wooden_rc_track_right_banked_25_deg_up_to_25_deg_up(uint8 rideIndex, { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24273, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25139, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24273, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25139, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 9, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24274, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25140, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24274, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25140, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 10, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24275, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25141, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24275, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25141, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 11, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24276, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25142, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24276, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25142, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 12, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8135,27 +8135,27 @@ static void wooden_rc_track_left_banked_flat_to_left_banked_25_deg_up(uint8 ride { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24277, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25143, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24277, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25143, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24278, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25144, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24293, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25159, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24278, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25144, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24293, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25159, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24279, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25145, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24294, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25160, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24279, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25145, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24294, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25160, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24280, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25146, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24280, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25146, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8172,27 +8172,27 @@ static void wooden_rc_track_right_banked_flat_to_right_banked_25_deg_up(uint8 ri { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24281, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25147, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24281, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25147, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24282, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25148, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24295, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25161, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24282, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25148, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24295, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25161, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24283, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25149, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24296, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25162, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24283, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25149, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24296, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25162, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24284, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25150, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24284, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25150, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8209,27 +8209,27 @@ static void wooden_rc_track_left_banked_25_deg_up_to_left_banked_flat(uint8 ride { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24285, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25151, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24285, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25151, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24286, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25152, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24297, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25163, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24286, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25152, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24297, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25163, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24287, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25153, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24298, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25164, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24287, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25153, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24298, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25164, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24288, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25154, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24288, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25154, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8246,27 +8246,27 @@ static void wooden_rc_track_right_banked_25_deg_up_to_right_banked_flat(uint8 ri { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24289, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25155, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24289, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25155, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24290, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25156, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24299, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25165, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24290, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25156, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24299, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25165, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24291, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25157, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24300, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25166, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24291, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25157, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24300, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25166, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24292, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25158, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24292, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25158, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8303,27 +8303,27 @@ static void wooden_rc_track_flat_to_left_banked_25_deg_up(uint8 rideIndex, uint8 { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24225, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25091, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24225, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25091, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24226, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25092, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24241, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25107, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24226, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25092, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24241, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25107, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24227, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25093, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24242, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25108, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24227, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25093, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24242, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25108, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24228, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25094, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24228, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25094, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8340,27 +8340,27 @@ static void wooden_rc_track_flat_to_right_banked_25_deg_up(uint8 rideIndex, uint { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24229, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25095, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24229, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25095, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 1, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24230, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25096, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24243, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25109, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24230, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25096, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24243, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25109, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 2, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24231, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25097, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24244, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25110, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24231, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25097, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24244, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25110, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 3, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24232, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25098, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24232, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25098, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 4, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8377,27 +8377,27 @@ static void wooden_rc_track_left_banked_25_deg_up_to_flat(uint8 rideIndex, uint8 { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24233, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25099, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24233, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25099, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24234, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25100, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24245, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25111, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24234, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25100, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24245, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25111, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24235, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25101, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24246, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25112, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24235, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25101, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24246, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25112, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24236, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25102, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24236, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25102, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } @@ -8414,27 +8414,27 @@ static void wooden_rc_track_right_banked_25_deg_up_to_flat(uint8 rideIndex, uint { switch (direction) { case 0: - sub_98197C_rotated(direction, 0xAA380000 | 24237, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25103, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24237, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25103, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(0, 5, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 1: - sub_98197C_rotated(direction, 0xAA380000 | 24238, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25104, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24247, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25113, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24238, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25104, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24247, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25113, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(1, 6, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 2: - sub_98197C_rotated(direction, 0xAA380000 | 24239, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25105, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98197C_rotated(direction, 0xAA380000 | 24248, 0, 0, 32, 1, 9, height, 0, 26, height + 5); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25114, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24239, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25105, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24248, 0, 0, 32, 1, 9, height, 0, 26, height + 5); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25114, 0, 0, 32, 1, 9, height, 0, 26, height + 5); wooden_a_supports_paint_setup(0, 7, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; case 3: - sub_98197C_rotated(direction, 0xAA380000 | 24240, 0, 0, 32, 25, 2, height, 0, 3, height); - sub_98199C_rotated(direction, gTrackColours[SCHEME_TRACK] | 25106, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98197C_rotated(direction, wooden_rc_get_track_colour() | 24240, 0, 0, 32, 25, 2, height, 0, 3, height); + sub_98199C_rotated(direction, wooden_rc_get_rails_colour() | 25106, 0, 0, 32, 25, 2, height, 0, 3, height); wooden_a_supports_paint_setup(1, 8, height, gTrackColours[SCHEME_SUPPORTS], NULL); break; } From 45e01f60f1a40c839e67af7d241f10e3bc4c0f65 Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 10 Oct 2016 18:40:34 +0100 Subject: [PATCH 14/15] Fix station --- src/ride/coaster/wooden_roller_coaster.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ride/coaster/wooden_roller_coaster.c b/src/ride/coaster/wooden_roller_coaster.c index 50b629e610..43c64602a6 100644 --- a/src/ride/coaster/wooden_roller_coaster.c +++ b/src/ride/coaster/wooden_roller_coaster.c @@ -475,7 +475,7 @@ static void wooden_rc_track_station(uint8 rideIndex, uint8 trackSequence, uint8 stationImageIds[direction][1], direction, 0, 2, 32, 27, 2, height, 0, 2, height); } wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); - track_paint_util_draw_station(rideIndex, trackSequence, direction, height + 4, mapElement); + track_paint_util_draw_station_2(rideIndex, trackSequence, direction, height, mapElement, 9, 11); paint_util_push_tunnel_rotated(direction, height, TUNNEL_6); paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); paint_util_set_general_support_height(height + 32, 0x20); From 70a1e52472e04f275d89c24311ef7d979b2cc5ba Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 10 Oct 2016 19:05:39 +0100 Subject: [PATCH 15/15] Revert openrct2.vcxproj.user --- openrct2.vcxproj.user | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openrct2.vcxproj.user b/openrct2.vcxproj.user index 92375e43c3..b782b153c4 100644 --- a/openrct2.vcxproj.user +++ b/openrct2.vcxproj.user @@ -7,7 +7,8 @@ $(TargetDir)\openrct2.exe WindowsLocalDebugger $(TargetDir) - "C:\Users\Ted\Documents\OpenRCT2\save\paint_wooden_rc.sv6" + + $(TargetDir)