From e74016047fb6bc2b27e53c6c5ea4dcb5d333a868 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Mon, 9 Sep 2024 22:06:29 +0200 Subject: [PATCH] Convert reverser RC to use support table --- .../track/coaster/ReverserRollerCoaster.cpp | 382 ++++-------------- 1 file changed, 70 insertions(+), 312 deletions(-) diff --git a/src/openrct2/paint/track/coaster/ReverserRollerCoaster.cpp b/src/openrct2/paint/track/coaster/ReverserRollerCoaster.cpp index 879deb2360..d414fb4c5e 100644 --- a/src/openrct2/paint/track/coaster/ReverserRollerCoaster.cpp +++ b/src/openrct2/paint/track/coaster/ReverserRollerCoaster.cpp @@ -17,6 +17,7 @@ #include "../../../world/Map.h" #include "../../Paint.h" #include "../../support/WoodenSupports.h" +#include "../../support/WoodenSupports.hpp" #include "../../tile_element/Paint.TileElement.h" #include "../../tile_element/Segment.h" #include "../../track/Segment.h" @@ -40,16 +41,12 @@ static void ReverserRCTrackFlat( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21520), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21521), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } } @@ -62,19 +59,17 @@ static void ReverserRCTrackFlat( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21504), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21505), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); @@ -97,8 +92,8 @@ static void ReverserRCTrackStation( PaintAddImageAsChildRotated( session, direction, session.TrackColours.WithIndex(imageIds[direction][0]), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours); + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); TrackPaintUtilDrawStation2(session, ride, direction, height, trackElement, 9, 11); TrackPaintUtilDrawStationTunnel(session, direction, height); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); @@ -118,33 +113,21 @@ static void ReverserRCTrack25DegUp( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21530), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21531), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21532), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21533), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; } } @@ -156,36 +139,26 @@ static void ReverserRCTrack25DegUp( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21516), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21517), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21518), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21519), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25Deg); break; } } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, kTunnelGroup, TunnelSubType::SlopeStart); @@ -211,33 +184,21 @@ static void ReverserRCTrackFlatTo25DegUp( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21522), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21523), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21524), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21525), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; } } @@ -249,36 +210,26 @@ static void ReverserRCTrackFlatTo25DegUp( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21508), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21509), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21510), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21511), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::FlatToUp25Deg); break; } } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -304,33 +255,21 @@ static void ReverserRCTrack25DegUpToFlat( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21526), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21527), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21528), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21529), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; } } @@ -342,36 +281,26 @@ static void ReverserRCTrack25DegUpToFlat( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21512), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21513), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21514), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21515), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetupRotated( - session, supportType.wooden, WoodenSupportSubType::NeSw, direction, height, session.SupportColours, - WoodenSupportTransitionType::Up25DegToFlat); break; } } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height - 8, kTunnelGroup, TunnelSubType::Flat); @@ -421,28 +350,22 @@ static void ReverserRCTrackLeftQuarterTurn5( case 0: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21543), { 0, 2, height }, { 32, 27, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21548), { 0, 2, height }, { 32, 27, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21553), { 0, 2, height }, { 32, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21538), { 0, 2, height }, { 32, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -465,28 +388,22 @@ static void ReverserRCTrackLeftQuarterTurn5( case 0: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21542), { 0, 0, height }, { 32, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21547), { 0, 0, height }, { 32, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21552), { 0, 16, height }, { 32, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21537), { 0, 16, height }, { 32, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -503,28 +420,22 @@ static void ReverserRCTrackLeftQuarterTurn5( case 0: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21541), { 0, 16, height }, { 16, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21546), { 16, 16, height }, { 16, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21551), { 16, 0, height }, { 16, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21536), { 0, 0, height }, { 16, 16, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -551,28 +462,22 @@ static void ReverserRCTrackLeftQuarterTurn5( case 0: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21540), { 16, 0, height }, { 16, 34, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21545), { 0, 0, height }, { 16, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21550), { 0, 0, height }, { 16, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21535), { 16, 0, height }, { 16, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -589,28 +494,22 @@ static void ReverserRCTrackLeftQuarterTurn5( case 0: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21539), { 2, 0, height }, { 32, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21544), { 2, 0, height }, { 27, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21549), { 2, 0, height }, { 27, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21534), { 2, 0, height }, { 32, 32, 2 }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 2: @@ -649,31 +548,25 @@ static void ReverserRCTrackSBendLeft( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21566), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21570), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21569), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21573), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -688,31 +581,25 @@ static void ReverserRCTrackSBendLeft( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21567), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21571), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21568), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21572), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -730,31 +617,25 @@ static void ReverserRCTrackSBendLeft( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21568), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21572), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21567), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21571), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -772,31 +653,25 @@ static void ReverserRCTrackSBendLeft( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21569), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21573), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21566), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21570), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 1: @@ -826,31 +701,25 @@ static void ReverserRCTrackSBendRight( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21574), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21578), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21577), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21581), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -865,31 +734,25 @@ static void ReverserRCTrackSBendRight( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21575), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21579), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21576), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21580), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -907,31 +770,25 @@ static void ReverserRCTrackSBendRight( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21576), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21580), { 0, 0, height }, { { 0, 0, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21575), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21579), { 0, 0, height }, { { 0, 6, height }, { 32, 26, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight( session, PaintUtilRotateSegments( @@ -949,31 +806,25 @@ static void ReverserRCTrackSBendRight( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21577), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21581), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21574), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21578), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 1: @@ -1003,31 +854,25 @@ static void ReverserRCTrackLeftQuarterTurn3( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21559), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21562), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21565), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21556), { 0, 0, height }, { { 0, 6, height }, { 32, 20, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -1079,31 +924,25 @@ static void ReverserRCTrackLeftQuarterTurn3( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21557), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner3, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21560), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner0, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21563), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner1, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21554), { 0, 0, height }, { { 6, 0, height }, { 20, 32, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::Corner2, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 2: @@ -1140,16 +979,16 @@ static void ReverserRCTrackBrakes( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21506), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup(session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21507), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup(session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); @@ -1169,37 +1008,29 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21582), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21588), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21594), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21600), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; case 1: switch (direction) @@ -1208,33 +1039,25 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21585), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21591), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21597), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21603), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); break; case 2: switch (direction) @@ -1243,33 +1066,25 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21586), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21592), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21598), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21604), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); break; case 3: switch (direction) @@ -1278,33 +1093,25 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21587), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21593), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21599), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21605), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); break; case 4: switch (direction) @@ -1313,33 +1120,25 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21583), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21589), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21595), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21601), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); break; case 5: switch (direction) @@ -1348,31 +1147,25 @@ static void ReverserRCTrackLeftReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21584), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21590), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21596), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21602), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 1: @@ -1382,10 +1175,11 @@ static void ReverserRCTrackLeftReverser( PaintUtilPushTunnelLeft(session, height, kTunnelGroup, TunnelSubType::Flat); break; } - PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); - PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; } + + PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); + PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); } /** rct2: 0x0086E77C */ @@ -1402,31 +1196,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21596), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21602), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21584), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21590), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); if (direction == 0 || direction == 3) { PaintUtilPushTunnelRotated(session, direction, height, kTunnelGroup, TunnelSubType::Flat); @@ -1441,31 +1229,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21599), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21605), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21587), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21593), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; @@ -1476,31 +1258,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21598), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21604), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21586), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21592), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; @@ -1511,31 +1287,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21597), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21603), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21585), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21591), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; @@ -1546,31 +1316,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21595), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21601), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21583), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21589), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); PaintUtilSetSegmentSupportHeight(session, kSegmentsAll, 0xFFFF, 0); PaintUtilSetGeneralSupportHeight(session, height + kDefaultGeneralSupportHeight); break; @@ -1581,31 +1345,25 @@ static void ReverserRCTrackRightReverser( PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21594), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 1: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21600), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; case 2: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21582), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NeSw, height, session.SupportColours); break; case 3: PaintAddImageAsParentRotated( session, direction, session.TrackColours.WithIndex(21588), { 0, 0, height }, { { 0, 2, height }, { 32, 27, 2 } }); - WoodenASupportsPaintSetup( - session, supportType.wooden, WoodenSupportSubType::NwSe, height, session.SupportColours); break; } + DrawSupportForSequenceA( + session, supportType.wooden, trackSequence, direction, height, session.SupportColours); switch (direction) { case 1: