Clean up PaintAddImageAsParent() calls (#19392)

This commit is contained in:
Michael Steenbeek 2023-02-13 23:07:39 +01:00 committed by GitHub
parent dfb2c3fa60
commit 70af1c6c0d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 420 additions and 426 deletions

View File

@ -674,31 +674,6 @@ void PaintSessionFree([[maybe_unused]] PaintSession* session)
GetContext()->GetPainter()->ReleaseSession(session);
}
/**
* rct2: 0x006861AC, 0x00686337, 0x006864D0, 0x0068666B, 0x0098196C
*
* @param image_id (ebx)
* @param x_offset (al)
* @param y_offset (cl)
* @param bound_box_length_x (di)
* @param bound_box_length_y (si)
* @param bound_box_length_z (ah)
* @param z_offset (dx)
* @return (ebp) PaintStruct on success (CF == 0), nullptr on failure (CF == 1)
*/
PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const CoordsXYZ& boundBoxSize)
{
return PaintAddImageAsParent(session, image_id, offset, { offset, boundBoxSize });
}
PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const CoordsXYZ& boundBoxSize,
const CoordsXYZ& boundBoxOffset)
{
return PaintAddImageAsParent(session, image_id, offset, { boundBoxOffset, boundBoxSize });
}
/**
* rct2: 0x00686806, 0x006869B2, 0x00686B6F, 0x00686D31, 0x0098197C
*

View File

@ -295,13 +295,26 @@ extern bool gPaintBoundingBoxes;
extern bool gPaintBlockedTiles;
extern bool gPaintWidePathsAsGhost;
PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const CoordsXYZ& boundBoxSize);
PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const CoordsXYZ& boundBoxSize,
const CoordsXYZ& boundBoxOffset);
PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const BoundBoxXYZ& boundBox);
/**
* rct2: 0x006861AC, 0x00686337, 0x006864D0, 0x0068666B, 0x0098196C
*
* @param image_id (ebx)
* @param x_offset (al)
* @param y_offset (cl)
* @param bound_box_length_x (di)
* @param bound_box_length_y (si)
* @param bound_box_length_z (ah)
* @param z_offset (dx)
* @return (ebp) PaintStruct on success (CF == 0), nullptr on failure (CF == 1)
*/
inline PaintStruct* PaintAddImageAsParent(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const CoordsXYZ& boundBoxSize)
{
return PaintAddImageAsParent(session, image_id, offset, { offset, boundBoxSize });
}
[[nodiscard]] PaintStruct* PaintAddImageAsOrphan(
PaintSession& session, const ImageId image_id, const CoordsXYZ& offset, const BoundBoxXYZ& boundBox);
PaintStruct* PaintAddImageAsChild(

View File

@ -17,11 +17,12 @@ PaintStruct* PaintAddImageAsParentRotated(
if (direction & 1)
{
return PaintAddImageAsParent(
session, imageId, { offset.y, offset.x, offset.z }, { boundBox.length.y, boundBox.length.x, boundBox.length.z },
{ boundBox.offset.y, boundBox.offset.x, boundBox.offset.z });
session, imageId, { offset.y, offset.x, offset.z },
{ { boundBox.offset.y, boundBox.offset.x, boundBox.offset.z },
{ boundBox.length.y, boundBox.length.x, boundBox.length.z } });
}
return PaintAddImageAsParent(session, imageId, offset, boundBox.length, boundBox.offset);
return PaintAddImageAsParent(session, imageId, offset, boundBox);
}
PaintStruct* PaintAddImageAsChildRotated(

View File

@ -967,7 +967,7 @@ bool MetalASupportsPaintSetup(
imageIndex += z - 1;
auto image_id = imageTemplate.WithIndex(imageIndex);
PaintAddImageAsParent(session, image_id, { xOffset, yOffset, height }, { 0, 0, 0 }, boundBoxOffset);
PaintAddImageAsParent(session, image_id, { xOffset, yOffset, height }, { boundBoxOffset, { 0, 0, 0 } });
height += z;
}
@ -1148,8 +1148,8 @@ bool MetalBSupportsPaintSetup(
uint32_t imageId = _97B15C[supportType].beam_id + (beamLength - 1);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageId), { SupportBoundBoxes[originalSegment], baseHeight }, { 0, 0, 0 },
{ SupportBoundBoxes[originalSegment], height });
session, imageTemplate.WithIndex(imageId), { SupportBoundBoxes[originalSegment], baseHeight },
{ { SupportBoundBoxes[originalSegment], height }, { 0, 0, 0 } });
baseHeight += beamLength;
}
}

View File

@ -377,29 +377,29 @@ void VirtualFloorPaint(PaintSession& session)
{
const auto baseImg = !(occupiedEdges & EDGE_NE) ? ((litEdges & EDGE_NE) ? remap_lit : remap_base) : remap_edge;
PaintAddImageAsParent(
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_NE), virtualFloorOffset, { 0, 0, 1 },
{ 5, 5, _virtualFloorHeight + ((dullEdges & EDGE_NE) ? -2 : 0) });
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_NE), virtualFloorOffset,
{ { 5, 5, _virtualFloorHeight + ((dullEdges & EDGE_NE) ? -2 : 0) }, { 0, 0, 1 } });
}
if (paintEdges & EDGE_SE)
{
const auto baseImg = !(occupiedEdges & EDGE_SE) ? ((litEdges & EDGE_SE) ? remap_lit : remap_base) : remap_edge;
PaintAddImageAsParent(
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_SE), virtualFloorOffset, { 1, 1, 1 },
{ 16, 27, _virtualFloorHeight + ((dullEdges & EDGE_SE) ? -2 : 0) });
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_SE), virtualFloorOffset,
{ { 16, 27, _virtualFloorHeight + ((dullEdges & EDGE_SE) ? -2 : 0) }, { 1, 1, 1 } });
}
if (paintEdges & EDGE_SW)
{
const auto baseImg = !(occupiedEdges & EDGE_SW) ? ((litEdges & EDGE_SW) ? remap_lit : remap_base) : remap_edge;
PaintAddImageAsParent(
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_SW), virtualFloorOffset, { 1, 1, 1 },
{ 27, 16, _virtualFloorHeight + ((dullEdges & EDGE_SW) ? -2 : 0) });
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_SW), virtualFloorOffset,
{ { 27, 16, _virtualFloorHeight + ((dullEdges & EDGE_SW) ? -2 : 0) }, { 1, 1, 1 } });
}
if (paintEdges & EDGE_NW)
{
const auto baseImg = !(occupiedEdges & EDGE_NW) ? ((litEdges & EDGE_NW) ? remap_lit : remap_base) : remap_edge;
PaintAddImageAsParent(
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_NW), virtualFloorOffset, { 0, 0, 1 },
{ 5, 5, _virtualFloorHeight + ((dullEdges & EDGE_NW) ? -2 : 0) });
session, baseImg.WithIndex(SPR_G2_SELECTION_EDGE_NW), virtualFloorOffset,
{ { 5, 5, _virtualFloorHeight + ((dullEdges & EDGE_NW) ? -2 : 0) }, { 0, 0, 1 } });
}
if (gConfigGeneral.VirtualFloorStyle != VirtualFloorStyles::Glassy)
@ -408,7 +408,8 @@ void VirtualFloorPaint(PaintSession& session)
if (!weAreOccupied && !weAreLit && weAreAboveGround && weAreOwned)
{
auto imageColourFlats = ImageId(SPR_G2_SURFACE_GLASSY_RECOLOURABLE, FilterPaletteID::PaletteWater).WithBlended(true);
PaintAddImageAsParent(session, imageColourFlats, virtualFloorOffset, { 30, 30, 0 }, { 2, 2, _virtualFloorHeight - 3 });
PaintAddImageAsParent(
session, imageColourFlats, virtualFloorOffset, { { 2, 2, _virtualFloorHeight - 3 }, { 30, 30, 0 } });
}
}

View File

@ -115,10 +115,10 @@ void PaintBanner(PaintSession& session, uint8_t direction, int32_t height, const
auto imageIndex = (direction << 1) + bannerEntry->image;
auto imageId = imageTemplate.WithIndex(imageIndex);
auto bbOffset = CoordsXYZ(BannerBoundBoxes[direction][0], height + 2);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 21 }, bbOffset);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { bbOffset, { 1, 1, 21 } });
bbOffset = CoordsXYZ(BannerBoundBoxes[direction][1], height + 2);
PaintAddImageAsParent(session, imageId.WithIndexOffset(1), { 0, 0, height }, { 1, 1, 21 }, bbOffset);
PaintAddImageAsParent(session, imageId.WithIndexOffset(1), { 0, 0, height }, { bbOffset, { 1, 1, 21 } });
PaintBannerScrollingText(session, *bannerEntry, *banner, bannerElement, direction, height, bbOffset);
}

View File

@ -397,7 +397,7 @@ void PaintLargeScenery(PaintSession& session, uint8_t direction, uint16_t height
const CoordsXYZ& bbLength = { LargeSceneryBoundBoxes[bbIndex].length, boxlengthZ };
auto imageIndex = sceneryEntry->image + 4 + (sequenceNum << 2) + direction;
PaintAddImageAsParent(session, imageTemplate.WithIndex(imageIndex), { 0, 0, height }, bbLength, bbOffset);
PaintAddImageAsParent(session, imageTemplate.WithIndex(imageIndex), { 0, 0, height }, { bbOffset, bbLength });
if (sceneryEntry->scrolling_mode != SCROLLING_MODE_NONE && direction != 1 && direction != 2)
{

View File

@ -154,25 +154,25 @@ static void PathBitLightsPaint(
{
auto imageIndex = GetFootpathLampImage(pathBitEntry, EDGE_NE, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 2, 16, height }, { 0, 16, 23 }, { 6, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 2, 16, height }, { { 6, 8, height + 2 }, { 0, 16, 23 } });
}
if (!(edges & EDGE_SE))
{
auto imageIndex = GetFootpathLampImage(pathBitEntry, EDGE_SE, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 30, height }, { 16, 0, 23 }, { 8, 23, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 30, height }, { { 8, 23, height + 2 }, { 16, 0, 23 } });
}
if (!(edges & EDGE_SW))
{
auto imageIndex = GetFootpathLampImage(pathBitEntry, EDGE_SW, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 30, 16, height }, { 0, 16, 23 }, { 23, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 30, 16, height }, { { 23, 8, height + 2 }, { 0, 16, 23 } });
}
if (!(edges & EDGE_NW))
{
auto imageIndex = GetFootpathLampImage(pathBitEntry, EDGE_NW, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 2, height }, { 16, 0, 23 }, { 8, 6, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 2, height }, { { 8, 6, height + 2 }, { 16, 0, 23 } });
}
}
@ -210,7 +210,7 @@ static void PathBitBinsPaint(
auto imageIndex = GetFootpathBinImage(pathBitEntry, EDGE_NE, binsAreVandalised, binIsFull);
if (!highlightPathIssues || binIsFull || binsAreVandalised)
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 7, 16, height }, { 0, 16, 7 }, { 6, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 7, 16, height }, { { 6, 8, height + 2 }, { 0, 16, 7 } });
}
if (!(edges & EDGE_SE))
{
@ -218,7 +218,7 @@ static void PathBitBinsPaint(
auto imageIndex = GetFootpathBinImage(pathBitEntry, EDGE_SE, binsAreVandalised, binIsFull);
if (!highlightPathIssues || binIsFull || binsAreVandalised)
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 25, height }, { 16, 0, 7 }, { 8, 23, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 25, height }, { { 8, 23, height + 2 }, { 16, 0, 7 } });
}
if (!(edges & EDGE_SW))
{
@ -226,7 +226,7 @@ static void PathBitBinsPaint(
auto imageIndex = GetFootpathBinImage(pathBitEntry, EDGE_SW, binsAreVandalised, binIsFull);
if (!highlightPathIssues || binIsFull || binsAreVandalised)
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 25, 16, height }, { 0, 16, 7 }, { 23, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 25, 16, height }, { { 23, 8, height + 2 }, { 0, 16, 7 } });
}
if (!(edges & EDGE_NW))
{
@ -234,7 +234,7 @@ static void PathBitBinsPaint(
auto imageIndex = GetFootpathBinImage(pathBitEntry, EDGE_NW, binsAreVandalised, binIsFull);
if (!highlightPathIssues || binIsFull || binsAreVandalised)
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 7, height }, { 16, 0, 7 }, { 8, 6, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 7, height }, { { 8, 6, height + 2 }, { 16, 0, 7 } });
}
}
@ -248,27 +248,27 @@ static void PathBitBenchesPaint(
{
auto imageIndex = GetFootpathBenchImage(pathBitEntry, EDGE_NE, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 7, 16, height }, { 0, 16, 7 }, { 6, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 7, 16, height }, { { 6, 8, height + 2 }, { 0, 16, 7 } });
}
if (!(edges & EDGE_SE))
{
auto imageIndex = GetFootpathBenchImage(pathBitEntry, EDGE_SE, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 25, height }, { 16, 0, 7 }, { 8, 23, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 25, height }, { { 8, 23, height + 2 }, { 16, 0, 7 } });
}
if (!(edges & EDGE_SW))
{
auto imageIndex = GetFootpathBenchImage(pathBitEntry, EDGE_SW, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 25, 16, height }, { 0, 16, 7 }, { 23, 8, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 25, 16, height }, { { 23, 8, height + 2 }, { 0, 16, 7 } });
}
if (!(edges & EDGE_NW))
{
auto imageIndex = GetFootpathBenchImage(pathBitEntry, EDGE_NW, isBroken);
PaintAddImageAsParent(
session, imageTemplate.WithIndex(imageIndex), { 16, 7, height }, { 16, 0, 7 }, { 8, 6, height + 2 });
session, imageTemplate.WithIndex(imageIndex), { 16, 7, height }, { { 8, 6, height + 2 }, { 16, 0, 7 } });
}
}
@ -280,10 +280,10 @@ static void PathBitJumpingFountainsPaint(
return;
auto imageId = imageTemplate.WithIndex(pathBitEntry.image);
PaintAddImageAsParent(session, imageId.WithIndexOffset(1), { 0, 0, height }, { 1, 1, 2 }, { 6, 8, height + 2 });
PaintAddImageAsParent(session, imageId.WithIndexOffset(2), { 0, 0, height }, { 1, 1, 2 }, { 8, 23, height + 2 });
PaintAddImageAsParent(session, imageId.WithIndexOffset(3), { 0, 0, height }, { 1, 1, 2 }, { 23, 8, height + 2 });
PaintAddImageAsParent(session, imageId.WithIndexOffset(4), { 0, 0, height }, { 1, 1, 2 }, { 8, 6, height + 2 });
PaintAddImageAsParent(session, imageId.WithIndexOffset(1), { 0, 0, height }, { { 6, 8, height + 2 }, { 1, 1, 2 } });
PaintAddImageAsParent(session, imageId.WithIndexOffset(2), { 0, 0, height }, { { 8, 23, height + 2 }, { 1, 1, 2 } });
PaintAddImageAsParent(session, imageId.WithIndexOffset(3), { 0, 0, height }, { { 23, 8, height + 2 }, { 1, 1, 2 } });
PaintAddImageAsParent(session, imageId.WithIndexOffset(4), { 0, 0, height }, { { 8, 6, height + 2 }, { 1, 1, 2 } });
}
/**
@ -305,27 +305,27 @@ static void PathPaintFencesAndQueueBanners(
{
case 0:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(22), { 0, 4, height }, { 32, 1, 23 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(22), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(22), { 0, 28, height }, { 32, 1, 23 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(22), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 23 } });
break;
case 1:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(21), { 4, 0, height }, { 1, 32, 23 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(21), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(21), { 28, 0, height }, { 1, 32, 23 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(21), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 23 } });
break;
case 2:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(23), { 0, 4, height }, { 32, 1, 23 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(23), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(23), { 0, 28, height }, { 32, 1, 23 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(23), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 23 } });
break;
case 3:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(20), { 4, 0, height }, { 1, 32, 23 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(20), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(20), { 28, 0, height }, { 1, 32, 23 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(20), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 23 } });
break;
}
}
@ -336,115 +336,115 @@ static void PathPaintFencesAndQueueBanners(
{
case 0b0001:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(17), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(17), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(17), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(17), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
break;
case 0b0010:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(18), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(18), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(18), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(18), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
break;
case 0b0011:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(17), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(17), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(18), { 28, 0, height }, { 1, 28, 7 },
{ 28, 4, height + 2 }); // bound_box_offset_y seems to be a bug
session, imageId.WithIndexOffset(18), { 28, 0, height },
{ { 28, 4, height + 2 }, { 1, 28, 7 } }); // bound_box_offset_y seems to be a bug
PaintAddImageAsParent(
session, imageId.WithIndexOffset(25), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(25), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
break;
case 0b0100:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(19), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(19), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(19), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(19), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
break;
case 0b0101:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(15), { 0, 4, height }, { 32, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(15), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(15), { 0, 28, height }, { 32, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(15), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 7 } });
break;
case 0b0110:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(18), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(18), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(19), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(19), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(26), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(26), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
break;
case 0b0111:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(15), { 0, 4, height }, { 32, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(15), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(25), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(25), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(26), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(26), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
break;
case 0b1000:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(16), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(16), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(16), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(16), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
break;
case 0b1001:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(16), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(16), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(17), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(17), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(24), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(24), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
break;
case 0b1010:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(14), { 4, 0, height }, { 1, 32, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(14), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(14), { 28, 0, height }, { 1, 32, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(14), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 7 } });
break;
case 0b1011:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(14), { 28, 0, height }, { 1, 32, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(14), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(24), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(24), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(25), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(25), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
break;
case 0b1100:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(16), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(16), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(19), { 0, 28, height }, { 28, 1, 7 },
{ 4, 28, height + 2 }); // bound_box_offset_x seems to be a bug
session, imageId.WithIndexOffset(19), { 0, 28, height },
{ { 4, 28, height + 2 }, { 28, 1, 7 } }); // bound_box_offset_x seems to be a bug
PaintAddImageAsParent(
session, imageId.WithIndexOffset(27), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(27), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
break;
case 0b1101:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(15), { 0, 28, height }, { 32, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(15), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(24), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(24), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(27), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(27), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
break;
case 0b1110:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(14), { 4, 0, height }, { 1, 32, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(14), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(26), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(26), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(27), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(27), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
break;
case 0b1111:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(24), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(24), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(25), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(25), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(26), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(26), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(27), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(27), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
}
}
@ -469,13 +469,13 @@ static void PathPaintFencesAndQueueBanners(
imageId = imageId.WithIndexOffset(28 + (direction << 1));
// Draw pole in the back
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 21 }, boundBoxOffsets);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { boundBoxOffsets, { 1, 1, 21 } });
// Draw pole in the front and banner
boundBoxOffsets.x = BannerBoundBoxes[direction][1].x;
boundBoxOffsets.y = BannerBoundBoxes[direction][1].y;
imageId = imageId.WithIndexOffset(1);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 21 }, boundBoxOffsets);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { boundBoxOffsets, { 1, 1, 21 } });
direction--;
// If text shown
@ -538,27 +538,27 @@ static void PathPaintFencesAndQueueBanners(
{
case 0:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(8), { 0, 4, height }, { 32, 1, 23 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(8), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(8), { 0, 28, height }, { 32, 1, 23 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(8), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 23 } });
break;
case 1:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(7), { 4, 0, height }, { 1, 32, 23 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(7), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(7), { 28, 0, height }, { 1, 32, 23 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(7), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 23 } });
break;
case 2:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(9), { 0, 4, height }, { 32, 1, 23 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(9), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(9), { 0, 28, height }, { 32, 1, 23 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(9), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 23 } });
break;
case 3:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(6), { 4, 0, height }, { 1, 32, 23 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(6), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 23 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(6), { 28, 0, height }, { 1, 32, 23 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(6), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 23 } });
break;
}
}
@ -576,142 +576,142 @@ static void PathPaintFencesAndQueueBanners(
break;
case 1:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(3), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(3), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(3), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(3), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
break;
case 2:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(4), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(4), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(4), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(4), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
break;
case 4:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(5), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(5), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(5), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(5), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
break;
case 5:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(1), { 0, 4, height }, { 32, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(1), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(1), { 0, 28, height }, { 32, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(1), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 7 } });
break;
case 8:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(2), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(2), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(2), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(2), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
break;
case 10:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(0), { 4, 0, height }, { 1, 32, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(0), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(0), { 28, 0, height }, { 1, 32, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(0), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 7 } });
break;
case 3:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(3), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(3), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(4), { 28, 0, height }, { 1, 28, 7 },
{ 28, 4, height + 2 }); // bound_box_offset_y seems to be a bug
session, imageId.WithIndexOffset(4), { 28, 0, height },
{ { 28, 4, height + 2 }, { 1, 28, 7 } }); // bound_box_offset_y seems to be a bug
if (!(drawnCorners & FOOTPATH_CORNER_0))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(11), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(11), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
}
break;
case 6:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(4), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(4), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(5), { 0, 4, height }, { 28, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(5), { 0, 4, height }, { { 0, 4, height + 2 }, { 28, 1, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_1))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(12), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(12), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
}
break;
case 9:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(2), { 28, 0, height }, { 1, 28, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(2), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(3), { 0, 28, height }, { 28, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(3), { 0, 28, height }, { { 0, 28, height + 2 }, { 28, 1, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_3))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(10), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(10), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
}
break;
case 12:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(2), { 4, 0, height }, { 1, 28, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(2), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 28, 7 } });
PaintAddImageAsParent(
session, imageId.WithIndexOffset(5), { 0, 28, height }, { 28, 1, 7 },
{ 4, 28, height + 2 }); // bound_box_offset_x seems to be a bug
session, imageId.WithIndexOffset(5), { 0, 28, height },
{ { 4, 28, height + 2 }, { 28, 1, 7 } }); // bound_box_offset_x seems to be a bug
if (!(drawnCorners & FOOTPATH_CORNER_2))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(13), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(13), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
}
break;
case 7:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(1), { 0, 4, height }, { 32, 1, 7 }, { 0, 4, height + 2 });
session, imageId.WithIndexOffset(1), { 0, 4, height }, { { 0, 4, height + 2 }, { 32, 1, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_0))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(11), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(11), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_1))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(12), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(12), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
}
break;
case 13:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(1), { 0, 28, height }, { 32, 1, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(1), { 0, 28, height }, { { 0, 28, height + 2 }, { 32, 1, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_2))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(13), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(13), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_3))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(10), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(10), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
}
break;
case 14:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(0), { 4, 0, height }, { 1, 32, 7 }, { 4, 0, height + 2 });
session, imageId.WithIndexOffset(0), { 4, 0, height }, { { 4, 0, height + 2 }, { 1, 32, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_1))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(12), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(12), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_2))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(13), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(13), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
}
break;
case 11:
PaintAddImageAsParent(
session, imageId.WithIndexOffset(0), { 28, 0, height }, { 1, 32, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(0), { 28, 0, height }, { { 28, 0, height + 2 }, { 1, 32, 7 } });
if (!(drawnCorners & FOOTPATH_CORNER_0))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(11), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(11), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_3))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(10), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(10), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
}
break;
@ -719,22 +719,22 @@ static void PathPaintFencesAndQueueBanners(
if (!(drawnCorners & FOOTPATH_CORNER_0))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(11), { 0, 0, height }, { 4, 4, 7 }, { 0, 28, height + 2 });
session, imageId.WithIndexOffset(11), { 0, 0, height }, { { 0, 28, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_1))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(12), { 0, 0, height }, { 4, 4, 7 }, { 28, 28, height + 2 });
session, imageId.WithIndexOffset(12), { 0, 0, height }, { { 28, 28, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_2))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(13), { 0, 0, height }, { 4, 4, 7 }, { 28, 0, height + 2 });
session, imageId.WithIndexOffset(13), { 0, 0, height }, { { 28, 0, height + 2 }, { 4, 4, 7 } });
}
if (!(drawnCorners & FOOTPATH_CORNER_3))
{
PaintAddImageAsParent(
session, imageId.WithIndexOffset(10), { 0, 0, height }, { 4, 4, 7 }, { 0, 0, height + 2 });
session, imageId.WithIndexOffset(10), { 0, 0, height }, { { 0, 0, height + 2 }, { 4, 4, 7 } });
}
break;
}
@ -1132,8 +1132,8 @@ void PathPaintBoxSupport(
if (!hasSupports || !hasPassedSurface)
{
PaintAddImageAsParent(
session, imageTemplate.WithIndex(surfaceBaseImageIndex), { 0, 0, height }, { boundBoxSize, 0 },
{ boundBoxOffset, height + boundingBoxZOffset });
session, imageTemplate.WithIndex(surfaceBaseImageIndex), { 0, 0, height },
{ { boundBoxOffset, height + boundingBoxZOffset }, { boundBoxSize, 0 } });
}
else
{
@ -1150,8 +1150,8 @@ void PathPaintBoxSupport(
}
PaintAddImageAsParent(
session, imageTemplate.WithIndex(bridgeBaseImageIndex), { 0, 0, height }, { boundBoxSize, 0 },
{ boundBoxOffset, height + boundingBoxZOffset });
session, imageTemplate.WithIndex(bridgeBaseImageIndex), { 0, 0, height },
{ { boundBoxOffset, height + boundingBoxZOffset }, { boundBoxSize, 0 } });
if (pathElement.IsQueue() || (pathPaintInfo.RailingFlags & RAILING_ENTRY_FLAG_DRAW_PATH_OVER_SUPPORTS))
{
@ -1271,8 +1271,8 @@ void PathPaintPoleSupport(
if (!hasSupports || !hasPassedSurface)
{
PaintAddImageAsParent(
session, imageTemplate.WithIndex(surfaceBaseImageIndex), { 0, 0, height }, { boundBoxSize.x, boundBoxSize.y, 0 },
{ boundBoxOffset.x, boundBoxOffset.y, height + boundingBoxZOffset });
session, imageTemplate.WithIndex(surfaceBaseImageIndex), { 0, 0, height },
{ { boundBoxOffset.x, boundBoxOffset.y, height + boundingBoxZOffset }, { boundBoxSize.x, boundBoxSize.y, 0 } });
}
else
{
@ -1289,8 +1289,8 @@ void PathPaintPoleSupport(
}
PaintAddImageAsParent(
session, imageTemplate.WithIndex(bridgeBaseImageIndex), { 0, 0, height }, { boundBoxSize, 0 },
{ boundBoxOffset, height + boundingBoxZOffset });
session, imageTemplate.WithIndex(bridgeBaseImageIndex), { 0, 0, height },
{ { boundBoxOffset, height + boundingBoxZOffset }, { boundBoxSize, 0 } });
if (pathElement.IsQueue() || (pathPaintInfo.RailingFlags & RAILING_ENTRY_FLAG_DRAW_PATH_OVER_SUPPORTS))
{

View File

@ -737,8 +737,8 @@ static void ViewportSurfaceDrawTileSideBottom(
auto imageId = GetTunnelImage(edgeStyle, tunnelType, edge);
PaintAddImageAsParent(
session, imageId, { offset, zOffset }, { tunnelBounds.x, tunnelBounds.y, boundBoxLength - 1 },
{ 0, 0, boundBoxOffsetZ });
session, imageId, { offset, zOffset },
{ { 0, 0, boundBoxOffsetZ }, { tunnelBounds.x, tunnelBounds.y, boundBoxLength - 1 } });
boundBoxOffsetZ = curHeight * COORDS_Z_PER_TINY_Z;
boundBoxLength = _tunnelHeights[tunnelType][1] * 16;
@ -752,8 +752,8 @@ static void ViewportSurfaceDrawTileSideBottom(
imageId = GetTunnelImage(edgeStyle, tunnelType, edge).WithIndexOffset(1);
PaintAddImageAsParent(
session, imageId, { offset, curHeight * COORDS_Z_PER_TINY_Z },
{ tunnelBounds.x, tunnelBounds.y, boundBoxLength - 1 },
{ tunnelTopBoundBoxOffset.x, tunnelTopBoundBoxOffset.y, boundBoxOffsetZ });
{ { tunnelTopBoundBoxOffset.x, tunnelTopBoundBoxOffset.y, boundBoxOffsetZ },
{ tunnelBounds.x, tunnelBounds.y, boundBoxLength - 1 } });
curHeight += _tunnelHeights[tunnelType][0];
tunnelIndex++;
@ -1100,10 +1100,10 @@ void PaintSurface(PaintSession& session, uint8_t direction, uint16_t height, con
if (session.VerticalTunnelHeight * COORDS_Z_PER_TINY_Z == height)
{
// Vertical tunnels
PaintAddImageAsParent(session, ImageId(1575), { 0, 0, height }, { 1, 30, 39 }, { -2, 1, height - 40 });
PaintAddImageAsParent(session, ImageId(1576), { 0, 0, height }, { 30, 1, 0 }, { 1, 31, height });
PaintAddImageAsParent(session, ImageId(1577), { 0, 0, height }, { 1, 30, 0 }, { 31, 1, height });
PaintAddImageAsParent(session, ImageId(1578), { 0, 0, height }, { 30, 1, 39 }, { 1, -2, height - 40 });
PaintAddImageAsParent(session, ImageId(1575), { 0, 0, height }, { { -2, 1, height - 40 }, { 1, 30, 39 } });
PaintAddImageAsParent(session, ImageId(1576), { 0, 0, height }, { { 1, 31, height }, { 30, 1, 0 } });
PaintAddImageAsParent(session, ImageId(1577), { 0, 0, height }, { { 31, 1, height }, { 1, 30, 0 } });
PaintAddImageAsParent(session, ImageId(1578), { 0, 0, height }, { { 1, -2, height - 40 }, { 30, 1, 39 } });
}
else
{
@ -1409,8 +1409,8 @@ void PaintSurface(PaintSession& session, uint8_t direction, uint16_t height, con
}
PaintAddImageAsParent(
session, ImageId(image_id), { fenceData.offset, local_height }, { fenceData.Boundbox.length, 9 },
{ fenceData.Boundbox.offset, local_height + 1 });
session, ImageId(image_id), { fenceData.offset, local_height },
{ { fenceData.Boundbox.offset, local_height + 1 }, { fenceData.Boundbox.length, 9 } });
}
}

View File

@ -181,7 +181,7 @@ static void PaintTileElementBase(PaintSession& session, const CoordsXY& origCoor
session.SpritePosition.y = coords.y;
session.InteractionType = ViewportInteractionItem::None;
PaintAddImageAsParent(session, imageId, { 0, 0, arrowZ }, { 32, 32, -1 }, { 0, 0, arrowZ + 18 });
PaintAddImageAsParent(session, imageId, { 0, 0, arrowZ }, { { 0, 0, arrowZ + 18 }, { 32, 32, -1 } });
}
if (screenMinY + 52 <= dpi->y)
@ -332,8 +332,8 @@ static void PaintTileElementBase(PaintSession& session, const CoordsXY& origCoor
int32_t xOffset = static_cast<int32_t>(sy) * 10;
int32_t yOffset = -22 + static_cast<int32_t>(sx) * 10;
PaintStruct* ps = PaintAddImageAsParent(
session, imageColourFlats, { xOffset, yOffset, segmentHeight }, { 10, 10, 1 },
{ xOffset + 1, yOffset + 16, segmentHeight });
session, imageColourFlats, { xOffset, yOffset, segmentHeight },
{ { xOffset + 1, yOffset + 16, segmentHeight }, { 10, 10, 1 } });
if (ps != nullptr)
{
ps->image_id = ps->image_id.WithTertiary(COLOUR_BORDEAUX_RED);

View File

@ -288,7 +288,7 @@ void TrackPaintUtilPaintFloor(
imageId = floorSprites[3];
}
PaintAddImageAsParent(session, colourFlags.WithIndex(imageId), { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, colourFlags.WithIndex(imageId), { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
}
void TrackPaintUtilPaintFences(
@ -313,7 +313,7 @@ void TrackPaintUtilPaintFences(
if (edges & EDGE_SW && TrackPaintUtilHasFence(EDGE_SW, position, trackElement, ride, rotation))
{
PaintAddImageAsParent(
session, colourFlags.WithIndex(fenceSprites[2]), { 0, 0, height }, { 1, 32, 7 }, { 30, 0, height + 2 });
session, colourFlags.WithIndex(fenceSprites[2]), { 0, 0, height }, { { 30, 0, height + 2 }, { 1, 32, 7 } });
}
}
@ -894,7 +894,7 @@ void TrackPaintUtilDrawPier(
hasFence = TrackPaintUtilHasFence(EDGE_NE, position, trackElement, ride, session.CurrentRotation);
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(
(hasFence ? SPR_STATION_PIER_EDGE_NE_FENCED : SPR_STATION_PIER_EDGE_NE));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 6, 32, 1 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 6, 32, 1 } });
TrackPaintUtilDrawStationCovers(session, EDGE_NE, hasFence, stationObj, height);
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_STATION_PIER_EDGE_SW);
@ -913,7 +913,7 @@ void TrackPaintUtilDrawPier(
hasFence = TrackPaintUtilHasFence(EDGE_NW, position, trackElement, ride, rotation);
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(
(hasFence ? SPR_STATION_PIER_EDGE_NW_FENCED : SPR_STATION_PIER_EDGE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 6, 1 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 6, 1 } });
TrackPaintUtilDrawStationCovers(session, EDGE_NW, hasFence, stationObj, height);
imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(SPR_STATION_PIER_EDGE_SE);
@ -1021,8 +1021,8 @@ void TrackPaintUtilRightHelixUpSmallQuarterTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index][0]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength, thickness[0] },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength, thickness[0] } });
}
if (sprites[direction][index][1] != 0)
{
@ -1032,8 +1032,8 @@ void TrackPaintUtilRightHelixUpSmallQuarterTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index][1]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength, thickness[1] },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength, thickness[1] } });
}
}
@ -1121,8 +1121,8 @@ void TrackPaintUtilRightHelixUpLargeQuarterTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index][0]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength, thickness[0] },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength, thickness[0] } });
}
if (sprites[direction][index][1] != 0)
{
@ -1132,8 +1132,8 @@ void TrackPaintUtilRightHelixUpLargeQuarterTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index][1]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength, thickness[1] },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength, thickness[1] } });
}
}
@ -1296,8 +1296,9 @@ void TrackPaintUtilEighthToDiagTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index]);
PaintAddImageAsParent(
session, imageId, { offset.x, offset.y, height }, { boundsLength.x, boundsLength.y, thickness[direction][index] },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset.x, offset.y, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z },
{ boundsLength.x, boundsLength.y, thickness[direction][index] } });
}
constexpr CoordsXY defaultDiagTileOffsets[4] = {
@ -1338,8 +1339,8 @@ void TrackPaintUtilDiagTilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength, thickness },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength, thickness } });
}
const uint8_t mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[] = {
@ -1461,7 +1462,7 @@ void TrackPaintUtilRightQuarterTurn5TilesPaint(
PaintAddImageAsParent(
session, imageId, { static_cast<int8_t>(offset.x), static_cast<int8_t>(offset.y), height },
{ boundsLength.x, boundsLength.y, thickness }, { boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength.x, boundsLength.y, thickness } });
}
void TrackPaintUtilRightQuarterTurn5TilesPaint2(
@ -1479,8 +1480,8 @@ void TrackPaintUtilRightQuarterTurn5TilesPaint2(
const auto& offset = spriteBB->offset;
const auto& bbOffset = spriteBB->bb_offset;
PaintAddImageAsParent(
session, imageId, { offset.x, offset.y, height + offset.z }, spriteBB->bb_size,
{ bbOffset.x, bbOffset.y, height + bbOffset.z });
session, imageId, { offset.x, offset.y, height + offset.z },
{ { bbOffset.x, bbOffset.y, height + bbOffset.z }, spriteBB->bb_size });
}
void TrackPaintUtilRightQuarterTurn5TilesPaint3(
@ -1636,8 +1637,8 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint(
CoordsXYZ boundsOffset = (boundsOffsets == nullptr ? CoordsXYZ(offset, 0) : boundsOffsets[direction][index]);
PaintAddImageAsParent(
session, imageId, { offset, height }, { boundsLength.x, boundsLength.y, thickness },
{ boundsOffset.x, boundsOffset.y, height + boundsOffset.z });
session, imageId, { offset, height },
{ { boundsOffset.x, boundsOffset.y, height + boundsOffset.z }, { boundsLength.x, boundsLength.y, thickness } });
}
void TrackPaintUtilRightQuarterTurn3TilesPaint2(
@ -1667,15 +1668,15 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint2WithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 16, 16, height + heightOffset });
session, imageId, { 0, 0, height }, { { 16, 16, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
}
break;
@ -1685,15 +1686,15 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint2WithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 16, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 16, 0, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
}
break;
@ -1703,15 +1704,15 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint2WithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 0, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 0, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
}
break;
@ -1721,15 +1722,15 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint2WithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 0, 16, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 16, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
}
break;
@ -1749,8 +1750,8 @@ void TrackPaintUtilRightQuarterTurn3TilesPaint3(
const auto& offset = spriteBB->offset;
const auto& bbOffset = spriteBB->bb_offset;
PaintAddImageAsParent(
session, colourFlags.WithIndex(spriteBB->sprite_id), { offset.x, offset.y, offset.z + height }, spriteBB->bb_size,
{ bbOffset.x, bbOffset.y, height + bbOffset.z });
session, colourFlags.WithIndex(spriteBB->sprite_id), { offset.x, offset.y, offset.z + height },
{ { bbOffset.x, bbOffset.y, height + bbOffset.z }, spriteBB->bb_size });
}
void TrackPaintUtilRightQuarterTurn3TilesPaint4(
@ -1869,15 +1870,15 @@ void TrackPaintUtilLeftQuarterTurn3TilesPaintWithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 16, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 16, 0, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
}
break;
@ -1887,15 +1888,15 @@ void TrackPaintUtilLeftQuarterTurn3TilesPaintWithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 0, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 0, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
}
break;
@ -1905,15 +1906,15 @@ void TrackPaintUtilLeftQuarterTurn3TilesPaintWithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 0, 16, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 16, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
}
break;
@ -1923,15 +1924,15 @@ void TrackPaintUtilLeftQuarterTurn3TilesPaintWithHeightOffset(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 20, 32, thickness }, { 6, 0, height + heightOffset });
session, imageId, { 0, 0, height }, { { 6, 0, height + heightOffset }, { 20, 32, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 16, 16, thickness }, { 16, 16, height + heightOffset });
session, imageId, { 0, 0, height }, { { 16, 16, height + heightOffset }, { 16, 16, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 32, 20, thickness }, { 0, 6, height + heightOffset });
session, imageId, { 0, 0, height }, { { 0, 6, height + heightOffset }, { 32, 20, thickness } });
break;
}
break;
@ -1972,19 +1973,19 @@ void TrackPaintUtilLeftQuarterTurn1TilePaint(
{
case 0:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 26, 24, thickness }, { 6, 2, height + boundBoxZOffset });
session, imageId, { 0, 0, height }, { { 6, 2, height + boundBoxZOffset }, { 26, 24, thickness } });
break;
case 1:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 26, 26, thickness }, { 0, 0, height + boundBoxZOffset });
session, imageId, { 0, 0, height }, { { 0, 0, height + boundBoxZOffset }, { 26, 26, thickness } });
break;
case 2:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 24, 26, thickness }, { 2, 6, height + boundBoxZOffset });
session, imageId, { 0, 0, height }, { { 2, 6, height + boundBoxZOffset }, { 24, 26, thickness } });
break;
case 3:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { 24, 24, thickness }, { 6, 6, height + boundBoxZOffset });
session, imageId, { 0, 0, height }, { { 6, 6, height + boundBoxZOffset }, { 24, 24, thickness } });
break;
}
}
@ -2040,11 +2041,11 @@ void TrackPaintUtilSpinningTunnelPaint(PaintSession& session, int8_t thickness,
imageId = colourFlags.WithIndex(trackSpritesGhostTrainSpinningTunnel[direction & 1][1][frame]);
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 1, 23 }, { 4, 28, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 28, height }, { 26, 1, 23 } });
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 26, 23 }, { 28, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 4, height }, { 1, 26, 23 } });
}
}
@ -2200,7 +2201,7 @@ void PaintTrack(PaintSession& session, Direction direction, int32_t height, cons
auto heightNum = (height + 8) / 16 - gMapBaseZ;
auto imageId = ImageId(SPR_HEIGHT_MARKER_BASE + GetHeightMarkerOffset() + heightNum, COLOUR_LIGHT_BLUE);
PaintAddImageAsParent(session, imageId, { 16, 16, height + ax + 3 }, { 1, 1, 0 }, { 1000, 1000, 2047 });
PaintAddImageAsParent(session, imageId, { 16, 16, height + ax + 3 }, { { 1000, 1000, 2047 }, { 1, 1, 0 } });
}
}

View File

@ -996,8 +996,8 @@ static void vehicle_sprite_paint(
imageId = ImageId(baseImageId).WithRemap(FilterPaletteID::Palette44);
}
PaintAddImageAsParent(
session, imageId, { 0, 0, z }, { bb.length_x, bb.length_y, bb.length_z },
{ bb.offset_x, bb.offset_y, bb.offset_z + z });
session, imageId, { 0, 0, z },
{ { bb.offset_x, bb.offset_y, bb.offset_z + z }, { bb.length_x, bb.length_y, bb.length_z } });
auto* dpi = &session.DPI;
if (dpi->zoom_level < ZoomLevel{ 2 } && vehicle->num_peeps > 0 && carEntry->no_seating_rows > 0)
@ -3674,7 +3674,7 @@ void Vehicle::Paint(PaintSession& session, int32_t imageDirection) const
if (HasFlag(VehicleFlags::Crashed))
{
PaintAddImageAsParent(
session, ImageId(SPR_WATER_PARTICLES_DENSE_0 + animation_frame), { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z + 2 });
session, ImageId(SPR_WATER_PARTICLES_DENSE_0 + animation_frame), { 0, 0, z }, { { 0, 0, z + 2 }, { 1, 1, 0 } });
return;
}

View File

@ -202,13 +202,13 @@ static void PaintReverseFreefallRCFlat(
if (direction & 1)
{
auto imageId = session.TrackColours[SCHEME_TRACK].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 = session.TrackColours[SCHEME_TRACK].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);
}
@ -227,7 +227,7 @@ static void PaintReverseFreefallRCStation(
{
// 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)
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(reverse_freefall_rc_track_pieces_station[direction]);
@ -240,7 +240,7 @@ static void PaintReverseFreefallRCStation(
{
// 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)
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(reverse_freefall_rc_track_pieces_station[direction]);
@ -321,7 +321,7 @@ static void PaintReverseFreefallRCSlope(
{
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 }, { isDirection03 ? 26 : 18, 26, 126 },
{ isDirection03 ? 3 : 11, 3, height });
@ -367,7 +367,7 @@ static void PaintReverseFreefallRCVertical(
case 0:
supportsImageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(
reverse_freefall_rc_track_pieces_vertical_supports[direction]);
PaintAddImageAsParent(session, supportsImageId, { 0, 0, height }, { 26, 26, 79 }, { 3, 3, height });
PaintAddImageAsParent(session, supportsImageId, { 0, 0, height }, { { 3, 3, height }, { 26, 26, 79 } });
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
PaintUtilSetGeneralSupportHeight(session, height + 80, 0x20);
break;

View File

@ -233,12 +233,12 @@ static void PaintVirginiaReelTrackFlat(
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction]);
if (direction & 1)
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 27, 32, 2 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
}
else
{
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
}
@ -264,11 +264,11 @@ static void PaintVirginiaReelTrack25DegUp(
if (direction & 1)
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 27, 32, 2 } });
}
else
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } });
}
if (direction == 1 || direction == 2)
@ -316,27 +316,27 @@ static void PaintVirginiaReelTrackFlatTo25DegUp(
switch (direction)
{
case 0:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } });
WoodenASupportsPaintSetup(session, 0, 1, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
break;
case 1:
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 27, 32, 2 } });
session.WoodenSupportsPrependTo = ps;
WoodenASupportsPaintSetup(session, 1, 2, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_8);
break;
case 2:
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } });
session.WoodenSupportsPrependTo = ps;
WoodenASupportsPaintSetup(session, 0, 3, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_8);
break;
case 3:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 27, 32, 2 } });
WoodenASupportsPaintSetup(session, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
@ -363,11 +363,11 @@ static void PaintVirginiaReelTrack25DegUpToFlat(
if (direction & 1)
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 27, 32, 2 }, { 2, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 0, height }, { 27, 32, 2 } });
}
else
{
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 27, 2 }, { 0, 2, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } });
}
if (direction == 1 || direction == 2)
@ -433,7 +433,7 @@ static void PaintVirginiaReelStation(
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, 2 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 0, 2, height }, { 32, 28, 2 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_VIRGINIA_REEL_FLAT_SW_NE);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 20, 2 } });
@ -443,7 +443,7 @@ static void PaintVirginiaReelStation(
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, 2 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 2, 0, height }, { 28, 32, 2 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_VIRGINIA_REEL_FLAT_NW_SE);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 20, 32, 2 } });

View File

@ -730,16 +730,16 @@ static void WildMouseTrackLeftQuarterTurn1(
switch (direction)
{
case 0:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 24, 2 }, { 6, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 2, height }, { 26, 24, 2 } });
break;
case 1:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 26, 2 });
break;
case 2:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 26, 2 }, { 2, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 6, height }, { 24, 26, 2 } });
break;
case 3:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 24, 2 }, { 6, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 6, height }, { 24, 24, 2 } });
break;
}
MetalASupportsPaintSetup(session, METAL_SUPPORTS_TUBES, 4, -1, height, session.TrackColours[SCHEME_SUPPORTS]);

View File

@ -62,8 +62,8 @@ template<bool isClassic> void WoodenRCTrackPaintBb(PaintSession& session, const
ImageId imageId = WoodenRCGetTrackColour<isClassic>(session).WithIndex(bb->sprite_id_a);
PaintAddImageAsParent(
session, imageId, { bb->offset.x, bb->offset.y, height + bb->offset.z }, bb->bb_size,
{ bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z });
session, imageId, { bb->offset.x, bb->offset.y, height + bb->offset.z },
{ { bb->bb_offset.x, bb->bb_offset.y, height + bb->bb_offset.z }, bb->bb_size });
if (bb->sprite_id_b != 0)
{
ImageId railsImageId = WoodenRCGetRailsColour(session).WithIndex(bb->sprite_id_b);

View File

@ -563,13 +563,13 @@ static void WoodenWildMouseTrackLeftQuarterTurn1(
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 });
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 });

View File

@ -503,10 +503,10 @@ static void PaintMiniGolfTrackFlat(
else
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceBackSwNe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 7 }, { 0, 10, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 10, height + 2 }, { 32, 1, 7 } });
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceFrontSwNe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 7 }, { 0, 22, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 22, height + 2 }, { 32, 1, 7 } });
}
}
@ -672,14 +672,14 @@ static void PaintMiniGolfStation(
if (hasFence)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceBackNwSe);
PaintAddImageAsParent(session, imageId, { -10, 0, height }, { 1, 32, 7 }, { 0, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { -10, 0, height }, { { 0, 0, height + 2 }, { 1, 32, 7 } });
}
bool hasSWFence = TrackPaintUtilHasFence(EDGE_SW, session.MapPosition, trackElement, ride, session.CurrentRotation);
if (hasSWFence)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceFrontNwSe);
PaintAddImageAsParent(session, imageId, { 10, 0, height }, { 1, 32, 7 }, { 31, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 10, 0, height }, { { 31, 0, height + 2 }, { 1, 32, 7 } });
}
TrackPaintUtilDrawStationCovers(session, EDGE_NE, hasFence, stationObj, height);
@ -694,14 +694,14 @@ static void PaintMiniGolfStation(
if (hasFence)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceBackSwNe);
PaintAddImageAsParent(session, imageId, { 0, -10, height }, { 32, 1, 7 }, { 0, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, -10, height }, { { 0, 0, height + 2 }, { 32, 1, 7 } });
}
bool hasSEFence = TrackPaintUtilHasFence(EDGE_SE, session.MapPosition, trackElement, ride, session.CurrentRotation);
if (hasSEFence)
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfFlatFenceFrontSwNe);
PaintAddImageAsParent(session, imageId, { 0, 10, height }, { 32, 1, 7 }, { 0, 31, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 10, height }, { { 0, 31, height + 2 }, { 32, 1, 7 } });
}
TrackPaintUtilDrawStationCovers(session, EDGE_NW, hasFence, stationObj, height);
@ -784,11 +784,11 @@ static void PaintMiniGolfTrackLeftQuarterTurn1Tile(
{
case 0:
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfQuarterTurn1TileFenceInsideSwNw);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 5, 5, 5 }, { 24, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 24, 0, height + 2 }, { 5, 5, 5 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprMiniGolfQuarterTurn1TileFenceInsideNeSe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 5, 5, 5 }, { 0, 24, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 24, height + 2 }, { 5, 5, 5 } });
break;
}
}
@ -914,16 +914,16 @@ static void PaintMiniGolfHoleC(
{
case 0x01:
case 0x20:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 26, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 26, 3 } });
break;
case 0x10:
case 0x31:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 2, 3 }, { 3, 30, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 3, 30, height + 4 }, { 26, 2, 3 } });
break;
default:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { boundBox.x, boundBox.y, 0 },
{ boundBoxOffset.x, boundBoxOffset.y, height + 24 });
session, imageId, { 0, 0, height },
{ { boundBoxOffset.x, boundBoxOffset.y, height + 24 }, { boundBox.x, boundBox.y, 0 } });
break;
}
@ -990,22 +990,22 @@ static void PaintMiniGolfHoleD(
{
case 0x01:
case 0x32:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 26, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 26, 3 } });
break;
case 0x02:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 23, 2, 3 }, { 3, 30, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 3, 30, height + 4 }, { 23, 2, 3 } });
break;
case 0x10:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 24, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 24, 3 } });
break;
case 0x20:
case 0x31:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 2, 3 }, { 3, 30, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 3, 30, height + 4 }, { 26, 2, 3 } });
break;
default:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { boundBox.x, boundBox.y, 0 },
{ boundBoxOffset.x, boundBoxOffset.y, height + 24 });
session, imageId, { 0, 0, height },
{ { boundBoxOffset.x, boundBoxOffset.y, height + 24 }, { boundBox.x, boundBox.y, 0 } });
break;
}
@ -1082,23 +1082,23 @@ static void PaintMiniGolfHoleE(
switch ((direction << 4) | trackSequence)
{
case 0x01:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 26, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 26, 3 } });
break;
case 0x02:
case 0x20:
case 0x31:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 2, 3 }, { 3, 30, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 3, 30, height + 4 }, { 26, 2, 3 } });
break;
case 0x10:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 24, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 24, 3 } });
break;
case 0x32:
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 23, 3 }, { 30, 3, height + 4 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 30, 3, height + 4 }, { 2, 23, 3 } });
break;
default:
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { boundBox.x, boundBox.y, 0 },
{ boundBoxOffset.x, boundBoxOffset.y, height + 24 });
session, imageId, { 0, 0, height },
{ { boundBoxOffset.x, boundBoxOffset.y, height + 24 }, { boundBox.x, boundBox.y, 0 } });
break;
}
@ -1213,7 +1213,7 @@ void VehicleVisualMiniGolfPlayer(
ImageIndex index = rideEntry->Cars[0].base_image_id + 1 + ebx;
auto image = ImageId(index, peep->TshirtColour, peep->TrousersColour);
PaintAddImageAsParent(session, image, { 0, 0, z }, { 1, 1, 11 }, { 0, 0, z + 5 });
PaintAddImageAsParent(session, image, { 0, 0, z }, { { 0, 0, z + 5 }, { 1, 1, 11 } });
}
/**
@ -1242,5 +1242,5 @@ void VehicleVisualMiniGolfBall(
return;
uint32_t image_id = rideEntry->Cars[0].base_image_id;
PaintAddImageAsParent(session, ImageId(image_id), { 0, 0, z }, { 1, 1, 0 }, { 0, 0, z + 3 });
PaintAddImageAsParent(session, ImageId(image_id), { 0, 0, z }, { { 0, 0, z + 3 }, { 1, 1, 0 } });
}

View File

@ -26,7 +26,7 @@ static void PaintMiniHelicoptersTrackStation(
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 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_NE_SW);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 20, 1 } });
@ -38,7 +38,7 @@ static void PaintMiniHelicoptersTrackStation(
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(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_SE_NW);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 20, 32, 1 } });
@ -64,13 +64,13 @@ static void PaintMiniHelicoptersTrackFlat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_0);
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_0);
}
@ -98,25 +98,25 @@ static void PaintMiniHelicoptersTrackFlatTo25DegUp(
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_TO_25_DEG_UP_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_0);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_TO_25_DEG_UP_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_2);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_TO_25_DEG_UP_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_2);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_TO_25_DEG_UP_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_0);
break;
}
@ -142,22 +142,22 @@ static void PaintMiniHelicoptersTrack25DegUp(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_1);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_2);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_2);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_1);
break;
}
@ -184,25 +184,25 @@ static void PaintMiniHelicoptersTrack25DegUpToFlat(
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_TO_FLAT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_0);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_TO_FLAT_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_12);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_TO_FLAT_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 3 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_12);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_25_DEG_UP_TO_FLAT_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 3 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_0);
break;
}

View File

@ -167,13 +167,13 @@ static PaintStruct* PaintMonorailCyclesUtil7C(
if (flip)
{
return PaintAddImageAsParent(
session, imageId, { yOffset, xOffset, zOffset }, { boundBoxLengthY, boundBoxLengthX, boundBoxLengthZ },
{ boundBoxOffsetY, boundBoxOffsetX, boundBoxOffsetZ });
session, imageId, { yOffset, xOffset, zOffset },
{ { boundBoxOffsetY, boundBoxOffsetX, boundBoxOffsetZ }, { boundBoxLengthY, boundBoxLengthX, boundBoxLengthZ } });
}
return PaintAddImageAsParent(
session, imageId, { xOffset, yOffset, zOffset }, { boundBoxLengthX, boundBoxLengthY, boundBoxLengthZ },
{ boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ });
session, imageId, { xOffset, yOffset, zOffset },
{ { boundBoxOffsetX, boundBoxOffsetY, boundBoxOffsetZ }, { boundBoxLengthX, boundBoxLengthY, boundBoxLengthZ } });
}
/** rct2: 0x0088AD48 */
@ -213,7 +213,7 @@ static void PaintMonorailCyclesStation(
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 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprMonorailCyclesFlatSwNe);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 20, 1 } });
@ -225,7 +225,7 @@ static void PaintMonorailCyclesStation(
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(SprMonorailCyclesFlatNwSe);
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 20, 32, 1 } });

View File

@ -73,8 +73,8 @@ void VehicleVisualObservationTower(
imageId1 = ImageId(baseImageId + 1).WithRemap(FilterPaletteID::Palette44);
}
PaintAddImageAsParent(session, imageId0, { 0, 0, z }, { 2, 2, 41 }, { -11, -11, z + 1 });
PaintAddImageAsParent(session, imageId1, { 0, 0, z }, { 16, 16, 41 }, { -5, -5, z + 1 });
PaintAddImageAsParent(session, imageId0, { 0, 0, z }, { { -11, -11, z + 1 }, { 2, 2, 41 } });
PaintAddImageAsParent(session, imageId1, { 0, 0, z }, { { -5, -5, z + 1 }, { 16, 16, 41 } });
assert(carEntry->effect_visual == 1);
}
@ -101,13 +101,13 @@ static void PaintObservationTowerBase(
if (trackSequence == 0)
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprObservationTowerSegmentBase);
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 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprObservationTowerSegment);
PaintAddImageAsParent(session, imageId, { 0, 0, height + 32 }, { 2, 2, 30 }, { 8, 8, height + 32 });
PaintAddImageAsParent(session, imageId, { 0, 0, height + 32 }, { { 8, 8, height + 32 }, { 2, 2, 30 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprObservationTowerSegment);
PaintAddImageAsParent(session, imageId, { 0, 0, height + 64 }, { 2, 2, 30 }, { 8, 8, height + 64 });
PaintAddImageAsParent(session, imageId, { 0, 0, height + 64 }, { { 8, 8, height + 64 }, { 2, 2, 30 } });
PaintUtilSetVerticalTunnel(session, height + 96);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -161,7 +161,7 @@ static void PaintObservationTowerSection(
}
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SprObservationTowerSegment);
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

@ -65,7 +65,7 @@ static void PaintSpaceRingsStructure(
}
auto imageId = imageColourFlags.WithIndex(baseImageId + frameNum);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 20, 23 }, { -10, -10, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { -10, -10, height }, { 20, 20, 23 } });
if (vehicle != nullptr && vehicle->num_peeps > 0)
{
@ -106,12 +106,12 @@ static void PaintSpaceRings(
if (TrackPaintUtilHasFence(EDGE_SW, position, trackElement, ride, session.CurrentRotation))
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprSpaceRingsFenceSw);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 28, 7 }, { 29, 0, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 2 }, { 1, 28, 7 } });
}
if (TrackPaintUtilHasFence(EDGE_SE, position, trackElement, ride, session.CurrentRotation))
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SprSpaceRingsFenceSe);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 1, 7 }, { 0, 29, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 29, height + 2 }, { 28, 1, 7 } });
}
break;
default:

View File

@ -67,7 +67,7 @@ static void SpiralSlidePaintTileRight(
else
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideRightR3));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 16, 16, 108 }, { 16, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 16, 0, height + 3 }, { 16, 16, 108 } });
}
static void SpiralSlidePaintTileLeft(
@ -89,7 +89,7 @@ static void SpiralSlidePaintTileLeft(
else
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideLeftR3));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 16, 16, 108 }, { 0, 16, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 0, 16, height + 3 }, { 16, 16, 108 } });
}
static void SpiralSlidePaintTileFront(
@ -105,33 +105,33 @@ static void SpiralSlidePaintTileFront(
if (direction == 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideInsideR1));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 2, 16, 108 }, { -12, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { -12, 0, height + 3 }, { 2, 16, 108 } });
}
else if (direction == 2)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideInsideR2));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 16, 2, 108 }, { 0, -12, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 0, -12, height + 3 }, { 16, 2, 108 } });
}
if (direction == 0)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideCentreR0));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 16, 8, 108 }, { 0, 8, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 0, 8, height + 3 }, { 16, 8, 108 } });
}
else if (direction == 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideCentreR1));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 2, 16, 108 }, { 14, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 14, 0, height + 3 }, { 2, 16, 108 } });
}
else if (direction == 2)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideCentreR2));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 16, 2, 108 }, { 0, 14, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 0, 14, height + 3 }, { 16, 2, 108 } });
}
else if (direction == 3)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((rideEntry->Cars[0].base_image_id + SpiralSlideCentreR3));
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { 8, 16, 108 }, { 8, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 16, 16, height }, { { 8, 0, height + 3 }, { 8, 16, 108 } });
}
DrawPixelInfo* dpi = &session.DPI;
@ -214,7 +214,7 @@ static void PaintSpiralSlide(
{
auto imageId = session.TrackColours[SCHEME_SUPPORTS].WithIndex(
rideEntry->Cars[0].base_image_id + ((direction & 1) ? SpiralSlideBaseB : SpiralSlideBaseA));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 32, 32, 1 } });
}
const uint32_t spiral_slide_fence_sprites[] = {

View File

@ -78,21 +78,21 @@ static void PaintMotionSimulatorVehicle(
case 0:
PaintAddImageAsParent(session, simulatorImageId, offset, { offset, { 20, 20, 44 } });
PaintAddImageAsChild(session, stairsImageId, offset, { offset, { 20, 20, 44 } });
PaintAddImageAsParent(session, stairsRailImageId, offset, { 20, 2, 44 }, { offset.x, offset.y + 32, offset.z });
PaintAddImageAsParent(session, stairsRailImageId, offset, { { offset.x, offset.y + 32, offset.z }, { 20, 2, 44 } });
break;
case 1:
PaintAddImageAsParent(session, simulatorImageId, offset, { offset, { 20, 20, 44 } });
PaintAddImageAsChild(session, stairsImageId, offset, { offset, { 20, 20, 44 } });
PaintAddImageAsParent(session, stairsRailImageId, offset, { 2, 20, 44 }, { offset.x + 34, offset.y, offset.z });
PaintAddImageAsParent(session, stairsRailImageId, offset, { { offset.x + 34, offset.y, offset.z }, { 2, 20, 44 } });
break;
case 2:
PaintAddImageAsParent(session, stairsRailImageId, offset, { 20, 2, 44 }, { offset.x, offset.y - 10, offset.z });
PaintAddImageAsParent(session, stairsImageId, offset, { 20, 20, 44 }, { offset.x, offset.y + 5, offset.z });
PaintAddImageAsParent(session, stairsRailImageId, offset, { { offset.x, offset.y - 10, offset.z }, { 20, 2, 44 } });
PaintAddImageAsParent(session, stairsImageId, offset, { { offset.x, offset.y + 5, offset.z }, { 20, 20, 44 } });
PaintAddImageAsChild(session, simulatorImageId, offset, { { offset.x, offset.y + 5, offset.z }, { 20, 20, 44 } });
break;
case 3:
PaintAddImageAsParent(session, stairsRailImageId, offset, { 2, 20, 44 }, { offset.x - 10, offset.y, offset.z });
PaintAddImageAsParent(session, stairsImageId, offset, { 20, 20, 44 }, { offset.x + 5, offset.y, offset.z });
PaintAddImageAsParent(session, stairsRailImageId, offset, { { offset.x - 10, offset.y, offset.z }, { 2, 20, 44 } });
PaintAddImageAsParent(session, stairsImageId, offset, { { offset.x + 5, offset.y, offset.z }, { 20, 20, 44 } });
PaintAddImageAsChild(session, simulatorImageId, offset, { { offset.x + 5, offset.y, offset.z }, { 20, 20, 44 } });
break;
}

View File

@ -55,11 +55,11 @@ void VehicleVisualRotoDrop(
// Draw back:
image_id = imageFlags.WithIndex(baseImage_id);
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 + 4);
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 } });
if (vehicle->num_peeps > 0 && !vehicle->IsGhost())
{
@ -121,15 +121,15 @@ static void PaintRotoDropBase(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction & 1 ? SPR_ROTO_DROP_TOWER_BASE_90_DEG : SPR_ROTO_DROP_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 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction & 1 ? SPR_ROTO_DROP_TOWER_BASE_SEGMENT_90_DEG : SPR_ROTO_DROP_TOWER_BASE_SEGMENT));
PaintAddImageAsParent(session, imageId, { 0, 0, height + 32 }, { 2, 2, 30 }, { 8, 8, height + 32 });
PaintAddImageAsParent(session, imageId, { 0, 0, height + 32 }, { { 8, 8, height + 32 }, { 2, 2, 30 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction & 1 ? SPR_ROTO_DROP_TOWER_BASE_SEGMENT_90_DEG : SPR_ROTO_DROP_TOWER_BASE_SEGMENT));
PaintAddImageAsParent(session, imageId, { 0, 0, height + 64 }, { 2, 2, 30 }, { 8, 8, height + 64 });
PaintAddImageAsParent(session, imageId, { 0, 0, height + 64 }, { { 8, 8, height + 64 }, { 2, 2, 30 } });
PaintUtilSetVerticalTunnel(session, height + 96);
PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0);
@ -183,7 +183,7 @@ static void PaintRotoDropTowerSection(
}
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_ROTO_DROP_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

@ -102,12 +102,12 @@ static void PaintTwist(
if (TrackPaintUtilHasFence(EDGE_SW, session.MapPosition, trackElement, ride, session.CurrentRotation))
{
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_FENCE_ROPE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 28, 7 }, { 29, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 29, 0, height + 3 }, { 1, 28, 7 } });
}
if (TrackPaintUtilHasFence(EDGE_SE, session.MapPosition, trackElement, ride, session.CurrentRotation))
{
imageId = session.TrackColours[SCHEME_MISC].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 } });
}
break;
default:

View File

@ -433,12 +433,12 @@ static void PaintMonorailStation(
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, 2 }, { 0, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 0, 2, height }, { 32, 28, 2 } });
}
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, 2 }, { 2, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height - 2 }, { { 2, 0, height }, { 28, 32, 2 } });
}
}
@ -943,7 +943,8 @@ static void PaintMonorailTrackLeftEighthToDiag(
ghost_train_track_pieces_left_eight_to_diag[direction][index]);
const CoordsXY& offset = GhostTrainTrackPiecesLeftEightToDiagBoxes[direction][index].offset;
const CoordsXY& bounds = GhostTrainTrackPiecesLeftEightToDiagBoxes[direction][index].length;
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { bounds.x, bounds.y, 2 }, { offset.x, offset.y, height });
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { { offset.x, offset.y, height }, { bounds.x, bounds.y, 2 } });
}
switch (trackSequence)
@ -1008,7 +1009,8 @@ static void PaintMonorailTrackRightEighthToDiag(
ghost_train_track_pieces_right_eight_to_diag[direction][index]);
const CoordsXY offset = GhostTrainTrackPiecesRightEightToDiagBoxes[direction][index].offset;
const CoordsXY bounds = GhostTrainTrackPiecesRightEightToDiagBoxes[direction][index].length;
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { bounds.x, bounds.y, 2 }, { offset.x, offset.y, height });
PaintAddImageAsParent(
session, imageId, { 0, 0, height }, { { offset.x, offset.y, height }, { bounds.x, bounds.y, 2 } });
}
switch (trackSequence)
@ -1110,7 +1112,7 @@ static void PaintMonorailTrackDiagFlat(
if (monorail_diag_image_segment[direction][trackSequence])
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(monorail_track_pieces_diag_flat[direction]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1133,7 +1135,7 @@ static void PaintMonorailTrackDiag25DegUp(
if (monorail_diag_image_segment[direction][trackSequence])
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(monorail_track_pieces_diag_25_deg_up[direction]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1156,7 +1158,7 @@ static void PaintMonorailTrackDiagFlatTo25DegUp(
if (monorail_diag_image_segment[direction][trackSequence])
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(monorail_track_pieces_diag_flat_to_25_deg_up[direction]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1179,7 +1181,7 @@ static void PaintMonorailTrackDiag25DegUpToFlat(
if (monorail_diag_image_segment[direction][trackSequence])
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(monorail_track_pieces_diag_25_deg_up_to_flat[direction]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1202,7 +1204,7 @@ static void PaintMonorailTrackDiag25DegDown(
if (monorail_diag_image_segment[direction][trackSequence])
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(monorail_track_pieces_diag_25_deg_up[(direction + 2) % 4]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1226,7 +1228,7 @@ static void PaintMonorailTrackDiagFlatTo25DegDown(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
monorail_track_pieces_diag_25_deg_up_to_flat[(direction + 2) % 4]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)
@ -1250,7 +1252,7 @@ static void PaintMonorailTrackDiag25DegDownToFlat(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
monorail_track_pieces_diag_flat_to_25_deg_up[(direction + 2) % 4]);
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { 32, 32, 2 }, { -16, -16, height });
PaintAddImageAsParent(session, imageId, { -16, -16, height }, { { -16, -16, height }, { 32, 32, 2 } });
}
if (trackSequence == 3)

View File

@ -278,21 +278,21 @@ static void PaintRiverRapidsTrackFlat(
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_RIVER_RAPIDS_FLAT_NW_SE : SPR_RIVER_RAPIDS_FLAT_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 11 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_RIVER_RAPIDS_FLAT_FRONT_NW_SE : SPR_RIVER_RAPIDS_FLAT_FRONT_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 2, 5 }, { 10, 10, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 10, 10, height }, { 1, 2, 5 } });
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 0 ? SPR_RIVER_RAPIDS_FLAT_SW_NE : SPR_RIVER_RAPIDS_FLAT_NE_SW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 11 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 0 ? SPR_RIVER_RAPIDS_FLAT_FRONT_SW_NE : SPR_RIVER_RAPIDS_FLAT_FRONT_NE_SW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 2, 5 }, { 10, 10, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 10, 10, height }, { 1, 2, 5 } });
}
WoodenASupportsPaintSetup(session, (direction & 1), 0, height, session.TrackColours[SCHEME_SUPPORTS]);
@ -329,10 +329,10 @@ static void PaintRiverRapidsTrack25Deg(PaintSession& session, uint8_t direction,
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 4 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 4 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 16 }, { 32, 1, 34 } });
WoodenASupportsPaintSetup(session, 0, 9, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_SQUARE_7);
@ -340,11 +340,11 @@ static void PaintRiverRapidsTrack25Deg(PaintSession& session, uint8_t direction,
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 4 }, { 4, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 4 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 34 } });
WoodenASupportsPaintSetup(session, 1, 10, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_SQUARE_8);
@ -352,11 +352,11 @@ static void PaintRiverRapidsTrack25Deg(PaintSession& session, uint8_t direction,
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 4 }, { 0, 4, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 4 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 34 }, { 0, 27, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 16 }, { 32, 1, 34 } });
WoodenASupportsPaintSetup(session, 0, 11, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_SQUARE_8);
@ -364,10 +364,10 @@ static void PaintRiverRapidsTrack25Deg(PaintSession& session, uint8_t direction,
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 4 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 4 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 34 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 34 } });
WoodenASupportsPaintSetup(session, 1, 12, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_SQUARE_7);
@ -388,10 +388,10 @@ static void PaintRiverRapidsTrack25DegToFlatA(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 4 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 4 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 18 }, { 0, 27, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 16 }, { 32, 1, 18 } });
WoodenASupportsPaintSetup(session, 0, 5, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height - 8, TUNNEL_SQUARE_FLAT);
@ -399,11 +399,11 @@ static void PaintRiverRapidsTrack25DegToFlatA(
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 4 }, { 4, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 4 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 18 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 18 } });
WoodenASupportsPaintSetup(session, 1, 6, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height + 8, TUNNEL_14);
@ -411,12 +411,12 @@ static void PaintRiverRapidsTrack25DegToFlatA(
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 4 }, { 0, 4, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 4 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 18 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 18 } });
WoodenASupportsPaintSetup(session, 0, 7, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_14);
@ -424,10 +424,10 @@ static void PaintRiverRapidsTrack25DegToFlatA(
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 4 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 4 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 18 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 18 } });
WoodenASupportsPaintSetup(session, 1, 8, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height - 8, TUNNEL_SQUARE_FLAT);
@ -448,10 +448,10 @@ static void PaintRiverRapidsTrack25DegToFlatB(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 11 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 16 }, { 32, 1, 26 } });
WoodenASupportsPaintSetup(session, 0, 1, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
@ -459,11 +459,11 @@ static void PaintRiverRapidsTrack25DegToFlatB(
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 11 }, { 4, 0, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 26 } });
WoodenASupportsPaintSetup(session, 1, 2, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_8);
@ -471,11 +471,11 @@ static void PaintRiverRapidsTrack25DegToFlatB(
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 11 }, { 0, 4, height });
ps = PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 11 } });
session.WoodenSupportsPrependTo = ps;
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 16 }, { 32, 1, 26 } });
WoodenASupportsPaintSetup(session, 0, 3, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_8);
@ -483,10 +483,10 @@ static void PaintRiverRapidsTrack25DegToFlatB(
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][0]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 11 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(sprites[direction][1]);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height + 16 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 16 }, { 1, 32, 26 } });
WoodenASupportsPaintSetup(session, 1, 4, height, session.TrackColours[SCHEME_SUPPORTS]);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
@ -555,41 +555,41 @@ static void PaintRiverRapidsTrackLeftQuarterTurn1Tile(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_SW_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 26, 11 }, { 4, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 2, height }, { 28, 26, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_FRONT_SW_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 1, 7 }, { 28, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 27, height }, { 2, 1, 7 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
break;
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 25, 25, 5 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 25, 25, 5 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_QUARTER_TURN_1_TILE_FRONT_LEFT_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 30, 7 }, { 27, 1, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 1, height }, { 1, 30, 7 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_QUARTER_TURN_1_TILE_FRONT_RIGHT_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 30, 1, 7 }, { 1, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 27, height }, { 30, 1, 7 } });
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_NE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 28, 11 }, { 2, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 4, height }, { 26, 28, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_FRONT_NE_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 2, 5 }, { 10, 10, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 10, 10, height }, { 1, 2, 5 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_SE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 28, 11 }, { 4, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 4, height }, { 28, 28, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_LEFT_QUARTER_TURN_1_TILE_FRONT_SE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 7 }, { 28, 28, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 28, height }, { 1, 1, 7 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
@ -612,10 +612,10 @@ static void PaintRiverRapidsTrackRightQuarterTurn1Tile(
{
case 0:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_SW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 28, 11 }, { 4, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 4, height }, { 28, 28, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_FRONT_SW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 1, 7 }, { 28, 28, height + 2 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 28, height + 2 }, { 1, 1, 7 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
@ -623,31 +623,31 @@ static void PaintRiverRapidsTrackRightQuarterTurn1Tile(
case 1:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_SE_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 26, 11 }, { 4, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 2, height }, { 28, 26, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_FRONT_SE_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 2, 1, 7 }, { 28, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 28, 27, height }, { 2, 1, 7 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
break;
case 2:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_NE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 28, 28, 11 }, { 0, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 0, height }, { 28, 28, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_QUARTER_TURN_1_TILE_FRONT_LEFT_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 22, 7 }, { 27, 1, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 1, height }, { 1, 22, 7 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_QUARTER_TURN_1_TILE_FRONT_RIGHT_NW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 22, 1, 7 }, { 1, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 1, 27, height }, { 22, 1, 7 } });
break;
case 3:
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_NW_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 26, 28, 11 }, { 2, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 2, 4, height }, { 26, 28, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RIGHT_QUARTER_TURN_1_TILE_FRONT_NW_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 28, 7 }, { 27, 2, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 2, height }, { 1, 28, 7 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
break;
@ -671,17 +671,17 @@ static void PaintRiverRapidsTrackWaterfall(
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_RIVER_RAPIDS_WATERFALL_NW_SE : SPR_RIVER_RAPIDS_WATERFALL_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 11 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((SPR_RIVER_RAPIDS_WATERFALL_BASE_NE_FRAME_0 + frameNum));
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((SPR_RIVER_RAPIDS_WATERFALL_TOP_NE_FRAME_0 + frameNum));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 27 }, { 4, 0, height + 17 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height + 17 }, { 1, 32, 27 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_RIVER_RAPIDS_WATERFALL_FRONT_NW_SE : SPR_RIVER_RAPIDS_WATERFALL_FRONT_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 27 }, { 27, 0, height + 17 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 17 }, { 1, 32, 27 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((SPR_RIVER_RAPIDS_WATERFALL_SIDE_SW_FRAME_0 + frameNum));
PaintAddImageAsChild(session, imageId, { 0, 0, height }, { { 27, 0, height + 17 }, { 1, 32, 27 } });
@ -740,18 +740,18 @@ static void PaintRiverRapidsTrackRapids(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((SPR_RIVER_RAPIDS_RAPIDS_NW_SE_FRAME_0 + frameNum));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 24, 32, 11 }, { 4, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 4, 0, height }, { 24, 32, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RAPIDS_FRONT_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 11 }, { 27, 0, height + 17 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height + 17 }, { 1, 32, 11 } });
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex((SPR_RIVER_RAPIDS_RAPIDS_SW_NE_FRAME_0 + frameNum));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 24, 11 }, { 0, 4, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 4, height }, { 32, 24, 11 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_RIVER_RAPIDS_RAPIDS_FRONT_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 11 }, { 0, 27, height + 17 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height + 17 }, { 32, 1, 11 } });
}
WoodenASupportsPaintSetup(session, (direction & 1), 0, height, session.TrackColours[SCHEME_SUPPORTS]);

View File

@ -732,21 +732,21 @@ static void PaintSplashBoatsTrackFlat(
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_SPLASH_BOATS_FLAT_TOP_NW_SE : SPR_SPLASH_BOATS_FLAT_TOP_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 2 }, { 6, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height }, { 20, 32, 2 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_SPLASH_BOATS_FLAT_SIDE_NW_SE : SPR_SPLASH_BOATS_FLAT_SIDE_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 1, 32, 26 }, { 27, 0, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } });
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 0 ? SPR_SPLASH_BOATS_FLAT_TOP_SW_NE : SPR_SPLASH_BOATS_FLAT_TOP_NE_SW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 2 }, { 0, 6, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height }, { 32, 20, 2 } });
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 0 ? SPR_SPLASH_BOATS_FLAT_SIDE_SW_NE : SPR_SPLASH_BOATS_FLAT_SIDE_NE_SW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 1, 26 }, { 0, 27, height });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } });
}
WoodenASupportsPaintSetup(session, (direction & 1), 0, height, session.TrackColours[SCHEME_SUPPORTS]);
@ -773,7 +773,7 @@ static void PaintSplashBoatsStation(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 1 ? SPR_SPLASH_BOATS_FLAT_TOP_NW_SE : SPR_SPLASH_BOATS_FLAT_TOP_SE_NW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 20, 32, 1 }, { 6, 0, height + 3 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 6, 0, height + 3 }, { 20, 32, 1 } });
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_NW_SE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 });
@ -782,7 +782,7 @@ static void PaintSplashBoatsStation(
{
auto imageId = session.TrackColours[SCHEME_TRACK].WithIndex(
(direction == 0 ? SPR_SPLASH_BOATS_FLAT_TOP_SW_NE : SPR_SPLASH_BOATS_FLAT_TOP_NE_SW));
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 20, 1 }, { 0, 6, height + 3 });
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 1 } });
imageId = session.TrackColours[SCHEME_MISC].WithIndex(SPR_STATION_BASE_B_SW_NE);
PaintAddImageAsParent(session, imageId, { 0, 0, height }, { 32, 32, 1 });

View File

@ -56,10 +56,11 @@ void VehicleVisualSubmarine(
const auto& bb = VehicleBoundboxes[carEntry->draw_order][OpenRCT2::Entity::Yaw::YawTo16(imageDirection)];
PaintAddImageAsParent(
session, imageId0, { 0, 0, z }, { bb.length_x, bb.length_y, bb.length_z },
{ bb.offset_x, bb.offset_y, bb.offset_z + z });
session, imageId0, { 0, 0, z },
{ { bb.offset_x, bb.offset_y, bb.offset_z + z }, { bb.length_x, bb.length_y, bb.length_z } });
PaintAddImageAsParent(
session, imageId1, { 0, 0, z }, { bb.length_x, bb.length_y, 2 }, { bb.offset_x, bb.offset_y, bb.offset_z + z - 10 });
session, imageId1, { 0, 0, z },
{ { bb.offset_x, bb.offset_y, bb.offset_z + z - 10 }, { bb.length_x, bb.length_y, 2 } });
assert(carEntry->effect_visual == 1);
}
@ -74,7 +75,7 @@ static void SubmarineRidePaintTrackStation(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { 20, 32, 3 }, { 6, 0, heightLower });
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { { 6, 0, heightLower }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, height, TUNNEL_SQUARE_FLAT);
TrackPaintUtilDrawPier(
@ -83,7 +84,7 @@ static void SubmarineRidePaintTrackStation(
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { 32, 20, 3 }, { 0, 6, heightLower });
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { { 0, 6, heightLower }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_FLAT);
TrackPaintUtilDrawPier(
@ -104,13 +105,13 @@ static void SubmarineRidePaintTrackFlat(
if (direction & 1)
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_SE_NW);
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { 20, 32, 3 }, { 6, 0, heightLower });
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { { 6, 0, heightLower }, { 20, 32, 3 } });
PaintUtilPushTunnelRight(session, heightLower, TUNNEL_0);
}
else
{
imageId = session.TrackColours[SCHEME_TRACK].WithIndex(SPR_TRACK_SUBMARINE_RIDE_MINI_HELICOPTERS_FLAT_NE_SW);
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { 32, 20, 3 }, { 0, 6, heightLower });
PaintAddImageAsParent(session, imageId, { 0, 0, heightLower }, { { 0, 6, heightLower }, { 32, 20, 3 } });
PaintUtilPushTunnelLeft(session, heightLower, TUNNEL_0);
}