diff --git a/src/paint/map_element/map_element.h b/src/paint/map_element/map_element.h index 9de31f4c24..14ac83edd0 100644 --- a/src/paint/map_element/map_element.h +++ b/src/paint/map_element/map_element.h @@ -56,6 +56,7 @@ enum TUNNEL_6 = 6, TUNNEL_7 = 7, TUNNEL_8 = 8, + TUNNEL_9 = 9, TUNNEL_10 = 0x0A, TUNNEL_11 = 0x0B, TUNNEL_12 = 0x0C, diff --git a/src/ride/coaster/junior_roller_coaster.c b/src/ride/coaster/junior_roller_coaster.c index 8861ccc6ff..d0f1adce1c 100644 --- a/src/ride/coaster/junior_roller_coaster.c +++ b/src/ride/coaster/junior_roller_coaster.c @@ -2209,12 +2209,12 @@ static void junior_rc_right_bank_to_25_deg_up_paint_setup(uint8 rideIndex, uint8 if (direction & 1) { sub_98197C(image_id, 0, 0, 20, 32, 1, height, 6, 0, height, get_current_rotation()); - paint_util_push_tunnel_right(height, 0); + paint_util_push_tunnel_right(height, TUNNEL_2); } else { sub_98197C(image_id, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); - paint_util_push_tunnel_left(height, 0); + paint_util_push_tunnel_left(height, TUNNEL_0); } if (junior_rc_track_pieces_right_banked_to_25_deg_up[direction][1] != 0) { @@ -2910,7 +2910,7 @@ static void junior_rc_right_quarter_turn_3_tiles_25_deg_down_paint_setup(uint8 r } if (direction == 3 && trackSequence == 0) { - paint_util_push_tunnel_right(height + 8, TUNNEL_1); + paint_util_push_tunnel_right(height + 8, TUNNEL_2); } uint8 supportType[2][4] = { diff --git a/src/ride/coaster/virginia_reel.c b/src/ride/coaster/virginia_reel.c index f7a110bd9e..b62288360b 100644 --- a/src/ride/coaster/virginia_reel.c +++ b/src/ride/coaster/virginia_reel.c @@ -241,10 +241,10 @@ static void paint_virginia_reel_track_flat(uint8 rideIndex, uint8 trackSequence, uint32 imageId = sprites[direction] | gTrackColours[SCHEME_TRACK]; if (direction & 1) { sub_98197C(imageId, 0, 0, 27, 32, 2, height, 2, 0, height, get_current_rotation()); - paint_util_push_tunnel_right(height, TUNNEL_0); + paint_util_push_tunnel_right(height, TUNNEL_6); } else { sub_98197C(imageId, 0, 0, 32, 27, 2, height, 0, 2, height, get_current_rotation()); - paint_util_push_tunnel_left(height, TUNNEL_0); + paint_util_push_tunnel_left(height, TUNNEL_6); } wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -336,8 +336,6 @@ static void paint_virginia_reel_track_flat_to_25_deg_up(uint8 rideIndex, uint8 t 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); } @@ -414,7 +412,7 @@ static void paint_virginia_reel_station(uint8 rideIndex, uint8 trackSequence, ui sub_98197C(imageId, 0, 0, 32, 28, 2, height - 2, 0, 2, height, get_current_rotation()); imageId = SPR_VIRGINIA_REEL_FLAT_SW_NE | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 27, 32, 2, height, 2, 0, height, get_current_rotation()); + sub_98199C(imageId, 0, 0, 32, 20, 2, height, 0, 0, height, get_current_rotation()); paint_util_push_tunnel_left(height, TUNNEL_6); } else if (direction == 1 || direction == 3) { @@ -422,7 +420,7 @@ static void paint_virginia_reel_station(uint8 rideIndex, uint8 trackSequence, ui sub_98197C(imageId, 0, 0, 28, 32, 2, height - 2, 2, 0, height, get_current_rotation()); imageId = SPR_VIRGINIA_REEL_FLAT_NW_SE | gTrackColours[SCHEME_TRACK]; - sub_98199C(imageId, 0, 0, 20, 32, 1, height, 0, 0, height, get_current_rotation()); + sub_98199C(imageId, 0, 0, 20, 32, 2, height, 0, 0, height, get_current_rotation()); paint_util_push_tunnel_right(height, TUNNEL_6); } @@ -440,7 +438,7 @@ static const uint8 virginia_reel_left_quarter_turn_supports[] = {5, 2, 3, 4}; static void paint_virginia_reel_track_left_quarter_turn_3_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { track_paint_util_left_quarter_turn_3_tiles_paint(2, height, direction, trackSequence, gTrackColours[SCHEME_TRACK], virginia_reel_track_pieces_flat_quarter_turn_3_tiles, get_current_rotation()); - track_paint_util_left_quarter_turn_3_tiles_tunnel(height - 16, direction, trackSequence); + track_paint_util_left_quarter_turn_3_tiles_tunnel(height, TUNNEL_6, direction, trackSequence); switch (trackSequence) { case 2: diff --git a/src/ride/gentle/crooked_house.c b/src/ride/gentle/crooked_house.c index 28e8910285..6b6d5195af 100644 --- a/src/ride/gentle/crooked_house.c +++ b/src/ride/gentle/crooked_house.c @@ -82,7 +82,7 @@ static void paint_crooked_house(uint8 rideIndex, uint8 trackSequence, uint8 dire switch(trackSequence) { case 3: sub_88ABA4(direction, 32, 224, 0, height); break; - case 5: sub_88ABA4(direction, 0, 224, 1, height); break; + //case 5: sub_88ABA4(direction, 0, 224, 1, height); break; case 6: sub_88ABA4(direction, 224, 32, 4, height); break; case 7: sub_88ABA4(direction, 224, 224, 2, height); break; //case 8: sub_88ABA4(rideIndex, 224, 0, 3, height); break; diff --git a/src/ride/gentle/maze.c b/src/ride/gentle/maze.c index 73211c5f62..52b05ed06e 100644 --- a/src/ride/gentle/maze.c +++ b/src/ride/gentle/maze.c @@ -59,7 +59,7 @@ static void maze_paint_setup(uint8 rideIndex, uint8 trackSequence, uint8 directi int image_id = SPR_TERRAIN_DIRT | gTrackColours[SCHEME_MISC]; sub_98196C(image_id, 0, 0, 32, 32, 0, height, rotation); - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_3], NULL); + wooden_a_supports_paint_setup((rotation & 1) ? 0 : 1, 0, height, gTrackColours[SCHEME_3], NULL); paint_util_set_segment_support_height(SEGMENTS_ALL & ~SEGMENT_C4, 0xFFFF, 0); diff --git a/src/ride/gentle/mini_golf.c b/src/ride/gentle/mini_golf.c index 52fa9c131b..5b4c0b31a1 100644 --- a/src/ride/gentle/mini_golf.c +++ b/src/ride/gentle/mini_golf.c @@ -481,13 +481,13 @@ static void paint_mini_golf_track_flat(uint8 rideIndex, uint8 trackSequence, uin if (mini_golf_paint_util_should_draw_fence(mapElement)) { if (direction & 1) { - imageId = SPR_MINI_GOLF_FLAT_FENCE_BACK_NW_SE | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_FLAT_FENCE_BACK_NW_SE | gTrackColours[SCHEME_MISC]; sub_98197C(imageId, 0, 0, 1, 32, 7, height, 10, 0, height + 2, get_current_rotation()); imageId = SPR_MINI_GOLF_FLAT_FENCE_FRONT_NW_SE | gTrackColours[SCHEME_MISC]; sub_98197C(imageId, 0, 0, 1, 32, 7, height, 22, 0, height + 2, get_current_rotation()); } else { - imageId = SPR_MINI_GOLF_FLAT_FENCE_BACK_SW_NE | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_FLAT_FENCE_BACK_SW_NE | gTrackColours[SCHEME_MISC]; sub_98197C(imageId, 0, 0, 32, 1, 7, height, 0, 10, height + 2, get_current_rotation()); imageId = SPR_MINI_GOLF_FLAT_FENCE_FRONT_SW_NE | gTrackColours[SCHEME_MISC]; @@ -509,10 +509,10 @@ static void paint_mini_golf_track_25_deg_up(uint8 rideIndex, uint8 trackSequence metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); - imageId = mini_golf_track_sprites_25_deg_up[direction][1] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_25_deg_up[direction][1] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 15, height, 0, 10, height + 2, get_current_rotation()); - imageId = mini_golf_track_sprites_25_deg_up[direction][2] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_25_deg_up[direction][2] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 15, height, 0, 22, height + 2, get_current_rotation()); switch (direction) { @@ -544,10 +544,10 @@ static void paint_mini_golf_track_flat_to_25_deg_up(uint8 rideIndex, uint8 track metal_a_supports_paint_setup(3, 4, 0, height, gTrackColours[SCHEME_SUPPORTS]); paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); - imageId = mini_golf_track_sprites_flat_to_25_deg_up[direction][1] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_flat_to_25_deg_up[direction][1] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 11, height, 0, 10, height + 2, get_current_rotation()); - imageId = mini_golf_track_sprites_flat_to_25_deg_up[direction][2] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_flat_to_25_deg_up[direction][2] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 11, height, 0, 22, height + 2, get_current_rotation()); switch (direction) { @@ -579,10 +579,10 @@ static void paint_mini_golf_track_25_deg_up_to_flat(uint8 rideIndex, uint8 track metal_a_supports_paint_setup(3, 4, 8, height, gTrackColours[SCHEME_SUPPORTS]); paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); - imageId = mini_golf_track_sprites_25_deg_up_to_flat[direction][1] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_25_deg_up_to_flat[direction][1] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 11, height, 0, 10, height + 2, get_current_rotation()); - imageId = mini_golf_track_sprites_25_deg_up_to_flat[direction][2] | gTrackColours[SCHEME_TRACK]; + imageId = mini_golf_track_sprites_25_deg_up_to_flat[direction][2] | gTrackColours[SCHEME_MISC]; mini_golf_paint_util_7c(direction, imageId, 0, 0, 32, 1, 11, height, 0, 22, height + 2, get_current_rotation()); switch (direction) { @@ -692,7 +692,7 @@ static void paint_mini_golf_track_left_quarter_turn_1_tile(uint8 rideIndex, uint paint_util_push_tunnel_left(height, TUNNEL_10); if (!shouldDrawFence) break; - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_SW_NW | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_SW_NW | gTrackColours[SCHEME_MISC]; sub_98199C(imageId, 0, 0, 26, 24, 1, height, 6, 2, height, get_current_rotation()); break; @@ -700,7 +700,7 @@ static void paint_mini_golf_track_left_quarter_turn_1_tile(uint8 rideIndex, uint case 1: if (!shouldDrawFence) break; - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_NW_NE | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_NW_NE | gTrackColours[SCHEME_MISC]; sub_98199C(imageId, 0, 0, 26, 26, 1, height, 0, 0, height, get_current_rotation()); break; @@ -708,7 +708,7 @@ static void paint_mini_golf_track_left_quarter_turn_1_tile(uint8 rideIndex, uint paint_util_push_tunnel_right(height, TUNNEL_10); if (!shouldDrawFence) break; - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_NE_SE | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_NE_SE | gTrackColours[SCHEME_MISC]; sub_98199C(imageId, 0, 0, 24, 26, 1, height, 2, 6, height, get_current_rotation()); break; @@ -717,22 +717,22 @@ static void paint_mini_golf_track_left_quarter_turn_1_tile(uint8 rideIndex, uint paint_util_push_tunnel_right(height, TUNNEL_10); if (!shouldDrawFence) break; - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_SE_SW | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_BACK_SE_SW | gTrackColours[SCHEME_MISC]; sub_98199C(imageId, 0, 0, 24, 24, 1, height, 6, 6, height, get_current_rotation()); break; } if (shouldDrawFence) { // TODO: The back fence uses the same x/y offsets, but uses another paint function. See if this occurs more often. - track_paint_util_left_quarter_turn_1_tile_paint(0, height, 24, direction, gTrackColours[SCHEME_TRACK], mini_golf_track_sprites_quarter_turn_1_tile_fence_front, get_current_rotation()); + track_paint_util_left_quarter_turn_1_tile_paint(0, height, 24, direction, gTrackColours[SCHEME_MISC], mini_golf_track_sprites_quarter_turn_1_tile_fence_front, get_current_rotation()); switch (direction) { case 0: - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_INSIDE_SW_NW | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_INSIDE_SW_NW | gTrackColours[SCHEME_MISC]; sub_98197C(imageId, 0, 0, 5, 5, 5, height, 24, 0, height + 2, get_current_rotation()); break; case 2: - imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_INSIDE_NE_SE | gTrackColours[SCHEME_TRACK]; + imageId = SPR_MINI_GOLF_QUARTER_TURN_1_TILE_FENCE_INSIDE_NE_SE | gTrackColours[SCHEME_MISC]; sub_98197C(imageId, 0, 0, 5, 5, 5, height, 0, 24, height + 2, get_current_rotation()); break; } @@ -919,11 +919,11 @@ static void paint_mini_golf_hole_e(uint8 rideIndex, uint8 trackSequence, uint8 d switch ((direction << 4) | trackSequence) { case 0x00: - case 0x32: + case 0x12: paint_util_push_tunnel_left(height, TUNNEL_10); break; - case 0x22: + case 0x02: case 0x30: paint_util_push_tunnel_right(height, TUNNEL_10); break; @@ -937,6 +937,7 @@ static void paint_mini_golf_hole_e(uint8 rideIndex, uint8 trackSequence, uint8 d switch ((direction << 4) | trackSequence) { case 0x01: sub_98197C(imageId, 0, 0, 2, 26, 3, height, 30, 3, height + 4, get_current_rotation()); + break; case 0x02: case 0x20: case 0x31: diff --git a/src/ride/gentle/mini_helicopters.c b/src/ride/gentle/mini_helicopters.c index 38efd00414..2d64d74856 100644 --- a/src/ride/gentle/mini_helicopters.c +++ b/src/ride/gentle/mini_helicopters.c @@ -214,7 +214,7 @@ static void paint_mini_helicopters_track_25_deg_down_to_flat(uint8 rideIndex, ui static void paint_mini_helicopters_track_left_quarter_turn_3_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { track_paint_util_left_quarter_turn_3_tiles_paint(3, height, direction, trackSequence, gTrackColours[SCHEME_TRACK], trackSpritesSubmarineRideMiniHelicoptersQuarterTurn3Tiles, get_current_rotation()); - track_paint_util_left_quarter_turn_3_tiles_tunnel(height, direction, trackSequence); + track_paint_util_left_quarter_turn_3_tiles_tunnel(height, TUNNEL_0, direction, trackSequence); switch (trackSequence) { case 0: @@ -230,7 +230,7 @@ static void paint_mini_helicopters_track_left_quarter_turn_3_tiles(uint8 rideInd break; } - paint_util_set_general_support_height(height + 16, 0x20); + paint_util_set_general_support_height(height + 32, 0x20); } static const uint8 right_quarter_turn_3_tiles_to_left_turn_map[] = {3, 1, 2, 0}; diff --git a/src/ride/gentle/monorail_cycles.c b/src/ride/gentle/monorail_cycles.c index df0c3933df..97f50eea30 100644 --- a/src/ride/gentle/monorail_cycles.c +++ b/src/ride/gentle/monorail_cycles.c @@ -239,7 +239,7 @@ static void paint_monorail_cycles_station(uint8 rideIndex, uint8 trackSequence, static void paint_monorail_cycles_track_left_quarter_turn_3_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { track_paint_util_left_quarter_turn_3_tiles_paint(3, height, direction, trackSequence, gTrackColours[SCHEME_TRACK], monorail_cycles_track_pieces_flat_quarter_turn_3_tiles, get_current_rotation()); - track_paint_util_left_quarter_turn_3_tiles_tunnel(height, direction, trackSequence); + track_paint_util_left_quarter_turn_3_tiles_tunnel(height, TUNNEL_0, direction, trackSequence); switch (trackSequence) { case 0: @@ -290,7 +290,7 @@ static void paint_monorail_cycles_track_right_quarter_turn_5_tiles(uint8 rideInd int supportSpecial = monorail_cycles_track_right_quarter_turn_5_tiles_support_special[direction][trackSequence]; switch (trackSequence) { case 0: - metal_a_supports_paint_setup((direction & 1) ? 5 : 4, 4, 0, supportHeight, gTrackColours[SCHEME_SUPPORTS]); + metal_a_supports_paint_setup((direction & 1) ? 5 : 4, 4, supportSpecial, supportHeight, gTrackColours[SCHEME_SUPPORTS]); break; case 2: if (direction == 0) metal_a_supports_paint_setup((direction & 1) ? 5 : 4, 8, supportSpecial, supportHeight, gTrackColours[SCHEME_SUPPORTS]); @@ -352,10 +352,10 @@ static void paint_monorail_cycles_track_s_bend_left(uint8 rideIndex, uint8 track uint32 imageId = monorail_cycles_track_pieces_s_bend_left[direction&1][trackSequence] | gTrackColours[SCHEME_TRACK]; switch (trackSequence) { - case 0: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; - case 1: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 26, 1, height, 0, 0, height, get_current_rotation()); break; - case 2: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 26, 1, height, 0, 6, height, get_current_rotation()); break; - case 3: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; + case 0: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; + case 1: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 26, 1, height, 0, 0, height, get_current_rotation()); break; + case 2: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 26, 1, height, 0, 6, height, get_current_rotation()); break; + case 3: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; } if (direction == 0 || direction == 2) { @@ -398,10 +398,10 @@ static void paint_monorail_cycles_track_s_bend_right(uint8 rideIndex, uint8 trac uint32 imageId = monorail_cycles_track_pieces_s_bend_right[direction&1][trackSequence] | gTrackColours[SCHEME_TRACK]; switch (trackSequence) { - case 0: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; - case 1: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 26, 1, height, 0, 6, height, get_current_rotation()); break; - case 2: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 26, 1, height, 0, 0, height, get_current_rotation()); break; - case 3: paint_monorail_cycles_util_7c(direction, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; + case 0: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; + case 1: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 26, 1, height, 0, 6, height, get_current_rotation()); break; + case 2: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 26, 1, height, 0, 0, height, get_current_rotation()); break; + case 3: paint_monorail_cycles_util_7c(direction & 1, imageId, 0, 0, 32, 20, 1, height, 0, 6, height, get_current_rotation()); break; } if (direction == 0 || direction == 2) { diff --git a/src/ride/thrill/go_karts.c b/src/ride/thrill/go_karts.c index 67fbe52730..ccc8331890 100644 --- a/src/ride/thrill/go_karts.c +++ b/src/ride/thrill/go_karts.c @@ -142,7 +142,7 @@ static void paint_go_karts_track_flat(uint8 rideIndex, uint8 trackSequence, uint imageId = SPR_GO_KARTS_FLAT_FRONT_SW_NE | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 32, 1, 3, height, 0, 29, height + 2, get_current_rotation()); - paint_util_push_tunnel_left(height, TUNNEL_0); + paint_util_push_tunnel_left(height, TUNNEL_6); } else { imageId = SPR_GO_KARTS_FLAT_NW_SE | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 28, 32, 1, height, 2, 0, height, get_current_rotation()); @@ -150,7 +150,7 @@ static void paint_go_karts_track_flat(uint8 rideIndex, uint8 trackSequence, uint imageId = SPR_GO_KARTS_FLAT_FRONT_NW_SE | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 1, 32, 3, height, 29, 0, height + 2, get_current_rotation()); - paint_util_push_tunnel_right(height, TUNNEL_0); + paint_util_push_tunnel_right(height, TUNNEL_6); } wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); @@ -180,7 +180,7 @@ static void paint_go_karts_track_25_deg_up(uint8 rideIndex, uint8 trackSequence, if (direction == 0 || direction == 2) { sub_98197C(imageId, 0, 0, 32, 1, 11, height, 0, 29, height + 2, get_current_rotation()); } else { - sub_98197C(imageId, 0, 0, 1, 32, 1, height, 29, 0, height + 2, get_current_rotation()); + sub_98197C(imageId, 0, 0, 1, 32, 11, height, 29, 0, height + 2, get_current_rotation()); } switch (direction) { @@ -227,7 +227,7 @@ static void paint_go_karts_track_flat_to_25_deg_up(uint8 rideIndex, uint8 trackS if (direction == 0 || direction == 2) { sub_98197C(imageId, 0, 0, 32, 1, 11, height, 0, 29, height + 2, get_current_rotation()); } else { - sub_98197C(imageId, 0, 0, 1, 32, 1, height, 29, 0, height + 2, get_current_rotation()); + sub_98197C(imageId, 0, 0, 1, 32, 11, height, 29, 0, height + 2, get_current_rotation()); } switch (direction) { @@ -274,7 +274,7 @@ static void paint_go_karts_track_25_deg_up_to_flat(uint8 rideIndex, uint8 trackS if (direction == 0 || direction == 2) { sub_98197C(imageId, 0, 0, 32, 1, 11, height, 0, 29, height + 2, get_current_rotation()); } else { - sub_98197C(imageId, 0, 0, 1, 32, 1, height, 29, 0, height + 2, get_current_rotation()); + sub_98197C(imageId, 0, 0, 1, 32, 11, height, 29, 0, height + 2, get_current_rotation()); } switch (direction) { @@ -352,11 +352,11 @@ static void paint_go_karts_station(uint8 rideIndex, uint8 trackSequence, uint8 d if (direction == 0 || direction == 2) { sub_98197C(imageId, 0, 0, 32, 1, 3, height, 0, 29, height + 2, get_current_rotation()); - paint_util_push_tunnel_left(height, TUNNEL_0); + paint_util_push_tunnel_left(height, TUNNEL_6); } else { sub_98197C(imageId, 0, 0, 1, 32, 3, height, 29, 0, height + 2, get_current_rotation()); - paint_util_push_tunnel_right(height, TUNNEL_0); + paint_util_push_tunnel_right(height, TUNNEL_6); } if (direction == 0 || direction == 2) { @@ -446,7 +446,7 @@ static void paint_go_karts_track_left_quarter_turn_1_tile(uint8 rideIndex, uint8 break; case 3: imageId = SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_SW_NW | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 30, 30, 1, height, 0, 0, height, get_current_rotation()); + sub_98197C(imageId, 0, 0, 32, 32, 1, height, 0, 0, height, get_current_rotation()); imageId = SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_A_SW_NW | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 1, 1, 3, height, 29, 29, height + 2, get_current_rotation()); diff --git a/src/ride/thrill/pirate_ship.c b/src/ride/thrill/pirate_ship.c index 1870265300..4628926d63 100644 --- a/src/ride/thrill/pirate_ship.c +++ b/src/ride/thrill/pirate_ship.c @@ -169,7 +169,7 @@ static void paint_pirate_ship(uint8 rideIndex, uint8 trackSequence, uint8 direct bool hasFence; if (relativeTrackSequence == 1 || relativeTrackSequence == 4) { - wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_MISC], NULL); + wooden_a_supports_paint_setup(direction & 1, 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); } else if (direction & 1) { metal_a_supports_paint_setup(0, 6, 0, height, gTrackColours[SCHEME_SUPPORTS]); metal_a_supports_paint_setup(0, 7, 0, height, gTrackColours[SCHEME_SUPPORTS]); diff --git a/src/ride/track_paint.c b/src/ride/track_paint.c index 30b7c8bb32..20c759aaca 100644 --- a/src/ride/track_paint.c +++ b/src/ride/track_paint.c @@ -1185,24 +1185,24 @@ void track_paint_util_left_quarter_turn_3_tiles_paint(sint8 thickness, sint16 he } } -void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 direction, uint8 trackSequence) +void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 tunnelType, uint8 direction, uint8 trackSequence) { if (direction == 0 && trackSequence == 0) { - paint_util_push_tunnel_left(height, TUNNEL_0); + paint_util_push_tunnel_left(height, tunnelType); } if (direction == 2 && trackSequence == 3) { - paint_util_push_tunnel_right(height, TUNNEL_0); + paint_util_push_tunnel_right(height, tunnelType); } if (direction == 3 && trackSequence == 0) { - paint_util_push_tunnel_right(height, TUNNEL_0); + paint_util_push_tunnel_right(height, tunnelType); } if (direction == 3 && trackSequence == 3) { - paint_util_push_tunnel_left(height, TUNNEL_0); + paint_util_push_tunnel_left(height, tunnelType); } } diff --git a/src/ride/track_paint.h b/src/ride/track_paint.h index 775dd94cca..1a0dc7f4fc 100644 --- a/src/ride/track_paint.h +++ b/src/ride/track_paint.h @@ -233,7 +233,7 @@ void track_paint_util_right_quarter_turn_5_tiles_paint_2(sint16 height, int dire void track_paint_util_right_quarter_turn_3_tiles_paint(sint8 thickness, sint16 height, int direction, uint8 trackSequence, uint32 colourFlags, const uint32 sprites[4][3], const rct_xy16 offsets[4][3], const rct_xy16 boundsLengths[4][3], const rct_xyz16 boundsOffsets[4][3], uint8 rotation); void track_paint_util_right_quarter_turn_3_tiles_tunnel(sint16 height, uint8 direction, uint8 trackSequence, uint8 tunnelType); void track_paint_util_left_quarter_turn_3_tiles_paint(sint8 thickness, sint16 height, int direction, uint8 trackSequence, uint32 colourFlags, const uint32 sprites[4][3], uint8 rotation); -void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 direction, uint8 trackSequence); +void track_paint_util_left_quarter_turn_3_tiles_tunnel(sint16 height, uint8 tunnelType, uint8 direction, uint8 trackSequence); 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); diff --git a/src/ride/transport/monorail.c b/src/ride/transport/monorail.c index a5932b509e..20d88c7a5f 100644 --- a/src/ride/transport/monorail.c +++ b/src/ride/transport/monorail.c @@ -708,7 +708,7 @@ static void paint_monorail_track_s_bend_left(uint8 rideIndex, uint8 trackSequenc switch (trackSequence) { case 0: metal_a_supports_paint_setup(3, 4, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; case 1: metal_a_supports_paint_setup(3, 6, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; - case 3: metal_a_supports_paint_setup(3, 4, 0, height - 2, gTrackColours[SCHEME_SUPPORTS]); break; + case 3: metal_a_supports_paint_setup(3, 4, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; } } @@ -761,7 +761,7 @@ static void paint_monorail_track_s_bend_right(uint8 rideIndex, uint8 trackSequen switch (trackSequence) { case 0: metal_a_supports_paint_setup(3, 4, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; - case 1: metal_a_supports_paint_setup(3, 8, 0, height - 2, gTrackColours[SCHEME_SUPPORTS]); break; + case 1: metal_a_supports_paint_setup(3, 8, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; case 3: metal_a_supports_paint_setup(3, 4, 0, height, gTrackColours[SCHEME_SUPPORTS]); break; } } else { diff --git a/src/ride/water/river_rapids.c b/src/ride/water/river_rapids.c index bd0a3fcb47..fb7d67c7fd 100644 --- a/src/ride/water/river_rapids.c +++ b/src/ride/water/river_rapids.c @@ -646,13 +646,13 @@ static void paint_river_rapids_track_waterfall(uint8 rideIndex, uint8 trackSeque wooden_a_supports_paint_setup((direction & 1), 0, height, gTrackColours[SCHEME_SUPPORTS], NULL); if (direction & 1) { - paint_util_push_tunnel_right(height, TUNNEL_6); + paint_util_push_tunnel_right(height, TUNNEL_9); } else { - paint_util_push_tunnel_left(height, TUNNEL_6); + paint_util_push_tunnel_left(height, TUNNEL_9); } paint_util_set_segment_support_height(SEGMENTS_ALL, 0xFFFF, 0); - paint_util_set_general_support_height(height + 32, 0x20); + paint_util_set_general_support_height(height + 48, 0x20); } /** rct2: 0x00757720 */ @@ -757,7 +757,7 @@ static void paint_river_rapids_track_whirlpool(uint8 rideIndex, uint8 trackSeque sub_98197C(imageId, 0, 0, 24, 32, 11, height, 4, 0, height, get_current_rotation()); imageId = (SPR_RIVER_RAPIDS_RAPIDS_WHIRLPOOL_FRAME_0 + frameNum) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 24, 32, 11, height, 4, 0, height, get_current_rotation()); + sub_98199C(imageId, 0, 0, 24, 32, 11, height, 4, 0, height, get_current_rotation()); imageId = (direction == 1 ? SPR_RIVER_RAPIDS_FLAT_FRONT_NW_SE : SPR_RIVER_RAPIDS_FLAT_FRONT_SE_NW) | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 1, 32, 3, height, 27, 0, height + 17, get_current_rotation()); @@ -766,7 +766,7 @@ static void paint_river_rapids_track_whirlpool(uint8 rideIndex, uint8 trackSeque sub_98197C(imageId, 0, 0, 32, 24, 11, height, 0, 4, height, get_current_rotation()); imageId = (SPR_RIVER_RAPIDS_RAPIDS_WHIRLPOOL_FRAME_0 + frameNum) | gTrackColours[SCHEME_TRACK]; - sub_98197C(imageId, 0, 0, 32, 24, 11, height, 0, 4, height, get_current_rotation()); + sub_98199C(imageId, 0, 0, 32, 24, 11, height, 0, 4, height, get_current_rotation()); imageId = (direction == 0 ? SPR_RIVER_RAPIDS_FLAT_FRONT_SW_NE : SPR_RIVER_RAPIDS_FLAT_FRONT_NE_SW) | gTrackColours[SCHEME_TRACK]; sub_98197C(imageId, 0, 0, 32, 1, 3, height, 0, 27, height + 17, get_current_rotation()); diff --git a/src/ride/water/submarine_ride.c b/src/ride/water/submarine_ride.c index 9e12032be0..6284169b99 100644 --- a/src/ride/water/submarine_ride.c +++ b/src/ride/water/submarine_ride.c @@ -110,7 +110,7 @@ static void submarine_ride_paint_track_flat(uint8 rideIndex, uint8 trackSequence } if (track_paint_util_should_paint_supports(position)) { - metal_a_supports_paint_setup((direction & 1) ? 4 : 5, 4, -1, heightLower, gTrackColours[SCHEME_SUPPORTS]); + metal_a_supports_paint_setup((direction & 1) ? 5 : 4, 4, -1, heightLower, gTrackColours[SCHEME_SUPPORTS]); } paint_util_set_segment_support_height(paint_util_rotate_segments(SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); @@ -120,7 +120,7 @@ static void submarine_ride_paint_track_flat(uint8 rideIndex, uint8 trackSequence static void submarine_ride_paint_track_left_quarter_turn_3_tiles(uint8 rideIndex, uint8 trackSequence, uint8 direction, int height, rct_map_element * mapElement) { track_paint_util_left_quarter_turn_3_tiles_paint(3, height - 16, direction, trackSequence, gTrackColours[SCHEME_TRACK], trackSpritesSubmarineRideMiniHelicoptersQuarterTurn3Tiles, get_current_rotation()); - track_paint_util_left_quarter_turn_3_tiles_tunnel(height - 16, direction, trackSequence); + track_paint_util_left_quarter_turn_3_tiles_tunnel(height - 16, TUNNEL_0, direction, trackSequence); switch (trackSequence) { case 0: