diff --git a/src/openrct2/Limits.h b/src/openrct2/Limits.h index 515441bd66..e5e6ec3e1c 100644 --- a/src/openrct2/Limits.h +++ b/src/openrct2/Limits.h @@ -20,13 +20,13 @@ namespace OpenRCT2::Limits constexpr uint16_t kMaxInversions = RCT12::Limits::kMaxInversions; constexpr uint16_t kMaxTrainsPerRide = 255; constexpr uint16_t kMaxCarsPerTrain = 255; - constexpr const uint16_t MaxVehicleColours = kMaxTrainsPerRide; // this should really be kMaxTrainsPerRide * - // kMaxCarsPerTrain - // MaxVehicleColours should be set to kMaxTrainsPerRide or kMaxCarsPerTrain, whichever is higher. - // Sadly, using std::max() will cause compilation failures when using MaxVehicleColours as an array size, + constexpr const uint16_t kMaxVehicleColours = kMaxTrainsPerRide; // this should really be kMaxTrainsPerRide * + // kMaxCarsPerTrain + // kMaxVehicleColours should be set to kMaxTrainsPerRide or kMaxCarsPerTrain, whichever is higher. + // Sadly, using std::max() will cause compilation failures when using kMaxVehicleColours as an array size, // hence the usage of static asserts. - static_assert(MaxVehicleColours >= kMaxTrainsPerRide); - static_assert(MaxVehicleColours >= kMaxCarsPerTrain); + static_assert(kMaxVehicleColours >= kMaxTrainsPerRide); + static_assert(kMaxVehicleColours >= kMaxCarsPerTrain); constexpr uint8_t MaxCircuitsPerRide = 20; constexpr uint8_t MaxAwards = RCT12::Limits::MaxAwards; constexpr uint8_t NumColourSchemes = RCT12::Limits::NumColourSchemes; diff --git a/src/openrct2/actions/TrackDesignAction.cpp b/src/openrct2/actions/TrackDesignAction.cpp index 989294fac2..f60faeb5af 100644 --- a/src/openrct2/actions/TrackDesignAction.cpp +++ b/src/openrct2/actions/TrackDesignAction.cpp @@ -261,7 +261,7 @@ GameActions::Result TrackDesignAction::Execute() const ride->track_colour[i].supports = _td.track_support_colour[i]; } - for (size_t i = 0; i < Limits::MaxVehicleColours; i++) + for (size_t i = 0; i < Limits::kMaxVehicleColours; i++) { ride->vehicle_colours[i] = _td.vehicle_colours[i]; } diff --git a/src/openrct2/rct12/Limits.h b/src/openrct2/rct12/Limits.h index 69dff972eb..95b803f421 100644 --- a/src/openrct2/rct12/Limits.h +++ b/src/openrct2/rct12/Limits.h @@ -26,7 +26,7 @@ namespace RCT12::Limits constexpr uint8_t PatrolAreaSize = 128; constexpr uint8_t StaffTypeCount = 4; constexpr uint8_t NumColourSchemes = 4; - constexpr uint8_t MaxVehicleColours = 32; + constexpr uint8_t kMaxVehicleColours = 32; constexpr uint8_t ExpenditureTableMonthCount = 16; constexpr uint8_t ExpenditureTypeCount = 14; diff --git a/src/openrct2/rct2/Limits.h b/src/openrct2/rct2/Limits.h index 9bccaa3f04..6b18557981 100644 --- a/src/openrct2/rct2/Limits.h +++ b/src/openrct2/rct2/Limits.h @@ -16,7 +16,7 @@ namespace RCT2::Limits constexpr uint8_t MaxStaff = 200; constexpr uint8_t MaxBanners = 250; constexpr uint8_t kMaxTrainsPerRide = 32; - constexpr uint8_t MaxVehicleColours = 32; + constexpr uint8_t kMaxVehicleColours = 32; constexpr uint8_t DowntimeHistorySize = 8; constexpr uint16_t MaxEntities = 10000; constexpr uint16_t MaxEntitiesRCTCExtended = 15000; // Used in files marked with “classic flag” 0xF diff --git a/src/openrct2/rct2/RCT2.h b/src/openrct2/rct2/RCT2.h index 8b6402f06b..8f62ab55f9 100644 --- a/src/openrct2/rct2/RCT2.h +++ b/src/openrct2/rct2/RCT2.h @@ -74,11 +74,11 @@ namespace RCT2 uint8_t Type; // 0x000 // pointer to static info. for example, wild mouse type is 0x36, subtype is // 0x4c. - RCT12ObjectEntryIndex Subtype; // 0x001 - uint16_t Pad002; // 0x002 - uint8_t Mode; // 0x004 - uint8_t ColourSchemeType; // 0x005 - RCT12VehicleColour VehicleColours[Limits::MaxVehicleColours]; // 0x006 + RCT12ObjectEntryIndex Subtype; // 0x001 + uint16_t Pad002; // 0x002 + uint8_t Mode; // 0x004 + uint8_t ColourSchemeType; // 0x005 + RCT12VehicleColour VehicleColours[Limits::kMaxVehicleColours]; // 0x006 uint8_t Pad046[0x03]; // 0x046, Used to be track colours in RCT1 without expansions // 0 = closed, 1 = open, 2 = test uint8_t Status; // 0x049 @@ -258,33 +258,33 @@ namespace RCT2 uint8_t BreakdownSoundModifier; // 0x1AC // Used to oscillate the sound when ride breaks down. // 0 = no change, 255 = max change - uint8_t NotFixedTimeout; // 0x1AD - uint8_t LastCrashType; // 0x1AE - uint8_t ConnectedMessageThrottle; // 0x1AF - money32 IncomePerHour; // 0x1B0 - money32 Profit; // 0x1B4 - uint8_t QueueTime[Limits::kMaxStationsPerRide]; // 0x1B8 - uint8_t TrackColourMain[Limits::NumColourSchemes]; // 0x1BC - uint8_t TrackColourAdditional[Limits::NumColourSchemes]; // 0x1C0 - uint8_t TrackColourSupports[Limits::NumColourSchemes]; // 0x1C4 - uint8_t Music; // 0x1C8 - uint8_t EntranceStyle; // 0x1C9 - uint16_t VehicleChangeTimeout; // 0x1CA - uint8_t NumBlockBrakes; // 0x1CC - uint8_t LiftHillSpeed; // 0x1CD - uint16_t GuestsFavourite; // 0x1CE - uint32_t LifecycleFlags; // 0x1D0 - uint8_t VehicleColoursExtended[Limits::MaxVehicleColours]; // 0x1D4 - uint16_t TotalAirTime; // 0x1F4 - uint8_t CurrentTestStation; // 0x1F6 - uint8_t NumCircuits; // 0x1F7 - int16_t CableLiftX; // 0x1F8 - int16_t CableLiftY; // 0x1FA - uint8_t CableLiftZ; // 0x1FC - uint8_t Pad1FD; // 0x1FD - uint16_t CableLift; // 0x1FE - uint16_t QueueLength[Limits::kMaxStationsPerRide]; // 0x200 - uint8_t Pad208[0x58]; // 0x208 + uint8_t NotFixedTimeout; // 0x1AD + uint8_t LastCrashType; // 0x1AE + uint8_t ConnectedMessageThrottle; // 0x1AF + money32 IncomePerHour; // 0x1B0 + money32 Profit; // 0x1B4 + uint8_t QueueTime[Limits::kMaxStationsPerRide]; // 0x1B8 + uint8_t TrackColourMain[Limits::NumColourSchemes]; // 0x1BC + uint8_t TrackColourAdditional[Limits::NumColourSchemes]; // 0x1C0 + uint8_t TrackColourSupports[Limits::NumColourSchemes]; // 0x1C4 + uint8_t Music; // 0x1C8 + uint8_t EntranceStyle; // 0x1C9 + uint16_t VehicleChangeTimeout; // 0x1CA + uint8_t NumBlockBrakes; // 0x1CC + uint8_t LiftHillSpeed; // 0x1CD + uint16_t GuestsFavourite; // 0x1CE + uint32_t LifecycleFlags; // 0x1D0 + uint8_t VehicleColoursExtended[Limits::kMaxVehicleColours]; // 0x1D4 + uint16_t TotalAirTime; // 0x1F4 + uint8_t CurrentTestStation; // 0x1F6 + uint8_t NumCircuits; // 0x1F7 + int16_t CableLiftX; // 0x1F8 + int16_t CableLiftY; // 0x1FA + uint8_t CableLiftZ; // 0x1FC + uint8_t Pad1FD; // 0x1FD + uint16_t CableLift; // 0x1FE + uint16_t QueueLength[Limits::kMaxStationsPerRide]; // 0x200 + uint8_t Pad208[0x58]; // 0x208 uint8_t GetMinCarsPerTrain() const; uint8_t GetMaxCarsPerTrain() const; diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 18ed8a8ef5..89bd33549f 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -1318,7 +1318,7 @@ namespace RCT2 dst->mode = static_cast(src->Mode); dst->colour_scheme_type = src->ColourSchemeType; - for (uint8_t i = 0; i < Limits::MaxVehicleColours; i++) + for (uint8_t i = 0; i < Limits::kMaxVehicleColours; i++) { dst->vehicle_colours[i].Body = src->VehicleColours[i].BodyColour; dst->vehicle_colours[i].Trim = src->VehicleColours[i].TrimColour; diff --git a/src/openrct2/rct2/T6Exporter.cpp b/src/openrct2/rct2/T6Exporter.cpp index 22aad186ff..ab457b7fc2 100644 --- a/src/openrct2/rct2/T6Exporter.cpp +++ b/src/openrct2/rct2/T6Exporter.cpp @@ -57,7 +57,7 @@ namespace RCT2 tempStream.WriteValue(_trackDesign->flags); tempStream.WriteValue(static_cast(_trackDesign->ride_mode)); tempStream.WriteValue((_trackDesign->colour_scheme & 0x3) | (2 << 2)); - for (auto i = 0; i < RCT2::Limits::MaxVehicleColours; i++) + for (auto i = 0; i < RCT2::Limits::kMaxVehicleColours; i++) { tempStream.WriteValue(_trackDesign->vehicle_colours[i].Body); tempStream.WriteValue(_trackDesign->vehicle_colours[i].Trim); @@ -93,7 +93,7 @@ namespace RCT2 tempStream.Write(&_trackDesign->vehicle_object.Entry, sizeof(RCTObjectEntry)); tempStream.WriteValue(_trackDesign->space_required_x); tempStream.WriteValue(_trackDesign->space_required_y); - for (auto i = 0; i < RCT2::Limits::MaxVehicleColours; i++) + for (auto i = 0; i < RCT2::Limits::kMaxVehicleColours; i++) { tempStream.WriteValue(_trackDesign->vehicle_colours[i].Tertiary); } diff --git a/src/openrct2/rct2/T6Importer.cpp b/src/openrct2/rct2/T6Importer.cpp index 14942e6cb0..c8a53d7016 100644 --- a/src/openrct2/rct2/T6Importer.cpp +++ b/src/openrct2/rct2/T6Importer.cpp @@ -79,7 +79,7 @@ namespace RCT2 td->ride_mode = static_cast(td6.RideMode); td->track_flags = 0; td->colour_scheme = td6.VersionAndColourScheme & 0x3; - for (auto i = 0; i < Limits::MaxVehicleColours; ++i) + for (auto i = 0; i < Limits::kMaxVehicleColours; ++i) { td->vehicle_colours[i].Body = td6.VehicleColours[i].BodyColour; td->vehicle_colours[i].Trim = td6.VehicleColours[i].TrimColour; diff --git a/src/openrct2/ride/Ride.h b/src/openrct2/ride/Ride.h index 493b15bc7a..1ed68a662a 100644 --- a/src/openrct2/ride/Ride.h +++ b/src/openrct2/ride/Ride.h @@ -121,7 +121,7 @@ struct Ride ObjectEntryIndex subtype{ OBJECT_ENTRY_INDEX_NULL }; RideMode mode{}; uint8_t colour_scheme_type{}; - VehicleColour vehicle_colours[OpenRCT2::Limits::MaxVehicleColours]{}; + VehicleColour vehicle_colours[OpenRCT2::Limits::kMaxVehicleColours]{}; // 0 = closed, 1 = open, 2 = test RideStatus status{}; std::string custom_name; diff --git a/src/openrct2/ride/TrackDesign.h b/src/openrct2/ride/TrackDesign.h index faf5ae735f..fd3386b98e 100644 --- a/src/openrct2/ride/TrackDesign.h +++ b/src/openrct2/ride/TrackDesign.h @@ -125,7 +125,7 @@ struct TrackDesign RideMode ride_mode; uint8_t track_flags; uint8_t colour_scheme; - std::array vehicle_colours; + std::array vehicle_colours; u8string StationObjectIdentifier{}; uint8_t total_air_time; uint8_t depart_flags;