1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-30 02:05:13 +01:00

refactor ride track groups to use new bitset

remove erroneous value from dummy rtd

make comment more descriptive

remove comment
This commit is contained in:
spacek531
2021-12-09 13:28:04 -08:00
parent f65e12fc78
commit 52d55f5341
91 changed files with 301 additions and 338 deletions

View File

@@ -320,18 +320,16 @@ bool RideTypeDescriptor::HasFlag(uint64_t flag) const
return Flags & flag;
}
uint64_t RideTypeDescriptor::GetAvailableTrackPieces() const
void RideTypeDescriptor::GetAvailableTrackPieces(RideTrackGroup& res) const
{
res |= EnabledTrackPieces;
if (gCheatsEnableAllDrawableTrackPieces)
{
return EnabledTrackPieces | ExtraTrackPieces;
}
return EnabledTrackPieces;
res |= ExtraTrackPieces;
}
bool RideTypeDescriptor::SupportsTrackPiece(const uint64_t trackPiece) const
{
return GetAvailableTrackPieces() & (1ULL << trackPiece);
return EnabledTrackPieces.get(trackPiece) || (gCheatsEnableAllDrawableTrackPieces && ExtraTrackPieces.get(trackPiece));
}
ResearchCategory RideTypeDescriptor::GetResearchCategory() const
@@ -356,3 +354,15 @@ ResearchCategory RideTypeDescriptor::GetResearchCategory() const
log_error("Cannot get Research Category of invalid RideCategory");
return ResearchCategory::Transport;
}
static RideTrackGroup _enabledRidePieces = {};
bool IsTrackEnabled(int32_t trackFlagIndex)
{
return _enabledRidePieces.get(trackFlagIndex);
}
void UpdateEnabledRidePieces(ride_type_t rideType)
{
GetRideTypeDescriptor(rideType).GetAvailableTrackPieces(_enabledRidePieces);
}