Merge pull request #11360 from Gymnasiast/refactor/rtd-more

Refactor/rtd more
This commit is contained in:
Michael Steenbeek 2020-04-19 21:27:03 +02:00 committed by GitHub
commit cee24312d6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
86 changed files with 374 additions and 313 deletions

View File

@ -1010,7 +1010,7 @@ static void window_new_ride_paint_ride_information(
if (!(gParkFlags & PARK_FLAGS_NO_MONEY))
{
// Get price of ride
int32_t unk2 = RideConstructionDefaultTrackType[item.type];
int32_t unk2 = RideTypeDescriptors[item.type].StartTrackPiece;
money32 price = RideTrackCosts[item.type].track_price;
if (ride_type_has_flag(item.type, RIDE_TYPE_FLAG_FLAT_RIDE))
{
@ -1020,7 +1020,7 @@ static void window_new_ride_paint_ride_information(
{
price *= TrackPricing[unk2];
}
price = (price >> 17) * 10 * RideData5[item.type].price;
price = (price >> 17) * 10 * RideData5[item.type].PriceEstimateMultiplier;
//
rct_string_id stringId = STR_NEW_RIDE_COST;

View File

@ -3646,7 +3646,7 @@ static void window_ride_operating_invalidate(rct_window* w)
bool hasAlternativeType = RideTypeDescriptors[ride->type].HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE);
if (RideTypeDescriptors[ride->type].SupportsTrackPiece(TRACK_LIFT_HILL)
|| (hasAlternativeType
&& RideTypeDescriptors[RideData4[ride->type].alternate_type].SupportsTrackPiece(TRACK_LIFT_HILL)))
&& RideTypeDescriptors[RideTypeDescriptors[ride->type].AlternateType].SupportsTrackPiece(TRACK_LIFT_HILL)))
{
window_ride_operating_widgets[WIDX_LIFT_HILL_SPEED_LABEL].type = WWT_LABEL;
window_ride_operating_widgets[WIDX_LIFT_HILL_SPEED].type = WWT_SPINNER;

View File

@ -501,7 +501,8 @@ static bool is_track_enabled(int32_t trackFlagIndex)
static int32_t ride_get_alternative_type(Ride* ride)
{
return (_currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE) ? RideData4[ride->type].alternate_type : ride->type;
return (_currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE) ? RideTypeDescriptors[ride->type].AlternateType
: ride->type;
}
/* move to ride.c */
@ -562,7 +563,7 @@ rct_window* window_ride_construction_open()
_currentBrakeSpeed2 = 8;
_currentSeatRotationAngle = 4;
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;
@ -2540,8 +2541,7 @@ void window_ride_construction_update_enabled_track_pieces()
if (rideEntry == nullptr)
return;
int32_t rideType = (_currentTrackAlternative & RIDE_TYPE_ALTERNATIVE_TRACK_TYPE) ? RideData4[ride->type].alternate_type
: ride->type;
int32_t rideType = ride_get_alternative_type(ride);
if (!gCheatsEnableAllDrawableTrackPieces && RideGroupManager::RideTypeHasRideGroups(rideType))
{

View File

@ -1347,7 +1347,7 @@ static void ride_construction_reset_current_piece()
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK) || ride->num_stations == 0)
{
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;
@ -1906,7 +1906,7 @@ int32_t ride_initialise_construction_window(Ride* ride)
if (ride == nullptr)
return 0;
_currentTrackCurve = RideConstructionDefaultTrackType[ride->type] | 0x100;
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
_currentTrackSlopeEnd = 0;
_currentTrackBankEnd = 0;
_currentTrackLiftHill = 0;
@ -4452,9 +4452,9 @@ static Vehicle* vehicle_create_car(
{
if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL))
{
if (RideConstructionDefaultTrackType[ride->type] != FLAT_TRACK_ELEM_1_X_4_B)
if (RideTypeDescriptors[ride->type].StartTrackPiece != FLAT_TRACK_ELEM_1_X_4_B)
{
if (RideConstructionDefaultTrackType[ride->type] != FLAT_TRACK_ELEM_1_X_4_A)
if (RideTypeDescriptors[ride->type].StartTrackPiece != FLAT_TRACK_ELEM_1_X_4_A)
{
if (ride->type == RIDE_TYPE_ENTERPRISE)
{

View File

@ -982,97 +982,97 @@ const uint8_t AllRideModesAvailable[] = {
// rct2: 0x0097D4F0, 0x0097D4F1, 0x0097D4F2, 0x0097D4F4, 0x0097D4F5
const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT] = {
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, 0 }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
{ 20, 20, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MINIATURE_RAILWAY
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MONORAIL
{ 20, 20, MUSIC_STYLE_WILD_WEST, 0 }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
{ 10, 0, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_BOAT_HIRE
{ 20, 20, MUSIC_STYLE_WILD_WEST, 0 }, // RIDE_TYPE_WOODEN_WILD_MOUSE
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_STEEPLECHASE
{ 15, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_CAR_RIDE
{ 20, 0, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_LAUNCHED_FREEFALL
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_BOBSLEIGH_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_OBSERVATION_TOWER
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_DINGHY_SLIDE
{ 20, 20, MUSIC_STYLE_WILD_WEST, 0 }, // RIDE_TYPE_MINE_TRAIN_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_CHAIRLIFT
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MAZE
{ 15, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_SPIRAL_SLIDE
{ 20, 0, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_GO_KARTS
{ 20, 20, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_LOG_FLUME
{ 20, 20, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_RIVER_RAPIDS
{ 15, 0, MUSIC_STYLE_DODGEMS_BEAT, 0 }, // RIDE_TYPE_DODGEMS
{ 15, 0, MUSIC_STYLE_PIRATES, 0 }, // RIDE_TYPE_SWINGING_SHIP
{ 15, 0, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
{ 9, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_FOOD_STALL
{ 15, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_1D
{ 12, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_DRINK_STALL
{ 8, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_1F
{ 15, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_SHOP
{ 10, 0, MUSIC_STYLE_FAIRGROUND_ORGAN, 0 }, // RIDE_TYPE_MERRY_GO_ROUND
{ 9, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_22
{ 6, 25, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_INFORMATION_KIOSK
{ 0, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_TOILETS
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_FERRIS_WHEEL
{ 20, 0, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_MOTION_SIMULATOR
{ 20, 0, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_3D_CINEMA
{ 20, 0, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_TOP_SPIN
{ 5, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_SPACE_RINGS
{ 20, 0, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_LIFT
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
{ 0, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_CASH_MACHINE
{ 10, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_TWIST
{ 10, 0, MUSIC_STYLE_HORROR, 0 }, // RIDE_TYPE_HAUNTED_HOUSE
{ 0, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_FIRST_AID
{ 15, 0, MUSIC_STYLE_CIRCUS_SHOW, 0 }, // RIDE_TYPE_CIRCUS
{ 15, 0, MUSIC_STYLE_HORROR, 0 }, // RIDE_TYPE_GHOST_TRAIN
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WILD_WEST, 0 }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_STEEL_WILD_MOUSE
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_ROCK, RIDE_TYPE_FLYING_ROLLER_COASTER_ALT }, // RIDE_TYPE_FLYING_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_VIRGINIA_REEL
{ 20, 20, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_SPLASH_BOATS
{ 15, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MINI_HELICOPTERS
{ 20, 20, MUSIC_STYLE_ROCK, RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_SUSPENDED_MONORAIL
{ 20, 20, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
{ 15, 20, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MINI_GOLF
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, 0 }, // RIDE_TYPE_GIGA_COASTER
{ 20, 0, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_ROTO_DROP
{ 15, 0, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_FLYING_SAUCERS
{ 10, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_CROOKED_HOUSE
{ 15, 0, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MONORAIL_CYCLES
{ 20, 20, MUSIC_STYLE_TECHNO, 0 }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
{ 20, 20, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_WATER_COASTER
{ 20, 0, MUSIC_STYLE_ROCK_STYLE_2, 0 }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_2, 0 }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
{ 15, 0, MUSIC_STYLE_EGYPTIAN, 0 }, // RIDE_TYPE_MAGIC_CARPET
{ 10, 0, MUSIC_STYLE_WATER, 0 }, // RIDE_TYPE_SUBMARINE_RIDE
{ 10, 20, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_RIVER_RAFTS
{ 7, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_50
{ 20, 0, MUSIC_STYLE_ROCK_STYLE_2, 0 }, // RIDE_TYPE_ENTERPRISE
{ 12, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_52
{ 15, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_53
{ 12, 0, MUSIC_STYLE_GENTLE, 0 }, // RIDE_TYPE_54
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_55
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
{ 20, 20, MUSIC_STYLE_SUMMER, 0 }, // RIDE_TYPE_MINI_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WILD_WEST, 0 }, // RIDE_TYPE_MINE_RIDE
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_2, 0 }, // RIDE_TYPE_59
{ 20, 20, MUSIC_STYLE_ROCK, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
{ 20, 20, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MINIATURE_RAILWAY
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MONORAIL
{ 20, 20, MUSIC_STYLE_WILD_WEST, }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
{ 10, 0, MUSIC_STYLE_WATER, }, // RIDE_TYPE_BOAT_HIRE
{ 20, 20, MUSIC_STYLE_WILD_WEST, }, // RIDE_TYPE_WOODEN_WILD_MOUSE
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_STEEPLECHASE
{ 15, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_CAR_RIDE
{ 20, 0, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_LAUNCHED_FREEFALL
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_BOBSLEIGH_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_OBSERVATION_TOWER
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WATER, }, // RIDE_TYPE_DINGHY_SLIDE
{ 20, 20, MUSIC_STYLE_WILD_WEST, }, // RIDE_TYPE_MINE_TRAIN_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_CHAIRLIFT
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MAZE
{ 15, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_SPIRAL_SLIDE
{ 20, 0, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_GO_KARTS
{ 20, 20, MUSIC_STYLE_WATER, }, // RIDE_TYPE_LOG_FLUME
{ 20, 20, MUSIC_STYLE_WATER, }, // RIDE_TYPE_RIVER_RAPIDS
{ 15, 0, MUSIC_STYLE_DODGEMS_BEAT, }, // RIDE_TYPE_DODGEMS
{ 15, 0, MUSIC_STYLE_PIRATES, }, // RIDE_TYPE_SWINGING_SHIP
{ 15, 0, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
{ 9, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_FOOD_STALL
{ 15, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_1D
{ 12, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_DRINK_STALL
{ 8, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_1F
{ 15, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_SHOP
{ 10, 0, MUSIC_STYLE_FAIRGROUND_ORGAN, }, // RIDE_TYPE_MERRY_GO_ROUND
{ 9, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_22
{ 6, 25, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_INFORMATION_KIOSK
{ 0, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_TOILETS
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_FERRIS_WHEEL
{ 20, 0, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_MOTION_SIMULATOR
{ 20, 0, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_3D_CINEMA
{ 20, 0, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_TOP_SPIN
{ 5, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_SPACE_RINGS
{ 20, 0, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_LIFT
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
{ 0, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_CASH_MACHINE
{ 10, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_TWIST
{ 10, 0, MUSIC_STYLE_HORROR, }, // RIDE_TYPE_HAUNTED_HOUSE
{ 0, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_FIRST_AID
{ 15, 0, MUSIC_STYLE_CIRCUS_SHOW, }, // RIDE_TYPE_CIRCUS
{ 15, 0, MUSIC_STYLE_HORROR, }, // RIDE_TYPE_GHOST_TRAIN
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WILD_WEST, }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_STEEL_WILD_MOUSE
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_FLYING_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_VIRGINIA_REEL
{ 20, 20, MUSIC_STYLE_WATER, }, // RIDE_TYPE_SPLASH_BOATS
{ 15, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MINI_HELICOPTERS
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_SUSPENDED_MONORAIL
{ 20, 20, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT
{ 20, 20, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
{ 15, 20, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
{ 10, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MINI_GOLF
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, }, // RIDE_TYPE_GIGA_COASTER
{ 20, 0, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_ROTO_DROP
{ 15, 0, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_FLYING_SAUCERS
{ 10, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_CROOKED_HOUSE
{ 15, 0, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MONORAIL_CYCLES
{ 20, 20, MUSIC_STYLE_TECHNO, }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
{ 20, 20, MUSIC_STYLE_WATER, }, // RIDE_TYPE_WATER_COASTER
{ 20, 0, MUSIC_STYLE_ROCK_STYLE_2, }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_2, }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
{ 15, 0, MUSIC_STYLE_EGYPTIAN, }, // RIDE_TYPE_MAGIC_CARPET
{ 10, 0, MUSIC_STYLE_WATER, }, // RIDE_TYPE_SUBMARINE_RIDE
{ 10, 20, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_RIVER_RAFTS
{ 7, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_50
{ 20, 0, MUSIC_STYLE_ROCK_STYLE_2, }, // RIDE_TYPE_ENTERPRISE
{ 12, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_52
{ 15, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_53
{ 12, 0, MUSIC_STYLE_GENTLE, }, // RIDE_TYPE_54
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_55
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
{ 20, 20, MUSIC_STYLE_SUMMER, }, // RIDE_TYPE_MINI_ROLLER_COASTER
{ 20, 20, MUSIC_STYLE_WILD_WEST, }, // RIDE_TYPE_MINE_RIDE
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_2, }, // RIDE_TYPE_59
{ 20, 20, MUSIC_STYLE_ROCK, }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
// rct2: 0x0097DD78
@ -1172,97 +1172,97 @@ const ride_cost RideTrackCosts[RIDE_TYPE_COUNT] = {
// 0x0097D218
const rct_ride_data_5 RideData5[RIDE_TYPE_COUNT] = {
{ 19, 24, 9, 31, 11, 50, 85, 0 }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
{ 25, 24, 9, 18, 11, 50, 90, 0 }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
{ 24, 40, 29, 26, 8, 50, 90, 0 }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
{ 38, 40, 29, 27, 8, 50, 100, 0 }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
{ 15, 24, 4, 18, 7, 40, 60, 0 }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
{ 7, 32, 5, 39, 9, 50, 50, 0 }, // RIDE_TYPE_MINIATURE_RAILWAY
{ 8, 32, 8, 78, 9, 50, 60, 0 }, // RIDE_TYPE_MONORAIL
{ 10, 24, 24, 3, 8, 40, 50, 0 }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
{ 255, 16, 0, 255, 3, 5, 40, 0 }, // RIDE_TYPE_BOAT_HIRE
{ 14, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_WOODEN_WILD_MOUSE
{ 14, 24, 7, 4, 7, 40, 60, 0 }, // RIDE_TYPE_STEEPLECHASE
{ 6, 24, 4, 2, 7, 30, 50, 0 }, // RIDE_TYPE_CAR_RIDE
{ 255, 32, 3, 15, 2, 4, 65, 0 }, // RIDE_TYPE_LAUNCHED_FREEFALL
{ 19, 24, 5, 25, 7, 45, 75, 0 }, // RIDE_TYPE_BOBSLEIGH_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_OBSERVATION_TOWER
{ 35, 24, 5, 18, 7, 50, 95, 0 }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
{ 15, 24, 5, 5, 7, 40, 55, 0 }, // RIDE_TYPE_DINGHY_SLIDE
{ 21, 24, 4, 15, 7, 50, 85, 0 }, // RIDE_TYPE_MINE_TRAIN_COASTER
{ 40, 32, 28, 18, 2, 30, 55, 0 }, // RIDE_TYPE_CHAIRLIFT
{ 28, 24, 8, 18, 11, 50, 100, 0 }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
{ 6, 24, 0, 18, 1, 8, 40, 0 }, // RIDE_TYPE_MAZE
{ 15, 128, 0, 255, 2, 1, 40, 0 }, // RIDE_TYPE_SPIRAL_SLIDE
{ 7, 24, 2, 255, 1, 20, 55, 0 }, // RIDE_TYPE_GO_KARTS
{ 9, 24, 7, 255, 9, 40, 65, 0 }, // RIDE_TYPE_LOG_FLUME
{ 9, 32, 14, 255, 15, 40, 70, 0 }, // RIDE_TYPE_RIVER_RAPIDS
{ 9, 48, 2, 255, 2, 1, 35, 0 }, // RIDE_TYPE_DODGEMS
{ 12, 112, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_SWINGING_SHIP
{ 15, 176, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_FOOD_STALL
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_1D
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_DRINK_STALL
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_1F
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_SHOP
{ 12, 64, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_MERRY_GO_ROUND
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_22
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_INFORMATION_KIOSK
{ 12, 32, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_TOILETS
{ 16, 176, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_FERRIS_WHEEL
{ 12, 64, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_MOTION_SIMULATOR
{ 12, 128, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_3D_CINEMA
{ 16, 112, 3, 255, 2, 1, 55, 0 }, // RIDE_TYPE_TOP_SPIN
{ 16, 48, 3, 255, 2, 1, 30, 0 }, // RIDE_TYPE_SPACE_RINGS
{ 255, 32, 4, 255, 7, 45, 70, 0 }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_LIFT
{ 53, 24, 8, 25, 11, 42, 95, 0 }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
{ 12, 32, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_CASH_MACHINE
{ 12, 64, 3, 255, 2, 1, 40, 0 }, // RIDE_TYPE_TWIST
{ 16, 160, 3, 255, 2, 1, 22, 0 }, // RIDE_TYPE_HAUNTED_HOUSE
{ 12, 48, 0, 255, 0, 1, 5, 0 }, // RIDE_TYPE_FIRST_AID
{ 12, 128, 3, 255, 2, 1, 39, 0 }, // RIDE_TYPE_CIRCUS
{ 8, 24, 6, 2, 7, 30, 50, 0 }, // RIDE_TYPE_GHOST_TRAIN
{ 54, 24, 8, 31, 9, 55, 120, 0 }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
{ 41, 24, 8, 19, 11, 50, 105, 0 }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
{ 15, 24, 4, 15, 11, 37, 65, 0 }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
{ 16, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_STEEL_WILD_MOUSE
{ 40, 24, 8, 78, 11, 50, 100, 0 }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
{ 40, 24, 8, 78, 11, 50, 100, 0 }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT
{ 30, 24, 8, 35, 11, 50, 100, 0 }, // RIDE_TYPE_FLYING_ROLLER_COASTER
{ 30, 24, 8, 35, 11, 50, 100, 0 }, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT
{ 14, 24, 6, 15, 7, 25, 50, 0 }, // RIDE_TYPE_VIRGINIA_REEL
{ 16, 24, 7, 255, 11, 30, 65, 0 }, // RIDE_TYPE_SPLASH_BOATS
{ 7, 24, 4, 2, 7, 30, 45, 0 }, // RIDE_TYPE_MINI_HELICOPTERS
{ 26, 24, 8, 25, 11, 50, 100, 0 }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
{ 12, 40, 32, 78, 8, 50, 60, 0 }, // RIDE_TYPE_SUSPENDED_MONORAIL
{ 26, 24, 8, 25, 11, 50, 100, 0 }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT
{ 18, 24, 8, 15, 11, 37, 65, 0 }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
{ 22, 24, 15, 18, 9, 30, 35, 0 }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
{ 7, 32, 2, 255, 2, 20, 23, 0 }, // RIDE_TYPE_MINI_GOLF
{ 86, 24, 9, 31, 11, 55, 120, 0 }, // RIDE_TYPE_GIGA_COASTER
{ 255, 32, 3, 15, 2, 4, 45, 0 }, // RIDE_TYPE_ROTO_DROP
{ 9, 48, 2, 255, 2, 1, 35, 0 }, // RIDE_TYPE_FLYING_SAUCERS
{ 16, 96, 3, 255, 2, 1, 22, 0 }, // RIDE_TYPE_CROOKED_HOUSE
{ 5, 24, 8, 2, 7, 30, 45, 0 }, // RIDE_TYPE_MONORAIL_CYCLES
{ 27, 40, 29, 18, 8, 50, 80, 0 }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
{ 18, 24, 4, 13, 7, 40, 60, 0 }, // RIDE_TYPE_WATER_COASTER
{ 255, 32, 4, 255, 7, 45, 70, 0 }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
{ 16, 24, 24, 4, 7, 40, 55, 0 }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
{ 15, 176, 7, 255, 11, 1, 35, 0 }, // RIDE_TYPE_MAGIC_CARPET
{ 255, 16, 0, 255, 3, 5, 40, 0 }, // RIDE_TYPE_SUBMARINE_RIDE
{ 12, 24, 7, 255, 11, 30, 65, 0 }, // RIDE_TYPE_RIVER_RAFTS
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_50
{ 16, 160, 3, 255, 2, 1, 45, 0 }, // RIDE_TYPE_ENTERPRISE
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_52
{ 12, 64, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_53
{ 12, 48, 0, 255, 0, 1, 15, 0 }, // RIDE_TYPE_54
{ 44, 24, 8, 18, 11, 50, 100, 0 }, // RIDE_TYPE_55
{ 45, 40, 29, 23, 8, 25, 75, 0 }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
{ 16, 24, 9, 10, 11, 40, 60, 0 }, // RIDE_TYPE_MINI_ROLLER_COASTER
{ 13, 24, 9, 27, 11, 40, 70, 0 }, // RIDE_TYPE_MINE_RIDE
{ 16, 24, 4, 4, 7, 40, 55, 0 }, // RIDE_TYPE_59
{ 35, 24, 5, 18, 7, 50, 95, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
{ 19, 24, 9, 31, 11, 50, }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
{ 25, 24, 9, 18, 11, 50, }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
{ 24, 40, 29, 26, 8, 50, }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
{ 38, 40, 29, 27, 8, 50, }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
{ 15, 24, 4, 18, 7, 40, }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
{ 7, 32, 5, 39, 9, 50, }, // RIDE_TYPE_MINIATURE_RAILWAY
{ 8, 32, 8, 78, 9, 50, }, // RIDE_TYPE_MONORAIL
{ 10, 24, 24, 3, 8, 40, }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
{ 255, 16, 0, 255, 3, 5, }, // RIDE_TYPE_BOAT_HIRE
{ 14, 24, 4, 4, 7, 40, }, // RIDE_TYPE_WOODEN_WILD_MOUSE
{ 14, 24, 7, 4, 7, 40, }, // RIDE_TYPE_STEEPLECHASE
{ 6, 24, 4, 2, 7, 30, }, // RIDE_TYPE_CAR_RIDE
{ 255, 32, 3, 15, 2, 4, }, // RIDE_TYPE_LAUNCHED_FREEFALL
{ 19, 24, 5, 25, 7, 45, }, // RIDE_TYPE_BOBSLEIGH_COASTER
{ 255, 32, 3, 15, 2, 4, }, // RIDE_TYPE_OBSERVATION_TOWER
{ 35, 24, 5, 18, 7, 50, }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
{ 15, 24, 5, 5, 7, 40, }, // RIDE_TYPE_DINGHY_SLIDE
{ 21, 24, 4, 15, 7, 50, }, // RIDE_TYPE_MINE_TRAIN_COASTER
{ 40, 32, 28, 18, 2, 30, }, // RIDE_TYPE_CHAIRLIFT
{ 28, 24, 8, 18, 11, 50, }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
{ 6, 24, 0, 18, 1, 8, }, // RIDE_TYPE_MAZE
{ 15, 128, 0, 255, 2, 1, }, // RIDE_TYPE_SPIRAL_SLIDE
{ 7, 24, 2, 255, 1, 20, }, // RIDE_TYPE_GO_KARTS
{ 9, 24, 7, 255, 9, 40, }, // RIDE_TYPE_LOG_FLUME
{ 9, 32, 14, 255, 15, 40, }, // RIDE_TYPE_RIVER_RAPIDS
{ 9, 48, 2, 255, 2, 1, }, // RIDE_TYPE_DODGEMS
{ 12, 112, 7, 255, 11, 1, }, // RIDE_TYPE_SWINGING_SHIP
{ 15, 176, 7, 255, 11, 1, }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_FOOD_STALL
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_1D
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_DRINK_STALL
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_1F
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_SHOP
{ 12, 64, 3, 255, 2, 1, }, // RIDE_TYPE_MERRY_GO_ROUND
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_22
{ 12, 48, 0, 255, 0, 1, }, // RIDE_TYPE_INFORMATION_KIOSK
{ 12, 32, 0, 255, 0, 1, }, // RIDE_TYPE_TOILETS
{ 16, 176, 3, 255, 2, 1, }, // RIDE_TYPE_FERRIS_WHEEL
{ 12, 64, 3, 255, 2, 1, }, // RIDE_TYPE_MOTION_SIMULATOR
{ 12, 128, 3, 255, 2, 1, }, // RIDE_TYPE_3D_CINEMA
{ 16, 112, 3, 255, 2, 1, }, // RIDE_TYPE_TOP_SPIN
{ 16, 48, 3, 255, 2, 1, }, // RIDE_TYPE_SPACE_RINGS
{ 255, 32, 4, 255, 7, 45, }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
{ 255, 32, 3, 15, 2, 4, }, // RIDE_TYPE_LIFT
{ 53, 24, 8, 25, 11, 42, }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
{ 12, 32, 0, 255, 0, 1, }, // RIDE_TYPE_CASH_MACHINE
{ 12, 64, 3, 255, 2, 1, }, // RIDE_TYPE_TWIST
{ 16, 160, 3, 255, 2, 1, }, // RIDE_TYPE_HAUNTED_HOUSE
{ 12, 48, 0, 255, 0, 1, }, // RIDE_TYPE_FIRST_AID
{ 12, 128, 3, 255, 2, 1, }, // RIDE_TYPE_CIRCUS
{ 8, 24, 6, 2, 7, 30, }, // RIDE_TYPE_GHOST_TRAIN
{ 54, 24, 8, 31, 9, 55, }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
{ 41, 24, 8, 19, 11, 50, }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
{ 15, 24, 4, 15, 11, 37, }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
{ 16, 24, 4, 4, 7, 40, }, // RIDE_TYPE_STEEL_WILD_MOUSE
{ 40, 24, 8, 78, 11, 50, }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
{ 40, 24, 8, 78, 11, 50, }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT
{ 30, 24, 8, 35, 11, 50, }, // RIDE_TYPE_FLYING_ROLLER_COASTER
{ 30, 24, 8, 35, 11, 50, }, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT
{ 14, 24, 6, 15, 7, 25, }, // RIDE_TYPE_VIRGINIA_REEL
{ 16, 24, 7, 255, 11, 30, }, // RIDE_TYPE_SPLASH_BOATS
{ 7, 24, 4, 2, 7, 30, }, // RIDE_TYPE_MINI_HELICOPTERS
{ 26, 24, 8, 25, 11, 50, }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
{ 12, 40, 32, 78, 8, 50, }, // RIDE_TYPE_SUSPENDED_MONORAIL
{ 26, 24, 8, 25, 11, 50, }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT
{ 18, 24, 8, 15, 11, 37, }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
{ 22, 24, 15, 18, 9, 30, }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
{ 7, 32, 2, 255, 2, 20, }, // RIDE_TYPE_MINI_GOLF
{ 86, 24, 9, 31, 11, 55, }, // RIDE_TYPE_GIGA_COASTER
{ 255, 32, 3, 15, 2, 4, }, // RIDE_TYPE_ROTO_DROP
{ 9, 48, 2, 255, 2, 1, }, // RIDE_TYPE_FLYING_SAUCERS
{ 16, 96, 3, 255, 2, 1, }, // RIDE_TYPE_CROOKED_HOUSE
{ 5, 24, 8, 2, 7, 30, }, // RIDE_TYPE_MONORAIL_CYCLES
{ 27, 40, 29, 18, 8, 50, }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
{ 18, 24, 4, 13, 7, 40, }, // RIDE_TYPE_WATER_COASTER
{ 255, 32, 4, 255, 7, 45, }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
{ 16, 24, 24, 4, 7, 40, }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
{ 15, 176, 7, 255, 11, 1, }, // RIDE_TYPE_MAGIC_CARPET
{ 255, 16, 0, 255, 3, 5, }, // RIDE_TYPE_SUBMARINE_RIDE
{ 12, 24, 7, 255, 11, 30, }, // RIDE_TYPE_RIVER_RAFTS
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_50
{ 16, 160, 3, 255, 2, 1, }, // RIDE_TYPE_ENTERPRISE
{ 12, 48, 0, 255, 0, 1, }, // RIDE_TYPE_52
{ 12, 64, 0, 255, 0, 1, }, // RIDE_TYPE_53
{ 12, 48, 0, 255, 0, 1, }, // RIDE_TYPE_54
{ 44, 24, 8, 18, 11, 50, }, // RIDE_TYPE_55
{ 45, 40, 29, 23, 8, 25, }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
{ 16, 24, 9, 10, 11, 40, }, // RIDE_TYPE_MINI_ROLLER_COASTER
{ 13, 24, 9, 27, 11, 40, }, // RIDE_TYPE_MINE_RIDE
{ 16, 24, 4, 4, 7, 40, }, // RIDE_TYPE_59
{ 35, 24, 5, 18, 7, 50, }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
const rct_ride_entry_vehicle CableLiftVehicle = {
@ -1318,11 +1318,6 @@ const uint16_t RideFilmLength[3] = {
7000 // SPACE_RAIDERS
};
/* rct2: 0x009A0AC4 */
const uint16_t RideCrookedHouseLength[1] = {
600
};
/** rct2: 0x0097D7CB */
const int32_t RidePhotoItems[] = {
SHOP_ITEM_PHOTO, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
@ -1608,101 +1603,6 @@ const rct_ride_properties RideProperties[RIDE_TYPE_COUNT] = {
{ 10, 31, 26, 18, 18, 0 }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
/** rct2: 0x0097CC68 */
const uint8_t RideConstructionDefaultTrackType[] = {
TRACK_ELEM_END_STATION, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINIATURE_RAILWAY
TRACK_ELEM_END_STATION, // RIDE_TYPE_MONORAIL
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_SUSPENDED_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_BOAT_HIRE
TRACK_ELEM_END_STATION, // RIDE_TYPE_WOODEN_WILD_MOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_STEEPLECHASE
TRACK_ELEM_END_STATION, // RIDE_TYPE_CAR_RIDE
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_LAUNCHED_FREEFALL
TRACK_ELEM_END_STATION, // RIDE_TYPE_BOBSLEIGH_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_OBSERVATION_TOWER
TRACK_ELEM_END_STATION, // RIDE_TYPE_LOOPING_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_DINGHY_SLIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINE_TRAIN_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_CHAIRLIFT
TRACK_ELEM_END_STATION, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
TRACK_ELEM_MAZE, // RIDE_TYPE_MAZE
FLAT_TRACK_ELEM_2_X_2, // RIDE_TYPE_SPIRAL_SLIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_GO_KARTS
TRACK_ELEM_END_STATION, // RIDE_TYPE_LOG_FLUME
TRACK_ELEM_END_STATION, // RIDE_TYPE_RIVER_RAPIDS
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_DODGEMS
FLAT_TRACK_ELEM_1_X_5, // RIDE_TYPE_SWINGING_SHIP
FLAT_TRACK_ELEM_1_X_4_B, // RIDE_TYPE_SWINGING_INVERTER_SHIP
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_FOOD_STALL
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_1D
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_DRINK_STALL
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_1F
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_SHOP
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_MERRY_GO_ROUND
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_22
FLAT_TRACK_ELEM_1_X_1_B, // RIDE_TYPE_INFORMATION_KIOSK
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_TOILETS
FLAT_TRACK_ELEM_1_X_4_C, // RIDE_TYPE_FERRIS_WHEEL
FLAT_TRACK_ELEM_2_X_2, // RIDE_TYPE_MOTION_SIMULATOR
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_3D_CINEMA
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_TOP_SPIN
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_SPACE_RINGS
TRACK_ELEM_END_STATION, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_LIFT
TRACK_ELEM_END_STATION, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_CASH_MACHINE
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_TWIST
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_HAUNTED_HOUSE
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_FIRST_AID
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_CIRCUS
TRACK_ELEM_END_STATION, // RIDE_TYPE_GHOST_TRAIN
TRACK_ELEM_END_STATION, // RIDE_TYPE_TWISTER_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_WOODEN_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_STEEL_WILD_MOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT
TRACK_ELEM_END_STATION, // RIDE_TYPE_FLYING_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_FLYING_ROLLER_COASTER_ALT
TRACK_ELEM_END_STATION, // RIDE_TYPE_VIRGINIA_REEL
TRACK_ELEM_END_STATION, // RIDE_TYPE_SPLASH_BOATS
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_HELICOPTERS
TRACK_ELEM_END_STATION, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUSPENDED_MONORAIL
TRACK_ELEM_END_STATION, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT
TRACK_ELEM_END_STATION, // RIDE_TYPE_REVERSER_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_GOLF
TRACK_ELEM_END_STATION, // RIDE_TYPE_GIGA_COASTER
TRACK_ELEM_TOWER_BASE, // RIDE_TYPE_ROTO_DROP
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_FLYING_SAUCERS
FLAT_TRACK_ELEM_3_X_3, // RIDE_TYPE_CROOKED_HOUSE
TRACK_ELEM_END_STATION, // RIDE_TYPE_MONORAIL_CYCLES
TRACK_ELEM_END_STATION, // RIDE_TYPE_COMPACT_INVERTED_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_WATER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
FLAT_TRACK_ELEM_1_X_4_A, // RIDE_TYPE_MAGIC_CARPET
TRACK_ELEM_END_STATION, // RIDE_TYPE_SUBMARINE_RIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_RIVER_RAFTS
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_50
FLAT_TRACK_ELEM_4_X_4, // RIDE_TYPE_ENTERPRISE
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_52
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_53
FLAT_TRACK_ELEM_1_X_1_A, // RIDE_TYPE_54
TRACK_ELEM_END_STATION, // RIDE_TYPE_55
TRACK_ELEM_END_STATION, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINI_ROLLER_COASTER
TRACK_ELEM_END_STATION, // RIDE_TYPE_MINE_RIDE
TRACK_ELEM_END_STATION, // RIDE_TYPE_59
TRACK_ELEM_END_STATION, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
};
#define TRACK_COLOUR_PRESETS(...) {static_cast<uint8_t>(std::size<TrackColour>({__VA_ARGS__})), {__VA_ARGS__}}
#define DEFAULT_FLAT_RIDE_COLOUR_PRESET TRACK_COLOUR_PRESETS( { COLOUR_BRIGHT_RED, COLOUR_LIGHT_BLUE, COLOUR_YELLOW } )
@ -2298,20 +2198,20 @@ const rct_string_id RideModeNames[] = {
STR_RIDE_MODE_POWERED_LAUNCH,
STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE,
};
// clang-format on
// clang-format off
static constexpr const RideTypeDescriptor DummyRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_NONE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, nullptr),
SET_FIELD(Flags, 0),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
};
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_NONE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, nullptr),
SET_FIELD(Flags, 0),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
};
// clang-format on
constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {

View File

@ -57,7 +57,6 @@ struct rct_ride_data_4
uint8_t price;
uint8_t price_secondary;
uint8_t default_music;
uint8_t alternate_type;
};
struct ride_cost
@ -73,9 +72,7 @@ struct rct_ride_data_5
int8_t z_offset;
uint8_t max_mass;
uint8_t z;
uint8_t price;
uint8_t bonus_value; // Deprecated. Use rideBonusValue instead
uint8_t pad = 0;
uint8_t PriceEstimateMultiplier;
};
struct rct_ride_lift_data
@ -87,12 +84,15 @@ struct rct_ride_lift_data
struct RideTypeDescriptor
{
uint8_t AlternateType;
uint8_t Category;
// rct2: 0x0097C468 (0 - 31) and 0x0097C5D4 (32 - 63)
uint64_t EnabledTrackPieces;
// Pieces that this ride type _can_ draw, but are disabled because their vehicles lack the relevant sprites,
// or because they are not realistic for the ride type (e.g. LIM boosters in Mini Roller Coasters).
uint64_t ExtraTrackPieces;
/** rct2: 0x0097CC68 */
uint64_t StartTrackPiece;
TRACK_PAINT_FUNCTION_GETTER TrackPaintFunction;
uint64_t Flags;
RideNameConvention NameConvention;
@ -238,12 +238,9 @@ extern const rct_ride_data_5 RideData5[RIDE_TYPE_COUNT];
extern const rct_ride_entry_vehicle CableLiftVehicle;
extern const uint16_t RideFilmLength[3];
extern const uint16_t RideCrookedHouseLength[1];
extern const rating_tuple RideRatings[RIDE_TYPE_COUNT];
extern const uint8_t RideConstructionDefaultTrackType[RIDE_TYPE_COUNT];
extern const track_colour_preset_list RideColourPresets[RIDE_TYPE_COUNT];
extern const rct_string_id RideModeNames[RIDE_MODE_COUNT];

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_LIFT_HILL_CURVE) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_REVERSE_FREEFALL) | (1ULL << TRACK_SLOPE_TO_FLAT)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_air_powered_vertical_rc),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor BobsleighCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_bobsleigh_rc),
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_PEEP_CHECK_GFORCES |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CompactInvertedCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_TWIST) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_LARGE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_compact_inverted_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CorkscrewRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_STEEP_LONG) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_corkscrew_rc),
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 |

View File

@ -16,9 +16,11 @@
// Non-inverted variant
constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_FLYING_ROLLER_COASTER_ALT),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_HALF_LOOP_UNINVERTED)),
SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_BOOSTER)),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_flying_rc),
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 |
@ -32,9 +34,11 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
// Inverted variant
constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_NONE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_LARGE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_INLINE_TWIST_INVERTED) | (1ULL << TRACK_HALF_LOOP_INVERTED)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, nullptr),
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_FLAG_HAS_LARGE_CURVES |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor GigaCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_SLOPE_STEEP_LONG) | (1ULL << TRACK_LIFT_HILL_CABLE) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_giga_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_HEARTLINE_ROLL) | (1ULL << TRACK_HEARTLINE_TRANSFER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_heartline_twister_rc),
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_PEEP_CHECK_GFORCES),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedHairpinCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_inverted_hairpin_rc),
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_PEEP_CHECK_GFORCES |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedImpulseCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_CURVE_VERTICAL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_inverted_impulse_rc),
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_PEEP_CHECK_GFORCES |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_TWIST) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_LARGE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_inverted_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor JuniorRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_CURVE) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_junior_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_TWIST) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_CURVE_VERTICAL) | (1ULL << TRACK_QUARTER_LOOP)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_lim_launched_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_HALF_LOOP_UNINVERTED) | (1ULL << TRACK_CORKSCREW_UNINVERTED)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_lay_down_rc),
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 |
@ -29,9 +31,11 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_NONE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_LARGE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_INVERTED) | (1ULL << TRACK_HALF_LOOP_INVERTED) | (1ULL << TRACK_CORKSCREW_INVERTED)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, nullptr),
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_FLAG_HAS_LARGE_CURVES),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LoopingRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_looping_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MineRideRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_ON_RIDE_PHOTO)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mine_ride),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MineTrainCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mine_train_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MiniRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_LIFT_HILL)),
SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_BOOSTER)),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mini_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mini_suspended_rc),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_UNINVERTED) | (1ULL << TRACK_QUARTER_LOOP_UNINVERTED)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_multi_dimension_rc),
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 |
@ -30,9 +32,11 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_NONE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_INLINE_TWIST_INVERTED) | (1ULL << TRACK_QUARTER_LOOP_INVERTED)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, nullptr),
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_FLAG_HAS_LARGE_CURVES),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_REVERSE_FREEFALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverse_freefall_rc),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ReverserRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_REVERSER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverser_rc),
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_PEEP_CHECK_GFORCES),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SideFrictionRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_SLOPE_STEEP)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_side_friction_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SpiralRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_CURVED)),
SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_BOOSTER)),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mini_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor StandUpRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_stand_up_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SteelWildMouseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ROTATION_CONTROL_TOGGLE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_wild_mouse),
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_ALLOW_DOORS_ON_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SteeplechaseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_steeplechase),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SuspendedSwingingCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_LARGE_UNBANKED) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_suspended_swinging_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor TwisterRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HALF_LOOP) | (1ULL << TRACK_CORKSCREW) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_BARREL_ROLL) | (1ULL << TRACK_POWERED_LIFT) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_SLOPE_STEEP_LONG) | (1ULL << TRACK_CURVE_VERTICAL) | (1ULL << TRACK_QUARTER_LOOP) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_twister_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor VerticalDropCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_SLOPE_VERTICAL) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING) | (1ULL << TRACK_CURVE_VERTICAL) | (1ULL << TRACK_HALF_LOOP_LARGE) | (1ULL << TRACK_BRAKE_FOR_DROP)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_vertical_drop_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor VirginiaReelRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_virginia_reel),
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_PEEP_CHECK_GFORCES),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor WaterCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_BOOSTER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_water_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_FLAT) | (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_FLAT_ROLL_BANKING) | (1ULL << TRACK_VERTICAL_LOOP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_CURVE) | (1ULL << TRACK_SLOPE_CURVE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_HELIX_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_WATER_SPLASH) | (1ULL << TRACK_SLOPE_CURVE_BANKED) | (1ULL << TRACK_BLOCK_BRAKES) | (1ULL << TRACK_SLOPE_ROLL_BANKING)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_wooden_rc),
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 |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor WoodenWildMouseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_ROLLERCOASTER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_LIFT_HILL_STEEP) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_SLOPE_LONG) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_wooden_wild_mouse),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CarRideRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_SPINNING_TUNNEL) | (1ULL << TRACK_RAPIDS)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_car_ride),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CircusRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_circus_show),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CrookedHouseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_crooked_house),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor DodgemsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_4_X_4),
SET_FIELD(TrackPaintFunction, get_track_paint_function_dodgems),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor FerrisWheelRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_4_C),
SET_FIELD(TrackPaintFunction, get_track_paint_function_ferris_wheel),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor FlyingSaucersRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_4_X_4),
SET_FIELD(TrackPaintFunction, get_track_paint_function_flying_saucers),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_NO_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor GhostTrainRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_BRAKES) | (1ULL << TRACK_SPINNING_TUNNEL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_ghost_train),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor HauntedHouseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_haunted_house),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MazeRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_MAZE),
SET_FIELD(TrackPaintFunction, get_track_paint_function_maze),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MerryGoRoundRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_merry_go_round),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MiniGolfRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_MINI_GOLF_HOLE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mini_golf),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK |
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MiniHelicoptersRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_mini_helicopters),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MonorailCyclesRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_monorail_cycles),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ObservationTowerRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_TOWER_BASE),
SET_FIELD(TrackPaintFunction, get_track_paint_function_observation_tower),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SpaceRingsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_space_rings),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SpiralSlideRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_2_X_2),
SET_FIELD(TrackPaintFunction, get_track_paint_function_spiral_slide),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_TRACK_NO_WALLS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor CashMachineRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor DrinkStallRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor FirstAidRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_facility),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor FoodStallRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor InformationKioskRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_B),
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ShopRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ToiletsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_1_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_facility),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -16,9 +16,11 @@
// C++ does not allow names to start with a number, hence the absence of the '3D' prefix.
constexpr const RideTypeDescriptor CinemaRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_3d_cinema),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor EnterpriseRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_4_X_4),
SET_FIELD(TrackPaintFunction, get_track_paint_function_enterprise),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor GoKartsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_go_karts),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE |
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LaunchedFreefallRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_TOWER_BASE),
SET_FIELD(TrackPaintFunction, get_track_paint_function_launched_freefall),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MagicCarpetRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_4_A),
SET_FIELD(TrackPaintFunction, get_track_paint_function_magic_carpet),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MotionSimulatorRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_2_X_2),
SET_FIELD(TrackPaintFunction, get_track_paint_function_motionsimulator),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor RotoDropRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_TOWER_BASE),
SET_FIELD(TrackPaintFunction, get_track_paint_function_roto_drop),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SwingingInverterShipRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_4_B),
SET_FIELD(TrackPaintFunction, get_track_paint_function_swinging_inverter_ship),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SwingingShipRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_1_X_5),
SET_FIELD(TrackPaintFunction, get_track_paint_function_pirate_ship),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor TopSpinRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_topspin),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor TwistRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, FLAT_TRACK_ELEM_3_X_3),
SET_FIELD(TrackPaintFunction, get_track_paint_function_twist),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS |
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor ChairliftRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_chairlift),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LiftRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_TOWER_BASE),
SET_FIELD(TrackPaintFunction, get_track_paint_function_lift),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION |
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MiniatureRailwayRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_miniature_railway),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor MonorailRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_monorail),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SuspendedMonorailRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_suspended_monorail),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS |
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor BoatHireRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_CURVE_VERY_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_boat_hire),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER |
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor DinghySlideRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_LIFT_HILL) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_dinghy_slide),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor LogFlumeRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE_SMALL) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_LOG_FLUME_REVERSER)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_log_flume),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor RiverRaftsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE)),
SET_FIELD(ExtraTrackPieces, (1ULL << TRACK_ON_RIDE_PHOTO)),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_splash_boats),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor RiverRapidsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_ON_RIDE_PHOTO) | (1ULL << TRACK_RAPIDS) | (1ULL << TRACK_WATERFALL) | (1ULL << TRACK_WHIRLPOOL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_river_rapids),
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS |
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SplashBoatsRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_SLOPE) | (1ULL << TRACK_SLOPE_STEEP) | (1ULL << TRACK_S_BEND) | (1ULL << TRACK_CURVE) | (1ULL << TRACK_ON_RIDE_PHOTO)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_splash_boats),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS |

View File

@ -15,9 +15,11 @@
// clang-format off
constexpr const RideTypeDescriptor SubmarineRideRTD =
{
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
SET_FIELD(Category, RIDE_CATEGORY_WATER),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_STRAIGHT) | (1ULL << TRACK_STATION_END) | (1ULL << TRACK_CURVE_VERY_SMALL) | (1ULL << TRACK_CURVE_SMALL)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
SET_FIELD(TrackPaintFunction, get_track_paint_function_submarine_ride),
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |

View File

@ -522,7 +522,7 @@ int main(int argc, char* argv[])
if (ride_type_has_flag(rideType, RIDE_TYPE_FLAG_FLAT_RIDE))
{
testCase.trackTypes.push_back(RideConstructionDefaultTrackType[rideType]);
testCase.trackTypes.push_back(RideTypeDescriptors[rideType].StartTrackPiece);
}
else
{