From 2d2fd03fc78daef0a51e4260652fc91a533c66d2 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sun, 12 Nov 2023 23:07:34 +0100 Subject: [PATCH] Use new WoodenASupportsPaintSetup() overloads for Hybrid --- src/openrct2/paint/Supports.h | 8 + src/openrct2/ride/coaster/HybridCoaster.cpp | 1935 +++++++++++++------ 2 files changed, 1338 insertions(+), 605 deletions(-) diff --git a/src/openrct2/paint/Supports.h b/src/openrct2/paint/Supports.h index ac86384258..f3609195d6 100644 --- a/src/openrct2/paint/Supports.h +++ b/src/openrct2/paint/Supports.h @@ -48,6 +48,14 @@ enum class WoodenSupportTransitionType : uint8_t Up25DegToFlatRailway = 10, Up25DegRailway = 11, Scenery = 12, + FlatToUp60DegLongBaseSeq0 = 13, + FlatToUp60DegLongBaseSeq1 = 14, + FlatToUp60DegLongBaseSeq2 = 15, + FlatToUp60DegLongBaseSeq3 = 16, + Up60DegToFlatLongBaseSeq0 = 17, + Up60DegToFlatLongBaseSeq1 = 18, + Up60DegToFlatLongBaseSeq2 = 19, + Up60DegToFlatLongBaseSeq3 = 20, }; // There are 13 types of metal supports. A graphic showing all of them is available here: diff --git a/src/openrct2/ride/coaster/HybridCoaster.cpp b/src/openrct2/ride/coaster/HybridCoaster.cpp index b6d92cb807..6eac241a04 100644 --- a/src/openrct2/ride/coaster/HybridCoaster.cpp +++ b/src/openrct2/ride/coaster/HybridCoaster.cpp @@ -50,7 +50,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_FLAT + (direction & 1)), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -80,7 +81,8 @@ namespace HybridRC { { 0, 6, height + 3 }, { 32, 20, 1 } }); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); TrackPaintUtilDrawNarrowStationPlatform(session, ride, direction, height, 10, trackElement); @@ -105,7 +107,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE + direction + 8), { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -160,7 +164,9 @@ namespace HybridRC session.WoodenSupportsPrependTo = ps; } - WoodenASupportsPaintSetup(session, direction & 1, 21 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -189,7 +195,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE + direction), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -270,7 +278,9 @@ namespace HybridRC break; } } - WoodenASupportsPaintSetup(session, direction & 1, 13 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToUp60Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -352,7 +362,9 @@ namespace HybridRC break; } } - WoodenASupportsPaintSetup(session, direction & 1, 17 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60DegToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -381,7 +393,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE + direction + 4), { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -511,7 +525,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(imageIds[direction]), { 0, 0, height }, { { boundBoxOffsets[direction].x, boundBoxOffsets[direction].y, boundBoxOffsets[direction].z }, { boundBoxLengths[direction].x, boundBoxLengths[direction].y, boundBoxLengths[direction].z } }); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -627,25 +642,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 3), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 6), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 9), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -665,25 +684,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 1), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 4), { 0, 0, height }, { { 0, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 7), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 10), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -697,25 +720,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 2), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 5), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 8), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE + 11), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -754,25 +781,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 5), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 10), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 15), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -794,25 +825,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 1), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 6), { 0, 0, height }, { { 0, 4, height }, { 36, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 11), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 16), { 0, 0, height }, { { 0, 18, height }, { 32, 14, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -829,25 +864,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 2), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 7), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 12), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 17), { 0, 0, height }, { { 0, 0, height }, { 33, 33, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -870,25 +909,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 3), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 8), { 0, 0, height }, { { 4, 0, height }, { 16, 36, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 13), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 18), { 0, 0, height }, { { 18, 0, height }, { 14, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -905,25 +948,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 4), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 9), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 14), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE + 19), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -962,25 +1009,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 4), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 8), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 12), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -997,25 +1048,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 1), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 5), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 9), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 13), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1028,25 +1083,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 2), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 6), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 10), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 14), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1056,16 +1115,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1114,25 +1177,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 16), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 20), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 24), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 28), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -1149,25 +1216,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 17), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 21), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 25), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 29), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1180,25 +1251,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 18), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 22), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 26), { 0, 0, height }, { { 4, 4, height }, { 28, 28, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE + 30), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1208,16 +1283,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1313,7 +1392,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_LIFT_TRACK_FLAT_DIAGONAL + 0), { -16, -16, height }, { { -16, -16, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, + session.SupportColours); break; } } @@ -1331,16 +1412,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1373,16 +1458,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1449,16 +1538,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1476,16 +1569,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1537,16 +1634,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -1564,16 +1665,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -3101,7 +3206,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -3140,7 +3246,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -3193,7 +3300,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -3239,7 +3348,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -3285,7 +3396,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -3331,7 +3444,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -3405,7 +3520,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -4424,7 +4540,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 1), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4433,19 +4550,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 5), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 9), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 13), { 0, 0, height }, { { 6, 6, height }, { 26, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -4465,25 +4585,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 2), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 6), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 10), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 14), { 0, 0, height }, { { 16, 16, height }, { 22, 22, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -4497,7 +4621,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 3), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4506,7 +4631,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 8), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -4515,13 +4641,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 12), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_CURVE_BANKED + 15), { 0, 0, height }, { { 6, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -4563,7 +4691,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 1), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4572,19 +4701,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 7), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 14), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 20), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -4606,25 +4738,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 2), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 8), { 0, 0, height }, { { 0, 0, height + 28 }, { 48, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 15), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 21), { 0, 0, height }, { { 0, 18, height }, { 32, 14, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -4641,7 +4777,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 3), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4650,19 +4787,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 10), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 16), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 22), { 0, 0, height }, { { 0, 0, height }, { 38, 38, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -4685,25 +4825,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 4), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 11), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 48, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 17), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 23), { 0, 0, height }, { { 18, 0, height }, { 14, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -4720,7 +4864,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 5), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4729,7 +4874,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 13), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -4738,13 +4884,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 19), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_MEDIUM_CURVE_BANKED + 24), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -4786,7 +4934,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 1), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4795,19 +4944,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 6), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 12), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 16), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -4824,7 +4976,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 2), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -4833,19 +4986,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 8), { 0, 0, height }, { { 0, 0, height + 28 }, { 34, 16, 0 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 13), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 17), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -4858,25 +5014,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 3), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 9), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 0 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 14), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 18), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -4886,16 +5046,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -4947,13 +5111,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 20), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 24), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -4962,7 +5128,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 29), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -4971,7 +5138,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 36), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -4988,13 +5156,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 21), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 25), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -5003,13 +5173,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 31), { 0, 0, height }, { { 0, 0, height + 28 }, { 34, 16, 0 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 37), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -5022,25 +5194,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 22), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 26), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 32), { 0, 0, height }, { { 4, 4, height + 28 }, { 28, 28, 0 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_CURVE_BANKED + 38), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -5050,16 +5226,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); @@ -5130,25 +5310,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 0), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 2), { 0, 6, height }, { 34, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 4), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 6), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -5165,16 +5353,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5188,25 +5380,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 1), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 3), { 6, 0, height }, { 20, 34, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 5), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 7), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -5237,25 +5437,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 8), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 10), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 12), { 0, 6, height }, { 34, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 14), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -5272,16 +5480,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5295,25 +5507,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 9), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 11), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 13), { 6, 0, height }, { 20, 34, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE + 15), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -5360,25 +5580,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 5), { 0, 0, height }, { { 0, 6, height }, { 34, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 10), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 15), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -5400,25 +5628,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 1), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 6), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 11), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 16), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5435,25 +5667,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 2), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 7), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 12), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 17), { 0, 0, height }, { 16, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5476,25 +5712,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 3), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 8), { 0, 0, height }, { 16, 32, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 13), { 0, 0, height }, { 16, 32, 3 }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 18), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5511,25 +5751,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 4), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 9), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 14), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 19), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -5560,25 +5808,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 20), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 25), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 30), { 0, 0, height }, { { 0, 6, height }, { 34, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 35), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -5600,25 +5856,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 21), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 26), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 31), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 36), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5635,25 +5895,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 22), { 0, 0, height }, { 16, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 27), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 32), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 37), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5676,25 +5940,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 23), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 28), { 0, 0, height }, { 16, 32, 3 }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 33), { 0, 0, height }, { 16, 32, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 38), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -5711,25 +5979,33 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 24), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 29), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 34), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE + 39), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -5776,7 +6052,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 1), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -5785,7 +6062,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 3), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -5794,7 +6072,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 5), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -5803,7 +6082,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 7), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } TrackPaintUtilLeftQuarterTurn1TileTunnel(session, direction, height, -8, TUNNEL_SQUARE_7, +56, TUNNEL_SQUARE_8); @@ -5824,7 +6104,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 9), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -5833,7 +6114,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 11), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -5842,7 +6124,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 13), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -5851,7 +6134,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_STEEP_SMALL_CURVE + 15), { 0, 0, height }, { { 2, 2, height + 99 }, { 28, 28, 1 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } TrackPaintUtilRightQuarterTurn1TileTunnel(session, direction, height, -8, TUNNEL_SQUARE_7, +56, TUNNEL_SQUARE_8); @@ -6007,7 +6291,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6050,7 +6336,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6093,7 +6381,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6136,7 +6426,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6210,7 +6502,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -6256,7 +6550,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -6302,7 +6598,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -6348,7 +6646,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 27, height }, { 32, 1, 34 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -6416,7 +6716,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6456,7 +6758,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -6513,7 +6817,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -6556,7 +6862,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 1 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -6599,7 +6907,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -6642,7 +6952,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 2 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 5 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25DegToFlat); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_FLAT); @@ -6697,7 +7009,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 0), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -6708,21 +7022,27 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 3), { 0, 6, height }, { { 0, 27, height }, { 34, 1, 34 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 6), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 9), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -6739,16 +7059,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -6763,7 +7087,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 1), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -6774,7 +7100,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 5), { 6, 0, height }, { { 27, 0, height }, { 1, 34, 34 } }); - WoodenASupportsPaintSetup(session, 1, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -6785,14 +7113,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 8), { 6, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 0, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 10), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -6824,14 +7156,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 11), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 13), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -6842,14 +7178,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 17), { 0, 6, height }, { { 0, 27, height }, { 34, 1, 34 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 20), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -6866,16 +7206,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -6890,7 +7234,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 12), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -6901,7 +7247,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 15), { 6, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -6912,14 +7260,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 19), { 6, 0, height }, { { 27, 0, height }, { 1, 34, 34 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_SMALL_CURVE_BANKED + 21), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -6967,7 +7319,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -6978,21 +7332,27 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 6), { 0, 0, height }, { { 0, 27, height }, { 34, 1, 34 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 15), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 21), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -7015,7 +7375,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 1), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7026,21 +7387,24 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 8), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 16), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 22), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7058,7 +7422,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 2), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7069,21 +7434,24 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 10), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 17), { 0, 0, height }, { { 64, 0, height }, { 1, 1, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 23), { 0, 0, height }, { 16, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7107,7 +7475,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 3), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7118,21 +7487,24 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 12), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 18), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 24), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7150,7 +7522,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 4), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -7161,7 +7535,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 14), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -7172,14 +7548,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 20), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 25), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -7211,14 +7591,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 26), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 31), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -7229,14 +7613,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 38), { 0, 0, height }, { { 0, 27, height }, { 34, 1, 34 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 47), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } if (direction == 0 || direction == 3) @@ -7259,14 +7647,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 27), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 32), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -7277,14 +7667,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 40), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 48), { 0, 0, height }, { 32, 16, 3 }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7302,14 +7694,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 28), { 0, 0, height }, { 16, 16, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 33), { 0, 0, height }, { { 64, 0, height }, { 1, 1, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -7320,14 +7714,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 42), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 49), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7351,14 +7747,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 29), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 34), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -7369,14 +7767,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 44), { 0, 0, height }, { { 30, 30, height }, { 1, 1, 34 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 50), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7394,7 +7794,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 30), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 10, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( @@ -7405,7 +7807,9 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 36), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 0, 11, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( @@ -7416,14 +7820,18 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 46), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 34 } }); - WoodenASupportsPaintSetup(session, 1, 12, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_GENTLE_MEDIUM_CURVE_BANKED + 51), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 9, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, + session.SupportColours, WoodenSupportTransitionType::Up25Deg); break; } switch (direction) @@ -7470,25 +7878,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 4), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 3), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 7), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -7505,25 +7917,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 1), { 0, 0, height }, { 32, 26, 3 }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 5), { 0, 0, height }, { 34, 26, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 2), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 6), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7540,25 +7956,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 2), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 6), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 1), { 0, 0, height }, { 32, 26, 3 }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 5), { 0, 0, height }, { 34, 26, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7575,25 +7995,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 3), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 7), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 0), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 4), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } switch (direction) @@ -7624,25 +8048,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 8), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 12), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 11), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 15), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -7659,25 +8087,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 9), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 13), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 10), { 0, 0, height }, { 34, 26, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 14), { 0, 0, height }, { 32, 26, 3 }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7694,25 +8126,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 10), { 0, 0, height }, { 34, 26, 3 }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 14), { 0, 0, height }, { 32, 26, 3 }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 9), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 13), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7729,25 +8165,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 11), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 15), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 8), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_S_BEND + 12), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } switch (direction) @@ -7781,7 +8221,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 1), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7790,19 +8231,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 5), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 9), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 13), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -7816,16 +8260,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -7837,25 +8285,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 2), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 6), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 10), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 14), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -7869,7 +8321,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 3), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7878,7 +8331,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 8), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -7887,13 +8341,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 12), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 15), { 0, 0, height }, { { 6, 0, height + 8 }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -7915,7 +8371,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 13), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -7924,7 +8381,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 1), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -7933,13 +8391,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 5), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 9), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -7958,16 +8418,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -7979,25 +8443,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 14), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 2), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 6), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 10), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8011,13 +8479,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 15), { 0, 0, height }, { { 0, 6, height + 8 }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 3), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8026,7 +8496,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 8), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -8035,7 +8506,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 12), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8061,13 +8533,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 16), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 19), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8076,7 +8550,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 24), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -8085,7 +8560,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 29), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8099,16 +8575,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -8120,25 +8600,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 17), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 20), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 25), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 30), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8152,7 +8636,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 18), { 0, 0, height }, { { 6, 0, height + 8 }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8161,7 +8646,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 22), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8170,13 +8656,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 27), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 31), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -8198,7 +8686,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 19), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8207,7 +8696,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 24), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8216,13 +8706,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 29), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 16), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -8241,16 +8733,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -8262,25 +8758,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 20), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 25), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 30), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 17), { 0, 0, height }, { { 16, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8297,7 +8797,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 22), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8306,19 +8807,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 27), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 31), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_SMALL_HELIX + 18), { 0, 0, height }, { { 0, 6, height + 8 }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8373,7 +8877,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 1), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8382,19 +8887,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 7), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 14), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 20), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8416,25 +8924,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 2), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 8), { 0, 0, height }, { { 0, 0, height + 28 }, { 33, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 15), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 21), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8451,7 +8963,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 3), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8460,19 +8973,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 10), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 16), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 22), { 0, 0, height }, { { 0, 0, height }, { 34, 34, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8495,25 +9011,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 4), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 11), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 33, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 17), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 23), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8530,7 +9050,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 5), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8539,7 +9060,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 13), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8548,13 +9070,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 19), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 24), { 0, 0, height }, { { 6, 0, height + 8 }, { 28, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -8576,7 +9100,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 20), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8585,7 +9110,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 1), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8594,13 +9120,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 7), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 14), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -8627,25 +9155,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 21), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 2), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 8), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 32, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 15), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8662,13 +9194,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 22), { 0, 0, height }, { { 0, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 3), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8677,13 +9211,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 10), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 16), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8706,25 +9242,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 23), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 4), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 11), { 0, 0, height }, { { 0, 0, height + 28 }, { 32, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 17), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8741,13 +9281,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 24), { 0, 0, height }, { { 0, 6, height + 8 }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 5), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8756,7 +9298,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 13), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -8765,7 +9308,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 19), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8791,13 +9335,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 25), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 30), { 0, 0, height }, { { 0, 6, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8806,7 +9352,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 37), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( @@ -8815,7 +9362,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 45), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -8837,25 +9385,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 26), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 31), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 38), { 0, 0, height }, { { 0, 0, height + 28 }, { 33, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 46), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8872,13 +9424,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 27), { 0, 0, height }, { { 0, 0, height }, { 34, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 32), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8887,13 +9441,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 40), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 47), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8916,25 +9472,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 28), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 33), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 41), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 33, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 48), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -8951,7 +9511,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 29), { 0, 0, height }, { { 6, 0, height + 8 }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -8960,7 +9521,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 35), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -8969,13 +9531,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 43), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 49), { 0, 0, height }, { { 6, 0, height }, { 32, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -8997,7 +9561,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 30), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -9006,7 +9571,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 37), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -9015,13 +9581,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 45), { 0, 0, height }, { { 27, 0, height }, { 1, 32, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 25), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -9048,25 +9616,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 31), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 38), { 0, 0, height }, { { 0, 0, height + 28 }, { 16, 32, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 46), { 0, 0, height }, { { 0, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 26), { 0, 0, height }, { { 16, 0, height }, { 16, 32, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -9083,7 +9655,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 32), { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -9092,19 +9665,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 40), { 0, 0, height }, { { 16, 16, height + 28 }, { 16, 16, 1 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 47), { 0, 0, height }, { { 16, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 27), { 0, 0, height }, { { 0, 0, height }, { 16, 16, 3 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -9127,25 +9703,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 33), { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 41), { 0, 0, height }, { { 0, 0, height + 28 }, { 32, 16, 1 } }); - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 48), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 28), { 0, 0, height }, { { 0, 16, height }, { 32, 16, 3 } }); - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -9165,7 +9745,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 35), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -9174,19 +9755,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 43), { 0, 0, height }, { { 0, 27, height }, { 32, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 49), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_LARGE_HELIX + 29), { 0, 0, height }, { { 0, 6, height + 8 }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -9267,7 +9851,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 0 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -9311,7 +9896,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 0 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); break; @@ -9360,7 +9946,8 @@ namespace HybridRC PaintUtilPushTunnelLeft(session, height, TUNNEL_SQUARE_INVERTED_9); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); break; @@ -9409,7 +9996,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 0 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -9453,7 +10041,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 0 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); break; @@ -9493,7 +10082,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 56 }, { 32, 20, 0 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); switch (direction) { case 1: @@ -9564,7 +10154,8 @@ namespace HybridRC { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 40, 0x20); @@ -9604,7 +10195,8 @@ namespace HybridRC PaintUtilRotateSegments( SEGMENT_B8 | SEGMENT_C8 | SEGMENT_B4 | SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); break; case 2: @@ -9652,7 +10244,8 @@ namespace HybridRC PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_0); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -9703,7 +10296,8 @@ namespace HybridRC { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 40, 0x20); @@ -9738,7 +10332,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 1 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -9791,7 +10386,8 @@ namespace HybridRC PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_0); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -9856,7 +10452,8 @@ namespace HybridRC { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 88, 0x20); @@ -9894,7 +10491,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); @@ -9935,13 +10533,15 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height + 40 }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( SEGMENT_B8 | SEGMENT_C8 | SEGMENT_B4 | SEGMENT_D0 | SEGMENT_C4 | SEGMENT_CC, direction), 0xFFFF, 0); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetGeneralSupportHeight(session, height + 64, 0x20); break; case 3: @@ -9989,7 +10589,8 @@ namespace HybridRC PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_0); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -10040,7 +10641,8 @@ namespace HybridRC { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 88, 0x20); @@ -10078,7 +10680,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 30, height }, { 32, 0, 96 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); @@ -10120,7 +10723,8 @@ namespace HybridRC break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -10173,7 +10777,8 @@ namespace HybridRC PaintUtilPushTunnelLeft(session, height + 8, TUNNEL_0); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -10279,7 +10884,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 32, height }, { 32, 1, 64 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 64, 0x20); break; @@ -10319,7 +10925,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 32, height }, { 32, 1, 32 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height + 16, TUNNEL_0); @@ -10344,7 +10951,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_BRAKE + (direction & 1)), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -10360,7 +10968,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_FLAT + (direction & 1)), { 0, 0, height }, { { 0, 6, height + 3 }, { 32, 20, 0 } }); TrackPaintUtilOnridePhotoPaint(session, direction, height + 3, trackElement); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, SEGMENTS_ALL, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); @@ -10396,7 +11005,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 50 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp60DegLongBaseSeq0); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); @@ -10428,7 +11039,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 54 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp60DegLongBaseSeq1); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 48, 0x20); break; @@ -10456,7 +11069,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 58 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp60DegLongBaseSeq2); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 64, 0x20); break; @@ -10484,7 +11099,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 62 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::FlatToUp60DegLongBaseSeq3); switch (direction) { case 1: @@ -10530,7 +11147,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 66 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60DegToFlatLongBaseSeq0); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_7); @@ -10562,7 +11181,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 70 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60DegToFlatLongBaseSeq1); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 80, 0x20); break; @@ -10590,7 +11211,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 74 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60DegToFlatLongBaseSeq2); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 56, 0x20); break; @@ -10618,7 +11241,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 78 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up60DegToFlatLongBaseSeq3); switch (direction) { case 1: @@ -10655,7 +11280,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_BLOCK_BRAKE + (direction & 1)), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -10668,7 +11294,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_BOOSTER + (direction & 1)), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, direction & 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, TUNNEL_SQUARE_FLAT); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 32, 0x20); @@ -10681,7 +11308,9 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_POWERED_LIFT + direction), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_SQUARE_7); @@ -10707,7 +11336,8 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 0), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -10716,19 +11346,22 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 3), { 0, 6, height }, { { 0, 27, height }, { 34, 1, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 5), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 7), { 0, 6, height }, { 32, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -10745,16 +11378,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -10768,25 +11405,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 1), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 4), { 6, 0, height }, { 20, 34, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 6), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 8), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -10817,14 +11458,16 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 9), { 0, 6, height }, { 32, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 11), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -10835,14 +11478,16 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 14), { 0, 6, height }, { { 0, 27, height }, { 34, 1, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 16), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -10859,16 +11504,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -10883,28 +11532,32 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 10), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 12), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 15), { 6, 0, height }, { 20, 34, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 17), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -10936,28 +11589,32 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 12), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 15), { 0, 6, height }, { 34, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 17), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 10), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -10974,16 +11631,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -10998,7 +11659,8 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 11), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( @@ -11009,20 +11671,23 @@ namespace HybridRC session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 14), { 6, 0, height }, { { 27, 0, height }, { 1, 34, 26 } }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 16), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 9), { 6, 0, height }, { 32, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -11053,25 +11718,29 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 8), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 1), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 4), { 0, 6, height }, { 34, 20, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 6), { 0, 6, height }, { 32, 20, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } if (direction == 0 || direction == 3) @@ -11088,16 +11757,20 @@ namespace HybridRC switch (direction) { case 0: - WoodenASupportsPaintSetup(session, 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: - WoodenASupportsPaintSetup(session, 5, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: - WoodenASupportsPaintSetup(session, 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: - WoodenASupportsPaintSetup(session, 3, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } PaintUtilSetSegmentSupportHeight( @@ -11111,13 +11784,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 7), { 6, 0, height }, { 32, 32, 3 }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 0), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( @@ -11126,13 +11801,15 @@ namespace HybridRC PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 3), { 6, 0, height }, { { 27, 0, height }, { 1, 34, 26 } }); - WoodenASupportsPaintSetup(session, 1, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, GetTrackColour(session).WithIndex(SPR_G2_HYBRID_TRACK_TURN_BANK_TRANSITION + 5), { 6, 0, height }, { 20, 32, 3 }); - WoodenASupportsPaintSetup(session, 0, 0, height, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } switch (direction) @@ -11181,7 +11858,9 @@ namespace HybridRC { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); @@ -11214,7 +11893,9 @@ namespace HybridRC { { 0, 16, height + 4 }, { 32, 20, 1 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11244,12 +11925,16 @@ namespace HybridRC { { 0, 0, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, 2 + (direction + 1) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 3: - WoodenASupportsPaintSetup(session, 2 + (direction + 3) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11319,7 +12004,9 @@ namespace HybridRC { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); @@ -11355,7 +12042,9 @@ namespace HybridRC { { 0, 0, height }, { 32, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11387,12 +12076,16 @@ namespace HybridRC { { 0, 16, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction + 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 3: - WoodenASupportsPaintSetup(session, 2 + (direction + 2) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11500,7 +12193,8 @@ namespace HybridRC PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 2: - WoodenASupportsPaintSetup(session, 2 + direction, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height + 16, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); @@ -11533,7 +12227,9 @@ namespace HybridRC { { 0, 16, height }, { 34, 18, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11565,7 +12261,9 @@ namespace HybridRC { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 1 || direction == 2) { @@ -11643,7 +12341,8 @@ namespace HybridRC { { 0, 16, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, 2 + direction, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height + 16, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -11680,7 +12379,9 @@ namespace HybridRC { { 16, 0, height }, { 18, 34, 3 } }); break; } - WoodenASupportsPaintSetup(session, (direction - 1) & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -12968,7 +13669,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height + 16 }, { 32, 1, 32 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); @@ -13004,7 +13707,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height }, { 32, 36, 24 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13036,12 +13741,16 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, 2 + (direction + 1) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner1, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 3: - WoodenASupportsPaintSetup(session, 2 + (direction + 3) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner3, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13113,7 +13822,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 6, height }, { 32, 20, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, TUNNEL_1); @@ -13149,7 +13860,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height }, { 32, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13181,12 +13894,16 @@ namespace HybridRC { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, direction + 2, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 3: - WoodenASupportsPaintSetup(session, 2 + (direction + 2) % 4, 0, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner2, direction, height, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13302,7 +14019,8 @@ namespace HybridRC PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; case 2: - WoodenASupportsPaintSetup(session, 2 + direction, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height + 16, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13338,7 +14056,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height }, { 34, 34, 16 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13374,7 +14094,9 @@ namespace HybridRC { 0, 0, height }, { { 0, 0, height }, { 32, 1, 32 } }); break; } - WoodenASupportsPaintSetup(session, direction & 1, 9 + direction, height, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, + WoodenSupportTransitionType::Up25Deg); if (direction == 1 || direction == 2) { PaintUtilPushTunnelRotated(session, direction, height + 8, TUNNEL_2); @@ -13458,7 +14180,8 @@ namespace HybridRC { 0, 0, height }, { { 0, 16, height }, { 16, 16, 3 } }); break; } - WoodenASupportsPaintSetup(session, 2 + direction, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetup( + session, WoodenSupportType::Truss, WoodenSupportSubType::Corner0, height + 16, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break; @@ -13499,7 +14222,9 @@ namespace HybridRC { 0, 0, height }, { { 16, 0, height }, { 18, 34, 3 } }); break; } - WoodenASupportsPaintSetup(session, (direction - 1) & 1, 0, height + 16, session.SupportColours); + WoodenASupportsPaintSetupRotated( + session, WoodenSupportType::Truss, WoodenSupportSubType::NwSe, direction, height + 16, + session.SupportColours); PaintUtilSetSegmentSupportHeight(session, PaintUtilRotateSegments(SEGMENTS_ALL, direction), 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + 72, 0x20); break;