mirror of https://github.com/OpenRCT2/OpenRCT2.git
Move ride naming to RTD
This also means that all unused ride types will now have the same name. I have made an exception for the 'arbitrary ride type change' dropdown only.
This commit is contained in:
parent
9cf12e763d
commit
96678a14eb
|
@ -3669,6 +3669,7 @@ STR_6371 :The specified path contains a RollerCoaster Tycoon 1 installation,
|
|||
STR_6372 :The specified path contains a RollerCoaster Tycoon 1 installation, but this version is not suitable. OpenRCT2 needs a Loopy Landscapes or RCT Deluxe install in order to use RollerCoaster Tycoon 1 assets.
|
||||
STR_6373 :Toggle clearance checks
|
||||
STR_6374 :C
|
||||
STR_6375 :Unknown Ride
|
||||
|
||||
#############
|
||||
# Scenarios #
|
||||
|
|
|
@ -690,7 +690,7 @@ static void window_editor_inventions_list_scrollpaint(rct_window* w, rct_drawpix
|
|||
&& !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;
|
||||
const rct_string_id rideGroupName = get_ride_naming(researchItem.baseRideType, rideEntry).Name;
|
||||
format_string(
|
||||
groupNamePtr, std::size(groupNameBuffer), STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME,
|
||||
static_cast<const void*>(&rideGroupName));
|
||||
|
@ -736,7 +736,7 @@ static void window_editor_inventions_list_drag_open(ResearchItem* researchItem)
|
|||
&& !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;
|
||||
const rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, rideEntry).Name;
|
||||
rct_string_id args[] = {
|
||||
rideGroupName,
|
||||
stringId,
|
||||
|
@ -834,7 +834,7 @@ static rct_string_id window_editor_inventions_list_prepare_name(const ResearchIt
|
|||
{
|
||||
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))
|
||||
.name;
|
||||
.Name;
|
||||
ft.Add<rct_string_id>(rideGroupName);
|
||||
ft.Add<rct_string_id>(stringId);
|
||||
}
|
||||
|
|
|
@ -1503,11 +1503,11 @@ static rct_string_id get_ride_type_string_id(const ObjectRepositoryItem* item)
|
|||
if (RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_HAS_RIDE_GROUPS))
|
||||
{
|
||||
const RideGroup* rideGroup = RideGroupManager::RideGroupFind(rideType, item->RideInfo.RideGroupIndex);
|
||||
result = rideGroup->Naming.name;
|
||||
result = rideGroup->Naming.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
result = RideNaming[rideType].name;
|
||||
result = RideTypeDescriptors[rideType].Naming.Name;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
|
@ -262,7 +262,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
gfx_draw_string_left(dpi, STR_TRACK_DESIGN_NAME, &trackName, COLOUR_BLACK, screenPos.x - 1, screenPos.y);
|
||||
screenPos.y += LIST_ROW_HEIGHT;
|
||||
|
||||
rct_ride_name rideName;
|
||||
RideNaming rideName;
|
||||
rct_string_id friendlyTrackName;
|
||||
|
||||
void* objectEntry = object_manager_load_object(&td6->vehicle_object);
|
||||
|
@ -270,12 +270,12 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
{
|
||||
auto groupIndex = object_manager_get_loaded_object_entry_index(objectEntry);
|
||||
rideName = get_ride_naming(td6->type, get_ride_entry(groupIndex));
|
||||
friendlyTrackName = rideName.name;
|
||||
friendlyTrackName = rideName.Name;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Fall back on the technical track name if the vehicle object cannot be loaded
|
||||
friendlyTrackName = RideNaming[td6->type].name;
|
||||
friendlyTrackName = RideTypeDescriptors[td6->type].Naming.Name;
|
||||
}
|
||||
|
||||
gfx_draw_string_left(dpi, STR_TRACK_DESIGN_TYPE, &friendlyTrackName, COLOUR_BLACK, screenPos.x, screenPos.y);
|
||||
|
|
|
@ -966,13 +966,13 @@ static void window_new_ride_paint_ride_information(
|
|||
rct_window* w, rct_drawpixelinfo* dpi, RideSelection item, const ScreenCoordsXY& screenPos, int32_t width)
|
||||
{
|
||||
rct_ride_entry* rideEntry = get_ride_entry(item.EntryIndex);
|
||||
rct_ride_name rideNaming;
|
||||
RideNaming rideNaming;
|
||||
|
||||
// Ride name and description
|
||||
rideNaming = get_ride_naming(item.Type, rideEntry);
|
||||
auto ft = Formatter::Common();
|
||||
ft.Add<rct_string_id>(rideNaming.name);
|
||||
ft.Add<rct_string_id>(rideNaming.description);
|
||||
ft.Add<rct_string_id>(rideNaming.Name);
|
||||
ft.Add<rct_string_id>(rideNaming.Description);
|
||||
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, screenPos, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, COLOUR_BLACK);
|
||||
|
||||
char availabilityString[AVAILABILITY_STRING_SIZE];
|
||||
|
@ -1093,7 +1093,7 @@ static void window_new_ride_list_vehicles_for(uint8_t rideType, const rct_ride_e
|
|||
}
|
||||
|
||||
// Append vehicle name
|
||||
auto vehicleName = language_get_string(currentRideEntry->naming.name);
|
||||
auto vehicleName = language_get_string(currentRideEntry->naming.Name);
|
||||
safe_strcat(buffer, vehicleName, bufferLen);
|
||||
|
||||
isFirst = false;
|
||||
|
|
|
@ -2262,6 +2262,33 @@ static void window_ride_show_open_dropdown(rct_window* w, rct_widget* widget)
|
|||
gDropdownDefaultIndex = info.DefaultIndex;
|
||||
}
|
||||
|
||||
static rct_string_id get_ride_type_name_for_dropdown(uint8_t rideType)
|
||||
{
|
||||
switch (rideType)
|
||||
{
|
||||
case RIDE_TYPE_1D:
|
||||
return STR_RIDE_NAME_1D;
|
||||
case RIDE_TYPE_1F:
|
||||
return STR_RIDE_NAME_1F;
|
||||
case RIDE_TYPE_22:
|
||||
return STR_RIDE_NAME_22;
|
||||
case RIDE_TYPE_50:
|
||||
return STR_RIDE_NAME_50;
|
||||
case RIDE_TYPE_52:
|
||||
return STR_RIDE_NAME_52;
|
||||
case RIDE_TYPE_53:
|
||||
return STR_RIDE_NAME_53;
|
||||
case RIDE_TYPE_54:
|
||||
return STR_RIDE_NAME_54;
|
||||
case RIDE_TYPE_55:
|
||||
return STR_RIDE_NAME_55;
|
||||
case RIDE_TYPE_59:
|
||||
return STR_RIDE_NAME_59;
|
||||
default:
|
||||
return RideTypeDescriptors[rideType].Naming.Name;
|
||||
}
|
||||
}
|
||||
|
||||
static void populate_ride_type_dropdown()
|
||||
{
|
||||
auto& ls = OpenRCT2::GetContext()->GetLocalisationService();
|
||||
|
@ -2272,7 +2299,8 @@ static void populate_ride_type_dropdown()
|
|||
|
||||
for (uint8_t i = 0; i < RIDE_TYPE_COUNT; i++)
|
||||
{
|
||||
RideTypeLabel label = { i, RideNaming[i].name, ls.GetString(RideNaming[i].name) };
|
||||
auto name = get_ride_type_name_for_dropdown(i);
|
||||
RideTypeLabel label = { i, name, ls.GetString(name) };
|
||||
RideDropdownData.push_back(label);
|
||||
}
|
||||
|
||||
|
@ -2375,8 +2403,8 @@ static void populate_vehicle_type_dropdown(Ride* ride)
|
|||
continue;
|
||||
}
|
||||
|
||||
VehicleTypeLabel label = { rideEntryIndex, currentRideEntry->naming.name,
|
||||
ls.GetString(currentRideEntry->naming.name) };
|
||||
VehicleTypeLabel label = { rideEntryIndex, currentRideEntry->naming.Name,
|
||||
ls.GetString(currentRideEntry->naming.Name) };
|
||||
VehicleDropdownData.push_back(label);
|
||||
}
|
||||
}
|
||||
|
@ -2673,7 +2701,7 @@ static void window_ride_main_invalidate(rct_window* w)
|
|||
else
|
||||
{
|
||||
window_ride_main_widgets[WIDX_RIDE_TYPE].type = WWT_DROPDOWN;
|
||||
window_ride_main_widgets[WIDX_RIDE_TYPE].text = RideNaming[ride->type].name;
|
||||
window_ride_main_widgets[WIDX_RIDE_TYPE].text = RideTypeDescriptors[ride->type].Naming.Name;
|
||||
window_ride_main_widgets[WIDX_RIDE_TYPE_DROPDOWN].type = WWT_BUTTON;
|
||||
}
|
||||
|
||||
|
@ -3077,7 +3105,7 @@ static void window_ride_vehicle_invalidate(rct_window* w)
|
|||
carsPerTrain = ride->num_cars_per_train - rideEntry->zero_cars;
|
||||
|
||||
// Vehicle type
|
||||
window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].text = rideEntry->naming.name;
|
||||
window_ride_vehicle_widgets[WIDX_VEHICLE_TYPE].text = rideEntry->naming.Name;
|
||||
|
||||
// Trains
|
||||
if (rideEntry->cars_per_flat_ride > 1 || gCheatsDisableTrainLengthLimit)
|
||||
|
@ -3169,7 +3197,7 @@ static void window_ride_vehicle_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
int32_t y = w->windowPos.y + 64;
|
||||
|
||||
// Description
|
||||
y += gfx_draw_string_left_wrapped(dpi, &rideEntry->naming.description, x, y, 300, STR_BLACK_STRING, COLOUR_BLACK);
|
||||
y += gfx_draw_string_left_wrapped(dpi, &rideEntry->naming.Description, x, y, 300, STR_BLACK_STRING, COLOUR_BLACK);
|
||||
y += 2;
|
||||
|
||||
// Capacity
|
||||
|
|
|
@ -1908,7 +1908,7 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
auto ride = get_ride(rideId);
|
||||
if (ride != nullptr)
|
||||
{
|
||||
auto rideType = RideNaming[ride->type].name;
|
||||
auto rideType = RideTypeDescriptors[ride->type].Naming.Name;
|
||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_RIDE_TYPE, &rideType, COLOUR_WHITE, x, y);
|
||||
}
|
||||
gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_TRACK_RIDE_ID, &rideId, COLOUR_WHITE, x, y + 11);
|
||||
|
|
|
@ -449,8 +449,8 @@ static void window_track_list_invalidate(rct_window* w)
|
|||
|
||||
if (entry != nullptr)
|
||||
{
|
||||
rct_ride_name rideName = get_ride_naming(_window_track_list_item.Type, entry);
|
||||
stringId = rideName.name;
|
||||
RideNaming rideName = get_ride_naming(_window_track_list_item.Type, entry);
|
||||
stringId = rideName.Name;
|
||||
}
|
||||
|
||||
Formatter::Common().Add<rct_string_id>(stringId);
|
||||
|
|
|
@ -3909,6 +3909,8 @@ enum
|
|||
STR_SHORTCUT_TOGGLE_CLEARANCE_CHECKS = 6373,
|
||||
STR_OVERLAY_CLEARANCE_CHECKS_DISABLED = 6374,
|
||||
|
||||
STR_UNKNOWN_RIDE = 6375,
|
||||
|
||||
// Have to include resource strings (from scenarios and objects) for the time being now that language is partially working
|
||||
/* MAX_STR_COUNT = 32768 */ // MAX_STR_COUNT - upper limit for number of strings, not the current count strings
|
||||
};
|
||||
|
|
|
@ -260,7 +260,7 @@ void research_finish_item(ResearchItem* researchItem)
|
|||
if (RideTypeDescriptors[base_ride_type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE;
|
||||
ft.Add<rct_string_id>(rideEntry->naming.name);
|
||||
ft.Add<rct_string_id>(rideEntry->naming.Name);
|
||||
}
|
||||
// If a vehicle is the first to be invented for its ride group, show the ride group name.
|
||||
else if (
|
||||
|
@ -268,19 +268,19 @@ void research_finish_item(ResearchItem* researchItem)
|
|||
|| (RideTypeDescriptors[base_ride_type].HasFlag(RIDE_TYPE_FLAG_HAS_RIDE_GROUPS)
|
||||
&& !ride_group_was_invented_before))
|
||||
{
|
||||
rct_ride_name naming = get_ride_naming(base_ride_type, rideEntry);
|
||||
RideNaming naming = get_ride_naming(base_ride_type, rideEntry);
|
||||
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_RIDE_AVAILABLE;
|
||||
ft.Add<rct_string_id>(naming.name);
|
||||
ft.Add<rct_string_id>(naming.Name);
|
||||
}
|
||||
// If the vehicle should not be listed separately and it isn't the first to be invented for its ride group,
|
||||
// report it as a new vehicle for the existing ride group.
|
||||
else
|
||||
{
|
||||
availabilityString = STR_NEWS_ITEM_RESEARCH_NEW_VEHICLE_AVAILABLE;
|
||||
rct_ride_name baseRideNaming = get_ride_naming(base_ride_type, rideEntry);
|
||||
RideNaming baseRideNaming = get_ride_naming(base_ride_type, rideEntry);
|
||||
|
||||
ft.Add<rct_string_id>(baseRideNaming.name);
|
||||
ft.Add<rct_string_id>(rideEntry->naming.name);
|
||||
ft.Add<rct_string_id>(baseRideNaming.Name);
|
||||
ft.Add<rct_string_id>(rideEntry->naming.Name);
|
||||
}
|
||||
|
||||
if (!gSilentResearch)
|
||||
|
@ -713,7 +713,7 @@ rct_string_id ResearchItem::GetName() const
|
|||
}
|
||||
else
|
||||
{
|
||||
return rideEntry->naming.name;
|
||||
return rideEntry->naming.Name;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
|
|
@ -166,8 +166,8 @@ void RideObject::Load()
|
|||
_legacyType.obj = this;
|
||||
|
||||
GetStringTable().Sort();
|
||||
_legacyType.naming.name = language_allocate_object_string(GetName());
|
||||
_legacyType.naming.description = language_allocate_object_string(GetDescription());
|
||||
_legacyType.naming.Name = language_allocate_object_string(GetName());
|
||||
_legacyType.naming.Description = language_allocate_object_string(GetDescription());
|
||||
_legacyType.capacity = language_allocate_object_string(GetCapacity());
|
||||
_legacyType.images_offset = gfx_object_allocate_images(GetImageTable().GetImages(), GetImageTable().GetCount());
|
||||
_legacyType.vehicle_preset_list = &_presetColours;
|
||||
|
@ -343,13 +343,13 @@ void RideObject::Load()
|
|||
|
||||
void RideObject::Unload()
|
||||
{
|
||||
language_free_object_string(_legacyType.naming.name);
|
||||
language_free_object_string(_legacyType.naming.description);
|
||||
language_free_object_string(_legacyType.naming.Name);
|
||||
language_free_object_string(_legacyType.naming.Description);
|
||||
language_free_object_string(_legacyType.capacity);
|
||||
gfx_object_free_images(_legacyType.images_offset, GetImageTable().GetCount());
|
||||
|
||||
_legacyType.naming.name = 0;
|
||||
_legacyType.naming.description = 0;
|
||||
_legacyType.naming.Name = 0;
|
||||
_legacyType.naming.Description = 0;
|
||||
_legacyType.capacity = 0;
|
||||
_legacyType.images_offset = 0;
|
||||
}
|
||||
|
|
|
@ -537,7 +537,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
|||
if (useDefaultName)
|
||||
{
|
||||
// Default name with number
|
||||
dst->name = RideNaming[src->type].name;
|
||||
dst->name = RideTypeDescriptors[src->type].Naming.Name;
|
||||
dst->name_arguments_number = src->default_name_number;
|
||||
}
|
||||
|
||||
|
|
|
@ -5632,7 +5632,7 @@ void Ride::SetNameToDefault()
|
|||
/**
|
||||
* This will return the name of the ride, as seen in the New Ride window.
|
||||
*/
|
||||
rct_ride_name get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry)
|
||||
RideNaming get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry)
|
||||
{
|
||||
if (RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_HAS_RIDE_GROUPS))
|
||||
{
|
||||
|
@ -5641,7 +5641,7 @@ rct_ride_name get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry)
|
|||
}
|
||||
else if (!RideTypeDescriptors[rideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
return RideNaming[rideType];
|
||||
return RideTypeDescriptors[rideType].Naming;
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -7746,13 +7746,13 @@ size_t Ride::FormatNameTo(void* argsV) const
|
|||
}
|
||||
else
|
||||
{
|
||||
auto rideTypeName = RideNaming[type].name;
|
||||
auto rideTypeName = RideTypeDescriptors[type].Naming.Name;
|
||||
if (RideTypeDescriptors[type].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
|
||||
{
|
||||
auto rideEntry = GetRideEntry();
|
||||
if (rideEntry != nullptr)
|
||||
{
|
||||
rideTypeName = rideEntry->naming.name;
|
||||
rideTypeName = rideEntry->naming.Name;
|
||||
}
|
||||
}
|
||||
else if (RideTypeDescriptors[type].HasFlag(RIDE_TYPE_FLAG_HAS_RIDE_GROUPS))
|
||||
|
@ -7763,7 +7763,7 @@ size_t Ride::FormatNameTo(void* argsV) const
|
|||
auto rideGroup = RideGroupManager::GetRideGroup(type, rideEntry);
|
||||
if (rideGroup != nullptr)
|
||||
{
|
||||
rideTypeName = rideGroup->Naming.name;
|
||||
rideTypeName = rideGroup->Naming.Name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -85,12 +85,12 @@ struct vehicle_colour_preset_list
|
|||
};
|
||||
assert_struct_size(vehicle_colour_preset_list, (1 + 256 * 3));
|
||||
|
||||
struct rct_ride_name
|
||||
struct RideNaming
|
||||
{
|
||||
rct_string_id name;
|
||||
rct_string_id description;
|
||||
rct_string_id Name;
|
||||
rct_string_id Description;
|
||||
};
|
||||
assert_struct_size(rct_ride_name, 4);
|
||||
assert_struct_size(RideNaming, 4);
|
||||
|
||||
#pragma pack(pop)
|
||||
|
||||
|
@ -99,7 +99,7 @@ assert_struct_size(rct_ride_name, 4);
|
|||
*/
|
||||
struct rct_ride_entry
|
||||
{
|
||||
rct_ride_name naming;
|
||||
RideNaming naming;
|
||||
// The first three images are previews. They correspond to the ride_type[] array.
|
||||
uint32_t images_offset;
|
||||
uint32_t flags;
|
||||
|
@ -1126,7 +1126,7 @@ void ride_set_name(Ride* ride, const char* name, uint32_t flags);
|
|||
int32_t ride_get_refund_price(const Ride* ride);
|
||||
int32_t ride_get_random_colour_preset_index(uint8_t ride_type);
|
||||
money32 ride_get_common_price(Ride* forRide);
|
||||
rct_ride_name get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry);
|
||||
RideNaming get_ride_naming(const uint8_t rideType, rct_ride_entry* rideEntry);
|
||||
|
||||
void ride_clear_for_construction(Ride* ride);
|
||||
void ride_entrance_exit_place_provisional_ghost();
|
||||
|
|
|
@ -205,100 +205,6 @@ const uint8_t rideBonusValue[RIDE_TYPE_COUNT] = {
|
|||
55, // 5a LIM Launched Roller Coaster
|
||||
};
|
||||
|
||||
const rct_ride_name RideNaming[] = {
|
||||
{ STR_RIDE_NAME_SPIRAL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_STAND_UP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER }, // RIDE_TYPE_STAND_UP_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER }, // RIDE_TYPE_SUSPENDED_SWINGING_COASTER
|
||||
{ STR_RIDE_NAME_INVERTED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_INVERTED_ROLLER_COASTER }, // RIDE_TYPE_INVERTED_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_JUNIOR_ROLLER_COASTER, STR_RIDE_DESCRIPTION_JUNIOR_ROLLER_COASTER }, // RIDE_TYPE_JUNIOR_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY }, // RIDE_TYPE_MINIATURE_RAILWAY
|
||||
{ STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL }, // RIDE_TYPE_MONORAIL
|
||||
{ STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER }, // RIDE_TYPE_MINI_SUSPENDED_COASTER
|
||||
{ STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE }, // RIDE_TYPE_BOAT_HIRE
|
||||
{ STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE }, // RIDE_TYPE_WOODEN_WILD_MOUSE
|
||||
{ STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE }, // RIDE_TYPE_STEEPLECHASE
|
||||
{ STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE }, // RIDE_TYPE_CAR_RIDE
|
||||
{ STR_RIDE_NAME_LAUNCHED_FREEFALL, STR_RIDE_DESCRIPTION_LAUNCHED_FREEFALL }, // RIDE_TYPE_LAUNCHED_FREEFALL
|
||||
{ STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER }, // RIDE_TYPE_BOBSLEIGH_COASTER
|
||||
{ STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER }, // RIDE_TYPE_OBSERVATION_TOWER
|
||||
{ STR_RIDE_NAME_LOOPING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LOOPING_ROLLER_COASTER }, // RIDE_TYPE_LOOPING_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE }, // RIDE_TYPE_DINGHY_SLIDE
|
||||
{ STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER }, // RIDE_TYPE_MINE_TRAIN_COASTER
|
||||
{ STR_RIDE_NAME_CHAIRLIFT, STR_RIDE_DESCRIPTION_CHAIRLIFT }, // RIDE_TYPE_CHAIRLIFT
|
||||
{ STR_RIDE_NAME_CORKSCREW_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CORKSCREW_ROLLER_COASTER }, // RIDE_TYPE_CORKSCREW_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_MAZE, STR_RIDE_DESCRIPTION_MAZE }, // RIDE_TYPE_MAZE
|
||||
{ STR_RIDE_NAME_SPIRAL_SLIDE, STR_RIDE_DESCRIPTION_SPIRAL_SLIDE }, // RIDE_TYPE_SPIRAL_SLIDE
|
||||
{ STR_RIDE_NAME_GO_KARTS, STR_RIDE_DESCRIPTION_GO_KARTS }, // RIDE_TYPE_GO_KARTS
|
||||
{ STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME }, // RIDE_TYPE_LOG_FLUME
|
||||
{ STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS }, // RIDE_TYPE_RIVER_RAPIDS
|
||||
{ STR_RIDE_NAME_DODGEMS, STR_RIDE_DESCRIPTION_DODGEMS }, // RIDE_TYPE_DODGEMS
|
||||
{ STR_RIDE_NAME_PIRATE_SHIP, STR_RIDE_DESCRIPTION_PIRATE_SHIP }, // RIDE_TYPE_SWINGING_SHIP
|
||||
{ STR_RIDE_NAME_SWINGING_INVERTER_SHIP, STR_RIDE_DESCRIPTION_SWINGING_INVERTER_SHIP }, // RIDE_TYPE_SWINGING_INVERTER_SHIP
|
||||
{ STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL }, // RIDE_TYPE_FOOD_STALL
|
||||
{ STR_RIDE_NAME_1D, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_1D
|
||||
{ STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL }, // RIDE_TYPE_DRINK_STALL
|
||||
{ STR_RIDE_NAME_1F, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_1F
|
||||
{ STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP }, // RIDE_TYPE_SHOP
|
||||
{ STR_RIDE_NAME_MERRY_GO_ROUND, STR_RIDE_DESCRIPTION_MERRY_GO_ROUND }, // RIDE_TYPE_MERRY_GO_ROUND
|
||||
{ STR_RIDE_NAME_22, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_22
|
||||
{ STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK }, // RIDE_TYPE_INFORMATION_KIOSK
|
||||
{ STR_RIDE_NAME_TOILETS, STR_RIDE_DESCRIPTION_TOILETS }, // RIDE_TYPE_TOILETS
|
||||
{ STR_RIDE_NAME_FERRIS_WHEEL, STR_RIDE_DESCRIPTION_FERRIS_WHEEL }, // RIDE_TYPE_FERRIS_WHEEL
|
||||
{ STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR }, // RIDE_TYPE_MOTION_SIMULATOR
|
||||
{ STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA }, // RIDE_TYPE_3D_CINEMA
|
||||
{ STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN }, // RIDE_TYPE_TOP_SPIN
|
||||
{ STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS }, // RIDE_TYPE_SPACE_RINGS
|
||||
{ STR_RIDE_NAME_REVERSE_FREEFALL_COASTER, STR_RIDE_DESCRIPTION_REVERSE_FREEFALL_COASTER }, // RIDE_TYPE_REVERSE_FREEFALL_COASTER
|
||||
{ STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT }, // RIDE_TYPE_LIFT
|
||||
{ STR_RIDE_NAME_VERTICAL_DROP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_VERTICAL_DROP_ROLLER_COASTER }, // RIDE_TYPE_VERTICAL_DROP_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE }, // RIDE_TYPE_CASH_MACHINE
|
||||
{ STR_RIDE_NAME_TWIST, STR_RIDE_DESCRIPTION_TWIST }, // RIDE_TYPE_TWIST
|
||||
{ STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE }, // RIDE_TYPE_HAUNTED_HOUSE
|
||||
{ STR_RIDE_NAME_FIRST_AID, STR_RIDE_DESCRIPTION_FIRST_AID }, // RIDE_TYPE_FIRST_AID
|
||||
{ STR_RIDE_NAME_CIRCUS_SHOW, STR_RIDE_DESCRIPTION_CIRCUS_SHOW }, // RIDE_TYPE_CIRCUS
|
||||
{ STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN }, // RIDE_TYPE_GHOST_TRAIN
|
||||
{ STR_RIDE_NAME_TWISTER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_TWISTER_ROLLER_COASTER }, // RIDE_TYPE_TWISTER_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER }, // RIDE_TYPE_WOODEN_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER }, // RIDE_TYPE_SIDE_FRICTION_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE }, // RIDE_TYPE_STEEL_WILD_MOUSE
|
||||
{ STR_RIDE_NAME_MULTI_DIMENSION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MULTI_DIMENSION_ROLLER_COASTER }, // RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_38, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_38
|
||||
{ STR_RIDE_NAME_FLYING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_FLYING_ROLLER_COASTER }, // RIDE_TYPE_FLYING_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_3A, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_3A
|
||||
{ STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL }, // RIDE_TYPE_VIRGINIA_REEL
|
||||
{ STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS }, // RIDE_TYPE_SPLASH_BOATS
|
||||
{ STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS }, // RIDE_TYPE_MINI_HELICOPTERS
|
||||
{ STR_RIDE_NAME_LAY_DOWN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LAY_DOWN_ROLLER_COASTER }, // RIDE_TYPE_LAY_DOWN_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL }, // RIDE_TYPE_SUSPENDED_MONORAIL
|
||||
{ STR_RIDE_NAME_40, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_40
|
||||
{ STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER }, // RIDE_TYPE_REVERSER_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_HEARTLINE_TWISTER_COASTER, STR_RIDE_DESCRIPTION_HEARTLINE_TWISTER_COASTER }, // RIDE_TYPE_HEARTLINE_TWISTER_COASTER
|
||||
{ STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF }, // RIDE_TYPE_MINI_GOLF
|
||||
{ STR_RIDE_NAME_GIGA_COASTER, STR_RIDE_DESCRIPTION_GIGA_COASTER }, // RIDE_TYPE_GIGA_COASTER
|
||||
{ STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP }, // RIDE_TYPE_ROTO_DROP
|
||||
{ STR_RIDE_NAME_FLYING_SAUCERS, STR_RIDE_DESCRIPTION_FLYING_SAUCERS }, // RIDE_TYPE_FLYING_SAUCERS
|
||||
{ STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE }, // RIDE_TYPE_CROOKED_HOUSE
|
||||
{ STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES }, // RIDE_TYPE_MONORAIL_CYCLES
|
||||
{ STR_RIDE_NAME_COMPACT_INVERTED_COASTER, STR_RIDE_DESCRIPTION_COMPACT_INVERTED_COASTER }, // RIDE_TYPE_COMPACT_INVERTED_COASTER
|
||||
{ STR_RIDE_NAME_WATER_COASTER, STR_RIDE_DESCRIPTION_WATER_COASTER }, // RIDE_TYPE_WATER_COASTER
|
||||
{ STR_RIDE_NAME_AIR_POWERED_VERTICAL_COASTER, STR_RIDE_DESCRIPTION_AIR_POWERED_VERTICAL_COASTER }, // RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER
|
||||
{ STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER }, // RIDE_TYPE_INVERTED_HAIRPIN_COASTER
|
||||
{ STR_RIDE_NAME_MAGIC_CARPET, STR_RIDE_DESCRIPTION_MAGIC_CARPET }, // RIDE_TYPE_MAGIC_CARPET
|
||||
{ STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE }, // RIDE_TYPE_SUBMARINE_RIDE
|
||||
{ STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS }, // RIDE_TYPE_RIVER_RAFTS
|
||||
{ STR_RIDE_NAME_50, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_50
|
||||
{ STR_RIDE_NAME_ENTERPRISE, STR_RIDE_DESCRIPTION_ENTERPRISE }, // RIDE_TYPE_ENTERPRISE
|
||||
{ STR_RIDE_NAME_52, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_52
|
||||
{ STR_RIDE_NAME_53, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_53
|
||||
{ STR_RIDE_NAME_54, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_54
|
||||
{ STR_RIDE_NAME_55, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_55
|
||||
{ STR_RIDE_NAME_INVERTED_IMPULSE_COASTER, STR_RIDE_DESCRIPTION_INVERTED_IMPULSE_COASTER }, // RIDE_TYPE_INVERTED_IMPULSE_COASTER
|
||||
{ STR_RIDE_NAME_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MINI_ROLLER_COASTER }, // RIDE_TYPE_MINI_ROLLER_COASTER
|
||||
{ STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE }, // RIDE_TYPE_MINE_RIDE
|
||||
{ STR_RIDE_NAME_59, STR_RIDE_DESCRIPTION_UNKNOWN }, // RIDE_TYPE_59
|
||||
{ STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||
};
|
||||
|
||||
const rct_ride_entry_vehicle CableLiftVehicle = {
|
||||
/* .rotation_frame_mask = */ 31,
|
||||
/* .num_vertical_frames = */ 0,
|
||||
|
|
|
@ -113,6 +113,7 @@ struct RideTypeDescriptor
|
|||
/** rct2: 0x0097C8AC */
|
||||
uint64_t RideModes;
|
||||
uint8_t DefaultMode;
|
||||
RideNaming Naming;
|
||||
RideNameConvention NameConvention;
|
||||
uint8_t AvailableBreakdowns;
|
||||
/** rct2: 0x0097D218 */
|
||||
|
@ -248,8 +249,6 @@ constexpr const RideComponentName RideComponentNames[] =
|
|||
};
|
||||
// clang-format on
|
||||
|
||||
extern const rct_ride_name RideNaming[RIDE_TYPE_COUNT];
|
||||
|
||||
constexpr const uint64_t AllRideModesAvailable = (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)
|
||||
| (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE)
|
||||
| (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_SHUTTLE) | (1ULL << RIDE_MODE_NORMAL)
|
||||
|
@ -287,6 +286,7 @@ constexpr const RideTypeDescriptor DummyRTD =
|
|||
SET_FIELD(Flags, 0),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_UNKNOWN_RIDE, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
|
|
|
@ -163,7 +163,7 @@ static constexpr const RideGroup steel_wild_mouse_groups[MAX_RIDE_GROUPS_PER_RID
|
|||
|
||||
bool RideGroup::Equals(const RideGroup* otherRideGroup) const
|
||||
{
|
||||
return this->Naming.name == otherRideGroup->Naming.name && this->Naming.description == otherRideGroup->Naming.description;
|
||||
return this->Naming.Name == otherRideGroup->Naming.Name && this->Naming.Description == otherRideGroup->Naming.Description;
|
||||
}
|
||||
|
||||
bool RideGroup::IsInvented() const
|
||||
|
|
|
@ -21,7 +21,7 @@ struct RideGroup
|
|||
uint8_t RideType;
|
||||
uint16_t MaximumHeight;
|
||||
uint64_t AvailableTrackPieces;
|
||||
rct_ride_name Naming;
|
||||
RideNaming Naming;
|
||||
uint8_t Flags;
|
||||
|
||||
bool Equals(const RideGroup* otherRideGroup) const;
|
||||
|
|
|
@ -25,6 +25,7 @@ constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD =
|
|||
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(RideModes, (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_AIR_POWERED_VERTICAL_COASTER, STR_RIDE_DESCRIPTION_AIR_POWERED_VERTICAL_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor BobsleighCoasterRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 19, 24, 5, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor CompactInvertedCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_COMPACT_INVERTED_COASTER, STR_RIDE_DESCRIPTION_COMPACT_INVERTED_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 27, 40, 29, 8, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor CorkscrewRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CORKSCREW_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CORKSCREW_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 28, 24, 8, 11, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_FLYING_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
|
@ -55,6 +56,7 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD =
|
|||
RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_3A, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 30, 24, 8, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor GigaCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_CABLE_LIFT_HILL),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GIGA_COASTER, STR_RIDE_DESCRIPTION_GIGA_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 86, 24, 9, 11, }),
|
||||
|
|
|
@ -26,6 +26,7 @@ constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD =
|
|||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HEARTLINE_TWISTER_COASTER, STR_RIDE_DESCRIPTION_HEARTLINE_TWISTER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 22, 24, 15, 9, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor InvertedHairpinCoasterRTD =
|
|||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 24, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor InvertedImpulseCoasterRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_IMPULSE_COASTER, STR_RIDE_DESCRIPTION_INVERTED_IMPULSE_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 45, 40, 29, 8, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor InvertedRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_INVERTED_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 38, 40, 29, 8, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor JuniorRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_JUNIOR_ROLLER_COASTER, STR_RIDE_DESCRIPTION_JUNIOR_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 15, 24, 4, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH) | (1ULL << RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LAY_DOWN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LAY_DOWN_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
|
@ -51,6 +52,7 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD =
|
|||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_40, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 26, 24, 8, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor LoopingRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) | (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LOOPING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LOOPING_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 35, 24, 5, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor MineRideRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 13, 24, 9, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor MineTrainCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 21, 24, 4, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor MiniRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MINI_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 9, 11, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 10, 24, 24, 8, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MULTI_DIMENSION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MULTI_DIMENSION_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
|
@ -52,6 +53,7 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
|
|||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_38, STR_RIDE_DESCRIPTION_UNKNOWN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 40, 24, 8, 11, }),
|
||||
|
|
|
@ -25,6 +25,7 @@ constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD =
|
|||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_LIM_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_LIM_POWERED_LAUNCH),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_REVERSE_FREEFALL_COASTER, STR_RIDE_DESCRIPTION_REVERSE_FREEFALL_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 4, 7, }),
|
||||
|
|
|
@ -26,6 +26,7 @@ constexpr const RideTypeDescriptor ReverserRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 18, 24, 8, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor SideFrictionRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 15, 24, 4, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor SpiralRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 19, 24, 9, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor StandUpRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) | (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_STAND_UP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 25, 24, 9, 11, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor SteelWildMouseRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 4, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor SteeplechaseRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 7, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor SuspendedSwingingCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 24, 40, 29, 8, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor TwisterRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TWISTER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_TWISTER_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 54, 24, 8, 9, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor VerticalDropCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_VERTICAL_DROP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_VERTICAL_DROP_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 53, 24, 8, 11, }),
|
||||
|
|
|
@ -26,6 +26,7 @@ constexpr const RideTypeDescriptor VirginiaReelRTD =
|
|||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 6, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor WaterCoasterRTD =
|
|||
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WATER_COASTER, STR_RIDE_DESCRIPTION_WATER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 18, 24, 4, 7, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED) | (1ULL << RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) ),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 41, 24, 8, 11, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor WoodenWildMouseRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||
SET_FIELD(Heights, { 14, 24, 4, 7, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor CarRideRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 6, 24, 4, 7, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor CircusRTD =
|
|||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CIRCUS_SHOW)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CIRCUS_SHOW),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CIRCUS_SHOW, STR_RIDE_DESCRIPTION_CIRCUS_SHOW }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor CrookedHouseRTD =
|
|||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CROOKED_HOUSE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CROOKED_HOUSE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 16, 96, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor DodgemsRTD =
|
|||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_DODGEMS)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_DODGEMS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DODGEMS, STR_RIDE_DESCRIPTION_DODGEMS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor FerrisWheelRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_FORWARD_ROTATION) | (1ULL << RIDE_MODE_BACKWARD_ROTATION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_FORWARD_ROTATION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FERRIS_WHEEL, STR_RIDE_DESCRIPTION_FERRIS_WHEEL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 176, 3, 2, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor FlyingSaucersRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_DODGEMS)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_DODGEMS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_SAUCERS, STR_RIDE_DESCRIPTION_FLYING_SAUCERS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 9, 48, 2, 2, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor GhostTrainRTD =
|
|||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 8, 24, 6, 7, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor HauntedHouseRTD =
|
|||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_HAUNTED_HOUSE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_HAUNTED_HOUSE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
|
|
|
@ -26,6 +26,7 @@ constexpr const RideTypeDescriptor MazeRTD =
|
|||
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(RideModes, (1ULL << RIDE_MODE_MAZE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_MAZE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MAZE, STR_RIDE_DESCRIPTION_MAZE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 6, 24, 0, 1, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor MerryGoRoundRTD =
|
|||
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(RideModes, (1ULL << RIDE_MODE_ROTATION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_ROTATION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MERRY_GO_ROUND, STR_RIDE_DESCRIPTION_MERRY_GO_ROUND }),
|
||||
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)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor MiniGolfRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 7, 32, 2, 2, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor MiniHelicoptersRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 24, 4, 7, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor MonorailCyclesRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 5, 24, 8, 7, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor ObservationTowerRTD =
|
|||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATING_LIFT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_ROTATING_LIFT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor SpaceRingsRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SPACE_RINGS)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SPACE_RINGS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_RING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 48, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor SpiralSlideRTD =
|
|||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SINGLE_RIDE_PER_ADMISSION) | (1ULL << RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SINGLE_RIDE_PER_ADMISSION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_SLIDE, STR_RIDE_DESCRIPTION_SPIRAL_SLIDE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 128, 0, 2, }),
|
||||
|
|
|
@ -26,6 +26,7 @@ constexpr const RideTypeDescriptor CashMachineRTD =
|
|||
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(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 32, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor DrinkStallRTD =
|
|||
RIDE_TYPE_FLAG_SELLS_DRINKS | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor FirstAidRTD =
|
|||
RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FIRST_AID, STR_RIDE_DESCRIPTION_FIRST_AID }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 48, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor FoodStallRTD =
|
|||
RIDE_TYPE_FLAG_SELLS_FOOD | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor InformationKioskRTD =
|
|||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 48, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor ShopRTD =
|
|||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 64, 0, 0, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor ToiletsRTD =
|
|||
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(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TOILETS, STR_RIDE_DESCRIPTION_TOILETS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, 0),
|
||||
SET_FIELD(Heights, { 12, 32, 0, 0, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor CinemaRTD =
|
|||
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_3D_FILM_MOUSE_TAILS) | (1ULL << RIDE_MODE_3D_FILM_STORM_CHASERS) | (1ULL << RIDE_MODE_3D_FILM_SPACE_RAIDERS)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_3D_FILM_MOUSE_TAILS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 128, 3, 2, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor EnterpriseRTD =
|
|||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_ROTATION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_ENTERPRISE, STR_RIDE_DESCRIPTION_ENTERPRISE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 160, 3, 2, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor GoKartsRTD =
|
|||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_RACE) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_RACE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_GO_KARTS, STR_RIDE_DESCRIPTION_GO_KARTS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 24, 2, 1, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor LaunchedFreefallRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_UPWARD_LAUNCH) | (1ULL << RIDE_MODE_DOWNWARD_LAUNCH)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_UPWARD_LAUNCH),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LAUNCHED_FREEFALL, STR_RIDE_DESCRIPTION_LAUNCHED_FREEFALL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor MagicCarpetRTD =
|
|||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SWING),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MAGIC_CARPET, STR_RIDE_DESCRIPTION_MAGIC_CARPET }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor MotionSimulatorRTD =
|
|||
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_FILM_AVENGING_AVIATORS) | (1ULL << RIDE_MODE_FILM_THRILL_RIDERS)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_FILM_AVENGING_AVIATORS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor RotoDropRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_FREEFALL_DROP)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_FREEFALL_DROP),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor SwingingInverterShipRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SWING),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SWINGING_INVERTER_SHIP, STR_RIDE_DESCRIPTION_SWINGING_INVERTER_SHIP }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 176, 7, 11, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor SwingingShipRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SWING),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_PIRATE_SHIP, STR_RIDE_DESCRIPTION_PIRATE_SHIP }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 112, 7, 11, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor TopSpinRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_BEGINNERS) | (1ULL << RIDE_MODE_INTENSE) | (1ULL << RIDE_MODE_BERSERK)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_BEGINNERS),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 16, 112, 3, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor TwistRTD =
|
|||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_ROTATION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_TWIST, STR_RIDE_DESCRIPTION_TWIST }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 64, 3, 2, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor ChairliftRTD =
|
|||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_STATION_TO_STATION)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_STATION_TO_STATION),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_CHAIRLIFT, STR_RIDE_DESCRIPTION_CHAIRLIFT }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 40, 32, 28, 2, }),
|
||||
|
|
|
@ -28,6 +28,7 @@ constexpr const RideTypeDescriptor LiftRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_SHUTTLE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 32, 3, 2, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor MiniatureRailwayRTD =
|
|||
RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 7, 32, 5, 9, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor MonorailRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 8, 32, 8, 9, }),
|
||||
|
|
|
@ -31,6 +31,7 @@ constexpr const RideTypeDescriptor SuspendedMonorailRTD =
|
|||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_SHUTTLE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 12, 40, 32, 8, }),
|
||||
|
|
|
@ -27,6 +27,7 @@ constexpr const RideTypeDescriptor BoatHireRTD =
|
|||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_BOAT_HIRE)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_BOAT_HIRE),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
|
|
|
@ -31,6 +31,7 @@ constexpr const RideTypeDescriptor DinghySlideRTD =
|
|||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 15, 24, 5, 7, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor LogFlumeRTD =
|
|||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 9, 24, 7, 9, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor RiverRaftsRTD =
|
|||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||
SET_FIELD(Heights, { 12, 24, 7, 11, }),
|
||||
|
|
|
@ -31,6 +31,7 @@ constexpr const RideTypeDescriptor RiverRapidsRTD =
|
|||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 9, 32, 14, 15, }),
|
||||
|
|
|
@ -30,6 +30,7 @@ constexpr const RideTypeDescriptor SplashBoatsRTD =
|
|||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||
SET_FIELD(Heights, { 16, 24, 7, 11, }),
|
||||
|
|
|
@ -29,6 +29,7 @@ constexpr const RideTypeDescriptor SubmarineRideRTD =
|
|||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS),
|
||||
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||
SET_FIELD(Naming, { STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE }),
|
||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }),
|
||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||
SET_FIELD(Heights, { 255, 16, 0, 3, }),
|
||||
|
|
Loading…
Reference in New Issue