Use templated function for the Twister and Vertical Drop

This commit is contained in:
Michael Steenbeek 2021-12-03 18:00:42 +01:00 committed by GitHub
parent 325b986c56
commit 9bb2547dfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
11 changed files with 1044 additions and 4982 deletions

View File

@ -326,7 +326,7 @@
<ClInclude Include="rct2\T6Exporter.h" />
<ClInclude Include="ReplayManager.h" />
<ClInclude Include="ride\CableLift.h" />
<ClInclude Include="ride\coaster\BolligerMabillardTrack.h" />
<ClInclude Include="ride\coaster\BolligerMabillardTrack.hpp" />
<ClInclude Include="ride\coaster\JuniorRollerCoaster.h" />
<ClInclude Include="ride\coaster\meta\AirPoweredVerticalCoaster.h" />
<ClInclude Include="ride\coaster\meta\BobsleighCoaster.h" />
@ -802,7 +802,6 @@
<ClCompile Include="ride\CableLift.cpp" />
<ClCompile Include="ride\coaster\AirPoweredVerticalCoaster.cpp" />
<ClCompile Include="ride\coaster\BobsleighCoaster.cpp" />
<ClCompile Include="ride\coaster\BolligerMabillardTrack.cpp" />
<ClCompile Include="ride\coaster\CompactInvertedCoaster.cpp" />
<ClCompile Include="ride\coaster\CorkscrewRollerCoaster.cpp" />
<ClCompile Include="ride\coaster\FlyingRollerCoaster.cpp" />
@ -828,8 +827,6 @@
<ClCompile Include="ride\coaster\StandUpRollerCoaster.cpp" />
<ClCompile Include="ride\coaster\Steeplechase.cpp" />
<ClCompile Include="ride\coaster\SuspendedSwingingCoaster.cpp" />
<ClCompile Include="ride\coaster\TwisterRollerCoaster.cpp" />
<ClCompile Include="ride\coaster\VerticalDropRollerCoaster.cpp" />
<ClCompile Include="ride\coaster\VirginiaReel.cpp" />
<ClCompile Include="ride\coaster\WildMouse.cpp" />
<ClCompile Include="ride\coaster\WoodenRollerCoaster.cpp" />
@ -944,4 +941,4 @@
<ClCompile Include="world\Wall.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>
</Project>

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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<METAL_SUPPORTS_TUBES_INVERTED>(
session, ride, trackSequence, direction, height, trackElement);
}
else
{

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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<METAL_SUPPORTS_TUBES>),
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),

View File

@ -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<METAL_SUPPORTS_TUBES>),
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),

View File

@ -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<METAL_SUPPORTS_BOXED>),
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),