From 97427743a4ace9f16ebd913ed418d524cb6bc9d9 Mon Sep 17 00:00:00 2001 From: "Tiago A. Reul" Date: Tue, 20 Jun 2023 20:24:04 -0300 Subject: [PATCH] Clean up SpritBoundBox2 --- .../coaster/ClassicWoodenRollerCoaster.cpp | 750 +++++++++++++----- .../ride/coaster/WoodenRollerCoaster.cpp | 309 +++----- .../ride/coaster/WoodenRollerCoaster.h | 21 +- 3 files changed, 684 insertions(+), 396 deletions(-) diff --git a/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp b/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp index b102c878ce..730b305cbe 100644 --- a/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp +++ b/src/openrct2/ride/coaster/ClassicWoodenRollerCoaster.cpp @@ -234,20 +234,20 @@ static void ClassicWoodenRCTrackFlatToLeftBank( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_LEFT_BANK_FRONT_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } } }; WoodenRCTrackPaintBb(session, &imageIds[direction][trackSequence][0], height); @@ -264,21 +264,21 @@ static void ClassicWoodenRCTrackFlatToRightBank( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 26, 5 }, { 32, 1, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_FLAT_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -311,21 +311,21 @@ static void ClassicWoodenRCTrackLeftBank( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -350,21 +350,21 @@ static void ClassicWoodenRCTrackLeftBankTo25DegUp( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 26, 5 }, { 32, 1, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_LEFT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -390,21 +390,21 @@ static void ClassicWoodenRCTrackRightBankTo25DegUp( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_FRONT_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 26, 5 }, { 32, 1, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_RIGHT_BANK_TO_25_UP_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -431,21 +431,21 @@ static void ClassicWoodenRCTrack25DegUpToLeftBank( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 26, 5 }, { 32, 1, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_LEFT_BANK_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -472,21 +472,21 @@ static void ClassicWoodenRCTrack25DegUpToRightBank( { static constexpr const SpriteBoundBox2 imageIds[4][1][2] = { { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SW_NE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, {}, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, { 26, 0, 5 }, { 1, 32, 9 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NW_SE, 0, { 0, 0, 0 }, BoundBoxXYZ({ 26, 0, 5 }, { 1, 32, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, { 0, 3, 0 }, { 32, 25, 2 } }, - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, { 0, 26, 5 }, { 32, 1, 9 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 3, 0 }, { 32, 25, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_FRONT_NE_SW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 26, 5 }, { 32, 1, 9 }) }, } }, { { - { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, { 3, 0, 0 }, { 25, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_25_UP_TO_RIGHT_BANK_SE_NW, 0, { 0, 0, 0 }, BoundBoxXYZ({ 3, 0, 0 }, { 25, 32, 2 }) }, {}, }, } @@ -542,45 +542,70 @@ static void ClassicWoodenRCTrackBankedRightQuarterTurn5( static constexpr const SpriteBoundBox2 imageIds[4][7][2] = { { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 32, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2, + 0, + { 0, 16, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, 0, { 0, 16, 0 }, - { 0, 16, 27 }, - { 32, 16, 0 } }, + BoundBoxXYZ({ 0, 16, 27 }, { 32, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5, + 0, + { 16, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }) }, { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, 0, { 16, 0, 0 }, - { 16, 0, 27 }, - { 16, 32, 0 } }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 32, 32, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -588,11 +613,17 @@ static void ClassicWoodenRCTrackBankedRightQuarterTurn5( {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2, + 0, + { 16, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3, + 0, + { 0, 16, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }) }, {}, }, { @@ -600,76 +631,123 @@ static void ClassicWoodenRCTrackBankedRightQuarterTurn5( {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }) }, {}, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 27, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, 0, { 0, 2, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 27, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3, 0, { 16, 16, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3, + 0, + { 16, 16, 0 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, 0, { 16, 16, 0 }, - { 16, 16, 27 }, - { 16, 16, 0 } }, + BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, 0, { 2, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 27, 32, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0, 0, { 2, 0, 0 }, { 2, 0, 0 }, { 27, 32, 2 } }, - { 0, 0, { 0, 0, 0 }, { 0, 2, 27 }, { 32, 27, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0, + 0, + { 2, 0, 0 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 2, 27 }, { 32, 27, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 27 }, { 32, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3, 0, { 16, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, - { 0, 0, { 0, 0, 0 }, { 16, 16, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3, + 0, + { 16, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5, + 0, + { 0, 16, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 27 }, { 16, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6, 0, { 0, 2, 0 }, { 0, 2, 0 }, { 32, 32, 2 } }, - { 0, 0, { 0, 0, 0 }, { 2, 0, 27 }, { 27, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6, + 0, + { 0, 2, 0 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 2, 0, 27 }, { 27, 32, 0 }) }, }, }, }; @@ -718,29 +796,46 @@ static void ClassicWoodenRCTrackRightQuarterTurn3Bank( static constexpr const SpriteBoundBox2 imageIds[4][4][2] = { { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_0, 0, { 0, 6, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_0, 0, { 0, 6, 0 }, { 0, 6, 27 }, { 32, 20, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_0, + 0, + { 0, 6, 0 }, + BoundBoxXYZ({ 0, 6, 0 }, { 32, 20, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_0, + 0, + { 0, 6, 0 }, + BoundBoxXYZ({ 0, 6, 27 }, { 32, 20, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_2, 0, { 16, 16, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_2, + 0, + { 16, 16, 0 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_2, 0, { 16, 16, 0 }, - { 16, 16, 27 }, - { 16, 16, 0 } }, + BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_3, 0, { 6, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_3, 0, { 6, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SW_SE_SEQ_3, + 0, + { 6, 0, 0 }, + BoundBoxXYZ({ 6, 0, 0 }, { 20, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_SW_SE_SEQ_3, + 0, + { 6, 0, 0 }, + BoundBoxXYZ({ 6, 0, 27 }, { 20, 32, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_0, 0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 6, 0, 0 }, { 20, 32, 2 }) }, {}, }, { @@ -748,35 +843,62 @@ static void ClassicWoodenRCTrackRightQuarterTurn3Bank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_3, 0, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NW_SW_SEQ_3, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 6, 0 }, { 32, 20, 2 }) }, {}, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_0, 0, { 0, 0, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_0, 0, { 0, 0, 0 }, { 0, 6, 27 }, { 32, 20, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 6, 0 }, { 32, 20, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 6, 27 }, { 32, 20, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_3, 0, { 0, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_3, 0, { 0, 0, 0 }, { 6, 0, 27 }, { 20, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_NE_NW_SEQ_3, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 6, 0, 0 }, { 20, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_FRONT_NE_NW_SEQ_3, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 6, 0, 27 }, { 20, 32, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_0, 0, { 6, 0, 0 }, { 6, 0, 0 }, { 20, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_0, + 0, + { 6, 0, 0 }, + BoundBoxXYZ({ 6, 0, 0 }, { 20, 32, 2 }) }, {}, }, { @@ -784,11 +906,17 @@ static void ClassicWoodenRCTrackRightQuarterTurn3Bank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_2, 0, { 0, 16, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_2, + 0, + { 0, 16, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_3, 0, { 0, 6, 0 }, { 0, 6, 0 }, { 32, 20, 2 } }, + { SPR_CLASSIC_WOODEN_RC_BANKED_QUARTER_TURN_3_SE_NE_SEQ_3, + 0, + { 0, 6, 0 }, + BoundBoxXYZ({ 0, 6, 0 }, { 32, 20, 2 }) }, {}, }, }, @@ -837,15 +965,24 @@ static void ClassicWoodenRCTrackLeftEighthBankToDiag( static constexpr const SpriteBoundBox2 imageIds[4][5][2] = { { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }) }, {}, }, { @@ -853,47 +990,79 @@ static void ClassicWoodenRCTrackLeftEighthBankToDiag( {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_4, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_0_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }) }, {}, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 34, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 34, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_2, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_2, 0, { 0, 0, 0 }, - { 16, 16, 27 }, - { 16, 16, 0 } }, + BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 18, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_1_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 18, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_1_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 16, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }) }, {}, }, { @@ -901,30 +1070,57 @@ static void ClassicWoodenRCTrackLeftEighthBankToDiag( {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_4, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_2_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, {}, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 27 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_3_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_LEFT_BANKED_FRONT_3_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 27 }, { 16, 16, 0 }) }, }, }, }; @@ -968,45 +1164,70 @@ static void ClassicWoodenRCTrackRightEighthBankToDiag( static constexpr const SpriteBoundBox2 imageIds[4][5][2] = { { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_1, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 32, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_1, 0, { 0, 0, 0 }, - { 0, 16, 27 }, - { 32, 16, 0 } }, + BoundBoxXYZ({ 0, 16, 27 }, { 32, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_2, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 16, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_4, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_0_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }) }, { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_0_SEQ_4, 0, { 0, 0, 0 }, - { 16, 0, 27 }, - { 16, 16, 0 } }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 16, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_1, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 0 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_2, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }) }, {}, }, { @@ -1014,47 +1235,79 @@ static void ClassicWoodenRCTrackRightEighthBankToDiag( {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_4, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_1_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }) }, {}, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 32, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 34, 16, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 27 }, { 32, 16, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 34, 16, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 16, 0 }) }, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_2, 0, { 0, 0, 0 }, { 4, 4, 0 }, { 28, 28, 2 } }, - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_2, 0, { 0, 0, 0 }, { 4, 4, 27 }, { 28, 28, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 4, 4, 0 }, { 28, 28, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 4, 4, 27 }, { 28, 28, 0 }) }, }, { {}, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_4, 0, { 0, 0, 0 }, { 0, 16, 0 }, { 16, 18, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_2_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 18, 2 }) }, { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_FRONT_2_SEQ_4, 0, { 0, 0, 0 }, - { 0, 16, 27 }, - { 16, 16, 0 } }, + BoundBoxXYZ({ 0, 16, 27 }, { 16, 16, 0 }) }, }, }, { { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_0, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 32, 2 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_1, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 16, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_1, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 0 }) }, {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_2, 0, { 0, 0, 0 }, { 16, 0, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_2, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }) }, {}, }, { @@ -1062,7 +1315,10 @@ static void ClassicWoodenRCTrackRightEighthBankToDiag( {}, }, { - { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_4, 0, { 0, 0, 0 }, { 16, 16, 0 }, { 16, 16, 2 } }, + { SPR_CLASSIC_WOODEN_RC_ORTHO_TO_DIAG_RIGHT_BANKED_3_SEQ_4, + 0, + { 0, 0, 0 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }) }, {}, }, }, @@ -1127,8 +1383,14 @@ static void ClassicWoodenRCTrackDiagFlatToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1153,7 +1415,10 @@ static void ClassicWoodenRCTrackDiagFlatToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1167,8 +1432,14 @@ static void ClassicWoodenRCTrackDiagFlatToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1177,7 +1448,10 @@ static void ClassicWoodenRCTrackDiagFlatToLeftBank( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_LEFT_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1225,8 +1499,14 @@ static void ClassicWoodenRCTrackDiagFlatToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1251,7 +1531,10 @@ static void ClassicWoodenRCTrackDiagFlatToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1265,8 +1548,14 @@ static void ClassicWoodenRCTrackDiagFlatToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1275,7 +1564,10 @@ static void ClassicWoodenRCTrackDiagFlatToRightBank( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_FLAT_TO_BANK_RIGHT_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1337,8 +1629,11 @@ static void ClassicWoodenRCTrackDiagLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_0, 0, { -16, -16, 0 }, BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1363,7 +1658,7 @@ static void ClassicWoodenRCTrackDiagLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_1, 0, { -16, -16, 0 }, BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1377,8 +1672,11 @@ static void ClassicWoodenRCTrackDiagLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 27 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_2, 0, { -16, -16, 0 }, BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 27 }, { 32, 32, 0 }) }, }, { {}, @@ -1387,7 +1685,7 @@ static void ClassicWoodenRCTrackDiagLeftBank( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_3, 0, { -16, -16, 0 }, BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1442,8 +1740,14 @@ static void ClassicWoodenRCTrackDiagLeftBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1468,7 +1772,10 @@ static void ClassicWoodenRCTrackDiagLeftBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1482,8 +1789,14 @@ static void ClassicWoodenRCTrackDiagLeftBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1492,7 +1805,10 @@ static void ClassicWoodenRCTrackDiagLeftBankTo25DegUp( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_LEFT_BANK_TO_25_UP_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1540,8 +1856,14 @@ static void ClassicWoodenRCTrackDiagRightBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1566,7 +1888,10 @@ static void ClassicWoodenRCTrackDiagRightBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1580,8 +1905,14 @@ static void ClassicWoodenRCTrackDiagRightBankTo25DegUp( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1590,7 +1921,10 @@ static void ClassicWoodenRCTrackDiagRightBankTo25DegUp( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_RIGHT_BANK_TO_25_UP_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1638,8 +1972,14 @@ static void ClassicWoodenRCTrackDiag25DegUpToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1664,7 +2004,10 @@ static void ClassicWoodenRCTrackDiag25DegUpToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1678,8 +2021,14 @@ static void ClassicWoodenRCTrackDiag25DegUpToLeftBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1688,7 +2037,10 @@ static void ClassicWoodenRCTrackDiag25DegUpToLeftBank( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_LEFT_BANK_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { @@ -1736,8 +2088,14 @@ static void ClassicWoodenRCTrackDiag25DegUpToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_0, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_0, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_0, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1762,7 +2120,10 @@ static void ClassicWoodenRCTrackDiag25DegUpToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_1, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_1, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, }, @@ -1776,8 +2137,14 @@ static void ClassicWoodenRCTrackDiag25DegUpToRightBank( {}, }, { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_2, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 23, 2 } }, - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_2, 0, { -16, -16, 0 }, { -16, -16, 35 }, { 32, 32, 0 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 23, 2 }) }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_FRONT_2, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 35 }, { 32, 32, 0 }) }, }, { {}, @@ -1786,7 +2153,10 @@ static void ClassicWoodenRCTrackDiag25DegUpToRightBank( }, { { - { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_3, 0, { -16, -16, 0 }, { -16, -16, 0 }, { 32, 32, 2 } }, + { SPR_CLASSIC_WOODEN_RC_DIAG_25_UP_TO_RIGHT_BANK_3, + 0, + { -16, -16, 0 }, + BoundBoxXYZ({ -16, -16, 0 }, { 32, 32, 2 }) }, {}, }, { diff --git a/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp b/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp index beacf0cb26..41c8ffacda 100644 --- a/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp +++ b/src/openrct2/ride/coaster/WoodenRollerCoaster.cpp @@ -12,6 +12,7 @@ #include "../../config/Config.h" #include "../../drawing/Drawing.h" #include "../../interface/Viewport.h" +#include "../../paint/Boundbox.h" #include "../../paint/Paint.h" #include "../../paint/Supports.h" #include "../../paint/tile_element/Paint.Surface.h" @@ -1128,50 +1129,43 @@ static void WoodenRCTrackRightQuarterTurn5( SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0, { 0, 2, 0 }, - { 0, 2, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2, { 0, 16, 0 }, - { 0, 16, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5, { 16, 0, 0 }, - { 16, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SW_SE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6, { 2, 0, 0 }, - { 2, 0, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }), }, }, { @@ -1179,50 +1173,43 @@ static void WoodenRCTrackRightQuarterTurn5( SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0, { 2, 0, 0 }, - { 2, 0, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2, { 16, 0, 0 }, - { 16, 0, 0 }, - { 16, 34, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 34, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3, { 0, 16, 0 }, - { 0, 16, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NW_SW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6, { 0, 2, 0 }, - { 0, 2, 0 }, - { 32, 27, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }), }, }, { @@ -1230,50 +1217,43 @@ static void WoodenRCTrackRightQuarterTurn5( SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0, { 0, 2, 0 }, - { 0, 2, 0 }, - { 32, 27, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2, { 0, 0, 0 }, - { 0, 0, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3, { 16, 16, 0 }, - { 16, 16, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_NE_NW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6, { 2, 0, 0 }, - { 2, 0, 0 }, - { 27, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }), }, }, { @@ -1281,50 +1261,43 @@ static void WoodenRCTrackRightQuarterTurn5( SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0, { 2, 0, 0 }, - { 2, 0, 0 }, - { 27, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3, { 16, 0, 0 }, - { 16, 0, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5, { 0, 16, 0 }, - { 0, 16, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_SE_NE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6, { 0, 2, 0 }, - { 0, 2, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }), }, }, }, @@ -1334,120 +1307,106 @@ static void WoodenRCTrackRightQuarterTurn5( SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0, { 0, 2, 0 }, - { 0, 2, 27 }, - { 32, 32, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 32, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2, { 0, 16, 0 }, - { 0, 16, 27 }, - { 32, 16, 0 }, + BoundBoxXYZ({ 0, 16, 27 }, { 32, 16, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3, { 0, 0, 0 }, - { 0, 0, 27 }, - { 16, 16, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5, { 16, 0, 0 }, - { 16, 0, 27 }, - { 16, 32, 0 }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 32, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6, { 2, 0, 0 }, - { 2, 0, 27 }, - { 32, 32, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 32, 32, 0 }), }, }, { - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, }, { { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0, { 0, 2, 0 }, - { 0, 2, 27 }, - { 32, 27, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 27, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2, { 0, 0, 0 }, - { 0, 0, 27 }, - { 32, 16, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 16, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3, { 16, 16, 0 }, - { 16, 16, 27 }, - { 16, 16, 0 }, + BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 27 }, - { 16, 32, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 32, 0 }), }, { SPR_WOODEN_RC_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, SPR_WOODEN_RC_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6, { 2, 0, 0 }, - { 2, 0, 27 }, - { 27, 32, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 27, 32, 0 }), }, }, { - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, }, }, }; @@ -1634,50 +1593,43 @@ static void WoodenRCTrackBankedRightQuarterTurn5( SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_0, { 0, 0, 0 }, - { 0, 2, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_2, { 0, 0, 0 }, - { 0, 16, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_3, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_5, { 0, 0, 0 }, - { 16, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SW_SE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SW_SE_SEQ_6, { 0, 0, 0 }, - { 2, 0, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }), }, }, { @@ -1685,50 +1637,43 @@ static void WoodenRCTrackBankedRightQuarterTurn5( SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_0, { 0, 0, 0 }, - { 2, 0, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 32, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_2, { 0, 0, 0 }, - { 16, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_3, { 0, 0, 0 }, - { 0, 16, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NW_SW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NW_SW_SEQ_6, { 0, 0, 0 }, - { 0, 2, 0 }, - { 32, 27, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }), }, }, { @@ -1736,50 +1681,43 @@ static void WoodenRCTrackBankedRightQuarterTurn5( SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_0, { 0, 0, 0 }, - { 0, 2, 0 }, - { 32, 27, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 27, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_2, { 0, 0, 0 }, - { 0, 0, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_3, { 0, 0, 0 }, - { 16, 16, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 16, 16, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_NE_NW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_NE_NW_SEQ_6, { 0, 0, 0 }, - { 2, 0, 0 }, - { 27, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }), }, }, { @@ -1787,50 +1725,43 @@ static void WoodenRCTrackBankedRightQuarterTurn5( SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_0, { 0, 0, 0 }, - { 2, 0, 0 }, - { 27, 32, 2 }, + BoundBoxXYZ({ 2, 0, 0 }, { 27, 32, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_2, { 0, 0, 0 }, - { 0, 0, 0 }, - { 16, 32, 2 }, + BoundBoxXYZ({ 0, 0, 0 }, { 16, 32, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_3, { 0, 0, 0 }, - { 16, 0, 0 }, - { 16, 16, 2 }, + BoundBoxXYZ({ 16, 0, 0 }, { 16, 16, 2 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_5, { 0, 0, 0 }, - { 0, 16, 0 }, - { 32, 16, 2 }, + BoundBoxXYZ({ 0, 16, 0 }, { 32, 16, 2 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_SE_NE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_SE_NE_SEQ_6, { 0, 0, 0 }, - { 0, 2, 0 }, - { 32, 32, 2 }, + BoundBoxXYZ({ 0, 2, 0 }, { 32, 32, 2 }), }, }, }, @@ -1840,120 +1771,106 @@ static void WoodenRCTrackBankedRightQuarterTurn5( SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_0, { 0, 0, 0 }, - { 0, 2, 27 }, - { 32, 32, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 32, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_2, { 0, 0, 0 }, - { 0, 16, 27 }, - { 32, 16, 0 }, + BoundBoxXYZ({ 0, 16, 27 }, { 32, 16, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_3, { 0, 0, 0 }, - { 0, 0, 27 }, - { 16, 16, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 16, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_5, { 0, 0, 0 }, - { 16, 0, 27 }, - { 16, 32, 0 }, + BoundBoxXYZ({ 16, 0, 27 }, { 16, 32, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_SW_SE_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_SW_SE_SEQ_6, { 0, 0, 0 }, - { 2, 0, 27 }, - { 32, 32, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 32, 32, 0 }), }, }, { - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, }, { { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_0, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_0, { 0, 0, 0 }, - { 0, 2, 27 }, - { 32, 27, 0 }, + BoundBoxXYZ({ 0, 2, 27 }, { 32, 27, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_2, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_2, { 0, 0, 0 }, - { 0, 0, 27 }, - { 32, 16, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 32, 16, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_3, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_3, { 0, 0, 0 }, - { 16, 16, 27 }, - { 16, 16, 0 }, + BoundBoxXYZ({ 16, 16, 27 }, { 16, 16, 0 }), }, { 0, 0, { 0, 0, 0 }, - { 0, 0, 0 }, - { 0, 0, 0 }, + BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_5, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_5, { 0, 0, 0 }, - { 0, 0, 27 }, - { 16, 32, 0 }, + BoundBoxXYZ({ 0, 0, 27 }, { 16, 32, 0 }), }, { SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_FRONT_NE_NW_SEQ_6, SPR_WOODEN_RC_BANKED_QUARTER_TURN_5_RAILS_FRONT_NE_NW_SEQ_6, { 0, 0, 0 }, - { 2, 0, 27 }, - { 27, 32, 0 }, + BoundBoxXYZ({ 2, 0, 27 }, { 27, 32, 0 }), }, }, { - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, - { 0, 0, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 } }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, + { 0, 0, { 0, 0, 0 }, BoundBoxXYZ({ 0, 0, 0 }, { 0, 0, 0 }) }, }, }, }; diff --git a/src/openrct2/ride/coaster/WoodenRollerCoaster.h b/src/openrct2/ride/coaster/WoodenRollerCoaster.h index d5248f9901..de75205293 100644 --- a/src/openrct2/ride/coaster/WoodenRollerCoaster.h +++ b/src/openrct2/ride/coaster/WoodenRollerCoaster.h @@ -9,6 +9,8 @@ #pragma once +#include "../../drawing/ImageId.hpp" +#include "../../paint/Boundbox.h" #include "../../paint/Paint.h" #include "../../world/Location.hpp" #include "../TrackPaint.h" @@ -17,11 +19,10 @@ struct SpriteBoundBox2 { - uint32_t sprite_id_a; - uint32_t sprite_id_b; + ImageIndex ImageIdA; + ImageIndex ImageIdB; CoordsXYZ offset; - CoordsXYZ bb_offset; - CoordsXYZ bb_size; + ::BoundBoxXYZ BoundBox; }; template ImageId WoodenRCGetTrackColour(const PaintSession& session) @@ -50,19 +51,19 @@ PaintStruct* WoodenRCTrackPaint( template void WoodenRCTrackPaintBb(PaintSession& session, const SpriteBoundBox2* bb, int16_t height) { - if (bb->sprite_id_a == 0) + if (bb->ImageIdA == 0) return; - ImageId imageId = WoodenRCGetTrackColour(session).WithIndex(bb->sprite_id_a); + ImageId imageId = WoodenRCGetTrackColour(session).WithIndex(bb->ImageIdA); PaintAddImageAsParent( 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) + { { bb->BoundBox.offset.x, bb->BoundBox.offset.y, height + bb->BoundBox.offset.z }, bb->BoundBox.length }); + if (bb->ImageIdB != 0) { - ImageId railsImageId = WoodenRCGetRailsColour(session).WithIndex(bb->sprite_id_b); + ImageId railsImageId = WoodenRCGetRailsColour(session).WithIndex(bb->ImageIdB); PaintAddImageAsChild( session, railsImageId, { bb->offset.x, bb->offset.y, height + bb->offset.z }, - { { bb->bb_offset, height + bb->bb_offset.z }, bb->bb_size }); + { { bb->BoundBox.offset, height + bb->BoundBox.offset.z }, bb->BoundBox.length }); } }