From 065da23b3b17897ab3d7213e742aab7775c5e097 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20P=C4=99kalski?= Date: Mon, 28 Sep 2020 15:09:59 +0200 Subject: [PATCH] Close #12437, refactor: RIDE_MODE_* to strong enums (#12833) * partial refactor: RIDE_MODE_* to strong enums * Close #12437, refactor: RIDE_MODE_* to strong enums * chore: code formatting * refactor: RideMode, change enum names to CamelCase and resolve casting order. * chore: refactor due to code formatting * Close #12437, refactor: RIDE_MODE_* to strong enums Resolved comments * chore: Formatting correction. * Use EnumsToFlags constexpr * refactor: resolved comments added newline at the end of file * refactor: Change case stack to default in Switch Co-authored-by: duncanspumpkin --- src/openrct2-ui/windows/Ride.cpp | 62 ++--- src/openrct2-ui/windows/RideConstruction.cpp | 2 +- src/openrct2/actions/RideSetSetting.hpp | 16 +- src/openrct2/actions/TrackDesignAction.cpp | 2 +- src/openrct2/actions/TrackPlaceAction.hpp | 4 +- src/openrct2/actions/TrackRemoveAction.hpp | 4 +- src/openrct2/interface/InteractiveConsole.cpp | 6 +- src/openrct2/peep/Guest.cpp | 16 +- src/openrct2/rct1/S4Importer.cpp | 6 +- src/openrct2/rct1/T4Importer.cpp | 4 +- src/openrct2/rct2/S6Exporter.cpp | 4 +- src/openrct2/rct2/S6Importer.cpp | 4 +- src/openrct2/rct2/T6Exporter.cpp | 2 +- src/openrct2/rct2/T6Importer.cpp | 2 +- src/openrct2/ride/Ride.cpp | 76 +++--- src/openrct2/ride/Ride.h | 87 ++++--- src/openrct2/ride/RideData.h | 33 ++- src/openrct2/ride/RideRatings.cpp | 32 +-- src/openrct2/ride/Station.cpp | 8 +- src/openrct2/ride/TrackDesign.h | 3 +- src/openrct2/ride/Vehicle.cpp | 243 ++++++++++-------- .../coaster/meta/AirPoweredVerticalCoaster.h | 4 +- .../ride/coaster/meta/BobsleighCoaster.h | 4 +- .../coaster/meta/ClassicMiniRollerCoaster.h | 4 +- .../coaster/meta/CompactInvertedCoaster.h | 4 +- .../coaster/meta/CorkscrewRollerCoaster.h | 4 +- .../ride/coaster/meta/FlyingRollerCoaster.h | 8 +- src/openrct2/ride/coaster/meta/GigaCoaster.h | 4 +- .../coaster/meta/HeartlineTwisterCoaster.h | 4 +- src/openrct2/ride/coaster/meta/HyperTwister.h | 4 +- src/openrct2/ride/coaster/meta/Hypercoaster.h | 4 +- .../coaster/meta/InvertedHairpinCoaster.h | 4 +- .../coaster/meta/InvertedImpulseCoaster.h | 4 +- .../ride/coaster/meta/InvertedRollerCoaster.h | 4 +- .../ride/coaster/meta/JuniorRollerCoaster.h | 4 +- .../coaster/meta/LIMLaunchedRollerCoaster.h | 4 +- .../ride/coaster/meta/LayDownRollerCoaster.h | 8 +- .../ride/coaster/meta/LoopingRollerCoaster.h | 4 +- src/openrct2/ride/coaster/meta/MineRide.h | 4 +- .../ride/coaster/meta/MineTrainCoaster.h | 4 +- .../ride/coaster/meta/MiniRollerCoaster.h | 4 +- .../ride/coaster/meta/MiniSuspendedCoaster.h | 4 +- .../meta/MultiDimensionRollerCoaster.h | 8 +- .../coaster/meta/ReverseFreefallCoaster.h | 4 +- .../ride/coaster/meta/ReverserRollerCoaster.h | 4 +- .../coaster/meta/SideFrictionRollerCoaster.h | 4 +- .../ride/coaster/meta/SpinningWildMouse.h | 4 +- .../ride/coaster/meta/SpiralRollerCoaster.h | 4 +- .../ride/coaster/meta/StandUpRollerCoaster.h | 4 +- .../ride/coaster/meta/SteelWildMouse.h | 4 +- src/openrct2/ride/coaster/meta/Steeplechase.h | 4 +- .../coaster/meta/SuspendedSwingingCoaster.h | 4 +- .../ride/coaster/meta/TwisterRollerCoaster.h | 4 +- .../ride/coaster/meta/VerticalDropCoaster.h | 4 +- src/openrct2/ride/coaster/meta/VirginiaReel.h | 4 +- src/openrct2/ride/coaster/meta/WaterCoaster.h | 4 +- .../ride/coaster/meta/WoodenRollerCoaster.h | 4 +- .../ride/coaster/meta/WoodenWildMouse.h | 4 +- src/openrct2/ride/gentle/meta/CarRide.h | 4 +- src/openrct2/ride/gentle/meta/Circus.h | 4 +- src/openrct2/ride/gentle/meta/CrookedHouse.h | 4 +- src/openrct2/ride/gentle/meta/Dodgems.h | 4 +- src/openrct2/ride/gentle/meta/FerrisWheel.h | 4 +- src/openrct2/ride/gentle/meta/FlyingSaucers.h | 4 +- src/openrct2/ride/gentle/meta/GhostTrain.h | 4 +- src/openrct2/ride/gentle/meta/HauntedHouse.h | 4 +- src/openrct2/ride/gentle/meta/Maze.h | 4 +- src/openrct2/ride/gentle/meta/MerryGoRound.h | 4 +- src/openrct2/ride/gentle/meta/MiniGolf.h | 4 +- .../ride/gentle/meta/MiniHelicopters.h | 4 +- .../ride/gentle/meta/MonorailCycles.h | 4 +- src/openrct2/ride/gentle/meta/MonsterTrucks.h | 4 +- .../ride/gentle/meta/ObservationTower.h | 4 +- src/openrct2/ride/gentle/meta/SpaceRings.h | 4 +- src/openrct2/ride/gentle/meta/SpiralSlide.h | 4 +- src/openrct2/ride/shops/meta/CashMachine.h | 4 +- src/openrct2/ride/shops/meta/DrinkStall.h | 4 +- src/openrct2/ride/shops/meta/FirstAid.h | 4 +- src/openrct2/ride/shops/meta/FoodStall.h | 4 +- .../ride/shops/meta/InformationKiosk.h | 4 +- src/openrct2/ride/shops/meta/Shop.h | 4 +- src/openrct2/ride/shops/meta/Toilets.h | 4 +- src/openrct2/ride/thrill/meta/3DCinema.h | 4 +- src/openrct2/ride/thrill/meta/Enterprise.h | 4 +- src/openrct2/ride/thrill/meta/GoKarts.h | 4 +- .../ride/thrill/meta/LaunchedFreefall.h | 4 +- src/openrct2/ride/thrill/meta/MagicCarpet.h | 4 +- .../ride/thrill/meta/MotionSimulator.h | 4 +- src/openrct2/ride/thrill/meta/RotoDrop.h | 4 +- .../ride/thrill/meta/SwingingInverterShip.h | 4 +- src/openrct2/ride/thrill/meta/SwingingShip.h | 4 +- src/openrct2/ride/thrill/meta/TopSpin.h | 4 +- src/openrct2/ride/thrill/meta/Twist.h | 4 +- src/openrct2/ride/transport/meta/Chairlift.h | 4 +- src/openrct2/ride/transport/meta/Lift.h | 4 +- .../ride/transport/meta/MiniatureRailway.h | 4 +- src/openrct2/ride/transport/meta/Monorail.h | 4 +- .../ride/transport/meta/SuspendedMonorail.h | 4 +- src/openrct2/ride/water/meta/BoatHire.h | 4 +- src/openrct2/ride/water/meta/DinghySlide.h | 4 +- src/openrct2/ride/water/meta/LogFlume.h | 4 +- src/openrct2/ride/water/meta/RiverRafts.h | 4 +- src/openrct2/ride/water/meta/RiverRapids.h | 4 +- src/openrct2/ride/water/meta/SplashBoats.h | 4 +- src/openrct2/ride/water/meta/SubmarineRide.h | 4 +- src/openrct2/scripting/ScRide.hpp | 4 +- src/openrct2/util/Util.h | 12 + 107 files changed, 510 insertions(+), 470 deletions(-) diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index 9820ead41d..08a289333d 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -3253,7 +3253,7 @@ static void window_ride_mode_tweak_increase(rct_window* w) maxValue = 255; } - uint8_t increment = ride->mode == RIDE_MODE_DODGEMS ? 10 : 1; + uint8_t increment = ride->mode == RideMode::Dodgems ? 10 : 1; set_operating_setting( w->number, RideSetSetting::Operation, std::clamp(ride->operation_option + increment, minValue, maxValue)); @@ -3277,7 +3277,7 @@ static void window_ride_mode_tweak_decrease(rct_window* w) maxValue = 255; } - uint8_t decrement = ride->mode == RIDE_MODE_DODGEMS ? 10 : 1; + uint8_t decrement = ride->mode == RideMode::Dodgems ? 10 : 1; set_operating_setting( w->number, RideSetSetting::Operation, std::clamp(ride->operation_option - decrement, minValue, maxValue)); @@ -3301,14 +3301,14 @@ static void window_ride_mode_dropdown(rct_window* w, rct_widget* widget) // Create dropdown list auto numAvailableModes = 0; auto checkedIndex = -1; - for (auto i = 0; i < RIDE_MODE_COUNT; i++) + for (auto i = 0; i < static_cast(RideMode::Count); i++) { if (availableModes & (1ULL << i)) { gDropdownItemsFormat[numAvailableModes] = STR_DROPDOWN_MENU_LABEL; gDropdownItemsArgs[numAvailableModes] = RideModeNames[i]; - if (ride->mode == i) + if (ride->mode == static_cast(i)) checkedIndex = numAvailableModes; numAvailableModes++; @@ -3505,12 +3505,12 @@ static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widget { case WIDX_MODE_DROPDOWN: { - uint8_t rideMode = RIDE_MODE_NULL; + RideMode rideMode = RideMode::NullMode; auto availableModes = ride->GetAvailableModes(); auto modeInDropdownIndex = -1; - for (uint8_t rideModeIndex = 0; rideModeIndex < RIDE_MODE_COUNT; rideModeIndex++) + for (RideMode rideModeIndex = RideMode::Normal; rideModeIndex < RideMode::Count; rideModeIndex++) { - if (availableModes & (1ULL << rideModeIndex)) + if (availableModes & EnumToFlag(rideModeIndex)) { modeInDropdownIndex++; if (modeInDropdownIndex == dropdownIndex) @@ -3520,8 +3520,8 @@ static void window_ride_operating_dropdown(rct_window* w, rct_widgetindex widget } } } - if (rideMode != RIDE_MODE_NULL) - set_operating_setting(w->number, RideSetSetting::Mode, rideMode); + if (rideMode != RideMode::NullMode) + set_operating_setting(w->number, RideSetSetting::Mode, static_cast(rideMode)); break; } case WIDX_LOAD_DROPDOWN: @@ -3623,8 +3623,8 @@ static void window_ride_operating_invalidate(rct_window* w) // Leave if another vehicle arrives at station if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION) - && ride->num_vehicles > 1 && ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - && ride->mode != RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + && ride->num_vehicles > 1 && ride->mode != RideMode::ContinuousCircuitBlockSectioned + && ride->mode != RideMode::PoweredLaunchBlockSectioned) { window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].type = WWT_CHECKBOX; window_ride_operating_widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].tooltip @@ -3655,7 +3655,7 @@ static void window_ride_operating_invalidate(rct_window* w) } // Mode - window_ride_operating_widgets[WIDX_MODE].text = RideModeNames[ride->mode]; + window_ride_operating_widgets[WIDX_MODE].text = RideModeNames[static_cast(ride->mode)]; // Waiting window_ride_operating_widgets[WIDX_LOAD].text = VehicleLoadNames[(ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK)]; @@ -3717,10 +3717,10 @@ static void window_ride_operating_invalidate(rct_window* w) ft.Add(ride->operation_option); switch (ride->mode) { - case RIDE_MODE_POWERED_LAUNCH_PASSTROUGH: - case RIDE_MODE_POWERED_LAUNCH: - case RIDE_MODE_UPWARD_LAUNCH: - case RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED: + case RideMode::PoweredLaunchPasstrough: + case RideMode::PoweredLaunch: + case RideMode::UpwardLaunch: + case RideMode::PoweredLaunchBlockSectioned: ft.Rewind(); ft.Increment(18); ft.Add((ride->launch_speed * 9) / 4); @@ -3728,7 +3728,7 @@ static void window_ride_operating_invalidate(rct_window* w) caption = STR_LAUNCH_SPEED; tooltip = STR_LAUNCH_SPEED_TIP; break; - case RIDE_MODE_STATION_TO_STATION: + case RideMode::StationToStation: ft.Rewind(); ft.Increment(18); ft.Add((ride->speed * 9) / 4); @@ -3736,7 +3736,7 @@ static void window_ride_operating_invalidate(rct_window* w) caption = STR_SPEED; tooltip = STR_SPEED_TIP; break; - case RIDE_MODE_RACE: + case RideMode::Race: ft.Rewind(); ft.Increment(18); ft.Add(ride->num_laps); @@ -3744,19 +3744,19 @@ static void window_ride_operating_invalidate(rct_window* w) caption = STR_NUMBER_OF_LAPS; tooltip = STR_NUMBER_OF_LAPS_TIP; break; - case RIDE_MODE_DODGEMS: + case RideMode::Dodgems: format = STR_RIDE_MODE_TIME_LIMIT_VALUE; caption = STR_TIME_LIMIT; tooltip = STR_TIME_LIMIT_TIP; break; - case RIDE_MODE_SWING: + case RideMode::Swing: format = STR_RIDE_MODE_NUMBER_OF_SWINGS_VALUE; caption = STR_NUMBER_OF_SWINGS; tooltip = STR_NUMBER_OF_SWINGS_TIP; break; - case RIDE_MODE_ROTATION: - case RIDE_MODE_FORWARD_ROTATION: - case RIDE_MODE_BACKWARD_ROTATION: + case RideMode::Rotation: + case RideMode::ForwardRotation: + case RideMode::BackwardRotation: format = STR_NUMBER_OF_ROTATIONS_VALUE; caption = STR_NUMBER_OF_ROTATIONS; tooltip = STR_NUMBER_OF_ROTATIONS_TIP; @@ -3823,12 +3823,12 @@ static void window_ride_operating_paint(rct_window* w, rct_drawpixelinfo* dpi) w->colours[1], INSET_RECT_FLAG_BORDER_INSET); // Number of block sections - if (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::ContinuousCircuitBlockSectioned || ride->mode == RideMode::PoweredLaunchBlockSectioned) { auto blockSections = ride->num_block_brakes + ride->num_stations; gfx_draw_string_left( dpi, STR_BLOCK_SECTIONS, &blockSections, COLOUR_BLACK, - w->windowPos + ScreenCoordsXY{ 21, ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED ? 89 : 61 }); + w->windowPos + ScreenCoordsXY{ 21, ride->mode == RideMode::PoweredLaunchBlockSectioned ? 89 : 61 }); } } @@ -3975,8 +3975,8 @@ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex wid if (RideTypeDescriptors[rideEntry->ride_type[j]].AvailableBreakdowns & static_cast(1 << i)) { if (i == BREAKDOWN_BRAKES_FAILURE - && (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)) + && (ride->mode == RideMode::ContinuousCircuitBlockSectioned + || ride->mode == RideMode::PoweredLaunchBlockSectioned)) { if (ride->num_vehicles != 1) continue; @@ -4005,8 +4005,8 @@ static void window_ride_maintenance_mousedown(rct_window* w, rct_widgetindex wid if (RideTypeDescriptors[rideEntry->ride_type[j]].AvailableBreakdowns & static_cast(1 << i)) { if (i == BREAKDOWN_BRAKES_FAILURE - && (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)) + && (ride->mode == RideMode::ContinuousCircuitBlockSectioned + || ride->mode == RideMode::PoweredLaunchBlockSectioned)) { if (ride->num_vehicles != 1) continue; @@ -4122,8 +4122,8 @@ static void window_ride_maintenance_dropdown(rct_window* w, rct_widgetindex widg if (RideTypeDescriptors[rideEntry->ride_type[j]].AvailableBreakdowns & static_cast(1 << i)) { if (i == BREAKDOWN_BRAKES_FAILURE - && (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)) + && (ride->mode == RideMode::ContinuousCircuitBlockSectioned + || ride->mode == RideMode::PoweredLaunchBlockSectioned)) { if (ride->num_vehicles != 1) continue; diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index e8c35abc36..15adf11de8 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -618,7 +618,7 @@ static void window_ride_construction_close(rct_window* w) if (ride_try_get_origin_element(ride, nullptr)) { // Auto open shops if required. - if (ride->mode == RIDE_MODE_SHOP_STALL && gConfigGeneral.auto_open_shops) + if (ride->mode == RideMode::ShopStall && gConfigGeneral.auto_open_shops) { // HACK: Until we find a good a way to defer the game command for opening the shop, stop this // from getting stuck in an infinite loop as opening the ride will try to close this window diff --git a/src/openrct2/actions/RideSetSetting.hpp b/src/openrct2/actions/RideSetSetting.hpp index 3c99c5855f..956dc862d8 100644 --- a/src/openrct2/actions/RideSetSetting.hpp +++ b/src/openrct2/actions/RideSetSetting.hpp @@ -186,7 +186,7 @@ public: ride_clear_for_construction(ride); ride_remove_peeps(ride); - ride->mode = _value; + ride->mode = static_cast(_value); ride->UpdateMaxVehicles(); ride->UpdateNumberOfCircuits(); break; @@ -297,17 +297,17 @@ private: { switch (ride->mode) { - case RIDE_MODE_STATION_TO_STATION: + case RideMode::StationToStation: return STR_CANT_CHANGE_SPEED; - case RIDE_MODE_RACE: + case RideMode::Race: return STR_CANT_CHANGE_NUMBER_OF_LAPS; - case RIDE_MODE_DODGEMS: + case RideMode::Dodgems: return STR_CANT_CHANGE_TIME_LIMIT; - case RIDE_MODE_SWING: + case RideMode::Swing: return STR_CANT_CHANGE_NUMBER_OF_SWINGS; - case RIDE_MODE_ROTATION: - case RIDE_MODE_FORWARD_ROTATION: - case RIDE_MODE_BACKWARD_ROTATION: + case RideMode::Rotation: + case RideMode::ForwardRotation: + case RideMode::BackwardRotation: return STR_CANT_CHANGE_NUMBER_OF_ROTATIONS; default: if (ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_NO_VEHICLES)) diff --git a/src/openrct2/actions/TrackDesignAction.cpp b/src/openrct2/actions/TrackDesignAction.cpp index 9ef45ae5e8..82feefaf65 100644 --- a/src/openrct2/actions/TrackDesignAction.cpp +++ b/src/openrct2/actions/TrackDesignAction.cpp @@ -181,7 +181,7 @@ GameActionResult::Ptr TrackDesignAction::Execute() const GameActions::ExecuteNested(&rideSetVehicleAction); } - set_operating_setting_nested(ride->id, RideSetSetting::Mode, _td.ride_mode, GAME_COMMAND_FLAG_APPLY); + set_operating_setting_nested(ride->id, RideSetSetting::Mode, static_cast(_td.ride_mode), GAME_COMMAND_FLAG_APPLY); auto rideSetVehicleAction2 = RideSetVehicleAction(ride->id, RideSetVehicleType::NumTrains, _td.number_of_trains); GameActions::ExecuteNested(&rideSetVehicleAction2); diff --git a/src/openrct2/actions/TrackPlaceAction.hpp b/src/openrct2/actions/TrackPlaceAction.hpp index 93f5f75449..b0f60939a0 100644 --- a/src/openrct2/actions/TrackPlaceAction.hpp +++ b/src/openrct2/actions/TrackPlaceAction.hpp @@ -555,9 +555,9 @@ public: ride->num_block_brakes++; ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_OPERATING; - ride->mode = RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED; + ride->mode = RideMode::ContinuousCircuitBlockSectioned; if (ride->type == RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER) - ride->mode = RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED; + ride->mode = RideMode::PoweredLaunchBlockSectioned; break; } diff --git a/src/openrct2/actions/TrackRemoveAction.hpp b/src/openrct2/actions/TrackRemoveAction.hpp index 50cecfede5..a34b29a29e 100644 --- a/src/openrct2/actions/TrackRemoveAction.hpp +++ b/src/openrct2/actions/TrackRemoveAction.hpp @@ -467,10 +467,10 @@ public: if (ride->num_block_brakes == 0) { ride->window_invalidate_flags |= RIDE_INVALIDATE_RIDE_OPERATING; - ride->mode = RIDE_MODE_CONTINUOUS_CIRCUIT; + ride->mode = RideMode::ContinuousCircuit; if (ride->type == RIDE_TYPE_LIM_LAUNCHED_ROLLER_COASTER) { - ride->mode = RIDE_MODE_POWERED_LAUNCH; + ride->mode = RideMode::PoweredLaunch; } } break; diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 671b513657..5eb8564c47 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -156,7 +156,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) if (argv.size() > 1 && argv[1] == "mode") { console.WriteFormatLine("Ride modes are specified using integer IDs as given below:"); - for (int32_t i = 0; i < RIDE_MODE_COUNT; i++) + for (int32_t i = 0; i < static_cast(RideMode::Count); i++) { char mode_name[128] = { 0 }; rct_string_id mode_string_id = RideModeNames[i]; @@ -214,7 +214,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) else { auto ride = get_ride(ride_index); - if (mode <= 0 || mode > (RIDE_MODE_COUNT - 1)) + if (mode >= static_cast(RideMode::Count)) { console.WriteFormatLine("Invalid ride mode."); } @@ -224,7 +224,7 @@ static int32_t cc_rides(InteractiveConsole& console, const arguments_t& argv) } else { - ride->mode = static_cast(mode & 0xFF); + ride->mode = static_cast(mode & 0xFF); invalidate_test_results(ride); } } diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 4b8ad6bec3..e3395307fc 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -2503,7 +2503,7 @@ static void peep_choose_seat_from_car(Peep* peep, Ride* ride, Vehicle* vehicle) } uint8_t chosen_seat = vehicle->next_free_seat; - if (ride->mode == RIDE_MODE_FORWARD_ROTATION || ride->mode == RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode == RideMode::ForwardRotation || ride->mode == RideMode::BackwardRotation) { chosen_seat = (((~vehicle->vehicle_sprite_type + 1) >> 3) & 0xF) * 2; if (vehicle->next_free_seat & 1) @@ -2570,7 +2570,7 @@ bool Guest::FindVehicleToEnter(Ride* ride, std::vector& car_array) { uint8_t chosen_train = RideStation::NO_TRAIN; - if (ride->mode == RIDE_MODE_DODGEMS || ride->mode == RIDE_MODE_RACE) + if (ride->mode == RideMode::Dodgems || ride->mode == RideMode::Race) { if (ride->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) return false; @@ -2621,7 +2621,7 @@ bool Guest::FindVehicleToEnter(Ride* ride, std::vector& car_array) if (num_seats == vehicle->next_free_seat) continue; - if (ride->mode == RIDE_MODE_FORWARD_ROTATION || ride->mode == RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode == RideMode::ForwardRotation || ride->mode == RideMode::BackwardRotation) { uint8_t position = (((~vehicle->vehicle_sprite_type + 1) >> 3) & 0xF) * 2; if (vehicle->peep[position] != SPRITE_INDEX_NULL) @@ -4010,7 +4010,7 @@ void Guest::UpdateRideFreeVehicleCheck() return; } - if (ride->mode == RIDE_MODE_FORWARD_ROTATION || ride->mode == RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode == RideMode::ForwardRotation || ride->mode == RideMode::BackwardRotation) { if (CurrentSeat & 1 || !(vehicle->next_free_seat & 1)) { @@ -4039,7 +4039,7 @@ void Guest::UpdateRideFreeVehicleCheck() return; } - if (ride->mode != RIDE_MODE_FORWARD_ROTATION && ride->mode != RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode != RideMode::ForwardRotation && ride->mode != RideMode::BackwardRotation) { if (vehicle->next_free_seat - 1 != CurrentSeat) return; @@ -4071,7 +4071,7 @@ void Guest::UpdateRideEnterVehicle() { vehicle = vehicle->GetCar(CurrentCar); - if (ride->mode != RIDE_MODE_FORWARD_ROTATION && ride->mode != RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode != RideMode::ForwardRotation && ride->mode != RideMode::BackwardRotation) { if (CurrentSeat != vehicle->num_peeps) return; @@ -4136,7 +4136,7 @@ void Guest::UpdateRideLeaveVehicle() } // Check if ride is NOT Ferris Wheel. - if (ride->mode != RIDE_MODE_FORWARD_ROTATION && ride->mode != RIDE_MODE_BACKWARD_ROTATION) + if (ride->mode != RideMode::ForwardRotation && ride->mode != RideMode::BackwardRotation) { if (vehicle->num_peeps - 1 != CurrentSeat) return; @@ -4642,7 +4642,7 @@ void Guest::UpdateRideApproachSpiralSlide() lastRide = true; else if (CurrentCar++ != 0) { - if (ride->mode == RIDE_MODE_SINGLE_RIDE_PER_ADMISSION) + if (ride->mode == RideMode::SingleRidePerAdmission) lastRide = true; if (static_cast(CurrentCar - 1) > (scenario_rand() & 0xF)) lastRide = true; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index cfa19ea137..10923eae90 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -865,11 +865,11 @@ private: if (src->operating_mode == RCT1_RIDE_MODE_POWERED_LAUNCH) { // Launched rides never passed through the station in RCT1. - dst->mode = RIDE_MODE_POWERED_LAUNCH; + dst->mode = RideMode::PoweredLaunch; } else { - dst->mode = src->operating_mode; + dst->mode = static_cast(src->operating_mode); } SetRideColourScheme(dst, src); @@ -1233,7 +1233,7 @@ private: dst->TrackSubposition = VehicleTrackSubposition{ src->TrackSubposition }; dst->TrackLocation = { src->track_x, src->track_y, src->track_z }; dst->current_station = src->current_station; - if (src->boat_location.isNull() || ride->mode != RIDE_MODE_BOAT_HIRE || statusSrc != Vehicle::Status::TravellingBoat) + if (src->boat_location.isNull() || ride->mode != RideMode::BoatHire || statusSrc != Vehicle::Status::TravellingBoat) { dst->BoatLocation.setNull(); dst->track_type = src->track_type; diff --git a/src/openrct2/rct1/T4Importer.cpp b/src/openrct2/rct1/T4Importer.cpp index a460465f2f..49cb91a0ab 100644 --- a/src/openrct2/rct1/T4Importer.cpp +++ b/src/openrct2/rct1/T4Importer.cpp @@ -140,10 +140,10 @@ private: td->type = RCT1::GetRideType(td4Base.type, td4Base.vehicle_type); // All TD4s that use powered launch use the type that doesn't pass the station. - td->ride_mode = td4Base.mode; + td->ride_mode = static_cast(td4Base.mode); if (td4Base.mode == RCT1_RIDE_MODE_POWERED_LAUNCH) { - td->ride_mode = RIDE_MODE_POWERED_LAUNCH; + td->ride_mode = RideMode::PoweredLaunch; } // Convert RCT1 vehicle type to RCT2 vehicle type. Intialise with an string consisting of 8 spaces. diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index d7244ca657..0a86d675b1 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -509,7 +509,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src) dst->type = OpenRCT2RideTypeToRCT2RideType(src->type); dst->subtype = OpenRCT2EntryIndexToRCTEntryIndex(src->subtype); // pad_002; - dst->mode = src->mode; + dst->mode = static_cast(src->mode); dst->colour_scheme_type = src->colour_scheme_type; for (uint8_t i = 0; i < RCT2_MAX_CARS_PER_TRAIN; i++) @@ -1023,7 +1023,7 @@ void S6Exporter::ExportSpriteVehicle(RCT2SpriteVehicle* dst, const Vehicle* src) dst->vehicle_type = src->vehicle_type; dst->colours = src->colours; dst->track_progress = src->track_progress; - if (ride != nullptr && ride->mode == RIDE_MODE_BOAT_HIRE && src->status == Vehicle::Status::TravellingBoat) + if (ride != nullptr && ride->mode == RideMode::BoatHire && src->status == Vehicle::Status::TravellingBoat) { if (src->BoatLocation.isNull()) { diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index e4bcf2aa24..fe7aebc9fd 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -526,7 +526,7 @@ public: dst->type = rideType; dst->subtype = subtype; // pad_002; - dst->mode = src->mode; + dst->mode = static_cast(src->mode); dst->colour_scheme_type = src->colour_scheme_type; for (uint8_t i = 0; i < RCT2_MAX_CARS_PER_TRAIN; i++) @@ -1349,7 +1349,7 @@ public: dst->colours = src->colours; dst->track_progress = src->track_progress; dst->track_direction = src->track_direction; - if (src->boat_location.isNull() || ride.mode != RIDE_MODE_BOAT_HIRE + if (src->boat_location.isNull() || static_cast(ride.mode) != RideMode::BoatHire || src->status != static_cast(Vehicle::Status::TravellingBoat)) { dst->BoatLocation.setNull(); diff --git a/src/openrct2/rct2/T6Exporter.cpp b/src/openrct2/rct2/T6Exporter.cpp index 00a02b1b08..48f1472edd 100644 --- a/src/openrct2/rct2/T6Exporter.cpp +++ b/src/openrct2/rct2/T6Exporter.cpp @@ -51,7 +51,7 @@ bool T6Exporter::SaveTrack(OpenRCT2::IStream* stream) tempStream.WriteValue(_trackDesign->type); tempStream.WriteValue(_trackDesign->vehicle_type); tempStream.WriteValue(_trackDesign->flags); - tempStream.WriteValue(_trackDesign->ride_mode); + tempStream.WriteValue(static_cast(_trackDesign->ride_mode)); tempStream.WriteValue((_trackDesign->colour_scheme & 0x3) | (2 << 2)); tempStream.WriteArray(_trackDesign->vehicle_colours.data(), RCT12_MAX_VEHICLE_COLOURS); tempStream.WriteValue(0); diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/rct2/T6Importer.cpp index 5d6ac357f4..4d1a29d776 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/rct2/T6Importer.cpp @@ -83,7 +83,7 @@ public: td->cost = 0; td->flags = td6.flags; - td->ride_mode = td6.ride_mode; + td->ride_mode = static_cast(td6.ride_mode); td->track_flags = 0; td->colour_scheme = td6.version_and_colour_scheme & 0x3; for (auto i = 0; i < RCT2_MAX_CARS_PER_TRAIN; ++i) diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 26e52107a8..99d1c33dab 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -72,6 +72,11 @@ using namespace OpenRCT2; +RideMode& operator++(RideMode& d, int) +{ + return d = (d == RideMode::Count) ? RideMode::Normal : static_cast(static_cast(d) + 1); +} + static constexpr const int32_t RideInspectionInterval[] = { 10, 20, 30, 45, 60, 120, 0, 0, }; @@ -835,7 +840,7 @@ void Ride::FormatStatusTo(Formatter& ft) const { ft.Add(STR_TEST_RUN); } - else if (mode == RIDE_MODE_RACE && !(lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)) + else if (mode == RideMode::Race && !(lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING)) { auto peep = GetEntity(race_winner); if (peep != nullptr) @@ -882,8 +887,8 @@ bool Ride::CanHaveMultipleCircuits() const return false; // Only allow circuit or launch modes - if (mode != RIDE_MODE_CONTINUOUS_CIRCUIT && mode != RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE - && mode != RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) + if (mode != RideMode::ContinuousCircuit && mode != RideMode::ReverseInclineLaunchedShuttle + && mode != RideMode::PoweredLaunchPasstrough) { return false; } @@ -2403,7 +2408,7 @@ static int32_t ride_get_new_breakdown_problem(Ride* ride) // Brakes failure can not happen if block brakes are used (so long as there is more than one vehicle) // However if this is the case, brake failure should be taken out the equation, otherwise block brake // rides have a lower probability to break down due to a random implementation reason. - if (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::ContinuousCircuitBlockSectioned || ride->mode == RideMode::PoweredLaunchBlockSectioned) if (ride->num_vehicles != 1) return -1; @@ -3751,19 +3756,24 @@ static StationIndex ride_mode_check_valid_station_numbers(Ride* ride) switch (ride->mode) { - case RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE: - case RIDE_MODE_POWERED_LAUNCH_PASSTROUGH: - case RIDE_MODE_POWERED_LAUNCH: - case RIDE_MODE_LIM_POWERED_LAUNCH: + case RideMode::ReverseInclineLaunchedShuttle: + case RideMode::PoweredLaunchPasstrough: + case RideMode::PoweredLaunch: + case RideMode::LimPoweredLaunch: if (numStations <= 1) return 1; gGameCommandErrorText = STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE; return 0; - case RIDE_MODE_SHUTTLE: + case RideMode::Shuttle: if (numStations >= 2) return 1; gGameCommandErrorText = STR_UNABLE_TO_OPERATE_WITH_LESS_THAN_TWO_STATIONS_IN_THIS_MODE; return 0; + default: + { + // This is workaround for multiple compilation errors of type "enumeration value ‘RIDE_MODE_*' not handled + // in switch [-Werror=switch]" + } } if (ride->type == RIDE_TYPE_GO_KARTS || ride->type == RIDE_TYPE_MINI_GOLF) @@ -4698,7 +4708,7 @@ static bool ride_create_vehicles(Ride* ride, const CoordsXYE& element, int32_t i int32_t direction = tileElement->GetDirection(); // - if (ride->mode == RIDE_MODE_STATION_TO_STATION) + if (ride->mode == RideMode::StationToStation) { vehiclePos -= CoordsXYZ{ CoordsDirectionDelta[direction], 0 }; @@ -4911,7 +4921,7 @@ static bool ride_create_cable_lift(ride_id_t rideIndex, bool isApplying) if (ride == nullptr) return false; - if (ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED && ride->mode != RIDE_MODE_CONTINUOUS_CIRCUIT) + if (ride->mode != RideMode::ContinuousCircuitBlockSectioned && ride->mode != RideMode::ContinuousCircuit) { gGameCommandErrorText = STR_CABLE_LIFT_UNABLE_TO_WORK_IN_THIS_OPERATING_MODE; return false; @@ -5126,12 +5136,12 @@ int32_t ride_is_valid_for_test(Ride* ride, int32_t status, bool isApplying) return 0; } - if (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT || ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::ContinuousCircuit || ride->mode == RideMode::ContinuousCircuitBlockSectioned + || ride->mode == RideMode::PoweredLaunchBlockSectioned) { if (ride_find_track_gap(ride, &trackElement, &problematicTrackElement) - && (status != RIDE_STATUS_SIMULATING || ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED)) + && (status != RIDE_STATUS_SIMULATING || ride->mode == RideMode::ContinuousCircuitBlockSectioned + || ride->mode == RideMode::PoweredLaunchBlockSectioned)) { gGameCommandErrorText = STR_TRACK_IS_NOT_A_COMPLETE_CIRCUIT; ride_scroll_to_track_error(&problematicTrackElement); @@ -5139,7 +5149,7 @@ int32_t ride_is_valid_for_test(Ride* ride, int32_t status, bool isApplying) } } - if (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::ContinuousCircuitBlockSectioned || ride->mode == RideMode::PoweredLaunchBlockSectioned) { if (!ride_check_block_brakes(&trackElement, &problematicTrackElement)) { @@ -5171,7 +5181,7 @@ int32_t ride_is_valid_for_test(Ride* ride, int32_t status, bool isApplying) } } - if (ride->mode == RIDE_MODE_STATION_TO_STATION) + if (ride->mode == RideMode::StationToStation) { if (!ride_find_track_gap(ride, &trackElement, &problematicTrackElement)) { @@ -5262,8 +5272,8 @@ int32_t ride_is_valid_for_open(Ride* ride, int32_t goingToBeOpen, bool isApplyin return 0; } - if (ride->mode == RIDE_MODE_RACE || ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT - || ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::Race || ride->mode == RideMode::ContinuousCircuit + || ride->mode == RideMode::ContinuousCircuitBlockSectioned || ride->mode == RideMode::PoweredLaunchBlockSectioned) { if (ride_find_track_gap(ride, &trackElement, &problematicTrackElement)) { @@ -5273,7 +5283,7 @@ int32_t ride_is_valid_for_open(Ride* ride, int32_t goingToBeOpen, bool isApplyin } } - if (ride->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (ride->mode == RideMode::ContinuousCircuitBlockSectioned || ride->mode == RideMode::PoweredLaunchBlockSectioned) { if (!ride_check_block_brakes(&trackElement, &problematicTrackElement)) { @@ -5305,7 +5315,7 @@ int32_t ride_is_valid_for_open(Ride* ride, int32_t goingToBeOpen, bool isApplyin } } - if (ride->mode == RIDE_MODE_STATION_TO_STATION) + if (ride->mode == RideMode::StationToStation) { if (!ride_find_track_gap(ride, &trackElement, &problematicTrackElement)) { @@ -5471,7 +5481,7 @@ void Ride::StopGuestsQueuing() } } -uint8_t Ride::GetDefaultMode() const +RideMode Ride::GetDefaultMode() const { return GetRideTypeDescriptor().DefaultMode; } @@ -5860,13 +5870,13 @@ uint8_t ride_get_helix_sections(Ride* ride) bool Ride::IsPoweredLaunched() const { - return mode == RIDE_MODE_POWERED_LAUNCH_PASSTROUGH || mode == RIDE_MODE_POWERED_LAUNCH - || mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED; + return mode == RideMode::PoweredLaunchPasstrough || mode == RideMode::PoweredLaunch + || mode == RideMode::PoweredLaunchBlockSectioned; } bool Ride::IsBlockSectioned() const { - return mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED || mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED; + return mode == RideMode::ContinuousCircuitBlockSectioned || mode == RideMode::PoweredLaunchBlockSectioned; } bool ride_has_any_track_elements(const Ride* ride) @@ -6677,15 +6687,15 @@ void Ride::UpdateMaxVehicles() switch (mode) { - case RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED: - case RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED: + case RideMode::ContinuousCircuitBlockSectioned: + case RideMode::PoweredLaunchBlockSectioned: maxNumTrains = std::clamp(num_stations + num_block_brakes - 1, 1, 31); break; - case RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE: - case RIDE_MODE_POWERED_LAUNCH_PASSTROUGH: - case RIDE_MODE_SHUTTLE: - case RIDE_MODE_LIM_POWERED_LAUNCH: - case RIDE_MODE_POWERED_LAUNCH: + case RideMode::ReverseInclineLaunchedShuttle: + case RideMode::PoweredLaunchPasstrough: + case RideMode::Shuttle: + case RideMode::LimPoweredLaunch: + case RideMode::PoweredLaunch: maxNumTrains = 1; break; default: @@ -6708,7 +6718,7 @@ void Ride::UpdateMaxVehicles() totalLength += trainLength; } while (totalLength <= stationLength); - if ((mode != RIDE_MODE_STATION_TO_STATION && mode != RIDE_MODE_CONTINUOUS_CIRCUIT) + if ((mode != RideMode::StationToStation && mode != RideMode::ContinuousCircuit) || !(RideTypeDescriptors[type].Flags & RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS)) { maxNumTrains = std::min(maxNumTrains, 31); diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index f545a809ff..9f65e4949e 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -189,6 +189,7 @@ enum class RideClassification }; struct TrackDesign; +enum class RideMode : uint8_t; /** * Ride structure. @@ -203,7 +204,7 @@ struct Ride // pointer to static info. for example, wild mouse type is 0x36, subtype is // 0x4c. ObjectEntryIndex subtype; - uint8_t mode; + RideMode mode; uint8_t colour_scheme_type; VehicleColour vehicle_colours[MAX_CARS_PER_TRAIN]; // 0 = closed, 1 = open, 2 = test @@ -405,7 +406,7 @@ public: void StopGuestsQueuing(); - uint8_t GetDefaultMode() const; + RideMode GetDefaultMode() const; void SetColourPreset(uint8_t index); @@ -639,50 +640,52 @@ enum RIDE_STATUS_COUNT, }; -enum : uint8_t +enum class RideMode : uint8_t { - RIDE_MODE_NORMAL, - RIDE_MODE_CONTINUOUS_CIRCUIT, - RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE, - RIDE_MODE_POWERED_LAUNCH_PASSTROUGH, // RCT2 style, pass through station - RIDE_MODE_SHUTTLE, - 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 = 10, - RIDE_MODE_MAZE, - RIDE_MODE_RACE, - RIDE_MODE_DODGEMS, - 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 = 20, - 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 = 30, - RIDE_MODE_DOWNWARD_LAUNCH, - RIDE_MODE_CROOKED_HOUSE, - RIDE_MODE_FREEFALL_DROP, - RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED, - RIDE_MODE_POWERED_LAUNCH, // RCT1 style, don't pass through station - RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED, + Normal, + ContinuousCircuit, + ReverseInclineLaunchedShuttle, + PoweredLaunchPasstrough, // RCT2 style, pass through station + Shuttle, + BoatHire, + UpwardLaunch, + RotatingLift, + StationToStation, + SingleRidePerAdmission, + UnlimitedRidesPerAdmission = 10, + Maze, + Race, + Dodgems, + Swing, + ShopStall, + Rotation, + ForwardRotation, + BackwardRotation, + FilmAvengingAviators, + MouseTails3DFilm = 20, + SpaceRings, + Beginners, + LimPoweredLaunch, + FilmThrillRiders, + StormChasers3DFilm, + SpaceRaiders3DFilm, + Intense, + Berserk, + HauntedHouse, + Circus = 30, + DownwardLaunch, + CrookedHouse, + FreefallDrop, + ContinuousCircuitBlockSectioned, + PoweredLaunch, // RCT1 style, don't pass through station + PoweredLaunchBlockSectioned, - RIDE_MODE_COUNT, - RIDE_MODE_NULL = 255, + Count, + NullMode = 255, }; +RideMode& operator++(RideMode& d, int); + enum { RIDE_COLOUR_SCHEME_ALL_SAME, diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index 6aabad053d..f45e664dba 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -23,6 +23,7 @@ #include "../common.h" #include "../localisation/StringIds.h" #include "../sprites.h" +#include "../util/Util.h" #include "Ride.h" #include "ShopItem.h" #include "Track.h" @@ -143,7 +144,7 @@ struct RideTypeDescriptor uint64_t Flags; /** rct2: 0x0097C8AC */ uint64_t RideModes; - uint8_t DefaultMode; + RideMode DefaultMode; /** rct2: 0x0097CF40 */ RideOperatingSettings OperatingSettings; RideNaming Naming; @@ -289,26 +290,22 @@ constexpr const RideComponentName RideComponentNames[] = }; // clang-format on -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) | (1ULL << RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED); +constexpr const uint64_t AllRideModesAvailable = EnumsToFlags( + RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, + RideMode::PoweredLaunchPasstrough, RideMode::Shuttle, RideMode::Normal, RideMode::BoatHire, RideMode::UpwardLaunch, + RideMode::RotatingLift, RideMode::StationToStation, RideMode::SingleRidePerAdmission, RideMode::UnlimitedRidesPerAdmission, + RideMode::Maze, RideMode::Race, RideMode::Dodgems, RideMode::Swing, RideMode::ShopStall, RideMode::Rotation, + RideMode::ForwardRotation, RideMode::BackwardRotation, RideMode::FilmAvengingAviators, RideMode::MouseTails3DFilm, + RideMode::SpaceRings, RideMode::Beginners, RideMode::LimPoweredLaunch, RideMode::FilmThrillRiders, + RideMode::StormChasers3DFilm, RideMode::SpaceRaiders3DFilm, RideMode::Intense, RideMode::Berserk, RideMode::HauntedHouse, + RideMode::Circus, RideMode::DownwardLaunch, RideMode::CrookedHouse, RideMode::FreefallDrop, RideMode::PoweredLaunch, + RideMode::PoweredLaunchBlockSectioned); extern const rct_ride_entry_vehicle CableLiftVehicle; extern const uint16_t RideFilmLength[3]; -extern const rct_string_id RideModeNames[RIDE_MODE_COUNT]; +extern const rct_string_id RideModeNames[static_cast(RideMode::Count)]; // clang-format off constexpr const RideTypeDescriptor DummyRTD = @@ -321,8 +318,8 @@ constexpr const RideTypeDescriptor DummyRTD = 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_UNKNOWN_RIDE, STR_RIDE_DESCRIPTION_UNKNOWN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index 59a2c2e821..4848696c86 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -918,19 +918,19 @@ static uint16_t ride_compute_upkeep(Ride* ride) // flume/rapids, 10 for roller coaster, 28 for giga coaster upkeep += RideTypeDescriptors[ride->type].UpkeepCosts.CostPerStation * ride->num_stations; - if (ride->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) + if (ride->mode == RideMode::ReverseInclineLaunchedShuttle) { upkeep += 30; } - else if (ride->mode == RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) + else if (ride->mode == RideMode::PoweredLaunchPasstrough) { upkeep += 160; } - else if (ride->mode == RIDE_MODE_LIM_POWERED_LAUNCH) + else if (ride->mode == RideMode::LimPoweredLaunch) { upkeep += 320; } - else if (ride->mode == RIDE_MODE_POWERED_LAUNCH || ride->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + else if (ride->mode == RideMode::PoweredLaunch || ride->mode == RideMode::PoweredLaunchBlockSectioned) { upkeep += 220; } @@ -2190,7 +2190,7 @@ void ride_ratings_calculate_launched_freefall(Ride* ride) RatingTuple ratings; ride_ratings_set(&ratings, RIDE_RATING(2, 70), RIDE_RATING(3, 00), RIDE_RATING(3, 50)); - if (ride->mode == RIDE_MODE_DOWNWARD_LAUNCH) + if (ride->mode == RideMode::DownwardLaunch) { ride_ratings_add(&ratings, RIDE_RATING(0, 30), RIDE_RATING(0, 65), RIDE_RATING(0, 45)); } @@ -2202,7 +2202,7 @@ void ride_ratings_calculate_launched_freefall(Ride* ride) ride_ratings_apply_operation_option(&ratings, ride, 0, 1355917, 451972); #else // Only apply "launch speed" effects when the setting can be modified - if (ride->mode == RIDE_MODE_UPWARD_LAUNCH) + if (ride->mode == RideMode::UpwardLaunch) { ride_ratings_apply_operation_option(&ratings, ride, 0, 1355917, 451972); } @@ -2547,7 +2547,7 @@ void ride_ratings_calculate_spiral_slide(Ride* ride) ride_ratings_set(&ratings, RIDE_RATING(1, 50), RIDE_RATING(1, 40), RIDE_RATING(0, 90)); // Unlimited slides boost - if (ride->mode == RIDE_MODE_UNLIMITED_RIDES_PER_ADMISSION) + if (ride->mode == RideMode::UnlimitedRidesPerAdmission) { ride_ratings_add(&ratings, RIDE_RATING(0, 40), RIDE_RATING(0, 20), RIDE_RATING(0, 25)); } @@ -2577,7 +2577,7 @@ void ride_ratings_calculate_go_karts(Ride* ride) ride_ratings_set(&ratings, RIDE_RATING(1, 42), RIDE_RATING(1, 73), RIDE_RATING(0, 40)); ride_ratings_apply_length(&ratings, ride, 700, 32768); - if (ride->mode == RIDE_MODE_RACE && ride->num_vehicles >= 4) + if (ride->mode == RideMode::Race && ride->num_vehicles >= 4) { ride_ratings_add(&ratings, RIDE_RATING(1, 40), RIDE_RATING(0, 50), 0); @@ -2839,7 +2839,7 @@ void ride_ratings_calculate_motion_simulator(Ride* ride) // Base ratings RatingTuple ratings; - if (ride->mode == RIDE_MODE_FILM_THRILL_RIDERS) + if (ride->mode == RideMode::FilmThrillRiders) { ratings.Excitement = RIDE_RATING(3, 25); ratings.Intensity = RIDE_RATING(4, 10); @@ -2875,17 +2875,17 @@ void ride_ratings_calculate_3d_cinema(Ride* ride) switch (ride->mode) { default: - case RIDE_MODE_3D_FILM_MOUSE_TAILS: + case RideMode::MouseTails3DFilm: ratings.Excitement = RIDE_RATING(3, 50); ratings.Intensity = RIDE_RATING(2, 40); ratings.Nausea = RIDE_RATING(1, 40); break; - case RIDE_MODE_3D_FILM_STORM_CHASERS: + case RideMode::StormChasers3DFilm: ratings.Excitement = RIDE_RATING(4, 00); ratings.Intensity = RIDE_RATING(2, 65); ratings.Nausea = RIDE_RATING(1, 55); break; - case RIDE_MODE_3D_FILM_SPACE_RAIDERS: + case RideMode::SpaceRaiders3DFilm: ratings.Excitement = RIDE_RATING(4, 20); ratings.Intensity = RIDE_RATING(2, 60); ratings.Nausea = RIDE_RATING(1, 48); @@ -2915,17 +2915,17 @@ void ride_ratings_calculate_top_spin(Ride* ride) switch (ride->mode) { default: - case RIDE_MODE_BEGINNERS: + case RideMode::Beginners: ratings.Excitement = RIDE_RATING(2, 00); ratings.Intensity = RIDE_RATING(4, 80); ratings.Nausea = RIDE_RATING(5, 74); break; - case RIDE_MODE_INTENSE: + case RideMode::Intense: ratings.Excitement = RIDE_RATING(3, 00); ratings.Intensity = RIDE_RATING(5, 75); ratings.Nausea = RIDE_RATING(6, 64); break; - case RIDE_MODE_BERSERK: + case RideMode::Berserk: ratings.Excitement = RIDE_RATING(3, 20); ratings.Intensity = RIDE_RATING(6, 80); ratings.Nausea = RIDE_RATING(7, 94); @@ -3927,7 +3927,7 @@ void ride_ratings_calculate_compact_inverted_coaster(Ride* ride) if (!(ride->lifecycle_flags & RIDE_LIFECYCLE_TESTED)) return; - ride->unreliability_factor = ride->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE ? 31 : 21; + ride->unreliability_factor = ride->mode == RideMode::ReverseInclineLaunchedShuttle ? 31 : 21; set_unreliability_factor(ride); RatingTuple ratings; diff --git a/src/openrct2/ride/Station.cpp b/src/openrct2/ride/Station.cpp index 6dbdd71741..a8472f8685 100644 --- a/src/openrct2/ride/Station.cpp +++ b/src/openrct2/ride/Station.cpp @@ -33,14 +33,14 @@ void ride_update_station(Ride* ride, StationIndex stationIndex) switch (ride->mode) { - case RIDE_MODE_RACE: + case RideMode::Race: ride_update_station_race(ride, stationIndex); break; - case RIDE_MODE_DODGEMS: + case RideMode::Dodgems: ride_update_station_dodgems(ride, stationIndex); break; - case RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED: - case RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED: + case RideMode::ContinuousCircuitBlockSectioned: + case RideMode::PoweredLaunchBlockSectioned: ride_update_station_blocksection(ride, stationIndex); break; default: diff --git a/src/openrct2/ride/TrackDesign.h b/src/openrct2/ride/TrackDesign.h index fefbd58d25..4c5ae6414a 100644 --- a/src/openrct2/ride/TrackDesign.h +++ b/src/openrct2/ride/TrackDesign.h @@ -78,6 +78,7 @@ struct TrackDesignMazeElement }; class DataSerialiser; +enum class RideMode : uint8_t; struct TrackDesign { @@ -85,7 +86,7 @@ struct TrackDesign uint8_t vehicle_type; money32 cost; uint32_t flags; - uint8_t ride_mode; + RideMode ride_mode; uint8_t track_flags; uint8_t colour_scheme; std::array vehicle_colours; diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 18824752ca..e0015d1f99 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -2067,10 +2067,10 @@ void Vehicle::UpdateMovingToEndOfStation() switch (curRide->mode) { - case RIDE_MODE_UPWARD_LAUNCH: - case RIDE_MODE_ROTATING_LIFT: - case RIDE_MODE_DOWNWARD_LAUNCH: - case RIDE_MODE_FREEFALL_DROP: + case RideMode::UpwardLaunch: + case RideMode::RotatingLift: + case RideMode::DownwardLaunch: + case RideMode::FreefallDrop: if (velocity >= -131940) { acceleration = -3298; @@ -2084,23 +2084,23 @@ void Vehicle::UpdateMovingToEndOfStation() if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_5)) break; [[fallthrough]]; - case RIDE_MODE_DODGEMS: - case RIDE_MODE_SWING: - case RIDE_MODE_ROTATION: - case RIDE_MODE_FORWARD_ROTATION: - case RIDE_MODE_BACKWARD_ROTATION: - case RIDE_MODE_FILM_AVENGING_AVIATORS: - case RIDE_MODE_FILM_THRILL_RIDERS: - case RIDE_MODE_BEGINNERS: - case RIDE_MODE_INTENSE: - case RIDE_MODE_BERSERK: - case RIDE_MODE_3D_FILM_MOUSE_TAILS: - case RIDE_MODE_3D_FILM_STORM_CHASERS: - case RIDE_MODE_3D_FILM_SPACE_RAIDERS: - case RIDE_MODE_SPACE_RINGS: - case RIDE_MODE_HAUNTED_HOUSE: - case RIDE_MODE_CROOKED_HOUSE: - case RIDE_MODE_CIRCUS_SHOW: + case RideMode::Dodgems: + case RideMode::Swing: + case RideMode::Rotation: + case RideMode::ForwardRotation: + case RideMode::BackwardRotation: + case RideMode::FilmAvengingAviators: + case RideMode::FilmThrillRiders: + case RideMode::Beginners: + case RideMode::Intense: + case RideMode::Berserk: + case RideMode::MouseTails3DFilm: + case RideMode::StormChasers3DFilm: + case RideMode::SpaceRaiders3DFilm: + case RideMode::SpaceRings: + case RideMode::HauntedHouse: + case RideMode::CrookedHouse: + case RideMode::Circus: current_station = 0; velocity = 0; acceleration = 0; @@ -2137,7 +2137,7 @@ void Vehicle::UpdateMovingToEndOfStation() acceleration = 0; sub_state++; - if (curRide->mode == RIDE_MODE_RACE && sub_state >= 40) + if (curRide->mode == RideMode::Race && sub_state >= 40) { SetState(Vehicle::Status::WaitingForPassengers); break; @@ -2194,7 +2194,7 @@ void Vehicle::TrainReadyToDepart(uint8_t num_peeps_on_train, uint8_t num_used_se } } - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION || curRide->mode == RIDE_MODE_BACKWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation || curRide->mode == RideMode::BackwardRotation) { uint8_t seat = ((-vehicle_sprite_type) / 8) & 0xF; if (peep[seat] != SPRITE_INDEX_NULL) @@ -2481,7 +2481,7 @@ void Vehicle::UpdateWaitingToDepart() bool skipCheck = false; if (shouldBreak || curRide->status != RIDE_STATUS_OPEN) { - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION || curRide->mode == RIDE_MODE_BACKWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation || curRide->mode == RideMode::BackwardRotation) { uint8_t seat = ((-vehicle_sprite_type) >> 3) & 0xF; if (peep[seat * 2] == SPRITE_INDEX_NULL) @@ -2558,102 +2558,111 @@ void Vehicle::UpdateWaitingToDepart() switch (curRide->mode) { - case RIDE_MODE_DODGEMS: + case RideMode::Dodgems: // Dodgems mode uses sub_state / var_CE to tell how long // the vehicle has been ridden. SetState(Vehicle::Status::TravellingDodgems); var_CE = 0; UpdateDodgemsMode(); break; - case RIDE_MODE_SWING: + case RideMode::Swing: SetState(Vehicle::Status::Swinging); var_CE = 0; current_time = -1; UpdateSwinging(); break; - case RIDE_MODE_ROTATION: + case RideMode::Rotation: SetState(Vehicle::Status::Rotating); var_CE = 0; current_time = -1; UpdateRotating(); break; - case RIDE_MODE_FILM_AVENGING_AVIATORS: + case RideMode::FilmAvengingAviators: SetState(Vehicle::Status::SimulatorOperating); current_time = -1; UpdateSimulatorOperating(); break; - case RIDE_MODE_FILM_THRILL_RIDERS: + case RideMode::FilmThrillRiders: SetState(Vehicle::Status::SimulatorOperating, 1); current_time = -1; UpdateSimulatorOperating(); break; - case RIDE_MODE_BEGINNERS: - case RIDE_MODE_INTENSE: - case RIDE_MODE_BERSERK: + case RideMode::Beginners: + case RideMode::Intense: + case RideMode::Berserk: SetState(Vehicle::Status::TopSpinOperating, sub_state); - switch (curRide->mode) { - case RIDE_MODE_BEGINNERS: + case RideMode::Beginners: sub_state = 0; break; - case RIDE_MODE_INTENSE: + case RideMode::Intense: sub_state = 1; break; - case RIDE_MODE_BERSERK: + case RideMode::Berserk: sub_state = 2; break; + default: + { + // This is workaround for multiple compilation errors of type "enumeration value ‘RIDE_MODE_*' not handled + // in switch [-Werror=switch]" + } } current_time = -1; vehicle_sprite_type = 0; bank_rotation = 0; UpdateTopSpinOperating(); break; - case RIDE_MODE_FORWARD_ROTATION: - case RIDE_MODE_BACKWARD_ROTATION: + case RideMode::ForwardRotation: + case RideMode::BackwardRotation: SetState(Vehicle::Status::FerrisWheelRotating, vehicle_sprite_type); var_CE = 0; ferris_wheel_var_0 = 8; ferris_wheel_var_1 = 8; UpdateFerrisWheelRotating(); break; - case RIDE_MODE_3D_FILM_MOUSE_TAILS: - case RIDE_MODE_3D_FILM_STORM_CHASERS: - case RIDE_MODE_3D_FILM_SPACE_RAIDERS: + case RideMode::MouseTails3DFilm: + case RideMode::StormChasers3DFilm: + case RideMode::SpaceRaiders3DFilm: SetState(Vehicle::Status::ShowingFilm, sub_state); switch (curRide->mode) { - case RIDE_MODE_3D_FILM_MOUSE_TAILS: + case RideMode::MouseTails3DFilm: sub_state = 0; break; - case RIDE_MODE_3D_FILM_STORM_CHASERS: + case RideMode::StormChasers3DFilm: sub_state = 1; break; - case RIDE_MODE_3D_FILM_SPACE_RAIDERS: + case RideMode::SpaceRaiders3DFilm: sub_state = 2; break; + default: + { + // This is workaround for multiple compilation errors of type "enumeration value ‘RIDE_MODE_*' not handled + // in switch [-Werror=switch]" + } } current_time = -1; UpdateShowingFilm(); break; - case RIDE_MODE_CIRCUS_SHOW: + case RideMode::Circus: SetState(Vehicle::Status::DoingCircusShow); current_time = -1; UpdateDoingCircusShow(); break; - case RIDE_MODE_SPACE_RINGS: + case RideMode::SpaceRings: SetState(Vehicle::Status::SpaceRingsOperating); vehicle_sprite_type = 0; current_time = -1; UpdateSpaceRingsOperating(); break; - case RIDE_MODE_HAUNTED_HOUSE: + case RideMode::HauntedHouse: SetState(Vehicle::Status::HauntedHouseOperating); vehicle_sprite_type = 0; current_time = -1; UpdateHauntedHouseOperating(); break; - case RIDE_MODE_CROOKED_HOUSE: + case RideMode::CrookedHouse: SetState(Vehicle::Status::CrookedHouseOperating); vehicle_sprite_type = 0; current_time = -1; @@ -3196,7 +3205,7 @@ void Vehicle::UpdateDeparting() audio_play_sound_at_location(soundId, { x, y, z }); } - if (curRide->mode == RIDE_MODE_UPWARD_LAUNCH || (curRide->mode == RIDE_MODE_DOWNWARD_LAUNCH && var_CE > 1)) + if (curRide->mode == RideMode::UpwardLaunch || (curRide->mode == RideMode::DownwardLaunch && var_CE > 1)) { audio_play_sound_at_location(SoundId::RideLaunch2, { x, y, z }); } @@ -3226,15 +3235,15 @@ void Vehicle::UpdateDeparting() switch (curRide->mode) { - case RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE: + case RideMode::ReverseInclineLaunchedShuttle: if (velocity >= -131940) acceleration = -3298; break; - case RIDE_MODE_POWERED_LAUNCH_PASSTROUGH: - case RIDE_MODE_POWERED_LAUNCH: - case RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED: - case RIDE_MODE_LIM_POWERED_LAUNCH: - case RIDE_MODE_UPWARD_LAUNCH: + case RideMode::PoweredLaunchPasstrough: + case RideMode::PoweredLaunch: + case RideMode::PoweredLaunchBlockSectioned: + case RideMode::LimPoweredLaunch: + case RideMode::UpwardLaunch: if (curRide->type == RIDE_TYPE_AIR_POWERED_VERTICAL_COASTER) { if ((curRide->launch_speed << 16) > velocity) @@ -3247,7 +3256,7 @@ void Vehicle::UpdateDeparting() if ((curRide->launch_speed << 16) > velocity) acceleration = curRide->launch_speed << 12; break; - case RIDE_MODE_DOWNWARD_LAUNCH: + case RideMode::DownwardLaunch: if (var_CE >= 1) { if ((14 << 16) > velocity) @@ -3255,24 +3264,29 @@ void Vehicle::UpdateDeparting() break; } [[fallthrough]]; - case RIDE_MODE_CONTINUOUS_CIRCUIT: - case RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED: - case RIDE_MODE_ROTATING_LIFT: - case RIDE_MODE_FREEFALL_DROP: - case RIDE_MODE_BOAT_HIRE: + case RideMode::ContinuousCircuit: + case RideMode::ContinuousCircuitBlockSectioned: + case RideMode::RotatingLift: + case RideMode::FreefallDrop: + case RideMode::BoatHire: if (vehicleEntry->flags & VEHICLE_ENTRY_FLAG_POWERED) break; if (velocity <= 131940) acceleration = 3298; break; + default: + { + // This is workaround for multiple compilation errors of type "enumeration value ‘RIDE_MODE_*' not handled + // in switch [-Werror=switch]" + } } uint32_t curFlags = UpdateTrackMotion(nullptr); if (curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_8) { - if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) + if (curRide->mode == RideMode::ReverseInclineLaunchedShuttle) { velocity = -velocity; FinishDeparting(); @@ -3282,18 +3296,18 @@ void Vehicle::UpdateDeparting() if (curFlags & (VEHICLE_UPDATE_MOTION_TRACK_FLAG_5 | VEHICLE_UPDATE_MOTION_TRACK_FLAG_12)) { - if (curRide->mode == RIDE_MODE_BOAT_HIRE) + if (curRide->mode == RideMode::BoatHire) { UpdateDepartingBoatHire(); return; } - else if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) + else if (curRide->mode == RideMode::ReverseInclineLaunchedShuttle) { velocity = -velocity; FinishDeparting(); return; } - else if (curRide->mode == RIDE_MODE_SHUTTLE) + else if (curRide->mode == RideMode::Shuttle) { update_flags ^= VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE; velocity = 0; @@ -3306,7 +3320,7 @@ void Vehicle::UpdateDeparting() if (curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_ON_LIFT_HILL) { sound2_flags |= VEHICLE_SOUND2_FLAGS_LIFT_HILL; - if (curRide->mode != RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) + if (curRide->mode != RideMode::ReverseInclineLaunchedShuttle) { int32_t curSpeed = curRide->lift_hill_speed * 31079; if (velocity <= curSpeed) @@ -3344,14 +3358,14 @@ void Vehicle::UpdateDeparting() } } - if (curRide->mode == RIDE_MODE_FREEFALL_DROP) + if (curRide->mode == RideMode::FreefallDrop) { animation_frame++; } else { bool shouldLaunch = true; - if (curRide->mode == RIDE_MODE_DOWNWARD_LAUNCH) + if (curRide->mode == RideMode::DownwardLaunch) { if (var_CE < 1) shouldLaunch = false; @@ -3367,8 +3381,8 @@ void Vehicle::UpdateDeparting() if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_5)) return; - if (curRide->mode == RIDE_MODE_BOAT_HIRE || curRide->mode == RIDE_MODE_ROTATING_LIFT - || curRide->mode == RIDE_MODE_SHUTTLE) + if (curRide->mode == RideMode::BoatHire || curRide->mode == RideMode::RotatingLift + || curRide->mode == RideMode::Shuttle) return; UpdateCrashSetup(); @@ -3378,7 +3392,7 @@ void Vehicle::UpdateDeparting() if (!CurrentTowerElementIsTop()) { - if (curRide->mode == RIDE_MODE_FREEFALL_DROP) + if (curRide->mode == RideMode::FreefallDrop) Invalidate(); return; } @@ -3401,7 +3415,7 @@ void Vehicle::FinishDeparting() if (curRide == nullptr) return; - if (curRide->mode == RIDE_MODE_DOWNWARD_LAUNCH) + if (curRide->mode == RideMode::DownwardLaunch) { if (var_CE >= 1 && (14 << 16) > velocity) return; @@ -3409,7 +3423,7 @@ void Vehicle::FinishDeparting() audio_play_sound_at_location(SoundId::RideLaunch1, { x, y, z }); } - if (curRide->mode == RIDE_MODE_UPWARD_LAUNCH) + if (curRide->mode == RideMode::UpwardLaunch) { if ((curRide->launch_speed << 16) > velocity) return; @@ -3417,8 +3431,8 @@ void Vehicle::FinishDeparting() audio_play_sound_at_location(SoundId::RideLaunch1, { x, y, z }); } - if (curRide->mode != RIDE_MODE_RACE && curRide->mode != RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - && curRide->mode != RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (curRide->mode != RideMode::Race && curRide->mode != RideMode::ContinuousCircuitBlockSectioned + && curRide->mode != RideMode::PoweredLaunchBlockSectioned) { curRide->stations[current_station].Depart &= STATION_DEPART_FLAG; uint8_t waitingTime = 3; @@ -3449,8 +3463,7 @@ void Vehicle::CheckIfMissing() if (curRide->lifecycle_flags & (RIDE_LIFECYCLE_BROKEN_DOWN | RIDE_LIFECYCLE_CRASHED)) return; - if (curRide->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || curRide->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (curRide->mode == RideMode::ContinuousCircuitBlockSectioned || curRide->mode == RideMode::PoweredLaunchBlockSectioned) return; if (!ride_type_has_flag(curRide->type, RIDE_TYPE_FLAG_CHECK_FOR_STALLING)) @@ -3675,7 +3688,7 @@ void Vehicle::UpdateTravelling() CheckIfMissing(); auto curRide = GetRide(); - if (curRide == nullptr || (_vehicleBreakdown == 0 && curRide->mode == RIDE_MODE_ROTATING_LIFT)) + if (curRide == nullptr || (_vehicleBreakdown == 0 && curRide->mode == RideMode::RotatingLift)) return; if (sub_state == 2) @@ -3687,7 +3700,7 @@ void Vehicle::UpdateTravelling() sub_state = 0; } - if (curRide->mode == RIDE_MODE_FREEFALL_DROP && animation_frame != 0) + if (curRide->mode == RideMode::FreefallDrop && animation_frame != 0) { animation_frame++; velocity = 0; @@ -3700,7 +3713,7 @@ void Vehicle::UpdateTravelling() bool skipCheck = false; if (curFlags & (VEHICLE_UPDATE_MOTION_TRACK_FLAG_8 | VEHICLE_UPDATE_MOTION_TRACK_FLAG_9) - && curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE && sub_state == 0) + && curRide->mode == RideMode::ReverseInclineLaunchedShuttle && sub_state == 0) { sub_state = 1; velocity = 0; @@ -3723,7 +3736,7 @@ void Vehicle::UpdateTravelling() if (curFlags & (VEHICLE_UPDATE_MOTION_TRACK_FLAG_5 | VEHICLE_UPDATE_MOTION_TRACK_FLAG_12)) { - if (curRide->mode == RIDE_MODE_ROTATING_LIFT) + if (curRide->mode == RideMode::RotatingLift) { if (sub_state <= 1) { @@ -3732,12 +3745,12 @@ void Vehicle::UpdateTravelling() return; } } - else if (curRide->mode == RIDE_MODE_BOAT_HIRE) + else if (curRide->mode == RideMode::BoatHire) { UpdateTravellingBoatHireSetup(); return; } - else if (curRide->mode == RIDE_MODE_SHUTTLE) + else if (curRide->mode == RideMode::Shuttle) { update_flags ^= VEHICLE_UPDATE_FLAG_REVERSING_SHUTTLE; velocity = 0; @@ -3755,7 +3768,7 @@ void Vehicle::UpdateTravelling() } } - if (curRide->mode == RIDE_MODE_ROTATING_LIFT && sub_state <= 1) + if (curRide->mode == RideMode::RotatingLift && sub_state <= 1) { if (sub_state == 0) { @@ -3781,7 +3794,7 @@ void Vehicle::UpdateTravelling() if (curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_ON_LIFT_HILL) { - if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE) + if (curRide->mode == RideMode::ReverseInclineLaunchedShuttle) { if (sub_state == 0) { @@ -3828,12 +3841,12 @@ void Vehicle::UpdateTravelling() if (!(curFlags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_3)) return; - if (curRide->mode == RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE && velocity >= 0 && !HasUpdateFlag(VEHICLE_UPDATE_FLAG_12)) + if (curRide->mode == RideMode::ReverseInclineLaunchedShuttle && velocity >= 0 && !HasUpdateFlag(VEHICLE_UPDATE_FLAG_12)) { return; } - if (curRide->mode == RIDE_MODE_POWERED_LAUNCH_PASSTROUGH && velocity < 0) + if (curRide->mode == RideMode::PoweredLaunchPasstrough && velocity < 0) return; SetState(Vehicle::Status::Arriving); @@ -3856,27 +3869,32 @@ void Vehicle::UpdateArriving() uint8_t unkF64E35 = 1; switch (curRide->mode) { - case RIDE_MODE_SWING: - case RIDE_MODE_ROTATION: - case RIDE_MODE_FORWARD_ROTATION: - case RIDE_MODE_BACKWARD_ROTATION: - case RIDE_MODE_FILM_AVENGING_AVIATORS: - case RIDE_MODE_FILM_THRILL_RIDERS: - case RIDE_MODE_BEGINNERS: - case RIDE_MODE_INTENSE: - case RIDE_MODE_BERSERK: - case RIDE_MODE_3D_FILM_MOUSE_TAILS: - case RIDE_MODE_3D_FILM_STORM_CHASERS: - case RIDE_MODE_3D_FILM_SPACE_RAIDERS: - case RIDE_MODE_CIRCUS_SHOW: - case RIDE_MODE_SPACE_RINGS: - case RIDE_MODE_HAUNTED_HOUSE: - case RIDE_MODE_CROOKED_HOUSE: + case RideMode::Swing: + case RideMode::Rotation: + case RideMode::ForwardRotation: + case RideMode::BackwardRotation: + case RideMode::FilmAvengingAviators: + case RideMode::FilmThrillRiders: + case RideMode::Beginners: + case RideMode::Intense: + case RideMode::Berserk: + case RideMode::MouseTails3DFilm: + case RideMode::StormChasers3DFilm: + case RideMode::SpaceRaiders3DFilm: + case RideMode::Circus: + case RideMode::SpaceRings: + case RideMode::HauntedHouse: + case RideMode::CrookedHouse: ClearUpdateFlag(VEHICLE_UPDATE_FLAG_12); velocity = 0; acceleration = 0; SetState(Vehicle::Status::UnloadingPassengers); return; + default: + { + // This is workaround for multiple compilation errors of type "enumeration value ‘RIDE_MODE_*' not handled + // in switch [-Werror=switch]" + } } bool hasBrakesFailure = curRide->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN @@ -3892,7 +3910,7 @@ void Vehicle::UpdateArriving() if (sub_state == 0) { - if (curRide->mode == RIDE_MODE_RACE && curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) + if (curRide->mode == RideMode::Race && curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) { goto loc_6D8E36; } @@ -3960,7 +3978,7 @@ void Vehicle::UpdateArriving() } if (RideTypeDescriptors[curRide->type].Flags & RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS - && curRide->mode != RIDE_MODE_SHUTTLE && curRide->mode != RIDE_MODE_POWERED_LAUNCH) + && curRide->mode != RideMode::Shuttle && curRide->mode != RideMode::PoweredLaunch) { SetUpdateFlag(VEHICLE_UPDATE_FLAG_12); } @@ -4032,7 +4050,7 @@ loc_6D8E36: return; } - if ((curRide->mode == RIDE_MODE_UPWARD_LAUNCH || curRide->mode == RIDE_MODE_DOWNWARD_LAUNCH) && var_CE < 2) + if ((curRide->mode == RideMode::UpwardLaunch || curRide->mode == RideMode::DownwardLaunch) && var_CE < 2) { audio_play_sound_at_location(SoundId::RideLaunch2, { x, y, z }); velocity = 0; @@ -4041,7 +4059,7 @@ loc_6D8E36: return; } - if (curRide->mode == RIDE_MODE_RACE && curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) + if (curRide->mode == RideMode::Race && curRide->lifecycle_flags & RIDE_LIFECYCLE_PASS_STATION_NO_STOPPING) { SetState(Vehicle::Status::Departing, 1); return; @@ -4071,7 +4089,7 @@ void Vehicle::UpdateUnloadingPassengers() if (curRide == nullptr) return; - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION || curRide->mode == RIDE_MODE_BACKWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation || curRide->mode == RideMode::BackwardRotation) { uint8_t seat = ((-vehicle_sprite_type) >> 3) & 0xF; if (restraints_position == 255 && (peep[seat * 2] != SPRITE_INDEX_NULL)) @@ -4247,8 +4265,7 @@ void Vehicle::UpdateTravellingCableLift() sub_state = 2; - if (curRide->mode == RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED - || curRide->mode == RIDE_MODE_POWERED_LAUNCH_BLOCK_SECTIONED) + if (curRide->mode == RideMode::ContinuousCircuitBlockSectioned || curRide->mode == RideMode::PoweredLaunchBlockSectioned) return; // This is slightly different to the vanilla function @@ -4799,7 +4816,7 @@ void Vehicle::UpdateFerrisWheelRotating() } uint8_t rotation = vehicle_sprite_type; - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation) rotation++; else rotation--; @@ -4813,7 +4830,7 @@ void Vehicle::UpdateFerrisWheelRotating() Invalidate(); uint8_t subState = sub_state; - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation) subState++; else subState--; @@ -4840,7 +4857,7 @@ void Vehicle::UpdateFerrisWheelRotating() return; subState = sub_state; - if (curRide->mode == RIDE_MODE_FORWARD_ROTATION) + if (curRide->mode == RideMode::ForwardRotation) subState += 8; else subState -= 8; diff --git a/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h b/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h index b5857097a1..05d03c40f2 100644 --- a/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h +++ b/src/openrct2/ride/coaster/meta/AirPoweredVerticalCoaster.h @@ -25,8 +25,8 @@ constexpr const RideTypeDescriptor AirPoweredVerticalCoasterRTD = SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION), SET_FIELD(TrackPaintFunction, get_track_paint_function_air_powered_vertical_rc), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)), - SET_FIELD(DefaultMode, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH), + SET_FIELD(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough), SET_FIELD(OperatingSettings, { 30, 50, 30, 40, 40, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_AIR_POWERED_VERTICAL_COASTER, STR_RIDE_DESCRIPTION_AIR_POWERED_VERTICAL_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/BobsleighCoaster.h b/src/openrct2/ride/coaster/meta/BobsleighCoaster.h index a93de64f0d..6c113ab9a4 100644 --- a/src/openrct2/ride/coaster/meta/BobsleighCoaster.h +++ b/src/openrct2/ride/coaster/meta/BobsleighCoaster.h @@ -27,8 +27,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 | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h b/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h index 3d1563a3ad..f370be52ab 100644 --- a/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/ClassicMiniRollerCoaster.h @@ -30,8 +30,8 @@ constexpr const RideTypeDescriptor ClassicMiniRollerCoasterRTD = SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }), SET_FIELD(Naming, { STR_RIDE_NAME_CLASSIC_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CLASSIC_MINI_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h b/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h index e59015e196..60d277bbbd 100644 --- a/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h +++ b/src/openrct2/ride/coaster/meta/CompactInvertedCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_COMPACT_INVERTED_COASTER, STR_RIDE_DESCRIPTION_COMPACT_INVERTED_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h b/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h index c48c2b8e1e..f47578f893 100644 --- a/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/CorkscrewRollerCoaster.h @@ -32,8 +32,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CORKSCREW_ROLLER_COASTER, STR_RIDE_DESCRIPTION_CORKSCREW_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h index 9a6de7232c..3fa6e5e3d6 100644 --- a/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/FlyingRollerCoaster.h @@ -29,8 +29,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_FLAG_HAS_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_FLYING_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), @@ -69,8 +69,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 | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_3A, STR_RIDE_DESCRIPTION_UNKNOWN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/GigaCoaster.h b/src/openrct2/ride/coaster/meta/GigaCoaster.h index 8d2eb45654..9e819ed802 100644 --- a/src/openrct2/ride/coaster/meta/GigaCoaster.h +++ b/src/openrct2/ride/coaster/meta/GigaCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 1 }), SET_FIELD(Naming, { STR_RIDE_NAME_GIGA_COASTER, STR_RIDE_DESCRIPTION_GIGA_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h b/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h index 065fc8c3b9..023e636c7b 100644 --- a/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h +++ b/src/openrct2/ride/coaster/meta/HeartlineTwisterCoaster.h @@ -26,8 +26,8 @@ constexpr const RideTypeDescriptor HeartlineTwisterCoasterRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_heartline_twister_rc), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_HEARTLINE_TWISTER_COASTER, STR_RIDE_DESCRIPTION_HEARTLINE_TWISTER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/HyperTwister.h b/src/openrct2/ride/coaster/meta/HyperTwister.h index d19f6c1df7..50948faa0d 100644 --- a/src/openrct2/ride/coaster/meta/HyperTwister.h +++ b/src/openrct2/ride/coaster/meta/HyperTwister.h @@ -31,8 +31,8 @@ constexpr const RideTypeDescriptor HyperTwisterRTD = SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_HYPER_TWISTER, STR_RIDE_DESCRIPTION_HYPER_TWISTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/Hypercoaster.h b/src/openrct2/ride/coaster/meta/Hypercoaster.h index 301bd83ed0..40582f8cad 100644 --- a/src/openrct2/ride/coaster/meta/Hypercoaster.h +++ b/src/openrct2/ride/coaster/meta/Hypercoaster.h @@ -30,8 +30,8 @@ constexpr const RideTypeDescriptor HypercoasterRTD = SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_HYPERCOASTER, STR_RIDE_DESCRIPTION_HYPERCOASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h b/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h index d67fbaa381..ee43777089 100644 --- a/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedHairpinCoaster.h @@ -27,8 +27,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 | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h b/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h index e8cb34424e..b3919f5ce8 100644 --- a/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedImpulseCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_POWERED_LAUNCH_PASSTROUGH) | (1ULL << RIDE_MODE_POWERED_LAUNCH)), - SET_FIELD(DefaultMode, RIDE_MODE_POWERED_LAUNCH_PASSTROUGH), + SET_FIELD(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough), SET_FIELD(OperatingSettings, { 10, 33, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_IMPULSE_COASTER, STR_RIDE_DESCRIPTION_INVERTED_IMPULSE_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h b/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h index e945d02f02..ebb1426f2a 100644 --- a/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/InvertedRollerCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_INVERTED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_INVERTED_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h b/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h index daa6dfa99e..34ef10926c 100644 --- a/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/JuniorRollerCoaster.h @@ -31,8 +31,8 @@ constexpr const RideTypeDescriptor JuniorRollerCoasterRTD = SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_HAS_LARGE_CURVES | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }), SET_FIELD(Naming, { STR_RIDE_NAME_JUNIOR_ROLLER_COASTER, STR_RIDE_DESCRIPTION_JUNIOR_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h b/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h index a456757f6e..ea88dc793f 100644 --- a/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LIMLaunchedRollerCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::PoweredLaunchBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::PoweredLaunchPasstrough), SET_FIELD(OperatingSettings, { 10, 31, 26, 18, 18, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LIM_LAUNCHED_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LIM_LAUNCHED_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h b/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h index 47673f8aa3..e1a71d2eeb 100644 --- a/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LayDownRollerCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LAY_DOWN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LAY_DOWN_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), @@ -65,8 +65,8 @@ constexpr const RideTypeDescriptor LayDownRollerCoasterAltRTD = SET_FIELD(TrackPaintFunction, nullptr), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_40, STR_RIDE_DESCRIPTION_UNKNOWN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h b/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h index 0b26b9724e..5fbe85b9ee 100644 --- a/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/LoopingRollerCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 26, 18, 18, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LOOPING_ROLLER_COASTER, STR_RIDE_DESCRIPTION_LOOPING_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/MineRide.h b/src/openrct2/ride/coaster/meta/MineRide.h index fe50416add..e8429e64ab 100644 --- a/src/openrct2/ride/coaster/meta/MineRide.h +++ b/src/openrct2/ride/coaster/meta/MineRide.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/MineTrainCoaster.h b/src/openrct2/ride/coaster/meta/MineTrainCoaster.h index e06b94aebd..29c9d7a3f0 100644 --- a/src/openrct2/ride/coaster/meta/MineTrainCoaster.h +++ b/src/openrct2/ride/coaster/meta/MineTrainCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h b/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h index 9672dba559..22f5e13588 100644 --- a/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/MiniRollerCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 1 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINI_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MINI_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h b/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h index 73da2b02dd..2d1a41e82e 100644 --- a/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h +++ b/src/openrct2/ride/coaster/meta/MiniSuspendedCoaster.h @@ -28,8 +28,8 @@ constexpr const RideTypeDescriptor MiniSuspendedCoasterRTD = 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_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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h b/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h index 52095edd6d..5e12b69f2a 100644 --- a/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/MultiDimensionRollerCoaster.h @@ -28,8 +28,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_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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MULTI_DIMENSION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_MULTI_DIMENSION_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), @@ -66,8 +66,8 @@ constexpr const RideTypeDescriptor MultiDimensionRollerCoasterAltRTD = SET_FIELD(TrackPaintFunction, nullptr), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAG_HAS_LARGE_CURVES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 25, 25, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_38, STR_RIDE_DESCRIPTION_UNKNOWN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h b/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h index 102b128483..ded5146426 100644 --- a/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h +++ b/src/openrct2/ride/coaster/meta/ReverseFreefallCoaster.h @@ -25,8 +25,8 @@ constexpr const RideTypeDescriptor ReverseFreefallCoasterRTD = SET_FIELD(StartTrackPiece, TRACK_ELEM_END_STATION), SET_FIELD(TrackPaintFunction, get_track_paint_function_reverse_freefall_rc), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_LIM_POWERED_LAUNCH)), - SET_FIELD(DefaultMode, RIDE_MODE_LIM_POWERED_LAUNCH), + SET_FIELD(RideModes, EnumsToFlags(RideMode::LimPoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::LimPoweredLaunch), SET_FIELD(OperatingSettings, { 7, 30, 30, 40, 40, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_REVERSE_FREEFALL_COASTER, STR_RIDE_DESCRIPTION_REVERSE_FREEFALL_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h b/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h index 58ba51edf0..632803e1d6 100644 --- a/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/ReverserRollerCoaster.h @@ -26,8 +26,8 @@ constexpr const RideTypeDescriptor ReverserRollerCoasterRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_reverser_rc), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h b/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h index e573421f81..dc5d0c00da 100644 --- a/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/SideFrictionRollerCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/SpinningWildMouse.h b/src/openrct2/ride/coaster/meta/SpinningWildMouse.h index a6ed188b68..370ef4f911 100644 --- a/src/openrct2/ride/coaster/meta/SpinningWildMouse.h +++ b/src/openrct2/ride/coaster/meta/SpinningWildMouse.h @@ -27,8 +27,8 @@ constexpr const RideTypeDescriptor SpinningWildMouseRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_wild_mouse), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_SPINNING_WILD_MOUSE_GROUP, STR_SPINNING_WILD_MOUSE_GROUP_DESC }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h b/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h index f0f0ae9e0c..e769c1ee35 100644 --- a/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/SpiralRollerCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 17, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SPIRAL_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h b/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h index 4e4b626824..6d68e8b007 100644 --- a/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/StandUpRollerCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 7, 27, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_STAND_UP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_STAND_UP_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/SteelWildMouse.h b/src/openrct2/ride/coaster/meta/SteelWildMouse.h index 47c856bb08..522306adb7 100644 --- a/src/openrct2/ride/coaster/meta/SteelWildMouse.h +++ b/src/openrct2/ride/coaster/meta/SteelWildMouse.h @@ -30,8 +30,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/Steeplechase.h b/src/openrct2/ride/coaster/meta/Steeplechase.h index 00835af9e4..65785558c4 100644 --- a/src/openrct2/ride/coaster/meta/Steeplechase.h +++ b/src/openrct2/ride/coaster/meta/Steeplechase.h @@ -27,8 +27,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 | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h b/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h index f35a73f8c1..5064a43a79 100644 --- a/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h +++ b/src/openrct2/ride/coaster/meta/SuspendedSwingingCoaster.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h index 571a7df118..bd94f2b293 100644 --- a/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/TwisterRollerCoaster.h @@ -35,8 +35,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 30, 17, 68, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_TWISTER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_TWISTER_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h index 13346da1a6..fd94036262 100644 --- a/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h +++ b/src/openrct2/ride/coaster/meta/VerticalDropCoaster.h @@ -27,8 +27,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 | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 10, 27, 26, 17, 68, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_VERTICAL_DROP_ROLLER_COASTER, STR_RIDE_DESCRIPTION_VERTICAL_DROP_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/VirginiaReel.h b/src/openrct2/ride/coaster/meta/VirginiaReel.h index 07050fad59..4d5b491f6b 100644 --- a/src/openrct2/ride/coaster/meta/VirginiaReel.h +++ b/src/openrct2/ride/coaster/meta/VirginiaReel.h @@ -26,8 +26,8 @@ constexpr const RideTypeDescriptor VirginiaReelRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_virginia_reel), SET_FIELD(Flags, RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/WaterCoaster.h b/src/openrct2/ride/coaster/meta/WaterCoaster.h index f11fd8881f..75ee782673 100644 --- a/src/openrct2/ride/coaster/meta/WaterCoaster.h +++ b/src/openrct2/ride/coaster/meta/WaterCoaster.h @@ -29,8 +29,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT_BLOCK_SECTIONED)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 17, 16, -1 }), SET_FIELD(Naming, { STR_RIDE_NAME_WATER_COASTER, STR_RIDE_DESCRIPTION_WATER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h index 67439675ac..6cc673cba2 100644 --- a/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h +++ b/src/openrct2/ride/coaster/meta/WoodenRollerCoaster.h @@ -27,8 +27,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 | 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), - 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 68, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_ROLLER_COASTER, STR_RIDE_DESCRIPTION_WOODEN_ROLLER_COASTER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/coaster/meta/WoodenWildMouse.h b/src/openrct2/ride/coaster/meta/WoodenWildMouse.h index 06e31ec1b3..5d73769ede 100644 --- a/src/openrct2/ride/coaster/meta/WoodenWildMouse.h +++ b/src/openrct2/ride/coaster/meta/WoodenWildMouse.h @@ -28,8 +28,8 @@ constexpr const RideTypeDescriptor WoodenWildMouseRTD = 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_PEEP_CHECK_GFORCES), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/CarRide.h b/src/openrct2/ride/gentle/meta/CarRide.h index 8abc6d36b2..cfc1191244 100644 --- a/src/openrct2/ride/gentle/meta/CarRide.h +++ b/src/openrct2/ride/gentle/meta/CarRide.h @@ -31,8 +31,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_MORE_VEHICLES_THAN_STATION_FITS | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/Circus.h b/src/openrct2/ride/gentle/meta/Circus.h index e732e59ce7..8cdf848223 100644 --- a/src/openrct2/ride/gentle/meta/Circus.h +++ b/src/openrct2/ride/gentle/meta/Circus.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CIRCUS_SHOW)), - SET_FIELD(DefaultMode, RIDE_MODE_CIRCUS_SHOW), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Circus)), + SET_FIELD(DefaultMode, RideMode::Circus), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CIRCUS, STR_RIDE_DESCRIPTION_CIRCUS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/CrookedHouse.h b/src/openrct2/ride/gentle/meta/CrookedHouse.h index 31728010b2..fc358d5a0f 100644 --- a/src/openrct2/ride/gentle/meta/CrookedHouse.h +++ b/src/openrct2/ride/gentle/meta/CrookedHouse.h @@ -28,8 +28,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_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CROOKED_HOUSE)), - SET_FIELD(DefaultMode, RIDE_MODE_CROOKED_HOUSE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::CrookedHouse)), + SET_FIELD(DefaultMode, RideMode::CrookedHouse), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/Dodgems.h b/src/openrct2/ride/gentle/meta/Dodgems.h index 461ded9977..82db9a64ea 100644 --- a/src/openrct2/ride/gentle/meta/Dodgems.h +++ b/src/openrct2/ride/gentle/meta/Dodgems.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_DODGEMS)), - SET_FIELD(DefaultMode, RIDE_MODE_DODGEMS), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Dodgems)), + SET_FIELD(DefaultMode, RideMode::Dodgems), SET_FIELD(OperatingSettings, { 20, 180, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_DODGEMS, STR_RIDE_DESCRIPTION_DODGEMS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/FerrisWheel.h b/src/openrct2/ride/gentle/meta/FerrisWheel.h index c99bc85298..538639dfde 100644 --- a/src/openrct2/ride/gentle/meta/FerrisWheel.h +++ b/src/openrct2/ride/gentle/meta/FerrisWheel.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_FORWARD_ROTATION) | (1ULL << RIDE_MODE_BACKWARD_ROTATION)), - SET_FIELD(DefaultMode, RIDE_MODE_FORWARD_ROTATION), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ForwardRotation, RideMode::BackwardRotation)), + SET_FIELD(DefaultMode, RideMode::ForwardRotation), SET_FIELD(OperatingSettings, { 1, 3, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_FERRIS_WHEEL, STR_RIDE_DESCRIPTION_FERRIS_WHEEL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/FlyingSaucers.h b/src/openrct2/ride/gentle/meta/FlyingSaucers.h index 3b1227f1ab..801e3a819f 100644 --- a/src/openrct2/ride/gentle/meta/FlyingSaucers.h +++ b/src/openrct2/ride/gentle/meta/FlyingSaucers.h @@ -29,8 +29,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_DODGEMS)), - SET_FIELD(DefaultMode, RIDE_MODE_DODGEMS), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Dodgems)), + SET_FIELD(DefaultMode, RideMode::Dodgems), SET_FIELD(OperatingSettings, { 20, 180, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_FLYING_SAUCERS, STR_RIDE_DESCRIPTION_FLYING_SAUCERS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/GhostTrain.h b/src/openrct2/ride/gentle/meta/GhostTrain.h index b22eca6fd3..06b7a029e3 100644 --- a/src/openrct2/ride/gentle/meta/GhostTrain.h +++ b/src/openrct2/ride/gentle/meta/GhostTrain.h @@ -30,8 +30,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/HauntedHouse.h b/src/openrct2/ride/gentle/meta/HauntedHouse.h index d4f6414d5f..8324d15279 100644 --- a/src/openrct2/ride/gentle/meta/HauntedHouse.h +++ b/src/openrct2/ride/gentle/meta/HauntedHouse.h @@ -28,8 +28,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_IN_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_HAUNTED_HOUSE)), - SET_FIELD(DefaultMode, RIDE_MODE_HAUNTED_HOUSE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::HauntedHouse)), + SET_FIELD(DefaultMode, RideMode::HauntedHouse), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/Maze.h b/src/openrct2/ride/gentle/meta/Maze.h index fae6dbbca1..c380717e26 100644 --- a/src/openrct2/ride/gentle/meta/Maze.h +++ b/src/openrct2/ride/gentle/meta/Maze.h @@ -26,8 +26,8 @@ constexpr const RideTypeDescriptor MazeRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_maze), SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_MAZE)), - SET_FIELD(DefaultMode, RIDE_MODE_MAZE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Maze)), + SET_FIELD(DefaultMode, RideMode::Maze), SET_FIELD(OperatingSettings, { 1, 64, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MAZE, STR_RIDE_DESCRIPTION_MAZE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/MerryGoRound.h b/src/openrct2/ride/gentle/meta/MerryGoRound.h index 0022e1cc0d..b14c1eda61 100644 --- a/src/openrct2/ride/gentle/meta/MerryGoRound.h +++ b/src/openrct2/ride/gentle/meta/MerryGoRound.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATION)), - SET_FIELD(DefaultMode, RIDE_MODE_ROTATION), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Rotation)), + SET_FIELD(DefaultMode, RideMode::Rotation), SET_FIELD(OperatingSettings, { 4, 25, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MERRY_GO_ROUND, STR_RIDE_DESCRIPTION_MERRY_GO_ROUND }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/MiniGolf.h b/src/openrct2/ride/gentle/meta/MiniGolf.h index 4bbb482a47..4e6041ac91 100644 --- a/src/openrct2/ride/gentle/meta/MiniGolf.h +++ b/src/openrct2/ride/gentle/meta/MiniGolf.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_PLAYER, RIDE_COMPONENT_TYPE_COURSE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/MiniHelicopters.h b/src/openrct2/ride/gentle/meta/MiniHelicopters.h index f3fcdcccd8..b6f8a2cd65 100644 --- a/src/openrct2/ride/gentle/meta/MiniHelicopters.h +++ b/src/openrct2/ride/gentle/meta/MiniHelicopters.h @@ -30,8 +30,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_MORE_VEHICLES_THAN_STATION_FITS | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/MonorailCycles.h b/src/openrct2/ride/gentle/meta/MonorailCycles.h index c4b1a9ebdf..846d783ad4 100644 --- a/src/openrct2/ride/gentle/meta/MonorailCycles.h +++ b/src/openrct2/ride/gentle/meta/MonorailCycles.h @@ -29,8 +29,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_SUPPORTS_MULTIPLE_TRACK_COLOUR | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/MonsterTrucks.h b/src/openrct2/ride/gentle/meta/MonsterTrucks.h index da6c6dbd04..681c1b4525 100644 --- a/src/openrct2/ride/gentle/meta/MonsterTrucks.h +++ b/src/openrct2/ride/gentle/meta/MonsterTrucks.h @@ -30,8 +30,8 @@ constexpr const RideTypeDescriptor MonsterTrucksRTD = 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_SLIGHTLY_INTERESTING_TO_LOOK_AT), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, (1ULL << static_cast(RideMode::ContinuousCircuit))), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MONSTER_TRUCKS, STR_RIDE_DESCRIPTION_MONSTER_TRUCKS_GROUP }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/ObservationTower.h b/src/openrct2/ride/gentle/meta/ObservationTower.h index d1f2d7f0d3..3fa258ef64 100644 --- a/src/openrct2/ride/gentle/meta/ObservationTower.h +++ b/src/openrct2/ride/gentle/meta/ObservationTower.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATING_LIFT)), - SET_FIELD(DefaultMode, RIDE_MODE_ROTATING_LIFT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::RotatingLift)), + SET_FIELD(DefaultMode, RideMode::RotatingLift), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/SpaceRings.h b/src/openrct2/ride/gentle/meta/SpaceRings.h index d35260aa0e..30fdfff9be 100644 --- a/src/openrct2/ride/gentle/meta/SpaceRings.h +++ b/src/openrct2/ride/gentle/meta/SpaceRings.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SPACE_RINGS)), - SET_FIELD(DefaultMode, RIDE_MODE_SPACE_RINGS), + SET_FIELD(RideModes, EnumsToFlags(RideMode::SpaceRings)), + SET_FIELD(DefaultMode, RideMode::SpaceRings), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_RING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/gentle/meta/SpiralSlide.h b/src/openrct2/ride/gentle/meta/SpiralSlide.h index f62b26b6de..fc53b92960 100644 --- a/src/openrct2/ride/gentle/meta/SpiralSlide.h +++ b/src/openrct2/ride/gentle/meta/SpiralSlide.h @@ -28,8 +28,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_FLAT_RIDE | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY), - SET_FIELD(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(RideModes, EnumsToFlags(RideMode::SingleRidePerAdmission, RideMode::UnlimitedRidesPerAdmission)), + SET_FIELD(DefaultMode, RideMode::SingleRidePerAdmission), SET_FIELD(OperatingSettings, { 1, 5, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SPIRAL_SLIDE, STR_RIDE_DESCRIPTION_SPIRAL_SLIDE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/CashMachine.h b/src/openrct2/ride/shops/meta/CashMachine.h index ce78e54135..9b0ff00b90 100644 --- a/src/openrct2/ride/shops/meta/CashMachine.h +++ b/src/openrct2/ride/shops/meta/CashMachine.h @@ -25,8 +25,8 @@ constexpr const RideTypeDescriptor CashMachineRTD = SET_FIELD(TrackPaintFunction, get_track_paint_function_shop), SET_FIELD(Flags, RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | RIDE_TYPE_FLAG_HAS_NO_TRACK | RIDE_TYPE_FLAG_IS_SHOP | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/DrinkStall.h b/src/openrct2/ride/shops/meta/DrinkStall.h index b8035b060f..0ad837cae8 100644 --- a/src/openrct2/ride/shops/meta/DrinkStall.h +++ b/src/openrct2/ride/shops/meta/DrinkStall.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/FirstAid.h b/src/openrct2/ride/shops/meta/FirstAid.h index 5676430cdb..041fa6be68 100644 --- a/src/openrct2/ride/shops/meta/FirstAid.h +++ b/src/openrct2/ride/shops/meta/FirstAid.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 8, 8, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_FIRST_AID, STR_RIDE_DESCRIPTION_FIRST_AID }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/FoodStall.h b/src/openrct2/ride/shops/meta/FoodStall.h index 0b952269e6..f3a5231f43 100644 --- a/src/openrct2/ride/shops/meta/FoodStall.h +++ b/src/openrct2/ride/shops/meta/FoodStall.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/InformationKiosk.h b/src/openrct2/ride/shops/meta/InformationKiosk.h index 56891991e4..6487e4fed4 100644 --- a/src/openrct2/ride/shops/meta/InformationKiosk.h +++ b/src/openrct2/ride/shops/meta/InformationKiosk.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/Shop.h b/src/openrct2/ride/shops/meta/Shop.h index cb85e1bbe5..dc7ffa1118 100644 --- a/src/openrct2/ride/shops/meta/Shop.h +++ b/src/openrct2/ride/shops/meta/Shop.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/shops/meta/Toilets.h b/src/openrct2/ride/shops/meta/Toilets.h index 6aacdb6e56..fe0e6273ba 100644 --- a/src/openrct2/ride/shops/meta/Toilets.h +++ b/src/openrct2/ride/shops/meta/Toilets.h @@ -26,8 +26,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHOP_STALL)), - SET_FIELD(DefaultMode, RIDE_MODE_SHOP_STALL), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ShopStall)), + SET_FIELD(DefaultMode, RideMode::ShopStall), SET_FIELD(OperatingSettings, { 4, 4, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_TOILETS, STR_RIDE_DESCRIPTION_TOILETS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/3DCinema.h b/src/openrct2/ride/thrill/meta/3DCinema.h index a01ef61ec7..00821da389 100644 --- a/src/openrct2/ride/thrill/meta/3DCinema.h +++ b/src/openrct2/ride/thrill/meta/3DCinema.h @@ -28,8 +28,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_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), - 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(RideModes, EnumsToFlags(RideMode::MouseTails3DFilm, RideMode::StormChasers3DFilm, RideMode::SpaceRaiders3DFilm)), + SET_FIELD(DefaultMode, RideMode::MouseTails3DFilm), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BUILDING, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/Enterprise.h b/src/openrct2/ride/thrill/meta/Enterprise.h index 00f89c2f0b..804ba34d64 100644 --- a/src/openrct2/ride/thrill/meta/Enterprise.h +++ b/src/openrct2/ride/thrill/meta/Enterprise.h @@ -28,8 +28,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_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(RideModes, EnumsToFlags(RideMode::Rotation)), + SET_FIELD(DefaultMode, RideMode::Rotation), SET_FIELD(OperatingSettings, { 10, 20, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_ENTERPRISE, STR_RIDE_DESCRIPTION_ENTERPRISE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_WHEEL, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/GoKarts.h b/src/openrct2/ride/thrill/meta/GoKarts.h index e63d5f45e7..12a1d2be0f 100644 --- a/src/openrct2/ride/thrill/meta/GoKarts.h +++ b/src/openrct2/ride/thrill/meta/GoKarts.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_RACE) | (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_RACE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Race, RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::Race), SET_FIELD(OperatingSettings, { 1, 10, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_GO_KARTS, STR_RIDE_DESCRIPTION_GO_KARTS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/LaunchedFreefall.h b/src/openrct2/ride/thrill/meta/LaunchedFreefall.h index dfe54963ad..31c5f38dcb 100644 --- a/src/openrct2/ride/thrill/meta/LaunchedFreefall.h +++ b/src/openrct2/ride/thrill/meta/LaunchedFreefall.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_UPWARD_LAUNCH) | (1ULL << RIDE_MODE_DOWNWARD_LAUNCH)), - SET_FIELD(DefaultMode, RIDE_MODE_UPWARD_LAUNCH), + SET_FIELD(RideModes, EnumsToFlags(RideMode::UpwardLaunch, RideMode::DownwardLaunch)), + SET_FIELD(DefaultMode, RideMode::UpwardLaunch), SET_FIELD(OperatingSettings, { 10, 40, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LAUNCHED_FREEFALL, STR_RIDE_DESCRIPTION_LAUNCHED_FREEFALL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/MagicCarpet.h b/src/openrct2/ride/thrill/meta/MagicCarpet.h index e89e2df6eb..3ad5fd79ec 100644 --- a/src/openrct2/ride/thrill/meta/MagicCarpet.h +++ b/src/openrct2/ride/thrill/meta/MagicCarpet.h @@ -29,8 +29,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)), - SET_FIELD(DefaultMode, RIDE_MODE_SWING), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)), + SET_FIELD(DefaultMode, RideMode::Swing), SET_FIELD(OperatingSettings, { 7, 15, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MAGIC_CARPET, STR_RIDE_DESCRIPTION_MAGIC_CARPET }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/MotionSimulator.h b/src/openrct2/ride/thrill/meta/MotionSimulator.h index 735e99c9aa..20d63948da 100644 --- a/src/openrct2/ride/thrill/meta/MotionSimulator.h +++ b/src/openrct2/ride/thrill/meta/MotionSimulator.h @@ -28,8 +28,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_SINGLE_SESSION | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT | 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(RideModes, EnumsToFlags(RideMode::FilmAvengingAviators, RideMode::FilmThrillRiders)), + SET_FIELD(DefaultMode, RideMode::FilmAvengingAviators), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/RotoDrop.h b/src/openrct2/ride/thrill/meta/RotoDrop.h index 1bb7a1be84..348726bedf 100644 --- a/src/openrct2/ride/thrill/meta/RotoDrop.h +++ b/src/openrct2/ride/thrill/meta/RotoDrop.h @@ -29,8 +29,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_FREEFALL_DROP)), - SET_FIELD(DefaultMode, RIDE_MODE_FREEFALL_DROP), + SET_FIELD(RideModes, EnumsToFlags(RideMode::FreefallDrop)), + SET_FIELD(DefaultMode, RideMode::FreefallDrop), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/SwingingInverterShip.h b/src/openrct2/ride/thrill/meta/SwingingInverterShip.h index a6619d8693..861db0df68 100644 --- a/src/openrct2/ride/thrill/meta/SwingingInverterShip.h +++ b/src/openrct2/ride/thrill/meta/SwingingInverterShip.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)), - SET_FIELD(DefaultMode, RIDE_MODE_SWING), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)), + SET_FIELD(DefaultMode, RideMode::Swing), SET_FIELD(OperatingSettings, { 7, 15, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SWINGING_INVERTER_SHIP, STR_RIDE_DESCRIPTION_SWINGING_INVERTER_SHIP }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/SwingingShip.h b/src/openrct2/ride/thrill/meta/SwingingShip.h index dfac085c8d..625ae249e5 100644 --- a/src/openrct2/ride/thrill/meta/SwingingShip.h +++ b/src/openrct2/ride/thrill/meta/SwingingShip.h @@ -29,8 +29,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SWING)), - SET_FIELD(DefaultMode, RIDE_MODE_SWING), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Swing)), + SET_FIELD(DefaultMode, RideMode::Swing), SET_FIELD(OperatingSettings, { 7, 25, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SWINGING_SHIP, STR_RIDE_DESCRIPTION_SWINGING_SHIP }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_SHIP, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/TopSpin.h b/src/openrct2/ride/thrill/meta/TopSpin.h index ad3d32993f..2260fd90bf 100644 --- a/src/openrct2/ride/thrill/meta/TopSpin.h +++ b/src/openrct2/ride/thrill/meta/TopSpin.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_BEGINNERS) | (1ULL << RIDE_MODE_INTENSE) | (1ULL << RIDE_MODE_BERSERK)), - SET_FIELD(DefaultMode, RIDE_MODE_BEGINNERS), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Beginners, RideMode::Intense, RideMode::Berserk)), + SET_FIELD(DefaultMode, RideMode::Beginners), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/thrill/meta/Twist.h b/src/openrct2/ride/thrill/meta/Twist.h index bc81fce3d5..4e5bf9539f 100644 --- a/src/openrct2/ride/thrill/meta/Twist.h +++ b/src/openrct2/ride/thrill/meta/Twist.h @@ -27,8 +27,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_ROTATION)), - SET_FIELD(DefaultMode, RIDE_MODE_ROTATION), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Rotation)), + SET_FIELD(DefaultMode, RideMode::Rotation), SET_FIELD(OperatingSettings, { 3, 6, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_TWIST, STR_RIDE_DESCRIPTION_TWIST }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STRUCTURE, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/transport/meta/Chairlift.h b/src/openrct2/ride/transport/meta/Chairlift.h index 0896b3b75d..d2bef9a6f4 100644 --- a/src/openrct2/ride/transport/meta/Chairlift.h +++ b/src/openrct2/ride/transport/meta/Chairlift.h @@ -29,8 +29,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_STATION_TO_STATION)), - SET_FIELD(DefaultMode, RIDE_MODE_STATION_TO_STATION), + SET_FIELD(RideModes, EnumsToFlags(RideMode::StationToStation)), + SET_FIELD(DefaultMode, RideMode::StationToStation), SET_FIELD(OperatingSettings, { 1, 4, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_CHAIRLIFT, STR_RIDE_DESCRIPTION_CHAIRLIFT }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CAR, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/transport/meta/Lift.h b/src/openrct2/ride/transport/meta/Lift.h index 1c3f9c3ced..58a59e94be 100644 --- a/src/openrct2/ride/transport/meta/Lift.h +++ b/src/openrct2/ride/transport/meta/Lift.h @@ -28,8 +28,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_SHUTTLE)), - SET_FIELD(DefaultMode, RIDE_MODE_SHUTTLE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::Shuttle)), + SET_FIELD(DefaultMode, RideMode::Shuttle), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_CABIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/transport/meta/MiniatureRailway.h b/src/openrct2/ride/transport/meta/MiniatureRailway.h index 359cee6af0..3d1b5955f9 100644 --- a/src/openrct2/ride/transport/meta/MiniatureRailway.h +++ b/src/openrct2/ride/transport/meta/MiniatureRailway.h @@ -30,8 +30,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_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/transport/meta/Monorail.h b/src/openrct2/ride/transport/meta/Monorail.h index 0e07756858..c567b28f8d 100644 --- a/src/openrct2/ride/transport/meta/Monorail.h +++ b/src/openrct2/ride/transport/meta/Monorail.h @@ -30,8 +30,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT) | (1ULL << RIDE_MODE_SHUTTLE)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/transport/meta/SuspendedMonorail.h b/src/openrct2/ride/transport/meta/SuspendedMonorail.h index d80a442452..05ee6bcc4f 100644 --- a/src/openrct2/ride/transport/meta/SuspendedMonorail.h +++ b/src/openrct2/ride/transport/meta/SuspendedMonorail.h @@ -31,8 +31,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_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_TRAIN, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/BoatHire.h b/src/openrct2/ride/water/meta/BoatHire.h index b3f2247a6e..1561b14b22 100644 --- a/src/openrct2/ride/water/meta/BoatHire.h +++ b/src/openrct2/ride/water/meta/BoatHire.h @@ -27,8 +27,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 | 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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_BOAT_HIRE)), - SET_FIELD(DefaultMode, RIDE_MODE_BOAT_HIRE), + SET_FIELD(RideModes, EnumsToFlags(RideMode::BoatHire)), + SET_FIELD(DefaultMode, RideMode::BoatHire), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }), diff --git a/src/openrct2/ride/water/meta/DinghySlide.h b/src/openrct2/ride/water/meta/DinghySlide.h index 12e1a381d5..ff5e296397 100644 --- a/src/openrct2/ride/water/meta/DinghySlide.h +++ b/src/openrct2/ride/water/meta/DinghySlide.h @@ -39,8 +39,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/LogFlume.h b/src/openrct2/ride/water/meta/LogFlume.h index bb642a0c6e..f616614e80 100644 --- a/src/openrct2/ride/water/meta/LogFlume.h +++ b/src/openrct2/ride/water/meta/LogFlume.h @@ -30,8 +30,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/RiverRafts.h b/src/openrct2/ride/water/meta/RiverRafts.h index c827874682..6e538f2143 100644 --- a/src/openrct2/ride/water/meta/RiverRafts.h +++ b/src/openrct2/ride/water/meta/RiverRafts.h @@ -30,8 +30,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/RiverRapids.h b/src/openrct2/ride/water/meta/RiverRapids.h index 969f2278a6..e109504314 100644 --- a/src/openrct2/ride/water/meta/RiverRapids.h +++ b/src/openrct2/ride/water/meta/RiverRapids.h @@ -31,8 +31,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/SplashBoats.h b/src/openrct2/ride/water/meta/SplashBoats.h index e3ce545e91..3265d84b32 100644 --- a/src/openrct2/ride/water/meta/SplashBoats.h +++ b/src/openrct2/ride/water/meta/SplashBoats.h @@ -30,8 +30,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_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), - SET_FIELD(RideModes, (1ULL << RIDE_MODE_CONTINUOUS_CIRCUIT)), - SET_FIELD(DefaultMode, RIDE_MODE_CONTINUOUS_CIRCUIT), + SET_FIELD(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_STATION }), diff --git a/src/openrct2/ride/water/meta/SubmarineRide.h b/src/openrct2/ride/water/meta/SubmarineRide.h index c1e2b22f82..59add36154 100644 --- a/src/openrct2/ride/water/meta/SubmarineRide.h +++ b/src/openrct2/ride/water/meta/SubmarineRide.h @@ -29,8 +29,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_ALLOW_MUSIC | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | 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(RideModes, EnumsToFlags(RideMode::ContinuousCircuit)), + SET_FIELD(DefaultMode, RideMode::ContinuousCircuit), SET_FIELD(OperatingSettings, { 0, 0, 0, 0, 0, 0 }), SET_FIELD(Naming, { STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE }), SET_FIELD(NameConvention, { RIDE_COMPONENT_TYPE_BOAT, RIDE_COMPONENT_TYPE_TRACK, RIDE_COMPONENT_TYPE_DOCKING_PLATFORM }), diff --git a/src/openrct2/scripting/ScRide.hpp b/src/openrct2/scripting/ScRide.hpp index 392f65c946..8f0838bb5f 100644 --- a/src/openrct2/scripting/ScRide.hpp +++ b/src/openrct2/scripting/ScRide.hpp @@ -283,7 +283,7 @@ namespace OpenRCT2::Scripting uint8_t mode_get() const { auto ride = GetRide(); - return ride != nullptr ? ride->mode : 0; + return ride != nullptr ? static_cast(ride->mode) : 0; } void mode_set(uint8_t value) @@ -292,7 +292,7 @@ namespace OpenRCT2::Scripting auto ride = GetRide(); if (ride != nullptr) { - ride->mode = value; + ride->mode = static_cast(value); } } diff --git a/src/openrct2/util/Util.h b/src/openrct2/util/Util.h index 8f91d86b16..38822bf769 100644 --- a/src/openrct2/util/Util.h +++ b/src/openrct2/util/Util.h @@ -15,6 +15,7 @@ #include #include #include +#include #include int32_t squaredmetres_to_squaredfeet(int32_t squaredMetres); @@ -69,4 +70,15 @@ uint8_t soft_light(uint8_t a, uint8_t b); size_t strcatftime(char* buffer, size_t bufferSize, const char* format, const struct tm* tp); +template[[nodiscard]] constexpr uint64_t EnumToFlag(T v) +{ + static_assert(std::is_enum_v); + return 1ULL << static_cast>(v); +} + +template[[nodiscard]] constexpr uint64_t EnumsToFlags(T... types) +{ + return (EnumToFlag(types) | ...); +} + #endif