@@ -68,9 +68,24 @@ static void LoopingRCTrackFlat(
6868 { { 0 , 6 , height }, { 32 , 20 , 3 } });
6969 break ;
7070 }
71- if (TrackPaintUtilShouldPaintSupports (session.MapPosition ))
71+ }
72+ else if (trackElement.HasCableLift ())
73+ {
74+ switch (direction)
7275 {
73- MetalASupportsPaintSetup (session, supportType.metal , MetalSupportPlace::Centre, 0 , height, session.SupportColours );
76+ case 0 :
77+ case 2 :
78+ PaintAddImageAsParentRotated (
79+
80+ session, direction, session.TrackColours .WithIndex (SPR_LOOPING_RC_FLAT_CHAINED_SW_NE), { 0 , 0 , height },
81+ { { 0 , 6 , height }, { 32 , 20 , 3 } });
82+ break ;
83+ case 1 :
84+ case 3 :
85+ PaintAddImageAsParentRotated (
86+ session, direction, session.TrackColours .WithIndex (SPR_LOOPING_RC_FLAT_CHAINED_NW_SE), { 0 , 0 , height },
87+ { { 0 , 6 , height }, { 32 , 20 , 3 } });
88+ break ;
7489 }
7590 }
7691 else
@@ -90,10 +105,38 @@ static void LoopingRCTrackFlat(
90105 { { 0 , 6 , height }, { 32 , 20 , 3 } });
91106 break ;
92107 }
93- if (TrackPaintUtilShouldPaintSupports (session.MapPosition ))
94- {
95- MetalASupportsPaintSetup (session, supportType.metal , MetalSupportPlace::Centre, 0 , height, session.SupportColours );
96- }
108+ }
109+ if (TrackPaintUtilShouldPaintSupports (session.MapPosition ))
110+ {
111+ MetalASupportsPaintSetup (session, supportType.metal , MetalSupportPlace::Centre, 0 , height, session.SupportColours );
112+ }
113+ PaintUtilPushTunnelRotated (session, direction, height, kTunnelGroup , TunnelSubType::Flat);
114+ PaintUtilSetSegmentSupportHeight (session, PaintUtilRotateSegments (BlockedSegments::kStraightFlat , direction), 0xFFFF , 0 );
115+ PaintUtilSetGeneralSupportHeight (session, height + kDefaultGeneralSupportHeight );
116+ }
117+
118+ static void TrackCableLaunch (
119+ PaintSession& session, const Ride& ride, uint8_t trackSequence, uint8_t direction, int32_t height,
120+ const TrackElement& trackElement, SupportType supportType)
121+ {
122+ switch (direction)
123+ {
124+ case 0 :
125+ case 2 :
126+ PaintAddImageAsParentRotated (
127+ session, direction, session.TrackColours .WithIndex (SPR_LOOPING_RC_FLAT_CHAINED_SW_NE), { 0 , 0 , height },
128+ { { 0 , 6 , height }, { 32 , 20 , 3 } });
129+ break ;
130+ case 1 :
131+ case 3 :
132+ PaintAddImageAsParentRotated (
133+ session, direction, session.TrackColours .WithIndex (SPR_LOOPING_RC_FLAT_CHAINED_NW_SE), { 0 , 0 , height },
134+ { { 0 , 6 , height }, { 32 , 20 , 3 } });
135+ break ;
136+ }
137+ if (TrackPaintUtilShouldPaintSupports (session.MapPosition ))
138+ {
139+ MetalASupportsPaintSetup (session, supportType.metal , MetalSupportPlace::Centre, 0 , height, session.SupportColours );
97140 }
98141 PaintUtilPushTunnelRotated (session, direction, height, kTunnelGroup , TunnelSubType::Flat);
99142 PaintUtilSetSegmentSupportHeight (session, PaintUtilRotateSegments (BlockedSegments::kStraightFlat , direction), 0xFFFF , 0 );
@@ -10585,6 +10628,8 @@ TrackPaintFunction GetTrackPaintFunctionLoopingRC(OpenRCT2::TrackElemType trackT
1058510628
1058610629 case TrackElemType::Booster:
1058710630 return LoopingRCTrackBooster;
10631+ case TrackElemType::CableLaunch:
10632+ return TrackCableLaunch;
1058810633
1058910634 case TrackElemType::DiagBrakes:
1059010635 case TrackElemType::DiagBlockBrakes:
0 commit comments