mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-20 21:43:06 +01:00
Implement cleaner method for checking mode availability
This commit is contained in:
@@ -551,8 +551,7 @@ GameActions::Result TrackPlaceAction::Execute() const
|
||||
RideMode newMode = RideMode::ContinuousCircuitBlockSectioned;
|
||||
if (ride->mode == RideMode::PoweredLaunch)
|
||||
{
|
||||
if (ride->GetRideTypeDescriptor().RideModes
|
||||
& (1ULL << static_cast<uint8_t>(RideMode::PoweredLaunchBlockSectioned))
|
||||
if (ride->GetRideTypeDescriptor().SupportsRideMode(RideMode::PoweredLaunchBlockSectioned)
|
||||
|| gCheatsShowAllOperatingModes)
|
||||
newMode = RideMode::PoweredLaunchBlockSectioned;
|
||||
else
|
||||
|
||||
@@ -376,6 +376,11 @@ ResearchCategory RideTypeDescriptor::GetResearchCategory() const
|
||||
return ResearchCategory::Transport;
|
||||
}
|
||||
|
||||
bool RideTypeDescriptor::SupportsRideMode(RideMode rideMode) const
|
||||
{
|
||||
return RideModes & EnumToFlag(rideMode);
|
||||
}
|
||||
|
||||
static RideTrackGroup _enabledRidePieces = {};
|
||||
|
||||
bool IsTrackEnabled(int32_t trackFlagIndex)
|
||||
|
||||
@@ -220,6 +220,7 @@ struct RideTypeDescriptor
|
||||
void GetAvailableTrackPieces(RideTrackGroup& res) const;
|
||||
bool SupportsTrackPiece(const uint64_t trackPiece) const;
|
||||
ResearchCategory GetResearchCategory() const;
|
||||
bool SupportsRideMode(RideMode rideMode) const;
|
||||
};
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
Reference in New Issue
Block a user