From e6c0de038276749a2e4fe2ede0fae79876748584 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Wed, 13 Aug 2025 22:28:18 +0200 Subject: [PATCH] Move .numGuests(HeadingForPark|InParkLastWeek) into ParkData struct --- src/openrct2/Editor.cpp | 4 ++-- src/openrct2/Game.cpp | 7 ++++--- src/openrct2/GameState.h | 2 -- src/openrct2/entity/Peep.cpp | 8 ++++---- src/openrct2/park/ParkFile.cpp | 4 ++-- src/openrct2/rct2/S6Importer.cpp | 4 ++-- src/openrct2/world/Park.cpp | 10 +++++----- src/openrct2/world/ParkData.h | 2 ++ 8 files changed, 21 insertions(+), 20 deletions(-) diff --git a/src/openrct2/Editor.cpp b/src/openrct2/Editor.cpp index 783fbb6a77..942f9a0c0d 100644 --- a/src/openrct2/Editor.cpp +++ b/src/openrct2/Editor.cpp @@ -303,8 +303,8 @@ namespace OpenRCT2::Editor ResetAllEntities(); UpdateConsolidatedPatrolAreas(); gameState.park.numGuestsInPark = 0; - gameState.numGuestsHeadingForPark = 0; - gameState.numGuestsInParkLastWeek = 0; + gameState.park.numGuestsHeadingForPark = 0; + gameState.park.numGuestsInParkLastWeek = 0; gameState.guestChangeModifier = 0; if (fromSave) { diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index 496b95bb9b..1301efe5c7 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -195,13 +195,14 @@ static void FixGuestsHeadingToParkCount() } } - if (gameState.numGuestsHeadingForPark != guestsHeadingToPark) + if (gameState.park.numGuestsHeadingForPark != guestsHeadingToPark) { LOG_WARNING( - "Corrected bad amount of guests heading to park: %u -> %u", gameState.numGuestsHeadingForPark, guestsHeadingToPark); + "Corrected bad amount of guests heading to park: %u -> %u", gameState.park.numGuestsHeadingForPark, + guestsHeadingToPark); } - gameState.numGuestsHeadingForPark = guestsHeadingToPark; + gameState.park.numGuestsHeadingForPark = guestsHeadingToPark; } static void FixGuestCount() diff --git a/src/openrct2/GameState.h b/src/openrct2/GameState.h index 3b88d8e143..20f49afacc 100644 --- a/src/openrct2/GameState.h +++ b/src/openrct2/GameState.h @@ -53,8 +53,6 @@ namespace OpenRCT2 uint8_t guestChangeModifier; uint32_t nextGuestNumber; - uint32_t numGuestsHeadingForPark; - uint32_t numGuestsInParkLastWeek; uint64_t totalAdmissions; money64 totalIncomeFromAdmissions; money64 totalRideValueForMoney; diff --git a/src/openrct2/entity/Peep.cpp b/src/openrct2/entity/Peep.cpp index 3a31941032..84cc953c23 100644 --- a/src/openrct2/entity/Peep.cpp +++ b/src/openrct2/entity/Peep.cpp @@ -2604,9 +2604,9 @@ void IncrementGuestsInPark() void IncrementGuestsHeadingForPark() { auto& gameState = getGameState(); - if (gameState.numGuestsHeadingForPark < UINT32_MAX) + if (gameState.park.numGuestsHeadingForPark < UINT32_MAX) { - gameState.numGuestsHeadingForPark++; + gameState.park.numGuestsHeadingForPark++; } else { @@ -2631,9 +2631,9 @@ void DecrementGuestsHeadingForPark() { auto& gameState = getGameState(); - if (gameState.numGuestsHeadingForPark > 0) + if (gameState.park.numGuestsHeadingForPark > 0) { - gameState.numGuestsHeadingForPark--; + gameState.park.numGuestsHeadingForPark--; } else { diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index b3655848b0..602075f129 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -980,7 +980,7 @@ namespace OpenRCT2 cs.ReadWrite(gameState.park.companyValue); cs.ReadWrite(gameState.park.Size); cs.ReadWrite(gameState.park.numGuestsInPark); - cs.ReadWrite(gameState.numGuestsHeadingForPark); + cs.ReadWrite(gameState.park.numGuestsHeadingForPark); cs.ReadWrite(gameState.park.Rating); cs.ReadWrite(gameState.park.RatingCasualtyPenalty); cs.ReadWrite(gameState.park.currentExpenditure); @@ -999,7 +999,7 @@ namespace OpenRCT2 { cs.ReadWrite(gameState.totalRideValueForMoney); } - cs.ReadWrite(gameState.numGuestsInParkLastWeek); + cs.ReadWrite(gameState.park.numGuestsInParkLastWeek); cs.ReadWrite(gameState.guestChangeModifier); cs.ReadWrite(gameState.guestGenerationProbability); cs.ReadWrite(gameState.suggestedGuestMaximum); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index c0a3913a4c..5e04ebc5e7 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -408,7 +408,7 @@ namespace OpenRCT2::RCT2 // _s6.ResearchedTrackTypesB gameState.park.numGuestsInPark = _s6.GuestsInPark; - gameState.numGuestsHeadingForPark = _s6.GuestsHeadingForPark; + gameState.park.numGuestsHeadingForPark = _s6.GuestsHeadingForPark; for (size_t i = 0; i < Limits::kExpenditureTableMonthCount; i++) { @@ -418,7 +418,7 @@ namespace OpenRCT2::RCT2 } } - gameState.numGuestsInParkLastWeek = _s6.LastGuestsInPark; + gameState.park.numGuestsInParkLastWeek = _s6.LastGuestsInPark; // Pad01357BCA gameState.park.staffHandymanColour = _s6.HandymanColour; gameState.park.staffMechanicColour = _s6.MechanicColour; diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 4ae85f6905..bc3a5b86a1 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -183,7 +183,7 @@ namespace OpenRCT2::Park uint32_t probability = 50 + std::clamp(gameState.park.Rating - 200, 0, 650); // The more guests, the lower the chance of a new one - uint32_t numGuests = gameState.park.numGuestsInPark + gameState.numGuestsHeadingForPark; + uint32_t numGuests = gameState.park.numGuestsInPark + gameState.park.numGuestsHeadingForPark; if (numGuests > gameState.suggestedGuestMaximum) { probability /= 4; @@ -282,8 +282,8 @@ namespace OpenRCT2::Park gameState.park.staffMechanicColour = COLOUR_LIGHT_BLUE; gameState.park.staffSecurityColour = COLOUR_YELLOW; gameState.park.numGuestsInPark = 0; - gameState.numGuestsInParkLastWeek = 0; - gameState.numGuestsHeadingForPark = 0; + gameState.park.numGuestsInParkLastWeek = 0; + gameState.park.numGuestsHeadingForPark = 0; gameState.guestChangeModifier = 0; gameState.park.Rating = 0; gameState.guestGenerationProbability = 0; @@ -594,7 +594,7 @@ namespace OpenRCT2::Park { uint8_t guestChangeModifier = 1; int32_t changeInGuestsInPark = static_cast(gameState.park.numGuestsInPark) - - static_cast(gameState.numGuestsInParkLastWeek); + - static_cast(gameState.park.numGuestsInParkLastWeek); if (changeInGuestsInPark > -20) { guestChangeModifier++; @@ -604,7 +604,7 @@ namespace OpenRCT2::Park } } gameState.guestChangeModifier = guestChangeModifier; - gameState.numGuestsInParkLastWeek = gameState.park.numGuestsInPark; + gameState.park.numGuestsInParkLastWeek = gameState.park.numGuestsInPark; // Update park rating, guests in park and current cash history constexpr auto ratingHistorySize = std::extent_v; diff --git a/src/openrct2/world/ParkData.h b/src/openrct2/world/ParkData.h index ac69b39d62..540d30c3c9 100644 --- a/src/openrct2/world/ParkData.h +++ b/src/openrct2/world/ParkData.h @@ -85,6 +85,8 @@ namespace OpenRCT2::Park uint32_t guestsInParkHistory[kGuestsInParkHistorySize]; uint32_t numGuestsInPark; + uint32_t numGuestsHeadingForPark; + uint32_t numGuestsInParkLastWeek; money64 bankLoan;