diff --git a/src/openrct2/libopenrct2.vcxproj b/src/openrct2/libopenrct2.vcxproj index bb520d2c20..f01b1a0b88 100644 --- a/src/openrct2/libopenrct2.vcxproj +++ b/src/openrct2/libopenrct2.vcxproj @@ -326,7 +326,7 @@ - + @@ -802,7 +802,6 @@ - @@ -828,8 +827,6 @@ - - @@ -944,4 +941,4 @@ - \ No newline at end of file + diff --git a/src/openrct2/paint/Supports.h b/src/openrct2/paint/Supports.h index 95c52baca3..d884aef591 100644 --- a/src/openrct2/paint/Supports.h +++ b/src/openrct2/paint/Supports.h @@ -33,7 +33,7 @@ bool path_b_supports_paint_setup( // There are 13 types of metal supports. A graphic showing all of them is available here: // https://cloud.githubusercontent.com/assets/737603/19420485/7eaba28e-93ec-11e6-83cb-03190accc094.png -enum +enum : uint8_t { METAL_SUPPORTS_TUBES, // Used by the steel twister, looping rc, and other rides METAL_SUPPORTS_FORK, // Used by the junior RC and other rides diff --git a/src/openrct2/ride/TrackPaint.h b/src/openrct2/ride/TrackPaint.h index 6c28ff0e73..583e88badf 100644 --- a/src/openrct2/ride/TrackPaint.h +++ b/src/openrct2/ride/TrackPaint.h @@ -435,7 +435,6 @@ TRACK_PAINT_FUNCTION get_track_paint_function_topspin(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_space_rings(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_reverse_freefall_rc(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_lift(int32_t trackType); -TRACK_PAINT_FUNCTION get_track_paint_function_vertical_drop_rc(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_shop(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_merry_go_round(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_facility(int32_t trackType); @@ -443,7 +442,6 @@ TRACK_PAINT_FUNCTION get_track_paint_function_twist(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_haunted_house(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_circus(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_ghost_train(int32_t trackType); -TRACK_PAINT_FUNCTION get_track_paint_function_twister_rc(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_side_friction_rc(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_wooden_rc(int32_t trackType); TRACK_PAINT_FUNCTION get_track_paint_function_wild_mouse(int32_t trackType); diff --git a/src/openrct2/ride/coaster/BolligerMabillardTrack.h b/src/openrct2/ride/coaster/BolligerMabillardTrack.h deleted file mode 100644 index 4f91d42271..0000000000 --- a/src/openrct2/ride/coaster/BolligerMabillardTrack.h +++ /dev/null @@ -1,559 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2014-2020 OpenRCT2 developers - * - * For a complete list of all authors, please refer to contributors.md - * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 - * - * OpenRCT2 is licensed under the GNU General Public License version 3. - *****************************************************************************/ - -#pragma once - -#include "../../common.h" -#include "../RideTypes.h" - -struct paint_session; -struct TrackElement; - -void bolliger_mabillard_track_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_station( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_60_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_flat_to_25_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_25_deg_up_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_60_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_flat_to_25_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_25_deg_down_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_flat_to_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_flat_to_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_banked_left_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_banked_right_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_s_bend_left( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_s_bend_right( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_vertical_loop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_vertical_loop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_quarter_turn_3( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_quarter_turn_3( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_quarter_turn_3_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_quarter_turn_3_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_up_left_banked( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_up_right_banked( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_on_ride_photo( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_down_left_banked( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_25_deg_down_right_banked( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_90_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_90_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_left_eighth_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_eighth_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_eighth_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_eighth_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_eighth_bank_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_eighth_bank_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_eighth_bank_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_eighth_bank_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_25_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_60_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_diag_25_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_60_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_diag_flat_to_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_flat_to_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_left_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_right_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_diag_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_diag_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_block_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); - -/* Previously specific to the Vertical RC */ -void bolliger_mabillard_track_flat_to_60_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_60_deg_up_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_flat_to_60_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_60_deg_down_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_brake_for_drop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); - -/* Previously specific to the Steel Twister */ -void bolliger_mabillard_track_half_loop_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_half_loop_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_corkscrew_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_corkscrew_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_corkscrew_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_corkscrew_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_60_deg_up_to_flat_long_base122( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_track_powered_lift( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_large_half_loop_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_large_half_loop_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_right_large_half_loop_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_track_left_large_half_loop_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); -void bolliger_mabillard_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, int32_t supportType); - -void bolliger_mabillard_track_booster( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType); diff --git a/src/openrct2/ride/coaster/BolligerMabillardTrack.cpp b/src/openrct2/ride/coaster/BolligerMabillardTrack.hpp similarity index 91% rename from src/openrct2/ride/coaster/BolligerMabillardTrack.cpp rename to src/openrct2/ride/coaster/BolligerMabillardTrack.hpp index 1f866445e7..b287c285a8 100644 --- a/src/openrct2/ride/coaster/BolligerMabillardTrack.cpp +++ b/src/openrct2/ride/coaster/BolligerMabillardTrack.hpp @@ -7,7 +7,7 @@ * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ -#include "BolligerMabillardTrack.h" +#pragma once #include "../../drawing/Drawing.h" #include "../../interface/Viewport.h" @@ -32,9 +32,10 @@ static constexpr const uint32_t _BolligerMabillardBlockBrakeImages[NumOrthogonal { BM_BLOCK_BRAKE_NW_SE_OPEN, BM_BLOCK_BRAKE_NW_SE_CLOSED }, }; -void bolliger_mabillard_track_flat( +template +static void bolliger_mabillard_track_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -77,9 +78,10 @@ void bolliger_mabillard_track_flat( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_station( +template +static void bolliger_mabillard_track_station( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { static constexpr const uint32_t imageIds[4][2] = { { 17154, SPR_STATION_BASE_A_SW_NE }, @@ -114,9 +116,10 @@ void bolliger_mabillard_track_station( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_25_deg_up( +template +static void bolliger_mabillard_track_25_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -183,9 +186,10 @@ void bolliger_mabillard_track_25_deg_up( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_60_deg_up( +template +static void bolliger_mabillard_track_60_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -252,9 +256,10 @@ void bolliger_mabillard_track_60_deg_up( paint_util_set_general_support_height(session, height + 104, 0x20); } -void bolliger_mabillard_track_flat_to_25_deg_up( +template +static void bolliger_mabillard_track_flat_to_25_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -321,9 +326,10 @@ void bolliger_mabillard_track_flat_to_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_25_deg_up_to_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -398,9 +404,10 @@ void bolliger_mabillard_track_25_deg_up_to_60_deg_up( paint_util_set_general_support_height(session, height + 72, 0x20); } -void bolliger_mabillard_track_60_deg_up_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -475,9 +482,10 @@ void bolliger_mabillard_track_60_deg_up_to_25_deg_up( paint_util_set_general_support_height(session, height + 72, 0x20); } -void bolliger_mabillard_track_25_deg_up_to_flat( +template +static void bolliger_mabillard_track_25_deg_up_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -544,55 +552,62 @@ void bolliger_mabillard_track_25_deg_up_to_flat( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_25_deg_down( +template +static void bolliger_mabillard_track_25_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_60_deg_down( +template +static void bolliger_mabillard_track_60_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_60_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_flat_to_25_deg_down( +template +static void bolliger_mabillard_track_flat_to_25_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_to_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_60_deg_up_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_60_deg_up_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_60_deg_down_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_60_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_60_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_to_flat( +template +static void bolliger_mabillard_track_25_deg_down_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_flat_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_flat_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_5( +template +static void bolliger_mabillard_track_left_quarter_turn_5( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -753,18 +768,20 @@ void bolliger_mabillard_track_left_quarter_turn_5( } } -void bolliger_mabillard_track_right_quarter_turn_5( +template +static void bolliger_mabillard_track_right_quarter_turn_5( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_left_quarter_turn_5( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_5( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_flat_to_left_bank( +template +static void bolliger_mabillard_track_flat_to_left_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -799,9 +816,10 @@ void bolliger_mabillard_track_flat_to_left_bank( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_flat_to_right_bank( +template +static void bolliger_mabillard_track_flat_to_right_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -836,9 +854,10 @@ void bolliger_mabillard_track_flat_to_right_bank( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_left_bank_to_flat( +template +static void bolliger_mabillard_track_left_bank_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -873,9 +892,10 @@ void bolliger_mabillard_track_left_bank_to_flat( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_right_bank_to_flat( +template +static void bolliger_mabillard_track_right_bank_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -910,9 +930,10 @@ void bolliger_mabillard_track_right_bank_to_flat( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_banked_left_quarter_turn_5( +template +static void bolliger_mabillard_track_banked_left_quarter_turn_5( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -1086,18 +1107,20 @@ void bolliger_mabillard_track_banked_left_quarter_turn_5( } } -void bolliger_mabillard_track_banked_right_quarter_turn_5( +template +static void bolliger_mabillard_track_banked_right_quarter_turn_5( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_banked_left_quarter_turn_5( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_banked_left_quarter_turn_5( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_bank_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -1139,9 +1162,10 @@ void bolliger_mabillard_track_left_bank_to_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_right_bank_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -1183,9 +1207,10 @@ void bolliger_mabillard_track_right_bank_to_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_25_deg_up_to_left_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -1227,9 +1252,10 @@ void bolliger_mabillard_track_25_deg_up_to_left_bank( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_25_deg_up_to_right_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -1271,41 +1297,46 @@ void bolliger_mabillard_track_25_deg_up_to_right_bank( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_left_bank_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_right_bank( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_right_bank( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_bank_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_left_bank( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_left_bank( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_to_left_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_bank_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_bank_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_to_right_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_bank_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_bank_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_bank( +template +static void bolliger_mabillard_track_left_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -1336,16 +1367,18 @@ void bolliger_mabillard_track_left_bank( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_right_bank( +template +static void bolliger_mabillard_track_right_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_bank(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -1506,9 +1539,10 @@ void bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( } } -void bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -1669,27 +1703,30 @@ void bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( } } -void bolliger_mabillard_track_left_quarter_turn_5_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_quarter_turn_5_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_s_bend_left( +template +static void bolliger_mabillard_track_s_bend_left( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -1817,9 +1854,10 @@ void bolliger_mabillard_track_s_bend_left( } } -void bolliger_mabillard_track_s_bend_right( +template +static void bolliger_mabillard_track_s_bend_right( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -1947,9 +1985,10 @@ void bolliger_mabillard_track_s_bend_right( } } -void bolliger_mabillard_track_left_vertical_loop( +template +static void bolliger_mabillard_track_left_vertical_loop( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2209,9 +2248,10 @@ void bolliger_mabillard_track_left_vertical_loop( } } -void bolliger_mabillard_track_right_vertical_loop( +template +static void bolliger_mabillard_track_right_vertical_loop( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2433,9 +2473,10 @@ void bolliger_mabillard_track_right_vertical_loop( track_paint_util_right_vertical_loop_segments(session, direction, trackSequence); } -void bolliger_mabillard_track_left_quarter_turn_3( +template +static void bolliger_mabillard_track_left_quarter_turn_3( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2535,18 +2576,20 @@ void bolliger_mabillard_track_left_quarter_turn_3( } } -void bolliger_mabillard_track_right_quarter_turn_3( +template +static void bolliger_mabillard_track_right_quarter_turn_3( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_left_quarter_turn_3( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_3( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_3_bank( +template +static void bolliger_mabillard_track_left_quarter_turn_3_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2655,18 +2698,20 @@ void bolliger_mabillard_track_left_quarter_turn_3_bank( } } -void bolliger_mabillard_track_right_quarter_turn_3_bank( +template +static void bolliger_mabillard_track_right_quarter_turn_3_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_left_quarter_turn_3_bank( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_3_bank( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2742,9 +2787,10 @@ void bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -2823,27 +2869,30 @@ void bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_left_quarter_turn_3_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_quarter_turn_3_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_half_banked_helix_up_small( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -3058,9 +3107,10 @@ void bolliger_mabillard_track_left_half_banked_helix_up_small( } } -void bolliger_mabillard_track_right_half_banked_helix_up_small( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -3275,9 +3325,10 @@ void bolliger_mabillard_track_right_half_banked_helix_up_small( } } -void bolliger_mabillard_track_left_half_banked_helix_down_small( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackSequence >= 4) { @@ -3285,13 +3336,14 @@ void bolliger_mabillard_track_left_half_banked_helix_down_small( direction = (direction - 1) & 3; } trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_right_half_banked_helix_up_small( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_half_banked_helix_up_small( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_half_banked_helix_down_small( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackSequence >= 4) { @@ -3299,13 +3351,14 @@ void bolliger_mabillard_track_right_half_banked_helix_down_small( direction = (direction + 1) & 3; } trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_left_half_banked_helix_up_small( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_half_banked_helix_up_small( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_half_banked_helix_up_large( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -3644,9 +3697,10 @@ void bolliger_mabillard_track_left_half_banked_helix_up_large( } } -void bolliger_mabillard_track_right_half_banked_helix_up_large( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -3991,9 +4045,10 @@ void bolliger_mabillard_track_right_half_banked_helix_up_large( } } -void bolliger_mabillard_track_left_half_banked_helix_down_large( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackSequence >= 7) { @@ -4001,13 +4056,14 @@ void bolliger_mabillard_track_left_half_banked_helix_down_large( direction = (direction - 1) & 3; } trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_right_half_banked_helix_up_large( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_half_banked_helix_up_large( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_half_banked_helix_down_large( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { if (trackSequence >= 7) { @@ -4015,13 +4071,14 @@ void bolliger_mabillard_track_right_half_banked_helix_down_large( direction = (direction + 1) & 3; } trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_left_half_banked_helix_up_large( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_half_banked_helix_up_large( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4055,9 +4112,10 @@ void bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( paint_util_set_general_support_height(session, height + 104, 0x20); } -void bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4091,25 +4149,28 @@ void bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( paint_util_set_general_support_height(session, height + 104, 0x20); } -void bolliger_mabillard_track_left_quarter_turn_1_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_quarter_turn_1_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_brakes( +template +static void bolliger_mabillard_track_brakes( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4134,9 +4195,10 @@ void bolliger_mabillard_track_brakes( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_25_deg_up_left_banked( +template +static void bolliger_mabillard_track_25_deg_up_left_banked( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4174,9 +4236,10 @@ void bolliger_mabillard_track_25_deg_up_left_banked( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_25_deg_up_right_banked( +template +static void bolliger_mabillard_track_25_deg_up_right_banked( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4214,9 +4277,10 @@ void bolliger_mabillard_track_25_deg_up_right_banked( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_on_ride_photo( +template +static void bolliger_mabillard_track_on_ride_photo( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4255,25 +4319,28 @@ void bolliger_mabillard_track_on_ride_photo( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_25_deg_down_left_banked( +template +static void bolliger_mabillard_track_25_deg_down_left_banked( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_right_banked( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_right_banked( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_right_banked( +template +static void bolliger_mabillard_track_25_deg_down_right_banked( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_left_banked( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_left_banked( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_90_deg_up( +template +static void bolliger_mabillard_track_90_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4311,16 +4378,18 @@ void bolliger_mabillard_track_90_deg_up( } } -void bolliger_mabillard_track_90_deg_down( +template +static void bolliger_mabillard_track_90_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_90_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_90_deg_up(session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_60_deg_up_to_90_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4360,17 +4429,19 @@ void bolliger_mabillard_track_60_deg_up_to_90_deg_up( } } -void bolliger_mabillard_track_90_deg_down_to_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_60_deg_up_to_90_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_60_deg_up_to_90_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_90_deg_up_to_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -4405,9 +4476,10 @@ void bolliger_mabillard_track_90_deg_up_to_60_deg_up( paint_util_set_general_support_height(session, height + 80, 0x20); } -void bolliger_mabillard_track_60_deg_down_to_90_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4448,9 +4520,10 @@ void bolliger_mabillard_track_60_deg_down_to_90_deg_down( } } -void bolliger_mabillard_track_left_eighth_to_diag( +template +static void bolliger_mabillard_track_left_eighth_to_diag( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4582,9 +4655,10 @@ void bolliger_mabillard_track_left_eighth_to_diag( } } -void bolliger_mabillard_track_right_eighth_to_diag( +template +static void bolliger_mabillard_track_right_eighth_to_diag( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4715,27 +4789,30 @@ void bolliger_mabillard_track_right_eighth_to_diag( } } -void bolliger_mabillard_track_left_eighth_to_orthogonal( +template +static void bolliger_mabillard_track_left_eighth_to_orthogonal( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - bolliger_mabillard_track_right_eighth_to_diag( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_eighth_to_diag( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_eighth_to_orthogonal( +template +static void bolliger_mabillard_track_right_eighth_to_orthogonal( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - bolliger_mabillard_track_left_eighth_to_diag( - session, ride, trackSequence, (direction + 3) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_eighth_to_diag( + session, ride, trackSequence, (direction + 3) & 3, height, trackElement); } -void bolliger_mabillard_track_left_eighth_bank_to_diag( +template +static void bolliger_mabillard_track_left_eighth_bank_to_diag( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -4870,9 +4947,10 @@ void bolliger_mabillard_track_left_eighth_bank_to_diag( } } -void bolliger_mabillard_track_right_eighth_bank_to_diag( +template +static void bolliger_mabillard_track_right_eighth_bank_to_diag( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5007,27 +5085,30 @@ void bolliger_mabillard_track_right_eighth_bank_to_diag( } } -void bolliger_mabillard_track_left_eighth_bank_to_orthogonal( +template +static void bolliger_mabillard_track_left_eighth_bank_to_orthogonal( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - bolliger_mabillard_track_right_eighth_bank_to_diag( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_eighth_bank_to_diag( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_eighth_bank_to_orthogonal( +template +static void bolliger_mabillard_track_right_eighth_bank_to_orthogonal( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftEighthTurnToOrthogonal[trackSequence]; - bolliger_mabillard_track_left_eighth_bank_to_diag( - session, ride, trackSequence, (direction + 3) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_eighth_bank_to_diag( + session, ride, trackSequence, (direction + 3) & 3, height, trackElement); } -void bolliger_mabillard_track_diag_flat( +template +static void bolliger_mabillard_track_diag_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5170,9 +5251,10 @@ void bolliger_mabillard_track_diag_flat( } } -void bolliger_mabillard_track_diag_25_deg_up( +template +static void bolliger_mabillard_track_diag_25_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5315,9 +5397,10 @@ void bolliger_mabillard_track_diag_25_deg_up( } } -void bolliger_mabillard_track_diag_60_deg_up( +template +static void bolliger_mabillard_track_diag_60_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5460,9 +5543,10 @@ void bolliger_mabillard_track_diag_60_deg_up( } } -void bolliger_mabillard_track_diag_flat_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5605,9 +5689,10 @@ void bolliger_mabillard_track_diag_flat_to_25_deg_up( } } -void bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5750,9 +5835,10 @@ void bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up( } } -void bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -5895,9 +5981,10 @@ void bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up( } } -void bolliger_mabillard_track_diag_25_deg_up_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6040,9 +6127,10 @@ void bolliger_mabillard_track_diag_25_deg_up_to_flat( } } -void bolliger_mabillard_track_diag_25_deg_down( +template +static void bolliger_mabillard_track_diag_25_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6185,9 +6273,10 @@ void bolliger_mabillard_track_diag_25_deg_down( } } -void bolliger_mabillard_track_diag_60_deg_down( +template +static void bolliger_mabillard_track_diag_60_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6330,9 +6419,10 @@ void bolliger_mabillard_track_diag_60_deg_down( } } -void bolliger_mabillard_track_diag_flat_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6473,9 +6563,10 @@ void bolliger_mabillard_track_diag_flat_to_25_deg_down( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6618,9 +6709,10 @@ void bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down( } } -void bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6763,9 +6855,10 @@ void bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down( } } -void bolliger_mabillard_track_diag_25_deg_down_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -6908,9 +7001,10 @@ void bolliger_mabillard_track_diag_25_deg_down_to_flat( } } -void bolliger_mabillard_track_diag_flat_to_60_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7053,9 +7147,10 @@ void bolliger_mabillard_track_diag_flat_to_60_deg_up( } } -void bolliger_mabillard_track_diag_60_deg_up_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7198,9 +7293,10 @@ void bolliger_mabillard_track_diag_60_deg_up_to_flat( } } -void bolliger_mabillard_track_diag_flat_to_60_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7343,9 +7439,10 @@ void bolliger_mabillard_track_diag_flat_to_60_deg_down( } } -void bolliger_mabillard_track_diag_60_deg_down_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7488,9 +7585,10 @@ void bolliger_mabillard_track_diag_60_deg_down_to_flat( } } -void bolliger_mabillard_track_diag_flat_to_left_bank( +template +static void bolliger_mabillard_track_diag_flat_to_left_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7562,9 +7660,10 @@ void bolliger_mabillard_track_diag_flat_to_left_bank( } } -void bolliger_mabillard_track_diag_flat_to_right_bank( +template +static void bolliger_mabillard_track_diag_flat_to_right_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7636,9 +7735,10 @@ void bolliger_mabillard_track_diag_flat_to_right_bank( } } -void bolliger_mabillard_track_diag_left_bank_to_flat( +template +static void bolliger_mabillard_track_diag_left_bank_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7710,9 +7810,10 @@ void bolliger_mabillard_track_diag_left_bank_to_flat( } } -void bolliger_mabillard_track_diag_right_bank_to_flat( +template +static void bolliger_mabillard_track_diag_right_bank_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7784,9 +7885,10 @@ void bolliger_mabillard_track_diag_right_bank_to_flat( } } -void bolliger_mabillard_track_diag_left_bank_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7858,9 +7960,10 @@ void bolliger_mabillard_track_diag_left_bank_to_25_deg_up( } } -void bolliger_mabillard_track_diag_right_bank_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -7932,9 +8035,10 @@ void bolliger_mabillard_track_diag_right_bank_to_25_deg_up( } } -void bolliger_mabillard_track_diag_25_deg_up_to_left_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8006,9 +8110,10 @@ void bolliger_mabillard_track_diag_25_deg_up_to_left_bank( } } -void bolliger_mabillard_track_diag_25_deg_up_to_right_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8080,9 +8185,10 @@ void bolliger_mabillard_track_diag_25_deg_up_to_right_bank( } } -void bolliger_mabillard_track_diag_left_bank_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8152,9 +8258,10 @@ void bolliger_mabillard_track_diag_left_bank_to_25_deg_down( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_diag_right_bank_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8224,9 +8331,10 @@ void bolliger_mabillard_track_diag_right_bank_to_25_deg_down( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_diag_25_deg_down_to_left_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8298,9 +8406,10 @@ void bolliger_mabillard_track_diag_25_deg_down_to_left_bank( } } -void bolliger_mabillard_track_diag_25_deg_down_to_right_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8372,9 +8481,10 @@ void bolliger_mabillard_track_diag_25_deg_down_to_right_bank( } } -void bolliger_mabillard_track_diag_left_bank( +template +static void bolliger_mabillard_track_diag_left_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8443,9 +8553,10 @@ void bolliger_mabillard_track_diag_left_bank( } } -void bolliger_mabillard_track_diag_right_bank( +template +static void bolliger_mabillard_track_diag_right_bank( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8514,9 +8625,10 @@ void bolliger_mabillard_track_diag_right_bank( } } -void bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8595,9 +8707,10 @@ void bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8679,9 +8792,10 @@ void bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8763,9 +8877,10 @@ void bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank( } } -void bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8844,9 +8959,10 @@ void bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank( } } -void bolliger_mabillard_track_block_brakes( +template +static void bolliger_mabillard_track_block_brakes( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { bool isClosed = trackElement.BlockBrakeClosed(); switch (direction) @@ -8876,9 +8992,10 @@ void bolliger_mabillard_track_block_brakes( paint_util_set_general_support_height(session, height + 32, 0x20); } -void bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -8957,9 +9074,10 @@ void bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -9041,27 +9159,30 @@ void bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( } } -void bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn3TilesToRightQuarterTurn3Tiles[trackSequence]; - bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -9228,9 +9349,10 @@ void bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( } } -void bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -9397,27 +9519,30 @@ void bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( } } -void bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { trackSequence = mapLeftQuarterTurn5TilesToRightQuarterTurn5Tiles[trackSequence]; - bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9457,9 +9582,10 @@ void bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9499,9 +9625,10 @@ void bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9541,9 +9668,10 @@ void bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9583,41 +9711,46 @@ void bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_25_deg_down_to_left_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_25_deg_down_to_right_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_banked_25_deg_down_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_25_deg_down_to_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9655,9 +9788,10 @@ void bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9695,9 +9829,10 @@ void bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9735,9 +9870,10 @@ void bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9775,41 +9911,46 @@ void bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_banked_25_deg_down_to_left_banked_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_25_deg_down_to_right_banked_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_flat_to_left_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9849,9 +9990,10 @@ void bolliger_mabillard_track_flat_to_left_banked_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_flat_to_right_banked_25_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9891,9 +10033,10 @@ void bolliger_mabillard_track_flat_to_right_banked_25_deg_up( paint_util_set_general_support_height(session, height + 48, 0x20); } -void bolliger_mabillard_track_left_banked_25_deg_up_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9933,9 +10076,10 @@ void bolliger_mabillard_track_left_banked_25_deg_up_to_flat( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_right_banked_25_deg_up_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -9975,41 +10119,46 @@ void bolliger_mabillard_track_right_banked_25_deg_up_to_flat( paint_util_set_general_support_height(session, height + 40, 0x20); } -void bolliger_mabillard_track_flat_to_left_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_banked_25_deg_up_to_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_banked_25_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_flat_to_right_banked_25_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_banked_25_deg_up_to_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_banked_25_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_banked_25_deg_down_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_flat_to_right_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_banked_25_deg_down_to_flat( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_flat_to_left_banked_25_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10053,9 +10202,10 @@ void bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( } } -void bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10099,26 +10249,29 @@ void bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( } } -void bolliger_mabillard_track_left_quarter_turn_1_90_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( - session, ride, trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( + session, ride, trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_quarter_turn_1_90_deg_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( - session, ride, trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( + session, ride, trackSequence, (direction - 1) & 3, height, trackElement); } /* The following track elements used to be specific to the Vertical Roller Coaster */ -void bolliger_mabillard_track_flat_to_60_deg_up( +template +static void bolliger_mabillard_track_flat_to_60_deg_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -10191,9 +10344,10 @@ void bolliger_mabillard_track_flat_to_60_deg_up( paint_util_set_general_support_height(session, height + 64, 0x20); } -void bolliger_mabillard_track_60_deg_up_to_flat( +template +static void bolliger_mabillard_track_60_deg_up_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { if (trackElement.HasChain()) { @@ -10266,25 +10420,28 @@ void bolliger_mabillard_track_60_deg_up_to_flat( paint_util_set_general_support_height(session, height + 72, 0x20); } -void bolliger_mabillard_track_flat_to_60_deg_down( +template +static void bolliger_mabillard_track_flat_to_60_deg_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_60_deg_up_to_flat( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_60_deg_up_to_flat( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_60_deg_down_to_flat( +template +static void bolliger_mabillard_track_60_deg_down_to_flat( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_flat_to_60_deg_up( - session, ride, trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_flat_to_60_deg_up( + session, ride, trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_brake_for_drop( +template +static void bolliger_mabillard_track_brake_for_drop( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -10324,9 +10481,10 @@ void bolliger_mabillard_track_brake_for_drop( } /* The following track elements used to be specific to the Steel Twister */ -void bolliger_mabillard_track_half_loop_up( +template +static void bolliger_mabillard_track_half_loop_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10448,16 +10606,18 @@ void bolliger_mabillard_track_half_loop_up( } } -void bolliger_mabillard_track_half_loop_down( +template +static void bolliger_mabillard_track_half_loop_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_half_loop_up(session, ride, 3 - trackSequence, direction, height, trackElement, supportType); + bolliger_mabillard_track_half_loop_up(session, ride, 3 - trackSequence, direction, height, trackElement); } -void bolliger_mabillard_track_left_corkscrew_up( +template +static void bolliger_mabillard_track_left_corkscrew_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10565,9 +10725,10 @@ void bolliger_mabillard_track_left_corkscrew_up( } } -void bolliger_mabillard_track_right_corkscrew_up( +template +static void bolliger_mabillard_track_right_corkscrew_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10676,25 +10837,28 @@ void bolliger_mabillard_track_right_corkscrew_up( } } -void bolliger_mabillard_track_left_corkscrew_down( +template +static void bolliger_mabillard_track_left_corkscrew_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_corkscrew_up( - session, ride, 2 - trackSequence, (direction + 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_corkscrew_up( + session, ride, 2 - trackSequence, (direction + 1) & 3, height, trackElement); } -void bolliger_mabillard_track_right_corkscrew_down( +template +static void bolliger_mabillard_track_right_corkscrew_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_corkscrew_up( - session, ride, 2 - trackSequence, (direction - 1) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_corkscrew_up( + session, ride, 2 - trackSequence, (direction - 1) & 3, height, trackElement); } -void bolliger_mabillard_track_flat_to_60_deg_up_long_base( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10829,9 +10993,10 @@ void bolliger_mabillard_track_flat_to_60_deg_up_long_base( } /** rct2: 0x008AC104 */ -void bolliger_mabillard_track_60_deg_up_to_flat_long_base( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -10965,25 +11130,28 @@ void bolliger_mabillard_track_60_deg_up_to_flat_long_base( } } -void bolliger_mabillard_track_flat_to_60_deg_down_long_base( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_flat_to_60_deg_up_long_base( - session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_flat_to_60_deg_up_long_base( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_60_deg_up_to_flat_long_base122( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_60_deg_up_to_flat_long_base( - session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_60_deg_up_to_flat_long_base( + session, ride, 3 - trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_left_barrel_roll_up_to_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -11120,9 +11288,10 @@ void bolliger_mabillard_track_left_barrel_roll_up_to_down( } } -void bolliger_mabillard_track_right_barrel_roll_up_to_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -11259,25 +11428,28 @@ void bolliger_mabillard_track_right_barrel_roll_up_to_down( } } -void bolliger_mabillard_track_left_barrel_roll_down_to_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_barrel_roll_up_to_down( - session, ride, 2 - trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_left_barrel_roll_up_to_down( + session, ride, 2 - trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_right_barrel_roll_down_to_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_barrel_roll_up_to_down( - session, ride, 2 - trackSequence, (direction + 2) & 3, height, trackElement, supportType); + bolliger_mabillard_track_right_barrel_roll_up_to_down( + session, ride, 2 - trackSequence, (direction + 2) & 3, height, trackElement); } -void bolliger_mabillard_track_powered_lift( +template +static void bolliger_mabillard_track_powered_lift( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (direction) { @@ -11312,9 +11484,10 @@ void bolliger_mabillard_track_powered_lift( paint_util_set_general_support_height(session, height + 56, 0x20); } -void bolliger_mabillard_track_left_large_half_loop_up( +template +static void bolliger_mabillard_track_left_large_half_loop_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -11532,9 +11705,10 @@ void bolliger_mabillard_track_left_large_half_loop_up( } } -void bolliger_mabillard_track_right_large_half_loop_up( +template +static void bolliger_mabillard_track_right_large_half_loop_up( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -11752,25 +11926,28 @@ void bolliger_mabillard_track_right_large_half_loop_up( } } -void bolliger_mabillard_track_right_large_half_loop_down( +template +static void bolliger_mabillard_track_right_large_half_loop_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_right_large_half_loop_up( - session, ride, 6 - trackSequence, direction, height, trackElement, supportType); + bolliger_mabillard_track_right_large_half_loop_up( + session, ride, 6 - trackSequence, direction, height, trackElement); } -void bolliger_mabillard_track_left_large_half_loop_down( +template +static void bolliger_mabillard_track_left_large_half_loop_down( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_left_large_half_loop_up( - session, ride, 6 - trackSequence, direction, height, trackElement, supportType); + bolliger_mabillard_track_left_large_half_loop_up( + session, ride, 6 - trackSequence, direction, height, trackElement); } -void bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { switch (trackSequence) { @@ -11865,17 +12042,19 @@ void bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( } } -void bolliger_mabillard_track_inverted_flat_to_90_deg_quarter_loop_down( +template +static void bolliger_mabillard_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, int32_t supportType) + const TrackElement& trackElement) { - bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( - session, ride, 2 - trackSequence, direction, height, trackElement, supportType); + bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( + session, ride, 2 - trackSequence, direction, height, trackElement); } +template void bolliger_mabillard_track_booster( paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement, int32_t supportType) + const TrackElement& trackElement) { // These offsets could be moved to the g2.dat file when that supports offsets. int8_t ne_sw_offsetX = 8; @@ -11907,3 +12086,374 @@ void bolliger_mabillard_track_booster( session, paint_util_rotate_segments(SEGMENT_C4 | SEGMENT_CC | SEGMENT_D0, direction), 0xFFFF, 0); paint_util_set_general_support_height(session, height + 32, 0x20); } + +template TRACK_PAINT_FUNCTION get_track_paint_function_bolliger_mabillard(int32_t trackType) +{ + switch (trackType) + { + case TrackElemType::Flat: + return bolliger_mabillard_track_flat; + case TrackElemType::EndStation: + case TrackElemType::BeginStation: + case TrackElemType::MiddleStation: + return bolliger_mabillard_track_station; + case TrackElemType::Up25: + return bolliger_mabillard_track_25_deg_up; + case TrackElemType::Up60: + return bolliger_mabillard_track_60_deg_up; + case TrackElemType::FlatToUp25: + return bolliger_mabillard_track_flat_to_25_deg_up; + case TrackElemType::Up25ToUp60: + return bolliger_mabillard_track_25_deg_up_to_60_deg_up; + case TrackElemType::Up60ToUp25: + return bolliger_mabillard_track_60_deg_up_to_25_deg_up; + case TrackElemType::Up25ToFlat: + return bolliger_mabillard_track_25_deg_up_to_flat; + case TrackElemType::Down25: + return bolliger_mabillard_track_25_deg_down; + case TrackElemType::Down60: + return bolliger_mabillard_track_60_deg_down; + case TrackElemType::FlatToDown25: + return bolliger_mabillard_track_flat_to_25_deg_down; + case TrackElemType::Down25ToDown60: + return bolliger_mabillard_track_25_deg_down_to_60_deg_down; + case TrackElemType::Down60ToDown25: + return bolliger_mabillard_track_60_deg_down_to_25_deg_down; + case TrackElemType::Down25ToFlat: + return bolliger_mabillard_track_25_deg_down_to_flat; + case TrackElemType::LeftQuarterTurn5Tiles: + return bolliger_mabillard_track_left_quarter_turn_5; + case TrackElemType::RightQuarterTurn5Tiles: + return bolliger_mabillard_track_right_quarter_turn_5; + case TrackElemType::FlatToLeftBank: + return bolliger_mabillard_track_flat_to_left_bank; + case TrackElemType::FlatToRightBank: + return bolliger_mabillard_track_flat_to_right_bank; + case TrackElemType::LeftBankToFlat: + return bolliger_mabillard_track_left_bank_to_flat; + case TrackElemType::RightBankToFlat: + return bolliger_mabillard_track_right_bank_to_flat; + case TrackElemType::BankedLeftQuarterTurn5Tiles: + return bolliger_mabillard_track_banked_left_quarter_turn_5; + case TrackElemType::BankedRightQuarterTurn5Tiles: + return bolliger_mabillard_track_banked_right_quarter_turn_5; + case TrackElemType::LeftBankToUp25: + return bolliger_mabillard_track_left_bank_to_25_deg_up; + case TrackElemType::RightBankToUp25: + return bolliger_mabillard_track_right_bank_to_25_deg_up; + case TrackElemType::Up25ToLeftBank: + return bolliger_mabillard_track_25_deg_up_to_left_bank; + case TrackElemType::Up25ToRightBank: + return bolliger_mabillard_track_25_deg_up_to_right_bank; + case TrackElemType::LeftBankToDown25: + return bolliger_mabillard_track_left_bank_to_25_deg_down; + case TrackElemType::RightBankToDown25: + return bolliger_mabillard_track_right_bank_to_25_deg_down; + case TrackElemType::Down25ToLeftBank: + return bolliger_mabillard_track_25_deg_down_to_left_bank; + case TrackElemType::Down25ToRightBank: + return bolliger_mabillard_track_25_deg_down_to_right_bank; + case TrackElemType::LeftBank: + return bolliger_mabillard_track_left_bank; + case TrackElemType::RightBank: + return bolliger_mabillard_track_right_bank; + case TrackElemType::LeftQuarterTurn5TilesUp25: + return bolliger_mabillard_track_left_quarter_turn_5_25_deg_up; + case TrackElemType::RightQuarterTurn5TilesUp25: + return bolliger_mabillard_track_right_quarter_turn_5_25_deg_up; + case TrackElemType::LeftQuarterTurn5TilesDown25: + return bolliger_mabillard_track_left_quarter_turn_5_25_deg_down; + case TrackElemType::RightQuarterTurn5TilesDown25: + return bolliger_mabillard_track_right_quarter_turn_5_25_deg_down; + case TrackElemType::SBendLeft: + return bolliger_mabillard_track_s_bend_left; + case TrackElemType::SBendRight: + return bolliger_mabillard_track_s_bend_right; + case TrackElemType::LeftVerticalLoop: + return bolliger_mabillard_track_left_vertical_loop; + case TrackElemType::RightVerticalLoop: + return bolliger_mabillard_track_right_vertical_loop; + case TrackElemType::LeftQuarterTurn3Tiles: + return bolliger_mabillard_track_left_quarter_turn_3; + case TrackElemType::RightQuarterTurn3Tiles: + return bolliger_mabillard_track_right_quarter_turn_3; + case TrackElemType::LeftBankedQuarterTurn3Tiles: + return bolliger_mabillard_track_left_quarter_turn_3_bank; + case TrackElemType::RightBankedQuarterTurn3Tiles: + return bolliger_mabillard_track_right_quarter_turn_3_bank; + case TrackElemType::LeftQuarterTurn3TilesUp25: + return bolliger_mabillard_track_left_quarter_turn_3_25_deg_up; + case TrackElemType::RightQuarterTurn3TilesUp25: + return bolliger_mabillard_track_right_quarter_turn_3_25_deg_up; + case TrackElemType::LeftQuarterTurn3TilesDown25: + return bolliger_mabillard_track_left_quarter_turn_3_25_deg_down; + case TrackElemType::RightQuarterTurn3TilesDown25: + return bolliger_mabillard_track_right_quarter_turn_3_25_deg_down; + case TrackElemType::LeftHalfBankedHelixUpSmall: + return bolliger_mabillard_track_left_half_banked_helix_up_small; + case TrackElemType::RightHalfBankedHelixUpSmall: + return bolliger_mabillard_track_right_half_banked_helix_up_small; + case TrackElemType::LeftHalfBankedHelixDownSmall: + return bolliger_mabillard_track_left_half_banked_helix_down_small; + case TrackElemType::RightHalfBankedHelixDownSmall: + return bolliger_mabillard_track_right_half_banked_helix_down_small; + case TrackElemType::LeftHalfBankedHelixUpLarge: + return bolliger_mabillard_track_left_half_banked_helix_up_large; + case TrackElemType::RightHalfBankedHelixUpLarge: + return bolliger_mabillard_track_right_half_banked_helix_up_large; + case TrackElemType::LeftHalfBankedHelixDownLarge: + return bolliger_mabillard_track_left_half_banked_helix_down_large; + case TrackElemType::RightHalfBankedHelixDownLarge: + return bolliger_mabillard_track_right_half_banked_helix_down_large; + case TrackElemType::LeftQuarterTurn1TileUp60: + return bolliger_mabillard_track_left_quarter_turn_1_60_deg_up; + case TrackElemType::RightQuarterTurn1TileUp60: + return bolliger_mabillard_track_right_quarter_turn_1_60_deg_up; + case TrackElemType::LeftQuarterTurn1TileDown60: + return bolliger_mabillard_track_left_quarter_turn_1_60_deg_down; + case TrackElemType::RightQuarterTurn1TileDown60: + return bolliger_mabillard_track_right_quarter_turn_1_60_deg_down; + case TrackElemType::Brakes: + return bolliger_mabillard_track_brakes; + case TrackElemType::Up25LeftBanked: + return bolliger_mabillard_track_25_deg_up_left_banked; + case TrackElemType::Up25RightBanked: + return bolliger_mabillard_track_25_deg_up_right_banked; + case TrackElemType::OnRidePhoto: + return bolliger_mabillard_track_on_ride_photo; + case TrackElemType::Down25LeftBanked: + return bolliger_mabillard_track_25_deg_down_left_banked; + case TrackElemType::Down25RightBanked: + return bolliger_mabillard_track_25_deg_down_right_banked; + case TrackElemType::Up90: + return bolliger_mabillard_track_90_deg_up; + case TrackElemType::Down90: + return bolliger_mabillard_track_90_deg_down; + case TrackElemType::Up60ToUp90: + return bolliger_mabillard_track_60_deg_up_to_90_deg_up; + case TrackElemType::Down90ToDown60: + return bolliger_mabillard_track_90_deg_down_to_60_deg_down; + case TrackElemType::Up90ToUp60: + return bolliger_mabillard_track_90_deg_up_to_60_deg_up; + case TrackElemType::Down60ToDown90: + return bolliger_mabillard_track_60_deg_down_to_90_deg_down; + case TrackElemType::LeftEighthToDiag: + return bolliger_mabillard_track_left_eighth_to_diag; + case TrackElemType::RightEighthToDiag: + return bolliger_mabillard_track_right_eighth_to_diag; + case TrackElemType::LeftEighthToOrthogonal: + return bolliger_mabillard_track_left_eighth_to_orthogonal; + case TrackElemType::RightEighthToOrthogonal: + return bolliger_mabillard_track_right_eighth_to_orthogonal; + case TrackElemType::LeftEighthBankToDiag: + return bolliger_mabillard_track_left_eighth_bank_to_diag; + case TrackElemType::RightEighthBankToDiag: + return bolliger_mabillard_track_right_eighth_bank_to_diag; + case TrackElemType::LeftEighthBankToOrthogonal: + return bolliger_mabillard_track_left_eighth_bank_to_orthogonal; + case TrackElemType::RightEighthBankToOrthogonal: + return bolliger_mabillard_track_right_eighth_bank_to_orthogonal; + case TrackElemType::DiagFlat: + return bolliger_mabillard_track_diag_flat; + case TrackElemType::DiagUp25: + return bolliger_mabillard_track_diag_25_deg_up; + case TrackElemType::DiagUp60: + return bolliger_mabillard_track_diag_60_deg_up; + case TrackElemType::DiagFlatToUp25: + return bolliger_mabillard_track_diag_flat_to_25_deg_up; + case TrackElemType::DiagUp25ToUp60: + return bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up; + case TrackElemType::DiagUp60ToUp25: + return bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up; + case TrackElemType::DiagUp25ToFlat: + return bolliger_mabillard_track_diag_25_deg_up_to_flat; + case TrackElemType::DiagDown25: + return bolliger_mabillard_track_diag_25_deg_down; + case TrackElemType::DiagDown60: + return bolliger_mabillard_track_diag_60_deg_down; + case TrackElemType::DiagFlatToDown25: + return bolliger_mabillard_track_diag_flat_to_25_deg_down; + case TrackElemType::DiagDown25ToDown60: + return bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down; + case TrackElemType::DiagDown60ToDown25: + return bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down; + case TrackElemType::DiagDown25ToFlat: + return bolliger_mabillard_track_diag_25_deg_down_to_flat; + case TrackElemType::DiagFlatToLeftBank: + return bolliger_mabillard_track_diag_flat_to_left_bank; + case TrackElemType::DiagFlatToRightBank: + return bolliger_mabillard_track_diag_flat_to_right_bank; + case TrackElemType::DiagLeftBankToFlat: + return bolliger_mabillard_track_diag_left_bank_to_flat; + case TrackElemType::DiagRightBankToFlat: + return bolliger_mabillard_track_diag_right_bank_to_flat; + case TrackElemType::DiagLeftBankToUp25: + return bolliger_mabillard_track_diag_left_bank_to_25_deg_up; + case TrackElemType::DiagRightBankToUp25: + return bolliger_mabillard_track_diag_right_bank_to_25_deg_up; + case TrackElemType::DiagUp25ToLeftBank: + return bolliger_mabillard_track_diag_25_deg_up_to_left_bank; + case TrackElemType::DiagUp25ToRightBank: + return bolliger_mabillard_track_diag_25_deg_up_to_right_bank; + case TrackElemType::DiagLeftBankToDown25: + return bolliger_mabillard_track_diag_left_bank_to_25_deg_down; + case TrackElemType::DiagRightBankToDown25: + return bolliger_mabillard_track_diag_right_bank_to_25_deg_down; + case TrackElemType::DiagDown25ToLeftBank: + return bolliger_mabillard_track_diag_25_deg_down_to_left_bank; + case TrackElemType::DiagDown25ToRightBank: + return bolliger_mabillard_track_diag_25_deg_down_to_right_bank; + case TrackElemType::DiagLeftBank: + return bolliger_mabillard_track_diag_left_bank; + case TrackElemType::DiagRightBank: + return bolliger_mabillard_track_diag_right_bank; + case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25: + return bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up; + case TrackElemType::RightBankToRightQuarterTurn3TilesUp25: + return bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up; + case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank: + return bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank; + case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank: + return bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank; + case TrackElemType::BlockBrakes: + return bolliger_mabillard_track_block_brakes; + case TrackElemType::LeftBankedQuarterTurn3TileUp25: + return bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up; + case TrackElemType::RightBankedQuarterTurn3TileUp25: + return bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up; + case TrackElemType::LeftBankedQuarterTurn3TileDown25: + return bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_down; + case TrackElemType::RightBankedQuarterTurn3TileDown25: + return bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_down; + case TrackElemType::LeftBankedQuarterTurn5TileUp25: + return bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up; + case TrackElemType::RightBankedQuarterTurn5TileUp25: + return bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up; + case TrackElemType::LeftBankedQuarterTurn5TileDown25: + return bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_down; + case TrackElemType::RightBankedQuarterTurn5TileDown25: + return bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_down; + case TrackElemType::Up25ToLeftBankedUp25: + return bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up; + case TrackElemType::Up25ToRightBankedUp25: + return bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up; + case TrackElemType::LeftBankedUp25ToUp25: + return bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up; + case TrackElemType::RightBankedUp25ToUp25: + return bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up; + case TrackElemType::Down25ToLeftBankedDown25: + return bolliger_mabillard_track_25_deg_down_to_left_banked_25_deg_down; + case TrackElemType::Down25ToRightBankedDown25: + return bolliger_mabillard_track_25_deg_down_to_right_banked_25_deg_down; + case TrackElemType::LeftBankedDown25ToDown25: + return bolliger_mabillard_track_left_banked_25_deg_down_to_25_deg_down; + case TrackElemType::RightBankedDown25ToDown25: + return bolliger_mabillard_track_right_banked_25_deg_down_to_25_deg_down; + case TrackElemType::LeftBankedFlatToLeftBankedUp25: + return bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up; + case TrackElemType::RightBankedFlatToRightBankedUp25: + return bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up; + case TrackElemType::LeftBankedUp25ToLeftBankedFlat: + return bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat; + case TrackElemType::RightBankedUp25ToRightBankedFlat: + return bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat; + case TrackElemType::LeftBankedFlatToLeftBankedDown25: + return bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_down; + case TrackElemType::RightBankedFlatToRightBankedDown25: + return bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_down; + case TrackElemType::LeftBankedDown25ToLeftBankedFlat: + return bolliger_mabillard_track_left_banked_25_deg_down_to_left_banked_flat; + case TrackElemType::RightBankedDown25ToRightBankedFlat: + return bolliger_mabillard_track_right_banked_25_deg_down_to_right_banked_flat; + case TrackElemType::FlatToLeftBankedUp25: + return bolliger_mabillard_track_flat_to_left_banked_25_deg_up; + case TrackElemType::FlatToRightBankedUp25: + return bolliger_mabillard_track_flat_to_right_banked_25_deg_up; + case TrackElemType::LeftBankedUp25ToFlat: + return bolliger_mabillard_track_left_banked_25_deg_up_to_flat; + case TrackElemType::RightBankedUp25ToFlat: + return bolliger_mabillard_track_right_banked_25_deg_up_to_flat; + case TrackElemType::FlatToLeftBankedDown25: + return bolliger_mabillard_track_flat_to_left_banked_25_deg_down; + case TrackElemType::FlatToRightBankedDown25: + return bolliger_mabillard_track_flat_to_right_banked_25_deg_down; + case TrackElemType::LeftBankedDown25ToFlat: + return bolliger_mabillard_track_left_banked_25_deg_down_to_flat; + case TrackElemType::RightBankedDown25ToFlat: + return bolliger_mabillard_track_right_banked_25_deg_down_to_flat; + case TrackElemType::LeftQuarterTurn1TileUp90: + return bolliger_mabillard_track_left_quarter_turn_1_90_deg_up; + case TrackElemType::RightQuarterTurn1TileUp90: + return bolliger_mabillard_track_right_quarter_turn_1_90_deg_up; + case TrackElemType::LeftQuarterTurn1TileDown90: + return bolliger_mabillard_track_left_quarter_turn_1_90_deg_down; + case TrackElemType::RightQuarterTurn1TileDown90: + return bolliger_mabillard_track_right_quarter_turn_1_90_deg_down; + /* The following track elements used to be specific to the vertical RC */ + case TrackElemType::FlatToUp60: + return bolliger_mabillard_track_flat_to_60_deg_up; + case TrackElemType::Up60ToFlat: + return bolliger_mabillard_track_60_deg_up_to_flat; + case TrackElemType::FlatToDown60: + return bolliger_mabillard_track_flat_to_60_deg_down; + case TrackElemType::Down60ToFlat: + return bolliger_mabillard_track_60_deg_down_to_flat; + case TrackElemType::BrakeForDrop: + return bolliger_mabillard_track_brake_for_drop; + case TrackElemType::DiagFlatToUp60: + return bolliger_mabillard_track_diag_flat_to_60_deg_up; + case TrackElemType::DiagUp60ToFlat: + return bolliger_mabillard_track_diag_60_deg_up_to_flat; + case TrackElemType::DiagFlatToDown60: + return bolliger_mabillard_track_diag_flat_to_60_deg_down; + case TrackElemType::DiagDown60ToFlat: + return bolliger_mabillard_track_diag_60_deg_down_to_flat; + /* The following track elements used to be specific to the Twister RC */ + case TrackElemType::HalfLoopUp: + return bolliger_mabillard_track_half_loop_up; + case TrackElemType::HalfLoopDown: + return bolliger_mabillard_track_half_loop_down; + case TrackElemType::LeftCorkscrewUp: + return bolliger_mabillard_track_left_corkscrew_up; + case TrackElemType::RightCorkscrewUp: + return bolliger_mabillard_track_right_corkscrew_up; + case TrackElemType::LeftCorkscrewDown: + return bolliger_mabillard_track_left_corkscrew_down; + case TrackElemType::RightCorkscrewDown: + return bolliger_mabillard_track_right_corkscrew_down; + case TrackElemType::FlatToUp60LongBase: + return bolliger_mabillard_track_flat_to_60_deg_up_long_base; + case TrackElemType::Up60ToFlatLongBase: + return bolliger_mabillard_track_60_deg_up_to_flat_long_base; + case TrackElemType::Down60ToFlatLongBase: + return bolliger_mabillard_track_60_deg_down_to_flat_long_base; + case TrackElemType::FlatToDown60LongBase: + return bolliger_mabillard_track_flat_to_60_deg_down_long_base; + case TrackElemType::LeftBarrelRollUpToDown: + return bolliger_mabillard_track_left_barrel_roll_up_to_down; + case TrackElemType::RightBarrelRollUpToDown: + return bolliger_mabillard_track_right_barrel_roll_up_to_down; + case TrackElemType::LeftBarrelRollDownToUp: + return bolliger_mabillard_track_left_barrel_roll_down_to_up; + case TrackElemType::RightBarrelRollDownToUp: + return bolliger_mabillard_track_right_barrel_roll_down_to_up; + case TrackElemType::PoweredLift: + return bolliger_mabillard_track_powered_lift; + case TrackElemType::LeftLargeHalfLoopUp: + return bolliger_mabillard_track_left_large_half_loop_up; + case TrackElemType::RightLargeHalfLoopUp: + return bolliger_mabillard_track_right_large_half_loop_up; + case TrackElemType::RightLargeHalfLoopDown: + return bolliger_mabillard_track_right_large_half_loop_down; + case TrackElemType::LeftLargeHalfLoopDown: + return bolliger_mabillard_track_left_large_half_loop_down; + case TrackElemType::Up90ToInvertedFlatQuarterLoop: + return bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up; + case TrackElemType::InvertedFlatToDown90QuarterLoop: + return bolliger_mabillard_track_inverted_flat_to_90_deg_quarter_loop_down; + + case TrackElemType::Booster: + return bolliger_mabillard_track_booster; + } + return nullptr; +} diff --git a/src/openrct2/ride/coaster/FlyingRollerCoaster.cpp b/src/openrct2/ride/coaster/FlyingRollerCoaster.cpp index 4beab24b3c..04e8854061 100644 --- a/src/openrct2/ride/coaster/FlyingRollerCoaster.cpp +++ b/src/openrct2/ride/coaster/FlyingRollerCoaster.cpp @@ -17,7 +17,7 @@ #include "../RideData.h" #include "../TrackData.h" #include "../TrackPaint.h" -#include "BolligerMabillardTrack.h" +#include "BolligerMabillardTrack.hpp" /** rct2: 0x007C6FF4 */ static void flying_rc_track_flat( @@ -6320,8 +6320,8 @@ static void flying_rc_track_booster( { if (!trackElement.IsInverted()) { - bolliger_mabillard_track_booster( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES_INVERTED); + bolliger_mabillard_track_booster( + session, ride, trackSequence, direction, height, trackElement); } else { diff --git a/src/openrct2/ride/coaster/TwisterRollerCoaster.cpp b/src/openrct2/ride/coaster/TwisterRollerCoaster.cpp deleted file mode 100644 index e3a9e51577..0000000000 --- a/src/openrct2/ride/coaster/TwisterRollerCoaster.cpp +++ /dev/null @@ -1,1975 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2014-2020 OpenRCT2 developers - * - * For a complete list of all authors, please refer to contributors.md - * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 - * - * OpenRCT2 is licensed under the GNU General Public License version 3. - *****************************************************************************/ - -#include "../../drawing/Drawing.h" -#include "../../interface/Viewport.h" -#include "../../paint/Paint.h" -#include "../../paint/Supports.h" -#include "../../paint/tile_element/Paint.TileElement.h" -#include "../../sprites.h" -#include "../../world/Map.h" -#include "../RideData.h" -#include "../TrackData.h" -#include "../TrackPaint.h" -#include "BolligerMabillardTrack.h" - -/** rct2: 0x008AB6A4 */ -static void twister_rc_track_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8F4, 0x008AB904, 0x008AB914 */ -static void twister_rc_track_station( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_station(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB6B4 */ -static void twister_rc_track_25_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_25_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB6C4 */ -static void twister_rc_track_60_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_60_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB6D4 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB6E4 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB6F4 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB704 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB714 */ -static void twister_rc_track_25_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_25_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB724 */ -static void twister_rc_track_60_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_60_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB734 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB744 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB754 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB764 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB774 */ -static void twister_rc_track_left_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB784 */ -static void twister_rc_track_right_quarter_turn_5( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB794 */ -static void twister_rc_track_flat_to_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_flat_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7A4 */ -static void twister_rc_track_flat_to_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_flat_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7B4 */ -static void twister_rc_track_left_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7C4 */ -static void twister_rc_track_right_bank_to_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7D4 */ -static void twister_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) -{ - bolliger_mabillard_track_banked_left_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7E4 */ -static void twister_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) -{ - bolliger_mabillard_track_banked_right_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB7F4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB804 */ -static void twister_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) -{ - bolliger_mabillard_track_right_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB814 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB824 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB834 */ -static void twister_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) -{ - bolliger_mabillard_track_left_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB844 */ -static void twister_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) -{ - bolliger_mabillard_track_right_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB854 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB864 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB874 */ -static void twister_rc_track_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB884 */ -static void twister_rc_track_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB894 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8A4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8B4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8C4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8D4 */ -static void twister_rc_track_s_bend_left( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_s_bend_left(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB8E4 */ -static void twister_rc_track_s_bend_right( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_s_bend_right(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA84 */ -static void twister_rc_track_left_vertical_loop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_vertical_loop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA94 */ -static void twister_rc_track_right_vertical_loop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_vertical_loop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB924 */ -static void twister_rc_track_left_quarter_turn_3( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_quarter_turn_3( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB934 */ -static void twister_rc_track_right_quarter_turn_3( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_quarter_turn_3( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB944 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_3_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB954 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_3_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB964 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB974 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB984 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB994 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9A4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_half_banked_helix_up_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9B4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_half_banked_helix_up_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9C4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_half_banked_helix_down_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9D4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_half_banked_helix_down_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9E4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_half_banked_helix_up_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AB9F4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_half_banked_helix_up_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA04 */ -static void twister_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) -{ - bolliger_mabillard_track_left_half_banked_helix_down_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA14 */ -static void twister_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) -{ - bolliger_mabillard_track_right_half_banked_helix_down_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA44 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA24 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA34 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_1_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA54 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_1_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA64 */ -static void twister_rc_track_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE04 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_left_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE14 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_right_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABA74 */ -static void twister_rc_track_on_ride_photo( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_on_ride_photo(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE24 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_left_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE34 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_right_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE44 */ -static void twister_rc_track_90_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_90_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE54 */ -static void twister_rc_track_90_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_90_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE64 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_up_to_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE74 */ -static void twister_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) -{ - bolliger_mabillard_track_90_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE84 */ -static void twister_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) -{ - bolliger_mabillard_track_90_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABE94 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_down_to_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAB4 */ -static void twister_rc_track_left_eighth_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_eighth_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAC4 */ -static void twister_rc_track_right_eighth_to_diag( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_eighth_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAD4 */ -static void twister_rc_track_left_eighth_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_eighth_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAE4 */ -static void twister_rc_track_right_eighth_to_orthogonal( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_eighth_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAF4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_eighth_bank_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB04 */ -static void twister_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) -{ - bolliger_mabillard_track_right_eighth_bank_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB14 */ -static void twister_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) -{ - bolliger_mabillard_track_left_eighth_bank_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB24 */ -static void twister_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) -{ - bolliger_mabillard_track_right_eighth_bank_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABAA4 */ -static void twister_rc_track_diag_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB54 */ -static void twister_rc_track_diag_25_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBB4 */ -static void twister_rc_track_diag_60_deg_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB34 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB94 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBA4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB44 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB84 */ -static void twister_rc_track_diag_25_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBE4 */ -static void twister_rc_track_diag_60_deg_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB64 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBC4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBD4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABB74 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC14 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC24 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC34 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_left_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC44 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_right_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC74 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_left_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC84 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_right_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC54 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC64 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC94 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_left_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABCA4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_right_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABCB4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABCC4 */ -static void twister_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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABBF4 */ -static void twister_rc_track_diag_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABC04 */ -static void twister_rc_track_diag_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD74 */ -static void twister_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) -{ - bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD84 */ -static void twister_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) -{ - bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD94 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDA4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0E4 */ -static void twister_rc_track_block_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_block_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABEA4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABEB4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABEC4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABED4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABEE4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABEF4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF04 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF14 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF24 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF34 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF44 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF54 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF64 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF74 */ -static void twister_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) -{ - bolliger_mabillard_track_25_deg_down_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF84 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABF94 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFA4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFB4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFE4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFF4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC004 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC014 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFC4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_left_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABFD4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_right_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC024 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC034 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC044 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC054 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC064 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC074 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC084 */ -static void twister_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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC094 */ -static void twister_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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0A4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0B4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0C4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_quarter_turn_1_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0D4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_quarter_turn_1_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/* The following track elements used to be specific to the Vertical Roller Coaster */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_60_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_flat_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_60_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_rc_track_brake_for_drop( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_brake_for_drop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_diag_60_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_diag_flat_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_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) -{ - bolliger_mabillard_track_diag_60_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/* The following track elements used to be specific to the Steel Twister */ -/** rct2: 0x008ABCD4 */ -static void twister_rc_track_half_loop_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_half_loop_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABCE4 */ -static void twister_rc_track_half_loop_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD34 */ -static void twister_rc_track_left_corkscrew_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_corkscrew_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD44 */ -static void twister_rc_track_right_corkscrew_up( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_corkscrew_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD54 */ -static void twister_rc_track_left_corkscrew_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_corkscrew_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD64 */ -static void twister_rc_track_right_corkscrew_down( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_corkscrew_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC0F4 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_60_deg_up_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC104 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_up_to_flat_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC114 */ -static void twister_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) -{ - bolliger_mabillard_track_flat_to_60_deg_down_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC124 */ -static void twister_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) -{ - bolliger_mabillard_track_60_deg_up_to_flat_long_base122( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABCF4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_barrel_roll_up_to_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD04 */ -static void twister_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) -{ - bolliger_mabillard_track_right_barrel_roll_up_to_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD14 */ -static void twister_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) -{ - bolliger_mabillard_track_left_barrel_roll_down_to_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABD24 */ -static void twister_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) -{ - bolliger_mabillard_track_right_barrel_roll_down_to_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDB4 */ -static void twister_rc_track_powered_lift( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_powered_lift(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDC4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_large_half_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDD4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_large_half_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDE4 */ -static void twister_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) -{ - bolliger_mabillard_track_right_large_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008ABDF4 */ -static void twister_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) -{ - bolliger_mabillard_track_left_large_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC134 */ -static void twister_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) -{ - bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -/** rct2: 0x008AC144 */ -static void twister_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) -{ - bolliger_mabillard_track_inverted_flat_to_90_deg_quarter_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -static void twister_rc_track_booster( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_booster(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_TUBES); -} - -TRACK_PAINT_FUNCTION get_track_paint_function_twister_rc(int32_t trackType) -{ - switch (trackType) - { - case TrackElemType::Flat: - return twister_rc_track_flat; - case TrackElemType::EndStation: - case TrackElemType::BeginStation: - case TrackElemType::MiddleStation: - return twister_rc_track_station; - case TrackElemType::Up25: - return twister_rc_track_25_deg_up; - case TrackElemType::Up60: - return twister_rc_track_60_deg_up; - case TrackElemType::FlatToUp25: - return twister_rc_track_flat_to_25_deg_up; - case TrackElemType::Up25ToUp60: - return twister_rc_track_25_deg_up_to_60_deg_up; - case TrackElemType::Up60ToUp25: - return twister_rc_track_60_deg_up_to_25_deg_up; - case TrackElemType::Up25ToFlat: - return twister_rc_track_25_deg_up_to_flat; - case TrackElemType::Down25: - return twister_rc_track_25_deg_down; - case TrackElemType::Down60: - return twister_rc_track_60_deg_down; - case TrackElemType::FlatToDown25: - return twister_rc_track_flat_to_25_deg_down; - case TrackElemType::Down25ToDown60: - return twister_rc_track_25_deg_down_to_60_deg_down; - case TrackElemType::Down60ToDown25: - return twister_rc_track_60_deg_down_to_25_deg_down; - case TrackElemType::Down25ToFlat: - return twister_rc_track_25_deg_down_to_flat; - case TrackElemType::LeftQuarterTurn5Tiles: - return twister_rc_track_left_quarter_turn_5; - case TrackElemType::RightQuarterTurn5Tiles: - return twister_rc_track_right_quarter_turn_5; - case TrackElemType::FlatToLeftBank: - return twister_rc_track_flat_to_left_bank; - case TrackElemType::FlatToRightBank: - return twister_rc_track_flat_to_right_bank; - case TrackElemType::LeftBankToFlat: - return twister_rc_track_left_bank_to_flat; - case TrackElemType::RightBankToFlat: - return twister_rc_track_right_bank_to_flat; - case TrackElemType::BankedLeftQuarterTurn5Tiles: - return twister_rc_track_banked_left_quarter_turn_5; - case TrackElemType::BankedRightQuarterTurn5Tiles: - return twister_rc_track_banked_right_quarter_turn_5; - case TrackElemType::LeftBankToUp25: - return twister_rc_track_left_bank_to_25_deg_up; - case TrackElemType::RightBankToUp25: - return twister_rc_track_right_bank_to_25_deg_up; - case TrackElemType::Up25ToLeftBank: - return twister_rc_track_25_deg_up_to_left_bank; - case TrackElemType::Up25ToRightBank: - return twister_rc_track_25_deg_up_to_right_bank; - case TrackElemType::LeftBankToDown25: - return twister_rc_track_left_bank_to_25_deg_down; - case TrackElemType::RightBankToDown25: - return twister_rc_track_right_bank_to_25_deg_down; - case TrackElemType::Down25ToLeftBank: - return twister_rc_track_25_deg_down_to_left_bank; - case TrackElemType::Down25ToRightBank: - return twister_rc_track_25_deg_down_to_right_bank; - case TrackElemType::LeftBank: - return twister_rc_track_left_bank; - case TrackElemType::RightBank: - return twister_rc_track_right_bank; - case TrackElemType::LeftQuarterTurn5TilesUp25: - return twister_rc_track_left_quarter_turn_5_25_deg_up; - case TrackElemType::RightQuarterTurn5TilesUp25: - return twister_rc_track_right_quarter_turn_5_25_deg_up; - case TrackElemType::LeftQuarterTurn5TilesDown25: - return twister_rc_track_left_quarter_turn_5_25_deg_down; - case TrackElemType::RightQuarterTurn5TilesDown25: - return twister_rc_track_right_quarter_turn_5_25_deg_down; - case TrackElemType::SBendLeft: - return twister_rc_track_s_bend_left; - case TrackElemType::SBendRight: - return twister_rc_track_s_bend_right; - case TrackElemType::LeftVerticalLoop: - return twister_rc_track_left_vertical_loop; - case TrackElemType::RightVerticalLoop: - return twister_rc_track_right_vertical_loop; - case TrackElemType::LeftQuarterTurn3Tiles: - return twister_rc_track_left_quarter_turn_3; - case TrackElemType::RightQuarterTurn3Tiles: - return twister_rc_track_right_quarter_turn_3; - case TrackElemType::LeftBankedQuarterTurn3Tiles: - return twister_rc_track_left_quarter_turn_3_bank; - case TrackElemType::RightBankedQuarterTurn3Tiles: - return twister_rc_track_right_quarter_turn_3_bank; - case TrackElemType::LeftQuarterTurn3TilesUp25: - return twister_rc_track_left_quarter_turn_3_25_deg_up; - case TrackElemType::RightQuarterTurn3TilesUp25: - return twister_rc_track_right_quarter_turn_3_25_deg_up; - case TrackElemType::LeftQuarterTurn3TilesDown25: - return twister_rc_track_left_quarter_turn_3_25_deg_down; - case TrackElemType::RightQuarterTurn3TilesDown25: - return twister_rc_track_right_quarter_turn_3_25_deg_down; - case TrackElemType::LeftHalfBankedHelixUpSmall: - return twister_rc_track_left_half_banked_helix_up_small; - case TrackElemType::RightHalfBankedHelixUpSmall: - return twister_rc_track_right_half_banked_helix_up_small; - case TrackElemType::LeftHalfBankedHelixDownSmall: - return twister_rc_track_left_half_banked_helix_down_small; - case TrackElemType::RightHalfBankedHelixDownSmall: - return twister_rc_track_right_half_banked_helix_down_small; - case TrackElemType::LeftHalfBankedHelixUpLarge: - return twister_rc_track_left_half_banked_helix_up_large; - case TrackElemType::RightHalfBankedHelixUpLarge: - return twister_rc_track_right_half_banked_helix_up_large; - case TrackElemType::LeftHalfBankedHelixDownLarge: - return twister_rc_track_left_half_banked_helix_down_large; - case TrackElemType::RightHalfBankedHelixDownLarge: - return twister_rc_track_right_half_banked_helix_down_large; - case TrackElemType::LeftQuarterTurn1TileUp60: - return twister_rc_track_left_quarter_turn_1_60_deg_up; - case TrackElemType::RightQuarterTurn1TileUp60: - return twister_rc_track_right_quarter_turn_1_60_deg_up; - case TrackElemType::LeftQuarterTurn1TileDown60: - return twister_rc_track_left_quarter_turn_1_60_deg_down; - case TrackElemType::RightQuarterTurn1TileDown60: - return twister_rc_track_right_quarter_turn_1_60_deg_down; - case TrackElemType::Brakes: - return twister_rc_track_brakes; - case TrackElemType::Up25LeftBanked: - return twister_rc_track_25_deg_up_left_banked; - case TrackElemType::Up25RightBanked: - return twister_rc_track_25_deg_up_right_banked; - case TrackElemType::OnRidePhoto: - return twister_rc_track_on_ride_photo; - case TrackElemType::Down25LeftBanked: - return twister_rc_track_25_deg_down_left_banked; - case TrackElemType::Down25RightBanked: - return twister_rc_track_25_deg_down_right_banked; - case TrackElemType::Up90: - return twister_rc_track_90_deg_up; - case TrackElemType::Down90: - return twister_rc_track_90_deg_down; - case TrackElemType::Up60ToUp90: - return twister_rc_track_60_deg_up_to_90_deg_up; - case TrackElemType::Down90ToDown60: - return twister_rc_track_90_deg_down_to_60_deg_down; - case TrackElemType::Up90ToUp60: - return twister_rc_track_90_deg_up_to_60_deg_up; - case TrackElemType::Down60ToDown90: - return twister_rc_track_60_deg_down_to_90_deg_down; - case TrackElemType::LeftEighthToDiag: - return twister_rc_track_left_eighth_to_diag; - case TrackElemType::RightEighthToDiag: - return twister_rc_track_right_eighth_to_diag; - case TrackElemType::LeftEighthToOrthogonal: - return twister_rc_track_left_eighth_to_orthogonal; - case TrackElemType::RightEighthToOrthogonal: - return twister_rc_track_right_eighth_to_orthogonal; - case TrackElemType::LeftEighthBankToDiag: - return twister_rc_track_left_eighth_bank_to_diag; - case TrackElemType::RightEighthBankToDiag: - return twister_rc_track_right_eighth_bank_to_diag; - case TrackElemType::LeftEighthBankToOrthogonal: - return twister_rc_track_left_eighth_bank_to_orthogonal; - case TrackElemType::RightEighthBankToOrthogonal: - return twister_rc_track_right_eighth_bank_to_orthogonal; - case TrackElemType::DiagFlat: - return twister_rc_track_diag_flat; - case TrackElemType::DiagUp25: - return twister_rc_track_diag_25_deg_up; - case TrackElemType::DiagUp60: - return twister_rc_track_diag_60_deg_up; - case TrackElemType::DiagFlatToUp25: - return twister_rc_track_diag_flat_to_25_deg_up; - case TrackElemType::DiagUp25ToUp60: - return twister_rc_track_diag_25_deg_up_to_60_deg_up; - case TrackElemType::DiagUp60ToUp25: - return twister_rc_track_diag_60_deg_up_to_25_deg_up; - case TrackElemType::DiagUp25ToFlat: - return twister_rc_track_diag_25_deg_up_to_flat; - case TrackElemType::DiagDown25: - return twister_rc_track_diag_25_deg_down; - case TrackElemType::DiagDown60: - return twister_rc_track_diag_60_deg_down; - case TrackElemType::DiagFlatToDown25: - return twister_rc_track_diag_flat_to_25_deg_down; - case TrackElemType::DiagDown25ToDown60: - return twister_rc_track_diag_25_deg_down_to_60_deg_down; - case TrackElemType::DiagDown60ToDown25: - return twister_rc_track_diag_60_deg_down_to_25_deg_down; - case TrackElemType::DiagDown25ToFlat: - return twister_rc_track_diag_25_deg_down_to_flat; - case TrackElemType::DiagFlatToLeftBank: - return twister_rc_track_diag_flat_to_left_bank; - case TrackElemType::DiagFlatToRightBank: - return twister_rc_track_diag_flat_to_right_bank; - case TrackElemType::DiagLeftBankToFlat: - return twister_rc_track_diag_left_bank_to_flat; - case TrackElemType::DiagRightBankToFlat: - return twister_rc_track_diag_right_bank_to_flat; - case TrackElemType::DiagLeftBankToUp25: - return twister_rc_track_diag_left_bank_to_25_deg_up; - case TrackElemType::DiagRightBankToUp25: - return twister_rc_track_diag_right_bank_to_25_deg_up; - case TrackElemType::DiagUp25ToLeftBank: - return twister_rc_track_diag_25_deg_up_to_left_bank; - case TrackElemType::DiagUp25ToRightBank: - return twister_rc_track_diag_25_deg_up_to_right_bank; - case TrackElemType::DiagLeftBankToDown25: - return twister_rc_track_diag_left_bank_to_25_deg_down; - case TrackElemType::DiagRightBankToDown25: - return twister_rc_track_diag_right_bank_to_25_deg_down; - case TrackElemType::DiagDown25ToLeftBank: - return twister_rc_track_diag_25_deg_down_to_left_bank; - case TrackElemType::DiagDown25ToRightBank: - return twister_rc_track_diag_25_deg_down_to_right_bank; - case TrackElemType::DiagLeftBank: - return twister_rc_track_diag_left_bank; - case TrackElemType::DiagRightBank: - return twister_rc_track_diag_right_bank; - case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25: - return twister_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up; - case TrackElemType::RightBankToRightQuarterTurn3TilesUp25: - return twister_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up; - case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank: - return twister_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank; - case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank: - return twister_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank; - case TrackElemType::BlockBrakes: - return twister_rc_track_block_brakes; - case TrackElemType::LeftBankedQuarterTurn3TileUp25: - return twister_rc_track_left_banked_quarter_turn_3_25_deg_up; - case TrackElemType::RightBankedQuarterTurn3TileUp25: - return twister_rc_track_right_banked_quarter_turn_3_25_deg_up; - case TrackElemType::LeftBankedQuarterTurn3TileDown25: - return twister_rc_track_left_banked_quarter_turn_3_25_deg_down; - case TrackElemType::RightBankedQuarterTurn3TileDown25: - return twister_rc_track_right_banked_quarter_turn_3_25_deg_down; - case TrackElemType::LeftBankedQuarterTurn5TileUp25: - return twister_rc_track_left_banked_quarter_turn_5_25_deg_up; - case TrackElemType::RightBankedQuarterTurn5TileUp25: - return twister_rc_track_right_banked_quarter_turn_5_25_deg_up; - case TrackElemType::LeftBankedQuarterTurn5TileDown25: - return twister_rc_track_left_banked_quarter_turn_5_25_deg_down; - case TrackElemType::RightBankedQuarterTurn5TileDown25: - return twister_rc_track_right_banked_quarter_turn_5_25_deg_down; - case TrackElemType::Up25ToLeftBankedUp25: - return twister_rc_track_25_deg_up_to_left_banked_25_deg_up; - case TrackElemType::Up25ToRightBankedUp25: - return twister_rc_track_25_deg_up_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToUp25: - return twister_rc_track_left_banked_25_deg_up_to_25_deg_up; - case TrackElemType::RightBankedUp25ToUp25: - return twister_rc_track_right_banked_25_deg_up_to_25_deg_up; - case TrackElemType::Down25ToLeftBankedDown25: - return twister_rc_track_25_deg_down_to_left_banked_25_deg_down; - case TrackElemType::Down25ToRightBankedDown25: - return twister_rc_track_25_deg_down_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToDown25: - return twister_rc_track_left_banked_25_deg_down_to_25_deg_down; - case TrackElemType::RightBankedDown25ToDown25: - return twister_rc_track_right_banked_25_deg_down_to_25_deg_down; - case TrackElemType::LeftBankedFlatToLeftBankedUp25: - return twister_rc_track_left_banked_flat_to_left_banked_25_deg_up; - case TrackElemType::RightBankedFlatToRightBankedUp25: - return twister_rc_track_right_banked_flat_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToLeftBankedFlat: - return twister_rc_track_left_banked_25_deg_up_to_left_banked_flat; - case TrackElemType::RightBankedUp25ToRightBankedFlat: - return twister_rc_track_right_banked_25_deg_up_to_right_banked_flat; - case TrackElemType::LeftBankedFlatToLeftBankedDown25: - return twister_rc_track_left_banked_flat_to_left_banked_25_deg_down; - case TrackElemType::RightBankedFlatToRightBankedDown25: - return twister_rc_track_right_banked_flat_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToLeftBankedFlat: - return twister_rc_track_left_banked_25_deg_down_to_left_banked_flat; - case TrackElemType::RightBankedDown25ToRightBankedFlat: - return twister_rc_track_right_banked_25_deg_down_to_right_banked_flat; - case TrackElemType::FlatToLeftBankedUp25: - return twister_rc_track_flat_to_left_banked_25_deg_up; - case TrackElemType::FlatToRightBankedUp25: - return twister_rc_track_flat_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToFlat: - return twister_rc_track_left_banked_25_deg_up_to_flat; - case TrackElemType::RightBankedUp25ToFlat: - return twister_rc_track_right_banked_25_deg_up_to_flat; - case TrackElemType::FlatToLeftBankedDown25: - return twister_rc_track_flat_to_left_banked_25_deg_down; - case TrackElemType::FlatToRightBankedDown25: - return twister_rc_track_flat_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToFlat: - return twister_rc_track_left_banked_25_deg_down_to_flat; - case TrackElemType::RightBankedDown25ToFlat: - return twister_rc_track_right_banked_25_deg_down_to_flat; - case TrackElemType::LeftQuarterTurn1TileUp90: - return twister_rc_track_left_quarter_turn_1_90_deg_up; - case TrackElemType::RightQuarterTurn1TileUp90: - return twister_rc_track_right_quarter_turn_1_90_deg_up; - case TrackElemType::LeftQuarterTurn1TileDown90: - return twister_rc_track_left_quarter_turn_1_90_deg_down; - case TrackElemType::RightQuarterTurn1TileDown90: - return twister_rc_track_right_quarter_turn_1_90_deg_down; - /* The following track elements used to be specific to the vertical RC */ - case TrackElemType::FlatToUp60: - return twister_rc_track_flat_to_60_deg_up; - case TrackElemType::Up60ToFlat: - return twister_rc_track_60_deg_up_to_flat; - case TrackElemType::FlatToDown60: - return twister_rc_track_flat_to_60_deg_down; - case TrackElemType::Down60ToFlat: - return twister_rc_track_60_deg_down_to_flat; - case TrackElemType::BrakeForDrop: - return twister_rc_track_brake_for_drop; - case TrackElemType::DiagFlatToUp60: - return twister_rc_track_diag_flat_to_60_deg_up; - case TrackElemType::DiagUp60ToFlat: - return twister_rc_track_diag_60_deg_up_to_flat; - case TrackElemType::DiagFlatToDown60: - return twister_rc_track_diag_flat_to_60_deg_down; - case TrackElemType::DiagDown60ToFlat: - return twister_rc_track_diag_60_deg_down_to_flat; - /* The following track elements used to be specific to the Twister RC */ - case TrackElemType::HalfLoopUp: - return twister_rc_track_half_loop_up; - case TrackElemType::HalfLoopDown: - return twister_rc_track_half_loop_down; - case TrackElemType::LeftCorkscrewUp: - return twister_rc_track_left_corkscrew_up; - case TrackElemType::RightCorkscrewUp: - return twister_rc_track_right_corkscrew_up; - case TrackElemType::LeftCorkscrewDown: - return twister_rc_track_left_corkscrew_down; - case TrackElemType::RightCorkscrewDown: - return twister_rc_track_right_corkscrew_down; - case TrackElemType::FlatToUp60LongBase: - return twister_rc_track_flat_to_60_deg_up_long_base; - case TrackElemType::Up60ToFlatLongBase: - return twister_rc_track_60_deg_up_to_flat_long_base; - case TrackElemType::Down60ToFlatLongBase: - return twister_rc_track_60_deg_down_to_flat_long_base; - case TrackElemType::FlatToDown60LongBase: - return twister_rc_track_flat_to_60_deg_down_long_base; - case TrackElemType::LeftBarrelRollUpToDown: - return twister_rc_track_left_barrel_roll_up_to_down; - case TrackElemType::RightBarrelRollUpToDown: - return twister_rc_track_right_barrel_roll_up_to_down; - case TrackElemType::LeftBarrelRollDownToUp: - return twister_rc_track_left_barrel_roll_down_to_up; - case TrackElemType::RightBarrelRollDownToUp: - return twister_rc_track_right_barrel_roll_down_to_up; - case TrackElemType::PoweredLift: - return twister_rc_track_powered_lift; - case TrackElemType::LeftLargeHalfLoopUp: - return twister_rc_track_left_large_half_loop_up; - case TrackElemType::RightLargeHalfLoopUp: - return twister_rc_track_right_large_half_loop_up; - case TrackElemType::RightLargeHalfLoopDown: - return twister_rc_track_right_large_half_loop_down; - case TrackElemType::LeftLargeHalfLoopDown: - return twister_rc_track_left_large_half_loop_down; - case TrackElemType::Up90ToInvertedFlatQuarterLoop: - return twister_rc_track_90_deg_to_inverted_flat_quarter_loop_up; - case TrackElemType::InvertedFlatToDown90QuarterLoop: - return twister_rc_track_inverted_flat_to_90_deg_quarter_loop_down; - - case TrackElemType::Booster: - return twister_rc_track_booster; - } - return nullptr; -} diff --git a/src/openrct2/ride/coaster/VerticalDropRollerCoaster.cpp b/src/openrct2/ride/coaster/VerticalDropRollerCoaster.cpp deleted file mode 100644 index 5d6d1fa691..0000000000 --- a/src/openrct2/ride/coaster/VerticalDropRollerCoaster.cpp +++ /dev/null @@ -1,1955 +0,0 @@ -/***************************************************************************** - * Copyright (c) 2014-2020 OpenRCT2 developers - * - * For a complete list of all authors, please refer to contributors.md - * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 - * - * OpenRCT2 is licensed under the GNU General Public License version 3. - *****************************************************************************/ - -#include "../../drawing/Drawing.h" -#include "../../paint/Supports.h" -#include "../TrackData.h" -#include "BolligerMabillardTrack.h" - -/** rct2: 0x008AA00C */ -static void vertical_drop_rc_track_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void vertical_drop_rc_track_station( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_station(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA01C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA02C */ -static void 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) -{ - bolliger_mabillard_track_60_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA03C */ -static void 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) -{ - bolliger_mabillard_track_flat_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA04C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA05C */ -static void 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) -{ - bolliger_mabillard_track_60_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA06C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA07C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA08C */ -static void 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) -{ - bolliger_mabillard_track_60_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA09C */ -static void 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) -{ - bolliger_mabillard_track_flat_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0AC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0BC */ -static void 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) -{ - bolliger_mabillard_track_60_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0CC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0DC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0EC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA0FC */ -static void 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) -{ - bolliger_mabillard_track_flat_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA10C */ -static void 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) -{ - bolliger_mabillard_track_flat_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA11C */ -static void 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) -{ - bolliger_mabillard_track_left_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA12C */ -static void 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) -{ - bolliger_mabillard_track_right_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA13C */ -static void 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) -{ - bolliger_mabillard_track_banked_left_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA14C */ -static void 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) -{ - bolliger_mabillard_track_banked_right_quarter_turn_5( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA15C */ -static void 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) -{ - bolliger_mabillard_track_left_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA16C */ -static void 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) -{ - bolliger_mabillard_track_right_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA17C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA18C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA19C */ -static void 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) -{ - bolliger_mabillard_track_left_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1AC */ -static void 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) -{ - bolliger_mabillard_track_right_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1BC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1CC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1DC */ -static void vertical_drop_rc_track_left_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_left_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1EC */ -static void vertical_drop_rc_track_right_bank( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_right_bank(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA1FC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA20C */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA21C */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA22C */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA23C */ -static void 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) -{ - bolliger_mabillard_track_s_bend_left(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA24C */ -static void 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) -{ - bolliger_mabillard_track_s_bend_right(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA49C */ -static void 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) -{ - bolliger_mabillard_track_left_vertical_loop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4AC */ -static void 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) -{ - bolliger_mabillard_track_right_vertical_loop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA28C */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_3( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA29C */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_3( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2AC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_3_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2BC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_3_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2CC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2DC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2EC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA2FC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA30C */ -static void 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) -{ - bolliger_mabillard_track_left_half_banked_helix_up_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA31C */ -static void 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) -{ - bolliger_mabillard_track_right_half_banked_helix_up_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA32C */ -static void 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) -{ - bolliger_mabillard_track_left_half_banked_helix_down_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA33C */ -static void 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) -{ - bolliger_mabillard_track_right_half_banked_helix_down_small( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA34C */ -static void 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) -{ - bolliger_mabillard_track_left_half_banked_helix_up_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA35C */ -static void 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) -{ - bolliger_mabillard_track_right_half_banked_helix_up_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA36C */ -static void 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) -{ - bolliger_mabillard_track_left_half_banked_helix_down_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA37C */ -static void 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) -{ - bolliger_mabillard_track_right_half_banked_helix_down_large( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA3AC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_1_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA38C */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_1_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA39C */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_1_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA3BC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_1_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA40C */ -static void vertical_drop_rc_track_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7EC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_left_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7FC */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_right_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA41C */ -static void 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) -{ - bolliger_mabillard_track_on_ride_photo(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA80C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_left_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA81C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_right_banked( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA42C */ -static void 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) -{ - bolliger_mabillard_track_90_deg_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA43C */ -static void 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) -{ - bolliger_mabillard_track_90_deg_down(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA44C */ -static void 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) -{ - bolliger_mabillard_track_60_deg_up_to_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA45C */ -static void 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) -{ - bolliger_mabillard_track_90_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA46C */ -static void 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) -{ - bolliger_mabillard_track_90_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA47C */ -static void 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) -{ - bolliger_mabillard_track_60_deg_down_to_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4CC */ -static void 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) -{ - bolliger_mabillard_track_left_eighth_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4DC */ -static void 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) -{ - bolliger_mabillard_track_right_eighth_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4EC */ -static void 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) -{ - bolliger_mabillard_track_left_eighth_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4FC */ -static void 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) -{ - bolliger_mabillard_track_right_eighth_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA50C */ -static void 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) -{ - bolliger_mabillard_track_left_eighth_bank_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA51C */ -static void 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) -{ - bolliger_mabillard_track_right_eighth_bank_to_diag( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA52C */ -static void 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) -{ - bolliger_mabillard_track_left_eighth_bank_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA53C */ -static void 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) -{ - bolliger_mabillard_track_right_eighth_bank_to_orthogonal( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA4BC */ -static void vertical_drop_rc_track_diag_flat( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_diag_flat(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA56C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5CC */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA54C */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5AC */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5BC */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA55C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA59C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5FC */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA57C */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5DC */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA5EC */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA58C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA62C */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA63C */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA64C */ -static void 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) -{ - bolliger_mabillard_track_diag_left_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA65C */ -static void 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) -{ - bolliger_mabillard_track_diag_right_bank_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA68C */ -static void 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) -{ - bolliger_mabillard_track_diag_left_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA69C */ -static void 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) -{ - bolliger_mabillard_track_diag_right_bank_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA66C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA67C */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_up_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6AC */ -static void 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) -{ - bolliger_mabillard_track_diag_left_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6BC */ -static void 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) -{ - bolliger_mabillard_track_diag_right_bank_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6CC */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6DC */ -static void 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) -{ - bolliger_mabillard_track_diag_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA60C */ -static void 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) -{ - bolliger_mabillard_track_diag_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA61C */ -static void 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) -{ - bolliger_mabillard_track_diag_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA72C */ -static void 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) -{ - bolliger_mabillard_track_left_bank_to_left_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA73C */ -static void 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) -{ - bolliger_mabillard_track_right_bank_to_right_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA74C */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_3_25_deg_down_to_left_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA75C */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_3_25_deg_down_to_right_bank( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA9EC */ -static void vertical_drop_rc_track_block_brakes( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_block_brakes(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA96C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA97C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA98C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA99C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_3_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8AC */ -static void 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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8BC */ -static void 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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8CC */ -static void 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) -{ - bolliger_mabillard_track_left_banked_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8DC */ -static void 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) -{ - bolliger_mabillard_track_right_banked_quarter_turn_5_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA82C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA83C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_up_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA84C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA85C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA86C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA87C */ -static void 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) -{ - bolliger_mabillard_track_25_deg_down_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA88C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA89C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8EC */ -static void 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) -{ - bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA8FC */ -static void 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) -{ - bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA92C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_left_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA93C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_right_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA94C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_flat_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA95C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_flat_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA90C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_left_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA91C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_right_banked_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA76C */ -static void 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) -{ - bolliger_mabillard_track_flat_to_left_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA77C */ -static void 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) -{ - bolliger_mabillard_track_flat_to_right_banked_25_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA78C */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA79C */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7AC */ -static void 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) -{ - bolliger_mabillard_track_flat_to_left_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7BC */ -static void 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) -{ - bolliger_mabillard_track_flat_to_right_banked_25_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7CC */ -static void 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) -{ - bolliger_mabillard_track_left_banked_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA7DC */ -static void 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) -{ - bolliger_mabillard_track_right_banked_25_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA9AC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_1_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA9BC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_1_90_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA9CC */ -static void 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) -{ - bolliger_mabillard_track_left_quarter_turn_1_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA9DC */ -static void 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) -{ - bolliger_mabillard_track_right_quarter_turn_1_90_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/* The following elements used to be specific to the vertical_drop RC */ -/** rct2: 0x008AA3CC */ -static void 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) -{ - bolliger_mabillard_track_flat_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA3DC */ -static void 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) -{ - bolliger_mabillard_track_60_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA3EC */ -static void 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) -{ - bolliger_mabillard_track_flat_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA3FC */ -static void 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) -{ - bolliger_mabillard_track_60_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA48C */ -static void 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) -{ - bolliger_mabillard_track_brake_for_drop( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6EC */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_60_deg_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA6FC */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_up_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA70C */ -static void 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) -{ - bolliger_mabillard_track_diag_flat_to_60_deg_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/** rct2: 0x008AA71C */ -static void 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) -{ - bolliger_mabillard_track_diag_60_deg_down_to_flat( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -/* The following elements used to be specific to the steel twister RC */ -static void 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) -{ - bolliger_mabillard_track_half_loop_up(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_corkscrew_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_corkscrew_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_corkscrew_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_corkscrew_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_flat_to_60_deg_up_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_60_deg_up_to_flat_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_flat_to_60_deg_down_long_base( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_60_deg_up_to_flat_long_base122( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_barrel_roll_up_to_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_barrel_roll_up_to_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_barrel_roll_down_to_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_barrel_roll_down_to_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void vertical_drop_rc_track_powered_lift( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_powered_lift(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_large_half_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_large_half_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_right_large_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_left_large_half_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_90_deg_to_inverted_flat_quarter_loop_up( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void 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) -{ - bolliger_mabillard_track_inverted_flat_to_90_deg_quarter_loop_down( - session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -static void vertical_drop_rc_track_booster( - paint_session* session, const Ride* ride, uint8_t trackSequence, uint8_t direction, int32_t height, - const TrackElement& trackElement) -{ - bolliger_mabillard_track_booster(session, ride, trackSequence, direction, height, trackElement, METAL_SUPPORTS_BOXED); -} - -TRACK_PAINT_FUNCTION get_track_paint_function_vertical_drop_rc(int32_t trackType) -{ - switch (trackType) - { - case TrackElemType::Flat: - return vertical_drop_rc_track_flat; - case TrackElemType::EndStation: - case TrackElemType::BeginStation: - case TrackElemType::MiddleStation: - return vertical_drop_rc_track_station; - case TrackElemType::Up25: - return vertical_drop_rc_track_25_deg_up; - case TrackElemType::Up60: - return vertical_drop_rc_track_60_deg_up; - case TrackElemType::FlatToUp25: - return vertical_drop_rc_track_flat_to_25_deg_up; - case TrackElemType::Up25ToUp60: - return vertical_drop_rc_track_25_deg_up_to_60_deg_up; - case TrackElemType::Up60ToUp25: - return vertical_drop_rc_track_60_deg_up_to_25_deg_up; - case TrackElemType::Up25ToFlat: - return vertical_drop_rc_track_25_deg_up_to_flat; - case TrackElemType::Down25: - return vertical_drop_rc_track_25_deg_down; - case TrackElemType::Down60: - return vertical_drop_rc_track_60_deg_down; - case TrackElemType::FlatToDown25: - return vertical_drop_rc_track_flat_to_25_deg_down; - case TrackElemType::Down25ToDown60: - return vertical_drop_rc_track_25_deg_down_to_60_deg_down; - case TrackElemType::Down60ToDown25: - return vertical_drop_rc_track_60_deg_down_to_25_deg_down; - case TrackElemType::Down25ToFlat: - return vertical_drop_rc_track_25_deg_down_to_flat; - case TrackElemType::LeftQuarterTurn5Tiles: - return vertical_drop_rc_track_left_quarter_turn_5; - case TrackElemType::RightQuarterTurn5Tiles: - return vertical_drop_rc_track_right_quarter_turn_5; - case TrackElemType::FlatToLeftBank: - return vertical_drop_rc_track_flat_to_left_bank; - case TrackElemType::FlatToRightBank: - return vertical_drop_rc_track_flat_to_right_bank; - case TrackElemType::LeftBankToFlat: - return vertical_drop_rc_track_left_bank_to_flat; - case TrackElemType::RightBankToFlat: - return vertical_drop_rc_track_right_bank_to_flat; - case TrackElemType::BankedLeftQuarterTurn5Tiles: - return vertical_drop_rc_track_banked_left_quarter_turn_5; - case TrackElemType::BankedRightQuarterTurn5Tiles: - return vertical_drop_rc_track_banked_right_quarter_turn_5; - case TrackElemType::LeftBankToUp25: - return vertical_drop_rc_track_left_bank_to_25_deg_up; - case TrackElemType::RightBankToUp25: - return vertical_drop_rc_track_right_bank_to_25_deg_up; - case TrackElemType::Up25ToLeftBank: - return vertical_drop_rc_track_25_deg_up_to_left_bank; - case TrackElemType::Up25ToRightBank: - return vertical_drop_rc_track_25_deg_up_to_right_bank; - case TrackElemType::LeftBankToDown25: - return vertical_drop_rc_track_left_bank_to_25_deg_down; - case TrackElemType::RightBankToDown25: - return vertical_drop_rc_track_right_bank_to_25_deg_down; - case TrackElemType::Down25ToLeftBank: - return vertical_drop_rc_track_25_deg_down_to_left_bank; - case TrackElemType::Down25ToRightBank: - return vertical_drop_rc_track_25_deg_down_to_right_bank; - case TrackElemType::LeftBank: - return vertical_drop_rc_track_left_bank; - case TrackElemType::RightBank: - return vertical_drop_rc_track_right_bank; - case TrackElemType::LeftQuarterTurn5TilesUp25: - return vertical_drop_rc_track_left_quarter_turn_5_25_deg_up; - case TrackElemType::RightQuarterTurn5TilesUp25: - return vertical_drop_rc_track_right_quarter_turn_5_25_deg_up; - case TrackElemType::LeftQuarterTurn5TilesDown25: - return vertical_drop_rc_track_left_quarter_turn_5_25_deg_down; - case TrackElemType::RightQuarterTurn5TilesDown25: - return vertical_drop_rc_track_right_quarter_turn_5_25_deg_down; - case TrackElemType::SBendLeft: - return vertical_drop_rc_track_s_bend_left; - case TrackElemType::SBendRight: - return vertical_drop_rc_track_s_bend_right; - case TrackElemType::LeftVerticalLoop: - return vertical_drop_rc_track_left_vertical_loop; - case TrackElemType::RightVerticalLoop: - return vertical_drop_rc_track_right_vertical_loop; - case TrackElemType::LeftQuarterTurn3Tiles: - return vertical_drop_rc_track_left_quarter_turn_3; - case TrackElemType::RightQuarterTurn3Tiles: - return vertical_drop_rc_track_right_quarter_turn_3; - case TrackElemType::LeftBankedQuarterTurn3Tiles: - return vertical_drop_rc_track_left_quarter_turn_3_bank; - case TrackElemType::RightBankedQuarterTurn3Tiles: - return vertical_drop_rc_track_right_quarter_turn_3_bank; - case TrackElemType::LeftQuarterTurn3TilesUp25: - return vertical_drop_rc_track_left_quarter_turn_3_25_deg_up; - case TrackElemType::RightQuarterTurn3TilesUp25: - return vertical_drop_rc_track_right_quarter_turn_3_25_deg_up; - case TrackElemType::LeftQuarterTurn3TilesDown25: - return vertical_drop_rc_track_left_quarter_turn_3_25_deg_down; - case TrackElemType::RightQuarterTurn3TilesDown25: - return vertical_drop_rc_track_right_quarter_turn_3_25_deg_down; - case TrackElemType::LeftHalfBankedHelixUpSmall: - return vertical_drop_rc_track_left_half_banked_helix_up_small; - case TrackElemType::RightHalfBankedHelixUpSmall: - return vertical_drop_rc_track_right_half_banked_helix_up_small; - case TrackElemType::LeftHalfBankedHelixDownSmall: - return vertical_drop_rc_track_left_half_banked_helix_down_small; - case TrackElemType::RightHalfBankedHelixDownSmall: - return vertical_drop_rc_track_right_half_banked_helix_down_small; - case TrackElemType::LeftHalfBankedHelixUpLarge: - return vertical_drop_rc_track_left_half_banked_helix_up_large; - case TrackElemType::RightHalfBankedHelixUpLarge: - return vertical_drop_rc_track_right_half_banked_helix_up_large; - case TrackElemType::LeftHalfBankedHelixDownLarge: - return vertical_drop_rc_track_left_half_banked_helix_down_large; - case TrackElemType::RightHalfBankedHelixDownLarge: - return vertical_drop_rc_track_right_half_banked_helix_down_large; - case TrackElemType::LeftQuarterTurn1TileUp60: - return vertical_drop_rc_track_left_quarter_turn_1_60_deg_up; - case TrackElemType::RightQuarterTurn1TileUp60: - return vertical_drop_rc_track_right_quarter_turn_1_60_deg_up; - case TrackElemType::LeftQuarterTurn1TileDown60: - return vertical_drop_rc_track_left_quarter_turn_1_60_deg_down; - case TrackElemType::RightQuarterTurn1TileDown60: - return vertical_drop_rc_track_right_quarter_turn_1_60_deg_down; - case TrackElemType::Brakes: - return vertical_drop_rc_track_brakes; - case TrackElemType::Up25LeftBanked: - return vertical_drop_rc_track_25_deg_up_left_banked; - case TrackElemType::Up25RightBanked: - return vertical_drop_rc_track_25_deg_up_right_banked; - case TrackElemType::OnRidePhoto: - return vertical_drop_rc_track_on_ride_photo; - case TrackElemType::Down25LeftBanked: - return vertical_drop_rc_track_25_deg_down_left_banked; - case TrackElemType::Down25RightBanked: - return vertical_drop_rc_track_25_deg_down_right_banked; - case TrackElemType::Up90: - return vertical_drop_rc_track_90_deg_up; - case TrackElemType::Down90: - return vertical_drop_rc_track_90_deg_down; - case TrackElemType::Up60ToUp90: - return vertical_drop_rc_track_60_deg_up_to_90_deg_up; - case TrackElemType::Down90ToDown60: - return vertical_drop_rc_track_90_deg_down_to_60_deg_down; - case TrackElemType::Up90ToUp60: - return vertical_drop_rc_track_90_deg_up_to_60_deg_up; - case TrackElemType::Down60ToDown90: - return vertical_drop_rc_track_60_deg_down_to_90_deg_down; - case TrackElemType::LeftEighthToDiag: - return vertical_drop_rc_track_left_eighth_to_diag; - case TrackElemType::RightEighthToDiag: - return vertical_drop_rc_track_right_eighth_to_diag; - case TrackElemType::LeftEighthToOrthogonal: - return vertical_drop_rc_track_left_eighth_to_orthogonal; - case TrackElemType::RightEighthToOrthogonal: - return vertical_drop_rc_track_right_eighth_to_orthogonal; - case TrackElemType::LeftEighthBankToDiag: - return vertical_drop_rc_track_left_eighth_bank_to_diag; - case TrackElemType::RightEighthBankToDiag: - return vertical_drop_rc_track_right_eighth_bank_to_diag; - case TrackElemType::LeftEighthBankToOrthogonal: - return vertical_drop_rc_track_left_eighth_bank_to_orthogonal; - case TrackElemType::RightEighthBankToOrthogonal: - return vertical_drop_rc_track_right_eighth_bank_to_orthogonal; - case TrackElemType::DiagFlat: - return vertical_drop_rc_track_diag_flat; - case TrackElemType::DiagUp25: - return vertical_drop_rc_track_diag_25_deg_up; - case TrackElemType::DiagUp60: - return vertical_drop_rc_track_diag_60_deg_up; - case TrackElemType::DiagFlatToUp25: - return vertical_drop_rc_track_diag_flat_to_25_deg_up; - case TrackElemType::DiagUp25ToUp60: - return vertical_drop_rc_track_diag_25_deg_up_to_60_deg_up; - case TrackElemType::DiagUp60ToUp25: - return vertical_drop_rc_track_diag_60_deg_up_to_25_deg_up; - case TrackElemType::DiagUp25ToFlat: - return vertical_drop_rc_track_diag_25_deg_up_to_flat; - case TrackElemType::DiagDown25: - return vertical_drop_rc_track_diag_25_deg_down; - case TrackElemType::DiagDown60: - return vertical_drop_rc_track_diag_60_deg_down; - case TrackElemType::DiagFlatToDown25: - return vertical_drop_rc_track_diag_flat_to_25_deg_down; - case TrackElemType::DiagDown25ToDown60: - return vertical_drop_rc_track_diag_25_deg_down_to_60_deg_down; - case TrackElemType::DiagDown60ToDown25: - return vertical_drop_rc_track_diag_60_deg_down_to_25_deg_down; - case TrackElemType::DiagDown25ToFlat: - return vertical_drop_rc_track_diag_25_deg_down_to_flat; - case TrackElemType::DiagFlatToLeftBank: - return vertical_drop_rc_track_diag_flat_to_left_bank; - case TrackElemType::DiagFlatToRightBank: - return vertical_drop_rc_track_diag_flat_to_right_bank; - case TrackElemType::DiagLeftBankToFlat: - return vertical_drop_rc_track_diag_left_bank_to_flat; - case TrackElemType::DiagRightBankToFlat: - return vertical_drop_rc_track_diag_right_bank_to_flat; - case TrackElemType::DiagLeftBankToUp25: - return vertical_drop_rc_track_diag_left_bank_to_25_deg_up; - case TrackElemType::DiagRightBankToUp25: - return vertical_drop_rc_track_diag_right_bank_to_25_deg_up; - case TrackElemType::DiagUp25ToLeftBank: - return vertical_drop_rc_track_diag_25_deg_up_to_left_bank; - case TrackElemType::DiagUp25ToRightBank: - return vertical_drop_rc_track_diag_25_deg_up_to_right_bank; - case TrackElemType::DiagLeftBankToDown25: - return vertical_drop_rc_track_diag_left_bank_to_25_deg_down; - case TrackElemType::DiagRightBankToDown25: - return vertical_drop_rc_track_diag_right_bank_to_25_deg_down; - case TrackElemType::DiagDown25ToLeftBank: - return vertical_drop_rc_track_diag_25_deg_down_to_left_bank; - case TrackElemType::DiagDown25ToRightBank: - return vertical_drop_rc_track_diag_25_deg_down_to_right_bank; - case TrackElemType::DiagLeftBank: - return vertical_drop_rc_track_diag_left_bank; - case TrackElemType::DiagRightBank: - return vertical_drop_rc_track_diag_right_bank; - case TrackElemType::LeftBankToLeftQuarterTurn3TilesUp25: - return vertical_drop_rc_track_left_bank_to_left_quarter_turn_3_25_deg_up; - case TrackElemType::RightBankToRightQuarterTurn3TilesUp25: - return vertical_drop_rc_track_right_bank_to_right_quarter_turn_3_25_deg_up; - case TrackElemType::LeftQuarterTurn3TilesDown25ToLeftBank: - return vertical_drop_rc_track_left_quarter_turn_3_25_deg_down_to_left_bank; - case TrackElemType::RightQuarterTurn3TilesDown25ToRightBank: - return vertical_drop_rc_track_right_quarter_turn_3_25_deg_down_to_right_bank; - case TrackElemType::BlockBrakes: - return vertical_drop_rc_track_block_brakes; - case TrackElemType::LeftBankedQuarterTurn3TileUp25: - return vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_up; - case TrackElemType::RightBankedQuarterTurn3TileUp25: - return vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_up; - case TrackElemType::LeftBankedQuarterTurn3TileDown25: - return vertical_drop_rc_track_left_banked_quarter_turn_3_25_deg_down; - case TrackElemType::RightBankedQuarterTurn3TileDown25: - return vertical_drop_rc_track_right_banked_quarter_turn_3_25_deg_down; - case TrackElemType::LeftBankedQuarterTurn5TileUp25: - return vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_up; - case TrackElemType::RightBankedQuarterTurn5TileUp25: - return vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_up; - case TrackElemType::LeftBankedQuarterTurn5TileDown25: - return vertical_drop_rc_track_left_banked_quarter_turn_5_25_deg_down; - case TrackElemType::RightBankedQuarterTurn5TileDown25: - return vertical_drop_rc_track_right_banked_quarter_turn_5_25_deg_down; - case TrackElemType::Up25ToLeftBankedUp25: - return vertical_drop_rc_track_25_deg_up_to_left_banked_25_deg_up; - case TrackElemType::Up25ToRightBankedUp25: - return vertical_drop_rc_track_25_deg_up_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToUp25: - return vertical_drop_rc_track_left_banked_25_deg_up_to_25_deg_up; - case TrackElemType::RightBankedUp25ToUp25: - return vertical_drop_rc_track_right_banked_25_deg_up_to_25_deg_up; - case TrackElemType::Down25ToLeftBankedDown25: - return vertical_drop_rc_track_25_deg_down_to_left_banked_25_deg_down; - case TrackElemType::Down25ToRightBankedDown25: - return vertical_drop_rc_track_25_deg_down_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToDown25: - return vertical_drop_rc_track_left_banked_25_deg_down_to_25_deg_down; - case TrackElemType::RightBankedDown25ToDown25: - return vertical_drop_rc_track_right_banked_25_deg_down_to_25_deg_down; - case TrackElemType::LeftBankedFlatToLeftBankedUp25: - return vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_up; - case TrackElemType::RightBankedFlatToRightBankedUp25: - return vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToLeftBankedFlat: - return vertical_drop_rc_track_left_banked_25_deg_up_to_left_banked_flat; - case TrackElemType::RightBankedUp25ToRightBankedFlat: - return vertical_drop_rc_track_right_banked_25_deg_up_to_right_banked_flat; - case TrackElemType::LeftBankedFlatToLeftBankedDown25: - return vertical_drop_rc_track_left_banked_flat_to_left_banked_25_deg_down; - case TrackElemType::RightBankedFlatToRightBankedDown25: - return vertical_drop_rc_track_right_banked_flat_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToLeftBankedFlat: - return vertical_drop_rc_track_left_banked_25_deg_down_to_left_banked_flat; - case TrackElemType::RightBankedDown25ToRightBankedFlat: - return vertical_drop_rc_track_right_banked_25_deg_down_to_right_banked_flat; - case TrackElemType::FlatToLeftBankedUp25: - return vertical_drop_rc_track_flat_to_left_banked_25_deg_up; - case TrackElemType::FlatToRightBankedUp25: - return vertical_drop_rc_track_flat_to_right_banked_25_deg_up; - case TrackElemType::LeftBankedUp25ToFlat: - return vertical_drop_rc_track_left_banked_25_deg_up_to_flat; - case TrackElemType::RightBankedUp25ToFlat: - return vertical_drop_rc_track_right_banked_25_deg_up_to_flat; - case TrackElemType::FlatToLeftBankedDown25: - return vertical_drop_rc_track_flat_to_left_banked_25_deg_down; - case TrackElemType::FlatToRightBankedDown25: - return vertical_drop_rc_track_flat_to_right_banked_25_deg_down; - case TrackElemType::LeftBankedDown25ToFlat: - return vertical_drop_rc_track_left_banked_25_deg_down_to_flat; - case TrackElemType::RightBankedDown25ToFlat: - return vertical_drop_rc_track_right_banked_25_deg_down_to_flat; - case TrackElemType::LeftQuarterTurn1TileUp90: - return vertical_drop_rc_track_left_quarter_turn_1_90_deg_up; - case TrackElemType::RightQuarterTurn1TileUp90: - return vertical_drop_rc_track_right_quarter_turn_1_90_deg_up; - case TrackElemType::LeftQuarterTurn1TileDown90: - return vertical_drop_rc_track_left_quarter_turn_1_90_deg_down; - case TrackElemType::RightQuarterTurn1TileDown90: - return vertical_drop_rc_track_right_quarter_turn_1_90_deg_down; - /* These track elements used to be specific to the vertical RC */ - case TrackElemType::FlatToUp60: - return vertical_drop_rc_track_flat_to_60_deg_up; - case TrackElemType::Up60ToFlat: - return vertical_drop_rc_track_60_deg_up_to_flat; - case TrackElemType::FlatToDown60: - return vertical_drop_rc_track_flat_to_60_deg_down; - case TrackElemType::Down60ToFlat: - return vertical_drop_rc_track_60_deg_down_to_flat; - case TrackElemType::BrakeForDrop: - return vertical_drop_rc_track_brake_for_drop; - case TrackElemType::DiagFlatToUp60: - return vertical_drop_rc_track_diag_flat_to_60_deg_up; - case TrackElemType::DiagUp60ToFlat: - return vertical_drop_rc_track_diag_60_deg_up_to_flat; - case TrackElemType::DiagFlatToDown60: - return vertical_drop_rc_track_diag_flat_to_60_deg_down; - case TrackElemType::DiagDown60ToFlat: - return vertical_drop_rc_track_diag_60_deg_down_to_flat; - /* These track elements used to be specific to the steel vertical_drop */ - case TrackElemType::HalfLoopUp: - return vertical_drop_rc_track_half_loop_up; - case TrackElemType::HalfLoopDown: - return vertical_drop_rc_track_half_loop_down; - case TrackElemType::LeftCorkscrewUp: - return vertical_drop_rc_track_left_corkscrew_up; - case TrackElemType::RightCorkscrewUp: - return vertical_drop_rc_track_right_corkscrew_up; - case TrackElemType::LeftCorkscrewDown: - return vertical_drop_rc_track_left_corkscrew_down; - case TrackElemType::RightCorkscrewDown: - return vertical_drop_rc_track_right_corkscrew_down; - case TrackElemType::FlatToUp60LongBase: - return vertical_drop_rc_track_flat_to_60_deg_up_long_base; - case TrackElemType::Up60ToFlatLongBase: - return vertical_drop_rc_track_60_deg_up_to_flat_long_base; - case TrackElemType::Down60ToFlatLongBase: - return vertical_drop_rc_track_60_deg_down_to_flat_long_base; - case TrackElemType::FlatToDown60LongBase: - return vertical_drop_rc_track_flat_to_60_deg_down_long_base; - case TrackElemType::LeftBarrelRollUpToDown: - return vertical_drop_rc_track_left_barrel_roll_up_to_down; - case TrackElemType::RightBarrelRollUpToDown: - return vertical_drop_rc_track_right_barrel_roll_up_to_down; - case TrackElemType::LeftBarrelRollDownToUp: - return vertical_drop_rc_track_left_barrel_roll_down_to_up; - case TrackElemType::RightBarrelRollDownToUp: - return vertical_drop_rc_track_right_barrel_roll_down_to_up; - case TrackElemType::PoweredLift: - return vertical_drop_rc_track_powered_lift; - case TrackElemType::LeftLargeHalfLoopUp: - return vertical_drop_rc_track_left_large_half_loop_up; - case TrackElemType::RightLargeHalfLoopUp: - return vertical_drop_rc_track_right_large_half_loop_up; - case TrackElemType::RightLargeHalfLoopDown: - return vertical_drop_rc_track_right_large_half_loop_down; - case TrackElemType::LeftLargeHalfLoopDown: - return vertical_drop_rc_track_left_large_half_loop_down; - case TrackElemType::Up90ToInvertedFlatQuarterLoop: - return vertical_drop_rc_track_90_deg_to_inverted_flat_quarter_loop_up; - case TrackElemType::InvertedFlatToDown90QuarterLoop: - return vertical_drop_rc_track_inverted_flat_to_90_deg_quarter_loop_down; - - case TrackElemType::Booster: - return vertical_drop_rc_track_booster; - } - return nullptr; -} diff --git a/src/openrct2/ride/coaster/meta/HyperTwister.h b/src/openrct2/ride/coaster/meta/HyperTwister.h index 87f2634d0a..4949e9319d 100644 --- a/src/openrct2/ride/coaster/meta/HyperTwister.h +++ b/src/openrct2/ride/coaster/meta/HyperTwister.h @@ -9,9 +9,11 @@ #pragma once +#include "../../../paint/Supports.h" #include "../../RideData.h" #include "../../ShopItem.h" #include "../../Track.h" +#include "../BolligerMabillardTrack.hpp" // clang-format off constexpr const RideTypeDescriptor HyperTwisterRTD = @@ -27,7 +29,7 @@ constexpr const RideTypeDescriptor HyperTwisterRTD = SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_BRAKE_FOR_DROP) | (1ULL << TRACK_BOOSTER) | (1ULL << TRACK_POWERED_LIFT)), SET_FIELD(CoveredTrackPieces, 0), SET_FIELD(StartTrackPiece, TrackElemType::EndStation), - SET_FIELD(TrackPaintFunction, get_track_paint_function_twister_rc), + SET_FIELD(TrackPaintFunction, get_track_paint_function_bolliger_mabillard), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS), diff --git a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h index 55b9fae6de..b5983622ec 100644 --- a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h @@ -9,10 +9,12 @@ #pragma once +#include "../../../paint/Supports.h" #include "../../../sprites.h" #include "../../RideData.h" #include "../../ShopItem.h" #include "../../Track.h" +#include "../BolligerMabillardTrack.hpp" // clang-format off constexpr const RideTypeDescriptor TwisterRollerCoasterRTD = @@ -31,7 +33,7 @@ constexpr const RideTypeDescriptor TwisterRollerCoasterRTD = SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_BRAKE_FOR_DROP)), SET_FIELD(CoveredTrackPieces, 0), SET_FIELD(StartTrackPiece, TrackElemType::EndStation), - SET_FIELD(TrackPaintFunction, get_track_paint_function_twister_rc), + SET_FIELD(TrackPaintFunction, get_track_paint_function_bolliger_mabillard), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS), diff --git a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h index 74578315d2..07f5608e6a 100644 --- a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h +++ b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h @@ -9,10 +9,12 @@ #pragma once +#include "../../../paint/Supports.h" #include "../../../sprites.h" #include "../../RideData.h" #include "../../ShopItem.h" #include "../../Track.h" +#include "../BolligerMabillardTrack.hpp" // clang-format off constexpr const RideTypeDescriptor VerticalDropCoasterRTD = @@ -23,7 +25,7 @@ constexpr const RideTypeDescriptor VerticalDropCoasterRTD = SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_BARREL_ROLL) | (1ULL << TRACK_POWERED_LIFT) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_QUARTER_LOOP) | (1ULL << TRACK_BOOSTER)), SET_FIELD(CoveredTrackPieces, 0), SET_FIELD(StartTrackPiece, TrackElemType::EndStation), - SET_FIELD(TrackPaintFunction, get_track_paint_function_vertical_drop_rc), + SET_FIELD(TrackPaintFunction, get_track_paint_function_bolliger_mabillard), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),