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