From 47800cddcf538f74e47d37ec809f30f022f0d158 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek <1478678+Gymnasiast@users.noreply.github.com> Date: Tue, 13 Aug 2024 22:20:25 +0200 Subject: [PATCH] Change RTD flags to a strong enum --- src/openrct2-ui/ride/Construction.cpp | 2 +- .../windows/EditorInventionsList.cpp | 4 +- src/openrct2-ui/windows/GuestList.cpp | 2 +- src/openrct2-ui/windows/InstallTrack.cpp | 6 +- src/openrct2-ui/windows/MazeConstruction.cpp | 2 +- src/openrct2-ui/windows/NewCampaign.cpp | 17 +- src/openrct2-ui/windows/NewRide.cpp | 10 +- src/openrct2-ui/windows/Research.cpp | 4 +- src/openrct2-ui/windows/Ride.cpp | 99 ++++---- src/openrct2-ui/windows/RideConstruction.cpp | 32 +-- src/openrct2-ui/windows/TrackDesignPlace.cpp | 2 +- src/openrct2-ui/windows/TrackList.cpp | 10 +- src/openrct2/EditorObjectSelectionSession.cpp | 4 +- src/openrct2/actions/RideCreateAction.cpp | 10 +- src/openrct2/actions/RideSetPriceAction.cpp | 4 +- src/openrct2/actions/RideSetSettingAction.cpp | 2 +- src/openrct2/actions/RideSetVehicleAction.cpp | 6 +- src/openrct2/actions/TrackPlaceAction.cpp | 38 ++-- src/openrct2/actions/TrackRemoveAction.cpp | 2 +- src/openrct2/actions/WallPlaceAction.cpp | 4 +- src/openrct2/entity/Guest.cpp | 81 ++++--- src/openrct2/entity/Peep.cpp | 17 +- src/openrct2/entity/Staff.cpp | 12 +- src/openrct2/interface/Viewport.cpp | 2 +- src/openrct2/management/Award.cpp | 10 +- src/openrct2/management/Research.cpp | 6 +- src/openrct2/object/RideObject.cpp | 2 +- src/openrct2/peep/GuestPathfinding.cpp | 4 +- src/openrct2/rct1/S4Importer.cpp | 4 +- src/openrct2/rct1/T4Importer.cpp | 2 +- src/openrct2/rct1/Tables.cpp | 2 +- src/openrct2/rct2/RCT2.cpp | 2 +- src/openrct2/rct2/S6Importer.cpp | 10 +- src/openrct2/rct2/T6Exporter.cpp | 2 +- src/openrct2/rct2/T6Importer.cpp | 2 +- src/openrct2/ride/Ride.cpp | 62 ++--- src/openrct2/ride/RideConstruction.cpp | 30 +-- src/openrct2/ride/RideData.cpp | 4 +- src/openrct2/ride/RideData.h | 214 ++++++++++-------- src/openrct2/ride/RideRatings.cpp | 12 +- src/openrct2/ride/Track.cpp | 8 +- src/openrct2/ride/TrackDesign.cpp | 10 +- src/openrct2/ride/TrackDesignRepository.cpp | 4 +- src/openrct2/ride/TrackPaint.cpp | 7 +- src/openrct2/ride/Vehicle.cpp | 32 +-- .../rtd/coaster/AirPoweredVerticalCoaster.h | 2 +- src/openrct2/ride/rtd/coaster/AlpineCoaster.h | 12 +- .../ride/rtd/coaster/BobsleighCoaster.h | 6 +- .../rtd/coaster/ClassicMiniRollerCoaster.h | 7 +- .../rtd/coaster/ClassicStandUpRollerCoaster.h | 7 +- .../rtd/coaster/ClassicWoodenRollerCoaster.h | 7 +- .../ride/rtd/coaster/CompactInvertedCoaster.h | 6 +- .../ride/rtd/coaster/CorkscrewRollerCoaster.h | 7 +- .../ride/rtd/coaster/FlyingRollerCoaster.h | 11 +- src/openrct2/ride/rtd/coaster/GigaCoaster.h | 7 +- .../rtd/coaster/HeartlineTwisterCoaster.h | 6 +- src/openrct2/ride/rtd/coaster/HybridCoaster.h | 7 +- src/openrct2/ride/rtd/coaster/HyperTwister.h | 7 +- src/openrct2/ride/rtd/coaster/Hypercoaster.h | 7 +- .../ride/rtd/coaster/InvertedHairpinCoaster.h | 6 +- .../ride/rtd/coaster/InvertedImpulseCoaster.h | 7 +- .../ride/rtd/coaster/InvertedRollerCoaster.h | 7 +- .../ride/rtd/coaster/JuniorRollerCoaster.h | 7 +- .../rtd/coaster/LIMLaunchedRollerCoaster.h | 7 +- .../ride/rtd/coaster/LayDownRollerCoaster.h | 10 +- .../ride/rtd/coaster/LoopingRollerCoaster.h | 7 +- src/openrct2/ride/rtd/coaster/MineRide.h | 7 +- .../ride/rtd/coaster/MineTrainCoaster.h | 7 +- .../ride/rtd/coaster/MiniRollerCoaster.h | 7 +- .../ride/rtd/coaster/MiniSuspendedCoaster.h | 7 +- .../rtd/coaster/MultiDimensionRollerCoaster.h | 13 +- .../ride/rtd/coaster/ReverseFreefallCoaster.h | 3 +- .../ride/rtd/coaster/ReverserRollerCoaster.h | 5 +- .../rtd/coaster/SideFrictionRollerCoaster.h | 7 +- .../rtd/coaster/SingleRailRollerCoaster.h | 7 +- .../ride/rtd/coaster/SpinningWildMouse.h | 4 +- .../ride/rtd/coaster/SpiralRollerCoaster.h | 6 +- .../ride/rtd/coaster/StandUpRollerCoaster.h | 7 +- .../ride/rtd/coaster/SteelWildMouse.h | 6 +- src/openrct2/ride/rtd/coaster/Steeplechase.h | 5 +- .../rtd/coaster/SuspendedSwingingCoaster.h | 5 +- .../ride/rtd/coaster/TwisterRollerCoaster.h | 7 +- .../ride/rtd/coaster/VerticalDropCoaster.h | 5 +- src/openrct2/ride/rtd/coaster/VirginiaReel.h | 4 +- src/openrct2/ride/rtd/coaster/WaterCoaster.h | 5 +- .../ride/rtd/coaster/WoodenRollerCoaster.h | 7 +- .../ride/rtd/coaster/WoodenWildMouse.h | 7 +- src/openrct2/ride/rtd/gentle/CarRide.h | 12 +- src/openrct2/ride/rtd/gentle/Circus.h | 10 +- src/openrct2/ride/rtd/gentle/CrookedHouse.h | 10 +- src/openrct2/ride/rtd/gentle/Dodgems.h | 10 +- src/openrct2/ride/rtd/gentle/FerrisWheel.h | 10 +- src/openrct2/ride/rtd/gentle/FlyingSaucers.h | 10 +- src/openrct2/ride/rtd/gentle/GhostTrain.h | 14 +- src/openrct2/ride/rtd/gentle/HauntedHouse.h | 10 +- src/openrct2/ride/rtd/gentle/Maze.h | 6 +- src/openrct2/ride/rtd/gentle/MerryGoRound.h | 10 +- src/openrct2/ride/rtd/gentle/MiniGolf.h | 6 +- .../ride/rtd/gentle/MiniHelicopters.h | 12 +- src/openrct2/ride/rtd/gentle/MonorailCycles.h | 10 +- src/openrct2/ride/rtd/gentle/MonsterTrucks.h | 12 +- .../ride/rtd/gentle/ObservationTower.h | 8 +- src/openrct2/ride/rtd/gentle/SpaceRings.h | 8 +- src/openrct2/ride/rtd/gentle/SpiralSlide.h | 10 +- src/openrct2/ride/rtd/shops/CashMachine.h | 6 +- src/openrct2/ride/rtd/shops/DrinkStall.h | 8 +- src/openrct2/ride/rtd/shops/FirstAid.h | 8 +- src/openrct2/ride/rtd/shops/FoodStall.h | 8 +- .../ride/rtd/shops/InformationKiosk.h | 8 +- src/openrct2/ride/rtd/shops/Shop.h | 8 +- src/openrct2/ride/rtd/shops/Toilets.h | 8 +- src/openrct2/ride/rtd/thrill/3DCinema.h | 10 +- src/openrct2/ride/rtd/thrill/Enterprise.h | 10 +- src/openrct2/ride/rtd/thrill/GoKarts.h | 6 +- .../ride/rtd/thrill/LaunchedFreefall.h | 8 +- src/openrct2/ride/rtd/thrill/MagicCarpet.h | 10 +- .../ride/rtd/thrill/MotionSimulator.h | 10 +- src/openrct2/ride/rtd/thrill/RotoDrop.h | 10 +- .../ride/rtd/thrill/SwingingInverterShip.h | 10 +- src/openrct2/ride/rtd/thrill/SwingingShip.h | 12 +- src/openrct2/ride/rtd/thrill/TopSpin.h | 10 +- src/openrct2/ride/rtd/thrill/Twist.h | 8 +- src/openrct2/ride/rtd/transport/Chairlift.h | 10 +- src/openrct2/ride/rtd/transport/Lift.h | 8 +- .../ride/rtd/transport/MiniatureRailway.h | 12 +- src/openrct2/ride/rtd/transport/Monorail.h | 12 +- .../ride/rtd/transport/SuspendedMonorail.h | 14 +- src/openrct2/ride/rtd/water/BoatHire.h | 6 +- src/openrct2/ride/rtd/water/DinghySlide.h | 14 +- src/openrct2/ride/rtd/water/LogFlume.h | 12 +- src/openrct2/ride/rtd/water/RiverRafts.h | 12 +- src/openrct2/ride/rtd/water/RiverRapids.h | 14 +- src/openrct2/ride/rtd/water/SplashBoats.h | 12 +- src/openrct2/ride/rtd/water/SubmarineRide.h | 10 +- .../bindings/world/ScTileElement.cpp | 16 +- src/openrct2/windows/_legacy.cpp | 4 +- src/openrct2/world/Banner.cpp | 4 +- src/openrct2/world/ConstructionClearance.cpp | 2 +- src/openrct2/world/Footpath.cpp | 10 +- src/openrct2/world/Park.cpp | 4 +- 140 files changed, 795 insertions(+), 789 deletions(-) diff --git a/src/openrct2-ui/ride/Construction.cpp b/src/openrct2-ui/ride/Construction.cpp index 074033bb80..0248d0233a 100644 --- a/src/openrct2-ui/ride/Construction.cpp +++ b/src/openrct2-ui/ride/Construction.cpp @@ -80,7 +80,7 @@ namespace OpenRCT2 // Additional tower bases can only be built if the ride allows for it (elevator) if (trackType == TrackElemType::TowerBase - && !currentRide.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_ALLOW_EXTRA_TOWER_BASES)) + && !currentRide.GetRideTypeDescriptor().HasFlag(RtdFlag::allowExtraTowerBases)) entryIsDisabled = true; // Check if a previous element exists, to collate entries if possible diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index eca971b3fd..d4e1980d51 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -107,7 +107,7 @@ static Widget _inventionListDragWidgets[] = { int16_t columnSplitOffset = width / 2; if (researchItem.type == Research::EntryType::Ride - && !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + && !GetRideTypeDescriptor(researchItem.baseRideType).HasFlag(RtdFlag::listVehiclesSeparately)) { const StringId rideTypeName = GetRideNaming( researchItem.baseRideType, *GetRideEntryByIndex(researchItem.entryIndex)) @@ -419,7 +419,7 @@ static Widget _inventionListDragWidgets[] = { auto ft = Formatter(); if (researchItem->type == Research::EntryType::Ride - && !GetRideTypeDescriptor(researchItem->baseRideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + && !GetRideTypeDescriptor(researchItem->baseRideType).HasFlag(RtdFlag::listVehiclesSeparately)) { drawString = STR_WINDOW_COLOUR_2_STRINGID_STRINGID; StringId rideTypeName = GetRideNaming( diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index f641334688..e16918e0ca 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -191,7 +191,7 @@ static Widget window_guest_list_widgets[] = { if (guestRide != nullptr) { ft.Add( - guestRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE) ? STR_IN_RIDE : STR_ON_RIDE); + guestRide->GetRideTypeDescriptor().HasFlag(RtdFlag::describeAsInside) ? STR_IN_RIDE : STR_ON_RIDE); guestRide->FormatNameTo(ft); _selectedFilter = GuestFilterType::Guests; diff --git a/src/openrct2-ui/windows/InstallTrack.cpp b/src/openrct2-ui/windows/InstallTrack.cpp index e560d188e9..7888aa1522 100644 --- a/src/openrct2-ui/windows/InstallTrack.cpp +++ b/src/openrct2-ui/windows/InstallTrack.cpp @@ -239,7 +239,7 @@ static Widget window_install_track_widgets[] = { } const auto& rtd = GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) { if (td.trackAndVehicle.rtdIndex == RIDE_TYPE_MINI_GOLF) { @@ -277,7 +277,7 @@ static Widget window_install_track_widgets[] = { screenPos.y += kListRowHeight; } - if (GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasGForces)) { // Maximum positive vertical Gs { @@ -313,7 +313,7 @@ static Widget window_install_track_widgets[] = { } } - if (GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_DROPS)) + if (GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasDrops)) { auto ft = Formatter(); ft.Add(td.statistics.drops); diff --git a/src/openrct2-ui/windows/MazeConstruction.cpp b/src/openrct2-ui/windows/MazeConstruction.cpp index f0878c67d0..b07b7c6358 100644 --- a/src/openrct2-ui/windows/MazeConstruction.cpp +++ b/src/openrct2-ui/windows/MazeConstruction.cpp @@ -368,7 +368,7 @@ static Widget window_maze_construction_widgets[] = { if (currentRide != nullptr && RideAreAllPossibleEntrancesAndExitsBuilt(*currentRide).Successful) { ToolCancel(); - if (!currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) WindowCloseByClass(WindowClass::RideConstruction); } else diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index bd7aa0b38c..66e468c11d 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -143,12 +143,17 @@ static Widget window_new_campaign_widgets[] = { { if (curRide.status == RideStatus::Open) { - if (!curRide.GetRideTypeDescriptor().HasFlag( - RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_SELLS_FOOD | RIDE_TYPE_FLAG_SELLS_DRINKS - | RIDE_TYPE_FLAG_IS_TOILET)) - { - RideList.push_back(curRide.id); - } + const auto& rtd = curRide.GetRideTypeDescriptor(); + if (rtd.HasFlag(RtdFlag::isShopOrFacility)) + continue; + if (rtd.HasFlag(RtdFlag::sellsFood)) + continue; + if (rtd.HasFlag(RtdFlag::sellsDrinks)) + continue; + if (rtd.HasFlag(RtdFlag::isToilet)) + continue; + + RideList.push_back(curRide.id); } } diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 9a2650c54d..69d7fcd4eb 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -588,7 +588,7 @@ static Widget window_new_ride_widgets[] = { if (item.Type < 0x80) { - if (GetRideTypeDescriptor(item.Type).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (GetRideTypeDescriptor(item.Type).HasFlag(RtdFlag::listVehiclesSeparately)) { entryName = GetRideEntryName(item.EntryIndex); } @@ -603,7 +603,7 @@ static Widget window_new_ride_widgets[] = { void UpdateVehicleAvailability(ObjectEntryIndex rideType) { _vehicleAvailability.clear(); - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately)) { return; } @@ -686,7 +686,7 @@ static Widget window_new_ride_widgets[] = { // Skip if the vehicle isn't the preferred vehicle for this generic track type if (!Config::Get().interface.ListRideVehiclesSeparately - && !GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY) + && !GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately) && highestVehiclePriority > rideEntry->BuildMenuPriority) { continue; @@ -701,7 +701,7 @@ static Widget window_new_ride_widgets[] = { // Determines how and where to draw a button for this ride type/vehicle. if (Config::Get().interface.ListRideVehiclesSeparately - || GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + || GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately)) { // Separate, draw apart allowDrawingOverLastButton = false; @@ -965,7 +965,7 @@ static Widget window_new_ride_widgets[] = { // StringId stringId = STR_NEW_RIDE_COST; - if (GetRideTypeDescriptor(item.Type).HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (GetRideTypeDescriptor(item.Type).HasFlag(RtdFlag::hasTrack)) stringId = STR_NEW_RIDE_COST_FROM; ft = Formatter(); diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index 0f18964fb2..2ad8fe33e0 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -399,7 +399,7 @@ static Widget *window_research_page_widgets[] = { else if (gameState.ResearchNextItem->type == Research::EntryType::Ride) { const auto& rtd = GetRideTypeDescriptor(gameState.ResearchNextItem->baseRideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately)) { ft.Add(gameState.ResearchNextItem->GetName()); } @@ -459,7 +459,7 @@ static Widget *window_research_page_widgets[] = { { lastDevelopmentFormat = STR_RESEARCH_RIDE_LABEL; const auto& rtd = GetRideTypeDescriptor(gameState.ResearchLastItem->baseRideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately)) { ft.Add(gameState.ResearchLastItem->GetName()); } diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index ae5435f85d..554decfc4f 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -1204,7 +1204,7 @@ static_assert(std::size(RatingNames) == 6); } // For any suspended rides, move image higher in the vehicle tab on the rides window - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SUSPENDED)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isSuspended)) { screenCoords.y /= 4; } @@ -1270,31 +1270,31 @@ static_assert(std::size(RatingNames) == 6); const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_HAS_DATA_LOGGING)) + if (!rtd.HasFlag(RtdFlag::hasDataLogging)) disabledTabs |= (1uLL << WIDX_TAB_8); // 0x800 if (ride->type == RIDE_TYPE_MINI_GOLF) disabledTabs |= (1uLL << WIDX_TAB_2 | 1uLL << WIDX_TAB_3 | 1uLL << WIDX_TAB_4); // 0xE0 - if (rtd.HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (rtd.HasFlag(RtdFlag::noVehicles)) disabledTabs |= (1uLL << WIDX_TAB_2); // 0x20 - if (!rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN) && !rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL) - && !rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS) && !rtd.HasFlag(RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS) - && !rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT)) + if (!rtd.HasFlag(RtdFlag::hasTrackColourMain) && !rtd.HasFlag(RtdFlag::hasTrackColourAdditional) + && !rtd.HasFlag(RtdFlag::hasTrackColourSupports) && !rtd.HasFlag(RtdFlag::hasVehicleColours) + && !rtd.HasFlag(RtdFlag::hasEntranceAndExit)) { disabledTabs |= (1uLL << WIDX_TAB_5); // 0x100 } - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (rtd.HasFlag(RtdFlag::isShopOrFacility)) disabledTabs |= (1uLL << WIDX_TAB_3 | 1uLL << WIDX_TAB_4 | 1uLL << WIDX_TAB_7); // 0x4C0 - if (!rtd.HasFlag(RIDE_TYPE_FLAG_ALLOW_MUSIC)) + if (!rtd.HasFlag(RtdFlag::allowMusic)) { disabledTabs |= (1uLL << WIDX_TAB_6); // 0x200 } - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE) || rtd.HasFlag(RIDE_TYPE_FLAG_IS_FIRST_AID) + if (rtd.HasFlag(RtdFlag::isCashMachine) || rtd.HasFlag(RtdFlag::isFirstAid) || (GetGameState().Park.Flags & PARK_FLAGS_NO_MONEY) != 0) disabledTabs |= (1uLL << WIDX_TAB_9); // 0x1000 @@ -1667,7 +1667,7 @@ static_assert(std::size(RatingNames) == 6); const auto& rtd = ride->GetRideTypeDescriptor(); int32_t numItems = 1; - if (!rtd.HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (!rtd.HasFlag(RtdFlag::noVehicles)) { numItems += ride->num_stations; numItems += ride->NumTrains; @@ -1879,8 +1879,7 @@ static_assert(std::size(RatingNames) == 6); WindowDropdownShowText( { windowPos.x + widget->left, windowPos.y + widget->top }, widget->height() + 1, colours[1], 0, 2); gDropdownDefaultIndex = 0; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK) || _viewIndex == 0 - || _viewIndex > ride->NumTrains) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack) || _viewIndex == 0 || _viewIndex > ride->NumTrains) { // Disable if we're a flat ride, 'overall view' is selected or a station is selected Dropdown::SetDisabled(1, true); @@ -1921,9 +1920,7 @@ static_assert(std::size(RatingNames) == 6); const auto& rtd = ride.GetRideTypeDescriptor(); if (GetGameState().Cheats.ShowVehiclesFromOtherTrackTypes - && !( - rtd.HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE) || rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE) - || ride.type == RIDE_TYPE_MINI_GOLF)) + && !(rtd.HasFlag(RtdFlag::isFlatRide) || rtd.HasFlag(RtdFlag::isMaze) || ride.type == RIDE_TYPE_MINI_GOLF)) { selectionShouldBeExpanded = true; rideTypeIterator = 0; @@ -1947,10 +1944,10 @@ static_assert(std::size(RatingNames) == 6); for (; rideTypeIterator <= rideTypeIteratorMax; rideTypeIterator++) { const auto& rtdIterator = GetRideTypeDescriptor(rideTypeIterator); - if (selectionShouldBeExpanded && rtdIterator.HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (selectionShouldBeExpanded && rtdIterator.HasFlag(RtdFlag::isFlatRide)) continue; if (selectionShouldBeExpanded - && (rtdIterator.HasFlag(RIDE_TYPE_FLAG_IS_MAZE) || rideTypeIterator == RIDE_TYPE_MINI_GOLF)) + && (rtdIterator.HasFlag(RtdFlag::isMaze) || rideTypeIterator == RIDE_TYPE_MINI_GOLF)) continue; auto& rideEntries = objManager.GetAllRideEntries(rideTypeIterator); @@ -2418,7 +2415,7 @@ static_assert(std::size(RatingNames) == 6); return STR_EMPTY; auto stringId = VehicleStatusNames[EnumValue(vehicle->status)]; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SINGLE_SESSION) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::singleSession) && vehicle->status <= Vehicle::Status::UnloadingPassengers) { stringId = SingleSessionVehicleStatusNames[EnumValue(vehicle->status)]; @@ -2746,9 +2743,9 @@ static_assert(std::size(RatingNames) == 6); widgets[WIDX_VEHICLE_CARS_PER_TRAIN_DECREASE].type = WindowWidgetType::Empty; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::allowReversedTrains) || (GetGameState().Cheats.DisableTrainLengthLimit - && !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE))) + && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide))) { widgets[WIDX_VEHICLE_REVERSED_TRAINS_CHECKBOX].type = WindowWidgetType::Checkbox; if (ride->HasLifecycleFlag(RIDE_LIFECYCLE_REVERSED_TRAINS)) @@ -2963,7 +2960,7 @@ static_assert(std::size(RatingNames) == 6); y -= (carEntry.spacing / 2) / 17432; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_LAYERED_VEHICLE_PREVIEW)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::layeredVehiclePreview)) { VehicleDrawInfo tmp = *(nextSpriteToDraw - 1); *(nextSpriteToDraw - 1) = *(nextSpriteToDraw - 2); @@ -3409,7 +3406,7 @@ static_assert(std::size(RatingNames) == 6); // Sometimes, only one of the alternatives support lift hill pieces. Make sure to check both. const auto& rtd = ride->GetRideTypeDescriptor(); - bool hasAlternativeType = rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE); + bool hasAlternativeType = rtd.HasFlag(RtdFlag::hasInvertedVariant); if (rtd.TrackPaintFunctions.Regular.SupportsTrackGroup(TrackGroup::liftHill) || (hasAlternativeType && rtd.InvertedTrackPaintFunctions.Regular.SupportsTrackGroup(TrackGroup::liftHill))) { @@ -3449,7 +3446,7 @@ static_assert(std::size(RatingNames) == 6); } // Leave if another vehicle arrives at station - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation) && ride->NumTrains > 1 && !ride->IsBlockSectioned()) { widgets[WIDX_LEAVE_WHEN_ANOTHER_ARRIVES_CHECKBOX].type = WindowWidgetType::Checkbox; @@ -3465,7 +3462,7 @@ static_assert(std::size(RatingNames) == 6); } // Synchronise with adjacent stations - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::canSynchroniseWithAdjacentStations)) { widgets[WIDX_SYNCHRONISE_WITH_ADJACENT_STATIONS_CHECKBOX].type = WindowWidgetType::Checkbox; widgets[WIDX_SYNCHRONISE_WITH_ADJACENT_STATIONS_CHECKBOX].text = STR_SYNCHRONISE_WITH_ADJACENT_STATIONS; @@ -3481,7 +3478,7 @@ static_assert(std::size(RatingNames) == 6); // Waiting widgets[WIDX_LOAD].text = VehicleLoadNames[(ride->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD_MASK)]; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLoadOptions)) { widgets[WIDX_LOAD_CHECKBOX].type = WindowWidgetType::Checkbox; widgets[WIDX_LOAD].type = WindowWidgetType::DropdownMenu; @@ -3588,7 +3585,7 @@ static_assert(std::size(RatingNames) == 6); format = STR_MAX_PEOPLE_ON_RIDE_VALUE; caption = STR_MAX_PEOPLE_ON_RIDE; tooltip = STR_MAX_PEOPLE_ON_RIDE_TIP; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) format = 0; break; } @@ -4085,7 +4082,7 @@ static_assert(std::size(RatingNames) == 6); { // Get station flags (shops don't have them) auto stationObjFlags = 0; - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { auto stationObj = ride.GetStationObject(); if (stationObj != nullptr) @@ -4098,12 +4095,12 @@ static_assert(std::size(RatingNames) == 6); { case 0: return (stationObjFlags & STATION_OBJECT_FLAGS::HAS_PRIMARY_COLOUR) - || ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN); + || ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrackColourMain); case 1: return (stationObjFlags & STATION_OBJECT_FLAGS::HAS_SECONDARY_COLOUR) - || ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL); + || ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrackColourAdditional); case 2: - return ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS); + return ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrackColourSupports); default: return 0; } @@ -4449,7 +4446,7 @@ static_assert(std::size(RatingNames) == 6); // Maze style const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { widgets[WIDX_MAZE_STYLE].type = WindowWidgetType::DropdownMenu; widgets[WIDX_MAZE_STYLE_DROPDOWN].type = WindowWidgetType::Button; @@ -4462,7 +4459,7 @@ static_assert(std::size(RatingNames) == 6); } // Track, multiple colour schemes - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::supportsMultipleColourSchemes)) { widgets[WIDX_TRACK_COLOUR_SCHEME].type = WindowWidgetType::DropdownMenu; widgets[WIDX_TRACK_COLOUR_SCHEME_DROPDOWN].type = WindowWidgetType::Button; @@ -4516,7 +4513,7 @@ static_assert(std::size(RatingNames) == 6); } // Track supports colour - if (HasTrackColour(*ride, 2) && !rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (HasTrackColour(*ride, 2) && !rtd.HasFlag(RtdFlag::isMaze)) { widgets[WIDX_TRACK_SUPPORT_COLOUR].type = WindowWidgetType::ColourBtn; widgets[WIDX_TRACK_SUPPORT_COLOUR].image = GetColourButtonImage(trackColour.supports); @@ -4527,15 +4524,14 @@ static_assert(std::size(RatingNames) == 6); } // Track preview - if (ride->GetRideTypeDescriptor().HasFlag( - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL - | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS)) + if (rtd.HasFlag(RtdFlag::hasTrackColourMain) || rtd.HasFlag(RtdFlag::hasTrackColourAdditional) + || rtd.HasFlag(RtdFlag::hasTrackColourSupports)) widgets[WIDX_TRACK_PREVIEW].type = WindowWidgetType::Spinner; else widgets[WIDX_TRACK_PREVIEW].type = WindowWidgetType::Empty; // Entrance style - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasEntranceAndExit)) { widgets[WIDX_ENTRANCE_PREVIEW].type = WindowWidgetType::Spinner; widgets[WIDX_ENTRANCE_STYLE].type = WindowWidgetType::DropdownMenu; @@ -4557,8 +4553,8 @@ static_assert(std::size(RatingNames) == 6); } // Vehicle colours - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES) - && ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles) + && ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasVehicleColours)) { if (ride->vehicleColourSettings == VehicleColourSettings::same) _vehicleIndex = 0; @@ -4608,7 +4604,7 @@ static_assert(std::size(RatingNames) == 6); } // Vehicle colour scheme type - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::vehicleIsIntegral) && (ride->num_cars_per_train | ride->NumTrains) > 1) { widgets[WIDX_VEHICLE_COLOUR_SCHEME].type = WindowWidgetType::DropdownMenu; @@ -4692,7 +4688,7 @@ static_assert(std::size(RatingNames) == 6); // Track const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { GfxDrawSprite(dpi, ImageId(MazeOptions[trackColour.supports].sprite), screenCoords); } @@ -5334,7 +5330,7 @@ static_assert(std::size(RatingNames) == 6); { windowPos.x + widgets[widgetIndex].left, windowPos.y + widgets[widgetIndex].top }, widgets[widgetIndex].height() + 1, colours[1], Dropdown::Flag::StayOpen, 2); gDropdownDefaultIndex = 0; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { // Disable saving without scenery if we're a flat ride Dropdown::SetDisabled(0, true); @@ -5641,7 +5637,7 @@ static_assert(std::size(RatingNames) == 6); screenCoords.y += kListRowHeight; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasGForces)) { // Max. positive vertical G's stringId = STR_MAX_POSITIVE_VERTICAL_G; @@ -5675,7 +5671,7 @@ static_assert(std::size(RatingNames) == 6); screenCoords.y += kListRowHeight; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_DROPS)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasDrops)) { ft = Formatter(); ft.Add(ride->getNumDrops()); @@ -5889,7 +5885,7 @@ static_assert(std::size(RatingNames) == 6); pressed_widgets |= (1LL << (WIDX_GRAPH_VELOCITY + list_information_type)); // Hide graph buttons that are not applicable - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasGForces)) { widgets[WIDX_GRAPH_VERTICAL].type = WindowWidgetType::Button; widgets[WIDX_GRAPH_LATERAL].type = WindowWidgetType::Button; @@ -6131,7 +6127,7 @@ static_assert(std::size(RatingNames) == 6); ShopItem shopItem; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (rtd.HasFlag(RtdFlag::isToilet)) { shopItem = ShopItem::Admission; } @@ -6237,7 +6233,7 @@ static_assert(std::size(RatingNames) == 6); auto rideEntry = ride->GetRideEntry(); const auto& rtd = ride->GetRideTypeDescriptor(); - return Park::RidePricesUnlocked() || rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET) + return Park::RidePricesUnlocked() || rtd.HasFlag(RtdFlag::isToilet) || (rideEntry != nullptr && rideEntry->shop_item[0] != ShopItem::None); } @@ -6412,8 +6408,7 @@ static_assert(std::size(RatingNames) == 6); // If ride prices are locked, do not allow setting the price, unless we're dealing with a shop or toilet. const auto& rtd = ride->GetRideTypeDescriptor(); - if (!Park::RidePricesUnlocked() && rideEntry->shop_item[0] == ShopItem::None - && !rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (!Park::RidePricesUnlocked() && rideEntry->shop_item[0] == ShopItem::None && !rtd.HasFlag(RtdFlag::isToilet)) { disabled_widgets |= (1uLL << WIDX_PRIMARY_PRICE); widgets[WIDX_PRIMARY_PRICE_LABEL].tooltip = STR_RIDE_INCOME_ADMISSION_PAY_FOR_ENTRY_TIP; @@ -6432,7 +6427,7 @@ static_assert(std::size(RatingNames) == 6); widgets[WIDX_PRIMARY_PRICE].text = STR_FREE; ShopItem primaryItem = ShopItem::Admission; - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET) || ((primaryItem = rideEntry->shop_item[0]) != ShopItem::None)) + if (rtd.HasFlag(RtdFlag::isToilet) || ((primaryItem = rideEntry->shop_item[0]) != ShopItem::None)) { widgets[WIDX_PRIMARY_PRICE_SAME_THROUGHOUT_PARK].type = WindowWidgetType::Checkbox; @@ -6679,7 +6674,7 @@ static_assert(std::size(RatingNames) == 6); ride->FormatNameTo(ft); widgets[WIDX_SHOW_GUESTS_THOUGHTS].type = WindowWidgetType::FlatBtn; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { widgets[WIDX_SHOW_GUESTS_ON_RIDE].type = WindowWidgetType::Empty; widgets[WIDX_SHOW_GUESTS_QUEUING].type = WindowWidgetType::Empty; @@ -6875,7 +6870,7 @@ static_assert(std::size(RatingNames) == 6); if (ride.type >= RIDE_TYPE_COUNT) return nullptr; - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) return RideMainOpen(ride); auto* w = static_cast(WindowBringToFrontByNumber(WindowClass::Ride, ride.id.ToUnderlying())); diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index ab526d5e76..a4674ac97f 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -232,7 +232,7 @@ static Widget _rideConstructionWidgets[] = { _currentTrackLiftHill = 0; _currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES; - if (currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED)) + if (currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::startConstructionInverted)) _currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE; _previousTrackRollEnd = TrackRoll::None; @@ -404,7 +404,7 @@ static Widget _rideConstructionWidgets[] = { disabledWidgets |= (1uLL << WIDX_SLOPE_DOWN) | (1uLL << WIDX_SLOPE_UP); } } - if (currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT) + if (currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift) && !GetGameState().Cheats.EnableAllDrawableTrackPieces) { // Disable lift hill toggle and banking if current track piece is uphill @@ -820,7 +820,7 @@ static Widget _rideConstructionWidgets[] = { if (_currentlySelectedTrack == TrackCurve::LeftSmall || _currentlySelectedTrack == TrackCurve::RightSmall) { if (_currentTrackPitchEnd == TrackPitch::None && _previousTrackRollEnd != TrackRoll::None - && (!currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT) + && (!currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift) || GetGameState().Cheats.EnableAllDrawableTrackPieces)) { disabledWidgets &= ~(1uLL << WIDX_SLOPE_UP); @@ -1601,7 +1601,7 @@ static Widget _rideConstructionWidgets[] = { hold_down_widgets = (1u << WIDX_CONSTRUCT) | (1u << WIDX_DEMOLISH) | (1u << WIDX_NEXT_SECTION) | (1u << WIDX_PREVIOUS_SECTION); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY) || !currentRide->HasStation()) + if (rtd.HasFlag(RtdFlag::isShopOrFacility) || !currentRide->HasStation()) { widgets[WIDX_ENTRANCE_EXIT_GROUPBOX].type = WindowWidgetType::Empty; widgets[WIDX_ENTRANCE].type = WindowWidgetType::Empty; @@ -1718,7 +1718,7 @@ static Widget _rideConstructionWidgets[] = { widgets[WIDX_SLOPE_UP_STEEP].type = WindowWidgetType::FlatBtn; } - if (currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT) + if (currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift) && (_currentTrackPitchEnd == TrackPitch::Up25 || _currentTrackPitchEnd == TrackPitch::Up60) && !GetGameState().Cheats.EnableAllDrawableTrackPieces) { @@ -1727,7 +1727,7 @@ static Widget _rideConstructionWidgets[] = { if ((IsTrackEnabled(TrackGroup::liftHill) && !_currentlySelectedTrack.isTrackType) || (GetGameState().Cheats.EnableChainLiftOnAllTrack - && currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK))) + && currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack))) { widgets[WIDX_CHAIN_LIFT].type = WindowWidgetType::FlatBtn; } @@ -1873,7 +1873,7 @@ static Widget _rideConstructionWidgets[] = { || _currentlySelectedTrack == TrackElemType::BlockBrakes || _selectedTrackType > TrackElemType::HighestAlias || _currentlySelectedTrack.trackType > TrackElemType::HighestAlias; - bool rideHasSeatRotation = rtd.HasFlag(RIDE_TYPE_FLAG_HAS_SEAT_ROTATION); + bool rideHasSeatRotation = rtd.HasFlag(RtdFlag::hasSeatRotation); if (!trackHasSpeedSetting) { @@ -1992,7 +1992,7 @@ static Widget _rideConstructionWidgets[] = { widgets[WIDX_CONSTRUCT].type = WindowWidgetType::Empty; widgets[WIDX_DEMOLISH].type = WindowWidgetType::FlatBtn; widgets[WIDX_ROTATE].type = WindowWidgetType::Empty; - if (rtd.HasFlag(RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS)) + if (rtd.HasFlag(RtdFlag::cannotHaveGaps)) { widgets[WIDX_PREVIOUS_SECTION].type = WindowWidgetType::Empty; widgets[WIDX_NEXT_SECTION].type = WindowWidgetType::Empty; @@ -2375,7 +2375,7 @@ static Widget _rideConstructionWidgets[] = { { // When flat rides are deleted, the window should be reset so the currentRide can be placed again. const auto& rtd = currentRide->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE) && !rtd.HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (rtd.HasFlag(RtdFlag::isFlatRide) && !rtd.HasFlag(RtdFlag::isShopOrFacility)) { RideInitialiseConstructionWindow(*currentRide); } @@ -2559,7 +2559,7 @@ static Widget _rideConstructionWidgets[] = { if (currentRide != nullptr && RideAreAllPossibleEntrancesAndExitsBuilt(*currentRide).Successful) { ToolCancel(); - if (!currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { WindowCloseByClass(WindowClass::RideConstruction); } @@ -2717,7 +2717,7 @@ static Widget _rideConstructionWidgets[] = { { RideTrackGroup disabledPieces{}; const auto& rtd = GetRideTypeDescriptor(rideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (rtd.HasFlag(RtdFlag::hasTrack)) { // Set all pieces as “disabled”. When looping over the ride entries, // pieces will be re-enabled as soon as a single entry supports it. @@ -3030,7 +3030,7 @@ static Widget _rideConstructionWidgets[] = { { WindowRideConstructionUpdateEnabledTrackPieces(); if (auto currentRide = GetRide(_currentRideIndex); - !currentRide || currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + !currentRide || currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::isMaze)) { return; } @@ -3261,7 +3261,7 @@ static Widget _rideConstructionWidgets[] = { } const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) { auto window = static_cast(WindowFindByClass(WindowClass::RideConstruction)); if (!window) @@ -3319,7 +3319,7 @@ static Widget _rideConstructionWidgets[] = { // search for appropriate z value for ghost, up to max ride height int numAttempts = (z <= MAX_TRACK_HEIGHT ? ((MAX_TRACK_HEIGHT - z) / kCoordsZStep + 1) : 2); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { for (int zAttempts = 0; zAttempts < numAttempts; ++zAttempts) { @@ -3364,7 +3364,7 @@ static Widget _rideConstructionWidgets[] = { } if (_autoRotatingShop && _rideConstructionState == RideConstructionState::Place - && ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + && ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { PathElement* pathsByDir[kNumOrthogonalDirections]; @@ -3557,7 +3557,7 @@ static Widget _rideConstructionWidgets[] = { int numAttempts = (z <= MAX_TRACK_HEIGHT ? ((MAX_TRACK_HEIGHT - z) / kCoordsZStep + 1) : 2); const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { for (int32_t zAttempts = 0; zAttempts < numAttempts; ++zAttempts) { diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index 2858946f72..979e7c8c99 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -366,7 +366,7 @@ static Widget _trackPlaceWidgets[] = { } const auto& rtd = GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { DrawMiniPreviewMaze(td, pass, origin, min, max); } diff --git a/src/openrct2-ui/windows/TrackList.cpp b/src/openrct2-ui/windows/TrackList.cpp index 3fba5251a3..455a004cba 100644 --- a/src/openrct2-ui/windows/TrackList.cpp +++ b/src/openrct2-ui/windows/TrackList.cpp @@ -185,7 +185,7 @@ static Widget _trackListWidgets[] = { std::string entryName; if (item.Type < 0x80) { - if (GetRideTypeDescriptor(item.Type).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (GetRideTypeDescriptor(item.Type).HasFlag(RtdFlag::listVehiclesSeparately)) { entryName = GetRideEntryName(item.EntryIndex); } @@ -558,10 +558,10 @@ static Widget _trackListWidgets[] = { screenPos.y += kListRowHeight + 4; // Information for tracked rides. - if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasTrack)) { const auto& rtd = GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) { if (_loadedTrackDesign->trackAndVehicle.rtdIndex == RIDE_TYPE_MINI_GOLF) { @@ -594,7 +594,7 @@ static Widget _trackListWidgets[] = { screenPos.y += kListRowHeight; } - if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasGForces)) { // Maximum positive vertical Gs ft = Formatter(); @@ -624,7 +624,7 @@ static Widget _trackListWidgets[] = { } } - if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_DROPS)) + if (GetRideTypeDescriptor(_loadedTrackDesign->trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasDrops)) { // Drops ft = Formatter(); diff --git a/src/openrct2/EditorObjectSelectionSession.cpp b/src/openrct2/EditorObjectSelectionSession.cpp index 0f010fda93..7fc1592b5e 100644 --- a/src/openrct2/EditorObjectSelectionSession.cpp +++ b/src/openrct2/EditorObjectSelectionSession.cpp @@ -77,7 +77,7 @@ static void SetupTrackManagerObjects() for (auto rideType : item->RideInfo.RideType) { - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::hasTrack)) { *selectionFlags &= ~ObjectSelectionFlags::Flag6; break; @@ -108,7 +108,7 @@ static void SetupTrackDesignerObjects() { if (rideType != RIDE_TYPE_NULL) { - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::showInTrackDesigner)) { *selectionFlags &= ~ObjectSelectionFlags::Flag6; break; diff --git a/src/openrct2/actions/RideCreateAction.cpp b/src/openrct2/actions/RideCreateAction.cpp index 8190abe0bc..2d451828b3 100644 --- a/src/openrct2/actions/RideCreateAction.cpp +++ b/src/openrct2/actions/RideCreateAction.cpp @@ -185,13 +185,13 @@ GameActions::Result RideCreateAction::Execute() const ride->depart_flags = RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH | 3; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_ALLOW_MUSIC)) + if (rtd.HasFlag(RtdFlag::allowMusic)) { auto& objManager = OpenRCT2::GetContext()->GetObjectManager(); ride->music = objManager.GetLoadedObjectEntryIndex(rtd.DefaultMusic); if (ride->music != OBJECT_ENTRY_INDEX_NULL) { - if (rtd.HasFlag(RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT)) + if (rtd.HasFlag(RtdFlag::hasMusicByDefault)) { ride->lifecycle_flags |= RIDE_LIFECYCLE_MUSIC; } @@ -234,7 +234,7 @@ GameActions::Result RideCreateAction::Execute() const ride->price[0] = 0; } - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (rtd.HasFlag(RtdFlag::isToilet)) { if (ShopItemHasCommonPrice(ShopItem::Admission)) { @@ -262,7 +262,7 @@ GameActions::Result RideCreateAction::Execute() const } // Set the on-ride photo price, whether the ride has one or not (except shops). - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY) && ShopItemHasCommonPrice(ShopItem::Photo)) + if (!rtd.HasFlag(RtdFlag::isShopOrFacility) && ShopItemHasCommonPrice(ShopItem::Photo)) { auto price = ShopItemGetCommonPrice(ride, ShopItem::Photo); if (price != kMoney64Undefined) @@ -288,7 +288,7 @@ GameActions::Result RideCreateAction::Execute() const ride->profit = kMoney64Undefined; ride->entrance_style = OBJECT_ENTRY_INDEX_NULL; - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT)) + if (rtd.HasFlag(RtdFlag::hasEntranceAndExit)) { ride->entrance_style = _entranceObjectIndex; } diff --git a/src/openrct2/actions/RideSetPriceAction.cpp b/src/openrct2/actions/RideSetPriceAction.cpp index 9ebc35e396..de24307cdc 100644 --- a/src/openrct2/actions/RideSetPriceAction.cpp +++ b/src/openrct2/actions/RideSetPriceAction.cpp @@ -112,7 +112,7 @@ GameActions::Result RideSetPriceAction::Execute() const shopItem = ShopItem::Admission; const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (!rtd.HasFlag(RtdFlag::isToilet)) { shopItem = rideEntry->shop_item[0]; if (shopItem == ShopItem::None) @@ -165,7 +165,7 @@ void RideSetPriceAction::RideSetCommonPrice(ShopItem shopItem) const auto invalidate = false; auto rideEntry = GetRideEntryByIndex(ride.subtype); const auto& rtd = ride.GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET) && shopItem == ShopItem::Admission) + if (rtd.HasFlag(RtdFlag::isToilet) && shopItem == ShopItem::Admission) { if (ride.price[0] != _price) { diff --git a/src/openrct2/actions/RideSetSettingAction.cpp b/src/openrct2/actions/RideSetSettingAction.cpp index 20bc97603c..db9dd6531f 100644 --- a/src/openrct2/actions/RideSetSettingAction.cpp +++ b/src/openrct2/actions/RideSetSettingAction.cpp @@ -305,7 +305,7 @@ StringId RideSetSettingAction::GetOperationErrorMessage(const Ride& ride) const case RideMode::BackwardRotation: return STR_CANT_CHANGE_NUMBER_OF_ROTATIONS; default: - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) { return STR_CANT_CHANGE_THIS; } diff --git a/src/openrct2/actions/RideSetVehicleAction.cpp b/src/openrct2/actions/RideSetVehicleAction.cpp index 299f1bdf2b..af72334fc6 100644 --- a/src/openrct2/actions/RideSetVehicleAction.cpp +++ b/src/openrct2/actions/RideSetVehicleAction.cpp @@ -231,7 +231,7 @@ bool RideSetVehicleAction::RideIsVehicleTypeValid(const Ride& ride) const const auto& rtd = ride.GetRideTypeDescriptor(); if (GetGameState().Cheats.ShowVehiclesFromOtherTrackTypes && !( - ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE) || rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE) + ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide) || rtd.HasFlag(RtdFlag::isMaze) || ride.type == RIDE_TYPE_MINI_GOLF)) { selectionShouldBeExpanded = true; @@ -250,11 +250,11 @@ bool RideSetVehicleAction::RideIsVehicleTypeValid(const Ride& ride) const { if (selectionShouldBeExpanded) { - if (GetRideTypeDescriptor(rideTypeIterator).HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (GetRideTypeDescriptor(rideTypeIterator).HasFlag(RtdFlag::isFlatRide)) continue; const auto& rtd = GetRideTypeDescriptor(rideTypeIterator); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE) || rideTypeIterator == RIDE_TYPE_MINI_GOLF) + if (rtd.HasFlag(RtdFlag::isMaze) || rideTypeIterator == RIDE_TYPE_MINI_GOLF) continue; } diff --git a/src/openrct2/actions/TrackPlaceAction.cpp b/src/openrct2/actions/TrackPlaceAction.cpp index c4c9870cd9..500dc38f09 100644 --- a/src/openrct2/actions/TrackPlaceAction.cpp +++ b/src/openrct2/actions/TrackPlaceAction.cpp @@ -121,7 +121,7 @@ GameActions::Result TrackPlaceAction::Query() const auto resultData = TrackPlaceActionResult{}; - uint32_t rideTypeFlags = ride->GetRideTypeDescriptor().Flags; + const auto& rtd = ride->GetRideTypeDescriptor(); if ((ride->lifecycle_flags & RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK) && _trackType == TrackElemType::EndStation) { @@ -139,7 +139,7 @@ GameActions::Result TrackPlaceAction::Query() const } } - if (!(rideTypeFlags & RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!rtd.HasFlag(RtdFlag::isFlatRide)) { if (_trackType == TrackElemType::OnRidePhoto) { @@ -160,8 +160,7 @@ GameActions::Result TrackPlaceAction::Query() const } } // Backwards steep lift hills are allowed, even on roller coasters that do not support forwards steep lift hills. - if ((_trackPlaceFlags & CONSTRUCTION_LIFT_HILL_SELECTED) - && !ride->GetRideTypeDescriptor().SupportsTrackGroup(TrackGroup::liftHillSteep) + if ((_trackPlaceFlags & CONSTRUCTION_LIFT_HILL_SELECTED) && !rtd.SupportsTrackGroup(TrackGroup::liftHillSteep) && !GetGameState().Cheats.EnableChainLiftOnAllTrack) { const auto& ted = GetTrackElementDescriptor(_trackType); @@ -262,8 +261,7 @@ GameActions::Result TrackPlaceAction::Query() const GameActions::Status::InvalidParameters, STR_RIDE_CONSTRUCTION_CANT_CONSTRUCT_THIS_HERE, STR_TOO_HIGH); } - auto crossingMode = (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS) - && _trackType == TrackElemType::Flat) + auto crossingMode = (rtd.HasFlag(RtdFlag::supportsLevelCrossings) && _trackType == TrackElemType::Flat) ? CreateCrossingMode::trackOverPath : CreateCrossingMode::none; auto canBuild = MapCanConstructWithClearAt( @@ -315,7 +313,7 @@ GameActions::Result TrackPlaceAction::Query() const STR_RIDE_CANT_BUILD_THIS_UNDERWATER); } - if ((rideTypeFlags & RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER) && !_trackDesignDrawingPreview) + if (rtd.HasFlag(RtdFlag::trackMustBeOnWater) && !_trackDesignDrawingPreview) { auto surfaceElement = MapGetSurfaceElementAt(mapLoc); if (surfaceElement == nullptr) @@ -381,14 +379,13 @@ GameActions::Result TrackPlaceAction::Query() const { uint16_t maxHeight; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY) - && rideEntry->max_height != 0) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately) && rideEntry->max_height != 0) { maxHeight = rideEntry->max_height; } else { - maxHeight = ride->GetRideTypeDescriptor().Heights.MaxHeight; + maxHeight = rtd.Heights.MaxHeight; } ride_height /= kCoordsZPerTinyZ; @@ -407,10 +404,10 @@ GameActions::Result TrackPlaceAction::Query() const supportHeight = (10 * kCoordsZStep); } - supportCosts += ((supportHeight / (2 * kCoordsZStep)) * ride->GetRideTypeDescriptor().BuildCosts.SupportPrice); + supportCosts += ((supportHeight / (2 * kCoordsZStep)) * rtd.BuildCosts.SupportPrice); } - money64 price = ride->GetRideTypeDescriptor().BuildCosts.TrackPrice; + money64 price = rtd.BuildCosts.TrackPrice; price *= ted.priceModifier; price >>= 16; @@ -446,7 +443,7 @@ GameActions::Result TrackPlaceAction::Execute() const auto resultData = TrackPlaceActionResult{}; - uint32_t rideTypeFlags = ride->GetRideTypeDescriptor().Flags; + const auto& rtd = ride->GetRideTypeDescriptor(); const auto& ted = GetTrackElementDescriptor(_trackType); const auto& wallEdges = ted.sequenceElementAllowedWallEdges; @@ -478,8 +475,7 @@ GameActions::Result TrackPlaceAction::Execute() const clearanceZ = Floor2(clearanceZ, kCoordsZStep) + baseZ; const auto mapLocWithClearance = CoordsXYRangedZ(mapLoc, baseZ, clearanceZ); - auto crossingMode = (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS) - && _trackType == TrackElemType::Flat) + auto crossingMode = (rtd.HasFlag(RtdFlag::supportsLevelCrossings) && _trackType == TrackElemType::Flat) ? CreateCrossingMode::trackOverPath : CreateCrossingMode::none; auto canBuild = MapCanConstructWithClearAt( @@ -504,7 +500,7 @@ GameActions::Result TrackPlaceAction::Execute() const if (!(GetFlags() & GAME_COMMAND_FLAG_GHOST) && !GetGameState().Cheats.DisableClearanceChecks) { FootpathRemoveLitter(mapLoc); - if (rideTypeFlags & RIDE_TYPE_FLAG_TRACK_NO_WALLS) + if (rtd.HasFlag(RtdFlag::noWallsAroundTrack)) { WallRemoveAt(mapLocWithClearance); } @@ -553,7 +549,7 @@ GameActions::Result TrackPlaceAction::Execute() const supportHeight = (10 * kCoordsZStep); } - supportCosts += (supportHeight / (2 * kCoordsZStep)) * ride->GetRideTypeDescriptor().BuildCosts.SupportPrice; + supportCosts += (supportHeight / (2 * kCoordsZStep)) * rtd.BuildCosts.SupportPrice; int32_t entranceDirections = 0; if (!ride->overall_view.IsNull()) @@ -611,7 +607,7 @@ GameActions::Result TrackPlaceAction::Execute() const trackElement->SetBrakeBoosterSpeed(_brakeSpeed); } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS)) + if (rtd.HasFlag(RtdFlag::hasLandscapeDoors)) { trackElement->SetDoorAState(LANDSCAPE_DOOR_CLOSED); trackElement->SetDoorBState(LANDSCAPE_DOOR_CLOSED); @@ -665,7 +661,7 @@ GameActions::Result TrackPlaceAction::Execute() const auto* tileElement = trackElement->as(); - if (rideTypeFlags & RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER) + if (rtd.HasFlag(RtdFlag::trackMustBeOnWater)) { auto* waterSurfaceElement = MapGetSurfaceElementAt(mapLoc); if (waterSurfaceElement != nullptr) @@ -705,7 +701,7 @@ GameActions::Result TrackPlaceAction::Execute() const RideMode newMode = RideMode::ContinuousCircuitBlockSectioned; if (ride->mode == RideMode::PoweredLaunch) { - if (ride->GetRideTypeDescriptor().SupportsRideMode(RideMode::PoweredLaunchBlockSectioned) + if (rtd.SupportsRideMode(RideMode::PoweredLaunchBlockSectioned) || GetGameState().Cheats.ShowAllOperatingModes) newMode = RideMode::PoweredLaunchBlockSectioned; else @@ -733,7 +729,7 @@ GameActions::Result TrackPlaceAction::Execute() const } } - money64 price = ride->GetRideTypeDescriptor().BuildCosts.TrackPrice; + money64 price = rtd.BuildCosts.TrackPrice; price *= ted.priceModifier; price >>= 16; diff --git a/src/openrct2/actions/TrackRemoveAction.cpp b/src/openrct2/actions/TrackRemoveAction.cpp index 6b1d53750d..a60569bf01 100644 --- a/src/openrct2/actions/TrackRemoveAction.cpp +++ b/src/openrct2/actions/TrackRemoveAction.cpp @@ -429,7 +429,7 @@ GameActions::Result TrackRemoveAction::Execute() const } } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::trackMustBeOnWater)) { surfaceElement->SetHasTrackThatNeedsWater(false); } diff --git a/src/openrct2/actions/WallPlaceAction.cpp b/src/openrct2/actions/WallPlaceAction.cpp index 52c0e0d409..49961fbf07 100644 --- a/src/openrct2/actions/WallPlaceAction.cpp +++ b/src/openrct2/actions/WallPlaceAction.cpp @@ -434,7 +434,7 @@ bool WallPlaceAction::WallCheckObstructionWithTrack( return false; } - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::allowDoorsOnTrack)) { return false; } @@ -602,7 +602,7 @@ GameActions::Result WallPlaceAction::WallCheckObstruction( bool WallPlaceAction::TrackIsAllowedWallEdges( ride_type_t rideType, track_type_t trackType, uint8_t trackSequence, uint8_t direction) { - if (!GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_TRACK_NO_WALLS)) + if (!GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::noWallsAroundTrack)) { const auto& ted = GetTrackElementDescriptor(trackType); if (ted.sequenceElementAllowedWallEdges[trackSequence] & (1 << direction)) diff --git a/src/openrct2/entity/Guest.cpp b/src/openrct2/entity/Guest.cpp index 5b06703e8e..73ce6f9362 100644 --- a/src/openrct2/entity/Guest.cpp +++ b/src/openrct2/entity/Guest.cpp @@ -446,7 +446,7 @@ static PeepThoughtType PeepAssessSurroundings(int16_t centre_x, int16_t centre_y static void PeepUpdateHunger(Guest* peep); static void PeepDecideWhetherToLeavePark(Guest* peep); static void PeepLeavePark(Guest* peep); -static void PeepHeadForNearestRideWithFlags(Guest* peep, bool considerOnlyCloseRides, int64_t rideTypeFlags); +static void PeepHeadForNearestRideWithFlag(Guest* peep, bool considerOnlyCloseRides, RtdFlag rtdFlag); bool Loc690FD0(Peep* peep, RideId* rideToView, uint8_t* rideSeatToView, TileElement* tileElement); template<> bool EntityBase::Is() const @@ -1005,7 +1005,7 @@ void Guest::Tick128UpdateGuest(uint32_t index) auto ride = GetRide(CurrentRide); if (ride != nullptr) { - PeepThoughtType thought_type = ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE) + PeepThoughtType thought_type = ride->GetRideTypeDescriptor().HasFlag(RtdFlag::describeAsInside) ? PeepThoughtType::GetOut : PeepThoughtType::GetOff; @@ -1109,16 +1109,16 @@ void Guest::Tick128UpdateGuest(uint32_t index) switch (chosen_thought) { case PeepThoughtType::Hungry: - PeepHeadForNearestRideWithFlags(this, false, RIDE_TYPE_FLAG_SELLS_FOOD); + PeepHeadForNearestRideWithFlag(this, false, RtdFlag::sellsFood); break; case PeepThoughtType::Thirsty: - PeepHeadForNearestRideWithFlags(this, false, RIDE_TYPE_FLAG_SELLS_DRINKS); + PeepHeadForNearestRideWithFlag(this, false, RtdFlag::sellsDrinks); break; case PeepThoughtType::Toilet: - PeepHeadForNearestRideWithFlags(this, false, RIDE_TYPE_FLAG_IS_TOILET); + PeepHeadForNearestRideWithFlag(this, false, RtdFlag::isToilet); break; case PeepThoughtType::RunningOut: - PeepHeadForNearestRideWithFlags(this, false, RIDE_TYPE_FLAG_IS_CASH_MACHINE); + PeepHeadForNearestRideWithFlag(this, false, RtdFlag::isCashMachine); break; default: break; @@ -1138,7 +1138,7 @@ void Guest::Tick128UpdateGuest(uint32_t index) if (Nausea >= 200) { thought_type = PeepThoughtType::VerySick; - PeepHeadForNearestRideWithFlags(this, true, RIDE_TYPE_FLAG_IS_FIRST_AID); + PeepHeadForNearestRideWithFlag(this, true, RtdFlag::isFirstAid); } InsertNewThought(thought_type); } @@ -1945,7 +1945,7 @@ bool Guest::ShouldGoOnRide(Ride& ride, StationIndex entranceNum, bool atQueue, b { // Peeps that are leaving the park will refuse to go on any rides, with the exception of free transport rides. assert(ride.type < std::size(RideTypeDescriptors)); - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_TRANSPORT_RIDE) || ride.value == RIDE_VALUE_UNDEFINED + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isTransportRide) || ride.value == RIDE_VALUE_UNDEFINED || RideGetPrice(ride) != 0) { if (PeepFlags & PEEP_FLAGS_LEAVING_PARK) @@ -1955,7 +1955,7 @@ bool Guest::ShouldGoOnRide(Ride& ride, StationIndex entranceNum, bool atQueue, b } } - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { return ShouldGoToShop(ride, peepAtRide); } @@ -2006,7 +2006,7 @@ bool Guest::ShouldGoOnRide(Ride& ride, StationIndex entranceNum, bool atQueue, b // Assuming the queue conditions are met, peeps will always go on free transport rides. // Ride ratings, recent crashes and weather will all be ignored. auto ridePrice = RideGetPrice(ride); - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_TRANSPORT_RIDE) || ride.value == RIDE_VALUE_UNDEFINED + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isTransportRide) || ride.value == RIDE_VALUE_UNDEFINED || ridePrice != 0) { if (PreviousRide == ride.id) @@ -2144,7 +2144,7 @@ bool Guest::ShouldGoOnRide(Ride& ride, StationIndex entranceNum, bool atQueue, b // If the ride has not yet been rated and is capable of having g-forces, // there's a 90% chance that the peep will ignore it. - if (!RideHasRatings(ride) && ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES)) + if (!RideHasRatings(ride) && ride.GetRideTypeDescriptor().HasFlag(RtdFlag::checkGForces)) { if ((ScenarioRand() & 0xFFFF) > 0x1999u) { @@ -2233,7 +2233,7 @@ bool Guest::ShouldGoToShop(Ride& ride, bool peepAtShop) } const auto& rtd = ride.GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (rtd.HasFlag(RtdFlag::isToilet)) { if (Toilet < 70) { @@ -2259,7 +2259,7 @@ bool Guest::ShouldGoToShop(Ride& ride, bool peepAtShop) } } - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_FIRST_AID)) + if (rtd.HasFlag(RtdFlag::isFirstAid)) { if (Nausea < 128) { @@ -2370,7 +2370,7 @@ bool Guest::ShouldRideWhileRaining(const Ride& ride) } // Peeps with umbrellas will go on rides where they can use their umbrella on it (like the Maze) 50% of the time - if (HasItem(ShopItem::Umbrella) && ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_PEEP_CAN_USE_UMBRELLA) + if (HasItem(ShopItem::Umbrella) && ride.GetRideTypeDescriptor().HasFlag(RtdFlag::guestsCanUseUmbrella) && (ScenarioRand() & 2) == 0) { return true; @@ -2453,7 +2453,7 @@ static void PeepRideIsTooIntense(Guest* peep, Ride& ride, bool peepAtRide) static Vehicle* PeepChooseCarFromRide(Peep* peep, const Ride& ride, std::vector& car_array) { uint8_t chosen_car = ScenarioRand(); - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES) && ((chosen_car & 0xC) != 0xC)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasGForces) && ((chosen_car & 0xC) != 0xC)) { chosen_car = (ScenarioRand() & 1) ? 0 : static_cast(car_array.size()) - 1; } @@ -2862,7 +2862,7 @@ static void PeepUpdateRideNauseaGrowth(Guest* peep, const Ride& ride) static bool PeepShouldGoOnRideAgain(Guest* peep, const Ride& ride) { - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::guestsWillRideAgain)) return false; if (!RideHasRatings(ride)) return false; @@ -3241,15 +3241,14 @@ template static void PeepHeadForNearestRide(Guest* peep, bool consid } } -static void PeepHeadForNearestRideWithFlags(Guest* peep, bool considerOnlyCloseRides, int64_t rideTypeFlags) +static void PeepHeadForNearestRideWithFlag(Guest* peep, bool considerOnlyCloseRides, RtdFlag rtdFlag) { - if ((rideTypeFlags & RIDE_TYPE_FLAG_IS_TOILET) && peep->HasFoodOrDrink()) + if ((rtdFlag == RtdFlag::isToilet) && peep->HasFoodOrDrink()) { return; } - PeepHeadForNearestRide(peep, considerOnlyCloseRides, [rideTypeFlags](const Ride& ride) { - return ride.GetRideTypeDescriptor().HasFlag(rideTypeFlags); - }); + PeepHeadForNearestRide( + peep, considerOnlyCloseRides, [rtdFlag](const Ride& ride) { return ride.GetRideTypeDescriptor().HasFlag(rtdFlag); }); } /** @@ -3264,16 +3263,16 @@ void Guest::StopPurchaseThought(ride_type_t rideType) auto thoughtType = PeepThoughtType::Hungry; const auto& rtd = GetRideTypeDescriptor(rideType); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_SELLS_FOOD)) + if (!rtd.HasFlag(RtdFlag::sellsFood)) { thoughtType = PeepThoughtType::Thirsty; - if (!rtd.HasFlag(RIDE_TYPE_FLAG_SELLS_DRINKS)) + if (!rtd.HasFlag(RtdFlag::sellsDrinks)) { thoughtType = PeepThoughtType::RunningOut; - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE)) + if (!rtd.HasFlag(RtdFlag::isCashMachine)) { thoughtType = PeepThoughtType::Toilet; - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (!rtd.HasFlag(RtdFlag::isToilet)) { return; } @@ -3358,7 +3357,7 @@ void Guest::UpdateBuying() } const auto& rtd = GetRideTypeDescriptor(ride->type); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE)) + if (rtd.HasFlag(RtdFlag::isCashMachine)) { if (CurrentRide != PreviousRide) { @@ -3381,7 +3380,7 @@ void Guest::UpdateBuying() if (CurrentRide != PreviousRide) { const auto& rtd = GetRideTypeDescriptor(ride->type); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE)) + if (rtd.HasFlag(RtdFlag::isCashMachine)) { item_bought = PeepShouldUseCashMachine(this, CurrentRide); if (!item_bought) @@ -3484,7 +3483,7 @@ void Guest::UpdateRideAtEntrance() std::vector carArray; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) { if (ride->num_riders >= ride->operation_option) return; @@ -3511,7 +3510,7 @@ void Guest::UpdateRideAtEntrance() return; } - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) { Vehicle* vehicle = PeepChooseCarFromRide(this, *ride, carArray); PeepChooseSeatFromCar(this, *ride, vehicle); @@ -3710,7 +3709,7 @@ void Guest::UpdateRideAdvanceThroughEntrance() return; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) { const auto& station = ride->GetStation(CurrentRideStation); auto entranceLocation = station.Entrance.ToCoordsXYZD(); @@ -3888,7 +3887,7 @@ void Guest::UpdateRideFreeVehicleEnterRide(Ride& ride) ride.FormatNameTo(ft); StringId msg_string; - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::describeAsInside)) msg_string = STR_PEEP_TRACKING_PEEP_IS_IN_X; else msg_string = STR_PEEP_TRACKING_PEEP_IS_ON_X; @@ -3900,7 +3899,7 @@ void Guest::UpdateRideFreeVehicleEnterRide(Ride& ride) } const auto& rtd = ride.GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE)) + if (rtd.HasFlag(RtdFlag::isSpiralSlide)) { SwitchToSpecialSprite(1); } @@ -3946,7 +3945,7 @@ void Guest::UpdateRideFreeVehicleCheck() if (ride == nullptr) return; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::noVehicles)) { if (ride->status != RideStatus::Open || ride->vehicle_change_timeout != 0 || (++RejoinQueueTimeout) == 0) { @@ -4179,7 +4178,7 @@ void Guest::UpdateRideLeaveVehicle() platformLocation.direction = DirectionReverse(exitLocation.direction); - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::vehicleIsIntegral)) { for (; vehicle != nullptr && !vehicle->IsHead(); vehicle = GetEntity(vehicle->prev_vehicle_on_ride)) { @@ -4690,7 +4689,7 @@ void Guest::UpdateRideApproachSpiralSlide() Var37 = (directionTemp * 4) | (Var37 & 0x30) | waypoint; CoordsXY targetLoc = ride->GetStation(CurrentRideStation).Start; - assert(rtd.HasFlag(RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE)); + assert(rtd.HasFlag(RtdFlag::isSpiralSlide)); targetLoc += SpiralSlideWalkingPath[Var37]; SetDestination(targetLoc); @@ -4704,7 +4703,7 @@ void Guest::UpdateRideApproachSpiralSlide() CoordsXY targetLoc = ride->GetStation(CurrentRideStation).Start; - assert(rtd.HasFlag(RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE)); + assert(rtd.HasFlag(RtdFlag::isSpiralSlide)); targetLoc += SpiralSlideWalkingPath[Var37]; SetDestination(targetLoc); @@ -4738,7 +4737,7 @@ void Guest::UpdateRideOnSpiralSlide() return; const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE)) + if (!rtd.HasFlag(RtdFlag::isSpiralSlide)) return; auto destination = GetDestination(); @@ -4843,7 +4842,7 @@ void Guest::UpdateRideLeaveSpiralSlide() CoordsXY targetLoc = ride->GetStation(CurrentRideStation).Start; [[maybe_unused]] const auto& rtd = ride->GetRideTypeDescriptor(); - assert(rtd.HasFlag(RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE)); + assert(rtd.HasFlag(RtdFlag::isSpiralSlide)); targetLoc += SpiralSlideWalkingPath[Var37]; SetDestination(targetLoc); @@ -5103,7 +5102,7 @@ void Guest::UpdateRideShopInteract() const int16_t tileCentreY = NextLoc.y + 16; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_FIRST_AID)) + if (rtd.HasFlag(RtdFlag::isFirstAid)) { if (Nausea <= 35) { @@ -6306,14 +6305,14 @@ static bool PeepShouldWatchRide(TileElement* tileElement) return true; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::interestingToLookAt)) { if ((ScenarioRand() & 0xFFFF) > 0x3333) { return false; } } - else if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT)) + else if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::slightlyInterestingToLookAt)) { if ((ScenarioRand() & 0xFFFF) > 0x1000) { diff --git a/src/openrct2/entity/Peep.cpp b/src/openrct2/entity/Peep.cpp index 8f574cd529..9c66191db6 100644 --- a/src/openrct2/entity/Peep.cpp +++ b/src/openrct2/entity/Peep.cpp @@ -1116,7 +1116,7 @@ void PeepProblemWarningsUpdate() break; } ride = GetRide(peep->GuestHeadingToRideId); - if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SELLS_FOOD)) + if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::sellsFood)) hungerCounter++; break; @@ -1127,7 +1127,7 @@ void PeepProblemWarningsUpdate() break; } ride = GetRide(peep->GuestHeadingToRideId); - if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SELLS_DRINKS)) + if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::sellsDrinks)) thirstCounter++; break; @@ -1138,7 +1138,7 @@ void PeepProblemWarningsUpdate() break; } ride = GetRide(peep->GuestHeadingToRideId); - if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isToilet)) toiletCounter++; break; @@ -1426,7 +1426,7 @@ void Peep::FormatActionTo(Formatter& ft) const auto ride = GetRide(CurrentRide); if (ride != nullptr) { - ft.Add(ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE) ? STR_IN_RIDE : STR_ON_RIDE); + ft.Add(ride->GetRideTypeDescriptor().HasFlag(RtdFlag::describeAsInside) ? STR_IN_RIDE : STR_ON_RIDE); ride->FormatNameTo(ft); } else @@ -2313,7 +2313,7 @@ static bool PeepInteractWithShop(Peep* peep, const CoordsXYE& coords) { RideId rideIndex = coords.element->AsTrack()->GetRideIndex(); auto ride = GetRide(rideIndex); - if (ride == nullptr || !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride == nullptr || !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) return false; auto* guest = peep->As(); @@ -2350,7 +2350,7 @@ static bool PeepInteractWithShop(Peep* peep, const CoordsXYE& coords) return true; } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::guestsShouldGoInsideFacility)) { guest->TimeLost = 0; if (!guest->ShouldGoOnRide(*ride, StationIndex::FromUnderlying(0), false, false)) @@ -2380,8 +2380,9 @@ static bool PeepInteractWithShop(Peep* peep, const CoordsXYE& coords) auto ft = Formatter(); guest->FormatNameTo(ft); ride->FormatNameTo(ft); - StringId string_id = ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IN_RIDE) ? STR_PEEP_TRACKING_PEEP_IS_IN_X - : STR_PEEP_TRACKING_PEEP_IS_ON_X; + StringId string_id = ride->GetRideTypeDescriptor().HasFlag(RtdFlag::describeAsInside) + ? STR_PEEP_TRACKING_PEEP_IS_IN_X + : STR_PEEP_TRACKING_PEEP_IS_ON_X; if (Config::Get().notifications.GuestUsedFacility) { News::AddItemToQueue(News::ItemType::PeepOnRide, string_id, guest->Id, ft); diff --git a/src/openrct2/entity/Staff.cpp b/src/openrct2/entity/Staff.cpp index 21d2ada429..3dab17761c 100644 --- a/src/openrct2/entity/Staff.cpp +++ b/src/openrct2/entity/Staff.cpp @@ -2181,8 +2181,8 @@ bool Staff::UpdateFixingMoveToStationEnd(bool firstRun, const Ride& ride) { if (!firstRun) { - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION) - || !ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation) + || !ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { return true; } @@ -2268,8 +2268,8 @@ bool Staff::UpdateFixingMoveToStationStart(bool firstRun, const Ride& ride) { if (!firstRun) { - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION) - || !ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation) + || !ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { return true; } @@ -2345,8 +2345,8 @@ bool Staff::UpdateFixingFixStationStart(bool firstRun, const Ride& ride) { if (!firstRun) { - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION) - || !ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation) + || !ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { return true; } diff --git a/src/openrct2/interface/Viewport.cpp b/src/openrct2/interface/Viewport.cpp index fcb4f1e3b6..2057b4b3f2 100644 --- a/src/openrct2/interface/Viewport.cpp +++ b/src/openrct2/interface/Viewport.cpp @@ -1487,7 +1487,7 @@ VisibilityKind GetPaintStructVisibility(const PaintStruct* ps, uint32_t viewFlag break; auto ride = vehicle->GetRide(); - if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (ride != nullptr && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { return (viewFlags & VIEWPORT_FLAG_INVISIBLE_RIDES) ? VisibilityKind::Hidden : VisibilityKind::Partial; diff --git a/src/openrct2/management/Award.cpp b/src/openrct2/management/Award.cpp index d1485d37c6..f8e91059be 100644 --- a/src/openrct2/management/Award.cpp +++ b/src/openrct2/management/Award.cpp @@ -290,7 +290,7 @@ static bool AwardIsDeservedBestFood(int32_t activeAwardTypes) { if (ride.status != RideStatus::Open) continue; - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SELLS_FOOD)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::sellsFood)) continue; shops++; @@ -335,7 +335,7 @@ static bool AwardIsDeservedWorstFood(int32_t activeAwardTypes) { if (ride.status != RideStatus::Open) continue; - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SELLS_FOOD)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::sellsFood)) continue; shops++; @@ -374,7 +374,7 @@ static bool AwardIsDeservedBestToilets([[maybe_unused]] int32_t activeAwardTypes const auto& rideManager = GetRideManager(); auto numToilets = static_cast(std::count_if(rideManager.begin(), rideManager.end(), [](const Ride& ride) { const auto& rtd = ride.GetRideTypeDescriptor(); - return rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET) && ride.status == RideStatus::Open; + return rtd.HasFlag(RtdFlag::isToilet) && ride.status == RideStatus::Open; })); // At least 4 open toilets @@ -463,7 +463,7 @@ static bool AwardIsDeservedBestCustomDesignedRides(int32_t activeAwardTypes) auto customDesignedRides = 0; for (const auto& ride : GetRideManager()) { - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) continue; if (ride.lifecycle_flags & RIDE_LIFECYCLE_NOT_CUSTOM_DESIGN) continue; @@ -495,7 +495,7 @@ static bool AwardIsDeservedMostDazzlingRideColours(int32_t activeAwardTypes) auto colourfulRides = 0; for (const auto& ride : GetRideManager()) { - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) continue; countedRides++; diff --git a/src/openrct2/management/Research.cpp b/src/openrct2/management/Research.cpp index f4a562d23c..fc15197db2 100644 --- a/src/openrct2/management/Research.cpp +++ b/src/openrct2/management/Research.cpp @@ -248,7 +248,7 @@ void ResearchFinishItem(const ResearchItem& researchItem) // If a vehicle is the first to be invented for its ride type, show the ride type/group name. // Independently listed vehicles (like all flat rides and shops) should always be announced as such. - if (GetRideTypeDescriptor(base_ride_type).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY) + if (GetRideTypeDescriptor(base_ride_type).HasFlag(RtdFlag::listVehiclesSeparately) || researchItem.flags & RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE) { RideNaming naming = GetRideNaming(base_ride_type, *rideEntry); @@ -1042,7 +1042,7 @@ static void ResearchUpdateFirstOfType(ResearchItem* researchItem) researchItem->flags &= ~RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE; const auto& rtd = GetRideTypeDescriptor(rideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately)) { researchItem->flags |= RESEARCH_ENTRY_FLAG_FIRST_OF_TYPE; return; @@ -1076,7 +1076,7 @@ void ResearchDetermineFirstOfType() continue; const auto& rtd = GetRideTypeDescriptor(rideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately)) continue; // The last research item will also be present in gameState.ResearchItemsInvented. diff --git a/src/openrct2/object/RideObject.cpp b/src/openrct2/object/RideObject.cpp index d336bb5ab0..5bbe68c321 100644 --- a/src/openrct2/object/RideObject.cpp +++ b/src/openrct2/object/RideObject.cpp @@ -965,7 +965,7 @@ std::vector RideObject::ReadJsonColourConfiguration(json_t& jColo bool RideObject::IsRideTypeShopOrFacility(ride_type_t rideType) { - return GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY); + return GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::isShopOrFacility); } ride_type_t RideObject::ParseRideType(const std::string& s) diff --git a/src/openrct2/peep/GuestPathfinding.cpp b/src/openrct2/peep/GuestPathfinding.cpp index 7b913fb6d6..61dc587422 100644 --- a/src/openrct2/peep/GuestPathfinding.cpp +++ b/src/openrct2/peep/GuestPathfinding.cpp @@ -408,7 +408,7 @@ namespace OpenRCT2::PathFinding continue; RideId rideIndex = tileElement->AsTrack()->GetRideIndex(); auto ride = GetRide(rideIndex); - if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { *outRideIndex = rideIndex; return PathSearchResult::ShopEntrance; @@ -774,7 +774,7 @@ namespace OpenRCT2::PathFinding * tile. */ rideIndex = tileElement->AsTrack()->GetRideIndex(); auto ride = GetRide(rideIndex); - if (ride == nullptr || !ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride == nullptr || !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) continue; found = true; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 7e3b0fe6e9..600c8cc08c 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -955,7 +955,7 @@ namespace OpenRCT2::RCT1 dst->lift_hill_speed = 5; dst->music = OBJECT_ENTRY_INDEX_NULL; - if (GetRideTypeDescriptor(dst->type).HasFlag(RIDE_TYPE_FLAG_ALLOW_MUSIC)) + if (GetRideTypeDescriptor(dst->type).HasFlag(RtdFlag::allowMusic)) { if (_gameVersion == FILE_VERSION_RCT1) { @@ -1117,7 +1117,7 @@ namespace OpenRCT2::RCT1 } dst->entrance_style = OBJECT_ENTRY_INDEX_NULL; - if (dst->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT)) + if (dst->GetRideTypeDescriptor().HasFlag(RtdFlag::hasEntranceAndExit)) { // Entrance styles were introduced with AA. They correspond directly with those in RCT2. if (_gameVersion == FILE_VERSION_RCT1) diff --git a/src/openrct2/rct1/T4Importer.cpp b/src/openrct2/rct1/T4Importer.cpp index d6602afa3e..1b35758eaa 100644 --- a/src/openrct2/rct1/T4Importer.cpp +++ b/src/openrct2/rct1/T4Importer.cpp @@ -235,7 +235,7 @@ namespace OpenRCT2::RCT1 td->operation.operationSetting, GetRideTypeDescriptor(td->trackAndVehicle.rtdIndex).OperatingSettings.MaxValue); const auto& rtd = GetRideTypeDescriptor(td->trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { TD46MazeElement t4MazeElement{}; t4MazeElement.All = !0; diff --git a/src/openrct2/rct1/Tables.cpp b/src/openrct2/rct1/Tables.cpp index 078234035f..f53949886f 100644 --- a/src/openrct2/rct1/Tables.cpp +++ b/src/openrct2/rct1/Tables.cpp @@ -1499,7 +1499,7 @@ namespace OpenRCT2::RCT1 track_type_t RCT1TrackTypeToOpenRCT2(RCT12TrackType origTrackType, ride_type_t rideType) { - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::isFlatRide)) return RCT12FlatTrackTypeToOpenRCT2(origTrackType); return origTrackType; diff --git a/src/openrct2/rct2/RCT2.cpp b/src/openrct2/rct2/RCT2.cpp index a3d532cac2..10f04fd704 100644 --- a/src/openrct2/rct2/RCT2.cpp +++ b/src/openrct2/rct2/RCT2.cpp @@ -118,7 +118,7 @@ namespace OpenRCT2::RCT2 track_type_t RCT2TrackTypeToOpenRCT2(RCT12TrackType origTrackType, ride_type_t rideType, bool convertFlat) { - if (convertFlat && GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (convertFlat && GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::isFlatRide)) return RCT12FlatTrackTypeToOpenRCT2(origTrackType); if (origTrackType == TrackElemType::RotationControlToggleAlias && !RCT2TrackTypeIsBooster(rideType, origTrackType)) return TrackElemType::RotationControlToggle; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 31069ae466..3237d64129 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -1269,7 +1269,7 @@ namespace OpenRCT2::RCT2 auto subtype = RCTEntryIndexToOpenRCT2EntryIndex(src->Subtype); auto* rideEntry = GetRideEntryByIndex(subtype); // If the ride is tracked, we don’t need to check the vehicle any more. - if (!GetRideTypeDescriptor(src->Type).HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!GetRideTypeDescriptor(src->Type).HasFlag(RtdFlag::isFlatRide)) { _isFlatRide[index] = false; continue; @@ -1282,7 +1282,7 @@ namespace OpenRCT2::RCT2 { originalRideType = rideEntry->GetFirstNonNullRideType(); } - const auto isFlatRide = GetRideTypeDescriptor(originalRideType).HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE); + const auto isFlatRide = GetRideTypeDescriptor(originalRideType).HasFlag(RtdFlag::isFlatRide); _isFlatRide.set(static_cast(index), isFlatRide); } } @@ -1571,7 +1571,7 @@ namespace OpenRCT2::RCT2 } auto musicStyle = OBJECT_ENTRY_INDEX_NULL; - if (GetRideTypeDescriptor(dst->type).HasFlag(RIDE_TYPE_FLAG_ALLOW_MUSIC)) + if (GetRideTypeDescriptor(dst->type).HasFlag(RtdFlag::allowMusic)) { musicStyle = src->Music; } @@ -1579,7 +1579,7 @@ namespace OpenRCT2::RCT2 // In SV7, "plain" entrances are invisible. auto entranceStyle = OBJECT_ENTRY_INDEX_NULL; - if (!_isSV7 && GetRideTypeDescriptor(dst->type).HasFlag(RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT)) + if (!_isSV7 && GetRideTypeDescriptor(dst->type).HasFlag(RtdFlag::hasEntranceAndExit)) { entranceStyle = src->EntranceStyle; } @@ -1975,7 +1975,7 @@ namespace OpenRCT2::RCT2 // This has to be done last, since the maze entry shares fields with the colour and sequence fields. const auto& rtd = GetRideTypeDescriptor(rideType); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { dst2->SetMazeEntry(src2->GetMazeEntry()); } diff --git a/src/openrct2/rct2/T6Exporter.cpp b/src/openrct2/rct2/T6Exporter.cpp index d6b1ef057a..59e524879d 100644 --- a/src/openrct2/rct2/T6Exporter.cpp +++ b/src/openrct2/rct2/T6Exporter.cpp @@ -115,7 +115,7 @@ namespace OpenRCT2::RCT2 tempStream.WriteValue(_trackDesign.operation.liftHillSpeed | (_trackDesign.operation.numCircuits << 5)); const auto& rtd = GetRideTypeDescriptor(_trackDesign.trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { for (const auto& mazeElement : _trackDesign.mazeElements) { diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/rct2/T6Importer.cpp index 280e047408..f017f0c989 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/rct2/T6Importer.cpp @@ -132,7 +132,7 @@ namespace OpenRCT2::RCT2 td->operation.operationSetting, GetRideTypeDescriptor(td->trackAndVehicle.rtdIndex).OperatingSettings.MaxValue); const auto& rtd = GetRideTypeDescriptor(td->trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { TD46MazeElement t6MazeElement{}; t6MazeElement.All = !0; diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index e1e7799a6f..1d0f629d96 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -295,11 +295,11 @@ size_t Ride::GetNumPrices() const { size_t result = 0; const auto& rtd = GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE) || rtd.HasFlag(RIDE_TYPE_FLAG_IS_FIRST_AID)) + if (rtd.HasFlag(RtdFlag::isCashMachine) || rtd.HasFlag(RtdFlag::isFirstAid)) { result = 0; } - else if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET)) + else if (rtd.HasFlag(RtdFlag::isToilet)) { result = 1; } @@ -793,7 +793,7 @@ bool Ride::FindTrackGap(const CoordsXYE& input, CoordsXYE* output) const return false; const auto& rtd = GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) return false; WindowBase* w = WindowFindByClass(WindowClass::RideConstruction); @@ -846,7 +846,7 @@ void Ride::FormatStatusTo(Formatter& ft) const } else if (status == RideStatus::Closed) { - if (!GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (!GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { if (num_riders != 0) { @@ -885,7 +885,7 @@ void Ride::FormatStatusTo(Formatter& ft) const ft.Add(STR_NONE); } } - else if (!GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + else if (!GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) { ft.Add(num_riders == 1 ? STR_PERSON_ON_RIDE : STR_PEOPLE_ON_RIDE); ft.Add(num_riders); @@ -914,7 +914,7 @@ int32_t Ride::GetTotalTime() const bool Ride::CanHaveMultipleCircuits() const { - if (!(GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS))) + if (!(GetRideTypeDescriptor().HasFlag(RtdFlag::allowMultipleCircuits))) return false; // Only allow circuit or launch modes @@ -941,9 +941,9 @@ bool Ride::SupportsStatus(RideStatus s) const case RideStatus::Open: return true; case RideStatus::Simulating: - return (!rtd.HasFlag(RIDE_TYPE_FLAG_NO_TEST_MODE) && rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)); + return (!rtd.HasFlag(RtdFlag::noTestMode) && rtd.HasFlag(RtdFlag::hasTrack)); case RideStatus::Testing: - return !rtd.HasFlag(RIDE_TYPE_FLAG_NO_TEST_MODE); + return !rtd.HasFlag(RtdFlag::noTestMode); case RideStatus::Count: // Meaningless but necessary to satisfy -Wswitch return false; } @@ -1106,7 +1106,7 @@ void Ride::Update() // Update stations const auto& rtd = GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) for (StationIndex::UnderlyingType i = 0; i < OpenRCT2::Limits::kMaxStationsPerRide; i++) RideUpdateStation(*this, StationIndex::FromUnderlying(i)); @@ -1999,7 +1999,7 @@ static void RideMusicUpdate(Ride& ride) { const auto& rtd = ride.GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT) && !rtd.HasFlag(RIDE_TYPE_FLAG_ALLOW_MUSIC)) + if (!rtd.HasFlag(RtdFlag::hasMusicByDefault) && !rtd.HasFlag(RtdFlag::allowMusic)) return; rtd.MusicUpdateFunction(ride); } @@ -2166,7 +2166,7 @@ std::pair Ride::GetMeasurement() const auto& rtd = GetRideTypeDescriptor(); // Check if ride type supports data logging - if (!rtd.HasFlag(RIDE_TYPE_FLAG_HAS_DATA_LOGGING)) + if (!rtd.HasFlag(RtdFlag::hasDataLogging)) { return { nullptr, { STR_DATA_LOGGING_NOT_AVAILABLE_FOR_THIS_TYPE_OF_RIDE, {} } }; } @@ -2175,7 +2175,7 @@ std::pair Ride::GetMeasurement() if (measurement == nullptr) { measurement = std::make_unique(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (rtd.HasFlag(RtdFlag::hasGForces)) { measurement->flags |= RIDE_MEASUREMENT_FLAG_G_FORCES; } @@ -2297,7 +2297,7 @@ void RideCheckAllReachable() if (ride.status != RideStatus::Open || ride.connected_message_throttle != 0) continue; - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) RideShopConnected(ride); else RideEntranceExitConnected(ride); @@ -2607,7 +2607,7 @@ static ResultWithMessage RideModeCheckValidStationNumbers(const Ride& ride) } const auto& rtd = ride.GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ONE_STATION) && numStations > 1) + if (rtd.HasFlag(RtdFlag::hasOneStation) && numStations > 1) return { false, STR_UNABLE_TO_OPERATE_WITH_MORE_THAN_ONE_STATION_IN_THIS_MODE }; return { true }; @@ -2624,10 +2624,10 @@ static StationIndexWithMessage RideModeCheckStationPresent(const Ride& ride) if (stationIndex.IsNull()) { const auto& rtd = ride.GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!rtd.HasFlag(RtdFlag::hasTrack)) return { StationIndex::GetNull(), STR_NOT_YET_CONSTRUCTED }; - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) return { StationIndex::GetNull(), STR_NOT_YET_CONSTRUCTED }; return { StationIndex::GetNull(), STR_REQUIRES_A_STATION_PLATFORM }; @@ -2646,7 +2646,7 @@ static ResultWithMessage RideCheckForEntranceExit(RideId rideIndex) if (ride == nullptr) return { false }; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) return { true }; uint8_t entrance = 0; @@ -2790,7 +2790,7 @@ static bool RideCheckTrackContainsInversions(const CoordsXYE& input, CoordsXYE* if (ride != nullptr) { const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) return true; } @@ -2851,7 +2851,7 @@ static bool RideCheckTrackContainsBanked(const CoordsXYE& input, CoordsXYE* outp return false; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) return true; WindowBase* w = WindowFindByClass(WindowClass::RideConstruction); @@ -3184,7 +3184,7 @@ static void RideSetStartFinishPoints(RideId rideIndex, const CoordsXYE& startEle return; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) RideSetMazeEntranceExitPoints(*ride); else if (ride->type == RIDE_TYPE_BOAT_HIRE) RideSetBoatHireReturnPoint(*ride, startElement); @@ -3381,7 +3381,7 @@ static Vehicle* VehicleCreateCar( } else { - if (rtd.HasFlag(RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL)) + if (rtd.HasFlag(RtdFlag::vehicleIsIntegral)) { if (rtd.StartTrackPiece != TrackElemType::FlatTrack1x4B) { @@ -3650,7 +3650,7 @@ ResultWithMessage Ride::CreateVehicles(const CoordsXYE& element, bool isApplying } // - if (type != RIDE_TYPE_SPACE_RINGS && !GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL)) + if (type != RIDE_TYPE_SPACE_RINGS && !GetRideTypeDescriptor().HasFlag(RtdFlag::vehicleIsIntegral)) { if (IsBlockSectioned()) { @@ -3967,7 +3967,7 @@ void Ride::ConstructMissingEntranceOrExit() const } const auto& rtd = GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) { auto location = incompleteStation->GetStart(); WindowScrollToLocation(*w, location); @@ -4371,7 +4371,7 @@ void Ride::SetNameToDefault() RideNaming GetRideNaming(const ride_type_t rideType, const RideObjectEntry& rideEntry) { const auto& rtd = GetRideTypeDescriptor(rideType); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (!rtd.HasFlag(RtdFlag::listVehiclesSeparately)) { return rtd.Naming; } @@ -4702,7 +4702,7 @@ void RideFixBreakdown(Ride& ride, int32_t reliabilityIncreaseFactor) */ void RideUpdateVehicleColours(const Ride& ride) { - if (ride.type == RIDE_TYPE_SPACE_RINGS || ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL)) + if (ride.type == RIDE_TYPE_SPACE_RINGS || ride.GetRideTypeDescriptor().HasFlag(RtdFlag::vehicleIsIntegral)) { GfxInvalidateScreen(); } @@ -5132,7 +5132,7 @@ void Ride::UpdateMaxVehicles() } while (totalLength <= stationLength); if ((mode != RideMode::StationToStation && mode != RideMode::ContinuousCircuit) - || !(rtd.HasFlag(RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS))) + || !(rtd.HasFlag(RtdFlag::allowMoreVehiclesThanStationFits))) { maxNumTrains = std::min(maxNumTrains, int32_t(OpenRCT2::Limits::kMaxTrainsPerRide)); } @@ -5520,7 +5520,7 @@ int32_t RideGetEntryIndex(int32_t rideType, int32_t rideSubType) continue; } - if (!GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (!GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately)) { subType = rideEntryIndex; break; @@ -5730,7 +5730,7 @@ void Ride::FormatNameTo(Formatter& ft) const { const auto& rtd = GetRideTypeDescriptor(); auto rideTypeName = rtd.Naming.Name; - if (rtd.HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (rtd.HasFlag(RtdFlag::listVehiclesSeparately)) { auto rideEntry = GetRideEntry(); if (rideEntry != nullptr) @@ -5890,7 +5890,7 @@ ResultWithMessage Ride::ChangeStatusGetStartElement(StationIndex stationIndex, C { // Maze is strange, station start is 0... investigation required const auto& rtd = GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) return { false }; } @@ -5976,7 +5976,7 @@ ResultWithMessage Ride::ChangeStatusCreateVehicles(bool isApplying, const Coords RideSetStartFinishPoints(id, trackElement); const auto& rtd = GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_NO_VEHICLES) && !(lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK)) + if (!rtd.HasFlag(RtdFlag::noVehicles) && !(lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK)) { const auto createVehicleResult = CreateVehicles(trackElement, isApplying); if (!createVehicleResult.Successful) @@ -5985,7 +5985,7 @@ ResultWithMessage Ride::ChangeStatusCreateVehicles(bool isApplying, const Coords } } - if (rtd.HasFlag(RIDE_TYPE_FLAG_ALLOW_CABLE_LIFT_HILL) && (lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED) + if (rtd.HasFlag(RtdFlag::allowCableLiftHill) && (lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT_HILL_COMPONENT_USED) && !(lifecycle_flags & RIDE_LIFECYCLE_CABLE_LIFT)) { const auto createCableLiftResult = RideCreateCableLift(id, isApplying); diff --git a/src/openrct2/ride/RideConstruction.cpp b/src/openrct2/ride/RideConstruction.cpp index 8237cf7238..b10fdf161d 100644 --- a/src/openrct2/ride/RideConstruction.cpp +++ b/src/openrct2/ride/RideConstruction.cpp @@ -502,7 +502,7 @@ void RideRemoveProvisionalTrackPiece() int32_t z = _unkF440C5.z; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { const int32_t flags = GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_NO_SPEND | GAME_COMMAND_FLAG_GHOST; const CoordsXYZD quadrants[kNumOrthogonalDirections] = { @@ -608,14 +608,14 @@ static void ride_construction_reset_current_piece() const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_TRACK) || ride->num_stations == 0) + if (rtd.HasFlag(RtdFlag::hasTrack) || ride->num_stations == 0) { _currentlySelectedTrack = rtd.StartTrackPiece; _currentTrackPitchEnd = TrackPitch::None; _currentTrackRollEnd = TrackRoll::None; _currentTrackLiftHill = 0; _currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES; - if (rtd.HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED)) + if (rtd.HasFlag(RtdFlag::startConstructionInverted)) { _currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE; } @@ -662,7 +662,7 @@ void RideConstructionSetDefaultNextPiece() tileElement = trackBeginEnd.begin_element; trackType = tileElement->AsTrack()->GetTrackType(); - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { ride_construction_reset_current_piece(); return; @@ -670,7 +670,7 @@ void RideConstructionSetDefaultNextPiece() // Set whether track is covered _currentTrackAlternative &= ~RIDE_TYPE_ALTERNATIVE_TRACK_TYPE; - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (rtd.HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -686,7 +686,7 @@ void RideConstructionSetDefaultNextPiece() _currentlySelectedTrack = ted->curveChain.next; // Set track banking - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (rtd.HasFlag(RtdFlag::hasInvertedVariant)) { if (bank == TrackRoll::UpsideDown) { @@ -718,7 +718,7 @@ void RideConstructionSetDefaultNextPiece() // Set whether track is covered _currentTrackAlternative &= ~RIDE_TYPE_ALTERNATIVE_TRACK_TYPE; - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (rtd.HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -734,7 +734,7 @@ void RideConstructionSetDefaultNextPiece() _currentlySelectedTrack = ted->curveChain.previous; // Set track banking - if (rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (rtd.HasFlag(RtdFlag::hasInvertedVariant)) { if (bank == TrackRoll::UpsideDown) { @@ -1026,12 +1026,12 @@ bool RideModify(const CoordsXYE& input) ride_create_or_find_construction_window(rideIndex); const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { return ride_modify_maze(tileElement); } - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::cannotHaveGaps)) { CoordsXYE endOfTrackElement{}; if (ride->FindTrackGap(tileElement, &endOfTrackElement)) @@ -1057,7 +1057,7 @@ bool RideModify(const CoordsXYE& input) _rideConstructionNextArrowPulse = 0; gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE_ARROW; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { WindowRideConstructionUpdateActiveElements(); return true; @@ -1118,7 +1118,7 @@ int32_t RideInitialiseConstructionWindow(Ride& ride) _currentTrackLiftHill = 0; _currentTrackAlternative = RIDE_TYPE_NO_ALTERNATIVES; - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::startConstructionInverted)) _currentTrackAlternative |= RIDE_TYPE_ALTERNATIVE_TRACK_TYPE; _previousTrackRollEnd = TrackRoll::None; @@ -1214,7 +1214,7 @@ void Ride::ValidateStations() { const TrackElementDescriptor* ted; const auto& rtd = GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) { // find the stations of the ride to begin stepping over track elements from for (const auto& station : stations) @@ -1271,7 +1271,7 @@ void Ride::ValidateStations() // In the future this could look at the TED and see if the station has a sequence longer than 1 // tower ride, flat ride, shop - if (GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION)) + if (GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation)) { // if the track has multiple sequences, stop looking for the next one. specialTrack = true; @@ -1511,7 +1511,7 @@ bool RideSelectForwardsFromBack() */ ResultWithMessage RideAreAllPossibleEntrancesAndExitsBuilt(const Ride& ride) { - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) return { true }; for (auto& station : ride.GetStations()) diff --git a/src/openrct2/ride/RideData.cpp b/src/openrct2/ride/RideData.cpp index b175d886bb..e2b6df4f2d 100644 --- a/src/openrct2/ride/RideData.cpp +++ b/src/openrct2/ride/RideData.cpp @@ -354,9 +354,9 @@ constexpr RideTypeDescriptor RideTypeDescriptors[RIDE_TYPE_COUNT] = { /* RIDE_TYPE_CLASSIC_STAND_UP_ROLLER_COASTER */ ClassicStandUpRollerCoasterRTD, }; -bool RideTypeDescriptor::HasFlag(uint64_t flag) const +bool RideTypeDescriptor::HasFlag(RtdFlag flag) const { - return Flags & flag; + return ::HasFlag(Flags, flag); } bool RideTypeDescriptor::SupportsTrackGroup(const TrackGroup trackGroup) const diff --git a/src/openrct2/ride/RideData.h b/src/openrct2/ride/RideData.h index a46161b75a..ad0e2afed9 100644 --- a/src/openrct2/ride/RideData.h +++ b/src/openrct2/ride/RideData.h @@ -324,6 +324,130 @@ struct TrackDrawerDescriptor bool HasCoveredPieces() const; }; +enum class RtdFlag : uint8_t +{ + hasTrackColourMain = 0, + hasTrackColourAdditional = 1, + hasTrackColourSupports = 2, + + // Set by flat rides, tower rides and shops/stalls. + hasSinglePieceStation = 3, + + hasLeaveWhenAnotherVehicleArrivesAtStation = 4, + canSynchroniseWithAdjacentStations = 5, + + // Used only by boat Hire and submarine ride + trackMustBeOnWater = 6, + + hasGForces = 7, + + // Used by rides that can't have gaps, like those with a vertical tower, + // such as the observation tower. + cannotHaveGaps = 8, + + hasDataLogging = 9, + hasDrops = 10, + + noTestMode = 11, + // Set on rides with two varieties, like the u and o shapes of the dinghy slide + // and the dry and submerged track of the water coaster. + + hasCoveredPieces = 12, + + // Used only by maze, spiral slide and shops + noVehicles = 13, + + hasLoadOptions = 14, + hasLsmBehaviourOnFlat = 15, + + // Set by flat rides where the vehicle is integral to the structure, like + // Merry-go-round and swinging ships. (Contrast with rides like dodgems.) + vehicleIsIntegral = 16, + + isShopOrFacility = 17, + + // If set, wall scenery can not share a tile with the ride's track + noWallsAroundTrack = 18, + + isFlatRide = 19, + + // Whether or not guests will go on the ride again if they liked it + // (this is usually applied to everything apart from transport rides). + guestsWillRideAgain = 20, + + // Used by Toilets and First Aid to mark that guest should go + // inside the building (rather than 'buying' at the counter) + guestsShouldGoInsideFacility = 21, + + // Guests are "IN" (ride) rather than "ON" (ride) + describeAsInside = 22, + + sellsFood = 23, + sellsDrinks = 24, + isToilet = 25, + + // Whether or not vehicle colours can be set + hasVehicleColours = 26, + + checkForStalling = 27, + hasTrack = 28, + + // Only set by lift + allowExtraTowerBases = 29, + + // Only set by reverser coaster + layeredVehiclePreview = 30, + + supportsMultipleColourSchemes = 31, + allowDoorsOnTrack = 32, + hasMusicByDefault = 33, + allowMusic = 34, + + // Used by the Flying RC, Lay-down RC, Multi-dimension RC + hasInvertedVariant = 35, + + checkGForces = 36, + hasEntranceAndExit = 37, + allowMoreVehiclesThanStationFits = 38, + hasAirTime = 39, + singleSession = 40, + allowMultipleCircuits = 41, + allowCableLiftHill = 42, + showInTrackDesigner = 43, + isTransportRide = 44, + interestingToLookAt = 45, + slightlyInterestingToLookAt = 46, + + // This is only set on the Flying RC and its alternative type. + startConstructionInverted = 47, + + listVehiclesSeparately = 48, + supportsLevelCrossings = 49, + isSuspended = 50, + hasLandscapeDoors = 51, + upInclineRequiresLift = 52, + guestsCanUseUmbrella = 53, + isCashMachine = 54, + hasOneStation = 55, + hasSeatRotation = 56, + isFirstAid = 57, + isMaze = 58, + isSpiralSlide = 59, + allowReversedTrains = 60, +}; + +// Set on ride types that have a main colour, additional colour and support colour. +constexpr uint64_t kRtdFlagsHasThreeColours = EnumsToFlags( + RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourAdditional, RtdFlag::hasTrackColourSupports); +// Set on _all_ roller coaster ride types, including the _ALT types used for constructing upside down. +constexpr uint64_t kRtdFlagsCommonCoaster = EnumsToFlags( + RtdFlag::hasGForces, RtdFlag::hasDataLogging, RtdFlag::hasDrops, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::checkForStalling, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::interestingToLookAt, RtdFlag::canSynchroniseWithAdjacentStations); +// Set on all roller coaster ride types, excluding the _ALT types used for constructing upside down. +constexpr uint64_t kRtdFlagsCommonCoasterNonAlt = EnumsToFlags( + RtdFlag::showInTrackDesigner, RtdFlag::hasAirTime, RtdFlag::hasEntranceAndExit); + struct RideTypeDescriptor { uint8_t Category{}; @@ -393,7 +517,7 @@ struct RideTypeDescriptor UpdateRideApproachVehicleWaypointsFunction UpdateRideApproachVehicleWaypoints = UpdateRideApproachVehicleWaypointsDefault; - bool HasFlag(uint64_t flag) const; + bool HasFlag(RtdFlag flag) const; /** @deprecated */ bool SupportsTrackGroup(const TrackGroup trackGroup) const; ResearchCategory GetResearchCategory() const; @@ -409,94 +533,6 @@ enum RIDE_TYPE_ALTERNATIVE_TRACK_TYPE = 2, // Flying RC, Lay-down RC, Multi-dimension RC }; -enum ride_type_flags : uint64_t -{ - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN = (1uLL << 0), - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL = (1uLL << 1), - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS = (1uLL << 2), - RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION = (1uLL << 3), // Set by flat rides, tower rides and shops/stalls. - RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION = (1uLL << 4), - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS = (1uLL << 5), - RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER = (1uLL << 6), // used only by boat Hire and submarine ride - RIDE_TYPE_FLAG_HAS_G_FORCES = (1uLL << 7), - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS = (1uLL << 8), // used by rides that can't have gaps, like those with a vertical tower, such - // as the observation tower - RIDE_TYPE_FLAG_HAS_DATA_LOGGING = (1uLL << 9), - RIDE_TYPE_FLAG_HAS_DROPS = (1uLL << 10), - RIDE_TYPE_FLAG_NO_TEST_MODE = (1uLL << 11), - RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES = (1uLL << 12), // set on rides with two varieties, - // like the u and o shapes of the dinghy slide - // and the dry and submerged track of the water - // coaster - RIDE_TYPE_FLAG_NO_VEHICLES = (1uLL << 13), // used only by maze, spiral slide and shops - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS = (1uLL << 14), - RIDE_TYPE_FLAG_LSM_BEHAVIOUR_ON_FLAT = (1uLL << 15), - RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL = (1uLL << 16), // Set by flat rides where the vehicle is integral to the structure, like - // Merry-go-round and swinging ships. (Contrast with rides like dodgems.) - RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY = (1uLL << 17), - RIDE_TYPE_FLAG_TRACK_NO_WALLS = (1uLL << 18), // if set, wall scenery can not share a tile with the ride's track - RIDE_TYPE_FLAG_FLAT_RIDE = (1uLL << 19), - RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN = (1uLL << 20), // whether or not guests will go on the ride again if they liked it - // (this is - // usually applied to everything apart from transport rides) - RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY = (1uLL << 21), // used by toilets and first aid to mark that peep should go - // inside the building (rather than 'buying' at the counter) - RIDE_TYPE_FLAG_IN_RIDE = (1uLL << 22), // peeps are "IN" (ride) rather than "ON" (ride) - RIDE_TYPE_FLAG_SELLS_FOOD = (1uLL << 23), - RIDE_TYPE_FLAG_SELLS_DRINKS = (1uLL << 24), - RIDE_TYPE_FLAG_IS_TOILET = (1uLL << 25), - RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS = (1uLL << 26), // whether or not vehicle colours can be set - RIDE_TYPE_FLAG_CHECK_FOR_STALLING = (1uLL << 27), - RIDE_TYPE_FLAG_HAS_TRACK = (1uLL << 28), - RIDE_TYPE_FLAG_ALLOW_EXTRA_TOWER_BASES = (1uLL << 29), // Only set by lift - RIDE_TYPE_FLAG_LAYERED_VEHICLE_PREVIEW = (1uLL << 30), // Only set by reverser coaster - RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR = (1uLL << 31), - - RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK = (1uLL << 32), - RIDE_TYPE_FLAG_MUSIC_ON_DEFAULT = (1uLL << 33), - RIDE_TYPE_FLAG_ALLOW_MUSIC = (1uLL << 34), - RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE = (1uLL << 35), // Used by the Flying RC, Lay-down RC, Multi-dimension RC - RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES = (1uLL << 36), - RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT = (1uLL << 37), - RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS = (1uLL << 38), - RIDE_TYPE_FLAG_HAS_AIR_TIME = (1uLL << 39), - RIDE_TYPE_FLAG_SINGLE_SESSION = (1uLL << 40), - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS = (1uLL << 41), - RIDE_TYPE_FLAG_ALLOW_CABLE_LIFT_HILL = (1uLL << 42), - RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER = (1uLL << 43), - RIDE_TYPE_FLAG_TRANSPORT_RIDE = (1uLL << 44), - RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT = (1uLL << 45), - RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT = (1uLL << 46), - RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED = (1uLL << 47), // This is only set on the Flying RC and its alternative type. - - RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY = (1uLL << 48), - RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS = (1uLL << 49), - RIDE_TYPE_FLAG_IS_SUSPENDED = (1uLL << 50), - RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS = (1uLL << 51), - RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT = (1uLL << 52), - RIDE_TYPE_FLAG_PEEP_CAN_USE_UMBRELLA = (1uLL << 53), - RIDE_TYPE_FLAG_IS_CASH_MACHINE = (1uLL << 54), - RIDE_TYPE_FLAG_HAS_ONE_STATION = (1uLL << 55), - RIDE_TYPE_FLAG_HAS_SEAT_ROTATION = (1uLL << 56), - RIDE_TYPE_FLAG_IS_FIRST_AID = (1uLL << 57), - RIDE_TYPE_FLAG_IS_MAZE = (1uLL << 58), - RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE = (1uLL << 59), - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS = (1uLL << 60), -}; - -// Set on ride types that have a main colour, additional colour and support colour. -constexpr uint64_t RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN - | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS; -// Set on _all_ roller coaster ride types, including the _ALT types used for constructing upside down. -constexpr uint64_t RIDE_TYPE_FLAGS_COMMON_COASTER = RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING - | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN - | 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_INTERESTING_TO_LOOK_AT - | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS; -// Set on all roller coaster ride types, excluding the _ALT types used for constructing upside down. -constexpr uint64_t RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT = RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_HAS_AIR_TIME - | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT; - // clang-format off constexpr RideComponentName RideComponentNames[] = { diff --git a/src/openrct2/ride/RideRatings.cpp b/src/openrct2/ride/RideRatings.cpp index fd474effb7..f40c9c7de1 100644 --- a/src/openrct2/ride/RideRatings.cpp +++ b/src/openrct2/ride/RideRatings.cpp @@ -371,7 +371,7 @@ static void ride_ratings_update_state_2(RideRatingUpdateState& state) if (tileElement->AsTrack()->GetRideIndex() != ride->id) { // Only check that the track belongs to the same ride if ride does not have buildable track - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) continue; } @@ -477,7 +477,7 @@ static void ride_ratings_update_state_5(RideRatingUpdateState& state) if (tileElement->AsTrack()->GetRideIndex() != ride->id) { // Only check that the track belongs to the same ride if ride does not have buildable track - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) continue; } @@ -523,7 +523,7 @@ static void ride_ratings_begin_proximity_loop(RideRatingUpdateState& state) } const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { state.State = RIDE_RATINGS_STATE_CALCULATE; return; @@ -1282,7 +1282,7 @@ static void RideRatingsApplyAdjustments(const Ride& ride, RatingTuple& ratings) // Apply total air time #ifdef ORIGINAL_RATINGS - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_AIR_TIME)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasAirTime)) { uint16_t totalAirTime = ride.totalAirTime; if (rideEntry->flags & RIDE_ENTRY_FLAG_LIMIT_AIRTIME_BONUS) @@ -1301,7 +1301,7 @@ static void RideRatingsApplyAdjustments(const Ride& ride, RatingTuple& ratings) } } #else - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_AIR_TIME)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasAirTime)) { int32_t excitementModifier; if (rideEntry->flags & RIDE_ENTRY_FLAG_LIMIT_AIRTIME_BONUS) @@ -1764,7 +1764,7 @@ static int32_t ride_ratings_get_scenery_score(const Ride& ride) } const auto& rtd = ride.GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { location = ride.GetStation().Entrance.ToCoordsXY(); } diff --git a/src/openrct2/ride/Track.cpp b/src/openrct2/ride/Track.cpp index 40524582b8..e32615195a 100644 --- a/src/openrct2/ride/Track.cpp +++ b/src/openrct2/ride/Track.cpp @@ -124,7 +124,7 @@ ResultWithMessage TrackAddStationElement(CoordsXYZD loc, RideId rideIndex, int32 CoordsXY stationFrontLoc = loc; int32_t stationLength = 1; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation)) { if (ride->num_stations >= Limits::kMaxStationsPerRide) { @@ -276,7 +276,7 @@ ResultWithMessage TrackRemoveStationElement(const CoordsXYZD& loc, RideId rideIn int32_t stationLength = 0; int32_t ByteF441D1 = -1; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasSinglePieceStation)) { TileElement* tileElement = MapGetTrackElementAtWithDirectionFromRide(loc, rideIndex); if (tileElement != nullptr) @@ -580,7 +580,7 @@ TrackRoll TrackGetActualBank(TileElement* tileElement, TrackRoll bank) TrackRoll TrackGetActualBank2(int32_t rideType, bool isInverted, TrackRoll bank) { - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::hasInvertedVariant)) { if (isInverted) { @@ -763,7 +763,7 @@ std::optional GetTrackSegmentOrigin(const CoordsXYE& posEl) uint8_t TrackElement::GetSeatRotation() const { const auto* ride = GetRide(GetRideIndex()); - if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS)) + if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLandscapeDoors)) return DEFAULT_SEAT_ROTATION; return URide.ColourScheme >> 4; diff --git a/src/openrct2/ride/TrackDesign.cpp b/src/openrct2/ride/TrackDesign.cpp index 5eb226295f..974a7e7301 100644 --- a/src/openrct2/ride/TrackDesign.cpp +++ b/src/openrct2/ride/TrackDesign.cpp @@ -239,7 +239,7 @@ ResultWithMessage TrackDesign::CreateTrackDesignTrack(TrackDesignState& tds, con if (element->HasChain()) track.SetFlag(TrackDesignTrackElementFlag::hasChain); - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE) && element->IsInverted()) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasInvertedVariant) && element->IsInverted()) { track.SetFlag(TrackDesignTrackElementFlag::isInverted); } @@ -903,7 +903,7 @@ static void TrackDesignMirrorMaze(TrackDesign& td) void TrackDesignMirror(TrackDesign& td) { const auto& rtd = GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { TrackDesignMirrorMaze(td); } @@ -1763,7 +1763,7 @@ static GameActions::Result TrackDesignPlaceVirtual( GameActions::Result trackPlaceRes; const auto& rtd = GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { trackPlaceRes = TrackDesignPlaceMaze(tds, td, coords, ride); } @@ -1903,7 +1903,7 @@ static bool TrackDesignPlacePreview( // Flat rides need their vehicle colours loaded for display // in the preview window - if (!GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasTrack)) { for (size_t i = 0; i < std::size(ride->vehicle_colours); i++) { @@ -2084,7 +2084,7 @@ void TrackDesignDrawPreview(TrackDesign& td, uint8_t* pixels) // Special case for flat rides - Z-axis info is irrelevant // and must be zeroed out lest the preview be off-centre - if (!GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!GetRideTypeDescriptor(td.trackAndVehicle.rtdIndex).HasFlag(RtdFlag::hasTrack)) { centre.z = 0; size_z = 0; diff --git a/src/openrct2/ride/TrackDesignRepository.cpp b/src/openrct2/ride/TrackDesignRepository.cpp index 29b5ac0ced..9665171c84 100644 --- a/src/openrct2/ride/TrackDesignRepository.cpp +++ b/src/openrct2/ride/TrackDesignRepository.cpp @@ -151,7 +151,7 @@ public: { const ObjectRepositoryItem* ori = repo.FindObjectLegacy(item.ObjectEntry.c_str()); - if (ori == nullptr || !GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (ori == nullptr || !GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately)) entryIsNotSeparate = true; } @@ -185,7 +185,7 @@ public: { const ObjectRepositoryItem* ori = repo.FindObjectLegacy(item.ObjectEntry.c_str()); - if (ori == nullptr || !GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) + if (ori == nullptr || !GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::listVehiclesSeparately)) entryIsNotSeparate = true; } diff --git a/src/openrct2/ride/TrackPaint.cpp b/src/openrct2/ride/TrackPaint.cpp index 051f066eb0..b36305bfd9 100644 --- a/src/openrct2/ride/TrackPaint.cpp +++ b/src/openrct2/ride/TrackPaint.cpp @@ -1991,13 +1991,12 @@ void PaintTrack(PaintSession& session, Direction direction, int32_t height, cons { uint8_t zOffset = 16; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_TOILET) || rtd.HasFlag(RIDE_TYPE_FLAG_IS_FIRST_AID) - || rtd.HasFlag(RIDE_TYPE_FLAG_IS_CASH_MACHINE)) + if (rtd.HasFlag(RtdFlag::isToilet) || rtd.HasFlag(RtdFlag::isFirstAid) || rtd.HasFlag(RtdFlag::isCashMachine)) zOffset = 23; if (ride->type == RIDE_TYPE_INFORMATION_KIOSK) LightFxAddKioskLights(session.MapPosition, height, zOffset); - else if (RideTypeDescriptors[ride->type].HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + else if (RideTypeDescriptors[ride->type].HasFlag(RtdFlag::isShopOrFacility)) LightFxAddShopLights(session.MapPosition, trackElement.GetDirection(), height, zOffset); } @@ -2024,7 +2023,7 @@ void PaintTrack(PaintSession& session, Direction direction, int32_t height, cons } const auto& rtd = GetRideTypeDescriptor(trackElement.GetRideType()); - bool isInverted = trackElement.IsInverted() && rtd.HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE); + bool isInverted = trackElement.IsInverted() && rtd.HasFlag(RtdFlag::hasInvertedVariant); const auto trackDrawerEntry = getTrackDrawerEntry(rtd, isInverted, TrackElementIsCovered(trackType)); if (trackDrawerEntry.Drawer != nullptr) diff --git a/src/openrct2/ride/Vehicle.cpp b/src/openrct2/ride/Vehicle.cpp index 065c58df29..a8456b7843 100644 --- a/src/openrct2/ride/Vehicle.cpp +++ b/src/openrct2/ride/Vehicle.cpp @@ -860,7 +860,7 @@ void Vehicle::UpdateMeasurements() stationForTestSegment.SegmentLength = AddClamp(stationForTestSegment.SegmentLength, distance); } - if (curRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_G_FORCES)) + if (curRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasGForces)) { auto gForces = GetGForces(); gForces.VerticalG += curRide->previous_vertical_g; @@ -1593,7 +1593,7 @@ void Vehicle::UpdateWaitingForPassengers() } } - if (curRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS)) + if (curRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLoadOptions)) { if (curRide->depart_flags & RIDE_DEPART_WAIT_FOR_MINIMUM_LENGTH) { @@ -1638,7 +1638,7 @@ void Vehicle::UpdateWaitingForPassengers() } } - if (curRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS) + if (curRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLoadOptions) && curRide->depart_flags & RIDE_DEPART_WAIT_FOR_LOAD) { if (num_peeps_on_train == num_seats_on_train) @@ -1802,7 +1802,7 @@ void Vehicle::UpdateWaitingToDepart() return; } - if (curRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS)) + if (curRide->GetRideTypeDescriptor().HasFlag(RtdFlag::canSynchroniseWithAdjacentStations)) { if (curRide->depart_flags & RIDE_DEPART_SYNCHRONISE_WITH_ADJACENT_STATIONS) { @@ -2752,7 +2752,7 @@ void Vehicle::CheckIfMissing() if (curRide->IsBlockSectioned()) return; - if (!curRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_CHECK_FOR_STALLING)) + if (!curRide->GetRideTypeDescriptor().HasFlag(RtdFlag::checkForStalling)) return; lost_time_out++; @@ -3216,8 +3216,8 @@ void Vehicle::UpdateArrivingPassThroughStation(const Ride& curRide, const CarEnt return; } - if (GetRideTypeDescriptor(curRide.type).HasFlag(RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS) - && curRide.mode != RideMode::Shuttle && curRide.mode != RideMode::PoweredLaunch) + if (GetRideTypeDescriptor(curRide.type).HasFlag(RtdFlag::allowMultipleCircuits) && curRide.mode != RideMode::Shuttle + && curRide.mode != RideMode::PoweredLaunch) { SetFlag(VehicleFlags::ReverseInclineCompletedLap); } @@ -6337,7 +6337,7 @@ template static void AnimateLandscapeDoor(TrackElement* trackE void Vehicle::UpdateLandscapeDoor() const { const auto* currentRide = GetRide(); - if (currentRide == nullptr || !currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS)) + if (currentRide == nullptr || !currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLandscapeDoors)) { return; } @@ -6410,7 +6410,7 @@ void Vehicle::UpdateSceneryDoorBackwards() const void Vehicle::UpdateLandscapeDoorBackwards() const { const auto* currentRide = GetRide(); - if (currentRide == nullptr || !currentRide->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS)) + if (currentRide == nullptr || !currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasLandscapeDoors)) { return; } @@ -6988,7 +6988,7 @@ bool Vehicle::UpdateTrackMotionForwardsGetNewTrack(uint16_t trackType, const Rid ClearFlag(VehicleFlags::CarIsInverted); { int32_t rideType = ::GetRide(tileElement->AsTrack()->GetRideIndex())->type; - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -7123,7 +7123,7 @@ Loc6DAEB9: acceleration += CalculateRiderBraking(); } - if ((trackType == TrackElemType::Flat && curRide.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_LSM_BEHAVIOUR_ON_FLAT)) + if ((trackType == TrackElemType::Flat && curRide.GetRideTypeDescriptor().HasFlag(RtdFlag::hasLsmBehaviourOnFlat)) || (trackType == TrackElemType::PoweredLift)) { acceleration = GetRideTypeDescriptor(curRide.type).LegacyBoosterSettings.PoweredLiftAcceleration << 16; @@ -7366,7 +7366,7 @@ bool Vehicle::UpdateTrackMotionBackwardsGetNewTrack(uint16_t trackType, const Ri // Update VehicleFlags::CarIsInverted ClearFlag(VehicleFlags::CarIsInverted); - if (GetRideTypeDescriptor(curRide.type).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (GetRideTypeDescriptor(curRide.type).HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -7471,7 +7471,7 @@ bool Vehicle::UpdateTrackMotionBackwards(const CarEntry* carEntry, const Ride& c while (true) { auto trackType = GetTrackType(); - if (trackType == TrackElemType::Flat && curRide.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_LSM_BEHAVIOUR_ON_FLAT)) + if (trackType == TrackElemType::Flat && curRide.GetRideTypeDescriptor().HasFlag(RtdFlag::hasLsmBehaviourOnFlat)) { int32_t unkVelocity = _vehicleVelocityF64E08; if (unkVelocity < -524288) @@ -7858,7 +7858,7 @@ Loc6DC462: { int32_t rideType = ::GetRide(tileElement->AsTrack()->GetRideIndex())->type; ClearFlag(VehicleFlags::CarIsInverted); - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -8077,7 +8077,7 @@ Loc6DCA9A: { int32_t rideType = ::GetRide(tileElement->AsTrack()->GetRideIndex())->type; ClearFlag(VehicleFlags::CarIsInverted); - if (GetRideTypeDescriptor(rideType).HasFlag(RIDE_TYPE_FLAG_HAS_ALTERNATIVE_TRACK_TYPE)) + if (GetRideTypeDescriptor(rideType).HasFlag(RtdFlag::hasInvertedVariant)) { if (tileElement->AsTrack()->IsInverted()) { @@ -8777,7 +8777,7 @@ void Vehicle::UpdateCrossings() const // Parks may have rides hacked into the path. // Limit path blocking to rides actually supporting level crossings to prevent peeps getting stuck everywhere. - if (!GetRideTypeDescriptor(curRide->type).HasFlag(RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS)) + if (!GetRideTypeDescriptor(curRide->type).HasFlag(RtdFlag::supportsLevelCrossings)) { return; } diff --git a/src/openrct2/ride/rtd/coaster/AirPoweredVerticalCoaster.h b/src/openrct2/ride/rtd/coaster/AirPoweredVerticalCoaster.h index 967a33a819..0ff4e16129 100644 --- a/src/openrct2/ride/rtd/coaster/AirPoweredVerticalCoaster.h +++ b/src/openrct2/ride/rtd/coaster/AirPoweredVerticalCoaster.h @@ -25,7 +25,7 @@ constexpr RideTypeDescriptor AirPoweredVerticalCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | EnumsToFlags(RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch), .DefaultMode = RideMode::PoweredLaunchPasstrough, .OperatingSettings = { 30, 50 }, diff --git a/src/openrct2/ride/rtd/coaster/AlpineCoaster.h b/src/openrct2/ride/rtd/coaster/AlpineCoaster.h index d3174a19e0..49ae6cd4d7 100644 --- a/src/openrct2/ride/rtd/coaster/AlpineCoaster.h +++ b/src/openrct2/ride/rtd/coaster/AlpineCoaster.h @@ -24,12 +24,12 @@ constexpr RideTypeDescriptor AlpineCoasterRTD = .ExtraTrackPieces = {TrackGroup::helixUpBankedHalf}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN - | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK - | RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR - | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | - RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | RIDE_TYPE_FLAG_UP_INCLINE_REQUIRES_LIFT, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasDataLogging, RtdFlag::hasDrops, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::checkForStalling, RtdFlag::hasTrack, + RtdFlag::allowMusic, RtdFlag::interestingToLookAt, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasEntranceAndExit, + RtdFlag::noTestMode, RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::upInclineRequiresLift), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .TrackSpeedSettings = { 10, 10 }, diff --git a/src/openrct2/ride/rtd/coaster/BobsleighCoaster.h b/src/openrct2/ride/rtd/coaster/BobsleighCoaster.h index f982f6c6c3..06b10e54d4 100644 --- a/src/openrct2/ride/rtd/coaster/BobsleighCoaster.h +++ b/src/openrct2/ride/rtd/coaster/BobsleighCoaster.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor BobsleighCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_BOBSLEIGH_COASTER, STR_RIDE_DESCRIPTION_BOBSLEIGH_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/ClassicMiniRollerCoaster.h b/src/openrct2/ride/rtd/coaster/ClassicMiniRollerCoaster.h index f841424ec9..aa4daaa244 100644 --- a/src/openrct2/ride/rtd/coaster/ClassicMiniRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/ClassicMiniRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor ClassicMiniRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::onridePhoto}, }), .InvertedTrackPaintFunctions = {}, - .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 | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::allowDoorsOnTrack, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 17, 16 }, diff --git a/src/openrct2/ride/rtd/coaster/ClassicStandUpRollerCoaster.h b/src/openrct2/ride/rtd/coaster/ClassicStandUpRollerCoaster.h index ceb66d1786..70cd2ef9fe 100644 --- a/src/openrct2/ride/rtd/coaster/ClassicStandUpRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/ClassicStandUpRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor ClassicStandUpRollerCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 7, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/ClassicWoodenRollerCoaster.h b/src/openrct2/ride/rtd/coaster/ClassicWoodenRollerCoaster.h index cf0c93249d..4cbf27f634 100644 --- a/src/openrct2/ride/rtd/coaster/ClassicWoodenRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/ClassicWoodenRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor ClassicWoodenRollerCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 0, 68 }, diff --git a/src/openrct2/ride/rtd/coaster/CompactInvertedCoaster.h b/src/openrct2/ride/rtd/coaster/CompactInvertedCoaster.h index 6965f1b2df..e2f9f835a2 100644 --- a/src/openrct2/ride/rtd/coaster/CompactInvertedCoaster.h +++ b/src/openrct2/ride/rtd/coaster/CompactInvertedCoaster.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor CompactInvertedCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 7, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/CorkscrewRollerCoaster.h b/src/openrct2/ride/rtd/coaster/CorkscrewRollerCoaster.h index d724974851..5e38a1a395 100644 --- a/src/openrct2/ride/rtd/coaster/CorkscrewRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/CorkscrewRollerCoaster.h @@ -26,10 +26,9 @@ constexpr RideTypeDescriptor CorkscrewRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::twist}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/FlyingRollerCoaster.h b/src/openrct2/ride/rtd/coaster/FlyingRollerCoaster.h index 4b8ce5b8eb..a77267f491 100644 --- a/src/openrct2/ride/rtd/coaster/FlyingRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/FlyingRollerCoaster.h @@ -30,10 +30,9 @@ constexpr RideTypeDescriptor FlyingRollerCoasterRTD = .EnabledTrackPieces = {TrackGroup::straight, TrackGroup::stationEnd, TrackGroup::liftHill, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve, TrackGroup::slopeCurveSteep, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::helixDownBankedQuarter, TrackGroup::helixUpBankedQuarter, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::blockBrakes, TrackGroup::slopeRollBanking, TrackGroup::inlineTwistInverted, TrackGroup::flyingHalfLoopInvertedDown, TrackGroup::quarterLoopInvertedDown, TrackGroup::flyingLargeHalfLoopInvertedDown, TrackGroup::booster, TrackGroup::diagBrakes, TrackGroup::diagBlockBrakes}, .ExtraTrackPieces = {TrackGroup::flyingLargeHalfLoopInvertedUp, TrackGroup::flyingHalfLoopInvertedUp}, }), - .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_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_START_CONSTRUCTION_INVERTED, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::hasInvertedVariant, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::startConstructionInverted), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, @@ -108,8 +107,8 @@ constexpr RideTypeDescriptor FlyingRollerCoasterAltRTD = .EnabledTrackPieces = { }, .ExtraTrackPieces = { }, }), - .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_START_CONSTRUCTION_INVERTED, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::startConstructionInverted), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/GigaCoaster.h b/src/openrct2/ride/rtd/coaster/GigaCoaster.h index a03e8dddb1..616e789988 100644 --- a/src/openrct2/ride/rtd/coaster/GigaCoaster.h +++ b/src/openrct2/ride/rtd/coaster/GigaCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor GigaCoasterRTD = .ExtraTrackPieces = {TrackGroup::barrelRoll, TrackGroup::quarterLoop, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge, TrackGroup::verticalLoop, TrackGroup::corkscrew, TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_CABLE_LIFT_HILL | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowCableLiftHill, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/HeartlineTwisterCoaster.h b/src/openrct2/ride/rtd/coaster/HeartlineTwisterCoaster.h index b3e0a38231..8522efd240 100644 --- a/src/openrct2/ride/rtd/coaster/HeartlineTwisterCoaster.h +++ b/src/openrct2/ride/rtd/coaster/HeartlineTwisterCoaster.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor HeartlineTwisterCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/HybridCoaster.h b/src/openrct2/ride/rtd/coaster/HybridCoaster.h index 4f6f02e720..629ab98e3a 100644 --- a/src/openrct2/ride/rtd/coaster/HybridCoaster.h +++ b/src/openrct2/ride/rtd/coaster/HybridCoaster.h @@ -24,9 +24,10 @@ constexpr RideTypeDescriptor HybridCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | - RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 15, 52 }, diff --git a/src/openrct2/ride/rtd/coaster/HyperTwister.h b/src/openrct2/ride/rtd/coaster/HyperTwister.h index 3f6e34e01b..cda8bbc8e0 100644 --- a/src/openrct2/ride/rtd/coaster/HyperTwister.h +++ b/src/openrct2/ride/rtd/coaster/HyperTwister.h @@ -27,10 +27,9 @@ constexpr RideTypeDescriptor HyperTwisterRTD = .ExtraTrackPieces = { TrackGroup::liftHillSteep, TrackGroup::brakeForDrop, TrackGroup::booster, TrackGroup::poweredLift }, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/Hypercoaster.h b/src/openrct2/ride/rtd/coaster/Hypercoaster.h index 05c34df9e9..c947853ef7 100644 --- a/src/openrct2/ride/rtd/coaster/Hypercoaster.h +++ b/src/openrct2/ride/rtd/coaster/Hypercoaster.h @@ -26,10 +26,9 @@ constexpr RideTypeDescriptor HypercoasterRTD = .ExtraTrackPieces = {TrackGroup::verticalLoop, TrackGroup::halfLoop, TrackGroup::corkscrew, TrackGroup::booster}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::ReverseInclineLaunchedShuttle), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/InvertedHairpinCoaster.h b/src/openrct2/ride/rtd/coaster/InvertedHairpinCoaster.h index 53db32d5a4..13a461c221 100644 --- a/src/openrct2/ride/rtd/coaster/InvertedHairpinCoaster.h +++ b/src/openrct2/ride/rtd/coaster/InvertedHairpinCoaster.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor InvertedHairpinCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_INVERTED_HAIRPIN_COASTER, STR_RIDE_DESCRIPTION_INVERTED_HAIRPIN_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/InvertedImpulseCoaster.h b/src/openrct2/ride/rtd/coaster/InvertedImpulseCoaster.h index 40c433fe5c..b723e6659a 100644 --- a/src/openrct2/ride/rtd/coaster/InvertedImpulseCoaster.h +++ b/src/openrct2/ride/rtd/coaster/InvertedImpulseCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor InvertedImpulseCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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 | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::isSuspended, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch), .DefaultMode = RideMode::PoweredLaunchPasstrough, .OperatingSettings = { 10, 33 }, diff --git a/src/openrct2/ride/rtd/coaster/InvertedRollerCoaster.h b/src/openrct2/ride/rtd/coaster/InvertedRollerCoaster.h index 6316a74dce..037d21446c 100644 --- a/src/openrct2/ride/rtd/coaster/InvertedRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/InvertedRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor InvertedRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster}, }), .InvertedTrackPaintFunctions = {}, - .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 | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::isSuspended, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 7, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/JuniorRollerCoaster.h b/src/openrct2/ride/rtd/coaster/JuniorRollerCoaster.h index ef775a1a94..fa20e8aabf 100644 --- a/src/openrct2/ride/rtd/coaster/JuniorRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/JuniorRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor JuniorRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::onridePhoto}, }), .InvertedTrackPaintFunctions = {}, - .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 | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::allowDoorsOnTrack, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .TrackSpeedSettings = { 30, 15 }, diff --git a/src/openrct2/ride/rtd/coaster/LIMLaunchedRollerCoaster.h b/src/openrct2/ride/rtd/coaster/LIMLaunchedRollerCoaster.h index 360432c37b..111d2091a5 100644 --- a/src/openrct2/ride/rtd/coaster/LIMLaunchedRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/LIMLaunchedRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor LIMLaunchedRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::slopeLong, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch, RideMode::PoweredLaunchBlockSectioned), .DefaultMode = RideMode::PoweredLaunchPasstrough, .OperatingSettings = { 10, 31 }, diff --git a/src/openrct2/ride/rtd/coaster/LayDownRollerCoaster.h b/src/openrct2/ride/rtd/coaster/LayDownRollerCoaster.h index ca6f2a9529..d725750a25 100644 --- a/src/openrct2/ride/rtd/coaster/LayDownRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/LayDownRollerCoaster.h @@ -34,9 +34,9 @@ constexpr RideTypeDescriptor LayDownRollerCoasterRTD = .ExtraTrackPieces = { TrackGroup::flyingHalfLoopInvertedUp, TrackGroup::stationEnd, TrackGroup::liftHill }, } ), - .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_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::hasInvertedVariant, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, @@ -107,8 +107,8 @@ constexpr RideTypeDescriptor LayDownRollerCoasterAltRTD = .EnabledTrackPieces = { }, .ExtraTrackPieces = { }, }), - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAGS_COMMON_COASTER, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/LoopingRollerCoaster.h b/src/openrct2/ride/rtd/coaster/LoopingRollerCoaster.h index e25ad62097..6661797645 100644 --- a/src/openrct2/ride/rtd/coaster/LoopingRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/LoopingRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor LoopingRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::slopeVertical, TrackGroup::twist, TrackGroup::corkscrew, TrackGroup::curveVertical, TrackGroup::quarterLoop, TrackGroup::slopeLong, TrackGroup::barrelRoll, TrackGroup::halfLoop, TrackGroup::halfLoopMedium, TrackGroup::halfLoopLarge,TrackGroup::corkscrewLarge, TrackGroup::zeroGRoll, TrackGroup::zeroGRollLarge}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle, RideMode::PoweredLaunchPasstrough, RideMode::PoweredLaunch), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/MineRide.h b/src/openrct2/ride/rtd/coaster/MineRide.h index 4a33b92049..6539526831 100644 --- a/src/openrct2/ride/rtd/coaster/MineRide.h +++ b/src/openrct2/ride/rtd/coaster/MineRide.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor MineRideRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINE_RIDE, STR_RIDE_DESCRIPTION_MINE_RIDE }, diff --git a/src/openrct2/ride/rtd/coaster/MineTrainCoaster.h b/src/openrct2/ride/rtd/coaster/MineTrainCoaster.h index e93781e3a0..fec4fcfd6c 100644 --- a/src/openrct2/ride/rtd/coaster/MineTrainCoaster.h +++ b/src/openrct2/ride/rtd/coaster/MineTrainCoaster.h @@ -26,10 +26,9 @@ constexpr RideTypeDescriptor MineTrainCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINE_TRAIN_COASTER, STR_RIDE_DESCRIPTION_MINE_TRAIN_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/MiniRollerCoaster.h b/src/openrct2/ride/rtd/coaster/MiniRollerCoaster.h index 77b89d16a3..c868c18ce3 100644 --- a/src/openrct2/ride/rtd/coaster/MiniRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/MiniRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor MiniRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster, TrackGroup::liftHillCurved}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 0, 68 }, diff --git a/src/openrct2/ride/rtd/coaster/MiniSuspendedCoaster.h b/src/openrct2/ride/rtd/coaster/MiniSuspendedCoaster.h index 1557fad278..9e7b063fc5 100644 --- a/src/openrct2/ride/rtd/coaster/MiniSuspendedCoaster.h +++ b/src/openrct2/ride/rtd/coaster/MiniSuspendedCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor MiniSuspendedCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | - RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | - RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | RIDE_TYPE_FLAG_IS_SUSPENDED, + .Flags = kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINI_SUSPENDED_COASTER, STR_RIDE_DESCRIPTION_MINI_SUSPENDED_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/MultiDimensionRollerCoaster.h b/src/openrct2/ride/rtd/coaster/MultiDimensionRollerCoaster.h index c0dfb3a5ec..bff369b26c 100644 --- a/src/openrct2/ride/rtd/coaster/MultiDimensionRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/MultiDimensionRollerCoaster.h @@ -29,11 +29,10 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterRTD = .EnabledTrackPieces = {TrackGroup::straight, TrackGroup::flatRollBanking, TrackGroup::slope, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::sBend, TrackGroup::curveSmall, TrackGroup::curve, TrackGroup::curveLarge, TrackGroup::brakes, TrackGroup::onridePhoto, TrackGroup::slopeVertical, TrackGroup::blockBrakes, TrackGroup::inlineTwistInverted, TrackGroup::quarterLoopInvertedUp, TrackGroup::quarterLoopInvertedDown}, .ExtraTrackPieces = {}, }), - .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_ALTERNATIVE_TRACK_TYPE | RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES | - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_HAS_SEAT_ROTATION | - RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::hasInvertedVariant, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::hasSeatRotation, + RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, @@ -107,8 +106,8 @@ constexpr RideTypeDescriptor MultiDimensionRollerCoasterAltRTD = .EnabledTrackPieces = { }, .ExtraTrackPieces = { }, }), - .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_SEAT_ROTATION, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::hasSeatRotation), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/ReverseFreefallCoaster.h b/src/openrct2/ride/rtd/coaster/ReverseFreefallCoaster.h index d761fc7847..307e95689b 100644 --- a/src/openrct2/ride/rtd/coaster/ReverseFreefallCoaster.h +++ b/src/openrct2/ride/rtd/coaster/ReverseFreefallCoaster.h @@ -25,7 +25,8 @@ constexpr RideTypeDescriptor ReverseFreefallCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | RIDE_TYPE_FLAG_ALLOW_REVERSED_TRAINS | RIDE_TYPE_FLAG_LSM_BEHAVIOUR_ON_FLAT, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt + | EnumsToFlags(RtdFlag::allowReversedTrains, RtdFlag::hasLsmBehaviourOnFlat), .RideModes = EnumsToFlags(RideMode::LimPoweredLaunch), .DefaultMode = RideMode::LimPoweredLaunch, .OperatingSettings = { 7, 30 }, diff --git a/src/openrct2/ride/rtd/coaster/ReverserRollerCoaster.h b/src/openrct2/ride/rtd/coaster/ReverserRollerCoaster.h index 30a669ad03..f5b1690fee 100644 --- a/src/openrct2/ride/rtd/coaster/ReverserRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/ReverserRollerCoaster.h @@ -25,8 +25,9 @@ constexpr RideTypeDescriptor ReverserRollerCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_LAYERED_VEHICLE_PREVIEW, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::checkGForces, RtdFlag::layeredVehiclePreview), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_REVERSER_ROLLER_COASTER, STR_RIDE_DESCRIPTION_REVERSER_ROLLER_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/SideFrictionRollerCoaster.h b/src/openrct2/ride/rtd/coaster/SideFrictionRollerCoaster.h index d5dc90f9fc..3453043c84 100644 --- a/src/openrct2/ride/rtd/coaster/SideFrictionRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/SideFrictionRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor SideFrictionRollerCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SIDE_FRICTION_ROLLER_COASTER, STR_RIDE_DESCRIPTION_SIDE_FRICTION_ROLLER_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/SingleRailRollerCoaster.h b/src/openrct2/ride/rtd/coaster/SingleRailRollerCoaster.h index b1ba56b511..bab43746a3 100644 --- a/src/openrct2/ride/rtd/coaster/SingleRailRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/SingleRailRollerCoaster.h @@ -24,10 +24,9 @@ constexpr RideTypeDescriptor SingleRailRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::slopeSteepLong, TrackGroup::halfLoopLarge}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | 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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt| + EnumsToFlags(RtdFlag::hasTrackColourSupports, RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::checkGForces, RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 15, 52 }, diff --git a/src/openrct2/ride/rtd/coaster/SpinningWildMouse.h b/src/openrct2/ride/rtd/coaster/SpinningWildMouse.h index 82d73424f8..23b52b09e0 100644 --- a/src/openrct2/ride/rtd/coaster/SpinningWildMouse.h +++ b/src/openrct2/ride/rtd/coaster/SpinningWildMouse.h @@ -25,8 +25,8 @@ constexpr RideTypeDescriptor SpinningWildMouseRTD = .ExtraTrackPieces = {TrackGroup::liftHillSteep, TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::slopeCurve}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SPINNING_WILD_MOUSE, STR_RIDE_DESCRIPTION_SPINNING_WILD_MOUSE }, diff --git a/src/openrct2/ride/rtd/coaster/SpiralRollerCoaster.h b/src/openrct2/ride/rtd/coaster/SpiralRollerCoaster.h index 437e8aa932..c3d11a90f7 100644 --- a/src/openrct2/ride/rtd/coaster/SpiralRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/SpiralRollerCoaster.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor SpiralRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster, TrackGroup::liftHill}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/StandUpRollerCoaster.h b/src/openrct2/ride/rtd/coaster/StandUpRollerCoaster.h index c8edc899c6..d6bfc21e27 100644 --- a/src/openrct2/ride/rtd/coaster/StandUpRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/StandUpRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor StandUpRollerCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 7, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/SteelWildMouse.h b/src/openrct2/ride/rtd/coaster/SteelWildMouse.h index e2793e0e48..5e8013f5f3 100644 --- a/src/openrct2/ride/rtd/coaster/SteelWildMouse.h +++ b/src/openrct2/ride/rtd/coaster/SteelWildMouse.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor SteelWildMouseRTD = .ExtraTrackPieces = {TrackGroup::rotationControlToggle}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::allowDoorsOnTrack, + RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_WILD_MOUSE, STR_RIDE_DESCRIPTION_WILD_MOUSE }, diff --git a/src/openrct2/ride/rtd/coaster/Steeplechase.h b/src/openrct2/ride/rtd/coaster/Steeplechase.h index c6ea9dba3c..6dbeeaa055 100644 --- a/src/openrct2/ride/rtd/coaster/Steeplechase.h +++ b/src/openrct2/ride/rtd/coaster/Steeplechase.h @@ -25,9 +25,8 @@ constexpr RideTypeDescriptor SteeplechaseRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_STEEPLECHASE, STR_RIDE_DESCRIPTION_STEEPLECHASE }, diff --git a/src/openrct2/ride/rtd/coaster/SuspendedSwingingCoaster.h b/src/openrct2/ride/rtd/coaster/SuspendedSwingingCoaster.h index b4ab917a96..d703a30e42 100644 --- a/src/openrct2/ride/rtd/coaster/SuspendedSwingingCoaster.h +++ b/src/openrct2/ride/rtd/coaster/SuspendedSwingingCoaster.h @@ -25,9 +25,8 @@ constexpr RideTypeDescriptor SuspendedSwingingCoasterRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SUSPENDED_SWINGING_COASTER, STR_RIDE_DESCRIPTION_SUSPENDED_SWINGING_COASTER }, diff --git a/src/openrct2/ride/rtd/coaster/TwisterRollerCoaster.h b/src/openrct2/ride/rtd/coaster/TwisterRollerCoaster.h index d7df4dd301..676488c913 100644 --- a/src/openrct2/ride/rtd/coaster/TwisterRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/TwisterRollerCoaster.h @@ -27,10 +27,9 @@ constexpr RideTypeDescriptor TwisterRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::liftHillSteep, TrackGroup::brakeForDrop}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/VerticalDropCoaster.h b/src/openrct2/ride/rtd/coaster/VerticalDropCoaster.h index 5075963e8e..4e636aa9a0 100644 --- a/src/openrct2/ride/rtd/coaster/VerticalDropCoaster.h +++ b/src/openrct2/ride/rtd/coaster/VerticalDropCoaster.h @@ -27,9 +27,8 @@ constexpr RideTypeDescriptor VerticalDropCoasterRTD = .ExtraTrackPieces = {TrackGroup::halfLoop, TrackGroup::corkscrew, TrackGroup::barrelRoll, TrackGroup::poweredLift, TrackGroup::halfLoopLarge, TrackGroup::quarterLoop, TrackGroup::booster, TrackGroup::twist}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .OperatingSettings = { 10, 27 }, diff --git a/src/openrct2/ride/rtd/coaster/VirginiaReel.h b/src/openrct2/ride/rtd/coaster/VirginiaReel.h index 3b48473695..4e34b3c67b 100644 --- a/src/openrct2/ride/rtd/coaster/VirginiaReel.h +++ b/src/openrct2/ride/rtd/coaster/VirginiaReel.h @@ -25,8 +25,8 @@ constexpr RideTypeDescriptor VirginiaReelRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_VIRGINIA_REEL, STR_RIDE_DESCRIPTION_VIRGINIA_REEL }, diff --git a/src/openrct2/ride/rtd/coaster/WaterCoaster.h b/src/openrct2/ride/rtd/coaster/WaterCoaster.h index 6a5d3bd266..a80c914ed5 100644 --- a/src/openrct2/ride/rtd/coaster/WaterCoaster.h +++ b/src/openrct2/ride/rtd/coaster/WaterCoaster.h @@ -38,9 +38,8 @@ constexpr RideTypeDescriptor WaterCoasterRTD = } ), .InvertedTrackPaintFunctions = {}, - .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_PEEP_CHECK_GFORCES, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::hasCoveredPieces, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned), .DefaultMode = RideMode::ContinuousCircuit, .TrackSpeedSettings = { 30, 15 }, diff --git a/src/openrct2/ride/rtd/coaster/WoodenRollerCoaster.h b/src/openrct2/ride/rtd/coaster/WoodenRollerCoaster.h index bed0b63a44..b885207e48 100644 --- a/src/openrct2/ride/rtd/coaster/WoodenRollerCoaster.h +++ b/src/openrct2/ride/rtd/coaster/WoodenRollerCoaster.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor WoodenRollerCoasterRTD = .ExtraTrackPieces = {TrackGroup::booster}, }), .InvertedTrackPaintFunctions = {}, - .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_ALLOW_REVERSED_TRAINS, + .Flags = kRtdFlagsHasThreeColours | kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::checkGForces, + RtdFlag::allowMultipleCircuits, RtdFlag::allowReversedTrains), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::ContinuousCircuitBlockSectioned, RideMode::ReverseInclineLaunchedShuttle), .DefaultMode = RideMode::ContinuousCircuit, .BoosterSettings = { 0, 68 }, diff --git a/src/openrct2/ride/rtd/coaster/WoodenWildMouse.h b/src/openrct2/ride/rtd/coaster/WoodenWildMouse.h index ca4fe1c9aa..1e62c016f8 100644 --- a/src/openrct2/ride/rtd/coaster/WoodenWildMouse.h +++ b/src/openrct2/ride/rtd/coaster/WoodenWildMouse.h @@ -25,10 +25,9 @@ constexpr RideTypeDescriptor WoodenWildMouseRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | - RIDE_TYPE_FLAGS_COMMON_COASTER | RIDE_TYPE_FLAGS_COMMON_COASTER_NON_ALT | - RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_ALLOW_DOORS_ON_TRACK | - RIDE_TYPE_FLAG_PEEP_CHECK_GFORCES, + .Flags = kRtdFlagsCommonCoaster | kRtdFlagsCommonCoasterNonAlt | + EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::allowDoorsOnTrack, RtdFlag::checkGForces), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_WOODEN_WILD_MOUSE, STR_RIDE_DESCRIPTION_WOODEN_WILD_MOUSE }, diff --git a/src/openrct2/ride/rtd/gentle/CarRide.h b/src/openrct2/ride/rtd/gentle/CarRide.h index 505b4e6499..5ed8315f4c 100644 --- a/src/openrct2/ride/rtd/gentle/CarRide.h +++ b/src/openrct2/ride/rtd/gentle/CarRide.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor CarRideRTD = .ExtraTrackPieces = {TrackGroup::slopeSteepUp, TrackGroup::slopeSteepDown, TrackGroup::rapids}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | - RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_SHOW_IN_TRACK_DESIGNER | - RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowDoorsOnTrack, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::showInTrackDesigner, + RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_CAR_RIDE, STR_RIDE_DESCRIPTION_CAR_RIDE }, diff --git a/src/openrct2/ride/rtd/gentle/Circus.h b/src/openrct2/ride/rtd/gentle/Circus.h index c3d505297b..2624ed6d59 100644 --- a/src/openrct2/ride/rtd/gentle/Circus.h +++ b/src/openrct2/ride/rtd/gentle/Circus.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor CircusRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::describeAsInside, RtdFlag::hasVehicleColours, + RtdFlag::hasMusicByDefault, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Circus), .DefaultMode = RideMode::Circus, .Naming = { STR_RIDE_NAME_CIRCUS, STR_RIDE_DESCRIPTION_CIRCUS }, diff --git a/src/openrct2/ride/rtd/gentle/CrookedHouse.h b/src/openrct2/ride/rtd/gentle/CrookedHouse.h index c3f2a72bcc..e1ba34ef59 100644 --- a/src/openrct2/ride/rtd/gentle/CrookedHouse.h +++ b/src/openrct2/ride/rtd/gentle/CrookedHouse.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor CrookedHouseRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::describeAsInside, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::CrookedHouse), .DefaultMode = RideMode::CrookedHouse, .Naming = { STR_RIDE_NAME_CROOKED_HOUSE, STR_RIDE_DESCRIPTION_CROOKED_HOUSE }, diff --git a/src/openrct2/ride/rtd/gentle/Dodgems.h b/src/openrct2/ride/rtd/gentle/Dodgems.h index fc4bcaa1e5..9c8bf52241 100644 --- a/src/openrct2/ride/rtd/gentle/Dodgems.h +++ b/src/openrct2/ride/rtd/gentle/Dodgems.h @@ -26,11 +26,11 @@ constexpr RideTypeDescriptor DodgemsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, RtdFlag::hasMusicByDefault, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::Dodgems), .DefaultMode = RideMode::Dodgems, .OperatingSettings = { 20, 180 }, diff --git a/src/openrct2/ride/rtd/gentle/FerrisWheel.h b/src/openrct2/ride/rtd/gentle/FerrisWheel.h index f819133de5..96eefdf873 100644 --- a/src/openrct2/ride/rtd/gentle/FerrisWheel.h +++ b/src/openrct2/ride/rtd/gentle/FerrisWheel.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor FerrisWheelRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | 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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::slightlyInterestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ForwardRotation, RideMode::BackwardRotation), .DefaultMode = RideMode::ForwardRotation, .OperatingSettings = { 1, 3 }, diff --git a/src/openrct2/ride/rtd/gentle/FlyingSaucers.h b/src/openrct2/ride/rtd/gentle/FlyingSaucers.h index ab80e07d48..99e00a631b 100644 --- a/src/openrct2/ride/rtd/gentle/FlyingSaucers.h +++ b/src/openrct2/ride/rtd/gentle/FlyingSaucers.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor FlyingSaucersRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | - RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | - RIDE_TYPE_FLAG_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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourAdditional, + RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, + RtdFlag::hasMusicByDefault, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::singleSession, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::Dodgems), .DefaultMode = RideMode::Dodgems, .OperatingSettings = { 20, 180 }, diff --git a/src/openrct2/ride/rtd/gentle/GhostTrain.h b/src/openrct2/ride/rtd/gentle/GhostTrain.h index a110906b3a..33734ed5c0 100644 --- a/src/openrct2/ride/rtd/gentle/GhostTrain.h +++ b/src/openrct2/ride/rtd/gentle/GhostTrain.h @@ -26,13 +26,13 @@ constexpr RideTypeDescriptor GhostTrainRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_G_FORCES | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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_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 | - RIDE_TYPE_FLAG_HAS_LANDSCAPE_DOORS, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasGForces, RtdFlag::hasDataLogging, RtdFlag::hasDrops, + RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowDoorsOnTrack, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::hasAirTime, RtdFlag::showInTrackDesigner, RtdFlag::interestingToLookAt, + RtdFlag::hasLandscapeDoors), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_GHOST_TRAIN, STR_RIDE_DESCRIPTION_GHOST_TRAIN }, diff --git a/src/openrct2/ride/rtd/gentle/HauntedHouse.h b/src/openrct2/ride/rtd/gentle/HauntedHouse.h index 39bffc5c15..a00e5ce11f 100644 --- a/src/openrct2/ride/rtd/gentle/HauntedHouse.h +++ b/src/openrct2/ride/rtd/gentle/HauntedHouse.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor HauntedHouseRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::describeAsInside, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::HauntedHouse), .DefaultMode = RideMode::HauntedHouse, .Naming = { STR_RIDE_NAME_HAUNTED_HOUSE, STR_RIDE_DESCRIPTION_HAUNTED_HOUSE }, diff --git a/src/openrct2/ride/rtd/gentle/Maze.h b/src/openrct2/ride/rtd/gentle/Maze.h index 6bd6c9686f..11993d1342 100644 --- a/src/openrct2/ride/rtd/gentle/Maze.h +++ b/src/openrct2/ride/rtd/gentle/Maze.h @@ -27,9 +27,9 @@ constexpr RideTypeDescriptor MazeRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_PEEP_CAN_USE_UMBRELLA | RIDE_TYPE_FLAG_IS_MAZE, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourSupports, RtdFlag::hasSinglePieceStation, RtdFlag::noTestMode, RtdFlag::noVehicles, + RtdFlag::noWallsAroundTrack, RtdFlag::describeAsInside, RtdFlag::hasTrack, RtdFlag::hasEntranceAndExit, + RtdFlag::guestsCanUseUmbrella, RtdFlag::isMaze), .RideModes = EnumsToFlags(RideMode::Maze), .DefaultMode = RideMode::Maze, .OperatingSettings = { 1, 64 }, diff --git a/src/openrct2/ride/rtd/gentle/MerryGoRound.h b/src/openrct2/ride/rtd/gentle/MerryGoRound.h index ad03de63cb..2da2296f10 100644 --- a/src/openrct2/ride/rtd/gentle/MerryGoRound.h +++ b/src/openrct2/ride/rtd/gentle/MerryGoRound.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor MerryGoRoundRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, RtdFlag::hasMusicByDefault, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Rotation), .DefaultMode = RideMode::Rotation, .OperatingSettings = { 4, 25 }, diff --git a/src/openrct2/ride/rtd/gentle/MiniGolf.h b/src/openrct2/ride/rtd/gentle/MiniGolf.h index bb89ee47d7..17e057f4f0 100644 --- a/src/openrct2/ride/rtd/gentle/MiniGolf.h +++ b/src/openrct2/ride/rtd/gentle/MiniGolf.h @@ -25,9 +25,9 @@ constexpr RideTypeDescriptor MiniGolfRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_HAS_ONE_STATION | - 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::noTestMode, RtdFlag::hasTrack, RtdFlag::hasOneStation, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINI_GOLF, STR_RIDE_DESCRIPTION_MINI_GOLF }, diff --git a/src/openrct2/ride/rtd/gentle/MiniHelicopters.h b/src/openrct2/ride/rtd/gentle/MiniHelicopters.h index f6241a33f7..841b5f9eb3 100644 --- a/src/openrct2/ride/rtd/gentle/MiniHelicopters.h +++ b/src/openrct2/ride/rtd/gentle/MiniHelicopters.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor MiniHelicoptersRTD = .ExtraTrackPieces = {TrackGroup::spinningTunnel}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | - RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | 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_SHOW_IN_TRACK_DESIGNER | - RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowDoorsOnTrack, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::showInTrackDesigner, + RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINI_HELICOPTERS, STR_RIDE_DESCRIPTION_MINI_HELICOPTERS }, diff --git a/src/openrct2/ride/rtd/gentle/MonorailCycles.h b/src/openrct2/ride/rtd/gentle/MonorailCycles.h index 5f2b9625a3..cdaee63b9f 100644 --- a/src/openrct2/ride/rtd/gentle/MonorailCycles.h +++ b/src/openrct2/ride/rtd/gentle/MonorailCycles.h @@ -26,11 +26,11 @@ constexpr RideTypeDescriptor MonorailCyclesRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasDataLogging, RtdFlag::noTestMode, RtdFlag::hasLoadOptions, + RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MONORAIL_CYCLES, STR_RIDE_DESCRIPTION_MONORAIL_CYCLES }, diff --git a/src/openrct2/ride/rtd/gentle/MonsterTrucks.h b/src/openrct2/ride/rtd/gentle/MonsterTrucks.h index 464ab02941..bf19a92bd7 100644 --- a/src/openrct2/ride/rtd/gentle/MonsterTrucks.h +++ b/src/openrct2/ride/rtd/gentle/MonsterTrucks.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor MonsterTrucksRTD = .ExtraTrackPieces = {TrackGroup::spinningTunnel}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | - 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_SHOW_IN_TRACK_DESIGNER | - RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::showInTrackDesigner, + RtdFlag::slightlyInterestingToLookAt), .RideModes = (1uLL << static_cast(RideMode::ContinuousCircuit)), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MONSTER_TRUCKS, STR_RIDE_DESCRIPTION_MONSTER_TRUCKS }, diff --git a/src/openrct2/ride/rtd/gentle/ObservationTower.h b/src/openrct2/ride/rtd/gentle/ObservationTower.h index 16f344b887..8f5531d289 100644 --- a/src/openrct2/ride/rtd/gentle/ObservationTower.h +++ b/src/openrct2/ride/rtd/gentle/ObservationTower.h @@ -26,10 +26,10 @@ constexpr RideTypeDescriptor ObservationTowerRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | - 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::noWallsAroundTrack, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::showInTrackDesigner, RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::RotatingLift), .DefaultMode = RideMode::RotatingLift, .Naming = { STR_RIDE_NAME_OBSERVATION_TOWER, STR_RIDE_DESCRIPTION_OBSERVATION_TOWER }, diff --git a/src/openrct2/ride/rtd/gentle/SpaceRings.h b/src/openrct2/ride/rtd/gentle/SpaceRings.h index d9406eac3b..be1f236e27 100644 --- a/src/openrct2/ride/rtd/gentle/SpaceRings.h +++ b/src/openrct2/ride/rtd/gentle/SpaceRings.h @@ -25,10 +25,10 @@ constexpr RideTypeDescriptor SpaceRingsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | - 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::slightlyInterestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::SpaceRings), .DefaultMode = RideMode::SpaceRings, .Naming = { STR_RIDE_NAME_SPACE_RINGS, STR_RIDE_DESCRIPTION_SPACE_RINGS }, diff --git a/src/openrct2/ride/rtd/gentle/SpiralSlide.h b/src/openrct2/ride/rtd/gentle/SpiralSlide.h index c686318507..98045e5a9d 100644 --- a/src/openrct2/ride/rtd/gentle/SpiralSlide.h +++ b/src/openrct2/ride/rtd/gentle/SpiralSlide.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor SpiralSlideRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_NO_VEHICLES | - RIDE_TYPE_FLAG_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 | RIDE_TYPE_FLAG_IS_SPIRAL_SLIDE, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, RtdFlag::noVehicles, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::interestingToLookAt, + RtdFlag::listVehiclesSeparately, RtdFlag::isSpiralSlide), .RideModes = EnumsToFlags(RideMode::SingleRidePerAdmission, RideMode::UnlimitedRidesPerAdmission), .DefaultMode = RideMode::SingleRidePerAdmission, .OperatingSettings = { 1, 5 }, diff --git a/src/openrct2/ride/rtd/shops/CashMachine.h b/src/openrct2/ride/rtd/shops/CashMachine.h index 7f1bd2c25a..e6d082015b 100644 --- a/src/openrct2/ride/rtd/shops/CashMachine.h +++ b/src/openrct2/ride/rtd/shops/CashMachine.h @@ -24,9 +24,9 @@ constexpr RideTypeDescriptor CashMachineRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_CASH_MACHINE | RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY | - RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noVehicles, RtdFlag::isCashMachine, RtdFlag::isShopOrFacility, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .Naming = { STR_RIDE_NAME_CASH_MACHINE, STR_RIDE_DESCRIPTION_CASH_MACHINE }, diff --git a/src/openrct2/ride/rtd/shops/DrinkStall.h b/src/openrct2/ride/rtd/shops/DrinkStall.h index 78c05ed7b3..4b0f2d1660 100644 --- a/src/openrct2/ride/rtd/shops/DrinkStall.h +++ b/src/openrct2/ride/rtd/shops/DrinkStall.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor DrinkStallRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | - RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_SELLS_DRINKS | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY | - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noVehicles, RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::sellsDrinks, RtdFlag::listVehiclesSeparately, + RtdFlag::hasTrackColourMain), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .Naming = { STR_RIDE_NAME_DRINK_STALL, STR_RIDE_DESCRIPTION_DRINK_STALL }, diff --git a/src/openrct2/ride/rtd/shops/FirstAid.h b/src/openrct2/ride/rtd/shops/FirstAid.h index 6a5d86e9b0..3e23ec8634 100644 --- a/src/openrct2/ride/rtd/shops/FirstAid.h +++ b/src/openrct2/ride/rtd/shops/FirstAid.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor FirstAidRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | - RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_IS_FIRST_AID | RIDE_TYPE_FLAG_PEEP_SHOULD_GO_INSIDE_FACILITY | - RIDE_TYPE_FLAG_IN_RIDE | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noVehicles, RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::isFirstAid, RtdFlag::guestsShouldGoInsideFacility, + RtdFlag::describeAsInside, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .OperatingSettings = { 8, 8 }, diff --git a/src/openrct2/ride/rtd/shops/FoodStall.h b/src/openrct2/ride/rtd/shops/FoodStall.h index f73681d3f7..d3d8f54a53 100644 --- a/src/openrct2/ride/rtd/shops/FoodStall.h +++ b/src/openrct2/ride/rtd/shops/FoodStall.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor FoodStallRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | - RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_SELLS_FOOD | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY | - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noVehicles, RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::sellsFood, RtdFlag::listVehiclesSeparately, + RtdFlag::hasTrackColourMain), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .Naming = { STR_RIDE_NAME_FOOD_STALL, STR_RIDE_DESCRIPTION_FOOD_STALL }, diff --git a/src/openrct2/ride/rtd/shops/InformationKiosk.h b/src/openrct2/ride/rtd/shops/InformationKiosk.h index 990da36253..16a54d3881 100644 --- a/src/openrct2/ride/rtd/shops/InformationKiosk.h +++ b/src/openrct2/ride/rtd/shops/InformationKiosk.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor InformationKioskRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | - RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, RtdFlag::noVehicles, + RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .Naming = { STR_RIDE_NAME_INFORMATION_KIOSK, STR_RIDE_DESCRIPTION_INFORMATION_KIOSK }, diff --git a/src/openrct2/ride/rtd/shops/Shop.h b/src/openrct2/ride/rtd/shops/Shop.h index c83701de30..18a6f1571a 100644 --- a/src/openrct2/ride/rtd/shops/Shop.h +++ b/src/openrct2/ride/rtd/shops/Shop.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor ShopRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_FLAT_RIDE | - RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, RtdFlag::noVehicles, + RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .Naming = { STR_RIDE_NAME_SHOP, STR_RIDE_DESCRIPTION_SHOP }, diff --git a/src/openrct2/ride/rtd/shops/Toilets.h b/src/openrct2/ride/rtd/shops/Toilets.h index 07e8a3db28..6966831439 100644 --- a/src/openrct2/ride/rtd/shops/Toilets.h +++ b/src/openrct2/ride/rtd/shops/Toilets.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor ToiletsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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_IS_SHOP_OR_FACILITY | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::noTestMode, + RtdFlag::noVehicles, RtdFlag::isShopOrFacility, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::guestsShouldGoInsideFacility, RtdFlag::describeAsInside, + RtdFlag::isToilet, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::ShopStall), .DefaultMode = RideMode::ShopStall, .OperatingSettings = { 4, 4 }, diff --git a/src/openrct2/ride/rtd/thrill/3DCinema.h b/src/openrct2/ride/rtd/thrill/3DCinema.h index f2c696fbdf..925007290e 100644 --- a/src/openrct2/ride/rtd/thrill/3DCinema.h +++ b/src/openrct2/ride/rtd/thrill/3DCinema.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor CinemaRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::describeAsInside, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::MouseTails3DFilm, RideMode::StormChasers3DFilm, RideMode::SpaceRaiders3DFilm), .DefaultMode = RideMode::MouseTails3DFilm, .Naming = { STR_RIDE_NAME_3D_CINEMA, STR_RIDE_DESCRIPTION_3D_CINEMA }, diff --git a/src/openrct2/ride/rtd/thrill/Enterprise.h b/src/openrct2/ride/rtd/thrill/Enterprise.h index edcf7e4194..b6d9205ee1 100644 --- a/src/openrct2/ride/rtd/thrill/Enterprise.h +++ b/src/openrct2/ride/rtd/thrill/Enterprise.h @@ -24,11 +24,11 @@ constexpr RideTypeDescriptor EnterpriseRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_VEHICLE_IS_INTEGRAL | RIDE_TYPE_FLAG_TRACK_NO_WALLS | - RIDE_TYPE_FLAG_FLAT_RIDE | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_SINGLE_SESSION | - RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT | RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Rotation), .DefaultMode = RideMode::Rotation, .OperatingSettings = { 10, 20 }, diff --git a/src/openrct2/ride/rtd/thrill/GoKarts.h b/src/openrct2/ride/rtd/thrill/GoKarts.h index ff0df4cca1..e5cb49919b 100644 --- a/src/openrct2/ride/rtd/thrill/GoKarts.h +++ b/src/openrct2/ride/rtd/thrill/GoKarts.h @@ -26,9 +26,9 @@ constexpr RideTypeDescriptor GoKartsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_NO_TEST_MODE | RIDE_TYPE_FLAG_HAS_ONE_STATION | - 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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, RtdFlag::noTestMode, RtdFlag::hasOneStation, + RtdFlag::noWallsAroundTrack, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::Race, RideMode::ContinuousCircuit), .DefaultMode = RideMode::Race, .OperatingSettings = { 1, 10 }, diff --git a/src/openrct2/ride/rtd/thrill/LaunchedFreefall.h b/src/openrct2/ride/rtd/thrill/LaunchedFreefall.h index 59f751abff..d5420922e3 100644 --- a/src/openrct2/ride/rtd/thrill/LaunchedFreefall.h +++ b/src/openrct2/ride/rtd/thrill/LaunchedFreefall.h @@ -25,10 +25,10 @@ constexpr RideTypeDescriptor LaunchedFreefallRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | - 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::noWallsAroundTrack, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::showInTrackDesigner, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::UpwardLaunch, RideMode::DownwardLaunch), .DefaultMode = RideMode::UpwardLaunch, .OperatingSettings = { 10, 40 }, diff --git a/src/openrct2/ride/rtd/thrill/MagicCarpet.h b/src/openrct2/ride/rtd/thrill/MagicCarpet.h index eac9f0be42..7653bb84bb 100644 --- a/src/openrct2/ride/rtd/thrill/MagicCarpet.h +++ b/src/openrct2/ride/rtd/thrill/MagicCarpet.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor MagicCarpetRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Swing), .DefaultMode = RideMode::Swing, .OperatingSettings = { 7, 15 }, diff --git a/src/openrct2/ride/rtd/thrill/MotionSimulator.h b/src/openrct2/ride/rtd/thrill/MotionSimulator.h index 0c5825a7b0..902384bbf5 100644 --- a/src/openrct2/ride/rtd/thrill/MotionSimulator.h +++ b/src/openrct2/ride/rtd/thrill/MotionSimulator.h @@ -24,11 +24,11 @@ constexpr RideTypeDescriptor MotionSimulatorRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::slightlyInterestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::FilmAvengingAviators, RideMode::FilmThrillRiders), .DefaultMode = RideMode::FilmAvengingAviators, .Naming = { STR_RIDE_NAME_MOTION_SIMULATOR, STR_RIDE_DESCRIPTION_MOTION_SIMULATOR }, diff --git a/src/openrct2/ride/rtd/thrill/RotoDrop.h b/src/openrct2/ride/rtd/thrill/RotoDrop.h index 5a577c1dc7..24ad5cc3b2 100644 --- a/src/openrct2/ride/rtd/thrill/RotoDrop.h +++ b/src/openrct2/ride/rtd/thrill/RotoDrop.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor RotoDropRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | - RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::noWallsAroundTrack, + RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::singleSession, RtdFlag::showInTrackDesigner, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::FreefallDrop), .DefaultMode = RideMode::FreefallDrop, .Naming = { STR_RIDE_NAME_ROTO_DROP, STR_RIDE_DESCRIPTION_ROTO_DROP }, diff --git a/src/openrct2/ride/rtd/thrill/SwingingInverterShip.h b/src/openrct2/ride/rtd/thrill/SwingingInverterShip.h index d4c936b997..4e2ed03962 100644 --- a/src/openrct2/ride/rtd/thrill/SwingingInverterShip.h +++ b/src/openrct2/ride/rtd/thrill/SwingingInverterShip.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor SwingingInverterShipRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Swing), .DefaultMode = RideMode::Swing, .OperatingSettings = { 7, 15 }, diff --git a/src/openrct2/ride/rtd/thrill/SwingingShip.h b/src/openrct2/ride/rtd/thrill/SwingingShip.h index 1ce045c719..6f3a383e15 100644 --- a/src/openrct2/ride/rtd/thrill/SwingingShip.h +++ b/src/openrct2/ride/rtd/thrill/SwingingShip.h @@ -25,12 +25,12 @@ constexpr RideTypeDescriptor SwingingShipRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | - RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, + RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, + RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, RtdFlag::interestingToLookAt, + RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Swing), .DefaultMode = RideMode::Swing, .OperatingSettings = { 7, 25 }, diff --git a/src/openrct2/ride/rtd/thrill/TopSpin.h b/src/openrct2/ride/rtd/thrill/TopSpin.h index 3a115b4a12..fb23940dda 100644 --- a/src/openrct2/ride/rtd/thrill/TopSpin.h +++ b/src/openrct2/ride/rtd/thrill/TopSpin.h @@ -25,11 +25,11 @@ constexpr RideTypeDescriptor TopSpinRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::hasLoadOptions, RtdFlag::vehicleIsIntegral, + RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, RtdFlag::hasVehicleColours, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::singleSession, + RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Beginners, RideMode::Intense, RideMode::Berserk), .DefaultMode = RideMode::Beginners, .Naming = { STR_RIDE_NAME_TOP_SPIN, STR_RIDE_DESCRIPTION_TOP_SPIN }, diff --git a/src/openrct2/ride/rtd/thrill/Twist.h b/src/openrct2/ride/rtd/thrill/Twist.h index 9c18d5b309..1aa6c8c5e7 100644 --- a/src/openrct2/ride/rtd/thrill/Twist.h +++ b/src/openrct2/ride/rtd/thrill/Twist.h @@ -24,10 +24,10 @@ constexpr RideTypeDescriptor TwistRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | - 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, + .Flags = EnumsToFlags(RtdFlag::hasSinglePieceStation, RtdFlag::cannotHaveGaps, RtdFlag::hasLoadOptions, + RtdFlag::vehicleIsIntegral, RtdFlag::noWallsAroundTrack, RtdFlag::isFlatRide, + RtdFlag::hasVehicleColours, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::singleSession, RtdFlag::interestingToLookAt, RtdFlag::listVehiclesSeparately), .RideModes = EnumsToFlags(RideMode::Rotation), .DefaultMode = RideMode::Rotation, .OperatingSettings = { 3, 6, 3 }, diff --git a/src/openrct2/ride/rtd/transport/Chairlift.h b/src/openrct2/ride/rtd/transport/Chairlift.h index 699b785b42..cfcbabe775 100644 --- a/src/openrct2/ride/rtd/transport/Chairlift.h +++ b/src/openrct2/ride/rtd/transport/Chairlift.h @@ -26,11 +26,11 @@ constexpr RideTypeDescriptor ChairliftRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | RIDE_TYPE_FLAG_HAS_TRACK | - 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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner, + RtdFlag::slightlyInterestingToLookAt, RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::StationToStation), .DefaultMode = RideMode::StationToStation, .OperatingSettings = { 1, 4 }, diff --git a/src/openrct2/ride/rtd/transport/Lift.h b/src/openrct2/ride/rtd/transport/Lift.h index 2245b5c5e0..c544ac0a9f 100644 --- a/src/openrct2/ride/rtd/transport/Lift.h +++ b/src/openrct2/ride/rtd/transport/Lift.h @@ -25,10 +25,10 @@ constexpr RideTypeDescriptor LiftRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_SINGLE_PIECE_STATION | - RIDE_TYPE_FLAG_CANNOT_HAVE_GAPS | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_TRACK_NO_WALLS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - 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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, RtdFlag::hasSinglePieceStation, + RtdFlag::cannotHaveGaps, RtdFlag::hasLoadOptions, RtdFlag::noWallsAroundTrack, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::allowExtraTowerBases, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner), .RideModes = EnumsToFlags(RideMode::Shuttle), .DefaultMode = RideMode::Shuttle, .Naming = { STR_RIDE_NAME_LIFT, STR_RIDE_DESCRIPTION_LIFT }, diff --git a/src/openrct2/ride/rtd/transport/MiniatureRailway.h b/src/openrct2/ride/rtd/transport/MiniatureRailway.h index 30aaaba7a0..75fc772a0a 100644 --- a/src/openrct2/ride/rtd/transport/MiniatureRailway.h +++ b/src/openrct2/ride/rtd/transport/MiniatureRailway.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor MiniatureRailwayRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | - RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | - RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourSupports, RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::allowMultipleCircuits, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner, + RtdFlag::supportsLevelCrossings), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MINIATURE_RAILWAY, STR_RIDE_DESCRIPTION_MINIATURE_RAILWAY }, diff --git a/src/openrct2/ride/rtd/transport/Monorail.h b/src/openrct2/ride/rtd/transport/Monorail.h index 64d82684d0..346686396f 100644 --- a/src/openrct2/ride/rtd/transport/Monorail.h +++ b/src/openrct2/ride/rtd/transport/Monorail.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor MonorailRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_ADDITIONAL | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | - RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourAdditional, RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasTrackColourSupports, RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::allowMultipleCircuits, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_MONORAIL, STR_RIDE_DESCRIPTION_MONORAIL }, diff --git a/src/openrct2/ride/rtd/transport/SuspendedMonorail.h b/src/openrct2/ride/rtd/transport/SuspendedMonorail.h index 2cfc86a60e..0b6fbf2062 100644 --- a/src/openrct2/ride/rtd/transport/SuspendedMonorail.h +++ b/src/openrct2/ride/rtd/transport/SuspendedMonorail.h @@ -25,13 +25,13 @@ constexpr RideTypeDescriptor SuspendedMonorailRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | - RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | - RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | - RIDE_TYPE_FLAG_ALLOW_MULTIPLE_CIRCUITS | RIDE_TYPE_FLAG_TRANSPORT_RIDE | RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | - RIDE_TYPE_FLAG_IS_SUSPENDED, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::canSynchroniseWithAdjacentStations, + RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::hasDataLogging, RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::allowMultipleCircuits, RtdFlag::isTransportRide, RtdFlag::showInTrackDesigner, + RtdFlag::isSuspended), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit, RideMode::Shuttle), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SUSPENDED_MONORAIL, STR_RIDE_DESCRIPTION_SUSPENDED_MONORAIL }, diff --git a/src/openrct2/ride/rtd/water/BoatHire.h b/src/openrct2/ride/rtd/water/BoatHire.h index 44ede33bd7..2cb3a77da6 100644 --- a/src/openrct2/ride/rtd/water/BoatHire.h +++ b/src/openrct2/ride/rtd/water/BoatHire.h @@ -26,9 +26,9 @@ constexpr RideTypeDescriptor BoatHireRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, RtdFlag::trackMustBeOnWater, + RtdFlag::noTestMode, RtdFlag::hasLoadOptions, RtdFlag::hasVehicleColours, RtdFlag::checkForStalling, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit), .RideModes = EnumsToFlags(RideMode::BoatHire), .DefaultMode = RideMode::BoatHire, .Naming = { STR_RIDE_NAME_BOAT_HIRE, STR_RIDE_DESCRIPTION_BOAT_HIRE }, diff --git a/src/openrct2/ride/rtd/water/DinghySlide.h b/src/openrct2/ride/rtd/water/DinghySlide.h index 376ed9f993..97bd1b7a6b 100644 --- a/src/openrct2/ride/rtd/water/DinghySlide.h +++ b/src/openrct2/ride/rtd/water/DinghySlide.h @@ -37,13 +37,13 @@ constexpr RideTypeDescriptor DinghySlideRTD = } ), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_G_FORCES | - RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | RIDE_TYPE_FLAG_TRACK_ELEMENTS_HAVE_TWO_VARIETIES | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | RIDE_TYPE_FLAG_HAS_VEHICLE_COLOURS | - RIDE_TYPE_FLAG_CHECK_FOR_STALLING | RIDE_TYPE_FLAG_HAS_TRACK | RIDE_TYPE_FLAG_SUPPORTS_MULTIPLE_TRACK_COLOUR | - RIDE_TYPE_FLAG_ALLOW_MUSIC | RIDE_TYPE_FLAG_HAS_ENTRANCE_EXIT | RIDE_TYPE_FLAG_HAS_AIR_TIME | - RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_INTERESTING_TO_LOOK_AT, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasGForces, + RtdFlag::hasDataLogging, RtdFlag::hasDrops, RtdFlag::hasCoveredPieces, + RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, + RtdFlag::checkForStalling, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::hasAirTime, + RtdFlag::showInTrackDesigner, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_DINGHY_SLIDE, STR_RIDE_DESCRIPTION_DINGHY_SLIDE }, diff --git a/src/openrct2/ride/rtd/water/LogFlume.h b/src/openrct2/ride/rtd/water/LogFlume.h index c32720c3b6..1d5f0ab5e7 100644 --- a/src/openrct2/ride/rtd/water/LogFlume.h +++ b/src/openrct2/ride/rtd/water/LogFlume.h @@ -25,12 +25,12 @@ constexpr RideTypeDescriptor LogFlumeRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasDataLogging, RtdFlag::hasDrops, + RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, RtdFlag::hasTrack, + RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::hasAirTime, RtdFlag::showInTrackDesigner, + RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_LOG_FLUME, STR_RIDE_DESCRIPTION_LOG_FLUME }, diff --git a/src/openrct2/ride/rtd/water/RiverRafts.h b/src/openrct2/ride/rtd/water/RiverRafts.h index 3c40365ebd..d631e7b5d2 100644 --- a/src/openrct2/ride/rtd/water/RiverRafts.h +++ b/src/openrct2/ride/rtd/water/RiverRafts.h @@ -25,12 +25,12 @@ constexpr RideTypeDescriptor RiverRaftsRTD = .ExtraTrackPieces = {TrackGroup::slope, TrackGroup::slopeSteepDown, TrackGroup::onridePhoto}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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_ALLOW_MORE_VEHICLES_THAN_STATION_FITS | - RIDE_TYPE_FLAG_SHOW_IN_TRACK_DESIGNER | RIDE_TYPE_FLAG_SLIGHTLY_INTERESTING_TO_LOOK_AT, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasDataLogging, + RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::showInTrackDesigner, RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_RIVER_RAFTS, STR_RIDE_DESCRIPTION_RIVER_RAFTS }, diff --git a/src/openrct2/ride/rtd/water/RiverRapids.h b/src/openrct2/ride/rtd/water/RiverRapids.h index 518afbe4d9..a9fd366565 100644 --- a/src/openrct2/ride/rtd/water/RiverRapids.h +++ b/src/openrct2/ride/rtd/water/RiverRapids.h @@ -25,13 +25,13 @@ constexpr RideTypeDescriptor RiverRapidsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_MAIN | RIDE_TYPE_FLAG_HAS_TRACK_COLOUR_SUPPORTS | - RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - 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_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, + .Flags = EnumsToFlags(RtdFlag::hasTrackColourMain, RtdFlag::hasTrackColourSupports, + RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasDataLogging, RtdFlag::hasDrops, + RtdFlag::hasLoadOptions, RtdFlag::noWallsAroundTrack, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, + RtdFlag::hasAirTime, RtdFlag::showInTrackDesigner, RtdFlag::interestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_RIVER_RAPIDS, STR_RIDE_DESCRIPTION_RIVER_RAPIDS }, diff --git a/src/openrct2/ride/rtd/water/SplashBoats.h b/src/openrct2/ride/rtd/water/SplashBoats.h index be34e5b79f..22f5dee971 100644 --- a/src/openrct2/ride/rtd/water/SplashBoats.h +++ b/src/openrct2/ride/rtd/water/SplashBoats.h @@ -26,12 +26,12 @@ constexpr RideTypeDescriptor SplashBoatsRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_CAN_SYNCHRONISE_ADJACENT_STATIONS | RIDE_TYPE_FLAG_HAS_DATA_LOGGING | RIDE_TYPE_FLAG_HAS_DROPS | - RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | 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_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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::canSynchroniseWithAdjacentStations, RtdFlag::hasDataLogging, RtdFlag::hasDrops, + RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, RtdFlag::hasVehicleColours, + RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, RtdFlag::allowMusic, + RtdFlag::hasEntranceAndExit, RtdFlag::allowMoreVehiclesThanStationFits, RtdFlag::hasAirTime, + RtdFlag::showInTrackDesigner, RtdFlag::slightlyInterestingToLookAt), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SPLASH_BOATS, STR_RIDE_DESCRIPTION_SPLASH_BOATS }, diff --git a/src/openrct2/ride/rtd/water/SubmarineRide.h b/src/openrct2/ride/rtd/water/SubmarineRide.h index 7bb44ed63e..23fa425189 100644 --- a/src/openrct2/ride/rtd/water/SubmarineRide.h +++ b/src/openrct2/ride/rtd/water/SubmarineRide.h @@ -26,11 +26,11 @@ constexpr RideTypeDescriptor SubmarineRideRTD = .ExtraTrackPieces = {}, }), .InvertedTrackPaintFunctions = {}, - .Flags = RIDE_TYPE_FLAGS_TRACK_HAS_3_COLOURS | RIDE_TYPE_FLAG_HAS_LEAVE_WHEN_ANOTHER_VEHICLE_ARRIVES_AT_STATION | - RIDE_TYPE_FLAG_TRACK_MUST_BE_ON_WATER | RIDE_TYPE_FLAG_HAS_LOAD_OPTIONS | RIDE_TYPE_FLAG_PEEP_WILL_RIDE_AGAIN | - 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, + .Flags = kRtdFlagsHasThreeColours | EnumsToFlags(RtdFlag::hasLeaveWhenAnotherVehicleArrivesAtStation, + RtdFlag::trackMustBeOnWater, RtdFlag::hasLoadOptions, RtdFlag::guestsWillRideAgain, + RtdFlag::hasVehicleColours, RtdFlag::hasTrack, RtdFlag::supportsMultipleColourSchemes, + RtdFlag::allowMusic, RtdFlag::checkGForces, RtdFlag::hasEntranceAndExit, + RtdFlag::allowMoreVehiclesThanStationFits), .RideModes = EnumsToFlags(RideMode::ContinuousCircuit), .DefaultMode = RideMode::ContinuousCircuit, .Naming = { STR_RIDE_NAME_SUBMARINE_RIDE, STR_RIDE_DESCRIPTION_SUBMARINE_RIDE }, diff --git a/src/openrct2/scripting/bindings/world/ScTileElement.cpp b/src/openrct2/scripting/bindings/world/ScTileElement.cpp index c858452ab8..a91d4966db 100644 --- a/src/openrct2/scripting/bindings/world/ScTileElement.cpp +++ b/src/openrct2/scripting/bindings/world/ScTileElement.cpp @@ -501,7 +501,7 @@ namespace OpenRCT2::Scripting if (ride != nullptr) { const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot read 'sequence' property, TrackElement belongs to a maze."; } @@ -554,7 +554,7 @@ namespace OpenRCT2::Scripting if (ride != nullptr) { const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot set 'sequence' property, TrackElement belongs to a maze."; } @@ -827,7 +827,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot read 'mazeEntry' property, ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot read 'mazeEntry' property, ride is not a maze."; duk_push_int(ctx, el->GetMazeEntry()); @@ -857,7 +857,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot set 'mazeEntry' property, ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot set 'mazeEntry' property, ride is not a maze."; el->SetMazeEntry(value.as_uint()); @@ -885,7 +885,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot read 'colourScheme' property, ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot read 'colourScheme' property, TrackElement belongs to a maze."; duk_push_int(ctx, el->GetColourScheme()); @@ -915,7 +915,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot set 'colourScheme', ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot set 'colourScheme' property, TrackElement belongs to a maze."; el->SetColourScheme(static_cast(value.as_uint())); @@ -943,7 +943,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot read 'seatRotation' property, ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot read 'seatRotation' property, TrackElement belongs to a maze."; duk_push_int(ctx, el->GetSeatRotation()); @@ -973,7 +973,7 @@ namespace OpenRCT2::Scripting throw DukException() << "Cannot set 'seatRotation' property, ride is invalid."; const auto& rtd = ride->GetRideTypeDescriptor(); - if (!rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (!rtd.HasFlag(RtdFlag::isMaze)) throw DukException() << "Cannot set 'seatRotation' property, TrackElement belongs to a maze."; el->SetSeatRotation(value.as_uint()); diff --git a/src/openrct2/windows/_legacy.cpp b/src/openrct2/windows/_legacy.cpp index ef04622918..1793d54a60 100644 --- a/src/openrct2/windows/_legacy.cpp +++ b/src/openrct2/windows/_legacy.cpp @@ -50,7 +50,7 @@ money64 PlaceProvisionalTrackPiece( RideConstructionRemoveGhosts(); const auto& rtd = ride->GetRideTypeDescriptor(); - if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE)) + if (rtd.HasFlag(RtdFlag::isMaze)) { int32_t flags = GAME_COMMAND_FLAG_ALLOW_DURING_PAUSED | GAME_COMMAND_FLAG_NO_SPEND | GAME_COMMAND_FLAG_GHOST; auto gameAction = MazeSetTrackAction(CoordsXYZD{ trackPos, 0 }, true, rideIndex, GC_SET_MAZE_TRACK_BUILD); @@ -81,7 +81,7 @@ money64 PlaceProvisionalTrackPiece( int16_t zBegin{}; const auto& ted = GetTrackElementDescriptor(trackType); const TrackCoordinates& coords = ted.coordinates; - if (ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) { zBegin = coords.zBegin; } diff --git a/src/openrct2/world/Banner.cpp b/src/openrct2/world/Banner.cpp index 2a12414a9c..94dd98b6c3 100644 --- a/src/openrct2/world/Banner.cpp +++ b/src/openrct2/world/Banner.cpp @@ -104,7 +104,7 @@ static RideId BannerGetRideIndexAt(const CoordsXYZ& bannerCoords) RideId rideIndex = tileElement->AsTrack()->GetRideIndex(); auto ride = GetRide(rideIndex); - if (ride == nullptr || ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride == nullptr || ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) continue; if ((tileElement->GetClearanceZ()) + (4 * kCoordsZStep) <= bannerCoords.z) @@ -225,7 +225,7 @@ RideId BannerGetClosestRideIndex(const CoordsXYZ& mapPos) auto resultDistance = std::numeric_limits::max(); for (auto& ride : GetRideManager()) { - if (ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_IS_SHOP_OR_FACILITY)) + if (ride.GetRideTypeDescriptor().HasFlag(RtdFlag::isShopOrFacility)) continue; auto rideCoords = ride.overall_view; diff --git a/src/openrct2/world/ConstructionClearance.cpp b/src/openrct2/world/ConstructionClearance.cpp index 1a643c58f9..726e0a8e08 100644 --- a/src/openrct2/world/ConstructionClearance.cpp +++ b/src/openrct2/world/ConstructionClearance.cpp @@ -102,7 +102,7 @@ static bool MapLoc68BABCShouldContinue( && tileElement->AsTrack()->GetTrackType() == TrackElemType::Flat) { auto ride = GetRide(tileElement->AsTrack()->GetRideIndex()); - if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS)) + if (ride != nullptr && ride->GetRideTypeDescriptor().HasFlag(RtdFlag::supportsLevelCrossings)) { return true; } diff --git a/src/openrct2/world/Footpath.cpp b/src/openrct2/world/Footpath.cpp index c3439d69dd..4eb3b9ab7f 100644 --- a/src/openrct2/world/Footpath.cpp +++ b/src/openrct2/world/Footpath.cpp @@ -707,7 +707,7 @@ static void Loc6A6D7E( continue; } - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)) { continue; } @@ -793,7 +793,7 @@ static void Loc6A6C85( return; } - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)) { return; } @@ -2039,7 +2039,7 @@ bool TileElementWantsPathConnectionTowards(const TileCoordsXYZD& coords, const T if (ride == nullptr) continue; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)) break; const auto trackType = tileElement->AsTrack()->GetTrackType(); @@ -2132,7 +2132,7 @@ void FootpathRemoveEdgesAt(const CoordsXY& footpathPos, TileElement* tileElement if (ride == nullptr) return; - if (!ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_FLAT_RIDE)) + if (!ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)) return; } @@ -2421,5 +2421,5 @@ bool PathElement::IsLevelCrossing(const CoordsXY& coords) const return false; } - return ride->GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_SUPPORTS_LEVEL_CROSSINGS); + return ride->GetRideTypeDescriptor().HasFlag(RtdFlag::supportsLevelCrossings); } diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 0763d8e7a3..15c48d3a35 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -136,9 +136,9 @@ namespace OpenRCT2::Park { if (!(ride.lifecycle_flags & RIDE_LIFECYCLE_TESTED)) continue; - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)) continue; - if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_DATA_LOGGING)) + if (!ride.GetRideTypeDescriptor().HasFlag(RtdFlag::hasDataLogging)) continue; if (ride.GetStation().SegmentLength < (600 << 16)) continue;