diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj
index 6f770921b1..30268a37a8 100644
--- a/src/openrct2/libopenrct2.vcxproj
+++ b/src/openrct2/libopenrct2.vcxproj
@@ -315,6 +315,7 @@
+
@@ -1001,4 +1002,4 @@
-
\ No newline at end of file
+
diff --git a/src/openrct2/paint/Boundbox.h b/src/openrct2/paint/Boundbox.h
new file mode 100644
index 0000000000..8d67ca42f7
--- /dev/null
+++ b/src/openrct2/paint/Boundbox.h
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (c) 2014-2022 OpenRCT2 developers
+ *
+ * For a complete list of all authors, please refer to contributors.md
+ * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
+ *
+ * OpenRCT2 is licensed under the GNU General Public License version 3.
+ *****************************************************************************/
+
+#pragma once
+
+#include "../world/Location.hpp"
+
+#include
+
+struct BoundBoxXY
+{
+ CoordsXY length{};
+ CoordsXY offset{};
+
+ constexpr BoundBoxXY() = default;
+ constexpr BoundBoxXY(CoordsXY _length, CoordsXY _offset)
+ : length(_length)
+ , offset(_offset)
+ {
+ }
+};
+
+struct BoundBoxXYZ
+{
+ CoordsXYZ length{};
+ CoordsXYZ offset{};
+
+ constexpr BoundBoxXYZ() = default;
+ constexpr BoundBoxXYZ(CoordsXYZ _length, CoordsXYZ _offset)
+ : length(_length)
+ , offset(_offset)
+ {
+ }
+};
diff --git a/src/openrct2/paint/Supports.cpp b/src/openrct2/paint/Supports.cpp
index 45801967e4..89b0dfb0c8 100644
--- a/src/openrct2/paint/Supports.cpp
+++ b/src/openrct2/paint/Supports.cpp
@@ -14,6 +14,7 @@
#include "../sprites.h"
#include "../util/Math.hpp"
#include "../world/Surface.h"
+#include "Boundbox.h"
#include "Paint.h"
#include "tile_element/Paint.TileElement.h"
@@ -306,13 +307,9 @@ static constexpr const uint16_t* WoodenCurveSupportImageIds[12] = {
nullptr,
};
-struct unk_supports_desc_bound_box {
- CoordsXYZ offset;
- CoordsXYZ length;
-};
struct unk_supports_desc {
- unk_supports_desc_bound_box bounding_box;
+ BoundBoxXYZ bounding_box;
uint8_t var_6;
uint8_t var_7;
};
@@ -595,7 +592,7 @@ bool wooden_a_supports_paint_setup(
{
auto imageId = imageTemplate.WithIndex(WoodenCurveSupportImageIds[supportType][special]);
- unk_supports_desc_bound_box bBox = byte_97B23C[special].bounding_box;
+ const BoundBoxXYZ& bBox = byte_97B23C[special].bounding_box;
if (byte_97B23C[special].var_6 == 0 || session.WoodenSupportsPrependTo == nullptr)
{
@@ -768,7 +765,7 @@ bool wooden_b_supports_paint_setup(
{ // byte_97B23C[special].var_7 is never 0
auto imageId = imageTemplate.WithIndex(WoodenCurveSupportImageIds[supportType][specialIndex]);
- const unk_supports_desc_bound_box& boundBox = supportsDesc.bounding_box;
+ const BoundBoxXYZ& boundBox = supportsDesc.bounding_box;
if (supportsDesc.var_6 == 0 || session.WoodenSupportsPrependTo == nullptr)
{
@@ -1303,7 +1300,7 @@ bool path_a_supports_paint_setup(
ImageIndex imageIndex = pathPaintInfo.BridgeImageId + 55 + specialIndex;
const unk_supports_desc& supportsDesc = byte_98D8D4[specialIndex];
- const unk_supports_desc_bound_box& boundBox = supportsDesc.bounding_box;
+ const BoundBoxXYZ& boundBox = supportsDesc.bounding_box;
if (supportsDesc.var_6 == 0 || session.WoodenSupportsPrependTo == nullptr)
{
diff --git a/src/openrct2/ride/gentle/CrookedHouse.cpp b/src/openrct2/ride/gentle/CrookedHouse.cpp
index 78605715de..1d2b78b308 100644
--- a/src/openrct2/ride/gentle/CrookedHouse.cpp
+++ b/src/openrct2/ride/gentle/CrookedHouse.cpp
@@ -9,6 +9,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../interface/Viewport.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../../ride/Vehicle.h"
@@ -17,13 +18,7 @@
#include "../Track.h"
#include "../TrackPaint.h"
-struct rct_crooked_house_bound_box
-{
- CoordsXY offset;
- CoordsXY length;
-};
-
-static constexpr const rct_crooked_house_bound_box crooked_house_data[] = {
+static constexpr const BoundBoxXY CrookedHouseData[] = {
{
{ 6, 0 },
{ 42, 24 },
@@ -75,7 +70,7 @@ static void PaintCrookedHouseStructure(
}
}
- const auto& boundBox = crooked_house_data[segment];
+ const auto& boundBox = CrookedHouseData[segment];
auto imageTemplate = ImageId::FromUInt32(session.TrackColours[SCHEME_MISC]);
auto imageIndex = rideEntry->Cars[0].base_image_id + direction;
PaintAddImageAsParent(
diff --git a/src/openrct2/ride/gentle/FerrisWheel.cpp b/src/openrct2/ride/gentle/FerrisWheel.cpp
index 6a2230ecb1..e24523f080 100644
--- a/src/openrct2/ride/gentle/FerrisWheel.cpp
+++ b/src/openrct2/ride/gentle/FerrisWheel.cpp
@@ -10,6 +10,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../entity/Guest.h"
#include "../../interface/Viewport.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../Ride.h"
@@ -32,18 +33,12 @@ static constexpr const uint8_t edges_1x4_nw_se[] = {
EDGE_NE | EDGE_SW | EDGE_SE,
};
-struct ferris_wheel_bound_box
-{
- CoordsXY length;
- CoordsXY offset;
-};
-
/** rct2: 0x008A8CA8 */
-static constexpr ferris_wheel_bound_box FerrisWheelData[] = {
- { { 31, 16 }, { 1, 8 } },
- { { 16, 31 }, { 8, 1 } },
- { { 31, 16 }, { 1, 8 } },
- { { 16, 31 }, { 8, 1 } },
+static constexpr BoundBoxXY FerrisWheelData[] = {
+ { { 1, 8 }, { 31, 16 } },
+ { { 8, 1 }, { 16, 31 } },
+ { { 1, 8 }, { 31, 16 } },
+ { { 8, 1 }, { 16, 31 } },
};
static void PaintFerrisWheelRiders(
diff --git a/src/openrct2/ride/gentle/HauntedHouse.cpp b/src/openrct2/ride/gentle/HauntedHouse.cpp
index 391ff5ef72..d7e9cbf55e 100644
--- a/src/openrct2/ride/gentle/HauntedHouse.cpp
+++ b/src/openrct2/ride/gentle/HauntedHouse.cpp
@@ -9,6 +9,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../interface/Viewport.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../Ride.h"
@@ -17,13 +18,7 @@
#include "../TrackPaint.h"
#include "../Vehicle.h"
-struct haunted_house_bound_box
-{
- CoordsXY offset;
- CoordsXY length;
-};
-
-static constexpr haunted_house_bound_box haunted_house_data[] = {
+static constexpr BoundBoxXY HauntedHouseData[] = {
{ { 6, 0 }, { 42, 24 } }, { { 0, 0 }, { 0, 0 } }, { { -16, -16 }, { 32, 32 } },
{ { 0, 0 }, { 0, 0 } }, { { 0, 6 }, { 24, 42 } }, { { 0, 0 }, { 0, 0 } },
};
@@ -45,7 +40,7 @@ static void PaintHauntedHouseStructure(
frameNum = vehicle->Pitch;
}
- const auto& boundBox = haunted_house_data[part];
+ const auto& boundBox = HauntedHouseData[part];
auto imageTemplate = ImageId::FromUInt32(session.TrackColours[SCHEME_MISC]);
auto baseImageIndex = rideEntry->Cars[0].base_image_id;
auto imageIndex = baseImageIndex + direction;
diff --git a/src/openrct2/ride/thrill/MagicCarpet.cpp b/src/openrct2/ride/thrill/MagicCarpet.cpp
index c035e85c39..20b1a412ef 100644
--- a/src/openrct2/ride/thrill/MagicCarpet.cpp
+++ b/src/openrct2/ride/thrill/MagicCarpet.cpp
@@ -10,6 +10,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../interface/Viewport.h"
#include "../../object/StationObject.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../Ride.h"
@@ -36,14 +37,6 @@ enum
SPR_MAGIC_CARPET_PENDULUM_SW = 22102,
};
-struct bound_box
-{
- int16_t x;
- int16_t y;
- int16_t width;
- int16_t height;
-};
-
static constexpr const int16_t MagicCarpetOscillationZ[] = {
-2, -1, 1, 5, 10, 16, 23, 30, 37, 45, 52, 59, 65, 70, 74, 76, 77, 76, 74, 70, 65, 59, 52, 45, 37, 30, 23, 16, 10, 5, 1, -1,
};
@@ -53,11 +46,11 @@ static constexpr const int8_t MagicCarpetOscillationXY[] = {
0, -5, -11, -17, -22, -26, -29, -30, -31, -30, -29, -26, -22, -17, -11, -5,
};
-static constexpr const bound_box MagicCarpetBounds[] = {
- { 0, 8, 32, 16 },
- { 8, 0, 16, 32 },
- { 0, 8, 32, 16 },
- { 8, 0, 16, 32 },
+static constexpr const BoundBoxXY MagicCarpetBounds[] = {
+ { { 0, 8 }, { 32, 16 } },
+ { { 8, 0 }, { 16, 32 } },
+ { { 0, 8 }, { 32, 16 } },
+ { { 8, 0 }, { 16, 32 } },
};
static ImageIndex GetMagicCarpetFrameImage(Plane plane, Direction direction)
@@ -202,16 +195,16 @@ static void PaintMagicCarpetStructure(
session.CurrentlyDrawnEntity = vehicle;
}
- bound_box bb = MagicCarpetBounds[direction];
+ BoundBoxXY bb = MagicCarpetBounds[direction];
CoordsXYZ offset, bbOffset, bbSize;
offset.x = (direction & 1) ? 0 : axisOffset;
offset.y = (direction & 1) ? axisOffset : 0;
offset.z = height + 7;
- bbOffset.x = bb.x;
- bbOffset.y = bb.y;
+ bbOffset.x = bb.offset.x;
+ bbOffset.y = bb.offset.y;
bbOffset.z = height + 7;
- bbSize.x = bb.width;
- bbSize.y = bb.height;
+ bbSize.x = bb.length.x;
+ bbSize.y = bb.length.y;
bbSize.z = 127;
PaintMagicCarpetFrame(session, Plane::Back, direction, offset, bbOffset, bbSize);
diff --git a/src/openrct2/ride/thrill/SwingingInverterShip.cpp b/src/openrct2/ride/thrill/SwingingInverterShip.cpp
index 3e01a15287..cf7d323726 100644
--- a/src/openrct2/ride/thrill/SwingingInverterShip.cpp
+++ b/src/openrct2/ride/thrill/SwingingInverterShip.cpp
@@ -10,6 +10,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../interface/Viewport.h"
#include "../../object/StationObject.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../Ride.h"
@@ -34,20 +35,12 @@ static constexpr const uint32_t SwingingInverterShipAnimatingBaseSpriteOffset[]
33,
};
-struct swinging_inverter_ship_bound_box
-{
- int16_t length_x;
- int16_t length_y;
- int16_t offset_x;
- int16_t offset_y;
-};
-
/** rct2: 0x01428020 */
-static constexpr const swinging_inverter_ship_bound_box swinging_inverter_ship_bounds[] = {
- { 32, 16, 0, 8 },
- { 16, 32, 8, 0 },
- { 32, 16, 0, 8 },
- { 16, 32, 8, 0 },
+static constexpr const BoundBoxXY SwingingInverterShipBounds[] = {
+ { { 0, 8 }, { 32, 16 } },
+ { { 8, 0 }, { 16, 32 } },
+ { { 0, 8 }, { 32, 16 } },
+ { { 8, 0 }, { 16, 32 } },
};
enum
@@ -72,10 +65,10 @@ static void PaintSwingingInverterShipStructure(
if (rideEntry == nullptr)
return;
- const auto& boundBox = swinging_inverter_ship_bounds[direction];
+ const auto& boundBox = SwingingInverterShipBounds[direction];
CoordsXYZ offset((direction & 1) ? 0 : axisOffset, (direction & 1) ? axisOffset : 0, height);
- CoordsXYZ bbLength(boundBox.length_x, boundBox.length_y, 127);
- CoordsXYZ bbOffset(boundBox.offset_x, boundBox.offset_y, height);
+ CoordsXYZ bbLength(boundBox.length.x, boundBox.length.y, 127);
+ CoordsXYZ bbOffset(boundBox.offset.x, boundBox.offset.y, height);
Vehicle* vehicle = nullptr;
if (ride.lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK)
diff --git a/src/openrct2/ride/thrill/SwingingShip.cpp b/src/openrct2/ride/thrill/SwingingShip.cpp
index d8c69f267f..58c9fc1479 100644
--- a/src/openrct2/ride/thrill/SwingingShip.cpp
+++ b/src/openrct2/ride/thrill/SwingingShip.cpp
@@ -10,6 +10,7 @@
#include "../../entity/EntityRegistry.h"
#include "../../interface/Viewport.h"
#include "../../object/StationObject.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../Ride.h"
@@ -25,15 +26,6 @@ static constexpr const uint8_t track_map_1x5[][5] = {
{ 0, 4, 3, 2, 1 },
{ 0, 1, 2, 3, 4 },
};
-
-struct swinging_ship_bound_box
-{
- int16_t length_x;
- int16_t length_y;
- int16_t offset_x;
- int16_t offset_y;
-};
-
/** rct2: 0x008A83B0 */
static constexpr const uint32_t SwingingShipBaseSpriteOffset[] = {
0,
@@ -43,11 +35,11 @@ static constexpr const uint32_t SwingingShipBaseSpriteOffset[] = {
};
/** rct2: 0x008A83C0 */
-static constexpr const swinging_ship_bound_box SwingingShipData[] = {
- { 31, 16, 1, 8 },
- { 16, 31, 8, 1 },
- { 31, 16, 1, 8 },
- { 16, 31, 8, 1 },
+static constexpr const BoundBoxXY SwingingShipData[] = {
+ { { 1, 8 }, { 31, 16 } },
+ { { 8, 1 }, { 16, 31 } },
+ { { 1, 8 }, { 31, 16 } },
+ { { 8, 1 }, { 16, 31 } },
};
enum
@@ -108,8 +100,8 @@ static void PaintSwingingShipStructure(
const auto& bounds = SwingingShipData[direction];
CoordsXYZ offset((direction & 1) ? 0 : axisOffset, (direction & 1) ? axisOffset : 0, height + 7);
- CoordsXYZ bbLength(bounds.length_x, bounds.length_y, 80);
- CoordsXYZ bbOffset(bounds.offset_x, bounds.offset_y, height + 7);
+ CoordsXYZ bbLength(bounds.length.x, bounds.length.y, 80);
+ CoordsXYZ bbOffset(bounds.offset.x, bounds.offset.y, height + 7);
auto baseImageId = rideEntry->Cars[0].base_image_id + SwingingShipBaseSpriteOffset[direction];
if (vehicle != nullptr)
diff --git a/src/openrct2/ride/transport/Monorail.cpp b/src/openrct2/ride/transport/Monorail.cpp
index 6dad0de780..fe2cfadaba 100644
--- a/src/openrct2/ride/transport/Monorail.cpp
+++ b/src/openrct2/ride/transport/Monorail.cpp
@@ -10,6 +10,7 @@
#include "../../common.h"
#include "../../interface/Viewport.h"
#include "../../object/StationObject.h"
+#include "../../paint/Boundbox.h"
#include "../../paint/Paint.h"
#include "../../paint/Supports.h"
#include "../../world/Map.h"
@@ -271,57 +272,32 @@ static constexpr const uint32_t ghost_train_track_pieces_right_eight_to_diag[4][
},
};
-static constexpr const CoordsXY ghost_train_track_pieces_right_eight_to_diag_bounds[4][4] = {
+static constexpr const BoundBoxXY GhostTrainTrackPiecesRightEightToDiagBoxes[4][4] = {
{
- { 32, 20 },
- { 32, 16 },
- { 16, 16 },
- { 16, 16 },
+ { { 0, 6 }, { 32, 20 } },
+ { { 0, 16 }, { 32, 16 } },
+ { { 0, 0 }, { 16, 16 } },
+ { { 16, 0 }, { 16, 16 } },
},
{
- { 20, 32 },
- { 16, 32 },
- { 16, 16 },
- { 16, 16 },
+ { { 6, 0 }, { 20, 32 } },
+ { { 16, 0 }, { 16, 32 } },
+ { { 0, 16 }, { 16, 16 } },
+ { { 0, 0 }, { 16, 16 } },
},
{
- { 32, 20 },
- { 34, 16 },
- { 28, 28 },
- { 16, 18 },
- },
- {
- { 20, 32 },
- { 16, 32 },
- { 16, 16 },
- { 16, 16 },
- },
-};
-static constexpr const CoordsXY ghost_train_track_pieces_right_eight_to_diag_offset[4][4] = {
- {
- { 0, 6 },
- { 0, 16 },
- { 0, 0 },
- { 16, 0 },
+ { { 0, 6 }, { 32, 20 } },
+ { { 0, 0 }, { 34, 16 } },
+ { { 4, 4 }, { 28, 28 } },
+ { { 0, 16 }, { 16, 18 } },
},
{
- { 6, 0 },
- { 16, 0 },
- { 0, 16 },
- { 0, 0 },
- },
- {
- { 0, 6 },
- { 0, 0 },
- { 4, 4 },
- { 0, 16 },
- },
- {
- { 6, 0 },
- { 0, 0 },
- { 16, 0 },
- { 16, 16 },
+
+ { { 6, 0 }, { 20, 32 } },
+ { { 0, 0 }, { 16, 32 } },
+ { { 16, 0 }, { 16, 16 } },
+ { { 16, 16 }, { 16, 16 } },
},
};
@@ -352,57 +328,30 @@ static constexpr const uint32_t ghost_train_track_pieces_left_eight_to_diag[4][4
},
};
-static constexpr const CoordsXY ghost_train_track_pieces_left_eight_to_diag_bounds[4][4] = {
+static constexpr const BoundBoxXY GhostTrainTrackPiecesLeftEightToDiagBoxes[4][4] = {
{
- { 32, 20 },
- { 32, 16 },
- { 16, 16 },
- { 16, 16 },
+ { { 0, 6 }, { 32, 20 } },
+ { { 0, 0 }, { 32, 16 } },
+ { { 0, 16 }, { 16, 16 } },
+ { { 16, 16 }, { 16, 16 } },
},
{
- { 20, 32 },
- { 16, 34 },
- { 16, 16 },
- { 18, 16 },
+ { { 6, 0 }, { 20, 32 } },
+ { { 0, 0 }, { 16, 34 } },
+ { { 16, 16 }, { 16, 16 } },
+ { { 16, 0 }, { 18, 16 } },
},
{
- { 32, 20 },
- { 32, 16 },
- { 16, 16 },
- { 16, 16 },
+ { { 0, 6 }, { 32, 20 } },
+ { { 0, 16 }, { 32, 16 } },
+ { { 16, 0 }, { 16, 16 } },
+ { { 0, 0 }, { 16, 16 } },
},
{
- { 20, 32 },
- { 16, 32 },
- { 16, 16 },
- { 16, 16 },
- },
-};
-
-static constexpr const CoordsXY ghost_train_track_pieces_left_eight_to_diag_offset[4][4] = {
- {
- { 0, 6 },
- { 0, 0 },
- { 0, 16 },
- { 16, 16 },
- },
- {
- { 6, 0 },
- { 0, 0 },
- { 16, 16 },
- { 16, 0 },
- },
- {
- { 0, 6 },
- { 0, 16 },
- { 16, 0 },
- { 0, 0 },
- },
- {
- { 6, 0 },
- { 16, 0 },
- { 0, 0 },
- { 0, 16 },
+ { { 6, 0 }, { 20, 32 } },
+ { { 16, 0 }, { 16, 32 } },
+ { { 0, 0 }, { 16, 16 } },
+ { { 0, 16 }, { 16, 16 } },
},
};
@@ -761,23 +710,16 @@ static void paint_monorail_track_s_bend_left(
trackSequence = 3 - trackSequence;
}
- static constexpr CoordsXY offsetList[] = {
- { 0, 6 },
- { 0, 0 },
- { 0, 6 },
- { 0, 6 },
- };
-
- static constexpr CoordsXY boundsList[] = {
- { 32, 20 },
- { 32, 26 },
- { 32, 26 },
- { 32, 20 },
+ static constexpr BoundBoxXY boxList[] = {
+ { { 0, 6 }, { 32, 20 } },
+ { { 0, 0 }, { 32, 26 } },
+ { { 0, 6 }, { 32, 26 } },
+ { { 0, 6 }, { 32, 20 } },
};
uint32_t imageId = monorail_track_pieces_s_bend_left[direction & 1][trackSequence] | session.TrackColours[SCHEME_TRACK];
- CoordsXY offset = offsetList[trackSequence];
- CoordsXY bounds = boundsList[trackSequence];
+ const CoordsXY& offset = boxList[trackSequence].offset;
+ const CoordsXY& bounds = boxList[trackSequence].length;
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { offset.x, offset.y, height }, { bounds.x, bounds.y, 3 });
@@ -865,23 +807,13 @@ static void paint_monorail_track_s_bend_right(
trackSequence = 3 - trackSequence;
}
- static constexpr CoordsXY offsetList[] = {
- { 0, 6 },
- { 0, 6 },
- { 0, 0 },
- { 0, 6 },
- };
-
- static constexpr CoordsXY boundsList[] = {
- { 32, 20 },
- { 32, 26 },
- { 32, 26 },
- { 32, 20 },
+ static constexpr BoundBoxXY boxList[] = {
+ { { 0, 6 }, { 32, 20 } }, { { 0, 6 }, { 32, 26 } }, { { 0, 0 }, { 32, 26 } }, { { 0, 6 }, { 32, 20 } }
};
uint32_t imageId = monorail_track_pieces_s_bend_right[direction & 1][trackSequence] | session.TrackColours[SCHEME_TRACK];
- CoordsXY offset = offsetList[trackSequence];
- CoordsXY bounds = boundsList[trackSequence];
+ const CoordsXY& offset = boxList[trackSequence].offset;
+ const CoordsXY& bounds = boxList[trackSequence].length;
if (direction == 0 || direction == 2)
{
PaintAddImageAsParent(session, imageId, { offset.x, offset.y, height }, { bounds.x, bounds.y, 3 });
@@ -1018,8 +950,8 @@ static void paint_monorail_track_left_eighth_to_diag(
if (index >= 0)
{
uint32_t imageId = ghost_train_track_pieces_left_eight_to_diag[direction][index] | session.TrackColours[SCHEME_TRACK];
- const CoordsXY offset = ghost_train_track_pieces_left_eight_to_diag_offset[direction][index];
- const CoordsXY bounds = ghost_train_track_pieces_left_eight_to_diag_bounds[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 });
}
@@ -1086,8 +1018,8 @@ static void paint_monorail_track_right_eighth_to_diag(
if (index >= 0)
{
uint32_t imageId = ghost_train_track_pieces_right_eight_to_diag[direction][index] | session.TrackColours[SCHEME_TRACK];
- const CoordsXY offset = ghost_train_track_pieces_right_eight_to_diag_offset[direction][index];
- const CoordsXY bounds = ghost_train_track_pieces_right_eight_to_diag_bounds[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 });
}