diff --git a/src/openrct2-ui/windows/EditorScenarioOptions.cpp b/src/openrct2-ui/windows/EditorScenarioOptions.cpp index 73978527dc..4d1ac035e0 100644 --- a/src/openrct2-ui/windows/EditorScenarioOptions.cpp +++ b/src/openrct2-ui/windows/EditorScenarioOptions.cpp @@ -433,13 +433,14 @@ private: void FinancialMouseDown(WidgetIndex widgetIndex) { + auto& gameState = GetGameState(); switch (widgetIndex) { case WIDX_INITIAL_CASH_INCREASE: - if (GetGameState().InitialCash < 1000000.00_GBP) + if (gameState.InitialCash < 1000000.00_GBP) { auto scenarioSetSetting = ScenarioSetSettingAction( - ScenarioSetSetting::InitialCash, GetGameState().InitialCash + 500.00_GBP); + ScenarioSetSetting::InitialCash, gameState.InitialCash + 500.00_GBP); GameActions::Execute(&scenarioSetSetting); } else @@ -449,10 +450,10 @@ private: Invalidate(); break; case WIDX_INITIAL_CASH_DECREASE: - if (GetGameState().InitialCash > 0.00_GBP) + if (gameState.InitialCash > 0.00_GBP) { auto scenarioSetSetting = ScenarioSetSettingAction( - ScenarioSetSetting::InitialCash, GetGameState().InitialCash - 500.00_GBP); + ScenarioSetSetting::InitialCash, gameState.InitialCash - 500.00_GBP); GameActions::Execute(&scenarioSetSetting); } else diff --git a/src/openrct2/actions/ScenarioSetSettingAction.cpp b/src/openrct2/actions/ScenarioSetSettingAction.cpp index 6191b7987d..e7b4a9d06a 100644 --- a/src/openrct2/actions/ScenarioSetSettingAction.cpp +++ b/src/openrct2/actions/ScenarioSetSettingAction.cpp @@ -48,6 +48,7 @@ GameActions::Result ScenarioSetSettingAction::Query() const GameActions::Result ScenarioSetSettingAction::Execute() const { + auto& gameState = GetGameState(); switch (_setting) { case ScenarioSetSetting::NoMoney: @@ -82,8 +83,8 @@ GameActions::Result ScenarioSetSettingAction::Execute() const } break; case ScenarioSetSetting::InitialCash: - GetGameState().InitialCash = std::clamp(_value, 0.00_GBP, 1000000.00_GBP); - GetGameState().Cash = GetGameState().InitialCash; + gameState.InitialCash = std::clamp(_value, 0.00_GBP, 1000000.00_GBP); + gameState.Cash = gameState.InitialCash; WindowInvalidateByClass(WindowClass::Finances); WindowInvalidateByClass(WindowClass::BottomToolbar); break; diff --git a/src/openrct2/management/Finance.cpp b/src/openrct2/management/Finance.cpp index b361216ae7..a38785b02f 100644 --- a/src/openrct2/management/Finance.cpp +++ b/src/openrct2/management/Finance.cpp @@ -213,6 +213,8 @@ void FinanceResetHistory() */ void FinanceInit() { + auto& gameState = GetGameState(); + // It only initialises the first month for (uint32_t i = 0; i < static_cast(ExpenditureType::Count); i++) { @@ -225,9 +227,9 @@ void FinanceInit() gWeeklyProfitAverageDividend = 0; gWeeklyProfitAverageDivisor = 0; - GetGameState().InitialCash = 10000.00_GBP; // Cheat detection + gameState.InitialCash = 10000.00_GBP; // Cheat detection - GetGameState().Cash = 10000.00_GBP; + gameState.Cash = 10000.00_GBP; gBankLoan = 10000.00_GBP; gMaxBankLoan = 20000.00_GBP; @@ -355,7 +357,8 @@ void FinanceShiftExpenditureTable() */ void FinanceResetCashToInitial() { - GetGameState().Cash = GetGameState().InitialCash; + auto& gameState = GetGameState(); + gameState.Cash = gameState.InitialCash; } /** diff --git a/src/openrct2/scenario/Scenario.cpp b/src/openrct2/scenario/Scenario.cpp index 27c320c392..a93678364e 100644 --- a/src/openrct2/scenario/Scenario.cpp +++ b/src/openrct2/scenario/Scenario.cpp @@ -110,12 +110,13 @@ void ScenarioReset() ScenerySetDefaultPlacementConfiguration(); News::InitQueue(); + auto& gameState = GetGameState(); auto& park = GetContext()->GetGameState()->GetPark(); gParkRating = park.CalculateParkRating(); gParkValue = park.CalculateParkValue(); gCompanyValue = park.CalculateCompanyValue(); - gHistoricalProfit = GetGameState().InitialCash - gBankLoan; - GetGameState().Cash = GetGameState().InitialCash; + gHistoricalProfit = gameState.InitialCash - gBankLoan; + gameState.Cash = gameState.InitialCash; { utf8 normalisedName[64];