1 /*****************************************************************************
2  * Copyright (c) 2014-2020 OpenRCT2 developers
3  *
4  * For a complete list of all authors, please refer to contributors.md
5  * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
6  *
7  * OpenRCT2 is licensed under the GNU General Public License version 3.
8  *****************************************************************************/
9 
10 #include "../../drawing/Drawing.h"
11 #include "../../paint/Supports.h"
12 #include "../TrackData.h"
13 #include "BolligerMabillardTrack.h"
14 
15 /** rct2: 0x008AA00C */
vertical_drop_rc_track_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)16 static void vertical_drop_rc_track_flat(
17     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
18     const TrackElement& trackElement)
19 {
20     bolliger_mabillard_track_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
21 }
22 
vertical_drop_rc_track_station(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)23 static void vertical_drop_rc_track_station(
24     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
25     const TrackElement& trackElement)
26 {
27     bolliger_mabillard_track_station(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
28 }
29 
30 /** rct2: 0x008AA01C */
vertical_drop_rc_track_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)31 static void vertical_drop_rc_track_25_deg_up(
32     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
33     const TrackElement& trackElement)
34 {
35     bolliger_mabillard_track_25_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
36 }
37 
38 /** rct2: 0x008AA02C */
vertical_drop_rc_track_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)39 static void vertical_drop_rc_track_60_deg_up(
40     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
41     const TrackElement& trackElement)
42 {
43     bolliger_mabillard_track_60_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
44 }
45 
46 /** rct2: 0x008AA03C */
vertical_drop_rc_track_flat_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)47 static void vertical_drop_rc_track_flat_to_25_deg_up(
48     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
49     const TrackElement& trackElement)
50 {
51     bolliger_mabillard_track_flat_to_25_deg_up(
52         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
53 }
54 
55 /** rct2: 0x008AA04C */
vertical_drop_rc_track_25_deg_up_to_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)56 static void vertical_drop_rc_track_25_deg_up_to_60_deg_up(
57     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
58     const TrackElement& trackElement)
59 {
60     bolliger_mabillard_track_25_deg_up_to_60_deg_up(
61         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
62 }
63 
64 /** rct2: 0x008AA05C */
vertical_drop_rc_track_60_deg_up_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)65 static void vertical_drop_rc_track_60_deg_up_to_25_deg_up(
66     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
67     const TrackElement& trackElement)
68 {
69     bolliger_mabillard_track_60_deg_up_to_25_deg_up(
70         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
71 }
72 
73 /** rct2: 0x008AA06C */
vertical_drop_rc_track_25_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)74 static void vertical_drop_rc_track_25_deg_up_to_flat(
75     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
76     const TrackElement& trackElement)
77 {
78     bolliger_mabillard_track_25_deg_up_to_flat(
79         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
80 }
81 
82 /** rct2: 0x008AA07C */
vertical_drop_rc_track_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)83 static void vertical_drop_rc_track_25_deg_down(
84     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
85     const TrackElement& trackElement)
86 {
87     bolliger_mabillard_track_25_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
88 }
89 
90 /** rct2: 0x008AA08C */
vertical_drop_rc_track_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)91 static void vertical_drop_rc_track_60_deg_down(
92     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
93     const TrackElement& trackElement)
94 {
95     bolliger_mabillard_track_60_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
96 }
97 
98 /** rct2: 0x008AA09C */
vertical_drop_rc_track_flat_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)99 static void vertical_drop_rc_track_flat_to_25_deg_down(
100     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
101     const TrackElement& trackElement)
102 {
103     bolliger_mabillard_track_flat_to_25_deg_down(
104         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
105 }
106 
107 /** rct2: 0x008AA0AC */
vertical_drop_rc_track_25_deg_down_to_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)108 static void vertical_drop_rc_track_25_deg_down_to_60_deg_down(
109     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
110     const TrackElement& trackElement)
111 {
112     bolliger_mabillard_track_25_deg_down_to_60_deg_down(
113         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
114 }
115 
116 /** rct2: 0x008AA0BC */
vertical_drop_rc_track_60_deg_down_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)117 static void vertical_drop_rc_track_60_deg_down_to_25_deg_down(
118     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
119     const TrackElement& trackElement)
120 {
121     bolliger_mabillard_track_60_deg_down_to_25_deg_down(
122         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
123 }
124 
125 /** rct2: 0x008AA0CC */
vertical_drop_rc_track_25_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)126 static void vertical_drop_rc_track_25_deg_down_to_flat(
127     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
128     const TrackElement& trackElement)
129 {
130     bolliger_mabillard_track_25_deg_down_to_flat(
131         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
132 }
133 
134 /** rct2: 0x008AA0DC */
vertical_drop_rc_track_left_quarter_turn_5(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)135 static void vertical_drop_rc_track_left_quarter_turn_5(
136     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
137     const TrackElement& trackElement)
138 {
139     bolliger_mabillard_track_left_quarter_turn_5(
140         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
141 }
142 
143 /** rct2: 0x008AA0EC */
vertical_drop_rc_track_right_quarter_turn_5(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)144 static void vertical_drop_rc_track_right_quarter_turn_5(
145     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
146     const TrackElement& trackElement)
147 {
148     bolliger_mabillard_track_right_quarter_turn_5(
149         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
150 }
151 
152 /** rct2: 0x008AA0FC */
vertical_drop_rc_track_flat_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)153 static void vertical_drop_rc_track_flat_to_left_bank(
154     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
155     const TrackElement& trackElement)
156 {
157     bolliger_mabillard_track_flat_to_left_bank(
158         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
159 }
160 
161 /** rct2: 0x008AA10C */
vertical_drop_rc_track_flat_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)162 static void vertical_drop_rc_track_flat_to_right_bank(
163     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
164     const TrackElement& trackElement)
165 {
166     bolliger_mabillard_track_flat_to_right_bank(
167         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
168 }
169 
170 /** rct2: 0x008AA11C */
vertical_drop_rc_track_left_bank_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)171 static void vertical_drop_rc_track_left_bank_to_flat(
172     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
173     const TrackElement& trackElement)
174 {
175     bolliger_mabillard_track_left_bank_to_flat(
176         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
177 }
178 
179 /** rct2: 0x008AA12C */
vertical_drop_rc_track_right_bank_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)180 static void vertical_drop_rc_track_right_bank_to_flat(
181     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
182     const TrackElement& trackElement)
183 {
184     bolliger_mabillard_track_right_bank_to_flat(
185         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
186 }
187 
188 /** rct2: 0x008AA13C */
vertical_drop_rc_track_banked_left_quarter_turn_5(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)189 static void vertical_drop_rc_track_banked_left_quarter_turn_5(
190     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
191     const TrackElement& trackElement)
192 {
193     bolliger_mabillard_track_banked_left_quarter_turn_5(
194         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
195 }
196 
197 /** rct2: 0x008AA14C */
vertical_drop_rc_track_banked_right_quarter_turn_5(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)198 static void vertical_drop_rc_track_banked_right_quarter_turn_5(
199     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
200     const TrackElement& trackElement)
201 {
202     bolliger_mabillard_track_banked_right_quarter_turn_5(
203         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
204 }
205 
206 /** rct2: 0x008AA15C */
vertical_drop_rc_track_left_bank_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)207 static void vertical_drop_rc_track_left_bank_to_25_deg_up(
208     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
209     const TrackElement& trackElement)
210 {
211     bolliger_mabillard_track_left_bank_to_25_deg_up(
212         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
213 }
214 
215 /** rct2: 0x008AA16C */
vertical_drop_rc_track_right_bank_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)216 static void vertical_drop_rc_track_right_bank_to_25_deg_up(
217     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
218     const TrackElement& trackElement)
219 {
220     bolliger_mabillard_track_right_bank_to_25_deg_up(
221         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
222 }
223 
224 /** rct2: 0x008AA17C */
vertical_drop_rc_track_25_deg_up_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)225 static void vertical_drop_rc_track_25_deg_up_to_left_bank(
226     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
227     const TrackElement& trackElement)
228 {
229     bolliger_mabillard_track_25_deg_up_to_left_bank(
230         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
231 }
232 
233 /** rct2: 0x008AA18C */
vertical_drop_rc_track_25_deg_up_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)234 static void vertical_drop_rc_track_25_deg_up_to_right_bank(
235     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
236     const TrackElement& trackElement)
237 {
238     bolliger_mabillard_track_25_deg_up_to_right_bank(
239         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
240 }
241 
242 /** rct2: 0x008AA19C */
vertical_drop_rc_track_left_bank_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)243 static void vertical_drop_rc_track_left_bank_to_25_deg_down(
244     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
245     const TrackElement& trackElement)
246 {
247     bolliger_mabillard_track_left_bank_to_25_deg_down(
248         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
249 }
250 
251 /** rct2: 0x008AA1AC */
vertical_drop_rc_track_right_bank_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)252 static void vertical_drop_rc_track_right_bank_to_25_deg_down(
253     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
254     const TrackElement& trackElement)
255 {
256     bolliger_mabillard_track_right_bank_to_25_deg_down(
257         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
258 }
259 
260 /** rct2: 0x008AA1BC */
vertical_drop_rc_track_25_deg_down_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)261 static void vertical_drop_rc_track_25_deg_down_to_left_bank(
262     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
263     const TrackElement& trackElement)
264 {
265     bolliger_mabillard_track_25_deg_down_to_left_bank(
266         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
267 }
268 
269 /** rct2: 0x008AA1CC */
vertical_drop_rc_track_25_deg_down_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)270 static void vertical_drop_rc_track_25_deg_down_to_right_bank(
271     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
272     const TrackElement& trackElement)
273 {
274     bolliger_mabillard_track_25_deg_down_to_right_bank(
275         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
276 }
277 
278 /** rct2: 0x008AA1DC */
vertical_drop_rc_track_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)279 static void vertical_drop_rc_track_left_bank(
280     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
281     const TrackElement& trackElement)
282 {
283     bolliger_mabillard_track_left_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
284 }
285 
286 /** rct2: 0x008AA1EC */
vertical_drop_rc_track_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)287 static void vertical_drop_rc_track_right_bank(
288     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
289     const TrackElement& trackElement)
290 {
291     bolliger_mabillard_track_right_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
292 }
293 
294 /** rct2: 0x008AA1FC */
vertical_drop_rc_track_left_quarter_turn_5_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)295 static void vertical_drop_rc_track_left_quarter_turn_5_25_deg_up(
296     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
297     const TrackElement& trackElement)
298 {
299     bolliger_mabillard_track_left_quarter_turn_5_25_deg_up(
300         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
301 }
302 
303 /** rct2: 0x008AA20C */
vertical_drop_rc_track_right_quarter_turn_5_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)304 static void vertical_drop_rc_track_right_quarter_turn_5_25_deg_up(
305     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
306     const TrackElement& trackElement)
307 {
308     bolliger_mabillard_track_right_quarter_turn_5_25_deg_up(
309         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
310 }
311 
312 /** rct2: 0x008AA21C */
vertical_drop_rc_track_left_quarter_turn_5_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)313 static void vertical_drop_rc_track_left_quarter_turn_5_25_deg_down(
314     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
315     const TrackElement& trackElement)
316 {
317     bolliger_mabillard_track_left_quarter_turn_5_25_deg_down(
318         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
319 }
320 
321 /** rct2: 0x008AA22C */
vertical_drop_rc_track_right_quarter_turn_5_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)322 static void vertical_drop_rc_track_right_quarter_turn_5_25_deg_down(
323     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
324     const TrackElement& trackElement)
325 {
326     bolliger_mabillard_track_right_quarter_turn_5_25_deg_down(
327         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
328 }
329 
330 /** rct2: 0x008AA23C */
vertical_drop_rc_track_s_bend_left(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)331 static void vertical_drop_rc_track_s_bend_left(
332     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
333     const TrackElement& trackElement)
334 {
335     bolliger_mabillard_track_s_bend_left(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
336 }
337 
338 /** rct2: 0x008AA24C */
vertical_drop_rc_track_s_bend_right(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)339 static void vertical_drop_rc_track_s_bend_right(
340     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
341     const TrackElement& trackElement)
342 {
343     bolliger_mabillard_track_s_bend_right(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
344 }
345 
346 /** rct2: 0x008AA49C */
vertical_drop_rc_track_left_vertical_loop(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)347 static void vertical_drop_rc_track_left_vertical_loop(
348     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
349     const TrackElement& trackElement)
350 {
351     bolliger_mabillard_track_left_vertical_loop(
352         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
353 }
354 
355 /** rct2: 0x008AA4AC */
vertical_drop_rc_track_right_vertical_loop(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)356 static void vertical_drop_rc_track_right_vertical_loop(
357     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
358     const TrackElement& trackElement)
359 {
360     bolliger_mabillard_track_right_vertical_loop(
361         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
362 }
363 
364 /** rct2: 0x008AA28C */
vertical_drop_rc_track_left_quarter_turn_3(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)365 static void vertical_drop_rc_track_left_quarter_turn_3(
366     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
367     const TrackElement& trackElement)
368 {
369     bolliger_mabillard_track_left_quarter_turn_3(
370         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
371 }
372 
373 /** rct2: 0x008AA29C */
vertical_drop_rc_track_right_quarter_turn_3(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)374 static void vertical_drop_rc_track_right_quarter_turn_3(
375     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
376     const TrackElement& trackElement)
377 {
378     bolliger_mabillard_track_right_quarter_turn_3(
379         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
380 }
381 
382 /** rct2: 0x008AA2AC */
vertical_drop_rc_track_left_quarter_turn_3_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)383 static void vertical_drop_rc_track_left_quarter_turn_3_bank(
384     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
385     const TrackElement& trackElement)
386 {
387     bolliger_mabillard_track_left_quarter_turn_3_bank(
388         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
389 }
390 
391 /** rct2: 0x008AA2BC */
vertical_drop_rc_track_right_quarter_turn_3_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)392 static void vertical_drop_rc_track_right_quarter_turn_3_bank(
393     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
394     const TrackElement& trackElement)
395 {
396     bolliger_mabillard_track_right_quarter_turn_3_bank(
397         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
398 }
399 
400 /** rct2: 0x008AA2CC */
vertical_drop_rc_track_left_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)401 static void vertical_drop_rc_track_left_quarter_turn_3_25_deg_up(
402     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
403     const TrackElement& trackElement)
404 {
405     bolliger_mabillard_track_left_quarter_turn_3_25_deg_up(
406         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
407 }
408 
409 /** rct2: 0x008AA2DC */
vertical_drop_rc_track_right_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)410 static void vertical_drop_rc_track_right_quarter_turn_3_25_deg_up(
411     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
412     const TrackElement& trackElement)
413 {
414     bolliger_mabillard_track_right_quarter_turn_3_25_deg_up(
415         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
416 }
417 
418 /** rct2: 0x008AA2EC */
vertical_drop_rc_track_left_quarter_turn_3_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)419 static void vertical_drop_rc_track_left_quarter_turn_3_25_deg_down(
420     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
421     const TrackElement& trackElement)
422 {
423     bolliger_mabillard_track_left_quarter_turn_3_25_deg_down(
424         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
425 }
426 
427 /** rct2: 0x008AA2FC */
vertical_drop_rc_track_right_quarter_turn_3_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)428 static void vertical_drop_rc_track_right_quarter_turn_3_25_deg_down(
429     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
430     const TrackElement& trackElement)
431 {
432     bolliger_mabillard_track_right_quarter_turn_3_25_deg_down(
433         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
434 }
435 
436 /** rct2: 0x008AA30C */
vertical_drop_rc_track_left_half_banked_helix_up_small(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)437 static void vertical_drop_rc_track_left_half_banked_helix_up_small(
438     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
439     const TrackElement& trackElement)
440 {
441     bolliger_mabillard_track_left_half_banked_helix_up_small(
442         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
443 }
444 
445 /** rct2: 0x008AA31C */
vertical_drop_rc_track_right_half_banked_helix_up_small(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)446 static void vertical_drop_rc_track_right_half_banked_helix_up_small(
447     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
448     const TrackElement& trackElement)
449 {
450     bolliger_mabillard_track_right_half_banked_helix_up_small(
451         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
452 }
453 
454 /** rct2: 0x008AA32C */
vertical_drop_rc_track_left_half_banked_helix_down_small(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)455 static void vertical_drop_rc_track_left_half_banked_helix_down_small(
456     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
457     const TrackElement& trackElement)
458 {
459     bolliger_mabillard_track_left_half_banked_helix_down_small(
460         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
461 }
462 
463 /** rct2: 0x008AA33C */
vertical_drop_rc_track_right_half_banked_helix_down_small(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)464 static void vertical_drop_rc_track_right_half_banked_helix_down_small(
465     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
466     const TrackElement& trackElement)
467 {
468     bolliger_mabillard_track_right_half_banked_helix_down_small(
469         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
470 }
471 
472 /** rct2: 0x008AA34C */
vertical_drop_rc_track_left_half_banked_helix_up_large(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)473 static void vertical_drop_rc_track_left_half_banked_helix_up_large(
474     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
475     const TrackElement& trackElement)
476 {
477     bolliger_mabillard_track_left_half_banked_helix_up_large(
478         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
479 }
480 
481 /** rct2: 0x008AA35C */
vertical_drop_rc_track_right_half_banked_helix_up_large(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)482 static void vertical_drop_rc_track_right_half_banked_helix_up_large(
483     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
484     const TrackElement& trackElement)
485 {
486     bolliger_mabillard_track_right_half_banked_helix_up_large(
487         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
488 }
489 
490 /** rct2: 0x008AA36C */
vertical_drop_rc_track_left_half_banked_helix_down_large(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)491 static void vertical_drop_rc_track_left_half_banked_helix_down_large(
492     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
493     const TrackElement& trackElement)
494 {
495     bolliger_mabillard_track_left_half_banked_helix_down_large(
496         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
497 }
498 
499 /** rct2: 0x008AA37C */
vertical_drop_rc_track_right_half_banked_helix_down_large(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)500 static void vertical_drop_rc_track_right_half_banked_helix_down_large(
501     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
502     const TrackElement& trackElement)
503 {
504     bolliger_mabillard_track_right_half_banked_helix_down_large(
505         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
506 }
507 
508 /** rct2: 0x008AA3AC */
vertical_drop_rc_track_left_quarter_turn_1_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)509 static void vertical_drop_rc_track_left_quarter_turn_1_60_deg_up(
510     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
511     const TrackElement& trackElement)
512 {
513     bolliger_mabillard_track_left_quarter_turn_1_60_deg_up(
514         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
515 }
516 
517 /** rct2: 0x008AA38C */
vertical_drop_rc_track_right_quarter_turn_1_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)518 static void vertical_drop_rc_track_right_quarter_turn_1_60_deg_up(
519     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
520     const TrackElement& trackElement)
521 {
522     bolliger_mabillard_track_right_quarter_turn_1_60_deg_up(
523         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
524 }
525 
526 /** rct2: 0x008AA39C */
vertical_drop_rc_track_left_quarter_turn_1_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)527 static void vertical_drop_rc_track_left_quarter_turn_1_60_deg_down(
528     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
529     const TrackElement& trackElement)
530 {
531     bolliger_mabillard_track_left_quarter_turn_1_60_deg_down(
532         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
533 }
534 
535 /** rct2: 0x008AA3BC */
vertical_drop_rc_track_right_quarter_turn_1_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)536 static void vertical_drop_rc_track_right_quarter_turn_1_60_deg_down(
537     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
538     const TrackElement& trackElement)
539 {
540     bolliger_mabillard_track_right_quarter_turn_1_60_deg_down(
541         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
542 }
543 
544 /** rct2: 0x008AA40C */
vertical_drop_rc_track_brakes(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)545 static void vertical_drop_rc_track_brakes(
546     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
547     const TrackElement& trackElement)
548 {
549     bolliger_mabillard_track_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
550 }
551 
552 /** rct2: 0x008AA7EC */
vertical_drop_rc_track_25_deg_up_left_banked(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)553 static void vertical_drop_rc_track_25_deg_up_left_banked(
554     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
555     const TrackElement& trackElement)
556 {
557     bolliger_mabillard_track_25_deg_up_left_banked(
558         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
559 }
560 
561 /** rct2: 0x008AA7FC */
vertical_drop_rc_track_25_deg_up_right_banked(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)562 static void vertical_drop_rc_track_25_deg_up_right_banked(
563     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
564     const TrackElement& trackElement)
565 {
566     bolliger_mabillard_track_25_deg_up_right_banked(
567         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
568 }
569 
570 /** rct2: 0x008AA41C */
vertical_drop_rc_track_on_ride_photo(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)571 static void vertical_drop_rc_track_on_ride_photo(
572     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
573     const TrackElement& trackElement)
574 {
575     bolliger_mabillard_track_on_ride_photo(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
576 }
577 
578 /** rct2: 0x008AA80C */
vertical_drop_rc_track_25_deg_down_left_banked(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)579 static void vertical_drop_rc_track_25_deg_down_left_banked(
580     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
581     const TrackElement& trackElement)
582 {
583     bolliger_mabillard_track_25_deg_down_left_banked(
584         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
585 }
586 
587 /** rct2: 0x008AA81C */
vertical_drop_rc_track_25_deg_down_right_banked(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)588 static void vertical_drop_rc_track_25_deg_down_right_banked(
589     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
590     const TrackElement& trackElement)
591 {
592     bolliger_mabillard_track_25_deg_down_right_banked(
593         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
594 }
595 
596 /** rct2: 0x008AA42C */
vertical_drop_rc_track_90_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)597 static void vertical_drop_rc_track_90_deg_up(
598     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
599     const TrackElement& trackElement)
600 {
601     bolliger_mabillard_track_90_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
602 }
603 
604 /** rct2: 0x008AA43C */
vertical_drop_rc_track_90_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)605 static void vertical_drop_rc_track_90_deg_down(
606     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
607     const TrackElement& trackElement)
608 {
609     bolliger_mabillard_track_90_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
610 }
611 
612 /** rct2: 0x008AA44C */
vertical_drop_rc_track_60_deg_up_to_90_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)613 static void vertical_drop_rc_track_60_deg_up_to_90_deg_up(
614     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
615     const TrackElement& trackElement)
616 {
617     bolliger_mabillard_track_60_deg_up_to_90_deg_up(
618         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
619 }
620 
621 /** rct2: 0x008AA45C */
vertical_drop_rc_track_90_deg_down_to_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)622 static void vertical_drop_rc_track_90_deg_down_to_60_deg_down(
623     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
624     const TrackElement& trackElement)
625 {
626     bolliger_mabillard_track_90_deg_down_to_60_deg_down(
627         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
628 }
629 
630 /** rct2: 0x008AA46C */
vertical_drop_rc_track_90_deg_up_to_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)631 static void vertical_drop_rc_track_90_deg_up_to_60_deg_up(
632     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
633     const TrackElement& trackElement)
634 {
635     bolliger_mabillard_track_90_deg_up_to_60_deg_up(
636         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
637 }
638 
639 /** rct2: 0x008AA47C */
vertical_drop_rc_track_60_deg_down_to_90_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)640 static void vertical_drop_rc_track_60_deg_down_to_90_deg_down(
641     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
642     const TrackElement& trackElement)
643 {
644     bolliger_mabillard_track_60_deg_down_to_90_deg_down(
645         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
646 }
647 
648 /** rct2: 0x008AA4CC */
vertical_drop_rc_track_left_eighth_to_diag(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)649 static void vertical_drop_rc_track_left_eighth_to_diag(
650     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
651     const TrackElement& trackElement)
652 {
653     bolliger_mabillard_track_left_eighth_to_diag(
654         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
655 }
656 
657 /** rct2: 0x008AA4DC */
vertical_drop_rc_track_right_eighth_to_diag(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)658 static void vertical_drop_rc_track_right_eighth_to_diag(
659     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
660     const TrackElement& trackElement)
661 {
662     bolliger_mabillard_track_right_eighth_to_diag(
663         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
664 }
665 
666 /** rct2: 0x008AA4EC */
vertical_drop_rc_track_left_eighth_to_orthogonal(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)667 static void vertical_drop_rc_track_left_eighth_to_orthogonal(
668     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
669     const TrackElement& trackElement)
670 {
671     bolliger_mabillard_track_left_eighth_to_orthogonal(
672         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
673 }
674 
675 /** rct2: 0x008AA4FC */
vertical_drop_rc_track_right_eighth_to_orthogonal(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)676 static void vertical_drop_rc_track_right_eighth_to_orthogonal(
677     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
678     const TrackElement& trackElement)
679 {
680     bolliger_mabillard_track_right_eighth_to_orthogonal(
681         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
682 }
683 
684 /** rct2: 0x008AA50C */
vertical_drop_rc_track_left_eighth_bank_to_diag(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)685 static void vertical_drop_rc_track_left_eighth_bank_to_diag(
686     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
687     const TrackElement& trackElement)
688 {
689     bolliger_mabillard_track_left_eighth_bank_to_diag(
690         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
691 }
692 
693 /** rct2: 0x008AA51C */
vertical_drop_rc_track_right_eighth_bank_to_diag(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)694 static void vertical_drop_rc_track_right_eighth_bank_to_diag(
695     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
696     const TrackElement& trackElement)
697 {
698     bolliger_mabillard_track_right_eighth_bank_to_diag(
699         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
700 }
701 
702 /** rct2: 0x008AA52C */
vertical_drop_rc_track_left_eighth_bank_to_orthogonal(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)703 static void vertical_drop_rc_track_left_eighth_bank_to_orthogonal(
704     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
705     const TrackElement& trackElement)
706 {
707     bolliger_mabillard_track_left_eighth_bank_to_orthogonal(
708         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
709 }
710 
711 /** rct2: 0x008AA53C */
vertical_drop_rc_track_right_eighth_bank_to_orthogonal(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)712 static void vertical_drop_rc_track_right_eighth_bank_to_orthogonal(
713     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
714     const TrackElement& trackElement)
715 {
716     bolliger_mabillard_track_right_eighth_bank_to_orthogonal(
717         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
718 }
719 
720 /** rct2: 0x008AA4BC */
vertical_drop_rc_track_diag_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)721 static void vertical_drop_rc_track_diag_flat(
722     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
723     const TrackElement& trackElement)
724 {
725     bolliger_mabillard_track_diag_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
726 }
727 
728 /** rct2: 0x008AA56C */
vertical_drop_rc_track_diag_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)729 static void vertical_drop_rc_track_diag_25_deg_up(
730     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
731     const TrackElement& trackElement)
732 {
733     bolliger_mabillard_track_diag_25_deg_up(
734         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
735 }
736 
737 /** rct2: 0x008AA5CC */
vertical_drop_rc_track_diag_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)738 static void vertical_drop_rc_track_diag_60_deg_up(
739     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
740     const TrackElement& trackElement)
741 {
742     bolliger_mabillard_track_diag_60_deg_up(
743         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
744 }
745 
746 /** rct2: 0x008AA54C */
vertical_drop_rc_track_diag_flat_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)747 static void vertical_drop_rc_track_diag_flat_to_25_deg_up(
748     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
749     const TrackElement& trackElement)
750 {
751     bolliger_mabillard_track_diag_flat_to_25_deg_up(
752         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
753 }
754 
755 /** rct2: 0x008AA5AC */
vertical_drop_rc_track_diag_25_deg_up_to_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)756 static void vertical_drop_rc_track_diag_25_deg_up_to_60_deg_up(
757     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
758     const TrackElement& trackElement)
759 {
760     bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up(
761         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
762 }
763 
764 /** rct2: 0x008AA5BC */
vertical_drop_rc_track_diag_60_deg_up_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)765 static void vertical_drop_rc_track_diag_60_deg_up_to_25_deg_up(
766     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
767     const TrackElement& trackElement)
768 {
769     bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up(
770         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
771 }
772 
773 /** rct2: 0x008AA55C */
vertical_drop_rc_track_diag_25_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)774 static void vertical_drop_rc_track_diag_25_deg_up_to_flat(
775     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
776     const TrackElement& trackElement)
777 {
778     bolliger_mabillard_track_diag_25_deg_up_to_flat(
779         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
780 }
781 
782 /** rct2: 0x008AA59C */
vertical_drop_rc_track_diag_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)783 static void vertical_drop_rc_track_diag_25_deg_down(
784     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
785     const TrackElement& trackElement)
786 {
787     bolliger_mabillard_track_diag_25_deg_down(
788         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
789 }
790 
791 /** rct2: 0x008AA5FC */
vertical_drop_rc_track_diag_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)792 static void vertical_drop_rc_track_diag_60_deg_down(
793     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
794     const TrackElement& trackElement)
795 {
796     bolliger_mabillard_track_diag_60_deg_down(
797         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
798 }
799 
800 /** rct2: 0x008AA57C */
vertical_drop_rc_track_diag_flat_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)801 static void vertical_drop_rc_track_diag_flat_to_25_deg_down(
802     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
803     const TrackElement& trackElement)
804 {
805     bolliger_mabillard_track_diag_flat_to_25_deg_down(
806         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
807 }
808 
809 /** rct2: 0x008AA5DC */
vertical_drop_rc_track_diag_25_deg_down_to_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)810 static void vertical_drop_rc_track_diag_25_deg_down_to_60_deg_down(
811     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
812     const TrackElement& trackElement)
813 {
814     bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down(
815         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
816 }
817 
818 /** rct2: 0x008AA5EC */
vertical_drop_rc_track_diag_60_deg_down_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)819 static void vertical_drop_rc_track_diag_60_deg_down_to_25_deg_down(
820     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
821     const TrackElement& trackElement)
822 {
823     bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down(
824         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
825 }
826 
827 /** rct2: 0x008AA58C */
vertical_drop_rc_track_diag_25_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)828 static void vertical_drop_rc_track_diag_25_deg_down_to_flat(
829     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
830     const TrackElement& trackElement)
831 {
832     bolliger_mabillard_track_diag_25_deg_down_to_flat(
833         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
834 }
835 
836 /** rct2: 0x008AA62C */
vertical_drop_rc_track_diag_flat_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)837 static void vertical_drop_rc_track_diag_flat_to_left_bank(
838     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
839     const TrackElement& trackElement)
840 {
841     bolliger_mabillard_track_diag_flat_to_left_bank(
842         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
843 }
844 
845 /** rct2: 0x008AA63C */
vertical_drop_rc_track_diag_flat_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)846 static void vertical_drop_rc_track_diag_flat_to_right_bank(
847     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
848     const TrackElement& trackElement)
849 {
850     bolliger_mabillard_track_diag_flat_to_right_bank(
851         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
852 }
853 
854 /** rct2: 0x008AA64C */
vertical_drop_rc_track_diag_left_bank_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)855 static void vertical_drop_rc_track_diag_left_bank_to_flat(
856     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
857     const TrackElement& trackElement)
858 {
859     bolliger_mabillard_track_diag_left_bank_to_flat(
860         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
861 }
862 
863 /** rct2: 0x008AA65C */
vertical_drop_rc_track_diag_right_bank_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)864 static void vertical_drop_rc_track_diag_right_bank_to_flat(
865     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
866     const TrackElement& trackElement)
867 {
868     bolliger_mabillard_track_diag_right_bank_to_flat(
869         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
870 }
871 
872 /** rct2: 0x008AA68C */
vertical_drop_rc_track_diag_left_bank_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)873 static void vertical_drop_rc_track_diag_left_bank_to_25_deg_up(
874     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
875     const TrackElement& trackElement)
876 {
877     bolliger_mabillard_track_diag_left_bank_to_25_deg_up(
878         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
879 }
880 
881 /** rct2: 0x008AA69C */
vertical_drop_rc_track_diag_right_bank_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)882 static void vertical_drop_rc_track_diag_right_bank_to_25_deg_up(
883     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
884     const TrackElement& trackElement)
885 {
886     bolliger_mabillard_track_diag_right_bank_to_25_deg_up(
887         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
888 }
889 
890 /** rct2: 0x008AA66C */
vertical_drop_rc_track_diag_25_deg_up_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)891 static void vertical_drop_rc_track_diag_25_deg_up_to_left_bank(
892     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
893     const TrackElement& trackElement)
894 {
895     bolliger_mabillard_track_diag_25_deg_up_to_left_bank(
896         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
897 }
898 
899 /** rct2: 0x008AA67C */
vertical_drop_rc_track_diag_25_deg_up_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)900 static void vertical_drop_rc_track_diag_25_deg_up_to_right_bank(
901     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
902     const TrackElement& trackElement)
903 {
904     bolliger_mabillard_track_diag_25_deg_up_to_right_bank(
905         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
906 }
907 
908 /** rct2: 0x008AA6AC */
vertical_drop_rc_track_diag_left_bank_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)909 static void vertical_drop_rc_track_diag_left_bank_to_25_deg_down(
910     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
911     const TrackElement& trackElement)
912 {
913     bolliger_mabillard_track_diag_left_bank_to_25_deg_down(
914         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
915 }
916 
917 /** rct2: 0x008AA6BC */
vertical_drop_rc_track_diag_right_bank_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)918 static void vertical_drop_rc_track_diag_right_bank_to_25_deg_down(
919     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
920     const TrackElement& trackElement)
921 {
922     bolliger_mabillard_track_diag_right_bank_to_25_deg_down(
923         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
924 }
925 
926 /** rct2: 0x008AA6CC */
vertical_drop_rc_track_diag_25_deg_down_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)927 static void vertical_drop_rc_track_diag_25_deg_down_to_left_bank(
928     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
929     const TrackElement& trackElement)
930 {
931     bolliger_mabillard_track_diag_25_deg_down_to_left_bank(
932         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
933 }
934 
935 /** rct2: 0x008AA6DC */
vertical_drop_rc_track_diag_25_deg_down_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)936 static void vertical_drop_rc_track_diag_25_deg_down_to_right_bank(
937     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
938     const TrackElement& trackElement)
939 {
940     bolliger_mabillard_track_diag_25_deg_down_to_right_bank(
941         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
942 }
943 
944 /** rct2: 0x008AA60C */
vertical_drop_rc_track_diag_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)945 static void vertical_drop_rc_track_diag_left_bank(
946     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
947     const TrackElement& trackElement)
948 {
949     bolliger_mabillard_track_diag_left_bank(
950         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
951 }
952 
953 /** rct2: 0x008AA61C */
vertical_drop_rc_track_diag_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)954 static void vertical_drop_rc_track_diag_right_bank(
955     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
956     const TrackElement& trackElement)
957 {
958     bolliger_mabillard_track_diag_right_bank(
959         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
960 }
961 
962 /** rct2: 0x008AA72C */
vertical_drop_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)963 static void vertical_drop_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up(
964     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
965     const TrackElement& trackElement)
966 {
967     bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up(
968         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
969 }
970 
971 /** rct2: 0x008AA73C */
vertical_drop_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)972 static void vertical_drop_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up(
973     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
974     const TrackElement& trackElement)
975 {
976     bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up(
977         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
978 }
979 
980 /** rct2: 0x008AA74C */
vertical_drop_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)981 static void vertical_drop_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank(
982     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
983     const TrackElement& trackElement)
984 {
985     bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank(
986         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
987 }
988 
989 /** rct2: 0x008AA75C */
vertical_drop_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)990 static void vertical_drop_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank(
991     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
992     const TrackElement& trackElement)
993 {
994     bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank(
995         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
996 }
997 
998 /** rct2: 0x008AA9EC */
vertical_drop_rc_track_block_brakes(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)999 static void vertical_drop_rc_track_block_brakes(
1000     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1001     const TrackElement& trackElement)
1002 {
1003     bolliger_mabillard_track_block_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1004 }
1005 
1006 /** rct2: 0x008AA96C */
vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1007 static void vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_up(
1008     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1009     const TrackElement& trackElement)
1010 {
1011     bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up(
1012         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1013 }
1014 
1015 /** rct2: 0x008AA97C */
vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1016 static void vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_up(
1017     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1018     const TrackElement& trackElement)
1019 {
1020     bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up(
1021         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1022 }
1023 
1024 /** rct2: 0x008AA98C */
vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1025 static void vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_down(
1026     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1027     const TrackElement& trackElement)
1028 {
1029     bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_down(
1030         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1031 }
1032 
1033 /** rct2: 0x008AA99C */
vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1034 static void vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_down(
1035     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1036     const TrackElement& trackElement)
1037 {
1038     bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_down(
1039         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1040 }
1041 
1042 /** rct2: 0x008AA8AC */
vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1043 static void vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_up(
1044     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1045     const TrackElement& trackElement)
1046 {
1047     bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up(
1048         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1049 }
1050 
1051 /** rct2: 0x008AA8BC */
vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1052 static void vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_up(
1053     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1054     const TrackElement& trackElement)
1055 {
1056     bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up(
1057         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1058 }
1059 
1060 /** rct2: 0x008AA8CC */
vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1061 static void vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_down(
1062     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1063     const TrackElement& trackElement)
1064 {
1065     bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_down(
1066         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1067 }
1068 
1069 /** rct2: 0x008AA8DC */
vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1070 static void vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_down(
1071     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1072     const TrackElement& trackElement)
1073 {
1074     bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_down(
1075         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1076 }
1077 
1078 /** rct2: 0x008AA82C */
vertical_drop_rc_track_25_deg_up_to_left_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1079 static void vertical_drop_rc_track_25_deg_up_to_left_banked_25_deg_up(
1080     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1081     const TrackElement& trackElement)
1082 {
1083     bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up(
1084         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1085 }
1086 
1087 /** rct2: 0x008AA83C */
vertical_drop_rc_track_25_deg_up_to_right_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1088 static void vertical_drop_rc_track_25_deg_up_to_right_banked_25_deg_up(
1089     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1090     const TrackElement& trackElement)
1091 {
1092     bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up(
1093         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1094 }
1095 
1096 /** rct2: 0x008AA84C */
vertical_drop_rc_track_left_banked_25_deg_up_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1097 static void vertical_drop_rc_track_left_banked_25_deg_up_to_25_deg_up(
1098     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1099     const TrackElement& trackElement)
1100 {
1101     bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up(
1102         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1103 }
1104 
1105 /** rct2: 0x008AA85C */
vertical_drop_rc_track_right_banked_25_deg_up_to_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1106 static void vertical_drop_rc_track_right_banked_25_deg_up_to_25_deg_up(
1107     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1108     const TrackElement& trackElement)
1109 {
1110     bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up(
1111         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1112 }
1113 
1114 /** rct2: 0x008AA86C */
vertical_drop_rc_track_25_deg_down_to_left_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1115 static void vertical_drop_rc_track_25_deg_down_to_left_banked_25_deg_down(
1116     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1117     const TrackElement& trackElement)
1118 {
1119     bolliger_mabillard_track_25_deg_down_to_left_banked_25_deg_down(
1120         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1121 }
1122 
1123 /** rct2: 0x008AA87C */
vertical_drop_rc_track_25_deg_down_to_right_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1124 static void vertical_drop_rc_track_25_deg_down_to_right_banked_25_deg_down(
1125     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1126     const TrackElement& trackElement)
1127 {
1128     bolliger_mabillard_track_25_deg_down_to_right_banked_25_deg_down(
1129         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1130 }
1131 
1132 /** rct2: 0x008AA88C */
vertical_drop_rc_track_left_banked_25_deg_down_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1133 static void vertical_drop_rc_track_left_banked_25_deg_down_to_25_deg_down(
1134     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1135     const TrackElement& trackElement)
1136 {
1137     bolliger_mabillard_track_left_banked_25_deg_down_to_25_deg_down(
1138         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1139 }
1140 
1141 /** rct2: 0x008AA89C */
vertical_drop_rc_track_right_banked_25_deg_down_to_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1142 static void vertical_drop_rc_track_right_banked_25_deg_down_to_25_deg_down(
1143     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1144     const TrackElement& trackElement)
1145 {
1146     bolliger_mabillard_track_right_banked_25_deg_down_to_25_deg_down(
1147         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1148 }
1149 
1150 /** rct2: 0x008AA8EC */
vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1151 static void vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_up(
1152     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1153     const TrackElement& trackElement)
1154 {
1155     bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up(
1156         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1157 }
1158 
1159 /** rct2: 0x008AA8FC */
vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1160 static void vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_up(
1161     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1162     const TrackElement& trackElement)
1163 {
1164     bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up(
1165         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1166 }
1167 
1168 /** rct2: 0x008AA92C */
vertical_drop_rc_track_left_banked_25_deg_up_to_left_banked_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1169 static void vertical_drop_rc_track_left_banked_25_deg_up_to_left_banked_flat(
1170     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1171     const TrackElement& trackElement)
1172 {
1173     bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat(
1174         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1175 }
1176 
1177 /** rct2: 0x008AA93C */
vertical_drop_rc_track_right_banked_25_deg_up_to_right_banked_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1178 static void vertical_drop_rc_track_right_banked_25_deg_up_to_right_banked_flat(
1179     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1180     const TrackElement& trackElement)
1181 {
1182     bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat(
1183         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1184 }
1185 
1186 /** rct2: 0x008AA94C */
vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1187 static void vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_down(
1188     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1189     const TrackElement& trackElement)
1190 {
1191     bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_down(
1192         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1193 }
1194 
1195 /** rct2: 0x008AA95C */
vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1196 static void vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_down(
1197     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1198     const TrackElement& trackElement)
1199 {
1200     bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_down(
1201         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1202 }
1203 
1204 /** rct2: 0x008AA90C */
vertical_drop_rc_track_left_banked_25_deg_down_to_left_banked_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1205 static void vertical_drop_rc_track_left_banked_25_deg_down_to_left_banked_flat(
1206     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1207     const TrackElement& trackElement)
1208 {
1209     bolliger_mabillard_track_left_banked_25_deg_down_to_left_banked_flat(
1210         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1211 }
1212 
1213 /** rct2: 0x008AA91C */
vertical_drop_rc_track_right_banked_25_deg_down_to_right_banked_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1214 static void vertical_drop_rc_track_right_banked_25_deg_down_to_right_banked_flat(
1215     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1216     const TrackElement& trackElement)
1217 {
1218     bolliger_mabillard_track_right_banked_25_deg_down_to_right_banked_flat(
1219         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1220 }
1221 
1222 /** rct2: 0x008AA76C */
vertical_drop_rc_track_flat_to_left_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1223 static void vertical_drop_rc_track_flat_to_left_banked_25_deg_up(
1224     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1225     const TrackElement& trackElement)
1226 {
1227     bolliger_mabillard_track_flat_to_left_banked_25_deg_up(
1228         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1229 }
1230 
1231 /** rct2: 0x008AA77C */
vertical_drop_rc_track_flat_to_right_banked_25_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1232 static void vertical_drop_rc_track_flat_to_right_banked_25_deg_up(
1233     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1234     const TrackElement& trackElement)
1235 {
1236     bolliger_mabillard_track_flat_to_right_banked_25_deg_up(
1237         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1238 }
1239 
1240 /** rct2: 0x008AA78C */
vertical_drop_rc_track_left_banked_25_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1241 static void vertical_drop_rc_track_left_banked_25_deg_up_to_flat(
1242     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1243     const TrackElement& trackElement)
1244 {
1245     bolliger_mabillard_track_left_banked_25_deg_up_to_flat(
1246         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1247 }
1248 
1249 /** rct2: 0x008AA79C */
vertical_drop_rc_track_right_banked_25_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1250 static void vertical_drop_rc_track_right_banked_25_deg_up_to_flat(
1251     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1252     const TrackElement& trackElement)
1253 {
1254     bolliger_mabillard_track_right_banked_25_deg_up_to_flat(
1255         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1256 }
1257 
1258 /** rct2: 0x008AA7AC */
vertical_drop_rc_track_flat_to_left_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1259 static void vertical_drop_rc_track_flat_to_left_banked_25_deg_down(
1260     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1261     const TrackElement& trackElement)
1262 {
1263     bolliger_mabillard_track_flat_to_left_banked_25_deg_down(
1264         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1265 }
1266 
1267 /** rct2: 0x008AA7BC */
vertical_drop_rc_track_flat_to_right_banked_25_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1268 static void vertical_drop_rc_track_flat_to_right_banked_25_deg_down(
1269     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1270     const TrackElement& trackElement)
1271 {
1272     bolliger_mabillard_track_flat_to_right_banked_25_deg_down(
1273         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1274 }
1275 
1276 /** rct2: 0x008AA7CC */
vertical_drop_rc_track_left_banked_25_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1277 static void vertical_drop_rc_track_left_banked_25_deg_down_to_flat(
1278     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1279     const TrackElement& trackElement)
1280 {
1281     bolliger_mabillard_track_left_banked_25_deg_down_to_flat(
1282         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1283 }
1284 
1285 /** rct2: 0x008AA7DC */
vertical_drop_rc_track_right_banked_25_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1286 static void vertical_drop_rc_track_right_banked_25_deg_down_to_flat(
1287     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1288     const TrackElement& trackElement)
1289 {
1290     bolliger_mabillard_track_right_banked_25_deg_down_to_flat(
1291         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1292 }
1293 
1294 /** rct2: 0x008AA9AC */
vertical_drop_rc_track_left_quarter_turn_1_90_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1295 static void vertical_drop_rc_track_left_quarter_turn_1_90_deg_up(
1296     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1297     const TrackElement& trackElement)
1298 {
1299     bolliger_mabillard_track_left_quarter_turn_1_90_deg_up(
1300         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1301 }
1302 
1303 /** rct2: 0x008AA9BC */
vertical_drop_rc_track_right_quarter_turn_1_90_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1304 static void vertical_drop_rc_track_right_quarter_turn_1_90_deg_up(
1305     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1306     const TrackElement& trackElement)
1307 {
1308     bolliger_mabillard_track_right_quarter_turn_1_90_deg_up(
1309         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1310 }
1311 
1312 /** rct2: 0x008AA9CC */
vertical_drop_rc_track_left_quarter_turn_1_90_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1313 static void vertical_drop_rc_track_left_quarter_turn_1_90_deg_down(
1314     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1315     const TrackElement& trackElement)
1316 {
1317     bolliger_mabillard_track_left_quarter_turn_1_90_deg_down(
1318         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1319 }
1320 
1321 /** rct2: 0x008AA9DC */
vertical_drop_rc_track_right_quarter_turn_1_90_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1322 static void vertical_drop_rc_track_right_quarter_turn_1_90_deg_down(
1323     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1324     const TrackElement& trackElement)
1325 {
1326     bolliger_mabillard_track_right_quarter_turn_1_90_deg_down(
1327         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1328 }
1329 
1330 /* The following elements used to be specific to the vertical_drop RC */
1331 /** rct2: 0x008AA3CC */
vertical_drop_rc_track_flat_to_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1332 static void vertical_drop_rc_track_flat_to_60_deg_up(
1333     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1334     const TrackElement& trackElement)
1335 {
1336     bolliger_mabillard_track_flat_to_60_deg_up(
1337         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1338 }
1339 
1340 /** rct2: 0x008AA3DC */
vertical_drop_rc_track_60_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1341 static void vertical_drop_rc_track_60_deg_up_to_flat(
1342     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1343     const TrackElement& trackElement)
1344 {
1345     bolliger_mabillard_track_60_deg_up_to_flat(
1346         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1347 }
1348 
1349 /** rct2: 0x008AA3EC */
vertical_drop_rc_track_flat_to_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1350 static void vertical_drop_rc_track_flat_to_60_deg_down(
1351     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1352     const TrackElement& trackElement)
1353 {
1354     bolliger_mabillard_track_flat_to_60_deg_down(
1355         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1356 }
1357 
1358 /** rct2: 0x008AA3FC */
vertical_drop_rc_track_60_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1359 static void vertical_drop_rc_track_60_deg_down_to_flat(
1360     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1361     const TrackElement& trackElement)
1362 {
1363     bolliger_mabillard_track_60_deg_down_to_flat(
1364         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1365 }
1366 
1367 /** rct2: 0x008AA48C */
vertical_drop_rc_track_brake_for_drop(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1368 static void vertical_drop_rc_track_brake_for_drop(
1369     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1370     const TrackElement& trackElement)
1371 {
1372     bolliger_mabillard_track_brake_for_drop(
1373         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1374 }
1375 
1376 /** rct2: 0x008AA6EC */
vertical_drop_rc_track_diag_flat_to_60_deg_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1377 static void vertical_drop_rc_track_diag_flat_to_60_deg_up(
1378     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1379     const TrackElement& trackElement)
1380 {
1381     bolliger_mabillard_track_diag_flat_to_60_deg_up(
1382         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1383 }
1384 
1385 /** rct2: 0x008AA6FC */
vertical_drop_rc_track_diag_60_deg_up_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1386 static void vertical_drop_rc_track_diag_60_deg_up_to_flat(
1387     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1388     const TrackElement& trackElement)
1389 {
1390     bolliger_mabillard_track_diag_60_deg_up_to_flat(
1391         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1392 }
1393 
1394 /** rct2: 0x008AA70C */
vertical_drop_rc_track_diag_flat_to_60_deg_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1395 static void vertical_drop_rc_track_diag_flat_to_60_deg_down(
1396     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1397     const TrackElement& trackElement)
1398 {
1399     bolliger_mabillard_track_diag_flat_to_60_deg_down(
1400         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1401 }
1402 
1403 /** rct2: 0x008AA71C */
vertical_drop_rc_track_diag_60_deg_down_to_flat(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1404 static void vertical_drop_rc_track_diag_60_deg_down_to_flat(
1405     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1406     const TrackElement& trackElement)
1407 {
1408     bolliger_mabillard_track_diag_60_deg_down_to_flat(
1409         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1410 }
1411 
1412 /* The following elements used to be specific to the steel twister RC */
vertical_drop_rc_track_half_loop_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1413 static void vertical_drop_rc_track_half_loop_up(
1414     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1415     const TrackElement& trackElement)
1416 {
1417     bolliger_mabillard_track_half_loop_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1418 }
1419 
vertical_drop_rc_track_half_loop_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1420 static void vertical_drop_rc_track_half_loop_down(
1421     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1422     const TrackElement& trackElement)
1423 {
1424     bolliger_mabillard_track_half_loop_down(
1425         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1426 }
1427 
vertical_drop_rc_track_left_corkscrew_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1428 static void vertical_drop_rc_track_left_corkscrew_up(
1429     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1430     const TrackElement& trackElement)
1431 {
1432     bolliger_mabillard_track_left_corkscrew_up(
1433         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1434 }
1435 
vertical_drop_rc_track_right_corkscrew_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1436 static void vertical_drop_rc_track_right_corkscrew_up(
1437     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1438     const TrackElement& trackElement)
1439 {
1440     bolliger_mabillard_track_right_corkscrew_up(
1441         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1442 }
1443 
vertical_drop_rc_track_left_corkscrew_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1444 static void vertical_drop_rc_track_left_corkscrew_down(
1445     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1446     const TrackElement& trackElement)
1447 {
1448     bolliger_mabillard_track_left_corkscrew_down(
1449         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1450 }
1451 
vertical_drop_rc_track_right_corkscrew_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1452 static void vertical_drop_rc_track_right_corkscrew_down(
1453     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1454     const TrackElement& trackElement)
1455 {
1456     bolliger_mabillard_track_right_corkscrew_down(
1457         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1458 }
1459 
vertical_drop_rc_track_flat_to_60_deg_up_long_base(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1460 static void vertical_drop_rc_track_flat_to_60_deg_up_long_base(
1461     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1462     const TrackElement& trackElement)
1463 {
1464     bolliger_mabillard_track_flat_to_60_deg_up_long_base(
1465         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1466 }
1467 
vertical_drop_rc_track_60_deg_up_to_flat_long_base(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1468 static void vertical_drop_rc_track_60_deg_up_to_flat_long_base(
1469     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1470     const TrackElement& trackElement)
1471 {
1472     bolliger_mabillard_track_60_deg_up_to_flat_long_base(
1473         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1474 }
1475 
vertical_drop_rc_track_60_deg_down_to_flat_long_base(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1476 static void vertical_drop_rc_track_60_deg_down_to_flat_long_base(
1477     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1478     const TrackElement& trackElement)
1479 {
1480     bolliger_mabillard_track_flat_to_60_deg_down_long_base(
1481         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1482 }
1483 
vertical_drop_rc_track_flat_to_60_deg_down_long_base(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1484 static void vertical_drop_rc_track_flat_to_60_deg_down_long_base(
1485     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1486     const TrackElement& trackElement)
1487 {
1488     bolliger_mabillard_track_60_deg_up_to_flat_long_base122(
1489         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1490 }
1491 
vertical_drop_rc_track_left_barrel_roll_up_to_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1492 static void vertical_drop_rc_track_left_barrel_roll_up_to_down(
1493     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1494     const TrackElement& trackElement)
1495 {
1496     bolliger_mabillard_track_left_barrel_roll_up_to_down(
1497         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1498 }
1499 
vertical_drop_rc_track_right_barrel_roll_up_to_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1500 static void vertical_drop_rc_track_right_barrel_roll_up_to_down(
1501     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1502     const TrackElement& trackElement)
1503 {
1504     bolliger_mabillard_track_right_barrel_roll_up_to_down(
1505         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1506 }
1507 
vertical_drop_rc_track_left_barrel_roll_down_to_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1508 static void vertical_drop_rc_track_left_barrel_roll_down_to_up(
1509     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1510     const TrackElement& trackElement)
1511 {
1512     bolliger_mabillard_track_left_barrel_roll_down_to_up(
1513         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1514 }
1515 
vertical_drop_rc_track_right_barrel_roll_down_to_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1516 static void vertical_drop_rc_track_right_barrel_roll_down_to_up(
1517     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1518     const TrackElement& trackElement)
1519 {
1520     bolliger_mabillard_track_right_barrel_roll_down_to_up(
1521         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1522 }
1523 
vertical_drop_rc_track_powered_lift(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1524 static void vertical_drop_rc_track_powered_lift(
1525     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1526     const TrackElement& trackElement)
1527 {
1528     bolliger_mabillard_track_powered_lift(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1529 }
1530 
vertical_drop_rc_track_left_large_half_loop_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1531 static void vertical_drop_rc_track_left_large_half_loop_up(
1532     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1533     const TrackElement& trackElement)
1534 {
1535     bolliger_mabillard_track_left_large_half_loop_up(
1536         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1537 }
1538 
vertical_drop_rc_track_right_large_half_loop_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1539 static void vertical_drop_rc_track_right_large_half_loop_up(
1540     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1541     const TrackElement& trackElement)
1542 {
1543     bolliger_mabillard_track_right_large_half_loop_up(
1544         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1545 }
1546 
vertical_drop_rc_track_right_large_half_loop_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1547 static void vertical_drop_rc_track_right_large_half_loop_down(
1548     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1549     const TrackElement& trackElement)
1550 {
1551     bolliger_mabillard_track_right_large_half_loop_down(
1552         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1553 }
1554 
vertical_drop_rc_track_left_large_half_loop_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1555 static void vertical_drop_rc_track_left_large_half_loop_down(
1556     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1557     const TrackElement& trackElement)
1558 {
1559     bolliger_mabillard_track_left_large_half_loop_down(
1560         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1561 }
1562 
vertical_drop_rc_track_90_deg_to_inverted_flat_quarter_loop_up(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1563 static void vertical_drop_rc_track_90_deg_to_inverted_flat_quarter_loop_up(
1564     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1565     const TrackElement& trackElement)
1566 {
1567     bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up(
1568         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1569 }
1570 
vertical_drop_rc_track_inverted_flat_to_90_deg_quarter_loop_down(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1571 static void vertical_drop_rc_track_inverted_flat_to_90_deg_quarter_loop_down(
1572     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1573     const TrackElement& trackElement)
1574 {
1575     bolliger_mabillard_track_inverted_flat_to_90_deg_quarter_loop_down(
1576         session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1577 }
1578 
vertical_drop_rc_track_booster(paint_session * session,const Ride * ride,uint8_t trackSequence,uint8_t direction,int32_t height,const TrackElement & trackElement)1579 static void vertical_drop_rc_track_booster(
1580     paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height,
1581     const TrackElement& trackElement)
1582 {
1583     bolliger_mabillard_track_booster(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED);
1584 }
1585 
get_track_paint_function_vertical_drop_rc(int32_t trackType)1586 TRACK_PAINT_FUNCTION get_track_paint_function_vertical_drop_rc(int32_t trackType)
1587 {
1588     switch (trackType)
1589     {
1590         case TrackElemType::Flat:
1591             return vertical_drop_rc_track_flat;
1592         case TrackElemType::EndStation:
1593         case TrackElemType::BeginStation:
1594         case TrackElemType::MiddleStation:
1595             return vertical_drop_rc_track_station;
1596         case TrackElemType::Up25:
1597             return vertical_drop_rc_track_25_deg_up;
1598         case TrackElemType::Up60:
1599             return vertical_drop_rc_track_60_deg_up;
1600         case TrackElemType::FlatToUp25:
1601             return vertical_drop_rc_track_flat_to_25_deg_up;
1602         case TrackElemType::Up25ToUp60:
1603             return vertical_drop_rc_track_25_deg_up_to_60_deg_up;
1604         case TrackElemType::Up60ToUp25:
1605             return vertical_drop_rc_track_60_deg_up_to_25_deg_up;
1606         case TrackElemType::Up25ToFlat:
1607             return vertical_drop_rc_track_25_deg_up_to_flat;
1608         case TrackElemType::Down25:
1609             return vertical_drop_rc_track_25_deg_down;
1610         case TrackElemType::Down60:
1611             return vertical_drop_rc_track_60_deg_down;
1612         case TrackElemType::FlatToDown25:
1613             return vertical_drop_rc_track_flat_to_25_deg_down;
1614         case TrackElemType::Down25ToDown60:
1615             return vertical_drop_rc_track_25_deg_down_to_60_deg_down;
1616         case TrackElemType::Down60ToDown25:
1617             return vertical_drop_rc_track_60_deg_down_to_25_deg_down;
1618         case TrackElemType::Down25ToFlat:
1619             return vertical_drop_rc_track_25_deg_down_to_flat;
1620         case TrackElemType::LeftQuarterTurn5Tiles:
1621             return vertical_drop_rc_track_left_quarter_turn_5;
1622         case TrackElemType::RightQuarterTurn5Tiles:
1623             return vertical_drop_rc_track_right_quarter_turn_5;
1624         case TrackElemType::FlatToLeftBank:
1625             return vertical_drop_rc_track_flat_to_left_bank;
1626         case TrackElemType::FlatToRightBank:
1627             return vertical_drop_rc_track_flat_to_right_bank;
1628         case TrackElemType::LeftBankToFlat:
1629             return vertical_drop_rc_track_left_bank_to_flat;
1630         case TrackElemType::RightBankToFlat:
1631             return vertical_drop_rc_track_right_bank_to_flat;
1632         case TrackElemType::BankedLeftQuarterTurn5Tiles:
1633             return vertical_drop_rc_track_banked_left_quarter_turn_5;
1634         case TrackElemType::BankedRightQuarterTurn5Tiles:
1635             return vertical_drop_rc_track_banked_right_quarter_turn_5;
1636         case TrackElemType::LeftBankToUp25:
1637             return vertical_drop_rc_track_left_bank_to_25_deg_up;
1638         case TrackElemType::RightBankToUp25:
1639             return vertical_drop_rc_track_right_bank_to_25_deg_up;
1640         case TrackElemType::Up25ToLeftBank:
1641             return vertical_drop_rc_track_25_deg_up_to_left_bank;
1642         case TrackElemType::Up25ToRightBank:
1643             return vertical_drop_rc_track_25_deg_up_to_right_bank;
1644         case TrackElemType::LeftBankToDown25:
1645             return vertical_drop_rc_track_left_bank_to_25_deg_down;
1646         case TrackElemType::RightBankToDown25:
1647             return vertical_drop_rc_track_right_bank_to_25_deg_down;
1648         case TrackElemType::Down25ToLeftBank:
1649             return vertical_drop_rc_track_25_deg_down_to_left_bank;
1650         case TrackElemType::Down25ToRightBank:
1651             return vertical_drop_rc_track_25_deg_down_to_right_bank;
1652         case TrackElemType::LeftBank:
1653             return vertical_drop_rc_track_left_bank;
1654         case TrackElemType::RightBank:
1655             return vertical_drop_rc_track_right_bank;
1656         case TrackElemType::LeftQuarterTurn5TilesUp25:
1657             return vertical_drop_rc_track_left_quarter_turn_5_25_deg_up;
1658         case TrackElemType::RightQuarterTurn5TilesUp25:
1659             return vertical_drop_rc_track_right_quarter_turn_5_25_deg_up;
1660         case TrackElemType::LeftQuarterTurn5TilesDown25:
1661             return vertical_drop_rc_track_left_quarter_turn_5_25_deg_down;
1662         case TrackElemType::RightQuarterTurn5TilesDown25:
1663             return vertical_drop_rc_track_right_quarter_turn_5_25_deg_down;
1664         case TrackElemType::SBendLeft:
1665             return vertical_drop_rc_track_s_bend_left;
1666         case TrackElemType::SBendRight:
1667             return vertical_drop_rc_track_s_bend_right;
1668         case TrackElemType::LeftVerticalLoop:
1669             return vertical_drop_rc_track_left_vertical_loop;
1670         case TrackElemType::RightVerticalLoop:
1671             return vertical_drop_rc_track_right_vertical_loop;
1672         case TrackElemType::LeftQuarterTurn3Tiles:
1673             return vertical_drop_rc_track_left_quarter_turn_3;
1674         case TrackElemType::RightQuarterTurn3Tiles:
1675             return vertical_drop_rc_track_right_quarter_turn_3;
1676         case TrackElemType::LeftBankedQuarterTurn3Tiles:
1677             return vertical_drop_rc_track_left_quarter_turn_3_bank;
1678         case TrackElemType::RightBankedQuarterTurn3Tiles:
1679             return vertical_drop_rc_track_right_quarter_turn_3_bank;
1680         case TrackElemType::LeftQuarterTurn3TilesUp25:
1681             return vertical_drop_rc_track_left_quarter_turn_3_25_deg_up;
1682         case TrackElemType::RightQuarterTurn3TilesUp25:
1683             return vertical_drop_rc_track_right_quarter_turn_3_25_deg_up;
1684         case TrackElemType::LeftQuarterTurn3TilesDown25:
1685             return vertical_drop_rc_track_left_quarter_turn_3_25_deg_down;
1686         case TrackElemType::RightQuarterTurn3TilesDown25:
1687             return vertical_drop_rc_track_right_quarter_turn_3_25_deg_down;
1688         case TrackElemType::LeftHalfBankedHelixUpSmall:
1689             return vertical_drop_rc_track_left_half_banked_helix_up_small;
1690         case TrackElemType::RightHalfBankedHelixUpSmall:
1691             return vertical_drop_rc_track_right_half_banked_helix_up_small;
1692         case TrackElemType::LeftHalfBankedHelixDownSmall:
1693             return vertical_drop_rc_track_left_half_banked_helix_down_small;
1694         case TrackElemType::RightHalfBankedHelixDownSmall:
1695             return vertical_drop_rc_track_right_half_banked_helix_down_small;
1696         case TrackElemType::LeftHalfBankedHelixUpLarge:
1697             return vertical_drop_rc_track_left_half_banked_helix_up_large;
1698         case TrackElemType::RightHalfBankedHelixUpLarge:
1699             return vertical_drop_rc_track_right_half_banked_helix_up_large;
1700         case TrackElemType::LeftHalfBankedHelixDownLarge:
1701             return vertical_drop_rc_track_left_half_banked_helix_down_large;
1702         case TrackElemType::RightHalfBankedHelixDownLarge:
1703             return vertical_drop_rc_track_right_half_banked_helix_down_large;
1704         case TrackElemType::LeftQuarterTurn1TileUp60:
1705             return vertical_drop_rc_track_left_quarter_turn_1_60_deg_up;
1706         case TrackElemType::RightQuarterTurn1TileUp60:
1707             return vertical_drop_rc_track_right_quarter_turn_1_60_deg_up;
1708         case TrackElemType::LeftQuarterTurn1TileDown60:
1709             return vertical_drop_rc_track_left_quarter_turn_1_60_deg_down;
1710         case TrackElemType::RightQuarterTurn1TileDown60:
1711             return vertical_drop_rc_track_right_quarter_turn_1_60_deg_down;
1712         case TrackElemType::Brakes:
1713             return vertical_drop_rc_track_brakes;
1714         case TrackElemType::Up25LeftBanked:
1715             return vertical_drop_rc_track_25_deg_up_left_banked;
1716         case TrackElemType::Up25RightBanked:
1717             return vertical_drop_rc_track_25_deg_up_right_banked;
1718         case TrackElemType::OnRidePhoto:
1719             return vertical_drop_rc_track_on_ride_photo;
1720         case TrackElemType::Down25LeftBanked:
1721             return vertical_drop_rc_track_25_deg_down_left_banked;
1722         case TrackElemType::Down25RightBanked:
1723             return vertical_drop_rc_track_25_deg_down_right_banked;
1724         case TrackElemType::Up90:
1725             return vertical_drop_rc_track_90_deg_up;
1726         case TrackElemType::Down90:
1727             return vertical_drop_rc_track_90_deg_down;
1728         case TrackElemType::Up60ToUp90:
1729             return vertical_drop_rc_track_60_deg_up_to_90_deg_up;
1730         case TrackElemType::Down90ToDown60:
1731             return vertical_drop_rc_track_90_deg_down_to_60_deg_down;
1732         case TrackElemType::Up90ToUp60:
1733             return vertical_drop_rc_track_90_deg_up_to_60_deg_up;
1734         case TrackElemType::Down60ToDown90:
1735             return vertical_drop_rc_track_60_deg_down_to_90_deg_down;
1736         case TrackElemType::LeftEighthToDiag:
1737             return vertical_drop_rc_track_left_eighth_to_diag;
1738         case TrackElemType::RightEighthToDiag:
1739             return vertical_drop_rc_track_right_eighth_to_diag;
1740         case TrackElemType::LeftEighthToOrthogonal:
1741             return vertical_drop_rc_track_left_eighth_to_orthogonal;
1742         case TrackElemType::RightEighthToOrthogonal:
1743             return vertical_drop_rc_track_right_eighth_to_orthogonal;
1744         case TrackElemType::LeftEighthBankToDiag:
1745             return vertical_drop_rc_track_left_eighth_bank_to_diag;
1746         case TrackElemType::RightEighthBankToDiag:
1747             return vertical_drop_rc_track_right_eighth_bank_to_diag;
1748         case TrackElemType::LeftEighthBankToOrthogonal:
1749             return vertical_drop_rc_track_left_eighth_bank_to_orthogonal;
1750         case TrackElemType::RightEighthBankToOrthogonal:
1751             return vertical_drop_rc_track_right_eighth_bank_to_orthogonal;
1752         case TrackElemType::DiagFlat:
1753             return vertical_drop_rc_track_diag_flat;
1754         case TrackElemType::DiagUp25:
1755             return vertical_drop_rc_track_diag_25_deg_up;
1756         case TrackElemType::DiagUp60:
1757             return vertical_drop_rc_track_diag_60_deg_up;
1758         case TrackElemType::DiagFlatToUp25:
1759             return vertical_drop_rc_track_diag_flat_to_25_deg_up;
1760         case TrackElemType::DiagUp25ToUp60:
1761             return vertical_drop_rc_track_diag_25_deg_up_to_60_deg_up;
1762         case TrackElemType::DiagUp60ToUp25:
1763             return vertical_drop_rc_track_diag_60_deg_up_to_25_deg_up;
1764         case TrackElemType::DiagUp25ToFlat:
1765             return vertical_drop_rc_track_diag_25_deg_up_to_flat;
1766         case TrackElemType::DiagDown25:
1767             return vertical_drop_rc_track_diag_25_deg_down;
1768         case TrackElemType::DiagDown60:
1769             return vertical_drop_rc_track_diag_60_deg_down;
1770         case TrackElemType::DiagFlatToDown25:
1771             return vertical_drop_rc_track_diag_flat_to_25_deg_down;
1772         case TrackElemType::DiagDown25ToDown60:
1773             return vertical_drop_rc_track_diag_25_deg_down_to_60_deg_down;
1774         case TrackElemType::DiagDown60ToDown25:
1775             return vertical_drop_rc_track_diag_60_deg_down_to_25_deg_down;
1776         case TrackElemType::DiagDown25ToFlat:
1777             return vertical_drop_rc_track_diag_25_deg_down_to_flat;
1778         case TrackElemType::DiagFlatToLeftBank:
1779             return vertical_drop_rc_track_diag_flat_to_left_bank;
1780         case TrackElemType::DiagFlatToRightBank:
1781             return vertical_drop_rc_track_diag_flat_to_right_bank;
1782         case TrackElemType::DiagLeftBankToFlat:
1783             return vertical_drop_rc_track_diag_left_bank_to_flat;
1784         case TrackElemType::DiagRightBankToFlat:
1785             return vertical_drop_rc_track_diag_right_bank_to_flat;
1786         case TrackElemType::DiagLeftBankToUp25:
1787             return vertical_drop_rc_track_diag_left_bank_to_25_deg_up;
1788         case TrackElemType::DiagRightBankToUp25:
1789             return vertical_drop_rc_track_diag_right_bank_to_25_deg_up;
1790         case TrackElemType::DiagUp25ToLeftBank:
1791             return vertical_drop_rc_track_diag_25_deg_up_to_left_bank;
1792         case TrackElemType::DiagUp25ToRightBank:
1793             return vertical_drop_rc_track_diag_25_deg_up_to_right_bank;
1794         case TrackElemType::DiagLeftBankToDown25:
1795             return vertical_drop_rc_track_diag_left_bank_to_25_deg_down;
1796         case TrackElemType::DiagRightBankToDown25:
1797             return vertical_drop_rc_track_diag_right_bank_to_25_deg_down;
1798         case TrackElemType::DiagDown25ToLeftBank:
1799             return vertical_drop_rc_track_diag_25_deg_down_to_left_bank;
1800         case TrackElemType::DiagDown25ToRightBank:
1801             return vertical_drop_rc_track_diag_25_deg_down_to_right_bank;
1802         case TrackElemType::DiagLeftBank:
1803             return vertical_drop_rc_track_diag_left_bank;
1804         case TrackElemType::DiagRightBank:
1805             return vertical_drop_rc_track_diag_right_bank;
1806         case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25:
1807             return vertical_drop_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up;
1808         case TrackElemType::RightBankToRightQuarterTurn3TilesUp25:
1809             return vertical_drop_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up;
1810         case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank:
1811             return vertical_drop_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank;
1812         case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank:
1813             return vertical_drop_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank;
1814         case TrackElemType::BlockBrakes:
1815             return vertical_drop_rc_track_block_brakes;
1816         case TrackElemType::LeftBankedQuarterTurn3TileUp25:
1817             return vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_up;
1818         case TrackElemType::RightBankedQuarterTurn3TileUp25:
1819             return vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_up;
1820         case TrackElemType::LeftBankedQuarterTurn3TileDown25:
1821             return vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_down;
1822         case TrackElemType::RightBankedQuarterTurn3TileDown25:
1823             return vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_down;
1824         case TrackElemType::LeftBankedQuarterTurn5TileUp25:
1825             return vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_up;
1826         case TrackElemType::RightBankedQuarterTurn5TileUp25:
1827             return vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_up;
1828         case TrackElemType::LeftBankedQuarterTurn5TileDown25:
1829             return vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_down;
1830         case TrackElemType::RightBankedQuarterTurn5TileDown25:
1831             return vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_down;
1832         case TrackElemType::Up25ToLeftBankedUp25:
1833             return vertical_drop_rc_track_25_deg_up_to_left_banked_25_deg_up;
1834         case TrackElemType::Up25ToRightBankedUp25:
1835             return vertical_drop_rc_track_25_deg_up_to_right_banked_25_deg_up;
1836         case TrackElemType::LeftBankedUp25ToUp25:
1837             return vertical_drop_rc_track_left_banked_25_deg_up_to_25_deg_up;
1838         case TrackElemType::RightBankedUp25ToUp25:
1839             return vertical_drop_rc_track_right_banked_25_deg_up_to_25_deg_up;
1840         case TrackElemType::Down25ToLeftBankedDown25:
1841             return vertical_drop_rc_track_25_deg_down_to_left_banked_25_deg_down;
1842         case TrackElemType::Down25ToRightBankedDown25:
1843             return vertical_drop_rc_track_25_deg_down_to_right_banked_25_deg_down;
1844         case TrackElemType::LeftBankedDown25ToDown25:
1845             return vertical_drop_rc_track_left_banked_25_deg_down_to_25_deg_down;
1846         case TrackElemType::RightBankedDown25ToDown25:
1847             return vertical_drop_rc_track_right_banked_25_deg_down_to_25_deg_down;
1848         case TrackElemType::LeftBankedFlatToLeftBankedUp25:
1849             return vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_up;
1850         case TrackElemType::RightBankedFlatToRightBankedUp25:
1851             return vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_up;
1852         case TrackElemType::LeftBankedUp25ToLeftBankedFlat:
1853             return vertical_drop_rc_track_left_banked_25_deg_up_to_left_banked_flat;
1854         case TrackElemType::RightBankedUp25ToRightBankedFlat:
1855             return vertical_drop_rc_track_right_banked_25_deg_up_to_right_banked_flat;
1856         case TrackElemType::LeftBankedFlatToLeftBankedDown25:
1857             return vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_down;
1858         case TrackElemType::RightBankedFlatToRightBankedDown25:
1859             return vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_down;
1860         case TrackElemType::LeftBankedDown25ToLeftBankedFlat:
1861             return vertical_drop_rc_track_left_banked_25_deg_down_to_left_banked_flat;
1862         case TrackElemType::RightBankedDown25ToRightBankedFlat:
1863             return vertical_drop_rc_track_right_banked_25_deg_down_to_right_banked_flat;
1864         case TrackElemType::FlatToLeftBankedUp25:
1865             return vertical_drop_rc_track_flat_to_left_banked_25_deg_up;
1866         case TrackElemType::FlatToRightBankedUp25:
1867             return vertical_drop_rc_track_flat_to_right_banked_25_deg_up;
1868         case TrackElemType::LeftBankedUp25ToFlat:
1869             return vertical_drop_rc_track_left_banked_25_deg_up_to_flat;
1870         case TrackElemType::RightBankedUp25ToFlat:
1871             return vertical_drop_rc_track_right_banked_25_deg_up_to_flat;
1872         case TrackElemType::FlatToLeftBankedDown25:
1873             return vertical_drop_rc_track_flat_to_left_banked_25_deg_down;
1874         case TrackElemType::FlatToRightBankedDown25:
1875             return vertical_drop_rc_track_flat_to_right_banked_25_deg_down;
1876         case TrackElemType::LeftBankedDown25ToFlat:
1877             return vertical_drop_rc_track_left_banked_25_deg_down_to_flat;
1878         case TrackElemType::RightBankedDown25ToFlat:
1879             return vertical_drop_rc_track_right_banked_25_deg_down_to_flat;
1880         case TrackElemType::LeftQuarterTurn1TileUp90:
1881             return vertical_drop_rc_track_left_quarter_turn_1_90_deg_up;
1882         case TrackElemType::RightQuarterTurn1TileUp90:
1883             return vertical_drop_rc_track_right_quarter_turn_1_90_deg_up;
1884         case TrackElemType::LeftQuarterTurn1TileDown90:
1885             return vertical_drop_rc_track_left_quarter_turn_1_90_deg_down;
1886         case TrackElemType::RightQuarterTurn1TileDown90:
1887             return vertical_drop_rc_track_right_quarter_turn_1_90_deg_down;
1888         /* These track elements used to be specific to the vertical RC */
1889         case TrackElemType::FlatToUp60:
1890             return vertical_drop_rc_track_flat_to_60_deg_up;
1891         case TrackElemType::Up60ToFlat:
1892             return vertical_drop_rc_track_60_deg_up_to_flat;
1893         case TrackElemType::FlatToDown60:
1894             return vertical_drop_rc_track_flat_to_60_deg_down;
1895         case TrackElemType::Down60ToFlat:
1896             return vertical_drop_rc_track_60_deg_down_to_flat;
1897         case TrackElemType::BrakeForDrop:
1898             return vertical_drop_rc_track_brake_for_drop;
1899         case TrackElemType::DiagFlatToUp60:
1900             return vertical_drop_rc_track_diag_flat_to_60_deg_up;
1901         case TrackElemType::DiagUp60ToFlat:
1902             return vertical_drop_rc_track_diag_60_deg_up_to_flat;
1903         case TrackElemType::DiagFlatToDown60:
1904             return vertical_drop_rc_track_diag_flat_to_60_deg_down;
1905         case TrackElemType::DiagDown60ToFlat:
1906             return vertical_drop_rc_track_diag_60_deg_down_to_flat;
1907         /* These track elements used to be specific to the steel vertical_drop */
1908         case TrackElemType::HalfLoopUp:
1909             return vertical_drop_rc_track_half_loop_up;
1910         case TrackElemType::HalfLoopDown:
1911             return vertical_drop_rc_track_half_loop_down;
1912         case TrackElemType::LeftCorkscrewUp:
1913             return vertical_drop_rc_track_left_corkscrew_up;
1914         case TrackElemType::RightCorkscrewUp:
1915             return vertical_drop_rc_track_right_corkscrew_up;
1916         case TrackElemType::LeftCorkscrewDown:
1917             return vertical_drop_rc_track_left_corkscrew_down;
1918         case TrackElemType::RightCorkscrewDown:
1919             return vertical_drop_rc_track_right_corkscrew_down;
1920         case TrackElemType::FlatToUp60LongBase:
1921             return vertical_drop_rc_track_flat_to_60_deg_up_long_base;
1922         case TrackElemType::Up60ToFlatLongBase:
1923             return vertical_drop_rc_track_60_deg_up_to_flat_long_base;
1924         case TrackElemType::Down60ToFlatLongBase:
1925             return vertical_drop_rc_track_60_deg_down_to_flat_long_base;
1926         case TrackElemType::FlatToDown60LongBase:
1927             return vertical_drop_rc_track_flat_to_60_deg_down_long_base;
1928         case TrackElemType::LeftBarrelRollUpToDown:
1929             return vertical_drop_rc_track_left_barrel_roll_up_to_down;
1930         case TrackElemType::RightBarrelRollUpToDown:
1931             return vertical_drop_rc_track_right_barrel_roll_up_to_down;
1932         case TrackElemType::LeftBarrelRollDownToUp:
1933             return vertical_drop_rc_track_left_barrel_roll_down_to_up;
1934         case TrackElemType::RightBarrelRollDownToUp:
1935             return vertical_drop_rc_track_right_barrel_roll_down_to_up;
1936         case TrackElemType::PoweredLift:
1937             return vertical_drop_rc_track_powered_lift;
1938         case TrackElemType::LeftLargeHalfLoopUp:
1939             return vertical_drop_rc_track_left_large_half_loop_up;
1940         case TrackElemType::RightLargeHalfLoopUp:
1941             return vertical_drop_rc_track_right_large_half_loop_up;
1942         case TrackElemType::RightLargeHalfLoopDown:
1943             return vertical_drop_rc_track_right_large_half_loop_down;
1944         case TrackElemType::LeftLargeHalfLoopDown:
1945             return vertical_drop_rc_track_left_large_half_loop_down;
1946         case TrackElemType::Up90ToInvertedFlatQuarterLoop:
1947             return vertical_drop_rc_track_90_deg_to_inverted_flat_quarter_loop_up;
1948         case TrackElemType::InvertedFlatToDown90QuarterLoop:
1949             return vertical_drop_rc_track_inverted_flat_to_90_deg_quarter_loop_down;
1950 
1951         case TrackElemType::Booster:
1952             return vertical_drop_rc_track_booster;
1953     }
1954     return nullptr;
1955 }
1956