From baf3d8fdede501a2c8d973081b4b0d88969eef52 Mon Sep 17 00:00:00 2001 From: Jan Kelemen Date: Sat, 2 Mar 2024 20:41:16 +0100 Subject: [PATCH 1/2] Move gCashHistory to GameState_t --- src/openrct2-ui/windows/Finances.cpp | 4 ++-- src/openrct2/GameState.h | 1 + src/openrct2/management/Finance.cpp | 3 +-- src/openrct2/management/Finance.h | 1 - src/openrct2/park/ParkFile.cpp | 2 +- src/openrct2/rct1/S4Importer.cpp | 2 +- src/openrct2/rct2/S6Importer.cpp | 2 +- src/openrct2/world/Park.cpp | 4 +++- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index b94f1fed68..653b178d65 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -635,7 +635,7 @@ public: int32_t yAxisScale = 0; for (int32_t i = 0; i < 64; i++) { - auto balance = gCashHistory[i]; + auto balance = gameState.CashHistory[i]; if (balance == kMoney64Undefined) continue; @@ -667,7 +667,7 @@ public: // X axis labels and values coords = graphTopLeft + ScreenCoordsXY{ 98, 17 }; - Graph::Draw(dpi, gCashHistory, 64, coords, yAxisScale, 128); + Graph::Draw(dpi, gameState.CashHistory, 64, coords, yAxisScale, 128); } #pragma endregion diff --git a/src/openrct2/GameState.h b/src/openrct2/GameState.h index 6a6eec7706..0701676609 100644 --- a/src/openrct2/GameState.h +++ b/src/openrct2/GameState.h @@ -51,6 +51,7 @@ namespace OpenRCT2 ClimateState ClimateNext; uint16_t ClimateUpdateTimer; money64 Cash; + money64 CashHistory[FINANCE_GRAPH_SIZE]; money64 InitialCash; money64 GuestInitialCash; uint8_t GuestInitialHappiness; diff --git a/src/openrct2/management/Finance.cpp b/src/openrct2/management/Finance.cpp index 292fbe97e8..6e7e4fdd20 100644 --- a/src/openrct2/management/Finance.cpp +++ b/src/openrct2/management/Finance.cpp @@ -40,7 +40,6 @@ static constexpr int32_t dword_988E60[static_cast(ExpenditureType::Coun }; money64 gHistoricalProfit; -money64 gCashHistory[FINANCE_GRAPH_SIZE]; money64 gExpenditureTable[EXPENDITURE_TABLE_MONTH_COUNT][static_cast(ExpenditureType::Count)]; /** @@ -190,7 +189,7 @@ void FinanceResetHistory() auto& gameState = GetGameState(); for (int32_t i = 0; i < FINANCE_GRAPH_SIZE; i++) { - gCashHistory[i] = kMoney64Undefined; + gameState.CashHistory[i] = kMoney64Undefined; gameState.WeeklyProfitHistory[i] = kMoney64Undefined; gameState.ParkValueHistory[i] = kMoney64Undefined; } diff --git a/src/openrct2/management/Finance.h b/src/openrct2/management/Finance.h index bc8b028871..6b3536937f 100644 --- a/src/openrct2/management/Finance.h +++ b/src/openrct2/management/Finance.h @@ -44,7 +44,6 @@ extern const money64 research_cost_table[RESEARCH_FUNDING_COUNT]; */ extern money64 gHistoricalProfit; -extern money64 gCashHistory[FINANCE_GRAPH_SIZE]; extern money64 gExpenditureTable[EXPENDITURE_TABLE_MONTH_COUNT][static_cast(ExpenditureType::Count)]; bool FinanceCheckMoneyRequired(uint32_t flags); diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index 799c829b68..4f37d842aa 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -927,7 +927,7 @@ namespace OpenRCT2 return true; }); - cs.ReadWriteArray(gCashHistory, [&cs](money64& value) { + cs.ReadWriteArray(gameState.CashHistory, [&cs](money64& value) { cs.ReadWrite(value); return true; }); diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index e70c732791..6d714a69f0 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1441,7 +1441,7 @@ namespace RCT1 for (size_t i = 0; i < Limits::FinanceGraphSize; i++) { - gCashHistory[i] = ToMoney64(_s4.CashHistory[i]); + gameState.CashHistory[i] = ToMoney64(_s4.CashHistory[i]); gameState.ParkValueHistory[i] = CorrectRCT1ParkValue(_s4.ParkValueHistory[i]); gameState.WeeklyProfitHistory[i] = ToMoney64(_s4.WeeklyProfitHistory[i]); } diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 9093aa1050..c52066d415 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -366,7 +366,7 @@ namespace RCT2 for (size_t i = 0; i < Limits::FinanceGraphSize; i++) { - gCashHistory[i] = ToMoney64(_s6.BalanceHistory[i]); + gameState.CashHistory[i] = ToMoney64(_s6.BalanceHistory[i]); gameState.WeeklyProfitHistory[i] = ToMoney64(_s6.WeeklyProfitHistory[i]); gameState.ParkValueHistory[i] = ToMoney64(_s6.ParkValueHistory[i]); } diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 652c65fdb7..5c7a8c8ece 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -752,7 +752,9 @@ void Park::UpdateHistories() // Update park rating, guests in park and current cash history HistoryPushRecord(gameState.ParkRatingHistory, gameState.ParkRating / 4); HistoryPushRecord(gGuestsInParkHistory, gameState.NumGuestsInPark); - HistoryPushRecord(gCashHistory, FinanceGetCurrentCash() - gameState.BankLoan); + + constexpr auto cashHistorySize = std::extent_v; + HistoryPushRecord(gameState.CashHistory, FinanceGetCurrentCash() - gameState.BankLoan); // Update weekly profit history auto currentWeeklyProfit = gameState.WeeklyProfitAverageDividend; From dabf85882a095bb498549e8c78b4bdbfb7233583 Mon Sep 17 00:00:00 2001 From: Jan Kelemen Date: Sat, 2 Mar 2024 20:48:18 +0100 Subject: [PATCH 2/2] Update contributors.md --- contributors.md | 1 + 1 file changed, 1 insertion(+) diff --git a/contributors.md b/contributors.md index a50932ed55..e83a06460b 100644 --- a/contributors.md +++ b/contributors.md @@ -234,6 +234,7 @@ Appreciation for contributors who have provided substantial work, but are no lon * Michael Bernardi (mrmbernardi) * Aram Kazorian (aramk-hub) * Harry Hopkinson (Harry-Hopkinson) +* Jan Kelemen (jan-kelemen) ## Toolchain * (Balletie) - macOS