From 81814bd81eed1bc8e258e7c212796b77bf1a5608 Mon Sep 17 00:00:00 2001 From: Harry Hopkinson Date: Thu, 7 Mar 2024 18:44:21 +0000 Subject: [PATCH] Move gLandPrice to GameState_t --- src/openrct2-ui/windows/EditorScenarioOptions.cpp | 10 +++++----- src/openrct2/GameState.h | 1 + src/openrct2/actions/LandBuyRightsAction.cpp | 2 +- src/openrct2/actions/LandSetRightsAction.cpp | 2 +- src/openrct2/actions/ScenarioSetSettingAction.cpp | 2 +- src/openrct2/interface/InteractiveConsole.cpp | 2 +- src/openrct2/park/ParkFile.cpp | 4 ++-- src/openrct2/rct1/S4Importer.cpp | 2 +- src/openrct2/rct2/S6Importer.cpp | 2 +- src/openrct2/scripting/bindings/world/ScPark.cpp | 4 ++-- src/openrct2/world/Park.cpp | 4 +--- src/openrct2/world/Park.h | 2 -- 12 files changed, 17 insertions(+), 20 deletions(-) diff --git a/src/openrct2-ui/windows/EditorScenarioOptions.cpp b/src/openrct2-ui/windows/EditorScenarioOptions.cpp index 47cd8b969d..5a68fb0c64 100644 --- a/src/openrct2-ui/windows/EditorScenarioOptions.cpp +++ b/src/openrct2-ui/windows/EditorScenarioOptions.cpp @@ -1005,10 +1005,10 @@ private: switch (widgetIndex) { case WIDX_LAND_COST_INCREASE: - if (gLandPrice < 200.00_GBP) + if (gameState.LandPrice < 200.00_GBP) { auto scenarioSetSetting = ScenarioSetSettingAction( - ScenarioSetSetting::CostToBuyLand, gLandPrice + 1.00_GBP); + ScenarioSetSetting::CostToBuyLand, gameState.LandPrice + 1.00_GBP); GameActions::Execute(&scenarioSetSetting); } else @@ -1018,10 +1018,10 @@ private: Invalidate(); break; case WIDX_LAND_COST_DECREASE: - if (gLandPrice > 5.00_GBP) + if (gameState.LandPrice > 5.00_GBP) { auto scenarioSetSetting = ScenarioSetSettingAction( - ScenarioSetSetting::CostToBuyLand, gLandPrice - 1.00_GBP); + ScenarioSetSetting::CostToBuyLand, gameState.LandPrice - 1.00_GBP); GameActions::Execute(&scenarioSetSetting); } else @@ -1215,7 +1215,7 @@ private: // Cost to buy land value screenCoords = windowPos + ScreenCoordsXY{ landCostWidget.left + 1, landCostWidget.top }; auto ft = Formatter(); - ft.Add(gLandPrice); + ft.Add(gameState.LandPrice); DrawTextBasic(dpi, screenCoords, STR_CURRENCY_FORMAT_LABEL, ft); } diff --git a/src/openrct2/GameState.h b/src/openrct2/GameState.h index d310163a18..80451a60e8 100644 --- a/src/openrct2/GameState.h +++ b/src/openrct2/GameState.h @@ -82,6 +82,7 @@ namespace OpenRCT2 money64 ExpenditureTable[EXPENDITURE_TABLE_MONTH_COUNT][static_cast(ExpenditureType::Count)]; random_engine_t ScenarioRand; TileCoordsXY MapSize; + money64 LandPrice; ::EditorStep EditorStep; diff --git a/src/openrct2/actions/LandBuyRightsAction.cpp b/src/openrct2/actions/LandBuyRightsAction.cpp index 74a025e6a5..e976375579 100644 --- a/src/openrct2/actions/LandBuyRightsAction.cpp +++ b/src/openrct2/actions/LandBuyRightsAction.cpp @@ -144,7 +144,7 @@ GameActions::Result LandBuyRightsAction::MapBuyLandRightsForTile(const CoordsXY& surfaceElement->SetOwnership(OWNERSHIP_OWNED); ParkUpdateFencesAroundTile(loc); } - res.Cost = gLandPrice; + res.Cost = GetGameState().LandPrice; return res; case LandBuyRightSetting::BuyConstructionRights: // 2 diff --git a/src/openrct2/actions/LandSetRightsAction.cpp b/src/openrct2/actions/LandSetRightsAction.cpp index 4dfc838413..9b7de8c1d6 100644 --- a/src/openrct2/actions/LandSetRightsAction.cpp +++ b/src/openrct2/actions/LandSetRightsAction.cpp @@ -184,7 +184,7 @@ GameActions::Result LandSetRightsAction::MapBuyLandRightsForTile(const CoordsXY& } } - res.Cost = gLandPrice; + res.Cost = GetGameState().LandPrice; if (isExecuting) { if (_ownership != OWNERSHIP_UNOWNED) diff --git a/src/openrct2/actions/ScenarioSetSettingAction.cpp b/src/openrct2/actions/ScenarioSetSettingAction.cpp index 60a2fb773f..bc64961cc0 100644 --- a/src/openrct2/actions/ScenarioSetSettingAction.cpp +++ b/src/openrct2/actions/ScenarioSetSettingAction.cpp @@ -146,7 +146,7 @@ GameActions::Result ScenarioSetSettingAction::Execute() const } break; case ScenarioSetSetting::CostToBuyLand: - gLandPrice = std::clamp(_value, 5.00_GBP, 200.00_GBP); + gameState.LandPrice = std::clamp(_value, 5.00_GBP, 200.00_GBP); break; case ScenarioSetSetting::CostToBuyConstructionRights: gameState.ConstructionRightsPrice = std::clamp(_value, 5.00_GBP, 200.00_GBP); diff --git a/src/openrct2/interface/InteractiveConsole.cpp b/src/openrct2/interface/InteractiveConsole.cpp index 9013e739c4..d064257f6a 100644 --- a/src/openrct2/interface/InteractiveConsole.cpp +++ b/src/openrct2/interface/InteractiveConsole.cpp @@ -668,7 +668,7 @@ static int32_t ConsoleCommandGet(InteractiveConsole& console, const arguments_t& } else if (argv[0] == "land_rights_cost") { - console.WriteFormatLine("land_rights_cost %d.%d0", gLandPrice / 10, gLandPrice % 10); + console.WriteFormatLine("land_rights_cost %d.%d0", gameState.LandPrice / 10, gameState.LandPrice % 10); } else if (argv[0] == "construction_rights_cost") { diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index c5dad5fa8a..1b10cc3907 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -541,12 +541,12 @@ namespace OpenRCT2 money16 tempConstructionRightPrice{}; cs.ReadWrite(tempLandPrice); cs.ReadWrite(tempConstructionRightPrice); - gLandPrice = ToMoney64(tempLandPrice); + gameState.LandPrice = ToMoney64(tempLandPrice); gameState.ConstructionRightsPrice = ToMoney64(tempConstructionRightPrice); } else { - cs.ReadWrite(gLandPrice); + cs.ReadWrite(gameState.LandPrice); cs.ReadWrite(gameState.ConstructionRightsPrice); } cs.ReadWrite(gGrassSceneryTileLoopPosition); diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 970d5ee818..d6c506bb23 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1425,7 +1425,7 @@ namespace RCT1 void ImportFinance(GameState_t& gameState) { gameState.ParkEntranceFee = _s4.ParkEntranceFee; - gLandPrice = ToMoney64(_s4.LandPrice); + gameState.LandPrice = ToMoney64(_s4.LandPrice); gameState.ConstructionRightsPrice = ToMoney64(_s4.ConstructionRightsPrice); gameState.Cash = ToMoney64(_s4.Cash); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 910464b52f..76f62bed87 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -387,7 +387,7 @@ namespace RCT2 } } - gLandPrice = ToMoney64(_s6.LandPrice); + gameState.LandPrice = ToMoney64(_s6.LandPrice); gameState.ConstructionRightsPrice = ToMoney64(_s6.ConstructionRightsPrice); // unk_01358774 // Pad01358776 diff --git a/src/openrct2/scripting/bindings/world/ScPark.cpp b/src/openrct2/scripting/bindings/world/ScPark.cpp index 58b7e59cea..d7bc857dcd 100644 --- a/src/openrct2/scripting/bindings/world/ScPark.cpp +++ b/src/openrct2/scripting/bindings/world/ScPark.cpp @@ -243,12 +243,12 @@ namespace OpenRCT2::Scripting money64 ScPark::landPrice_get() const { - return gLandPrice; + return GetGameState().LandPrice; } void ScPark::landPrice_set(money64 value) { ThrowIfGameStateNotMutable(); - gLandPrice = value; + GetGameState().LandPrice = value; } money64 ScPark::constructionRightsPrice_get() const diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 4f3eda7aae..68ff18ee35 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -47,8 +47,6 @@ using namespace OpenRCT2; -money64 gLandPrice; - int16_t gParkRatingCasualtyPenalty; // If this value is more than or equal to 0, the park rating is forced to this value. Used for cheat @@ -272,7 +270,7 @@ void Park::Initialise() gameState.ScenarioObjective.Type = OBJECTIVE_GUESTS_BY; gameState.ScenarioObjective.Year = 4; gameState.ScenarioObjective.NumGuests = 1000; - gLandPrice = 90.00_GBP; + gameState.LandPrice = 90.00_GBP; gameState.ConstructionRightsPrice = 40.00_GBP; gameState.ParkFlags = PARK_FLAGS_NO_MONEY | PARK_FLAGS_SHOW_REAL_GUEST_NAMES; ResetHistories(); diff --git a/src/openrct2/world/Park.h b/src/openrct2/world/Park.h index 404bcdb78c..0337793c50 100644 --- a/src/openrct2/world/Park.h +++ b/src/openrct2/world/Park.h @@ -92,8 +92,6 @@ namespace OpenRCT2 }; } // namespace OpenRCT2 -extern money64 gLandPrice; - extern int16_t gParkRatingCasualtyPenalty; void ParkSetForcedRating(int32_t rating);