diff --git a/src/openrct2/ride/TrackPaint.cpp b/src/openrct2/ride/TrackPaint.cpp index a9d084890d..028f122a40 100644 --- a/src/openrct2/ride/TrackPaint.cpp +++ b/src/openrct2/ride/TrackPaint.cpp @@ -296,31 +296,31 @@ bool track_paint_util_should_paint_supports(const CoordsXY& position) } static void track_paint_util_draw_station_impl( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, uint16_t coverHeight, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, uint16_t coverHeight, const TileElement* tileElement, int32_t fenceOffsetA, int32_t fenceOffsetB); void track_paint_util_draw_station( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, const TileElement* tileElement) + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, const TileElement* tileElement) { track_paint_util_draw_station_impl(session, rideIndex, direction, height, height, tileElement, 5, 7); } void track_paint_util_draw_station_2( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, const TileElement* tileElement, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, const TileElement* tileElement, int32_t fenceOffsetA, int32_t fenceOffsetB) { track_paint_util_draw_station_impl(session, rideIndex, direction, height, height, tileElement, fenceOffsetA, fenceOffsetB); } void track_paint_util_draw_station_3( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, uint16_t coverHeight, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, uint16_t coverHeight, const TileElement* tileElement) { track_paint_util_draw_station_impl(session, rideIndex, direction, height, coverHeight, tileElement, 5, 7); } static void track_paint_util_draw_station_impl( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, uint16_t coverHeight, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, uint16_t coverHeight, const TileElement* tileElement, int32_t fenceOffsetA, int32_t fenceOffsetB) { auto ride = get_ride(rideIndex); @@ -528,7 +528,7 @@ static void track_paint_util_draw_station_impl( } void track_paint_util_draw_station_inverted( - paint_session* session, ride_id_t rideIndex, uint8_t direction, int32_t height, const TileElement* tileElement, + paint_session* session, ride_id_t rideIndex, Direction direction, int32_t height, const TileElement* tileElement, uint8_t stationVariant) { auto ride = get_ride(rideIndex); @@ -839,7 +839,7 @@ bool track_paint_util_draw_station_covers_2( } void track_paint_util_draw_station_platform( - paint_session* session, Ride* ride, uint8_t direction, int32_t height, int32_t zOffset, const TileElement* tileElement) + paint_session* session, Ride* ride, Direction direction, int32_t height, int32_t zOffset, const TileElement* tileElement) { CoordsXY position = session->MapPosition; auto stationObj = ride_get_station_object(ride); @@ -884,7 +884,7 @@ void track_paint_util_draw_station_platform( } void track_paint_util_draw_pier( - paint_session* session, Ride* ride, const StationObject* stationObj, const CoordsXY& position, uint8_t direction, + paint_session* session, Ride* ride, const StationObject* stationObj, const CoordsXY& position, Direction direction, int32_t height, const TileElement* tileElement, uint8_t rotation) { bool hasFence; @@ -930,13 +930,13 @@ void track_paint_util_draw_pier( } } -void track_paint_util_draw_station_metal_supports(paint_session* session, uint8_t direction, uint16_t height, uint32_t colour) +void track_paint_util_draw_station_metal_supports(paint_session* session, Direction direction, uint16_t height, uint32_t colour) { track_paint_util_draw_station_metal_supports_2(session, direction, height, colour, 3); } void track_paint_util_draw_station_metal_supports_2( - paint_session* session, uint8_t direction, uint16_t height, uint32_t colour, uint8_t type) + paint_session* session, Direction direction, uint16_t height, uint32_t colour, uint8_t type) { if (direction & 1) { @@ -999,7 +999,7 @@ constexpr CoordsXYZ defaultRightHelixUpSmallQuarterBoundOffsets[4][3][2] = { static constexpr const int8_t right_helix_up_small_quarter_tiles_sprite_map[] = { 0, -1, 1, 2 }; void track_paint_util_right_helix_up_small_quarter_tiles_paint( - paint_session* session, const int8_t thickness[2], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3][2], const CoordsXY offsets[4][3][2], const CoordsXY boundsLengths[4][3][2], const CoordsXYZ boundsOffsets[4][3][2]) { @@ -1097,7 +1097,7 @@ constexpr CoordsXY defaultRightHelixUpLargeQuarterBoundLengths[4][5][2] = { static constexpr const int8_t right_helix_up_large_quarter_sprite_map[] = { 0, -1, 1, 2, -1, 3, 4 }; void track_paint_util_right_helix_up_large_quarter_tiles_paint( - paint_session* session, const int8_t thickness[2], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][5][2], const CoordsXY offsets[4][5][2], const CoordsXY boundsLengths[4][5][2], const CoordsXYZ boundsOffsets[4][5][2]) { @@ -1270,7 +1270,7 @@ const uint8_t mapLeftEighthTurnToOrthogonal[] = { 4, 2, 3, 1, 0 }; static constexpr const int8_t eighth_to_diag_sprite_map[] = { 0, 1, 2, -1, 3 }; void track_paint_util_eighth_to_diag_tiles_paint( - paint_session* session, const int8_t thickness[4][4], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[4][4], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][4], const CoordsXY offsets[4][4], const CoordsXY boundsLengths[4][4], const CoordsXYZ boundsOffsets[4][4]) { @@ -1312,7 +1312,7 @@ static constexpr const int8_t diag_sprite_map[4][4] = { }; void track_paint_util_diag_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4], const CoordsXY offsets[4], const CoordsXY boundsLengths[4], const CoordsXYZ boundsOffsets[4]) { int32_t index = diag_sprite_map[direction][trackSequence]; @@ -1433,7 +1433,7 @@ static constexpr const int8_t right_quarter_turn_5_tiles_sprite_map[] = { }; void track_paint_util_right_quarter_turn_5_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][5], const CoordsXY offsets[4][5], const CoordsXY boundsLengths[4][5], const CoordsXYZ boundsOffsets[4][5]) { @@ -1454,7 +1454,7 @@ void track_paint_util_right_quarter_turn_5_tiles_paint( } void track_paint_util_right_quarter_turn_5_tiles_paint_2( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[][5]) { int8_t sprite = right_quarter_turn_5_tiles_sprite_map[trackSequence]; @@ -1472,7 +1472,7 @@ void track_paint_util_right_quarter_turn_5_tiles_paint_2( } void track_paint_util_right_quarter_turn_5_tiles_paint_3( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[][5]) { int8_t sprite = right_quarter_turn_5_tiles_sprite_map[trackSequence]; @@ -1489,7 +1489,7 @@ void track_paint_util_right_quarter_turn_5_tiles_paint_3( } void track_paint_util_right_quarter_turn_5_tiles_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType) + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType) { if (direction == 0 && trackSequence == 0) { @@ -1510,7 +1510,7 @@ void track_paint_util_right_quarter_turn_5_tiles_tunnel( } void track_paint_util_right_quarter_turn_5_tiles_wooden_supports( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence) + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence) { if (trackSequence != 1 && trackSequence != 4) { @@ -1609,7 +1609,7 @@ static constexpr const int8_t right_quarter_turn_3_tiles_sprite_map[] = { }; void track_paint_util_right_quarter_turn_3_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], const CoordsXY offsets[4][3], const CoordsXY boundsLengths[4][3], const CoordsXYZ boundsOffsets[4][3]) { @@ -1630,7 +1630,7 @@ void track_paint_util_right_quarter_turn_3_tiles_paint( } void track_paint_util_right_quarter_turn_3_tiles_paint_2( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3]) { track_paint_util_right_quarter_turn_3_tiles_paint_2_with_height_offset( @@ -1638,7 +1638,7 @@ void track_paint_util_right_quarter_turn_3_tiles_paint_2( } void track_paint_util_right_quarter_turn_3_tiles_paint_2_with_height_offset( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], int32_t heightOffset) { int8_t sprite = right_quarter_turn_3_tiles_sprite_map[trackSequence]; @@ -1714,7 +1714,7 @@ void track_paint_util_right_quarter_turn_3_tiles_paint_2_with_height_offset( } void track_paint_util_right_quarter_turn_3_tiles_paint_3( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[4][3]) { int8_t sprite = right_quarter_turn_3_tiles_sprite_map[trackSequence]; @@ -1731,7 +1731,7 @@ void track_paint_util_right_quarter_turn_3_tiles_paint_3( } void track_paint_util_right_quarter_turn_3_tiles_paint_4( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[4][3]) { int8_t sprite = right_quarter_turn_3_tiles_sprite_map[trackSequence]; @@ -1748,7 +1748,7 @@ void track_paint_util_right_quarter_turn_3_tiles_paint_4( } void track_paint_util_right_quarter_turn_3_tiles_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType) + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType) { if (direction == 0 && trackSequence == 0) { @@ -1772,7 +1772,8 @@ void track_paint_util_right_quarter_turn_3_tiles_tunnel( } void track_paint_util_right_quarter_turn_3_tiles_25_deg_up_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType0, uint8_t tunnelType3) + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType0, + uint8_t tunnelType3) { if (direction == 0 && trackSequence == 0) { @@ -1793,7 +1794,8 @@ void track_paint_util_right_quarter_turn_3_tiles_25_deg_up_tunnel( } void track_paint_util_right_quarter_turn_3_tiles_25_deg_down_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType0, uint8_t tunnelType3) + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType0, + uint8_t tunnelType3) { if (direction == 0 && trackSequence == 0) { @@ -1821,7 +1823,7 @@ static constexpr const int8_t left_quarter_turn_3_tiles_sprite_map[] = { }; void track_paint_util_left_quarter_turn_3_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3]) { track_paint_util_left_quarter_turn_3_tiles_paint_with_height_offset( @@ -1829,7 +1831,7 @@ void track_paint_util_left_quarter_turn_3_tiles_paint( } void track_paint_util_left_quarter_turn_3_tiles_paint_with_height_offset( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], int32_t heightOffset) { int8_t sprite = left_quarter_turn_3_tiles_sprite_map[trackSequence]; @@ -1905,7 +1907,7 @@ void track_paint_util_left_quarter_turn_3_tiles_paint_with_height_offset( } void track_paint_util_left_quarter_turn_3_tiles_tunnel( - paint_session* session, int16_t height, uint8_t tunnelType, uint8_t direction, uint8_t trackSequence) + paint_session* session, int16_t height, uint8_t tunnelType, Direction direction, uint8_t trackSequence) { if (direction == 0 && trackSequence == 0) { @@ -1929,7 +1931,8 @@ void track_paint_util_left_quarter_turn_3_tiles_tunnel( } void track_paint_util_left_quarter_turn_1_tile_paint( - paint_session* session, int8_t thickness, int16_t height, int16_t boundBoxZOffset, int32_t direction, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, int16_t boundBoxZOffset, Direction direction, + uint32_t colourFlags, const uint32_t* sprites) { uint32_t imageId = sprites[direction] | colourFlags; @@ -1952,7 +1955,7 @@ void track_paint_util_left_quarter_turn_1_tile_paint( } void track_paint_util_right_quarter_turn_1_tile_tunnel( - paint_session* session, uint8_t direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, + paint_session* session, Direction direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, uint8_t endTunnel) { track_paint_util_left_quarter_turn_1_tile_tunnel( @@ -1960,7 +1963,7 @@ void track_paint_util_right_quarter_turn_1_tile_tunnel( } void track_paint_util_left_quarter_turn_1_tile_tunnel( - paint_session* session, uint8_t direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, + paint_session* session, Direction direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, uint8_t endTunnel) { switch (direction) @@ -1978,7 +1981,7 @@ void track_paint_util_left_quarter_turn_1_tile_tunnel( } } -void track_paint_util_spinning_tunnel_paint(paint_session* session, int8_t thickness, int16_t height, uint8_t direction) +void track_paint_util_spinning_tunnel_paint(paint_session* session, int8_t thickness, int16_t height, Direction direction) { int32_t frame = gScenarioTicks >> 2 & 3; uint32_t colourFlags = session->TrackColours[SCHEME_SUPPORTS]; @@ -2011,7 +2014,7 @@ void track_paint_util_spinning_tunnel_paint(paint_session* session, int8_t thick } void track_paint_util_onride_photo_small_paint( - paint_session* session, uint8_t direction, int32_t height, const TileElement* tileElement) + paint_session* session, Direction direction, int32_t height, const TileElement* tileElement) { static constexpr const uint32_t 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 }, @@ -2049,7 +2052,7 @@ void track_paint_util_onride_photo_small_paint( } void track_paint_util_onride_photo_paint( - paint_session* session, uint8_t direction, int32_t height, const TileElement* tileElement) + paint_session* session, Direction direction, int32_t height, const TileElement* tileElement) { static constexpr const uint32_t imageIds[4][3] = { { SPR_ON_RIDE_PHOTO_SIGN_SW_NE, SPR_ON_RIDE_PHOTO_CAMERA_S, SPR_ON_RIDE_PHOTO_CAMERA_FLASH_S }, @@ -2099,7 +2102,7 @@ static constexpr const uint16_t RightVerticalLoopSegments[] = { SEGMENT_B4 | SEGMENT_B8 | SEGMENT_C4 | SEGMENT_C8 | SEGMENT_CC | SEGMENT_D0, }; -void track_paint_util_right_vertical_loop_segments(paint_session* session, uint8_t direction, uint8_t trackSequence) +void track_paint_util_right_vertical_loop_segments(paint_session* session, Direction direction, uint8_t trackSequence) { if (trackSequence > 9) { @@ -2111,7 +2114,7 @@ void track_paint_util_right_vertical_loop_segments(paint_session* session, uint8 session, paint_util_rotate_segments(RightVerticalLoopSegments[trackSequence], direction), 0xFFFF, 0); } -void track_paint_util_left_corkscrew_up_supports(paint_session* session, uint8_t direction, uint16_t height) +void track_paint_util_left_corkscrew_up_supports(paint_session* session, Direction direction, uint16_t height) { // TODO: Figure out which of these looks best, and use one to keep a consistent world if (direction == 2) @@ -2133,7 +2136,7 @@ void track_paint_util_left_corkscrew_up_supports(paint_session* session, uint8_t * * rct2: 0x006C4794 */ -void track_paint(paint_session* session, uint8_t direction, int32_t height, const TileElement* tileElement) +void track_paint(paint_session* session, Direction direction, int32_t height, const TileElement* tileElement) { ride_id_t rideIndex = tileElement->AsTrack()->GetRideIndex(); auto ride = get_ride(rideIndex); diff --git a/src/openrct2/ride/TrackPaint.h b/src/openrct2/ride/TrackPaint.h index 256ffac48b..16fa2fbab6 100644 --- a/src/openrct2/ride/TrackPaint.h +++ b/src/openrct2/ride/TrackPaint.h @@ -290,107 +290,110 @@ bool track_paint_util_draw_station_covers_2( paint_session* session, enum edge_t edge, bool hasFence, const StationObject* stationObject, uint16_t height, uint8_t stationVariant); void track_paint_util_draw_station_platform( - paint_session* session, Ride* ride, uint8_t direction, int32_t height, int32_t zOffset, const TileElement* tileElement); + paint_session* session, Ride* ride, Direction direction, int32_t height, int32_t zOffset, const TileElement* tileElement); void track_paint_util_draw_station( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, const TileElement* tileElement); + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, const TileElement* tileElement); void track_paint_util_draw_station_2( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, const TileElement* tileElement, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, const TileElement* tileElement, int32_t fenceOffsetA, int32_t fenceOffsetB); void track_paint_util_draw_station_3( - paint_session* session, ride_id_t rideIndex, uint8_t direction, uint16_t height, uint16_t coverHeight, + paint_session* session, ride_id_t rideIndex, Direction direction, uint16_t height, uint16_t coverHeight, const TileElement* tileElement); void track_paint_util_draw_station_inverted( - paint_session* session, ride_id_t rideIndex, uint8_t direction, int32_t height, const TileElement* tileElement, + paint_session* session, ride_id_t rideIndex, Direction direction, int32_t height, const TileElement* tileElement, uint8_t stationVariant); bool track_paint_util_should_paint_supports(const CoordsXY& position); void track_paint_util_draw_pier( - paint_session* session, Ride* ride, const StationObject* stationObject, const CoordsXY& position, uint8_t direction, + paint_session* session, Ride* ride, const StationObject* stationObject, const CoordsXY& position, Direction direction, int32_t height, const TileElement* tileElement, uint8_t rotation); -void track_paint_util_draw_station_metal_supports(paint_session* session, uint8_t direction, uint16_t height, uint32_t colour); +void track_paint_util_draw_station_metal_supports(paint_session* session, Direction direction, uint16_t height, uint32_t colour); void track_paint_util_draw_station_metal_supports_2( - paint_session* session, uint8_t direction, uint16_t height, uint32_t colour, uint8_t type); + paint_session* session, Direction direction, uint16_t height, uint32_t colour, uint8_t type); void track_paint_util_right_quarter_turn_5_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][5], const CoordsXY offsets[4][5], const CoordsXY boundsLengths[4][5], const CoordsXYZ boundsOffsets[4][5]); void track_paint_util_right_quarter_turn_5_tiles_paint_2( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[][5]); void track_paint_util_right_quarter_turn_5_tiles_paint_3( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[][5]); void track_paint_util_right_quarter_turn_5_tiles_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType); + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType); void track_paint_util_right_quarter_turn_5_tiles_wooden_supports( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence); + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence); void track_paint_util_right_quarter_turn_3_tiles_25_deg_up_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType0, uint8_t tunnelType3); + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType0, + uint8_t tunnelType3); void track_paint_util_right_quarter_turn_3_tiles_25_deg_down_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType0, uint8_t tunnelType3); + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType0, + uint8_t tunnelType3); void track_paint_util_right_quarter_turn_3_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], const CoordsXY offsets[4][3], const CoordsXY boundsLengths[4][3], const CoordsXYZ boundsOffsets[4][3]); void track_paint_util_right_quarter_turn_3_tiles_paint_2( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3]); void track_paint_util_right_quarter_turn_3_tiles_paint_2_with_height_offset( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], int32_t heightOffset); void track_paint_util_right_quarter_turn_3_tiles_paint_3( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[4][3]); void track_paint_util_right_quarter_turn_3_tiles_paint_4( - paint_session* session, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const sprite_bb sprites[4][3]); void track_paint_util_right_quarter_turn_3_tiles_tunnel( - paint_session* session, int16_t height, uint8_t direction, uint8_t trackSequence, uint8_t tunnelType); + paint_session* session, int16_t height, Direction direction, uint8_t trackSequence, uint8_t tunnelType); void track_paint_util_left_quarter_turn_3_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3]); void track_paint_util_left_quarter_turn_3_tiles_paint_with_height_offset( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3], int32_t heightOffset); void track_paint_util_left_quarter_turn_3_tiles_tunnel( - paint_session* session, int16_t height, uint8_t tunnelType, uint8_t direction, uint8_t trackSequence); + paint_session* session, int16_t height, uint8_t tunnelType, Direction direction, uint8_t trackSequence); void track_paint_util_left_quarter_turn_1_tile_paint( - paint_session* session, int8_t thickness, int16_t height, int16_t boundBoxZOffset, int32_t direction, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, int16_t boundBoxZOffset, Direction direction, + uint32_t colourFlags, const uint32_t* sprites); -void track_paint_util_spinning_tunnel_paint(paint_session* session, int8_t thickness, int16_t height, uint8_t direction); +void track_paint_util_spinning_tunnel_paint(paint_session* session, int8_t thickness, int16_t height, Direction direction); void track_paint_util_onride_photo_small_paint( - paint_session* session, uint8_t direction, int32_t height, const TileElement* tileElement); + paint_session* session, Direction direction, int32_t height, const TileElement* tileElement); void track_paint_util_onride_photo_paint( - paint_session* session, uint8_t direction, int32_t height, const TileElement* tileElement); + paint_session* session, Direction direction, int32_t height, const TileElement* tileElement); void track_paint_util_right_helix_up_small_quarter_tiles_paint( - paint_session* session, const int8_t thickness[2], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][3][2], const CoordsXY offsets[4][3][2], const CoordsXY boundsLengths[4][3][2], const CoordsXYZ boundsOffsets[4][3][2]); void track_paint_util_right_helix_up_large_quarter_tiles_paint( - paint_session* session, const int8_t thickness[2], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[2], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][5][2], const CoordsXY offsets[4][5][2], const CoordsXY boundsLengths[4][5][2], const CoordsXYZ boundsOffsets[4][5][2]); void track_paint_util_eighth_to_diag_tiles_paint( - paint_session* session, const int8_t thickness[4][4], int16_t height, int32_t direction, uint8_t trackSequence, + paint_session* session, const int8_t thickness[4][4], int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4][4], const CoordsXY offsets[4][4], const CoordsXY boundsLengths[4][4], const CoordsXYZ boundsOffsets[4][4]); void track_paint_util_diag_tiles_paint( - paint_session* session, int8_t thickness, int16_t height, int32_t direction, uint8_t trackSequence, uint32_t colourFlags, + paint_session* session, int8_t thickness, int16_t height, Direction direction, uint8_t trackSequence, uint32_t colourFlags, const uint32_t sprites[4], const CoordsXY offsets[4], const CoordsXY boundsLengths[4], const CoordsXYZ boundsOffsets[4]); void track_paint_util_left_quarter_turn_1_tile_tunnel( - paint_session* session, uint8_t direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, + paint_session* session, Direction direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, uint8_t endTunnel); void track_paint_util_right_quarter_turn_1_tile_tunnel( - paint_session* session, uint8_t direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, + paint_session* session, Direction direction, uint16_t baseHeight, int8_t startOffset, uint8_t startTunnel, int8_t endOffset, uint8_t endTunnel); -void track_paint_util_right_vertical_loop_segments(paint_session* session, uint8_t direction, uint8_t trackSequence); +void track_paint_util_right_vertical_loop_segments(paint_session* session, Direction direction, uint8_t trackSequence); -void track_paint_util_left_corkscrew_up_supports(paint_session* session, uint8_t direction, uint16_t height); +void track_paint_util_left_corkscrew_up_supports(paint_session* session, Direction direction, uint16_t height); using TRACK_PAINT_FUNCTION = void (*)( - paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, uint8_t direction, int32_t height, + paint_session* session, ride_id_t rideIndex, uint8_t trackSequence, Direction direction, int32_t height, const TileElement* tileElement); using TRACK_PAINT_FUNCTION_GETTER = TRACK_PAINT_FUNCTION (*)(int32_t trackType);