Use BoundBoxXYZ for PaintAddImageAsParent (part 1)

This commit is contained in:
frutiemax 2022-12-04 14:43:19 -05:00 committed by GitHub
parent 01ac5d36e9
commit b7a1db6e69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 308 additions and 298 deletions

View File

@ -188,5 +188,5 @@ void Litter::Paint(PaintSession& session, int32_t imageDirection) const
// In the following call to PaintAddImageAsParent, we add 4 (instead of 2) to the
// bound_box_offset_z to make sure litter is drawn on top of railways
PaintAddImageAsParent(session, ImageId(image_id), { 0, 0, z }, { 5, 5, -1 }, { -4, -4, z + 4 });
PaintAddImageAsParent(session, ImageId(image_id), { 0, 0, z }, { { -4, -4, z + 4 }, { 5, 5, -1 } });
}

View File

@ -430,13 +430,13 @@ static void air_powered_vertical_rc_track_banked_right_quarter_turn_5(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_AIR_POWERED_VERTICAL_RC_BANKED_QUARTER_TURN_5_FRONT_NW_SW_PART_4);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
else if (direction == 3 && trackSequence == 0)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_AIR_POWERED_VERTICAL_RC_BANKED_QUARTER_TURN_5_FRONT_SE_NE_PART_0);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
track_paint_util_right_quarter_turn_5_tiles_wooden_supports(session, height, direction, trackSequence);
@ -736,7 +736,7 @@ static void air_powered_vertical_rc_track_vertical_slope_up(
{
floorImageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_FLOOR_PLANKS);
}
PaintAddImageAsParent(session, floorImageId, { 0, 0, height }, { 26, 26, 126 }, { 3, 3, height });
PaintAddImageAsParent(session, floorImageId, { 0, 0, height }, { { 3, 3, height }, { 26, 26, 126 } });
PaintAddImageAsChildRotated(
session, direction, supportsImageId, { 0, 0, height }, { 26, 26, 126 }, { 3, 3, height });
}
@ -930,13 +930,13 @@ static void air_powered_vertical_rc_track_booster(
if (direction & 1)
{
auto imageId = colour.WithIndex(SPR_REVERSE_FREEFALL_RC_FLAT_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
else
{
auto imageId = colour.WithIndex(SPR_REVERSE_FREEFALL_RC_FLAT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
}

View File

@ -1844,7 +1844,7 @@ void junior_rc_paint_station(
{
// height -= 2 (height - 2)
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { 32, 28, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 0, 2, height }, { 32, 28, 1 } });
// height += 2 (height)
if (trackElement.GetTrackType() == TrackElemType::EndStation && drawBlockBrake)
@ -1866,7 +1866,7 @@ void junior_rc_paint_station(
{
// height -= 2 (height - 2)
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { 28, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 2, 0, height }, { 28, 32, 1 } });
// height += 2 (height)
if (trackElement.GetTrackType() == TrackElemType::EndStation && drawBlockBrake)
@ -2090,13 +2090,13 @@ static void junior_rc_flat_to_left_bank_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_flat_to_left_bank[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, height, 0);
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, height, 0);
}
@ -2107,11 +2107,11 @@ static void junior_rc_flat_to_left_bank_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
}
@ -2138,13 +2138,13 @@ static void junior_rc_flat_to_right_bank_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_flat_to_right_bank[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, height, 0);
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, height, 0);
}
@ -2155,11 +2155,11 @@ static void junior_rc_flat_to_right_bank_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
}
@ -2268,12 +2268,12 @@ static void junior_rc_banked_right_quarter_turn_5_tiles_paint_setup(
if (direction == 1 && trackSequence == 6)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_BANKED_QUARTER_TURN_5_TILES_NW_SW_PART_4_2);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
else if (direction == 3 && trackSequence == 0)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_BANKED_QUARTER_TURN_5_TILES_SE_NE_PART_0_2);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
int32_t supportHeight = height;
@ -2364,11 +2364,11 @@ static void junior_rc_left_bank_to_25_deg_up_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_left_banked_to_25_deg_up[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
if (junior_rc_track_pieces_left_banked_to_25_deg_up[direction][1] != 0)
@ -2377,11 +2377,11 @@ static void junior_rc_left_bank_to_25_deg_up_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } });
}
}
@ -2424,11 +2424,11 @@ static void junior_rc_right_bank_to_25_deg_up_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_right_banked_to_25_deg_up[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
if (junior_rc_track_pieces_right_banked_to_25_deg_up[direction][1] != 0)
@ -2437,11 +2437,11 @@ static void junior_rc_right_bank_to_25_deg_up_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } });
}
}
@ -2497,13 +2497,13 @@ static void junior_rc_25_deg_up_to_left_bank_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_25_deg_up_to_left_bank[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, tunnelHeight, tunnelType);
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, tunnelHeight, tunnelType);
}
@ -2514,11 +2514,11 @@ static void junior_rc_25_deg_up_to_left_bank_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } });
}
}
@ -2558,13 +2558,13 @@ static void junior_rc_25_deg_up_to_right_bank_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_25_deg_up_to_right_bank[direction][0]);
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, tunnelHeight, tunnelType);
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, tunnelHeight, tunnelType);
}
@ -2575,11 +2575,11 @@ static void junior_rc_25_deg_up_to_right_bank_paint_setup(
if (direction & 1)
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } });
}
else
{
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height });
PaintAddImageAsParent(session, image_id, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } });
}
}
@ -2659,8 +2659,8 @@ static void junior_rc_left_bank_paint_setup(
image_id = session.TrackColours[SCHEME_TRACK].WithIndex(junior_rc_track_pieces_left_bank[direction]);
PaintAddImageAsParent(
session, image_id, { 0, 0, height }, junior_rc_left_bank_bound_lengths[direction],
{ junior_rc_left_bank_bound_offsets[direction], height });
session, image_id, { 0, 0, height },
{ { junior_rc_left_bank_bound_offsets[direction], height }, junior_rc_left_bank_bound_lengths[direction] });
if (direction & 1)
{
@ -3206,12 +3206,12 @@ static void junior_rc_right_quarter_turn_3_tiles_bank_paint_setup(
if (direction == 1 && trackSequence == 3)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_BANKED_QUARTER_TURN_3_TILES_NW_SW_PART_2_2);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
else if (direction == 3 && trackSequence == 0)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_BANKED_QUARTER_TURN_3_TILES_SE_NE_PART_0_2);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
uint8_t supportType[2][4] = {
@ -3251,8 +3251,7 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
{
auto imageId = ImageId(0);
CoordsXY offset;
CoordsXY boundsLength;
CoordsXY boundsOffset;
BoundBoxXY bb;
switch (trackSequence)
{
@ -3260,20 +3259,20 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_up(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[EnumValue(chainType)][direction][0]);
offset = defaultRightQuarterTurn3TilesOffsets[direction][0];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
boundsOffset = offset;
bb.length = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
bb.offset = offset;
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_up[EnumValue(chainType)][direction][1]);
offset = defaultRightQuarterTurn3TilesOffsets[direction][2];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
boundsOffset = offset;
bb.length = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
bb.offset = offset;
break;
}
if (imageId.GetIndex() != 0)
{
PaintAddImageAsParent(session, imageId, { offset, height }, { boundsLength, 1 }, { boundsOffset, height });
PaintAddImageAsParent(session, imageId, { offset, height }, { { bb.offset, height }, { bb.length, 1 } });
}
if (direction == 0 && trackSequence == 0)
@ -3333,8 +3332,7 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
{
auto imageId = ImageId(0);
CoordsXY offset;
CoordsXY boundsLength;
CoordsXY boundsOffset;
BoundBoxXY bb;
switch (trackSequence)
{
@ -3342,21 +3340,20 @@ void junior_rc_paint_track_right_quarter_turn_3_tiles_25_deg_down(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[EnumValue(chainType)][direction][0]);
offset = defaultRightQuarterTurn3TilesOffsets[direction][0];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
boundsOffset = offset;
bb.length = defaultRightQuarterTurn3TilesBoundLengths[direction][0];
bb.offset = offset;
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_right_quarter_turn_3_tiles_25_deg_down[EnumValue(chainType)][direction][1]);
offset = defaultRightQuarterTurn3TilesOffsets[direction][2];
boundsLength = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
boundsOffset = offset;
bb.length = defaultRightQuarterTurn3TilesBoundLengths[direction][2];
bb.offset = offset;
break;
}
if (imageId.GetIndex() != 0)
{
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength.x, boundsLength.y, 1 }, { boundsOffset, height });
PaintAddImageAsParent(session, imageId, { offset, height }, { { bb.offset, height }, { bb.length, 1 } });
}
if (direction == 0 && trackSequence == 0)
@ -4742,7 +4739,7 @@ static void junior_rc_diag_flat_to_left_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_FLAT_TO_LEFT_BANK_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 27 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4769,7 +4766,7 @@ static void junior_rc_diag_flat_to_right_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_FLAT_TO_RIGHT_BANK_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 27 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4796,7 +4793,7 @@ static void junior_rc_diag_left_bank_to_flat_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_FLAT_TO_RIGHT_BANK_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 27 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4823,7 +4820,7 @@ static void junior_rc_diag_right_bank_to_flat_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_FLAT_TO_LEFT_BANK_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 27 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 27 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4850,7 +4847,7 @@ static void junior_rc_diag_left_bank_to_25_deg_up_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_LEFT_BANK_TO_25_DEG_UP_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4877,7 +4874,7 @@ static void junior_rc_diag_right_bank_to_25_deg_up_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_RIGHT_BANK_TO_25_DEG_UP_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4904,7 +4901,7 @@ static void junior_rc_diag_25_deg_up_to_left_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_25_DEG_UP_TO_LEFT_BANK_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4931,7 +4928,7 @@ static void junior_rc_diag_25_deg_up_to_right_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_25_DEG_UP_TO_RIGHT_BANK_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4958,7 +4955,7 @@ static void junior_rc_diag_left_bank_to_25_deg_down_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_25_DEG_UP_TO_RIGHT_BANK_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -4985,7 +4982,7 @@ static void junior_rc_diag_right_bank_to_25_deg_down_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_25_DEG_UP_TO_LEFT_BANK_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -5012,7 +5009,7 @@ static void junior_rc_diag_25_deg_down_to_left_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_RIGHT_BANK_TO_25_DEG_UP_E_W_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -5039,7 +5036,7 @@ static void junior_rc_diag_25_deg_down_to_right_bank_paint_setup(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_JUNIOR_RC_DIAG_LEFT_BANK_TO_25_DEG_UP_W_E_PART_0_2);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 0 }, { -16, -16, height + 35 });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height + 35 }, { 32, 32, 0 } });
}
if (trackSequence == 3)
{
@ -5150,8 +5147,8 @@ void junior_rc_paint_track_60_deg_up(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_tile_offsets[direction], height },
{ junior_rc_60_deg_up_bound_lengths[direction], junior_rc_60_deg_up_bound_thickness[direction] },
{ junior_rc_60_deg_up_bound_offsets[direction], height });
{ { junior_rc_60_deg_up_bound_offsets[direction], height },
{ junior_rc_60_deg_up_bound_lengths[direction], junior_rc_60_deg_up_bound_thickness[direction] } });
switch (direction)
{
@ -5229,9 +5226,9 @@ void junior_rc_paint_track_25_deg_up_to_60_deg_up(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_tile_offsets[direction], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][0],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0], height });
{ { junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][0],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] } });
if (junior_rc_track_pieces_25_deg_up_to_60_deg_up[EnumValue(chainType)][direction][1] != 0)
{
@ -5240,9 +5237,9 @@ void junior_rc_paint_track_25_deg_up_to_60_deg_up(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_tile_offsets[direction], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][1],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][1], height });
{ { junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][1], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][1],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] } });
}
switch (direction)
@ -5300,9 +5297,9 @@ void junior_rc_paint_track_60_deg_up_to_25_deg_up(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_tile_offsets[direction], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][0],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0], height });
{ { junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][0], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][0],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] } });
if (junior_rc_track_pieces_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction][1] != 0)
{
@ -5311,9 +5308,9 @@ void junior_rc_paint_track_60_deg_up_to_25_deg_up(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_tile_offsets[direction], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][1],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][1], height });
{ { junior_rc_25_deg_up_to_60_deg_up_bound_offsets[direction][1], height },
{ junior_rc_25_deg_up_to_60_deg_up_bound_lengths[direction][1],
junior_rc_25_deg_up_to_60_deg_up_bound_thickness[direction] } });
}
switch (direction)
@ -5433,7 +5430,7 @@ void junior_rc_paint_track_diag_60_deg_up_to_25_deg_up(
session,
session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_diag_60_deg_up_to_25_deg_up[EnumValue(chainType)][direction]),
{ -16, -16, height }, { 16, 16, 1 }, { 0, 0, height });
{ -16, -16, height }, { { 0, 0, height }, { 16, 16, 1 } });
}
else
{
@ -5465,7 +5462,7 @@ void junior_rc_paint_track_diag_25_deg_down_to_60_deg_down(
session,
session.TrackColours[SCHEME_TRACK].WithIndex(
junior_rc_track_pieces_diag_25_deg_down_to_60_deg_down[EnumValue(chainType)][direction]),
{ -16, -16, height }, { 16, 16, 1 }, { 0, 0, height });
{ -16, -16, height }, { { 0, 0, height }, { 16, 16, 1 } });
}
else
{
@ -5613,8 +5610,9 @@ static void junior_rc_flat_to_60_deg_up_paint_setup(
PaintAddImageAsParent(
session, image_id, { junior_rc_flat_to_60_deg_up_tile_offsets[direction][0], height + 24 },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][0], junior_rc_flat_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_flat_to_60_deg_up_bound_offsets[direction][0], height });
{ { junior_rc_flat_to_60_deg_up_bound_offsets[direction][0], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][0],
junior_rc_flat_to_60_deg_up_bound_thickness[direction] } });
if (junior_rc_track_pieces_flat_to_60_deg_up[isChained][direction][1] != 0)
{
@ -5623,8 +5621,9 @@ static void junior_rc_flat_to_60_deg_up_paint_setup(
PaintAddImageAsParent(
session, image_id, { junior_rc_flat_to_60_deg_up_tile_offsets[direction][1], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][1], junior_rc_flat_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_flat_to_60_deg_up_bound_offsets[direction][1], height });
{ { junior_rc_flat_to_60_deg_up_bound_offsets[direction][1], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][1],
junior_rc_flat_to_60_deg_up_bound_thickness[direction] } });
}
switch (direction)
@ -5673,8 +5672,9 @@ static void junior_rc_60_deg_up_to_flat_paint_setup(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_to_flat_tile_offsets[direction][0], height + 24 },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][0], junior_rc_flat_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_flat_to_60_deg_up_bound_offsets[direction][0], height });
{ { junior_rc_flat_to_60_deg_up_bound_offsets[direction][0], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][0],
junior_rc_flat_to_60_deg_up_bound_thickness[direction] } });
if (junior_rc_track_pieces_60_deg_up_to_flat[isChained][direction][1] != 0)
{
@ -5683,8 +5683,9 @@ static void junior_rc_60_deg_up_to_flat_paint_setup(
PaintAddImageAsParent(
session, image_id, { junior_rc_60_deg_up_to_flat_tile_offsets[direction][1], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][1], junior_rc_flat_to_60_deg_up_bound_thickness[direction] },
{ junior_rc_flat_to_60_deg_up_bound_offsets[direction][1], height });
{ { junior_rc_flat_to_60_deg_up_bound_offsets[direction][1], height },
{ junior_rc_flat_to_60_deg_up_bound_lengths[direction][1],
junior_rc_flat_to_60_deg_up_bound_thickness[direction] } });
}
switch (direction)

View File

@ -195,11 +195,11 @@ static void PaintCarRideTrack25DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
switch (direction)
@ -233,11 +233,11 @@ static void PaintCarRideTrackFlatTo25DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
switch (direction)
@ -271,11 +271,11 @@ static void PaintCarRideTrack25DegUpToFlat(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
switch (direction)
@ -334,12 +334,12 @@ static void PaintCarRideStation(
if (direction == 0 || direction == 2)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { 32, 28, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 0, 2, height }, { 32, 28, 1 } });
}
else if (direction == 1 || direction == 3)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { 28, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 2, 0, height }, { 28, 32, 1 } });
}
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(CarRideTrackPiecesFlat[direction]);
@ -430,19 +430,22 @@ static void PaintCarRideTrackLeftQuarterTurn1Tile(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(CarRideTrackPiecesLeftQuarterTurn1Tile[direction]);
CoordsXYZ offset;
switch (direction)
{
case 0:
PaintAddImageAsParent(session, imageId, { 6, 0, height }, { 26, 24, 1 }, { 6, 2, height });
PaintAddImageAsParent(session, imageId, { 6, 0, height }, { { 6, 2, height }, { 26, 24, 1 } });
break;
case 1:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 26, 1 });
offset = { 0, 0, height };
PaintAddImageAsParent(session, imageId, offset, { offset, { 26, 26, 1 } });
break;
case 2:
PaintAddImageAsParent(session, imageId, { 0, 6, height }, { 24, 26, 1 }, { 2, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 6, height }, { { 2, 6, height }, { 24, 26, 1 } });
break;
case 3:
PaintAddImageAsParent(session, imageId, { 6, 6, height }, { 24, 24, 1 });
offset = { 6, 6, height };
PaintAddImageAsParent(session, imageId, offset, { offset, { 24, 24, 1 } });
break;
}
@ -505,16 +508,16 @@ static void PaintCarRideTrack60DegUp(
switch (direction)
{
case 0:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
break;
case 1:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 98 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 98 } });
break;
case 2:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 98 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 98 } });
break;
case 3:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
break;
}
@ -553,11 +556,11 @@ static void PaintCarRideTrack25DegUpTo60DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
if (CarRideTrackPieces25DegUpTo60DegUp[direction][1] != 0)
@ -566,11 +569,11 @@ static void PaintCarRideTrack25DegUpTo60DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 66 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 66 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 66 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 66 } });
}
}
@ -609,11 +612,11 @@ static void PaintCarRideTrack60DegUpTo25DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
}
if (CarRideTrackPieces60DegUpTo25DegUp[direction][1] != 0)
@ -622,11 +625,11 @@ static void PaintCarRideTrack60DegUpTo25DegUp(
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 66 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 66 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 66 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 66 } });
}
}

View File

@ -39,7 +39,8 @@ static void PaintCircusTent(PaintSession& session, const Ride& ride, uint8_t dir
auto imageIndex = rideEntry->Cars[0].base_image_id + direction;
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { al, cl, height + 3 }, { 24, 24, 47 }, { al + 16, cl + 16, height + 3 });
session, imageTemplate.WithIndex(imageIndex), { al, cl, height + 3 },
{ { al + 16, cl + 16, height + 3 }, { 24, 24, 47 } });
session.CurrentlyDrawnEntity = nullptr;
session.InteractionType = ViewportInteractionItem::Ride;

View File

@ -74,8 +74,8 @@ static void PaintCrookedHouseStructure(
auto imageTemplate = session.TrackColours[SCHEME_MISC];
auto imageIndex = rideEntry->Cars[0].base_image_id + direction;
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { x_offset, y_offset, height + 3 }, { boundBox.length, 127 },
{ boundBox.offset, height + 3 });
session, imageTemplate.WithIndex(imageIndex), { x_offset, y_offset, height + 3 },
{ { boundBox.offset, height + 3 }, { boundBox.length, 127 } });
session.CurrentlyDrawnEntity = nullptr;
}

View File

@ -58,7 +58,7 @@ static void PaintDodgems(
if (stationObject != nullptr && !(stationObject->Flags & STATION_OBJECT_FLAGS::NO_PLATFORMS))
{
auto imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SprDodgemsFloor);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 30, 30, 1 }, { 1, 1, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 1, height }, { 30, 30, 1 } });
track_paint_util_paint_fences(
session, edges, session.MapPosition, trackElement, ride, session.TrackColours[SCHEME_SUPPORTS], height,

View File

@ -141,12 +141,12 @@ static void PaintFerrisWheel(
{
// Bound box is slightly different from track_paint_util_paint_fences
imageId = colourFlags.WithIndex(SPR_FENCE_ROPE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 1, 7 }, { 0, 29, height + 3 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 3 }, { 28, 1, 7 } });
}
if (edges & EDGE_SW && track_paint_util_has_fence(EDGE_SW, session.MapPosition, trackElement, ride, rotation))
{
imageId = colourFlags.WithIndex(SPR_FENCE_ROPE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 7 }, { 30, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 0, height + 2 }, { 1, 32, 7 } });
}
switch (relativeTrackSequence)

View File

@ -49,7 +49,7 @@ static void paint_flying_saucers(
if (stationObject != nullptr && !(stationObject->Flags & STATION_OBJECT_FLAGS::NO_PLATFORMS))
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprFlyingSaucersFloor);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 30, 30, 1 }, { 1, 1, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 1, height }, { 30, 30, 1 } });
}
track_paint_util_paint_fences(

View File

@ -44,9 +44,9 @@ static void PaintHauntedHouseStructure(
auto imageTemplate = session.TrackColours[SCHEME_MISC];
auto baseImageIndex = rideEntry->Cars[0].base_image_id;
auto imageIndex = baseImageIndex + direction;
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { xOffset, yOffset, height }, { boundBox.length, 127 },
{ boundBox.offset, height });
auto bb = BoundBoxXYZ{ { boundBox.offset, height }, { boundBox.length, 127 } };
PaintAddImageAsParent(session, imageTemplate.WithIndex(imageIndex), { xOffset, yOffset, height }, bb);
if (session.DPI.zoom_level <= ZoomLevel{ 0 } && frameNum != 0)
{

View File

@ -89,94 +89,97 @@ static void MazePaintSetup(
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallCentre);
if (mazeEntry & MAZE_ENTRY_FLAG_3)
PaintAddImageAsParent(session, imageId, { 2, 2, height }, { 10, 10, 9 }, { 3, 3, height + 2 });
PaintAddImageAsParent(session, imageId, { 2, 2, height }, { { 3, 3, height + 2 }, { 10, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_7)
PaintAddImageAsParent(session, imageId, { 2, 18, height }, { 10, 10, 9 }, { 3, 19, height + 2 });
PaintAddImageAsParent(session, imageId, { 2, 18, height }, { { 3, 19, height + 2 }, { 10, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_11)
PaintAddImageAsParent(session, imageId, { 18, 18, height }, { 10, 10, 9 }, { 19, 19, height + 2 });
PaintAddImageAsParent(session, imageId, { 18, 18, height }, { { 19, 19, height + 2 }, { 10, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_15)
PaintAddImageAsParent(session, imageId, { 18, 2, height }, { 10, 10, 9 }, { 19, 3, height + 2 });
PaintAddImageAsParent(session, imageId, { 18, 2, height }, { { 19, 3, height + 2 }, { 10, 10, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallTopLeft);
if (mazeEntry & MAZE_ENTRY_FLAG_0)
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { 10, 1, 9 }, { 3, 1, height + 2 });
PaintAddImageAsParent(session, imageId, { 2, 0, height }, { { 3, 1, height + 2 }, { 10, 1, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_13)
PaintAddImageAsParent(session, imageId, { 18, 0, height }, { 10, 1, 9 }, { 19, 1, height + 2 });
PaintAddImageAsParent(session, imageId, { 18, 0, height }, { { 19, 1, height + 2 }, { 10, 1, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallBottomRight);
if (mazeEntry & MAZE_ENTRY_FLAG_5)
PaintAddImageAsParent(session, imageId, { 2, 30, height }, { 10, 1, 9 }, { 3, 30, height + 2 });
PaintAddImageAsParent(session, imageId, { 2, 30, height }, { { 3, 30, height + 2 }, { 10, 1, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_8)
PaintAddImageAsParent(session, imageId, { 18, 30, height }, { 10, 1, 9 }, { 19, 30, height + 2 });
PaintAddImageAsParent(session, imageId, { 18, 30, height }, { { 19, 30, height + 2 }, { 10, 1, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallTopRight);
if (mazeEntry & MAZE_ENTRY_FLAG_1)
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { 1, 10, 9 }, { 1, 3, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 2, height }, { { 1, 3, height + 2 }, { 1, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_4)
PaintAddImageAsParent(session, imageId, { 0, 18, height }, { 1, 10, 9 }, { 1, 19, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 18, height }, { { 1, 19, height + 2 }, { 1, 10, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallBottomLeft);
if (mazeEntry & MAZE_ENTRY_FLAG_12)
PaintAddImageAsParent(session, imageId, { 30, 2, height }, { 1, 10, 9 }, { 30, 3, height + 2 });
PaintAddImageAsParent(session, imageId, { 30, 2, height }, { { 30, 3, height + 2 }, { 1, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_9)
PaintAddImageAsParent(session, imageId, { 30, 18, height }, { 1, 10, 9 }, { 30, 19, height + 2 });
PaintAddImageAsParent(session, imageId, { 30, 18, height }, { { 30, 19, height + 2 }, { 1, 10, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallInnerNeSw);
if (mazeEntry & MAZE_ENTRY_FLAG_2)
PaintAddImageAsParent(session, imageId, { 2, 14, height }, { 10, 4, 9 }, { 3, 14, height + 2 });
PaintAddImageAsParent(session, imageId, { 2, 14, height }, { { 3, 14, height + 2 }, { 10, 4, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_10)
PaintAddImageAsParent(session, imageId, { 18, 14, height }, { 10, 4, 9 }, { 19, 14, height + 2 });
PaintAddImageAsParent(session, imageId, { 18, 14, height }, { { 19, 14, height + 2 }, { 10, 4, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetWallInnerNwSe);
if (mazeEntry & MAZE_ENTRY_FLAG_14)
PaintAddImageAsParent(session, imageId, { 14, 2, height }, { 4, 10, 9 }, { 14, 3, height + 2 });
PaintAddImageAsParent(session, imageId, { 14, 2, height }, { { 14, 3, height + 2 }, { 4, 10, 9 } });
if (mazeEntry & MAZE_ENTRY_FLAG_6)
PaintAddImageAsParent(session, imageId, { 14, 18, height }, { 4, 10, 9 }, { 14, 19, height + 2 });
PaintAddImageAsParent(session, imageId, { 14, 18, height }, { { 14, 19, height + 2 }, { 4, 10, 9 } });
imageId = baseImage.WithIndexOffset(SprMazeOffsetColumnCorner);
if (mazeEntry & (MAZE_ENTRY_FLAG_0 | MAZE_ENTRY_FLAG_1))
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 9 }, { 1, 1, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 1, height + 2 }, { 1, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_4 | MAZE_ENTRY_FLAG_5))
PaintAddImageAsParent(session, imageId, { 0, 30, height }, { 1, 1, 9 }, { 1, 30, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 30, height }, { { 1, 30, height + 2 }, { 1, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_8 | MAZE_ENTRY_FLAG_9))
PaintAddImageAsParent(session, imageId, { 30, 30, height }, { 1, 1, 9 }, { 30, 30, height + 2 });
PaintAddImageAsParent(session, imageId, { 30, 30, height }, { { 30, 30, height + 2 }, { 1, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_12 | MAZE_ENTRY_FLAG_13))
PaintAddImageAsParent(session, imageId, { 30, 0, height }, { 1, 1, 9 }, { 30, 1, height + 2 });
PaintAddImageAsParent(session, imageId, { 30, 0, height }, { { 30, 1, height + 2 }, { 1, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_0 | MAZE_ENTRY_FLAG_13 | MAZE_ENTRY_FLAG_14))
PaintAddImageAsParent(
session, ImageId(baseImageId + SprMazeOffsetColumnTopLeft), { 14, 0, height }, { 2, 1, 9 }, { 15, 1, height + 2 });
session, ImageId(baseImageId + SprMazeOffsetColumnTopLeft), { 14, 0, height },
{ { 15, 1, height + 2 }, { 2, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_5 | MAZE_ENTRY_FLAG_6 | MAZE_ENTRY_FLAG_8))
PaintAddImageAsParent(
session, ImageId(baseImageId + SprMazeOffsetColumnBottomRight), { 14, 30, height }, { 2, 1, 9 },
{ 15, 30, height + 2 });
session, ImageId(baseImageId + SprMazeOffsetColumnBottomRight), { 14, 30, height },
{ { 15, 30, height + 2 }, { 2, 1, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_1 | MAZE_ENTRY_FLAG_2 | MAZE_ENTRY_FLAG_4))
PaintAddImageAsParent(
session, ImageId(baseImageId + SprMazeOffsetColumnTopRight), { 0, 14, height }, { 1, 2, 9 }, { 1, 15, height + 2 });
session, ImageId(baseImageId + SprMazeOffsetColumnTopRight), { 0, 14, height },
{ { 1, 15, height + 2 }, { 1, 2, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_9 | MAZE_ENTRY_FLAG_10 | MAZE_ENTRY_FLAG_12))
PaintAddImageAsParent(
session, ImageId(baseImageId + SprMazeOffsetColumnBottomLeft), { 30, 14, height }, { 1, 2, 9 },
{ 30, 15, height + 2 });
session, ImageId(baseImageId + SprMazeOffsetColumnBottomLeft), { 30, 14, height },
{ { 30, 15, height + 2 }, { 1, 2, 9 } });
if (mazeEntry & (MAZE_ENTRY_FLAG_2 | MAZE_ENTRY_FLAG_6 | MAZE_ENTRY_FLAG_10 | MAZE_ENTRY_FLAG_14))
{
PaintAddImageAsParent(
session, ImageId(baseImageId + SprMazeOffsetColumnCentre), { 14, 14, height }, { 2, 2, 8 }, { 15, 15, height + 2 });
session, ImageId(baseImageId + SprMazeOffsetColumnCentre), { 14, 14, height },
{ { 15, 15, height + 2 }, { 2, 2, 8 } });
PaintUtilSetSegmentSupportHeight(session, SEGMENT_C4, height + 12, 0x20);
}

View File

@ -452,13 +452,13 @@ static PaintStruct* MiniGolfPaintUtil7C(
if (direction & 1)
{
return PaintAddImageAsParent(
session, imageId, { yOffset, x_offset, zOffset }, { boundBoxLengthY, boundBoxLengthX, boundBoxLengthZ },
{ boundBoxOffsetY, boundBoxOffsetX, boundBoxOffsetZ });
session, imageId, { yOffset, x_offset, zOffset },
{ { boundBoxOffsetY, boundBoxOffsetX, boundBoxOffsetZ }, { boundBoxLengthY, boundBoxLengthX, boundBoxLengthZ } });
}
return PaintAddImageAsParent(
session, imageId, { x_offset, yOffset, zOffset }, { boundBoxLengthX, boundBoxLengthY, boundBoxLengthZ },
{ boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ });
session, imageId, { x_offset, yOffset, zOffset },
{ { boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ }, { boundBoxLengthX, boundBoxLengthY, boundBoxLengthZ } });
}
static bool MiniGolfPaintUtilShouldDrawFence(PaintSession& session, const TrackElement& trackElement)
@ -493,13 +493,13 @@ static void PaintMiniGolfTrackFlat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprMiniGolfFlatNwSe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 1 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_PATH_AND_MINI_GOLF);
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprMiniGolfFlatSwNe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 1 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_PATH_AND_MINI_GOLF);
}
@ -512,10 +512,10 @@ static void PaintMiniGolfTrackFlat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceBackNwSe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 7 }, { 10, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 10, 0, height + 2 }, { 1, 32, 7 } });
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceFrontNwSe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 7 }, { 22, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 22, 0, height + 2 }, { 1, 32, 7 } });
}
else
{

View File

@ -56,11 +56,11 @@ static void PaintFacility(
// Base image if door was drawn
if (direction == 1)
{
PaintAddImageAsParent(session, imageId.WithIndexOffset(2), offset, { 2, 28, 29 }, { 28, 2, height });
PaintAddImageAsParent(session, imageId.WithIndexOffset(2), offset, { { 28, 2, height }, { 2, 28, 29 } });
}
else if (direction == 2)
{
PaintAddImageAsParent(session, imageId.WithIndexOffset(4), offset, { 28, 2, 29 }, { 2, 28, height });
PaintAddImageAsParent(session, imageId.WithIndexOffset(4), offset, { { 2, 28, height }, { 28, 2, 29 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);

View File

@ -39,7 +39,7 @@ static void Paint3dCinemaDome(
auto imageId = imageTemplate.WithIndex(rideEntry->Cars[0].base_image_id + direction);
PaintAddImageAsParent(
session, imageId, { xOffset, yOffset, height + 3 }, { 24, 24, 47 }, { xOffset + 16, yOffset + 16, height + 3 });
session, imageId, { xOffset, yOffset, height + 3 }, { { xOffset + 16, yOffset + 16, height + 3 }, { 24, 24, 47 } });
session.CurrentlyDrawnEntity = nullptr;
session.InteractionType = ViewportInteractionItem::Ride;

View File

@ -133,20 +133,20 @@ static void paint_go_karts_track_flat(
if (direction == 0 || direction == 2)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_FRONT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 3 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 32, 1, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_FRONT_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 3 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
@ -168,21 +168,21 @@ static void paint_go_karts_track_25_deg_up(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_25_deg_up[direction][0]);
if (direction == 0 || direction == 2)
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
}
else
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
}
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_25_deg_up[direction][1]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 11 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 32, 1, 11 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 11 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 32, 11 } });
}
session.WoodenSupportsPrependTo = ps;
@ -222,21 +222,21 @@ static void paint_go_karts_track_flat_to_25_deg_up(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_flat_to_25_deg_up[direction][0]);
if (direction == 0 || direction == 2)
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
}
else
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
}
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_flat_to_25_deg_up[direction][1]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 11 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 32, 1, 11 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 11 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 32, 11 } });
}
session.WoodenSupportsPrependTo = ps;
@ -276,21 +276,21 @@ static void paint_go_karts_track_25_deg_up_to_flat(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_25_deg_up_to_flat[direction][0]);
if (direction == 0 || direction == 2)
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
}
else
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
}
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(go_karts_track_pieces_25_deg_up_to_flat[direction][1]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 11 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 32, 1, 11 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 11 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 32, 11 } });
}
session.WoodenSupportsPrependTo = ps;
@ -362,11 +362,11 @@ static void paint_go_karts_station(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
}
if (direction == 0 || direction == 2)
@ -383,13 +383,13 @@ static void paint_go_karts_station(
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 3 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 32, 1, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 3 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
@ -414,34 +414,34 @@ static void paint_go_karts_station(
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(hasGreenLight ? SPR_GO_KARTS_START_POLE_GREEN_SW_NE : SPR_GO_KARTS_START_POLE_RED_SW_NE));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 1, 1, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 1, height + 4 }, { 3, 3, 13 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(hasGreenLight ? SPR_GO_KARTS_START_LIGHTS_GREEN_SW_NE : SPR_GO_KARTS_START_LIGHTS_RED_SW_NE));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 1, 28, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 28, height + 4 }, { 3, 3, 13 } });
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_START_POLE_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 1, 28, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 28, height + 4 }, { 3, 3, 13 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_START_LIGHTS_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 28, 28, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 28, height + 4 }, { 3, 3, 13 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_START_POLE_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 28, 1, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 1, height + 4 }, { 3, 3, 13 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_START_LIGHTS_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 28, 28, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 28, height + 4 }, { 3, 3, 13 } });
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(hasGreenLight ? SPR_GO_KARTS_START_POLE_GREEN_SE_NW : SPR_GO_KARTS_START_POLE_RED_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 1, 1, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 1, height + 4 }, { 3, 3, 13 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(hasGreenLight ? SPR_GO_KARTS_START_LIGHTS_GREEN_SE_NW : SPR_GO_KARTS_START_LIGHTS_RED_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 3, 3, 13 }, { 28, 1, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 1, height + 4 }, { 3, 3, 13 } });
break;
}
}
@ -463,40 +463,40 @@ static void paint_go_karts_track_left_quarter_turn_1_tile(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 28, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 28, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_A_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 3 }, { 29, 2, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 2, height + 2 }, { 1, 1, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_B_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 1, 3 }, { 14, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 29, height + 2 }, { 16, 1, 3 } });
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_NE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 30, 30, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 30, 30, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_A_NE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 1, 3 }, { 2, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 29, height + 2 }, { 16, 1, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_B_NE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 16, 3 }, { 29, 2, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 2, height + 2 }, { 1, 16, 3 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_SE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 28, 32, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_A_SE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 3 }, { 2, 2, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 2, height + 2 }, { 1, 1, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_B_SE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 16, 3 }, { 29, 14, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 14, height + 2 }, { 1, 16, 3 } });
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_SW_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_GO_KARTS_FLAT_QUARTER_TURN_1_TILE_EDGE_A_SW_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 3 }, { 29, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 29, height + 2 }, { 1, 1, 3 } });
// The empty sprite isn't drawn
break;

View File

@ -42,11 +42,11 @@ void vehicle_visual_launched_freefall(
// Draw back:
int32_t baseImage_id = carEntry->base_image_id + ((vehicle->restraints_position / 64) * 2);
auto image_id = imageFlags.WithIndex(baseImage_id + 2);
PaintAddImageAsParent(session, image_id, { 0, 0, z }, { 2, 2, 41 }, { -11, -11, z + 1 });
PaintAddImageAsParent(session, image_id, { 0, 0, z }, { { -11, -11, z + 1 }, { 2, 2, 41 } });
// Draw front:
image_id = imageFlags.WithIndex(baseImage_id + 1);
PaintAddImageAsParent(session, image_id, { 0, 0, z }, { 16, 16, 41 }, { -5, -5, z + 1 });
PaintAddImageAsParent(session, image_id, { 0, 0, z }, { { -5, -5, z + 1 }, { 16, 16, 41 } });
// Draw peeps:
if (session.DPI.zoom_level < ZoomLevel{ 2 } && vehicle->num_peeps > 0 && !vehicle->IsGhost())
@ -109,15 +109,15 @@ static void paint_launched_freefall_base(
if (trackSequence == 0)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_LAUNCHED_FREEFALL_TOWER_BASE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 8, 8, height + 3 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 8, 8, height + 3 }, { 2, 2, 27 } });
height += 32;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_LAUNCHED_FREEFALL_TOWER_SEGMENT);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 30 }, { 8, 8, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 8, 8, height }, { 2, 2, 30 } });
height += 32;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_LAUNCHED_FREEFALL_TOWER_SEGMENT);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 30 }, { 8, 8, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 8, 8, height }, { 2, 2, 30 } });
PaintUtilSetVerticalTunnel(session, height + 32);
@ -171,7 +171,7 @@ static void paint_launched_freefall_tower_section(
}
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_LAUNCHED_FREEFALL_TOWER_SEGMENT);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 30 }, { 8, 8, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 8, 8, height }, { 2, 2, 30 } });
const TileElement* nextTileElement = reinterpret_cast<const TileElement*>(&trackElement) + 1;
if (trackElement.IsLastForTile() || trackElement.GetClearanceZ() != nextTileElement->GetBaseZ())

View File

@ -195,11 +195,11 @@ static void chairlift_paint_station_ne_sw(
if (!isStart && !isEnd)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(((direction == 0) ? SPR_20502 : SPR_20504));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
}
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_FLOOR_METAL);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
bool hasFence = track_paint_util_has_fence(EDGE_NW, pos, trackElement, ride, session.CurrentRotation);
if (hasFence)
@ -219,7 +219,7 @@ static void chairlift_paint_station_ne_sw(
if (hasFence)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_FENCE_METAL_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 27 }, { 0, 30, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 30, height + 2 }, { 32, 1, 27 } });
}
track_paint_util_draw_station_covers(session, EDGE_SE, hasFence, stationObj, height);
@ -228,11 +228,11 @@ static void chairlift_paint_station_ne_sw(
if ((direction == 0 && isStart) || (direction == 2 && isEnd))
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_FENCE_METAL_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 28, 27 }, { 30, 2, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 2, height + 4 }, { 1, 28, 27 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
chairlift_bullwheel_frames[ride.chairlift_bullwheel_rotation / 16384]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 26 }, { 14, 14, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_END_CAP_NE);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
@ -243,7 +243,7 @@ static void chairlift_paint_station_ne_sw(
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
chairlift_bullwheel_frames[ride.chairlift_bullwheel_rotation / 16384]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 26 }, { 14, 14, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_END_CAP_SW);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
@ -254,14 +254,14 @@ static void chairlift_paint_station_ne_sw(
if (drawBackColumn)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_COLUMN_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 16, height + 2 }, { 1, 1, 7 }, { 1, 16, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 16, height + 2 }, { { 1, 16, height + 2 }, { 1, 1, 7 } });
}
if (drawFrontColumn)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_COLUMN_NE_SW);
PaintAddImageAsParent(
session, imageId, { 30, 16, height + 2 }, { 1, 1, 7 }, { 1, 16, height + 2 }); // bound offset x is wrong?
session, imageId, { 30, 16, height + 2 }, { { 1, 16, height + 2 }, { 1, 1, 7 } }); // bound offset x is wrong?
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -287,11 +287,11 @@ static void chairlift_paint_station_se_nw(
if (!isStart && !isEnd)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(((direction == 1) ? SPR_20503 : SPR_20505));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
}
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_FLOOR_METAL);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
bool hasFence = track_paint_util_has_fence(EDGE_NE, pos, trackElement, ride, session.CurrentRotation);
if (hasFence)
@ -311,7 +311,7 @@ static void chairlift_paint_station_se_nw(
if (hasFence)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_FENCE_METAL_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 27 }, { 30, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 0, height + 2 }, { 1, 32, 27 } });
}
track_paint_util_draw_station_covers(session, EDGE_SW, hasFence, stationObj, height);
@ -321,7 +321,7 @@ static void chairlift_paint_station_se_nw(
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
chairlift_bullwheel_frames[ride.chairlift_bullwheel_rotation / 16384]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 26 }, { 14, 14, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_END_CAP_SE);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
@ -331,14 +331,16 @@ static void chairlift_paint_station_se_nw(
else if ((direction == 3 && isStart) || (direction == 1 && isEnd))
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_FENCE_METAL_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 1, 27 }, { 2, 30, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 30, height + 4 }, { 28, 1, 27 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
chairlift_bullwheel_frames[ride.chairlift_bullwheel_rotation / 16384]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 26 }, { 14, 14, height + 4 });
auto bb = BoundBoxXYZ{ { 14, 14, height + 4 }, { 4, 4, 26 } };
PaintAddImageAsParent(session, imageId, { 0, 0, height }, bb);
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_END_CAP_NW);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 14, 14, height + 4 }, { 4, 4, 26 } });
PaintAddImageAsChild(session, imageId, { 0, 0, height }, bb);
drawRightColumn = false;
}
@ -346,14 +348,14 @@ static void chairlift_paint_station_se_nw(
if (drawLeftColumn)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_COLUMN_SE_NW);
PaintAddImageAsParent(session, imageId, { 16, 0, height + 2 }, { 1, 1, 7 }, { 16, 1, height + 2 });
PaintAddImageAsParent(session, imageId, { 16, 0, height + 2 }, { { 16, 1, height + 2 }, { 1, 1, 7 } });
}
if (drawRightColumn)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_STATION_COLUMN_SE_NW);
PaintAddImageAsParent(
session, imageId, { 16, 30, height + 2 }, { 1, 1, 7 }, { 16, 1, height + 2 }); // bound offset x is wrong?
session, imageId, { 16, 30, height + 2 }, { { 16, 1, height + 2 }, { 1, 1, 7 } }); // bound offset x is wrong?
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
@ -385,13 +387,13 @@ static void chairlift_paint_flat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_FLAT_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_FLAT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
}
@ -410,25 +412,25 @@ static void chairlift_paint_25_deg_up(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_UP_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_SQUARE_7);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_UP_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_SQUARE_8);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_UP_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_SQUARE_8);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CABLE_UP_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_SQUARE_7);
break;
}
@ -448,40 +450,40 @@ static void chairlift_paint_flat_to_25_deg_up(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20508);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20520);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20509);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20521);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_8);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20510);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20522);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_8);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20511);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20523);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
break;
@ -503,40 +505,40 @@ static void chairlift_paint_25_deg_up_to_flat(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20512);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20524);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_SQUARE_FLAT);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20513);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20525);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_14);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20514);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 2 }, { 0, 13, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 13, height + 28 }, { 32, 6, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20526);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_14);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_20515);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 2 }, { 13, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 13, 0, height + 28 }, { 6, 32, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20527);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 4, 4, 25 }, { 14, 14, height + 1 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 14, 14, height + 1 }, { 4, 4, 25 } });
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_SQUARE_FLAT);
break;
@ -582,50 +584,50 @@ static void chairlift_paint_left_quarter_turn_1_tile(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CORNER_NW_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 16, 2 }, { 16, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 0, height + 28 }, { 16, 16, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20532);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 16, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 4, height }, { 2, 2, 27 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20536);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 28, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 4, height }, { 2, 2, 27 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CORNER_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 16, 2 }, { 0, 0, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20533);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 16, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 4, height }, { 2, 2, 27 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20537);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 4, 16, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 16, height }, { 2, 2, 27 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CORNER_SE_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 16, 2 }, { 0, 16, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 16, height + 28 }, { 16, 16, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20534);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 4, 16, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 16, height }, { 2, 2, 27 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20538);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 16, 28, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 28, height }, { 2, 2, 27 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_CHAIRLIFT_CORNER_SW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 16, 16, 2 }, { 16, 16, height + 28 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 2 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20535);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 28, 16, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 16, height }, { 2, 2, 27 } });
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_20539);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 27 }, { 16, 28, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 16, 28, height }, { 2, 2, 27 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);

View File

@ -39,10 +39,10 @@ static void paint_lift_cage(PaintSession& session, int8_t index, ImageId colourF
ImageId imageId;
imageId = colourFlags.WithIndex(lift_cage_sprites[1 + index][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 30 }, { 2, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 2, height }, { 2, 2, 30 } });
imageId = colourFlags.WithIndex(lift_cage_sprites[1 + index][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 2, 30 }, { 28, 28, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 28, height }, { 2, 2, 30 } });
}
/** rct2: 0x0076C6CC */
@ -71,7 +71,7 @@ static void paint_lift_base(
int32_t edges = edges_3x3[trackSequence];
auto imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_FLOOR_METAL_B);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
track_paint_util_paint_fences(
session, edges, session.MapPosition, trackElement, ride, session.TrackColours[SCHEME_TRACK], height, fenceSpritesMetalB,

View File

@ -1359,7 +1359,7 @@ static void paint_miniature_railway_track_right_quarter_turn_3_tiles(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_G2_MINIATURE_RAILWAY_QUARTER_TURN_3_TILES_SW_SE_PART_3);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 8, 8, 2 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 8, 8, 2 } });
}
}
else
@ -1545,7 +1545,7 @@ static void paint_miniature_railway_track_left_eighth_to_diag(
bounds = miniature_railway_track_pieces_right_eight_to_orthog_bounds[direction][index];
offset = miniature_railway_track_pieces_right_eight_to_orthog_offset[direction][index];
}
PaintAddImageAsParent(session, imageId, { 0, 0, height }, bounds, { offset, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { offset, height }, bounds });
}
}
else
@ -1554,7 +1554,7 @@ static void paint_miniature_railway_track_left_eighth_to_diag(
miniature_railway_floor_track_pieces_left_eight_to_diag[direction][trackSequence]);
CoordsXY offset = miniature_railway_track_floor_pieces_left_eight_to_diag_offset[direction][trackSequence];
CoordsXYZ bounds = miniature_railway_track_floor_pieces_left_eight_to_diag_bounds[direction][trackSequence];
PaintAddImageAsParent(session, imageId, { 0, 0, height }, bounds, { offset, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { offset, height }, bounds });
int8_t index = paint_miniature_railway_eighth_to_diag_index[trackSequence];
if (index >= 0)
@ -1710,7 +1710,7 @@ static void paint_miniature_railway_track_right_eighth_to_diag(
bounds = miniature_railway_track_pieces_left_eight_to_orthog_bounds[direction][index];
offset = miniature_railway_track_pieces_left_eight_to_orthog_offset[direction][index];
}
PaintAddImageAsParent(session, imageId, { 0, 0, height }, bounds, { offset, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { offset, height }, bounds });
}
}
else
@ -1719,7 +1719,7 @@ static void paint_miniature_railway_track_right_eighth_to_diag(
miniature_railway_floor_track_pieces_right_eight_to_diag[direction][trackSequence]);
CoordsXY offset = miniature_railway_track_floor_pieces_right_eight_to_diag_offset[direction][trackSequence];
CoordsXYZ bounds = miniature_railway_track_floor_pieces_right_eight_to_diag_bounds[direction][trackSequence];
PaintAddImageAsParent(session, imageId, { 0, 0, height }, bounds, { offset, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { offset, height }, bounds });
int8_t index = paint_miniature_railway_eighth_to_diag_index[trackSequence];
if (index >= 0)
@ -1835,7 +1835,7 @@ static void miniature_railway_track_diag_flat(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage), { 0, 0, height },
{ floorBoundSize, (drawRail ? 2 : 0) }, { floorBoundOffset, height });
{ { floorBoundOffset, height }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -1935,8 +1935,8 @@ static void miniature_railway_track_diag_25_deg_up(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage),
{ 0, 0, height + offsetsB[direction][trackSequence][0] }, { floorBoundSize, (drawRail ? 2 : 0) },
{ floorBoundOffset, height + offsetsB[direction][trackSequence][1] });
{ 0, 0, height + offsetsB[direction][trackSequence][0] },
{ { floorBoundOffset, height + offsetsB[direction][trackSequence][1] }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -1947,8 +1947,8 @@ static void miniature_railway_track_diag_25_deg_up(
else if (drawRail)
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height }, { 32, 32, 2 },
{ -16, -16, height + offsetB[direction] });
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height },
{ { -16, -16, height + offsetB[direction] }, { 32, 32, 2 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -1987,7 +1987,7 @@ static void miniature_railway_track_diag_flat_to_25_deg_up(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage), { 0, 0, height },
{ floorBoundSize, (drawRail ? 2 : 0) }, { floorBoundOffset, height });
{ { floorBoundOffset, height }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -2062,8 +2062,8 @@ static void miniature_railway_track_diag_25_deg_up_to_flat(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage),
{ 0, 0, height + offsetsB[direction][trackSequence][0] }, { floorBoundSize, (drawRail ? 2 : 0) },
{ floorBoundOffset, height + offsetsB[direction][trackSequence][1] });
{ 0, 0, height + offsetsB[direction][trackSequence][0] },
{ { floorBoundOffset, height + offsetsB[direction][trackSequence][1] }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -2074,8 +2074,8 @@ static void miniature_railway_track_diag_25_deg_up_to_flat(
else if (drawRail)
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height }, { 32, 32, 2 },
{ -16, -16, height + railOffsets[direction] });
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height },
{ { -16, -16, height + railOffsets[direction] }, { 32, 32, 2 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -2137,8 +2137,8 @@ static void miniature_railway_track_diag_25_deg_down(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage),
{ 0, 0, height + offsetsB[direction][trackSequence][0] }, { floorBoundSize, (drawRail ? 2 : 0) },
{ floorBoundOffset, height + offsetsB[direction][trackSequence][1] });
{ 0, 0, height + offsetsB[direction][trackSequence][0] },
{ { floorBoundOffset, height + offsetsB[direction][trackSequence][1] }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -2149,8 +2149,8 @@ static void miniature_railway_track_diag_25_deg_down(
else if (drawRail)
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height }, { 32, 32, 2 },
{ -16, -16, height + railOffsets[direction] });
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height },
{ { -16, -16, height + railOffsets[direction] }, { 32, 32, 2 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -2211,8 +2211,8 @@ static void miniature_railway_track_diag_flat_to_25_deg_down(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage),
{ 0, 0, height + offsetsB[direction][trackSequence][0] }, { floorBoundSize, (drawRail ? 2 : 0) },
{ floorBoundOffset, height + offsetsB[direction][trackSequence][1] });
{ 0, 0, height + offsetsB[direction][trackSequence][0] },
{ { floorBoundOffset, height + offsetsB[direction][trackSequence][1] }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -2223,8 +2223,8 @@ static void miniature_railway_track_diag_flat_to_25_deg_down(
else if (drawRail)
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height }, { 32, 32, 2 },
{ -16, -16, height + railOffsets[direction] });
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height },
{ { -16, -16, height + railOffsets[direction] }, { 32, 32, 2 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -2261,7 +2261,7 @@ static void miniature_railway_track_diag_25_deg_down_to_flat(
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_SUPPORTS].WithIndex(floorImage), { 0, 0, height },
{ floorBoundSize, (drawRail ? 2 : 0) }, { floorBoundOffset, height });
{ { floorBoundOffset, height }, { floorBoundSize, (drawRail ? 2 : 0) } });
if (drawRail)
{
PaintAddImageAsChild(
@ -2272,8 +2272,8 @@ static void miniature_railway_track_diag_25_deg_down_to_flat(
else if (drawRail)
{
PaintAddImageAsParent(
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height }, { 32, 32, 2 },
{ -16, -16, height });
session, session.TrackColours[SCHEME_TRACK].WithIndex(imageId), { -16, -16, height },
{ { -16, -16, height }, { 32, 32, 2 } });
}
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);

View File

@ -41,18 +41,18 @@ static void paint_boat_hire_track_flat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_BACK_NW_SE);
PaintAddImageAsParent(session, imageId, offset, { 1, 32, 3 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 4, 0, height }, { 1, 32, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_FRONT_NW_SE);
PaintAddImageAsParent(session, imageId, offset, { 1, 32, 3 }, { 28, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 28, 0, height }, { 1, 32, 3 } });
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_BACK_SW_NE);
PaintAddImageAsParent(session, imageId, offset, { 32, 1, 3 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 4, height }, { 32, 1, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_FRONT_SW_NE);
PaintAddImageAsParent(session, imageId, offset, { 32, 1, 3 }, { 0, 28, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 28, height }, { 32, 1, 3 } });
}
PaintUtilSetSegmentSupportHeight(
@ -95,31 +95,31 @@ static void paint_boat_hire_track_left_quarter_turn_1_tile(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_BACK_SW_NW);
PaintAddImageAsParent(session, imageId, offset, { 32, 32, 0 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 0, height }, { 32, 32, 0 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_FRONT_SW_NW);
PaintAddImageAsParent(session, imageId, offset, { 3, 3, 3 }, { 28, 28, height + 2 });
PaintAddImageAsParent(session, imageId, offset, { { 28, 28, height + 2 }, { 3, 3, 3 } });
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_BACK_NW_NE);
PaintAddImageAsParent(session, imageId, offset, { 32, 32, 0 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 0, height }, { 32, 32, 0 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_FRONT_NW_NE);
PaintAddImageAsParent(session, imageId, offset, { 3, 3, 3 }, { 28, 28, height + 2 });
PaintAddImageAsParent(session, imageId, offset, { { 28, 28, height + 2 }, { 3, 3, 3 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_BACK_NE_SE);
PaintAddImageAsParent(session, imageId, offset, { 32, 32, 0 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 0, height }, { 32, 32, 0 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_FRONT_NE_SE);
PaintAddImageAsParent(session, imageId, offset, { 3, 3, 3 }, { 28, 28, height + 2 });
PaintAddImageAsParent(session, imageId, offset, { { 28, 28, height + 2 }, { 3, 3, 3 } });
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_FRONT_SE_SW);
PaintAddImageAsParent(session, imageId, offset, { 3, 3, 3 }, { 28, 28, height + 2 });
PaintAddImageAsParent(session, imageId, offset, { { 28, 28, height + 2 }, { 3, 3, 3 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_BOAT_HIRE_FLAT_QUARTER_TURN_1_TILE_BACK_SE_SW);
PaintAddImageAsParent(session, imageId, offset, { 32, 32, 0 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, offset, { { 0, 0, height }, { 32, 32, 0 } });
break;
}