1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 03:23:15 +01:00

Cleanup gameState usage (#22692)

This commit is contained in:
Harry Hopkinson
2024-09-04 06:34:37 +01:00
committed by GitHub
parent 547b763e89
commit 003c196eb8
5 changed files with 37 additions and 29 deletions

View File

@@ -526,7 +526,7 @@ static constexpr WindowParkAward _parkAwards[] = {
// Set open / close park button state
{
auto parkName = GetGameState().Park.Name.c_str();
auto parkName = gameState.Park.Name.c_str();
auto ft = Formatter::Common();
ft.Add<StringId>(STR_STRING);
@@ -547,7 +547,7 @@ static constexpr WindowParkAward _parkAwards[] = {
disabled_widgets &= ~((1uLL << WIDX_OPEN_OR_CLOSE) | (1uLL << WIDX_CLOSE_LIGHT) | (1uLL << WIDX_OPEN_LIGHT));
// Only allow purchase of land when there is money
if (GetGameState().Park.Flags & PARK_FLAGS_NO_MONEY)
if (gameState.Park.Flags & PARK_FLAGS_NO_MONEY)
widgets[WIDX_BUY_LAND_RIGHTS].type = WindowWidgetType::Empty;
else
widgets[WIDX_BUY_LAND_RIGHTS].type = WindowWidgetType::FlatBtn;

View File

@@ -547,7 +547,7 @@ static Widget *window_research_page_widgets[] = {
const auto& gameState = GetGameState();
auto widgetOffset = GetWidgetIndexOffset(baseWidgetIndex, WIDX_RESEARCH_FUNDING);
if ((GetGameState().Park.Flags & PARK_FLAGS_NO_MONEY) || gameState.ResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL)
if ((gameState.Park.Flags & PARK_FLAGS_NO_MONEY) || gameState.ResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL)
{
w->widgets[WIDX_RESEARCH_FUNDING + widgetOffset].type = WindowWidgetType::Empty;
w->widgets[WIDX_RESEARCH_FUNDING_DROPDOWN_BUTTON + widgetOffset].type = WindowWidgetType::Empty;
@@ -591,10 +591,10 @@ static Widget *window_research_page_widgets[] = {
void WindowResearchFundingDraw(WindowBase* w, DrawPixelInfo& dpi)
{
if (GetGameState().Park.Flags & PARK_FLAGS_NO_MONEY)
const auto& gameState = GetGameState();
if (gameState.Park.Flags & PARK_FLAGS_NO_MONEY)
return;
const auto& gameState = GetGameState();
int32_t currentResearchLevel = gameState.ResearchFundingLevel;
auto ft = Formatter();
ft.Add<money64>(research_cost_table[currentResearchLevel]);

View File

@@ -1920,8 +1920,9 @@ static_assert(std::size(RatingNames) == 6);
bool selectionShouldBeExpanded;
int32_t rideTypeIterator, rideTypeIteratorMax;
const auto& gameState = GetGameState();
const auto& rtd = ride.GetRideTypeDescriptor();
if (GetGameState().Cheats.ShowVehiclesFromOtherTrackTypes
if (gameState.Cheats.ShowVehiclesFromOtherTrackTypes
&& !(rtd.HasFlag(RtdFlag::isFlatRide) || rtd.HasFlag(RtdFlag::isMaze) || ride.type == RIDE_TYPE_MINI_GOLF))
{
selectionShouldBeExpanded = true;
@@ -1960,7 +1961,7 @@ static_assert(std::size(RatingNames) == 6);
continue;
// Skip if vehicle type has not been invented yet
if (!RideEntryIsInvented(rideEntryIndex) && !GetGameState().Cheats.IgnoreResearchStatus)
if (!RideEntryIsInvented(rideEntryIndex) && !gameState.Cheats.IgnoreResearchStatus)
continue;
auto name = currentRideEntry->naming.Name;
@@ -2245,9 +2246,10 @@ static_assert(std::size(RatingNames) == 6);
if (ride == nullptr)
return;
const auto& gameState = GetGameState();
disabled_widgets &= ~((1uLL << WIDX_DEMOLISH) | (1uLL << WIDX_CONSTRUCTION));
if (ride->lifecycle_flags & (RIDE_LIFECYCLE_INDESTRUCTIBLE | RIDE_LIFECYCLE_INDESTRUCTIBLE_TRACK)
&& !GetGameState().Cheats.MakeAllDestructible)
&& !gameState.Cheats.MakeAllDestructible)
disabled_widgets |= (1uLL << WIDX_DEMOLISH);
auto ft = Formatter::Common();
@@ -2286,7 +2288,7 @@ static_assert(std::size(RatingNames) == 6);
AnchorBorderWidgets();
const int32_t offset = GetGameState().Cheats.AllowArbitraryRideTypeChanges ? 15 : 0;
const int32_t offset = gameState.Cheats.AllowArbitraryRideTypeChanges ? 15 : 0;
// Anchor main page specific widgets
widgets[WIDX_VIEWPORT].right = width - 26;
widgets[WIDX_VIEWPORT].bottom = height - (14 + offset);
@@ -2304,7 +2306,7 @@ static_assert(std::size(RatingNames) == 6);
widgets[WIDX_RIDE_TYPE_DROPDOWN].top = height - 16;
widgets[WIDX_RIDE_TYPE_DROPDOWN].bottom = height - 5;
if (!GetGameState().Cheats.AllowArbitraryRideTypeChanges)
if (!gameState.Cheats.AllowArbitraryRideTypeChanges)
{
widgets[WIDX_RIDE_TYPE].type = WindowWidgetType::Empty;
widgets[WIDX_RIDE_TYPE_DROPDOWN].type = WindowWidgetType::Empty;
@@ -2717,8 +2719,9 @@ static_assert(std::size(RatingNames) == 6);
// Vehicle type
widgets[WIDX_VEHICLE_TYPE].text = rideEntry->naming.Name;
const auto& gameState = GetGameState();
// Trains
if (rideEntry->cars_per_flat_ride > 1 || GetGameState().Cheats.DisableTrainLengthLimit)
if (rideEntry->cars_per_flat_ride > 1 || gameState.Cheats.DisableTrainLengthLimit)
{
widgets[WIDX_VEHICLE_TRAINS].type = WindowWidgetType::Spinner;
widgets[WIDX_VEHICLE_TRAINS_INCREASE].type = WindowWidgetType::Button;
@@ -2732,7 +2735,7 @@ static_assert(std::size(RatingNames) == 6);
}
// Cars per train
if (rideEntry->zero_cars + 1 < rideEntry->max_cars_in_train || GetGameState().Cheats.DisableTrainLengthLimit)
if (rideEntry->zero_cars + 1 < rideEntry->max_cars_in_train || gameState.Cheats.DisableTrainLengthLimit)
{
widgets[WIDX_VEHICLE_CARS_PER_TRAIN].type = WindowWidgetType::Spinner;
widgets[WIDX_VEHICLE_CARS_PER_TRAIN_INCREASE].type = WindowWidgetType::Button;
@@ -2746,8 +2749,7 @@ static_assert(std::size(RatingNames) == 6);
}
if (ride->GetRideTypeDescriptor().HasFlag(RtdFlag::allowReversedTrains)
|| (GetGameState().Cheats.DisableTrainLengthLimit
&& !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)))
|| (gameState.Cheats.DisableTrainLengthLimit && !ride->GetRideTypeDescriptor().HasFlag(RtdFlag::isFlatRide)))
{
widgets[WIDX_VEHICLE_REVERSED_TRAINS_CHECKBOX].type = WindowWidgetType::Checkbox;
if (ride->HasLifecycleFlag(RIDE_LIFECYCLE_REVERSED_TRAINS))
@@ -2988,10 +2990,11 @@ static_assert(std::size(RatingNames) == 6);
return;
const auto& operatingSettings = ride->GetRideTypeDescriptor().OperatingSettings;
const auto& gameState = GetGameState();
uint8_t maxValue = operatingSettings.MaxValue;
uint8_t minValue = GetGameState().Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
uint8_t minValue = gameState.Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
if (GetGameState().Cheats.UnlockOperatingLimits)
if (gameState.Cheats.UnlockOperatingLimits)
{
maxValue = OpenRCT2::Limits::kCheatsMaxOperatingLimit;
}
@@ -3009,9 +3012,10 @@ static_assert(std::size(RatingNames) == 6);
return;
const auto& operatingSettings = ride->GetRideTypeDescriptor().OperatingSettings;
const auto& gameState = GetGameState();
uint8_t maxValue = operatingSettings.MaxValue;
uint8_t minValue = GetGameState().Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
if (GetGameState().Cheats.UnlockOperatingLimits)
uint8_t minValue = gameState.Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
if (gameState.Cheats.UnlockOperatingLimits)
{
maxValue = OpenRCT2::Limits::kCheatsMaxOperatingLimit;
}
@@ -3262,9 +3266,10 @@ static_assert(std::size(RatingNames) == 6);
}
const auto& operatingSettings = ride.GetRideTypeDescriptor().OperatingSettings;
int16_t maxValue = GetGameState().Cheats.UnlockOperatingLimits ? OpenRCT2::Limits::kCheatsMaxOperatingLimit
: operatingSettings.MaxValue;
int16_t minValue = GetGameState().Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
const auto& gameState = GetGameState();
int16_t maxValue = gameState.Cheats.UnlockOperatingLimits ? OpenRCT2::Limits::kCheatsMaxOperatingLimit
: operatingSettings.MaxValue;
int16_t minValue = gameState.Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
const auto& title = widgets[WIDX_MODE_TWEAK_LABEL].text;
Formatter ft;
@@ -3344,9 +3349,10 @@ static_assert(std::size(RatingNames) == 6);
if (widgetIndex == WIDX_MODE_TWEAK)
{
const auto& operatingSettings = ride->GetRideTypeDescriptor().OperatingSettings;
uint32_t maxValue = GetGameState().Cheats.UnlockOperatingLimits ? OpenRCT2::Limits::kCheatsMaxOperatingLimit
: operatingSettings.MaxValue;
uint32_t minValue = GetGameState().Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
const auto& gameState = GetGameState();
uint32_t maxValue = gameState.Cheats.UnlockOperatingLimits ? OpenRCT2::Limits::kCheatsMaxOperatingLimit
: operatingSettings.MaxValue;
uint32_t minValue = gameState.Cheats.UnlockOperatingLimits ? 0 : operatingSettings.MinValue;
auto multiplier = ride->GetRideTypeDescriptor().OperatingSettings.OperatingSettingMultiplier;
try

View File

@@ -1719,15 +1719,16 @@ static Widget _rideConstructionWidgets[] = {
widgets[WIDX_SLOPE_UP_STEEP].type = WindowWidgetType::FlatBtn;
}
const auto& gameState = GetGameState();
if (currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::upInclineRequiresLift)
&& (_currentTrackPitchEnd == TrackPitch::Up25 || _currentTrackPitchEnd == TrackPitch::Up60)
&& !GetGameState().Cheats.EnableAllDrawableTrackPieces)
&& !gameState.Cheats.EnableAllDrawableTrackPieces)
{
_currentTrackLiftHill |= CONSTRUCTION_LIFT_HILL_SELECTED;
}
if ((IsTrackEnabled(TrackGroup::liftHill) && !_currentlySelectedTrack.isTrackType)
|| (GetGameState().Cheats.EnableChainLiftOnAllTrack
|| (gameState.Cheats.EnableChainLiftOnAllTrack
&& currentRide->GetRideTypeDescriptor().HasFlag(RtdFlag::hasTrack)))
{
widgets[WIDX_CHAIN_LIFT].type = WindowWidgetType::FlatBtn;

View File

@@ -1457,15 +1457,16 @@ namespace OpenRCT2::Ui::Windows
Dropdown::SetDisabled(DDIDX_ENABLE_SANDBOX_MODE, true);
}
if (GetGameState().Cheats.SandboxMode)
auto& gameState = GetGameState();
if (gameState.Cheats.SandboxMode)
{
Dropdown::SetChecked(DDIDX_ENABLE_SANDBOX_MODE, true);
}
if (GetGameState().Cheats.DisableClearanceChecks)
if (gameState.Cheats.DisableClearanceChecks)
{
Dropdown::SetChecked(DDIDX_DISABLE_CLEARANCE_CHECKS, true);
}
if (GetGameState().Cheats.DisableSupportLimits)
if (gameState.Cheats.DisableSupportLimits)
{
Dropdown::SetChecked(DDIDX_DISABLE_SUPPORT_LIMITS, true);
}