Move category to RTD; move RideTypeIsIndependent to a flag

This commit is contained in:
Gymnasiast 2020-04-18 15:19:45 +02:00
parent c41fb64535
commit 5d3bf2be20
No known key found for this signature in database
GPG Key ID: DBFFF47AB2CA3EDD
93 changed files with 148 additions and 267 deletions

View File

@ -691,7 +691,7 @@ static void window_editor_inventions_list_scrollpaint(rct_window* w, rct_drawpix
rct_string_id itemNameId = researchItem.GetName();
if (researchItem.type == RESEARCH_ENTRY_TYPE_RIDE
&& !RideGroupManager::RideTypeIsIndependent(researchItem.baseRideType))
&& !RideTypeDescriptors[researchItem.baseRideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
const auto rideEntry = get_ride_entry(researchItem.entryIndex);
const rct_string_id rideGroupName = get_ride_naming(researchItem.baseRideType, rideEntry).name;
@ -736,7 +736,8 @@ static void window_editor_inventions_list_drag_open(ResearchItem* researchItem)
rct_string_id stringId = researchItem->GetName();
ptr = buffer;
if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE && !RideGroupManager::RideTypeIsIndependent(researchItem->baseRideType))
if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE
&& !RideTypeDescriptors[researchItem->baseRideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
const auto rideEntry = get_ride_entry(researchItem->entryIndex);
const rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, rideEntry).name;
@ -831,7 +832,8 @@ static rct_string_id window_editor_inventions_list_prepare_name(const ResearchIt
rct_string_id drawString;
rct_string_id stringId = researchItem->GetName();
if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE && !RideGroupManager::RideTypeIsIndependent(researchItem->baseRideType))
if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE
&& !RideTypeDescriptors[researchItem->baseRideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
drawString = withGap ? STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME_DRAG : STR_WINDOW_COLOUR_2_STRINGID_STRINGID;
rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, get_ride_entry(researchItem->entryIndex))

View File

@ -1461,7 +1461,7 @@ static bool filter_chunks(const ObjectRepositoryItem* item)
break;
}
}
return (_filter_flags & (1 << (gRideCategories[rideType] + _numSourceGameItems))) != 0;
return (_filter_flags & (1 << (RideTypeDescriptors[rideType].Category + _numSourceGameItems))) != 0;
}
return true;
}

View File

@ -319,7 +319,7 @@ static void window_new_ride_populate_list()
if (rideType == RIDE_TYPE_NULL)
continue;
if (gRideCategories[rideType] != currentCategory)
if (RideTypeDescriptors[rideType].Category != currentCategory)
continue;
if (ride_type_is_invented(rideType) || gCheatsIgnoreResearchStatus)
@ -377,7 +377,7 @@ static ride_list_item* window_new_ride_iterate_over_ride_group(
}
// Skip if the vehicle isn't the preferred vehicle for this generic track type
if (!RideGroupManager::RideTypeIsIndependent(rideType))
if (!RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
if (strcmp(preferredVehicleName, " \0") == 0)
{
@ -399,7 +399,7 @@ static ride_list_item* window_new_ride_iterate_over_ride_group(
}
// Determines how and where to draw a button for this ride type/vehicle.
if (RideGroupManager::RideTypeIsIndependent(rideType))
if (RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
// Separate, draw apart
allowDrawingOverLastButton = false;
@ -537,7 +537,7 @@ void window_new_ride_focus(ride_list_item rideItem)
rideEntry = get_ride_entry(rideItem.entry_index);
uint8_t rideTypeIndex = ride_entry_get_first_non_null_ride_type(rideEntry);
window_new_ride_set_page(w, gRideCategories[rideTypeIndex]);
window_new_ride_set_page(w, RideTypeDescriptors[rideTypeIndex].Category);
for (ride_list_item* listItem = _windowNewRideListItems; listItem->type != RIDE_TYPE_NULL; listItem++)
{
@ -941,7 +941,7 @@ static int32_t get_num_track_designs(ride_list_item item)
if (item.type < 0x80)
{
rideEntry = get_ride_entry(item.entry_index);
if (RideGroupManager::RideTypeIsIndependent(item.type))
if (RideTypeDescriptors[item.type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
entryName = get_ride_entry_name(item.entry_index);
}
@ -1060,7 +1060,7 @@ static void window_new_ride_select(rct_window* w)
static void window_new_ride_list_vehicles_for(uint8_t rideType, const rct_ride_entry* rideEntry, char* buffer, size_t bufferLen)
{
std::fill_n(buffer, bufferLen, 0);
if (RideGroupManager::RideTypeIsIndependent(rideType))
if (RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
return;
}

View File

@ -785,7 +785,7 @@ static void track_list_load_designs(ride_list_item item)
std::string entryName;
if (item.type < 0x80)
{
if (RideGroupManager::RideTypeIsIndependent(item.type))
if (RideTypeDescriptors[item.type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
entryName = get_ride_entry_name(item.entry_index);
}

View File

@ -368,7 +368,8 @@ public:
{
uint16_t maxHeight;
if (RideGroupManager::RideTypeIsIndependent(ride->type) && rideEntry->max_height != 0)
if (RideTypeDescriptors[ride->type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)
&& rideEntry->max_height != 0)
{
maxHeight = rideEntry->max_height;
}

View File

@ -257,7 +257,7 @@ void research_finish_item(ResearchItem* researchItem)
}
// If a vehicle should be listed separately (maze, mini golf, flat rides, shops)
if (RideGroupManager::RideTypeIsIndependent(base_ride_type))
if (RideTypeDescriptors[base_ride_type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE;
set_format_arg(0, rct_string_id, rideEntry->naming.name);

View File

@ -5647,7 +5647,7 @@ rct_ride_name get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry)
const RideGroup* rideGroup = RideGroupManager::GetRideGroup(rideType, rideEntry);
return rideGroup->Naming;
}
else if (!RideGroupManager::RideTypeIsIndependent(rideType))
else if (!RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
return RideNaming[rideType];
}
@ -7522,7 +7522,7 @@ int32_t ride_get_entry_index(int32_t rideType, int32_t rideSubType)
continue;
}
if (!RideGroupManager::RideTypeIsIndependent(rideType))
if (!RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
subType = rideEntryIndex;
break;
@ -7727,7 +7727,7 @@ size_t Ride::FormatNameTo(void* argsV) const
else
{
auto rideTypeName = RideNaming[type].name;
if (RideGroupManager::RideTypeIsIndependent(type))
if (RideTypeDescriptors[type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
{
auto rideEntry = GetRideEntry();
if (rideEntry != nullptr)

View File

@ -704,7 +704,9 @@ enum
RIDE_CATEGORY_ROLLERCOASTER,
RIDE_CATEGORY_THRILL,
RIDE_CATEGORY_WATER,
RIDE_CATEGORY_SHOP
RIDE_CATEGORY_SHOP,
RIDE_CATEGORY_NONE = 255,
};
enum

View File

@ -2397,6 +2397,7 @@ const rct_string_id RideModeNames[] = {
// 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),
@ -2499,3 +2500,8 @@ constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {
/* RIDE_TYPE_59 */ DummyRTD,
/* RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER */ LIMLaunchedRollerCoasterRTD,
};
bool RideTypeDescriptor::HasFlag(uint64_t flag) const
{
return Flags & flag;
}

View File

@ -87,6 +87,7 @@ struct rct_ride_lift_data
struct RideTypeDescriptor
{
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,
@ -96,6 +97,8 @@ struct RideTypeDescriptor
uint64_t Flags;
RideNameConvention NameConvention;
uint8_t AvailableBreakdowns;
bool HasFlag(uint64_t flag) const;
};
#ifdef _WIN32
@ -171,6 +174,8 @@ enum ride_type_flags : uint64_t
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT = (1ULL << 45),
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT = (1ULL << 46),
RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED = (1ULL << 47), // This is only set on the Flying RC and its alternative type.
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY = (1ULL << 48),
};
// Set on ride types that have a main colour, additional colour and support colour.

View File

@ -384,200 +384,3 @@ int32_t RideGroupManager::VehiclePreferenceCompare(const uint8_t rideType, const
}
return 0;
}
bool RideGroupManager::RideTypeIsIndependent(const uint8_t rideType)
{
switch (rideType)
{
case RIDE_TYPE_SPIRAL_ROLLER_COASTER:
case RIDE_TYPE_STAND_UP_ROLLER_COASTER:
case RIDE_TYPE_SUSPENDED_SWINGING_COASTER:
case RIDE_TYPE_INVERTED_ROLLER_COASTER:
case RIDE_TYPE_JUNIOR_ROLLER_COASTER:
case RIDE_TYPE_MINIATURE_RAILWAY:
case RIDE_TYPE_MONORAIL:
case RIDE_TYPE_MINI_SUSPENDED_COASTER:
case RIDE_TYPE_BOAT_HIRE:
case RIDE_TYPE_WOODEN_WILD_MOUSE:
case RIDE_TYPE_STEEPLECHASE:
case RIDE_TYPE_CAR_RIDE:
case RIDE_TYPE_LAUNCHED_FREEFALL:
case RIDE_TYPE_BOBSLEIGH_COASTER:
case RIDE_TYPE_OBSERVATION_TOWER:
case RIDE_TYPE_LOOPING_ROLLER_COASTER:
case RIDE_TYPE_DINGHY_SLIDE:
case RIDE_TYPE_MINE_TRAIN_COASTER:
case RIDE_TYPE_CHAIRLIFT:
case RIDE_TYPE_CORKSCREW_ROLLER_COASTER:
case RIDE_TYPE_GO_KARTS:
case RIDE_TYPE_LOG_FLUME:
case RIDE_TYPE_RIVER_RAPIDS:
case RIDE_TYPE_REVERSE_FREEFALL_COASTER:
case RIDE_TYPE_LIFT:
case RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER:
case RIDE_TYPE_GHOST_TRAIN:
case RIDE_TYPE_TWISTER_ROLLER_COASTER:
case RIDE_TYPE_WOODEN_ROLLER_COASTER:
case RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER:
case RIDE_TYPE_STEEL_WILD_MOUSE:
case RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER:
case RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT:
case RIDE_TYPE_FLYING_ROLLER_COASTER:
case RIDE_TYPE_FLYING_ROLLER_COASTER_ALT:
case RIDE_TYPE_VIRGINIA_REEL:
case RIDE_TYPE_SPLASH_BOATS:
case RIDE_TYPE_MINI_HELICOPTERS:
case RIDE_TYPE_LAY_DOWN_ROLLER_COASTER:
case RIDE_TYPE_SUSPENDED_MONORAIL:
case RIDE_TYPE_LAY_DOWN_ROLLER_COASTER_ALT:
case RIDE_TYPE_REVERSER_ROLLER_COASTER:
case RIDE_TYPE_HEARTLINE_TWISTER_COASTER:
case RIDE_TYPE_GIGA_COASTER:
case RIDE_TYPE_ROTO_DROP:
case RIDE_TYPE_MONORAIL_CYCLES:
case RIDE_TYPE_COMPACT_INVERTED_COASTER:
case RIDE_TYPE_WATER_COASTER:
case RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER:
case RIDE_TYPE_INVERTED_HAIRPIN_COASTER:
case RIDE_TYPE_SUBMARINE_RIDE:
case RIDE_TYPE_RIVER_RAFTS:
case RIDE_TYPE_INVERTED_IMPULSE_COASTER:
case RIDE_TYPE_MINI_ROLLER_COASTER:
case RIDE_TYPE_MINE_RIDE:
case RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER:
return false;
case RIDE_TYPE_MAZE:
case RIDE_TYPE_SPIRAL_SLIDE:
case RIDE_TYPE_DODGEMS:
case RIDE_TYPE_SWINGING_SHIP:
case RIDE_TYPE_SWINGING_INVERTER_SHIP:
case RIDE_TYPE_FOOD_STALL:
case RIDE_TYPE_1D:
case RIDE_TYPE_DRINK_STALL:
case RIDE_TYPE_1F:
case RIDE_TYPE_SHOP:
case RIDE_TYPE_MERRY_GO_ROUND:
case RIDE_TYPE_22:
case RIDE_TYPE_INFORMATION_KIOSK:
case RIDE_TYPE_TOILETS:
case RIDE_TYPE_FERRIS_WHEEL:
case RIDE_TYPE_MOTION_SIMULATOR:
case RIDE_TYPE_3D_CINEMA:
case RIDE_TYPE_TOP_SPIN:
case RIDE_TYPE_SPACE_RINGS:
case RIDE_TYPE_CASH_MACHINE:
case RIDE_TYPE_TWIST:
case RIDE_TYPE_HAUNTED_HOUSE:
case RIDE_TYPE_FIRST_AID:
case RIDE_TYPE_CIRCUS:
case RIDE_TYPE_MINI_GOLF:
case RIDE_TYPE_FLYING_SAUCERS:
case RIDE_TYPE_CROOKED_HOUSE:
case RIDE_TYPE_MAGIC_CARPET:
case RIDE_TYPE_50:
case RIDE_TYPE_ENTERPRISE:
case RIDE_TYPE_52:
case RIDE_TYPE_53:
case RIDE_TYPE_54:
case RIDE_TYPE_55:
case RIDE_TYPE_59:
return true;
}
assert(false);
return true;
}
const uint8_t gRideCategories[] = {
RIDE_CATEGORY_ROLLERCOASTER, // Spiral Roller coaster
RIDE_CATEGORY_ROLLERCOASTER, // Stand Up Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Suspended Swinging
RIDE_CATEGORY_ROLLERCOASTER, // Inverted
RIDE_CATEGORY_ROLLERCOASTER, // Steel Mini Coaster
RIDE_CATEGORY_TRANSPORT, // Mini Railway
RIDE_CATEGORY_TRANSPORT, // Monorail
RIDE_CATEGORY_ROLLERCOASTER, // Mini Suspended Coaster
RIDE_CATEGORY_WATER, // Boat Hire
RIDE_CATEGORY_ROLLERCOASTER, // Wooden Wild Mine/Mouse
RIDE_CATEGORY_ROLLERCOASTER, // Steeplechase/Motorbike/Soap Box Derby
RIDE_CATEGORY_GENTLE, // Car Ride
RIDE_CATEGORY_THRILL, // Launched Freefall
RIDE_CATEGORY_ROLLERCOASTER, // Bobsleigh Coaster
RIDE_CATEGORY_GENTLE, // Observation Tower
RIDE_CATEGORY_ROLLERCOASTER, // Looping Roller Coaster
RIDE_CATEGORY_WATER, // Dinghy Slide
RIDE_CATEGORY_ROLLERCOASTER, // Mine Train Coaster
RIDE_CATEGORY_TRANSPORT, // Chairlift
RIDE_CATEGORY_ROLLERCOASTER, // Corkscrew Roller Coaster
RIDE_CATEGORY_GENTLE, // Maze
RIDE_CATEGORY_GENTLE, // Spiral Slide
RIDE_CATEGORY_THRILL, // Go Karts
RIDE_CATEGORY_WATER, // Log Flume
RIDE_CATEGORY_WATER, // River Rapids
RIDE_CATEGORY_GENTLE, // Dodgems
RIDE_CATEGORY_THRILL, // Pirate Ship
RIDE_CATEGORY_THRILL, // Swinging Inverter Ship
RIDE_CATEGORY_SHOP, // Food Stall
255, // (none)
RIDE_CATEGORY_SHOP, // Drink Stall
255, // (none)
RIDE_CATEGORY_SHOP, // Shop (all types)
RIDE_CATEGORY_GENTLE, // Merry Go Round
255, // Unknown
RIDE_CATEGORY_SHOP, // Information Kiosk
RIDE_CATEGORY_SHOP, // Bathroom
RIDE_CATEGORY_GENTLE, // Ferris Wheel
RIDE_CATEGORY_THRILL, // Motion Simulator
RIDE_CATEGORY_THRILL, // 3D Cinema
RIDE_CATEGORY_THRILL, // Top Spin
RIDE_CATEGORY_GENTLE, // Space Rings
RIDE_CATEGORY_ROLLERCOASTER, // Reverse Freefall Coaster
RIDE_CATEGORY_TRANSPORT, // Lift
RIDE_CATEGORY_ROLLERCOASTER, // Vertical Drop Roller Coaster
RIDE_CATEGORY_SHOP, // ATM
RIDE_CATEGORY_THRILL, // Twist
RIDE_CATEGORY_GENTLE, // Haunted House
RIDE_CATEGORY_SHOP, // First Aid
RIDE_CATEGORY_GENTLE, // Circus Show
RIDE_CATEGORY_GENTLE, // Ghost Train
RIDE_CATEGORY_ROLLERCOASTER, // Twister Roller Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Wooden Roller Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Side-Friction Roller Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Wild Mouse
RIDE_CATEGORY_ROLLERCOASTER, // Multi Dimension Coaster
255, // (none)
RIDE_CATEGORY_ROLLERCOASTER, // Flying Roller Coaster
255, // (none)
RIDE_CATEGORY_ROLLERCOASTER, // Virginia Reel
RIDE_CATEGORY_WATER, // Splash Boats
RIDE_CATEGORY_GENTLE, // Mini Helicopters
RIDE_CATEGORY_ROLLERCOASTER, // Lay-down Roller Coaster
RIDE_CATEGORY_TRANSPORT, // Suspended Monorail
255, // (none)
RIDE_CATEGORY_ROLLERCOASTER, // Reverser Roller Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Heartline Twister Roller Coaster
RIDE_CATEGORY_GENTLE, // Mini Golf
RIDE_CATEGORY_ROLLERCOASTER, // Giga Coaster
RIDE_CATEGORY_THRILL, // Roto-Drop
RIDE_CATEGORY_GENTLE, // Flying Saucers
RIDE_CATEGORY_GENTLE, // Crooked House
RIDE_CATEGORY_GENTLE, // Monorail Cycles
RIDE_CATEGORY_ROLLERCOASTER, // Compact Inverted Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Water Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Air Powered Vertical Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Inverted Hairpin Coaster
RIDE_CATEGORY_THRILL, // Magic Carpet
RIDE_CATEGORY_WATER, // Submarine Ride
RIDE_CATEGORY_WATER, // River Rafts
255, // (none)
RIDE_CATEGORY_THRILL, // Enterprise
255, // (none)
255, // (none)
255, // (none)
255, // (none)
RIDE_CATEGORY_ROLLERCOASTER, // Inverted Impulse Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Mini Roller Coaster
RIDE_CATEGORY_ROLLERCOASTER, // Mine Ride
255, // 59 Unknown Ride
RIDE_CATEGORY_ROLLERCOASTER // LIM Launched Roller Coaster
};

View File

@ -16,8 +16,6 @@
#define MAX_RIDE_GROUPS_PER_RIDE_TYPE 2
extern const uint8_t gRideCategories[RIDE_TYPE_COUNT];
struct RideGroup
{
uint8_t RideType;
@ -39,7 +37,6 @@ public:
static const std::vector<const char*> GetPreferredRideEntryOrder(const uint8_t rideType);
static int32_t VehiclePreferenceCompare(const uint8_t rideType, const char* a, const char* b);
static bool RideTypeIsIndependent(const uint8_t rideType);
};
enum RideGroupFlags : uint8_t

View File

@ -166,7 +166,7 @@ public:
{
const ObjectRepositoryItem* ori = repo.FindObject(item.ObjectEntry.c_str());
if (ori == nullptr || !RideGroupManager::RideTypeIsIndependent(rideType))
if (ori == nullptr || !RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
entryIsNotSeparate = true;
}
@ -225,7 +225,7 @@ public:
{
const ObjectRepositoryItem* ori = repo.FindObject(item.ObjectEntry.c_str());
if (ori == nullptr || !RideGroupManager::RideTypeIsIndependent(rideType))
if (ori == nullptr || !RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
entryIsNotSeparate = true;
}

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_air_powered_vertical_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor BobsleighCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_bobsleigh_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor CompactInvertedCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_compact_inverted_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor CorkscrewRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_corkscrew_rc),

View File

@ -16,6 +16,7 @@
// Non-inverted variant
constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_flying_rc),
@ -30,6 +31,7 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
// Inverted variant
constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD =
{
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(TrackPaintFunction, nullptr),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor GigaCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_giga_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_heartline_twister_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedHairpinCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_inverted_hairpin_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedImpulseCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_inverted_impulse_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor InvertedRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_inverted_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor JuniorRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_junior_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_lim_launched_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_lay_down_rc),
@ -27,6 +28,7 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD =
{
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(TrackPaintFunction, nullptr),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LoopingRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_looping_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MineRideRTD =
{
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(TrackPaintFunction, get_track_paint_function_mine_ride),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MineTrainCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_mine_train_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MiniRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_mini_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_mini_suspended_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_multi_dimension_rc),
@ -28,6 +29,7 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
{
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(TrackPaintFunction, nullptr),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_reverse_freefall_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor ReverserRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_reverser_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SideFrictionRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_side_friction_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SpiralRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_mini_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor StandUpRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_stand_up_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SteelWildMouseRTD =
{
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(TrackPaintFunction, get_track_paint_function_wild_mouse),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SteeplechaseRTD =
{
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(TrackPaintFunction, get_track_paint_function_steeplechase),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SuspendedSwingingCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_suspended_swinging_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor TwisterRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_twister_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor VerticalDropCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_vertical_drop_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor VirginiaReelRTD =
{
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(TrackPaintFunction, get_track_paint_function_virginia_reel),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor WaterCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_water_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
{
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(TrackPaintFunction, get_track_paint_function_wooden_rc),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor WoodenWildMouseRTD =
{
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(TrackPaintFunction, get_track_paint_function_wooden_wild_mouse),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor CarRideRTD =
{
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(TrackPaintFunction, get_track_paint_function_car_ride),

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor CircusRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT |
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION),
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,12 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor CrookedHouseRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION),
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor DodgemsRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_ALLOW_MUSIC |
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor FerrisWheelRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor FlyingSaucersRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_flying_saucers),
@ -22,7 +23,7 @@ constexpr const RideTypeDescriptor FlyingSaucersRTD =
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 |
RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor GhostTrainRTD =
{
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(TrackPaintFunction, get_track_paint_function_ghost_train),

View File

@ -15,12 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor HauntedHouseRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION),
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,11 +15,12 @@
// clang-format off
constexpr const RideTypeDescriptor MazeRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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_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),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor MerryGoRoundRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT | RIDE_TYPE_FLAG_ALLOW_MUSIC |
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor MiniGolfRTD =
{
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(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 |
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MiniHelicoptersRTD =
{
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(TrackPaintFunction, get_track_paint_function_mini_helicopters),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MonorailCyclesRTD =
{
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(TrackPaintFunction, get_track_paint_function_monorail_cycles),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor ObservationTowerRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_observation_tower),

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor SpaceRingsRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_RING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,12 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor SpiralSlideRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_GENTLE),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,11 +15,12 @@
// clang-format off
constexpr const RideTypeDescriptor CashMachineRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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_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),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor DrinkStallRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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_SELLS_DRINKS),
RIDE_TYPE_FLAG_SELLS_DRINKS | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor FirstAidRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE),
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor FoodStallRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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_SELLS_FOOD),
RIDE_TYPE_FLAG_SELLS_FOOD | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor InformationKioskRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE),
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor ShopRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE),
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -15,12 +15,13 @@
// clang-format off
constexpr const RideTypeDescriptor ToiletsRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_SHOP),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_IS_TOILET),
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_IS_TOILET | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, 0),
};

View File

@ -16,13 +16,14 @@
// C++ does not allow names to start with a number, hence the absence of the '3D' prefix.
constexpr const RideTypeDescriptor CinemaRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION),
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,13 +15,15 @@
// clang-format off
constexpr const RideTypeDescriptor EnterpriseRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT |
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor GoKartsRTD =
{
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(TrackPaintFunction, get_track_paint_function_go_karts),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LaunchedFreefallRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_launched_freefall),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MagicCarpetRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_magic_carpet),
@ -22,7 +23,7 @@ constexpr const RideTypeDescriptor MagicCarpetRTD =
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 | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,13 +15,15 @@
// clang-format off
constexpr const RideTypeDescriptor MotionSimulatorRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT |
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor RotoDropRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_roto_drop),

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor SwingingInverterShipRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SwingingShipRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_pirate_ship),
@ -22,7 +23,7 @@ constexpr const RideTypeDescriptor SwingingShipRTD =
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor TopSpinRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,13 +15,14 @@
// clang-format off
constexpr const RideTypeDescriptor TwistRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_THRILL),
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
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 |
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
};

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor ChairliftRTD =
{
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(TrackPaintFunction, get_track_paint_function_chairlift),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LiftRTD =
{
SET_FIELD(Category, RIDE_CATEGORY_TRANSPORT),
SET_FIELD(EnabledTrackPieces, (1ULL << TRACK_TOWER_BASE)),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_lift),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MiniatureRailwayRTD =
{
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(TrackPaintFunction, get_track_paint_function_miniature_railway),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor MonorailRTD =
{
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(TrackPaintFunction, get_track_paint_function_monorail),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SuspendedMonorailRTD =
{
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(TrackPaintFunction, get_track_paint_function_suspended_monorail),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor BoatHireRTD =
{
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(TrackPaintFunction, get_track_paint_function_boat_hire),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor DinghySlideRTD =
{
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(TrackPaintFunction, get_track_paint_function_dinghy_slide),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor LogFlumeRTD =
{
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(TrackPaintFunction, get_track_paint_function_log_flume),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor RiverRaftsRTD =
{
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(TrackPaintFunction, get_track_paint_function_splash_boats),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor RiverRapidsRTD =
{
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(TrackPaintFunction, get_track_paint_function_river_rapids),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SplashBoatsRTD =
{
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(TrackPaintFunction, get_track_paint_function_splash_boats),

View File

@ -15,6 +15,7 @@
// clang-format off
constexpr const RideTypeDescriptor SubmarineRideRTD =
{
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(TrackPaintFunction, get_track_paint_function_submarine_ride),

View File

@ -1,22 +0,0 @@
/*****************************************************************************
* Copyright (c) 2014-2020 OpenRCT2 developers
*
* For a complete list of all authors, please refer to contributors.md
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
*
* OpenRCT2 is licensed under the GNU General Public License version 3.
*****************************************************************************/
#pragma once
#include "../../RideData.h"
#include "../../Track.h"
// clang-format off
constexpr const RideTypeDescriptor ShopRTD =
{
SET_FIELD(EnabledTrackPieces, 0),
SET_FIELD(ExtraTrackPieces, 0),
SET_FIELD(TrackPaintFunction, get_track_paint_function_water_rc),
};
// clang-format on