mirror of https://github.com/OpenRCT2/OpenRCT2.git
Merge pull request #11457 from Gymnasiast/refactor/rtd-forever
More RTD + cleanup
This commit is contained in:
commit
bcabc1d807
|
@ -108,8 +108,8 @@ enum WINDOW_CHEATS_WIDGET_IDX
|
||||||
WIDX_GUEST_NAUSEA_MIN,
|
WIDX_GUEST_NAUSEA_MIN,
|
||||||
WIDX_GUEST_NAUSEA_TOLERANCE_MAX,
|
WIDX_GUEST_NAUSEA_TOLERANCE_MAX,
|
||||||
WIDX_GUEST_NAUSEA_TOLERANCE_MIN,
|
WIDX_GUEST_NAUSEA_TOLERANCE_MIN,
|
||||||
WIDX_GUEST_BATHROOM_MAX,
|
WIDX_GUEST_TOILET_MAX,
|
||||||
WIDX_GUEST_BATHROOM_MIN,
|
WIDX_GUEST_TOILET_MIN,
|
||||||
WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1,
|
WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1,
|
||||||
WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15,
|
WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15,
|
||||||
WIDX_GUEST_IGNORE_RIDE_INTENSITY,
|
WIDX_GUEST_IGNORE_RIDE_INTENSITY,
|
||||||
|
@ -248,8 +248,8 @@ static rct_widget window_cheats_guests_widgets[] =
|
||||||
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(5), HPL(5), STR_MIN, STR_NONE }, // nausea min
|
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(5), HPL(5), STR_MIN, STR_NONE }, // nausea min
|
||||||
{ WWT_BUTTON, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(6), HPL(6), STR_MAX, STR_NONE }, // nausea tolerance max
|
{ WWT_BUTTON, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(6), HPL(6), STR_MAX, STR_NONE }, // nausea tolerance max
|
||||||
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(6), HPL(6), STR_MIN, STR_NONE }, // nausea tolerance min
|
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(6), HPL(6), STR_MIN, STR_NONE }, // nausea tolerance min
|
||||||
{ WWT_BUTTON, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(7), HPL(7), STR_MAX, STR_NONE }, // bathroom max
|
{ WWT_BUTTON, 1, MAX_BTN_LEFT, MAX_BTN_RIGHT, YPL(7), HPL(7), STR_MAX, STR_NONE }, // toilet max
|
||||||
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(7), HPL(7), STR_MIN, STR_NONE }, // bathroom min
|
{ WWT_BUTTON, 1, MIN_BTN_LEFT, MIN_BTN_RIGHT, YPL(7), HPL(7), STR_MIN, STR_NONE }, // toilet min
|
||||||
{ WWT_BUTTON, 1, XPL(1), WPL(1), YPL(9), HPL(9), STR_CHEAT_MORE_THAN_1, STR_NONE }, // ride intensity > 1
|
{ WWT_BUTTON, 1, XPL(1), WPL(1), YPL(9), HPL(9), STR_CHEAT_MORE_THAN_1, STR_NONE }, // ride intensity > 1
|
||||||
{ WWT_BUTTON, 1, XPL(0), WPL(0), YPL(9), HPL(9), STR_CHEAT_LESS_THAN_15, STR_NONE }, // ride intensity < 15
|
{ WWT_BUTTON, 1, XPL(0), WPL(0), YPL(9), HPL(9), STR_CHEAT_LESS_THAN_15, STR_NONE }, // ride intensity < 15
|
||||||
{ WWT_CHECKBOX, 1, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_IGNORE_INTENSITY, STR_CHEAT_IGNORE_INTENSITY_TIP }, // guests ignore intensity
|
{ WWT_CHECKBOX, 1, XPL(0), OWPL, YPL(10), OHPL(10), STR_CHEAT_IGNORE_INTENSITY, STR_CHEAT_IGNORE_INTENSITY_TIP }, // guests ignore intensity
|
||||||
|
@ -522,8 +522,8 @@ static uint64_t window_cheats_page_enabled_widgets[] = {
|
||||||
(1ULL << WIDX_GUEST_NAUSEA_MIN) |
|
(1ULL << WIDX_GUEST_NAUSEA_MIN) |
|
||||||
(1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) |
|
(1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MAX) |
|
||||||
(1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) |
|
(1ULL << WIDX_GUEST_NAUSEA_TOLERANCE_MIN) |
|
||||||
(1ULL << WIDX_GUEST_BATHROOM_MAX) |
|
(1ULL << WIDX_GUEST_TOILET_MAX) |
|
||||||
(1ULL << WIDX_GUEST_BATHROOM_MIN) |
|
(1ULL << WIDX_GUEST_TOILET_MIN) |
|
||||||
(1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) |
|
(1ULL << WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1) |
|
||||||
(1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) |
|
(1ULL << WIDX_GUEST_RIDE_INTENSITY_LESS_THAN_15) |
|
||||||
(1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) |
|
(1ULL << WIDX_GUEST_IGNORE_RIDE_INTENSITY) |
|
||||||
|
@ -872,11 +872,11 @@ static void window_cheats_guests_mouseup(rct_window* w, rct_widgetindex widgetIn
|
||||||
case WIDX_GUEST_NAUSEA_TOLERANCE_MIN:
|
case WIDX_GUEST_NAUSEA_TOLERANCE_MIN:
|
||||||
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_NAUSEA_TOLERANCE, PEEP_NAUSEA_TOLERANCE_NONE);
|
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_NAUSEA_TOLERANCE, PEEP_NAUSEA_TOLERANCE_NONE);
|
||||||
break;
|
break;
|
||||||
case WIDX_GUEST_BATHROOM_MAX:
|
case WIDX_GUEST_TOILET_MAX:
|
||||||
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_BATHROOM, PEEP_MAX_BATHROOM);
|
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_TOILET, PEEP_MAX_TOILET);
|
||||||
break;
|
break;
|
||||||
case WIDX_GUEST_BATHROOM_MIN:
|
case WIDX_GUEST_TOILET_MIN:
|
||||||
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_BATHROOM, 0);
|
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_TOILET, 0);
|
||||||
break;
|
break;
|
||||||
case WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1:
|
case WIDX_GUEST_RIDE_INTENSITY_MORE_THAN_1:
|
||||||
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY, 1);
|
CheatsSet(CheatType::SetGuestParameter, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY, 1);
|
||||||
|
@ -1250,8 +1250,7 @@ static void window_cheats_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||||
dpi, STR_CHEAT_GUEST_NAUSEA_TOLERANCE, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
dpi, STR_CHEAT_GUEST_NAUSEA_TOLERANCE, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
||||||
w->windowPos.y + YPL(6) + TXTO);
|
w->windowPos.y + YPL(6) + TXTO);
|
||||||
gfx_draw_string_left(
|
gfx_draw_string_left(
|
||||||
dpi, STR_CHEAT_GUEST_BATHROOM, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
dpi, STR_CHEAT_GUEST_TOILET, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(7) + TXTO);
|
||||||
w->windowPos.y + YPL(7) + TXTO);
|
|
||||||
gfx_draw_string_left(
|
gfx_draw_string_left(
|
||||||
dpi, STR_CHEAT_GUEST_PREFERRED_INTENSITY, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
dpi, STR_CHEAT_GUEST_PREFERRED_INTENSITY, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
||||||
w->windowPos.y + YPL(8) + TXTO);
|
w->windowPos.y + YPL(8) + TXTO);
|
||||||
|
|
|
@ -3324,7 +3324,7 @@ static void window_ride_mode_tweak_increase(rct_window* w)
|
||||||
maxValue = 255;
|
maxValue = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t increment = ride->mode == RIDE_MODE_BUMPERCAR ? 10 : 1;
|
uint8_t increment = ride->mode == RIDE_MODE_DODGEMS ? 10 : 1;
|
||||||
|
|
||||||
set_operating_setting(
|
set_operating_setting(
|
||||||
w->number, RideSetSetting::Operation, std::clamp<int16_t>(ride->operation_option + increment, minValue, maxValue));
|
w->number, RideSetSetting::Operation, std::clamp<int16_t>(ride->operation_option + increment, minValue, maxValue));
|
||||||
|
@ -3347,7 +3347,7 @@ static void window_ride_mode_tweak_decrease(rct_window* w)
|
||||||
maxValue = 255;
|
maxValue = 255;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8_t decrement = ride->mode == RIDE_MODE_BUMPERCAR ? 10 : 1;
|
uint8_t decrement = ride->mode == RIDE_MODE_DODGEMS ? 10 : 1;
|
||||||
|
|
||||||
set_operating_setting(
|
set_operating_setting(
|
||||||
w->number, RideSetSetting::Operation, std::clamp<int16_t>(ride->operation_option - decrement, minValue, maxValue));
|
w->number, RideSetSetting::Operation, std::clamp<int16_t>(ride->operation_option - decrement, minValue, maxValue));
|
||||||
|
@ -3360,43 +3360,39 @@ static void window_ride_mode_tweak_decrease(rct_window* w)
|
||||||
static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget)
|
static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget)
|
||||||
{
|
{
|
||||||
rct_widget* dropdownWidget;
|
rct_widget* dropdownWidget;
|
||||||
const uint8_t *availableModes, *mode;
|
|
||||||
int32_t i, numAvailableModes;
|
|
||||||
|
|
||||||
dropdownWidget = widget - 1;
|
dropdownWidget = widget - 1;
|
||||||
auto ride = get_ride(w->number);
|
auto ride = get_ride(w->number);
|
||||||
if (ride == nullptr)
|
if (ride == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Seek to available modes for this ride
|
auto availableModes = ride->GetAvailableModes();
|
||||||
availableModes = ride_seek_available_modes(ride);
|
|
||||||
|
|
||||||
// Count number of available modes
|
|
||||||
mode = availableModes;
|
|
||||||
numAvailableModes = -1;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
numAvailableModes++;
|
|
||||||
} while (*(mode++) != 255);
|
|
||||||
|
|
||||||
// Create dropdown list
|
// Create dropdown list
|
||||||
for (i = 0; i < numAvailableModes; i++)
|
auto numAvailableModes = 0;
|
||||||
|
auto checkedIndex = -1;
|
||||||
|
for (auto i = 0; i < RIDE_MODE_COUNT; i++)
|
||||||
{
|
{
|
||||||
gDropdownItemsFormat[i] = STR_DROPDOWN_MENU_LABEL;
|
if (availableModes & (1ULL << i))
|
||||||
gDropdownItemsArgs[i] = RideModeNames[availableModes[i]];
|
{
|
||||||
|
gDropdownItemsFormat[numAvailableModes] = STR_DROPDOWN_MENU_LABEL;
|
||||||
|
gDropdownItemsArgs[numAvailableModes] = RideModeNames[i];
|
||||||
|
|
||||||
|
if (ride->mode == i)
|
||||||
|
checkedIndex = numAvailableModes;
|
||||||
|
|
||||||
|
numAvailableModes++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
window_dropdown_show_text_custom_width(
|
window_dropdown_show_text_custom_width(
|
||||||
w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top,
|
w->windowPos.x + dropdownWidget->left, w->windowPos.y + dropdownWidget->top,
|
||||||
dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numAvailableModes,
|
dropdownWidget->bottom - dropdownWidget->top + 1, w->colours[1], 0, DROPDOWN_FLAG_STAY_OPEN, numAvailableModes,
|
||||||
widget->right - dropdownWidget->left);
|
widget->right - dropdownWidget->left);
|
||||||
|
|
||||||
// Set checked item
|
if (checkedIndex != -1)
|
||||||
for (i = 0; i < numAvailableModes; i++)
|
|
||||||
{
|
{
|
||||||
if (ride->mode == availableModes[i])
|
dropdown_set_checked(checkedIndex, true);
|
||||||
{
|
|
||||||
dropdown_set_checked(i, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3581,10 +3577,23 @@ static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widget
|
||||||
{
|
{
|
||||||
case WIDX_MODE_DROPDOWN:
|
case WIDX_MODE_DROPDOWN:
|
||||||
{
|
{
|
||||||
// Seek to available modes for this ride
|
uint8_t rideMode = RIDE_MODE_NULL;
|
||||||
auto availableModes = ride_seek_available_modes(ride);
|
auto availableModes = ride->GetAvailableModes();
|
||||||
if (availableModes != nullptr)
|
auto modeInDropdownIndex = -1;
|
||||||
set_operating_setting(w->number, RideSetSetting::Mode, availableModes[dropdownIndex]);
|
for (uint8_t rideModeIndex = 0; rideModeIndex < RIDE_MODE_COUNT; rideModeIndex++)
|
||||||
|
{
|
||||||
|
if (availableModes & (1ULL << rideModeIndex))
|
||||||
|
{
|
||||||
|
modeInDropdownIndex++;
|
||||||
|
if (modeInDropdownIndex == dropdownIndex)
|
||||||
|
{
|
||||||
|
rideMode = rideModeIndex;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rideMode != RIDE_MODE_NULL)
|
||||||
|
set_operating_setting(w->number, RideSetSetting::Mode, rideMode);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case WIDX_LOAD_DROPDOWN:
|
case WIDX_LOAD_DROPDOWN:
|
||||||
|
@ -3792,7 +3801,7 @@ static void window_ride_operating_invalidate(rct_window* w)
|
||||||
caption = STR_NUMBER_OF_LAPS;
|
caption = STR_NUMBER_OF_LAPS;
|
||||||
tooltip = STR_NUMBER_OF_LAPS_TIP;
|
tooltip = STR_NUMBER_OF_LAPS_TIP;
|
||||||
break;
|
break;
|
||||||
case RIDE_MODE_BUMPERCAR:
|
case RIDE_MODE_DODGEMS:
|
||||||
format = STR_RIDE_MODE_TIME_LIMIT_VALUE;
|
format = STR_RIDE_MODE_TIME_LIMIT_VALUE;
|
||||||
caption = STR_TIME_LIMIT;
|
caption = STR_TIME_LIMIT;
|
||||||
tooltip = STR_TIME_LIMIT_TIP;
|
tooltip = STR_TIME_LIMIT_TIP;
|
||||||
|
|
|
@ -563,7 +563,7 @@ rct_window* window_ride_construction_open()
|
||||||
_currentBrakeSpeed2 = 8;
|
_currentBrakeSpeed2 = 8;
|
||||||
_currentSeatRotationAngle = 4;
|
_currentSeatRotationAngle = 4;
|
||||||
|
|
||||||
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
|
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackSlopeEnd = 0;
|
_currentTrackSlopeEnd = 0;
|
||||||
_currentTrackBankEnd = 0;
|
_currentTrackBankEnd = 0;
|
||||||
_currentTrackLiftHill = 0;
|
_currentTrackLiftHill = 0;
|
||||||
|
@ -712,7 +712,7 @@ static void window_ride_construction_resize(rct_window* w)
|
||||||
|
|
||||||
uint64_t disabledWidgets = 0;
|
uint64_t disabledWidgets = 0;
|
||||||
|
|
||||||
if (_currentTrackCurve & 0x100)
|
if (_currentTrackCurve & RideConstructionSpecialPieceSelected)
|
||||||
{
|
{
|
||||||
disabledWidgets |= (1ULL << WIDX_SLOPE_GROUPBOX) | (1ULL << WIDX_BANKING_GROUPBOX) | (1ULL << WIDX_SLOPE_DOWN_STEEP)
|
disabledWidgets |= (1ULL << WIDX_SLOPE_GROUPBOX) | (1ULL << WIDX_BANKING_GROUPBOX) | (1ULL << WIDX_SLOPE_DOWN_STEEP)
|
||||||
| (1ULL << WIDX_SLOPE_DOWN) | (1ULL << WIDX_LEVEL) | (1ULL << WIDX_SLOPE_UP) | (1ULL << WIDX_SLOPE_UP_STEEP)
|
| (1ULL << WIDX_SLOPE_DOWN) | (1ULL << WIDX_LEVEL) | (1ULL << WIDX_SLOPE_UP) | (1ULL << WIDX_SLOPE_UP_STEEP)
|
||||||
|
@ -773,7 +773,7 @@ static void window_ride_construction_resize(rct_window* w)
|
||||||
}
|
}
|
||||||
if (!is_track_enabled(TRACK_SLOPE) && !is_track_enabled(TRACK_SLOPE_STEEP))
|
if (!is_track_enabled(TRACK_SLOPE) && !is_track_enabled(TRACK_SLOPE_STEEP))
|
||||||
{
|
{
|
||||||
if (rideType != RIDE_TYPE_REVERSE_FREEFALL_COASTER && rideType != RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER)
|
if (!RideTypeDescriptors[ride->type].SupportsTrackPiece(TRACK_REVERSE_FREEFALL))
|
||||||
{
|
{
|
||||||
// Disable all slopes
|
// Disable all slopes
|
||||||
disabledWidgets |= (1ULL << WIDX_SLOPE_GROUPBOX) | (1ULL << WIDX_SLOPE_DOWN_STEEP) | (1ULL << WIDX_SLOPE_DOWN)
|
disabledWidgets |= (1ULL << WIDX_SLOPE_GROUPBOX) | (1ULL << WIDX_SLOPE_DOWN_STEEP) | (1ULL << WIDX_SLOPE_DOWN)
|
||||||
|
@ -1321,28 +1321,28 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_LARGE | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
else if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_DOWN_SMALL | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT_SMALL && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT_SMALL && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_SMALL | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1352,14 +1352,15 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_DOWN | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_DOWN
|
||||||
|
| RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1371,14 +1372,14 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_DOWN | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1438,7 +1439,7 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_FRONT && _currentTrackCurve == TRACK_CURVE_NONE)
|
if (_rideConstructionState == RIDE_CONSTRUCTION_STATE_FRONT && _currentTrackCurve == TRACK_CURVE_NONE)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_REVERSE_FREEFALL_SLOPE | 0x100;
|
_currentTrackCurve = TRACK_ELEM_REVERSE_FREEFALL_SLOPE | RideConstructionSpecialPieceSelected;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1453,28 +1454,28 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_LARGE | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_LARGE | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
else if (_currentTrackCurve == TRACK_CURVE_LEFT_SMALL && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT_SMALL && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT_SMALL && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_UP_SMALL | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1484,14 +1485,14 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT && _currentTrackBankEnd == TRACK_BANK_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT && _currentTrackBankEnd == TRACK_BANK_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_BANKED_HELIX_LARGE_UP | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1503,14 +1504,14 @@ static void window_ride_construction_mousedown(rct_window* w, rct_widgetindex wi
|
||||||
{
|
{
|
||||||
if (_currentTrackCurve == TRACK_CURVE_LEFT)
|
if (_currentTrackCurve == TRACK_CURVE_LEFT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_UP | 0x100;
|
_currentTrackCurve = TRACK_ELEM_LEFT_QUARTER_HELIX_LARGE_UP | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
else if (_currentTrackCurve == TRACK_CURVE_RIGHT)
|
else if (_currentTrackCurve == TRACK_CURVE_RIGHT)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_UP | 0x100;
|
_currentTrackCurve = TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_UP | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackPrice = MONEY32_UNDEFINED;
|
_currentTrackPrice = MONEY32_UNDEFINED;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
break;
|
break;
|
||||||
|
@ -1672,7 +1673,7 @@ static void window_ride_construction_dropdown(rct_window* w, rct_widgetindex wid
|
||||||
_currentTrackLiftHill &= ~CONSTRUCTION_LIFT_HILL_SELECTED;
|
_currentTrackLiftHill &= ~CONSTRUCTION_LIFT_HILL_SELECTED;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
_currentTrackCurve = trackPiece | 0x100;
|
_currentTrackCurve = trackPiece | RideConstructionSpecialPieceSelected;
|
||||||
window_ride_construction_update_active_elements();
|
window_ride_construction_update_active_elements();
|
||||||
}
|
}
|
||||||
static void RideConstructPlacedForwardGameActionCallback(const GameAction* ga, const TrackPlaceActionResult* result);
|
static void RideConstructPlacedForwardGameActionCallback(const GameAction* ga, const TrackPlaceActionResult* result);
|
||||||
|
@ -1853,10 +1854,10 @@ static void window_ride_construction_construct(rct_window* w)
|
||||||
viewport_set_visibility(1);
|
viewport_set_visibility(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((_currentTrackCurve >= (TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL | 0x100)
|
if ((_currentTrackCurve >= (TRACK_ELEM_LEFT_HALF_BANKED_HELIX_UP_SMALL | RideConstructionSpecialPieceSelected)
|
||||||
&& _currentTrackCurve <= (TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE | 0x100))
|
&& _currentTrackCurve <= (TRACK_ELEM_RIGHT_HALF_BANKED_HELIX_DOWN_LARGE | RideConstructionSpecialPieceSelected))
|
||||||
|| (_currentTrackCurve >= (TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP | 0x100)
|
|| (_currentTrackCurve >= (TRACK_ELEM_LEFT_QUARTER_BANKED_HELIX_LARGE_UP | RideConstructionSpecialPieceSelected)
|
||||||
&& _currentTrackCurve <= (TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN | 0x100))
|
&& _currentTrackCurve <= (TRACK_ELEM_RIGHT_QUARTER_HELIX_LARGE_DOWN | RideConstructionSpecialPieceSelected))
|
||||||
|| (_currentTrackSlopeEnd != TRACK_SLOPE_NONE))
|
|| (_currentTrackSlopeEnd != TRACK_SLOPE_NONE))
|
||||||
{
|
{
|
||||||
viewport_set_visibility(2);
|
viewport_set_visibility(2);
|
||||||
|
@ -2068,10 +2069,10 @@ static void window_ride_construction_update(rct_window* w)
|
||||||
|
|
||||||
switch (_currentTrackCurve)
|
switch (_currentTrackCurve)
|
||||||
{
|
{
|
||||||
case TRACK_ELEM_SPINNING_TUNNEL | 0x100:
|
case TRACK_ELEM_SPINNING_TUNNEL | RideConstructionSpecialPieceSelected:
|
||||||
case TRACK_ELEM_WHIRLPOOL | 0x100:
|
case TRACK_ELEM_WHIRLPOOL | RideConstructionSpecialPieceSelected:
|
||||||
case TRACK_ELEM_RAPIDS | 0x100:
|
case TRACK_ELEM_RAPIDS | RideConstructionSpecialPieceSelected:
|
||||||
case TRACK_ELEM_WATERFALL | 0x100:
|
case TRACK_ELEM_WATERFALL | RideConstructionSpecialPieceSelected:
|
||||||
widget_invalidate(w, WIDX_CONSTRUCT);
|
widget_invalidate(w, WIDX_CONSTRUCT);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -2268,7 +2269,7 @@ static void window_ride_construction_invalidate(rct_window* w)
|
||||||
}
|
}
|
||||||
|
|
||||||
rct_string_id stringId = STR_RIDE_CONSTRUCTION_SPECIAL;
|
rct_string_id stringId = STR_RIDE_CONSTRUCTION_SPECIAL;
|
||||||
if (_currentTrackCurve & 0x100)
|
if (_currentTrackCurve & RideConstructionSpecialPieceSelected)
|
||||||
{
|
{
|
||||||
stringId = RideConfigurationStringIds[_currentTrackCurve & 0xFF];
|
stringId = RideConfigurationStringIds[_currentTrackCurve & 0xFF];
|
||||||
if (stringId == STR_RAPIDS && ride->type == RIDE_TYPE_CAR_RIDE)
|
if (stringId == STR_RAPIDS && ride->type == RIDE_TYPE_CAR_RIDE)
|
||||||
|
@ -3084,9 +3085,11 @@ static void window_ride_construction_update_widgets(rct_window* w)
|
||||||
window_ride_construction_widgets[WIDX_U_TRACK].type = WWT_EMPTY;
|
window_ride_construction_widgets[WIDX_U_TRACK].type = WWT_EMPTY;
|
||||||
window_ride_construction_widgets[WIDX_O_TRACK].type = WWT_EMPTY;
|
window_ride_construction_widgets[WIDX_O_TRACK].type = WWT_EMPTY;
|
||||||
|
|
||||||
bool brakesSelected = _selectedTrackType == TRACK_ELEM_BRAKES || _currentTrackCurve == (0x100 | TRACK_ELEM_BRAKES);
|
bool brakesSelected = _selectedTrackType == TRACK_ELEM_BRAKES
|
||||||
|
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TRACK_ELEM_BRAKES);
|
||||||
_boosterTrackSelected = track_element_is_booster(ride->type, _selectedTrackType)
|
_boosterTrackSelected = track_element_is_booster(ride->type, _selectedTrackType)
|
||||||
|| (ride->type != RIDE_TYPE_STEEL_WILD_MOUSE && _currentTrackCurve == (0x100 | TRACK_ELEM_BOOSTER));
|
|| (ride->type != RIDE_TYPE_STEEL_WILD_MOUSE
|
||||||
|
&& _currentTrackCurve == (RideConstructionSpecialPieceSelected | TRACK_ELEM_BOOSTER));
|
||||||
|
|
||||||
if (!brakesSelected && !_boosterTrackSelected)
|
if (!brakesSelected && !_boosterTrackSelected)
|
||||||
{
|
{
|
||||||
|
@ -3104,8 +3107,9 @@ static void window_ride_construction_update_widgets(rct_window* w)
|
||||||
window_ride_construction_widgets[WIDX_O_TRACK].image = SPR_RIDE_CONSTRUCTION_WATER_CHANNEL;
|
window_ride_construction_widgets[WIDX_O_TRACK].image = SPR_RIDE_CONSTRUCTION_WATER_CHANNEL;
|
||||||
window_ride_construction_widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP;
|
window_ride_construction_widgets[WIDX_U_TRACK].tooltip = STR_RIDE_CONSTRUCTION_STANDARD_RC_TRACK_TIP;
|
||||||
window_ride_construction_widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP;
|
window_ride_construction_widgets[WIDX_O_TRACK].tooltip = STR_RIDE_CONSTRUCTION_WATER_CHANNEL_TIP;
|
||||||
if ((_currentTrackCurve < TRACK_CURVE_LEFT_SMALL || _currentTrackCurve == (0x100 | TRACK_ELEM_S_BEND_LEFT)
|
if ((_currentTrackCurve < TRACK_CURVE_LEFT_SMALL
|
||||||
|| _currentTrackCurve == (0x100 | TRACK_ELEM_S_BEND_RIGHT))
|
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TRACK_ELEM_S_BEND_LEFT)
|
||||||
|
|| _currentTrackCurve == (RideConstructionSpecialPieceSelected | TRACK_ELEM_S_BEND_RIGHT))
|
||||||
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TRACK_BANK_NONE)
|
&& _currentTrackSlopeEnd == TRACK_SLOPE_NONE && _currentTrackBankEnd == TRACK_BANK_NONE)
|
||||||
{
|
{
|
||||||
window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
|
window_ride_construction_widgets[WIDX_BANKING_GROUPBOX].text = STR_RIDE_CONSTRUCTION_TRACK_STYLE;
|
||||||
|
@ -3171,7 +3175,8 @@ static void window_ride_construction_update_widgets(rct_window* w)
|
||||||
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER_UP].type = WWT_EMPTY;
|
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER_UP].type = WWT_EMPTY;
|
||||||
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER_DOWN].type = WWT_EMPTY;
|
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER_DOWN].type = WWT_EMPTY;
|
||||||
if ((rideType == RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER || rideType == RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT)
|
if ((rideType == RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER || rideType == RIDE_TYPE_MULTI_DIMENSION_ROLLER_COASTER_ALT)
|
||||||
&& _selectedTrackType != TRACK_ELEM_BRAKES && _currentTrackCurve != (0x100 | TRACK_ELEM_BRAKES))
|
&& _selectedTrackType != TRACK_ELEM_BRAKES
|
||||||
|
&& _currentTrackCurve != (RideConstructionSpecialPieceSelected | TRACK_ELEM_BRAKES))
|
||||||
{
|
{
|
||||||
window_ride_construction_widgets[WIDX_SEAT_ROTATION_GROUPBOX].type = WWT_GROUPBOX;
|
window_ride_construction_widgets[WIDX_SEAT_ROTATION_GROUPBOX].type = WWT_GROUPBOX;
|
||||||
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].type = WWT_SPINNER;
|
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].type = WWT_SPINNER;
|
||||||
|
@ -3378,7 +3383,7 @@ static void window_ride_construction_show_special_track_dropdown(rct_window* w,
|
||||||
trackPieceStringId = STR_BOOSTER;
|
trackPieceStringId = STR_BOOSTER;
|
||||||
}
|
}
|
||||||
gDropdownItemsFormat[i] = trackPieceStringId;
|
gDropdownItemsFormat[i] = trackPieceStringId;
|
||||||
if ((trackPiece | 0x100) == _currentTrackCurve)
|
if ((trackPiece | RideConstructionSpecialPieceSelected) == _currentTrackCurve)
|
||||||
{
|
{
|
||||||
defaultIndex = i;
|
defaultIndex = i;
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,7 +98,7 @@ enum
|
||||||
GUEST_PARAMETER_THIRST,
|
GUEST_PARAMETER_THIRST,
|
||||||
GUEST_PARAMETER_NAUSEA,
|
GUEST_PARAMETER_NAUSEA,
|
||||||
GUEST_PARAMETER_NAUSEA_TOLERANCE,
|
GUEST_PARAMETER_NAUSEA_TOLERANCE,
|
||||||
GUEST_PARAMETER_BATHROOM,
|
GUEST_PARAMETER_TOILET,
|
||||||
GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY
|
GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -255,17 +255,7 @@ public:
|
||||||
private:
|
private:
|
||||||
bool ride_is_mode_valid(Ride * ride) const
|
bool ride_is_mode_valid(Ride * ride) const
|
||||||
{
|
{
|
||||||
const uint8_t* availableModes = ride_seek_available_modes(ride);
|
return RideTypeDescriptors[ride->type].RideModes & (1ULL << _value);
|
||||||
|
|
||||||
for (; *availableModes != 0xFF; availableModes++)
|
|
||||||
{
|
|
||||||
if (*availableModes == _value)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ride_is_valid_lift_hill_speed(Ride * ride) const
|
bool ride_is_valid_lift_hill_speed(Ride * ride) const
|
||||||
|
@ -303,7 +293,7 @@ private:
|
||||||
return STR_CANT_CHANGE_SPEED;
|
return STR_CANT_CHANGE_SPEED;
|
||||||
case RIDE_MODE_RACE:
|
case RIDE_MODE_RACE:
|
||||||
return STR_CANT_CHANGE_NUMBER_OF_LAPS;
|
return STR_CANT_CHANGE_NUMBER_OF_LAPS;
|
||||||
case RIDE_MODE_BUMPERCAR:
|
case RIDE_MODE_DODGEMS:
|
||||||
return STR_CANT_CHANGE_TIME_LIMIT;
|
return STR_CANT_CHANGE_TIME_LIMIT;
|
||||||
case RIDE_MODE_SWING:
|
case RIDE_MODE_SWING:
|
||||||
return STR_CANT_CHANGE_NUMBER_OF_SWINGS;
|
return STR_CANT_CHANGE_NUMBER_OF_SWINGS;
|
||||||
|
|
|
@ -333,9 +333,9 @@ private:
|
||||||
case GUEST_PARAMETER_NAUSEA_TOLERANCE:
|
case GUEST_PARAMETER_NAUSEA_TOLERANCE:
|
||||||
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY },
|
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY },
|
||||||
{ PEEP_NAUSEA_TOLERANCE_NONE, PEEP_NAUSEA_TOLERANCE_HIGH } };
|
{ PEEP_NAUSEA_TOLERANCE_NONE, PEEP_NAUSEA_TOLERANCE_HIGH } };
|
||||||
case GUEST_PARAMETER_BATHROOM:
|
case GUEST_PARAMETER_TOILET:
|
||||||
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY },
|
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY },
|
||||||
{ 0, PEEP_MAX_BATHROOM } };
|
{ 0, PEEP_MAX_TOILET } };
|
||||||
case GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY:
|
case GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY:
|
||||||
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY }, { 0, 255 } };
|
return { { GUEST_PARAMETER_HAPPINESS, GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY }, { 0, 255 } };
|
||||||
default:
|
default:
|
||||||
|
@ -601,7 +601,7 @@ private:
|
||||||
case GUEST_PARAMETER_NAUSEA_TOLERANCE:
|
case GUEST_PARAMETER_NAUSEA_TOLERANCE:
|
||||||
peep->nausea_tolerance = value;
|
peep->nausea_tolerance = value;
|
||||||
break;
|
break;
|
||||||
case GUEST_PARAMETER_BATHROOM:
|
case GUEST_PARAMETER_TOILET:
|
||||||
peep->toilet = value;
|
peep->toilet = value;
|
||||||
break;
|
break;
|
||||||
case GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY:
|
case GUEST_PARAMETER_PREFERRED_RIDE_INTENSITY:
|
||||||
|
|
|
@ -120,7 +120,7 @@ const rct_string_id PeepThoughts[] = {
|
||||||
STR_PEEP_THOUGHT_TYPE_TIRED,
|
STR_PEEP_THOUGHT_TYPE_TIRED,
|
||||||
STR_PEEP_THOUGHT_TYPE_HUNGRY,
|
STR_PEEP_THOUGHT_TYPE_HUNGRY,
|
||||||
STR_PEEP_THOUGHT_TYPE_THIRSTY,
|
STR_PEEP_THOUGHT_TYPE_THIRSTY,
|
||||||
STR_PEEP_THOUGHT_TYPE_BATHROOM,
|
STR_PEEP_THOUGHT_TYPE_TOILET,
|
||||||
STR_PEEP_THOUGHT_TYPE_CANT_FIND,
|
STR_PEEP_THOUGHT_TYPE_CANT_FIND,
|
||||||
STR_PEEP_THOUGHT_TYPE_NOT_PAYING,
|
STR_PEEP_THOUGHT_TYPE_NOT_PAYING,
|
||||||
STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING,
|
STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING,
|
||||||
|
|
|
@ -915,7 +915,7 @@ enum
|
||||||
STR_PEEP_THOUGHT_TYPE_TIRED = 1499,
|
STR_PEEP_THOUGHT_TYPE_TIRED = 1499,
|
||||||
STR_PEEP_THOUGHT_TYPE_HUNGRY = 1500,
|
STR_PEEP_THOUGHT_TYPE_HUNGRY = 1500,
|
||||||
STR_PEEP_THOUGHT_TYPE_THIRSTY = 1501,
|
STR_PEEP_THOUGHT_TYPE_THIRSTY = 1501,
|
||||||
STR_PEEP_THOUGHT_TYPE_BATHROOM = 1502,
|
STR_PEEP_THOUGHT_TYPE_TOILET = 1502,
|
||||||
STR_PEEP_THOUGHT_TYPE_CANT_FIND = 1503,
|
STR_PEEP_THOUGHT_TYPE_CANT_FIND = 1503,
|
||||||
STR_PEEP_THOUGHT_TYPE_NOT_PAYING = 1504,
|
STR_PEEP_THOUGHT_TYPE_NOT_PAYING = 1504,
|
||||||
STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING = 1505,
|
STR_PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING = 1505,
|
||||||
|
@ -2119,7 +2119,7 @@ enum
|
||||||
STR_PEEPS_DISLIKE_VANDALISM = 2808,
|
STR_PEEPS_DISLIKE_VANDALISM = 2808,
|
||||||
STR_PEEPS_ARE_HUNGRY = 2809,
|
STR_PEEPS_ARE_HUNGRY = 2809,
|
||||||
STR_PEEPS_ARE_THIRSTY = 2810,
|
STR_PEEPS_ARE_THIRSTY = 2810,
|
||||||
STR_PEEPS_CANT_FIND_BATHROOM = 2811,
|
STR_PEEPS_CANT_FIND_TOILET = 2811,
|
||||||
STR_PEEPS_GETTING_LOST_OR_STUCK = 2812,
|
STR_PEEPS_GETTING_LOST_OR_STUCK = 2812,
|
||||||
STR_ENTRANCE_FEE_TOO_HI = 2813,
|
STR_ENTRANCE_FEE_TOO_HI = 2813,
|
||||||
STR_AWARD_MOST_UNTIDY = 2814,
|
STR_AWARD_MOST_UNTIDY = 2814,
|
||||||
|
@ -2841,7 +2841,7 @@ enum
|
||||||
STR_CHEAT_GUEST_THIRST = 5355,
|
STR_CHEAT_GUEST_THIRST = 5355,
|
||||||
STR_CHEAT_GUEST_NAUSEA = 5356,
|
STR_CHEAT_GUEST_NAUSEA = 5356,
|
||||||
STR_CHEAT_GUEST_NAUSEA_TOLERANCE = 5357,
|
STR_CHEAT_GUEST_NAUSEA_TOLERANCE = 5357,
|
||||||
STR_CHEAT_GUEST_BATHROOM = 5358,
|
STR_CHEAT_GUEST_TOILET = 5358,
|
||||||
STR_CHEAT_REMOVE_ALL_GUESTS = 5359,
|
STR_CHEAT_REMOVE_ALL_GUESTS = 5359,
|
||||||
STR_CHEAT_REMOVE_ALL_GUESTS_TIP = 5360,
|
STR_CHEAT_REMOVE_ALL_GUESTS_TIP = 5360,
|
||||||
STR_CHEAT_GIVE_ALL_GUESTS = 5361,
|
STR_CHEAT_GIVE_ALL_GUESTS = 5361,
|
||||||
|
|
|
@ -418,7 +418,7 @@ static bool award_is_deserved_best_restrooms([[maybe_unused]] int32_t activeAwar
|
||||||
if (peep->outside_of_park != 0)
|
if (peep->outside_of_park != 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (peep->thoughts[0].freshness <= 5 && peep->thoughts[0].type == PEEP_THOUGHT_TYPE_BATHROOM)
|
if (peep->thoughts[0].freshness <= 5 && peep->thoughts[0].type == PEEP_THOUGHT_TYPE_TOILET)
|
||||||
guestsWhoNeedRestroom++;
|
guestsWhoNeedRestroom++;
|
||||||
}
|
}
|
||||||
return (guestsWhoNeedRestroom <= 16);
|
return (guestsWhoNeedRestroom <= 16);
|
||||||
|
|
|
@ -283,7 +283,7 @@ static constexpr const PeepThoughtType crowded_thoughts[] = {
|
||||||
PEEP_THOUGHT_TYPE_WATCHED,
|
PEEP_THOUGHT_TYPE_WATCHED,
|
||||||
PEEP_THOUGHT_TYPE_NOT_HUNGRY,
|
PEEP_THOUGHT_TYPE_NOT_HUNGRY,
|
||||||
PEEP_THOUGHT_TYPE_NOT_THIRSTY,
|
PEEP_THOUGHT_TYPE_NOT_THIRSTY,
|
||||||
PEEP_THOUGHT_TYPE_BATHROOM,
|
PEEP_THOUGHT_TYPE_TOILET,
|
||||||
PEEP_THOUGHT_TYPE_NONE,
|
PEEP_THOUGHT_TYPE_NONE,
|
||||||
PEEP_THOUGHT_TYPE_NONE,
|
PEEP_THOUGHT_TYPE_NONE,
|
||||||
};
|
};
|
||||||
|
@ -602,10 +602,10 @@ void Guest::HandleEasterEggName()
|
||||||
peep_flags |= PEEP_FLAGS_HUNGER;
|
peep_flags |= PEEP_FLAGS_HUNGER;
|
||||||
}
|
}
|
||||||
|
|
||||||
peep_flags &= ~PEEP_FLAGS_BATHROOM;
|
peep_flags &= ~PEEP_FLAGS_TOILET;
|
||||||
if (CheckEasterEggName(EASTEREGG_PEEP_NAME_FRANCES_MCGOWAN))
|
if (CheckEasterEggName(EASTEREGG_PEEP_NAME_FRANCES_MCGOWAN))
|
||||||
{
|
{
|
||||||
peep_flags |= PEEP_FLAGS_BATHROOM;
|
peep_flags |= PEEP_FLAGS_TOILET;
|
||||||
}
|
}
|
||||||
|
|
||||||
peep_flags &= ~PEEP_FLAGS_CROWDED;
|
peep_flags &= ~PEEP_FLAGS_CROWDED;
|
||||||
|
@ -732,7 +732,7 @@ void Guest::Tick128UpdateGuest(int32_t index)
|
||||||
hunger -= 15;
|
hunger -= 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peep_flags & PEEP_FLAGS_BATHROOM)
|
if (peep_flags & PEEP_FLAGS_TOILET)
|
||||||
{
|
{
|
||||||
if (toilet <= 180)
|
if (toilet <= 180)
|
||||||
toilet += 50;
|
toilet += 50;
|
||||||
|
@ -863,7 +863,7 @@ void Guest::Tick128UpdateGuest(int32_t index)
|
||||||
|
|
||||||
if (toilet >= 160)
|
if (toilet >= 160)
|
||||||
{
|
{
|
||||||
possible_thoughts[num_thoughts++] = PEEP_THOUGHT_TYPE_BATHROOM;
|
possible_thoughts[num_thoughts++] = PEEP_THOUGHT_TYPE_TOILET;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(gParkFlags & PARK_FLAGS_NO_MONEY) && cash_in_pocket <= MONEY(9, 00) && happiness >= 105
|
if (!(gParkFlags & PARK_FLAGS_NO_MONEY) && cash_in_pocket <= MONEY(9, 00) && happiness >= 105
|
||||||
|
@ -894,7 +894,7 @@ void Guest::Tick128UpdateGuest(int32_t index)
|
||||||
case PEEP_THOUGHT_TYPE_THIRSTY:
|
case PEEP_THOUGHT_TYPE_THIRSTY:
|
||||||
peep_head_for_nearest_ride_with_flags(this, RIDE_TYPE_FLAG_SELLS_DRINKS);
|
peep_head_for_nearest_ride_with_flags(this, RIDE_TYPE_FLAG_SELLS_DRINKS);
|
||||||
break;
|
break;
|
||||||
case PEEP_THOUGHT_TYPE_BATHROOM:
|
case PEEP_THOUGHT_TYPE_TOILET:
|
||||||
peep_head_for_nearest_ride_with_flags(this, RIDE_TYPE_FLAG_IS_TOILET);
|
peep_head_for_nearest_ride_with_flags(this, RIDE_TYPE_FLAG_IS_TOILET);
|
||||||
break;
|
break;
|
||||||
case PEEP_THOUGHT_TYPE_RUNNING_OUT:
|
case PEEP_THOUGHT_TYPE_RUNNING_OUT:
|
||||||
|
@ -2270,7 +2270,7 @@ bool Guest::ShouldGoToShop(Ride* ride, bool peepAtShop)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The amount that peeps are willing to pay to use the Toilets scales with their bathroom stat.
|
// The amount that peeps are willing to pay to use the Toilets scales with their toilet stat.
|
||||||
// It effectively has a minimum of $0.10 (due to the check above) and a maximum of $0.60.
|
// It effectively has a minimum of $0.10 (due to the check above) and a maximum of $0.60.
|
||||||
if (ride_get_price(ride) * 40 > toilet)
|
if (ride_get_price(ride) * 40 > toilet)
|
||||||
{
|
{
|
||||||
|
@ -2557,7 +2557,7 @@ bool Guest::FindVehicleToEnter(Ride* ride, std::vector<uint8_t>& car_array)
|
||||||
{
|
{
|
||||||
uint8_t chosen_train = RideStation::NO_TRAIN;
|
uint8_t chosen_train = RideStation::NO_TRAIN;
|
||||||
|
|
||||||
if (ride->mode == RIDE_MODE_BUMPERCAR || ride->mode == RIDE_MODE_RACE)
|
if (ride->mode == RIDE_MODE_DODGEMS || ride->mode == RIDE_MODE_RACE)
|
||||||
{
|
{
|
||||||
if (ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)
|
if (ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)
|
||||||
return false;
|
return false;
|
||||||
|
@ -3285,7 +3285,7 @@ void Guest::StopPurchaseThought(uint8_t ride_type)
|
||||||
thoughtType = PEEP_THOUGHT_TYPE_RUNNING_OUT;
|
thoughtType = PEEP_THOUGHT_TYPE_RUNNING_OUT;
|
||||||
if (ride_type != RIDE_TYPE_CASH_MACHINE)
|
if (ride_type != RIDE_TYPE_CASH_MACHINE)
|
||||||
{
|
{
|
||||||
thoughtType = PEEP_THOUGHT_TYPE_BATHROOM;
|
thoughtType = PEEP_THOUGHT_TYPE_TOILET;
|
||||||
if (!ride_type_has_flag(ride_type, RIDE_TYPE_FLAG_IS_TOILET))
|
if (!ride_type_has_flag(ride_type, RIDE_TYPE_FLAG_IS_TOILET))
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -6935,7 +6935,7 @@ void Guest::UpdateSpriteType()
|
||||||
|
|
||||||
if (toilet > 220)
|
if (toilet > 220)
|
||||||
{
|
{
|
||||||
SetSpriteType(PEEP_SPRITE_TYPE_REQUIRE_BATHROOM);
|
SetSpriteType(PEEP_SPRITE_TYPE_REQUIRE_TOILET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1195,7 +1195,7 @@ void peep_problem_warnings_update()
|
||||||
Ride* ride;
|
Ride* ride;
|
||||||
uint16_t spriteIndex;
|
uint16_t spriteIndex;
|
||||||
uint32_t hunger_counter = 0, lost_counter = 0, noexit_counter = 0, thirst_counter = 0, litter_counter = 0,
|
uint32_t hunger_counter = 0, lost_counter = 0, noexit_counter = 0, thirst_counter = 0, litter_counter = 0,
|
||||||
disgust_counter = 0, bathroom_counter = 0, vandalism_counter = 0;
|
disgust_counter = 0, toilet_counter = 0, vandalism_counter = 0;
|
||||||
uint8_t* warning_throttle = gPeepWarningThrottle;
|
uint8_t* warning_throttle = gPeepWarningThrottle;
|
||||||
|
|
||||||
FOR_ALL_GUESTS (spriteIndex, peep)
|
FOR_ALL_GUESTS (spriteIndex, peep)
|
||||||
|
@ -1231,15 +1231,15 @@ void peep_problem_warnings_update()
|
||||||
thirst_counter++;
|
thirst_counter++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PEEP_THOUGHT_TYPE_BATHROOM:
|
case PEEP_THOUGHT_TYPE_TOILET:
|
||||||
if (peep->guest_heading_to_ride_id == 0xFF)
|
if (peep->guest_heading_to_ride_id == 0xFF)
|
||||||
{
|
{
|
||||||
bathroom_counter++;
|
toilet_counter++;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ride = get_ride(peep->guest_heading_to_ride_id);
|
ride = get_ride(peep->guest_heading_to_ride_id);
|
||||||
if (ride != nullptr && !ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_IS_TOILET))
|
if (ride != nullptr && !ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_IS_TOILET))
|
||||||
bathroom_counter++;
|
toilet_counter++;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PEEP_THOUGHT_TYPE_BAD_LITTER: // 0x1a
|
case PEEP_THOUGHT_TYPE_BAD_LITTER: // 0x1a
|
||||||
|
@ -1283,12 +1283,12 @@ void peep_problem_warnings_update()
|
||||||
|
|
||||||
if (warning_throttle[2])
|
if (warning_throttle[2])
|
||||||
--warning_throttle[2];
|
--warning_throttle[2];
|
||||||
else if (bathroom_counter >= PEEP_BATHROOM_WARNING_THRESHOLD && bathroom_counter >= gNumGuestsInPark / 16)
|
else if (toilet_counter >= PEEP_TOILET_WARNING_THRESHOLD && toilet_counter >= gNumGuestsInPark / 16)
|
||||||
{
|
{
|
||||||
warning_throttle[2] = 4;
|
warning_throttle[2] = 4;
|
||||||
if (gConfigNotifications.guest_warnings)
|
if (gConfigNotifications.guest_warnings)
|
||||||
{
|
{
|
||||||
news_item_add_to_queue(NEWS_ITEM_PEEPS, STR_PEEPS_CANT_FIND_BATHROOM, 22);
|
news_item_add_to_queue(NEWS_ITEM_PEEPS, STR_PEEPS_CANT_FIND_TOILET, 22);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
#define PEEP_HUNGER_WARNING_THRESHOLD 25
|
#define PEEP_HUNGER_WARNING_THRESHOLD 25
|
||||||
#define PEEP_THIRST_WARNING_THRESHOLD 25
|
#define PEEP_THIRST_WARNING_THRESHOLD 25
|
||||||
#define PEEP_BATHROOM_WARNING_THRESHOLD 28
|
#define PEEP_TOILET_WARNING_THRESHOLD 28
|
||||||
#define PEEP_LITTER_WARNING_THRESHOLD 23
|
#define PEEP_LITTER_WARNING_THRESHOLD 23
|
||||||
#define PEEP_DISGUST_WARNING_THRESHOLD 22
|
#define PEEP_DISGUST_WARNING_THRESHOLD 22
|
||||||
#define PEEP_VANDALISM_WARNING_THRESHOLD 15
|
#define PEEP_VANDALISM_WARNING_THRESHOLD 15
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
#define PEEP_MAX_ENERGY 128
|
#define PEEP_MAX_ENERGY 128
|
||||||
#define PEEP_MAX_ENERGY_TARGET 255 // Oddly, this differs from max energy!
|
#define PEEP_MAX_ENERGY_TARGET 255 // Oddly, this differs from max energy!
|
||||||
#define PEEP_MAX_HUNGER 255
|
#define PEEP_MAX_HUNGER 255
|
||||||
#define PEEP_MAX_BATHROOM 255
|
#define PEEP_MAX_TOILET 255
|
||||||
#define PEEP_MAX_NAUSEA 255
|
#define PEEP_MAX_NAUSEA 255
|
||||||
#define PEEP_MAX_THIRST 255
|
#define PEEP_MAX_THIRST 255
|
||||||
|
|
||||||
|
@ -80,7 +80,7 @@ enum PeepThoughtType : uint8_t
|
||||||
PEEP_THOUGHT_TYPE_TIRED = 19, // "I'm tired"
|
PEEP_THOUGHT_TYPE_TIRED = 19, // "I'm tired"
|
||||||
PEEP_THOUGHT_TYPE_HUNGRY = 20, // "I'm hungry"
|
PEEP_THOUGHT_TYPE_HUNGRY = 20, // "I'm hungry"
|
||||||
PEEP_THOUGHT_TYPE_THIRSTY = 21, // "I'm thirsty"
|
PEEP_THOUGHT_TYPE_THIRSTY = 21, // "I'm thirsty"
|
||||||
PEEP_THOUGHT_TYPE_BATHROOM = 22, // "I need to go to the bathroom"
|
PEEP_THOUGHT_TYPE_TOILET = 22, // "I need to go to the toilet"
|
||||||
PEEP_THOUGHT_TYPE_CANT_FIND = 23, // "I can't find X"
|
PEEP_THOUGHT_TYPE_CANT_FIND = 23, // "I can't find X"
|
||||||
PEEP_THOUGHT_TYPE_NOT_PAYING = 24, // "I'm not paying that much to use X"
|
PEEP_THOUGHT_TYPE_NOT_PAYING = 24, // "I'm not paying that much to use X"
|
||||||
PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING = 25, // "I'm not going on X while it's raining"
|
PEEP_THOUGHT_TYPE_NOT_WHILE_RAINING = 25, // "I'm not going on X while it's raining"
|
||||||
|
@ -362,7 +362,7 @@ enum PeepFlags : uint32_t
|
||||||
PEEP_FLAGS_LITTER = (1 << 9), // Makes the peep throw litter
|
PEEP_FLAGS_LITTER = (1 << 9), // Makes the peep throw litter
|
||||||
PEEP_FLAGS_LOST = (1 << 10), // Makes the peep feel lost (animation triggered)
|
PEEP_FLAGS_LOST = (1 << 10), // Makes the peep feel lost (animation triggered)
|
||||||
PEEP_FLAGS_HUNGER = (1 << 11), // Makes the peep become hungry quicker
|
PEEP_FLAGS_HUNGER = (1 << 11), // Makes the peep become hungry quicker
|
||||||
PEEP_FLAGS_BATHROOM = (1 << 12), // Makes the peep want to go to the bathroom
|
PEEP_FLAGS_TOILET = (1 << 12), // Makes the peep want to go to the toilet
|
||||||
PEEP_FLAGS_CROWDED = (1 << 13), // The peep will start feeling crowded
|
PEEP_FLAGS_CROWDED = (1 << 13), // The peep will start feeling crowded
|
||||||
PEEP_FLAGS_HAPPINESS = (1 << 14), // The peep will start increasing happiness
|
PEEP_FLAGS_HAPPINESS = (1 << 14), // The peep will start increasing happiness
|
||||||
PEEP_FLAGS_NAUSEA = (1 << 15), // Makes the peep feel sick (e.g. after an extreme ride)
|
PEEP_FLAGS_NAUSEA = (1 << 15), // Makes the peep feel sick (e.g. after an extreme ride)
|
||||||
|
@ -488,7 +488,7 @@ enum PeepSpriteType : uint8_t
|
||||||
PEEP_SPRITE_TYPE_HEAD_DOWN = 26,
|
PEEP_SPRITE_TYPE_HEAD_DOWN = 26,
|
||||||
PEEP_SPRITE_TYPE_NAUSEOUS = 27,
|
PEEP_SPRITE_TYPE_NAUSEOUS = 27,
|
||||||
PEEP_SPRITE_TYPE_VERY_NAUSEOUS = 28,
|
PEEP_SPRITE_TYPE_VERY_NAUSEOUS = 28,
|
||||||
PEEP_SPRITE_TYPE_REQUIRE_BATHROOM = 29,
|
PEEP_SPRITE_TYPE_REQUIRE_TOILET = 29,
|
||||||
PEEP_SPRITE_TYPE_HAT = 30,
|
PEEP_SPRITE_TYPE_HAT = 30,
|
||||||
PEEP_SPRITE_TYPE_HOT_DOG = 31,
|
PEEP_SPRITE_TYPE_HOT_DOG = 31,
|
||||||
PEEP_SPRITE_TYPE_TENTACLE = 32,
|
PEEP_SPRITE_TYPE_TENTACLE = 32,
|
||||||
|
|
|
@ -501,7 +501,7 @@ enum RCT1_PEEP_SPRITE_TYPE
|
||||||
RCT1_PEEP_SPRITE_TYPE_HEAD_DOWN = 23,
|
RCT1_PEEP_SPRITE_TYPE_HEAD_DOWN = 23,
|
||||||
RCT1_PEEP_SPRITE_TYPE_NAUSEOUS = 24,
|
RCT1_PEEP_SPRITE_TYPE_NAUSEOUS = 24,
|
||||||
RCT1_PEEP_SPRITE_TYPE_VERY_NAUSEOUS = 25,
|
RCT1_PEEP_SPRITE_TYPE_VERY_NAUSEOUS = 25,
|
||||||
RCT1_PEEP_SPRITE_TYPE_REQUIRE_BATHROOM = 26,
|
RCT1_PEEP_SPRITE_TYPE_REQUIRE_TOILET = 26,
|
||||||
RCT1_PEEP_SPRITE_TYPE_HAT = 27,
|
RCT1_PEEP_SPRITE_TYPE_HAT = 27,
|
||||||
RCT1_PEEP_SPRITE_TYPE_BURGER = 28,
|
RCT1_PEEP_SPRITE_TYPE_BURGER = 28,
|
||||||
RCT1_PEEP_SPRITE_TYPE_TENTACLE = 29,
|
RCT1_PEEP_SPRITE_TYPE_TENTACLE = 29,
|
||||||
|
|
|
@ -96,7 +96,7 @@ namespace RCT1
|
||||||
PEEP_SPRITE_TYPE_HEAD_DOWN, // 0x17
|
PEEP_SPRITE_TYPE_HEAD_DOWN, // 0x17
|
||||||
PEEP_SPRITE_TYPE_NAUSEOUS, // 0x18
|
PEEP_SPRITE_TYPE_NAUSEOUS, // 0x18
|
||||||
PEEP_SPRITE_TYPE_VERY_NAUSEOUS, // 0x19
|
PEEP_SPRITE_TYPE_VERY_NAUSEOUS, // 0x19
|
||||||
PEEP_SPRITE_TYPE_REQUIRE_BATHROOM, // 0x1A
|
PEEP_SPRITE_TYPE_REQUIRE_TOILET, // 0x1A
|
||||||
PEEP_SPRITE_TYPE_HAT, // 0x1B
|
PEEP_SPRITE_TYPE_HAT, // 0x1B
|
||||||
PEEP_SPRITE_TYPE_HOT_DOG, // 0x1C
|
PEEP_SPRITE_TYPE_HOT_DOG, // 0x1C
|
||||||
PEEP_SPRITE_TYPE_TENTACLE, // 0x1D
|
PEEP_SPRITE_TYPE_TENTACLE, // 0x1D
|
||||||
|
|
|
@ -1361,7 +1361,7 @@ static void ride_construction_reset_current_piece()
|
||||||
|
|
||||||
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK) || ride->num_stations == 0)
|
if (!ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_NO_TRACK) || ride->num_stations == 0)
|
||||||
{
|
{
|
||||||
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
|
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackSlopeEnd = 0;
|
_currentTrackSlopeEnd = 0;
|
||||||
_currentTrackBankEnd = 0;
|
_currentTrackBankEnd = 0;
|
||||||
_currentTrackLiftHill = 0;
|
_currentTrackLiftHill = 0;
|
||||||
|
@ -1437,7 +1437,7 @@ void ride_construction_set_default_next_piece()
|
||||||
{
|
{
|
||||||
if (track_element_is_booster(ride->type, trackType))
|
if (track_element_is_booster(ride->type, trackType))
|
||||||
{
|
{
|
||||||
curve = 0x100 | TRACK_ELEM_BOOSTER;
|
curve = RideConstructionSpecialPieceSelected | TRACK_ELEM_BOOSTER;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1501,7 +1501,7 @@ void ride_construction_set_default_next_piece()
|
||||||
{
|
{
|
||||||
if (track_element_is_booster(ride->type, trackType))
|
if (track_element_is_booster(ride->type, trackType))
|
||||||
{
|
{
|
||||||
curve = 0x100 | TRACK_ELEM_BOOSTER;
|
curve = RideConstructionSpecialPieceSelected | TRACK_ELEM_BOOSTER;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1920,7 +1920,7 @@ int32_t ride_initialise_construction_window(Ride* ride)
|
||||||
if (ride == nullptr)
|
if (ride == nullptr)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | 0x100;
|
_currentTrackCurve = RideTypeDescriptors[ride->type].StartTrackPiece | RideConstructionSpecialPieceSelected;
|
||||||
_currentTrackSlopeEnd = 0;
|
_currentTrackSlopeEnd = 0;
|
||||||
_currentTrackBankEnd = 0;
|
_currentTrackBankEnd = 0;
|
||||||
_currentTrackLiftHill = 0;
|
_currentTrackLiftHill = 0;
|
||||||
|
@ -5498,22 +5498,7 @@ void Ride::StopGuestsQueuing()
|
||||||
|
|
||||||
uint8_t Ride::GetDefaultMode() const
|
uint8_t Ride::GetDefaultMode() const
|
||||||
{
|
{
|
||||||
const rct_ride_entry* rideEntry = get_ride_entry(subtype);
|
return GetRideTypeDescriptor().DefaultMode;
|
||||||
const uint8_t* availableModes = RideAvailableModes;
|
|
||||||
|
|
||||||
for (int32_t i = 0; i < type; i++)
|
|
||||||
{
|
|
||||||
while (*(availableModes++) != RIDE_MODE_NULL)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// Since this only selects a default mode and does not prevent other modes from being used, there is no need
|
|
||||||
// to check if select-by-track-type or the all-ride-modes cheat have been enabled.
|
|
||||||
if (rideEntry->flags & RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES)
|
|
||||||
{
|
|
||||||
availableModes += 2;
|
|
||||||
}
|
|
||||||
return availableModes[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool ride_with_colour_config_exists(uint8_t ride_type, const TrackColour* colours)
|
static bool ride_with_colour_config_exists(uint8_t ride_type, const TrackColour* colours)
|
||||||
|
@ -7130,29 +7115,6 @@ void ride_reset_all_names()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint8_t* ride_seek_available_modes(Ride* ride)
|
|
||||||
{
|
|
||||||
const uint8_t* availableModes;
|
|
||||||
|
|
||||||
if (!gCheatsShowAllOperatingModes)
|
|
||||||
{
|
|
||||||
availableModes = RideAvailableModes;
|
|
||||||
|
|
||||||
for (int32_t i = 0; i < ride->type; i++)
|
|
||||||
{
|
|
||||||
while (*(availableModes++) != 255)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
availableModes = AllRideModesAvailable;
|
|
||||||
}
|
|
||||||
|
|
||||||
return availableModes;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Gets the approximate value of customers per hour for this ride. Multiplies ride_customers_in_last_5_minutes() by 12.
|
// Gets the approximate value of customers per hour for this ride. Multiplies ride_customers_in_last_5_minutes() by 12.
|
||||||
uint32_t ride_customers_per_hour(const Ride* ride)
|
uint32_t ride_customers_per_hour(const Ride* ride)
|
||||||
{
|
{
|
||||||
|
@ -7820,3 +7782,16 @@ size_t Ride::FormatNameTo(void* argsV) const
|
||||||
return ft.NumBytes();
|
return ft.NumBytes();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint64_t Ride::GetAvailableModes() const
|
||||||
|
{
|
||||||
|
if (gCheatsShowAllOperatingModes)
|
||||||
|
return AllRideModesAvailable;
|
||||||
|
|
||||||
|
return GetRideTypeDescriptor().RideModes;
|
||||||
|
}
|
||||||
|
|
||||||
|
const RideTypeDescriptor& Ride::GetRideTypeDescriptor() const
|
||||||
|
{
|
||||||
|
return RideTypeDescriptors[type];
|
||||||
|
}
|
||||||
|
|
|
@ -26,6 +26,7 @@ class Formatter;
|
||||||
class StationObject;
|
class StationObject;
|
||||||
struct Peep;
|
struct Peep;
|
||||||
struct Ride;
|
struct Ride;
|
||||||
|
struct RideTypeDescriptor;
|
||||||
struct Staff;
|
struct Staff;
|
||||||
|
|
||||||
#define MAX_RIDE_TYPES_PER_RIDE_ENTRY 3
|
#define MAX_RIDE_TYPES_PER_RIDE_ENTRY 3
|
||||||
|
@ -449,6 +450,9 @@ public:
|
||||||
static bool NameExists(const std::string_view& name, ride_id_t excludeRideId = RIDE_ID_NULL);
|
static bool NameExists(const std::string_view& name, ride_id_t excludeRideId = RIDE_ID_NULL);
|
||||||
|
|
||||||
std::unique_ptr<TrackDesign> SaveToTrackDesign() const;
|
std::unique_ptr<TrackDesign> SaveToTrackDesign() const;
|
||||||
|
|
||||||
|
uint64_t GetAvailableModes() const;
|
||||||
|
const RideTypeDescriptor& GetRideTypeDescriptor() const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
|
@ -523,9 +527,9 @@ enum
|
||||||
RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME_DEPRECATED = 1 << 12, // Always set with SEPARATE_RIDE, and deprecated in favour of it.
|
RIDE_ENTRY_FLAG_SEPARATE_RIDE_NAME_DEPRECATED = 1 << 12, // Always set with SEPARATE_RIDE, and deprecated in favour of it.
|
||||||
RIDE_ENTRY_FLAG_SEPARATE_RIDE_DEPRECATED = 1 << 13, // Made redundant by ride groups
|
RIDE_ENTRY_FLAG_SEPARATE_RIDE_DEPRECATED = 1 << 13, // Made redundant by ride groups
|
||||||
RIDE_ENTRY_FLAG_CANNOT_BREAK_DOWN = 1 << 14,
|
RIDE_ENTRY_FLAG_CANNOT_BREAK_DOWN = 1 << 14,
|
||||||
RIDE_ENTRY_DISABLE_LAST_OPERATING_MODE = 1 << 15,
|
RIDE_ENTRY_DISABLE_LAST_OPERATING_MODE_DEPRECATED = 1 << 15,
|
||||||
RIDE_ENTRY_FLAG_DISABLE_DOOR_CONSTRUCTION_DEPRECATED = 1 << 16,
|
RIDE_ENTRY_FLAG_DISABLE_DOOR_CONSTRUCTION_DEPRECATED = 1 << 16,
|
||||||
RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES = 1 << 17,
|
RIDE_ENTRY_DISABLE_FIRST_TWO_OPERATING_MODES_DEPRECATED = 1 << 17,
|
||||||
RIDE_ENTRY_FLAG_DISABLE_COLLISION_CRASHES = 1 << 18,
|
RIDE_ENTRY_FLAG_DISABLE_COLLISION_CRASHES = 1 << 18,
|
||||||
RIDE_ENTRY_FLAG_DISABLE_COLOUR_TAB = 1 << 19,
|
RIDE_ENTRY_FLAG_DISABLE_COLOUR_TAB = 1 << 19,
|
||||||
// Must be set with swing mode 1 as well.
|
// Must be set with swing mode 1 as well.
|
||||||
|
@ -649,7 +653,7 @@ enum
|
||||||
RIDE_STATUS_SIMULATING,
|
RIDE_STATUS_SIMULATING,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum : uint8_t
|
||||||
{
|
{
|
||||||
RIDE_MODE_NORMAL,
|
RIDE_MODE_NORMAL,
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT,
|
RIDE_MODE_CONTINUOUS_CIRCUIT,
|
||||||
|
@ -664,7 +668,7 @@ enum
|
||||||
RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION = 10,
|
RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION = 10,
|
||||||
RIDE_MODE_MAZE,
|
RIDE_MODE_MAZE,
|
||||||
RIDE_MODE_RACE,
|
RIDE_MODE_RACE,
|
||||||
RIDE_MODE_BUMPERCAR,
|
RIDE_MODE_DODGEMS,
|
||||||
RIDE_MODE_SWING,
|
RIDE_MODE_SWING,
|
||||||
RIDE_MODE_SHOP_STALL,
|
RIDE_MODE_SHOP_STALL,
|
||||||
RIDE_MODE_ROTATION,
|
RIDE_MODE_ROTATION,
|
||||||
|
@ -689,7 +693,7 @@ enum
|
||||||
RIDE_MODE_POWERED_LAUNCH, // RCT1 style, don't pass through station
|
RIDE_MODE_POWERED_LAUNCH, // RCT1 style, don't pass through station
|
||||||
RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED,
|
RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED,
|
||||||
|
|
||||||
RIDE_MOUNT_COUNT,
|
RIDE_MODE_COUNT,
|
||||||
RIDE_MODE_NULL = 255,
|
RIDE_MODE_NULL = 255,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -941,8 +945,6 @@ struct rct_ride_properties
|
||||||
int8_t booster_speed_factor; // The factor to shift the raw booster speed with
|
int8_t booster_speed_factor; // The factor to shift the raw booster speed with
|
||||||
};
|
};
|
||||||
|
|
||||||
#define RIDE_MODE_COUNT 37
|
|
||||||
|
|
||||||
#define MAX_RIDE_MEASUREMENTS 8
|
#define MAX_RIDE_MEASUREMENTS 8
|
||||||
#define RIDE_VALUE_UNDEFINED 0xFFFF
|
#define RIDE_VALUE_UNDEFINED 0xFFFF
|
||||||
#define RIDE_INITIAL_RELIABILITY ((100 << 8) | 0xFF) // Upper byte is percentage, lower byte is "decimal".
|
#define RIDE_INITIAL_RELIABILITY ((100 << 8) | 0xFF) // Upper byte is percentage, lower byte is "decimal".
|
||||||
|
@ -1209,7 +1211,6 @@ void sub_6CB945(Ride* ride);
|
||||||
void sub_6C94D8();
|
void sub_6C94D8();
|
||||||
|
|
||||||
void ride_reset_all_names();
|
void ride_reset_all_names();
|
||||||
const uint8_t* ride_seek_available_modes(Ride* ride);
|
|
||||||
|
|
||||||
void window_ride_construction_mouseup_demolish_next_piece(int32_t x, int32_t y, int32_t z, int32_t direction, int32_t type);
|
void window_ride_construction_mouseup_demolish_next_piece(int32_t x, int32_t y, int32_t z, int32_t direction, int32_t type);
|
||||||
|
|
||||||
|
|
|
@ -299,108 +299,6 @@ const rct_ride_name RideNaming[] = {
|
||||||
{ STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
{ STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }, // RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* rct2: 0x0097C8AC
|
|
||||||
*/
|
|
||||||
const uint8_t RideAvailableModes[] = {
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 00 Spiral Roller coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, 0xFF, // 01 Stand Up Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 02 Suspended Swinging
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, 0xFF, // 03 Inverted
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, 0xFF, // 04 Steel Mini Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_SHUTTLE, 0xFF, // 05 Mini Railway
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_SHUTTLE, 0xFF, // 06 Monorail
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 07 Mini Suspended Coaster
|
|
||||||
RIDE_MODE_BOAT_HIRE, 0xFF, // 08 Boat Hire
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 09 Wooden Wild Mine/Mouse
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 0A Steeplechase/Motorbike/Soap Box Derby
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 0B Car Ride
|
|
||||||
RIDE_MODE_UPWARD_LAUNCH, RIDE_MODE_DOWNWARD_LAUNCH, 0xFF, // 0C Launched Freefall
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 0D Bobsleigh Coaster
|
|
||||||
RIDE_MODE_ROTATING_LIFT, 0xFF, // 0E Observation Tower
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, 0xFF, // 0F Looping Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 10 Dinghy Slide
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 11 Mine Train Coaster
|
|
||||||
RIDE_MODE_STATION_TO_STATION, 0xFF, // 12 Chairlift
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, 0xFF, // 13 Corkscrew Roller Coaster
|
|
||||||
RIDE_MODE_MAZE, 0xFF, // 14 Maze
|
|
||||||
RIDE_MODE_SINGLE_RIDE_PER_ADMISSION, RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION, 0xFF, // 15 Spiral Slide
|
|
||||||
RIDE_MODE_RACE, RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 16 Go Karts
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 17 Log Flume
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 18 River Rapids
|
|
||||||
RIDE_MODE_BUMPERCAR, 0xFF, // 19 Dodgems
|
|
||||||
RIDE_MODE_SWING, 0xFF, // 1A Pirate Ship
|
|
||||||
RIDE_MODE_SWING, 0xFF, // 1B Swinging Inverter Ship
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 1C Food Stall
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 1D (none)
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 1E Drink Stall
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 1F (none)
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 20 Shop (all types)
|
|
||||||
RIDE_MODE_ROTATION, 0xFF, // 21 Merry Go Round
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 22 Balloon Stall (maybe)
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 23 Information Kiosk
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 24 Bathroom
|
|
||||||
RIDE_MODE_FORWARD_ROTATION, RIDE_MODE_BACKWARD_ROTATION, 0xFF, // 25 Ferris Wheel
|
|
||||||
RIDE_MODE_FILM_AVENGING_AVIATORS, RIDE_MODE_FILM_THRILL_RIDERS, 0xFF, // 26 Motion Simulator
|
|
||||||
RIDE_MODE_3D_FILM_MOUSE_TAILS, RIDE_MODE_3D_FILM_STORM_CHASERS, RIDE_MODE_3D_FILM_SPACE_RAIDERS, 0xFF, // 27 3D Cinema
|
|
||||||
RIDE_MODE_BEGINNERS, RIDE_MODE_INTENSE, RIDE_MODE_BERSERK, 0xFF, // 28 Topspin
|
|
||||||
RIDE_MODE_SPACE_RINGS, 0xFF, // 29 Space Rings
|
|
||||||
RIDE_MODE_LIM_POWERED_LAUNCH, 0xFF, // 2A Reverse Freefall Coaster
|
|
||||||
RIDE_MODE_SHUTTLE, 0xFF, // 2B Elevator
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 2C Vertical Drop Roller Coaster
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 2D ATM
|
|
||||||
RIDE_MODE_ROTATION, 0xFF, // 2E Twist
|
|
||||||
RIDE_MODE_HAUNTED_HOUSE, 0xFF, // 2F Haunted House
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 30 First Aid
|
|
||||||
RIDE_MODE_CIRCUS_SHOW, 0xFF, // 31 Circus Show
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 32 Ghost Train
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 33 Twister Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, 0xFF, // 34 Wooden Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 35 Side-Friction Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 36 Wild Mouse
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 37 Multi Dimension Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 38 (none)
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 39 Flying Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 3A (none)
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 3B Virginia Reel
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 3C Splash Boats
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 3D Mini Helicopters
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 3E Lay-down Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_SHUTTLE, 0xFF, // 3F Suspended Monorail
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 40 (none)
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 41 Reverser Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 42 Heartline Twister Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 43 Mini Golf
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 44 Giga Coaster
|
|
||||||
RIDE_MODE_FREEFALL_DROP, 0xFF, // 45 Roto-Drop
|
|
||||||
RIDE_MODE_BUMPERCAR, 0xFF, // 46 Flying Saucers
|
|
||||||
RIDE_MODE_CROOKED_HOUSE, 0xFF, // 47 Crooked House
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 48 Monorail Cycles
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, 0xFF, // 49 Compact Inverted Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 4A Water Coaster
|
|
||||||
RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, 0xFF, // 4B Air Powered Vertical Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 4C Inverted Hairpin Coaster
|
|
||||||
RIDE_MODE_SWING, 0xFF, // 4D Magic Carpet
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 4E Submarine Ride
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 4F River Rafts
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 50 (none)
|
|
||||||
RIDE_MODE_ROTATION, 0xFF, // 51 Enterprise
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 52 (none)
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 53 (none)
|
|
||||||
RIDE_MODE_SHOP_STALL, 0xFF, // 54 (none)
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 55 (none)
|
|
||||||
RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, 0xFF, // 56 Inverted Impulse Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 57 Mini Roller Coaster
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, 0xFF, // 58 Mine Ride
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, 0xFF, // 59 Unknown
|
|
||||||
RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_POWERED_LAUNCH, RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED, 0xFF // 5a LIM Launched Roller Coaster
|
|
||||||
};
|
|
||||||
|
|
||||||
const uint8_t AllRideModesAvailable[] = {
|
|
||||||
RIDE_MODE_CONTINUOUS_CIRCUIT, RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, RIDE_MODE_SHUTTLE, RIDE_MODE_NORMAL, RIDE_MODE_BOAT_HIRE, RIDE_MODE_UPWARD_LAUNCH, RIDE_MODE_ROTATING_LIFT, RIDE_MODE_STATION_TO_STATION, RIDE_MODE_SINGLE_RIDE_PER_ADMISSION, RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION, RIDE_MODE_MAZE, RIDE_MODE_RACE, RIDE_MODE_BUMPERCAR, RIDE_MODE_SWING, RIDE_MODE_SHOP_STALL, RIDE_MODE_ROTATION, RIDE_MODE_FORWARD_ROTATION, RIDE_MODE_BACKWARD_ROTATION, RIDE_MODE_FILM_AVENGING_AVIATORS, RIDE_MODE_3D_FILM_MOUSE_TAILS, RIDE_MODE_SPACE_RINGS, RIDE_MODE_BEGINNERS, RIDE_MODE_LIM_POWERED_LAUNCH, RIDE_MODE_FILM_THRILL_RIDERS, RIDE_MODE_3D_FILM_STORM_CHASERS, RIDE_MODE_3D_FILM_SPACE_RAIDERS, RIDE_MODE_INTENSE, RIDE_MODE_BERSERK, RIDE_MODE_HAUNTED_HOUSE, RIDE_MODE_CIRCUS_SHOW, RIDE_MODE_DOWNWARD_LAUNCH, RIDE_MODE_CROOKED_HOUSE, RIDE_MODE_FREEFALL_DROP, RIDE_MODE_POWERED_LAUNCH, RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED, 0xFF
|
|
||||||
};
|
|
||||||
|
|
||||||
// rct2: 0x0097D4F0, 0x0097D4F1, 0x0097D4F2, 0x0097D4F4, 0x0097D4F5
|
// rct2: 0x0097D4F0, 0x0097D4F1, 0x0097D4F2, 0x0097D4F4, 0x0097D4F5
|
||||||
const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT] = {
|
const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT] = {
|
||||||
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
{ 20, 20, MUSIC_STYLE_ROCK_STYLE_3, }, // RIDE_TYPE_SPIRAL_ROLLER_COASTER
|
||||||
|
@ -1524,22 +1422,6 @@ const rct_string_id RideModeNames[] = {
|
||||||
STR_RIDE_MODE_POWERED_LAUNCH,
|
STR_RIDE_MODE_POWERED_LAUNCH,
|
||||||
STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE,
|
STR_RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED_MODE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr const RideTypeDescriptor DummyRTD =
|
|
||||||
{
|
|
||||||
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
|
||||||
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
|
||||||
SET_FIELD(EnabledTrackPieces, 0),
|
|
||||||
SET_FIELD(ExtraTrackPieces, 0),
|
|
||||||
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
|
||||||
SET_FIELD(TrackPaintFunction, nullptr),
|
|
||||||
SET_FIELD(Flags, 0),
|
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
|
||||||
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
|
||||||
SET_FIELD(PhotoItem, SHOP_ITEM_PHOTO),
|
|
||||||
};
|
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {
|
constexpr const RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = {
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
#include "../common.h"
|
#include "../common.h"
|
||||||
#include "../localisation/StringIds.h"
|
#include "../localisation/StringIds.h"
|
||||||
#include "Ride.h"
|
#include "Ride.h"
|
||||||
|
#include "ShopItem.h"
|
||||||
|
#include "Track.h"
|
||||||
#include "TrackPaint.h"
|
#include "TrackPaint.h"
|
||||||
|
|
||||||
struct RideComponentName
|
struct RideComponentName
|
||||||
|
@ -116,6 +118,9 @@ struct RideTypeDescriptor
|
||||||
uint64_t StartTrackPiece;
|
uint64_t StartTrackPiece;
|
||||||
TRACK_PAINT_FUNCTION_GETTER TrackPaintFunction;
|
TRACK_PAINT_FUNCTION_GETTER TrackPaintFunction;
|
||||||
uint64_t Flags;
|
uint64_t Flags;
|
||||||
|
/** rct2: 0x0097C8AC */
|
||||||
|
uint64_t RideModes;
|
||||||
|
uint8_t DefaultMode;
|
||||||
RideNameConvention NameConvention;
|
RideNameConvention NameConvention;
|
||||||
uint8_t AvailableBreakdowns;
|
uint8_t AvailableBreakdowns;
|
||||||
/** rct2: 0x0097D7C8, 0x0097D7C9, 0x0097D7CA */
|
/** rct2: 0x0097D7C8, 0x0097D7C9, 0x0097D7CA */
|
||||||
|
@ -245,8 +250,21 @@ constexpr const RideComponentName RideComponentNames[] =
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
extern const rct_ride_name RideNaming[RIDE_TYPE_COUNT];
|
extern const rct_ride_name RideNaming[RIDE_TYPE_COUNT];
|
||||||
extern const uint8_t RideAvailableModes[];
|
|
||||||
extern const uint8_t AllRideModesAvailable[];
|
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)
|
||||||
|
| (1ULL << RIDE_MODE_BOAT_HIRE) | (1ULL << RIDE_MODE_UPWARD_LAUNCH) | (1ULL << RIDE_MODE_ROTATING_LIFT)
|
||||||
|
| (1ULL << RIDE_MODE_STATION_TO_STATION) | (1ULL << RIDE_MODE_SINGLE_RIDE_PER_ADMISSION)
|
||||||
|
| (1ULL << RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION) | (1ULL << RIDE_MODE_MAZE) | (1ULL << RIDE_MODE_RACE)
|
||||||
|
| (1ULL << RIDE_MODE_DODGEMS) | (1ULL << RIDE_MODE_SWING) | (1ULL << RIDE_MODE_SHOP_STALL) | (1ULL << RIDE_MODE_ROTATION)
|
||||||
|
| (1ULL << RIDE_MODE_FORWARD_ROTATION) | (1ULL << RIDE_MODE_BACKWARD_ROTATION) | (1ULL << RIDE_MODE_FILM_AVENGING_AVIATORS)
|
||||||
|
| (1ULL << RIDE_MODE_3D_FILM_MOUSE_TAILS) | (1ULL << RIDE_MODE_SPACE_RINGS) | (1ULL << RIDE_MODE_BEGINNERS)
|
||||||
|
| (1ULL << RIDE_MODE_LIM_POWERED_LAUNCH) | (1ULL << RIDE_MODE_FILM_THRILL_RIDERS)
|
||||||
|
| (1ULL << RIDE_MODE_3D_FILM_STORM_CHASERS) | (1ULL << RIDE_MODE_3D_FILM_SPACE_RAIDERS) | (1ULL << RIDE_MODE_INTENSE)
|
||||||
|
| (1ULL << RIDE_MODE_BERSERK) | (1ULL << RIDE_MODE_HAUNTED_HOUSE) | (1ULL << RIDE_MODE_CIRCUS_SHOW)
|
||||||
|
| (1ULL << RIDE_MODE_DOWNWARD_LAUNCH) | (1ULL << RIDE_MODE_CROOKED_HOUSE) | (1ULL << RIDE_MODE_FREEFALL_DROP)
|
||||||
|
| (1ULL << RIDE_MODE_POWERED_LAUNCH) | RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED;
|
||||||
|
|
||||||
extern const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT];
|
extern const rct_ride_data_4 RideData4[RIDE_TYPE_COUNT];
|
||||||
extern const ride_cost RideTrackCosts[RIDE_TYPE_COUNT];
|
extern const ride_cost RideTrackCosts[RIDE_TYPE_COUNT];
|
||||||
|
@ -262,4 +280,24 @@ extern const track_colour_preset_list RideColourPresets[RIDE_TYPE_COUNT];
|
||||||
|
|
||||||
extern const rct_string_id RideModeNames[RIDE_MODE_COUNT];
|
extern const rct_string_id RideModeNames[RIDE_MODE_COUNT];
|
||||||
|
|
||||||
|
// clang-format off
|
||||||
|
constexpr const RideTypeDescriptor DummyRTD =
|
||||||
|
{
|
||||||
|
SET_FIELD(AlternateType, RIDE_TYPE_NULL),
|
||||||
|
SET_FIELD(Category, RIDE_CATEGORY_NONE),
|
||||||
|
SET_FIELD(EnabledTrackPieces, 0),
|
||||||
|
SET_FIELD(ExtraTrackPieces, 0),
|
||||||
|
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
||||||
|
SET_FIELD(TrackPaintFunction, nullptr),
|
||||||
|
SET_FIELD(Flags, 0),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||||
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
SET_FIELD(UpkeepCosts, { 50, 1, 0, 0, 0, 0 }),
|
||||||
|
SET_FIELD(PhotoItem, SHOP_ITEM_PHOTO),
|
||||||
|
};
|
||||||
|
// clang-format on
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -35,7 +35,7 @@ void ride_update_station(Ride* ride, StationIndex stationIndex)
|
||||||
case RIDE_MODE_RACE:
|
case RIDE_MODE_RACE:
|
||||||
ride_update_station_race(ride, stationIndex);
|
ride_update_station_race(ride, stationIndex);
|
||||||
break;
|
break;
|
||||||
case RIDE_MODE_BUMPERCAR:
|
case RIDE_MODE_DODGEMS:
|
||||||
ride_update_station_bumpercar(ride, stationIndex);
|
ride_update_station_bumpercar(ride, stationIndex);
|
||||||
break;
|
break;
|
||||||
case RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED:
|
case RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED:
|
||||||
|
|
|
@ -13,6 +13,8 @@
|
||||||
#include "../object/Object.h"
|
#include "../object/Object.h"
|
||||||
#include "Ride.h"
|
#include "Ride.h"
|
||||||
|
|
||||||
|
constexpr const uint16_t RideConstructionSpecialPieceSelected = 0x100;
|
||||||
|
|
||||||
using track_type_t = uint16_t;
|
using track_type_t = uint16_t;
|
||||||
|
|
||||||
#pragma pack(push, 1)
|
#pragma pack(push, 1)
|
||||||
|
|
|
@ -2063,7 +2063,7 @@ void Vehicle::UpdateMovingToEndOfStation()
|
||||||
if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_5))
|
if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_5))
|
||||||
break;
|
break;
|
||||||
[[fallthrough]];
|
[[fallthrough]];
|
||||||
case RIDE_MODE_BUMPERCAR:
|
case RIDE_MODE_DODGEMS:
|
||||||
case RIDE_MODE_SWING:
|
case RIDE_MODE_SWING:
|
||||||
case RIDE_MODE_ROTATION:
|
case RIDE_MODE_ROTATION:
|
||||||
case RIDE_MODE_FORWARD_ROTATION:
|
case RIDE_MODE_FORWARD_ROTATION:
|
||||||
|
@ -2545,7 +2545,7 @@ void Vehicle::UpdateWaitingToDepart()
|
||||||
|
|
||||||
switch (curRide->mode)
|
switch (curRide->mode)
|
||||||
{
|
{
|
||||||
case RIDE_MODE_BUMPERCAR:
|
case RIDE_MODE_DODGEMS:
|
||||||
// Bumper mode uses sub_state / var_CE to tell how long
|
// Bumper mode uses sub_state / var_CE to tell how long
|
||||||
// the vehicle has been ridden.
|
// the vehicle has been ridden.
|
||||||
SetState(VEHICLE_STATUS_TRAVELLING_DODGEMS);
|
SetState(VEHICLE_STATUS_TRAVELLING_DODGEMS);
|
||||||
|
|
|
@ -23,6 +23,8 @@ constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD =
|
||||||
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_air_powered_vertical_rc),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_air_powered_vertical_rc),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
SET_FIELD(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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor BobsleighCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor CompactInvertedCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor CorkscrewRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterRTD =
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftBM, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 6 }),
|
||||||
|
@ -46,6 +48,8 @@ constexpr const RideTypeDescriptor FlyingRollerCoasterAltRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftBM, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor GigaCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_CABLE_LIFT_HILL),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 5, 8 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 5, 8 }),
|
||||||
|
|
|
@ -24,6 +24,8 @@ constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD =
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_heartline_twister_rc),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_heartline_twister_rc),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor InvertedHairpinCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor InvertedImpulseCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 7 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 7 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor InvertedRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftBM, 5, 7 }),
|
SET_FIELD(LiftData, { SoundId::LiftBM, 5, 7 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor JuniorRollerCoasterRTD =
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS |
|
||||||
RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor LIMLaunchedRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::Null, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::Null, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
@ -42,6 +44,8 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD =
|
||||||
SET_FIELD(TrackPaintFunction, nullptr),
|
SET_FIELD(TrackPaintFunction, nullptr),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor LoopingRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor MineRideRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor MineTrainCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftArrow, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor MiniRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD =
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterRTD =
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||||
|
@ -43,6 +45,8 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD =
|
||||||
SET_FIELD(TrackPaintFunction, nullptr),
|
SET_FIELD(TrackPaintFunction, nullptr),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 6 }),
|
||||||
|
|
|
@ -23,6 +23,8 @@ constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD =
|
||||||
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION),
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverse_freefall_rc),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverse_freefall_rc),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT),
|
SET_FIELD(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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -24,6 +24,8 @@ constexpr const RideTypeDescriptor ReverserRollerCoasterRTD =
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverser_rc),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_reverser_rc),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor SideFrictionRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftWood, 3, 4 }),
|
SET_FIELD(LiftData, { SoundId::LiftWood, 3, 4 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor SpiralRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 7, 7 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 7, 7 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor StandUpRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor SteelWildMouseRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftWildMouse, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor SteeplechaseRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
RIDE_TYPE_FLAG_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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor SuspendedSwingingCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor TwisterRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftBM, 5, 8 }),
|
SET_FIELD(LiftData, { SoundId::LiftBM, 5, 8 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor VerticalDropCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
RIDE_TYPE_FLAG_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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftBM, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftBM, 4, 5 }),
|
||||||
|
|
|
@ -24,6 +24,8 @@ constexpr const RideTypeDescriptor VirginiaReelRTD =
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_virginia_reel),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_virginia_reel),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 3, 4 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor WaterCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||||
RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 6 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor WoodenRollerCoasterRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION |
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(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(LiftData, { SoundId::LiftWood, 5, 7 }),
|
SET_FIELD(LiftData, { SoundId::LiftWood, 5, 7 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor WoodenWildMouseRTD =
|
||||||
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT |
|
||||||
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||||
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION) | (1 << BREAKDOWN_BRAKES_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftClassic, 4, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor CarRideRTD =
|
||||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_HAS_RIDE_GROUPS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor CircusRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor CrookedHouseRTD =
|
||||||
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_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),
|
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CROOKED_HOUSE)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_CROOKED_HOUSE),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor DodgemsRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor FerrisWheelRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor FlyingSaucersRTD =
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor GhostTrainRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor HauntedHouseRTD =
|
||||||
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_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),
|
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_HAUNTED_HOUSE)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_HAUNTED_HOUSE),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -24,6 +24,8 @@ constexpr const RideTypeDescriptor MazeRTD =
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_maze),
|
SET_FIELD(TrackPaintFunction, get_track_paint_function_maze),
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor MerryGoRoundRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor MiniGolfRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK |
|
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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor MiniHelicoptersRTD =
|
||||||
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor MonorailCyclesRTD =
|
||||||
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_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),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor ObservationTowerRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor SpaceRingsRTD =
|
||||||
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_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_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_RING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor SpiralSlideRTD =
|
||||||
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_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),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -24,6 +24,8 @@ constexpr const RideTypeDescriptor CashMachineRTD =
|
||||||
SET_FIELD(TrackPaintFunction, get_track_paint_function_shop),
|
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 |
|
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES |
|
||||||
RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor DrinkStallRTD =
|
||||||
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 |
|
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_SELLS_DRINKS | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor FirstAidRTD =
|
||||||
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 |
|
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_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor FoodStallRTD =
|
||||||
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 |
|
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_SELLS_FOOD | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor InformationKioskRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
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_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor ShopRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS |
|
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_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP |
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor ToiletsRTD =
|
||||||
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 |
|
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_PEEP_SHOULD_GO_INSIDE_FACILITY | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_IS_TOILET | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, 0),
|
SET_FIELD(AvailableBreakdowns, 0),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor CinemaRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor EnterpriseRTD =
|
||||||
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
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),
|
RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATION)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_ROTATION),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor GoKartsRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE |
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
||||||
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
SET_FIELD(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor LaunchedFreefallRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN |
|
||||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor MagicCarpetRTD =
|
||||||
RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
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_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION |
|
||||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor MotionSimulatorRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
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),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor RotoDropRTD =
|
||||||
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK |
|
RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_RESTRAINTS_STUCK_CLOSED) | (1 << BREAKDOWN_RESTRAINTS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor SwingingInverterShipRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor SwingingShipRTD =
|
||||||
RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE |
|
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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor TopSpinRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor TwistRTD =
|
||||||
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_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_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_LIST_VEHICLES_SEPARATELY),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor ChairliftRTD =
|
||||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -26,6 +26,8 @@ constexpr const RideTypeDescriptor LiftRTD =
|
||||||
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS |
|
||||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_ALLOW_EXTRA_TOWER_BASES | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_ALLOW_EXTRA_TOWER_BASES | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor MiniatureRailwayRTD =
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor MonorailRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -29,6 +29,8 @@ constexpr const RideTypeDescriptor SuspendedMonorailRTD =
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_IS_SUSPENDED),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_DOORS_STUCK_CLOSED) | (1 << BREAKDOWN_DOORS_STUCK_OPEN) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -25,6 +25,8 @@ constexpr const RideTypeDescriptor BoatHireRTD =
|
||||||
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER |
|
SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER |
|
||||||
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING |
|
RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING |
|
||||||
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_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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -29,6 +29,8 @@ constexpr const RideTypeDescriptor DinghySlideRTD =
|
||||||
RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_CHECK_FOR_STALLING | 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_HAS_AIR_TIME |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_HAS_AIR_TIME |
|
||||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
SET_FIELD(LiftData, { SoundId::LiftFrictionWheels, 4, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor LogFlumeRTD =
|
||||||
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER |
|
||||||
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
||||||
|
SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)),
|
||||||
|
SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT),
|
||||||
SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor RiverRaftsRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
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_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -29,6 +29,8 @@ constexpr const RideTypeDescriptor RiverRapidsRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS |
|
||||||
RIDE_TYPE_FLAG_HAS_AIR_TIME | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -28,6 +28,8 @@ constexpr const RideTypeDescriptor SplashBoatsRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC |
|
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_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME |
|
RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_HAS_AIR_TIME |
|
||||||
RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_CONTROL_FAILURE)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
|
@ -27,6 +27,8 @@ constexpr const RideTypeDescriptor SubmarineRideRTD =
|
||||||
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT |
|
||||||
RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS),
|
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(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }),
|
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(AvailableBreakdowns, (1 << BREAKDOWN_SAFETY_CUT_OUT) | (1 << BREAKDOWN_VEHICLE_MALFUNCTION)),
|
||||||
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
SET_FIELD(LiftData, { SoundId::Null, 5, 5 }),
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue