From a99ffd973612f28a251fc85e74fadd5dfdff2c8f Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Wed, 13 Aug 2025 23:20:59 +0200 Subject: [PATCH] Move .suggestedGuestMaximum into ParkData struct --- src/openrct2/GameState.h | 5 ----- src/openrct2/ReplayManager.cpp | 2 +- src/openrct2/park/ParkFile.cpp | 2 +- src/openrct2/rct2/S6Importer.cpp | 2 +- src/openrct2/scripting/bindings/world/ScPark.cpp | 2 +- src/openrct2/world/Park.cpp | 8 ++++---- src/openrct2/world/ParkData.h | 5 +++++ 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/openrct2/GameState.h b/src/openrct2/GameState.h index 610f5facd3..f6d2c3b1c8 100644 --- a/src/openrct2/GameState.h +++ b/src/openrct2/GameState.h @@ -105,11 +105,6 @@ namespace OpenRCT2 ObjectEntryIndex lastEntranceStyle; - /** - * In a difficult guest generation scenario, no guests will be generated if over this value. - */ - uint32_t suggestedGuestMaximum; - CheatsState cheats; }; diff --git a/src/openrct2/ReplayManager.cpp b/src/openrct2/ReplayManager.cpp index 8a1880b9ef..779c4cafcd 100644 --- a/src/openrct2/ReplayManager.cpp +++ b/src/openrct2/ReplayManager.cpp @@ -641,7 +641,7 @@ namespace OpenRCT2 auto& gameState = getGameState(); serialiser << gameState.park.guestGenerationProbability; - serialiser << gameState.suggestedGuestMaximum; + serialiser << gameState.park.suggestedGuestMaximum; serialiser << Config::Get().general.ShowRealNamesOfGuests; // To make this a little bit less volatile against updates diff --git a/src/openrct2/park/ParkFile.cpp b/src/openrct2/park/ParkFile.cpp index eb25e69d31..9e86d397f6 100644 --- a/src/openrct2/park/ParkFile.cpp +++ b/src/openrct2/park/ParkFile.cpp @@ -1002,7 +1002,7 @@ namespace OpenRCT2 cs.ReadWrite(gameState.park.numGuestsInParkLastWeek); cs.ReadWrite(gameState.park.guestChangeModifier); cs.ReadWrite(gameState.park.guestGenerationProbability); - cs.ReadWrite(gameState.suggestedGuestMaximum); + cs.ReadWrite(gameState.park.suggestedGuestMaximum); cs.ReadWriteArray(gameState.peepWarningThrottle, [&cs](uint8_t& value) { cs.ReadWrite(value); diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index b2f9627df1..4d141f2cf1 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -529,7 +529,7 @@ namespace OpenRCT2::RCT2 gameState.mapSize = { _s6.MapSize, _s6.MapSize }; gameState.park.samePriceThroughoutPark = _s6.SamePriceThroughout | (static_cast(_s6.SamePriceThroughoutExtended) << 32); - gameState.suggestedGuestMaximum = _s6.SuggestedMaxGuests; + gameState.park.suggestedGuestMaximum = _s6.SuggestedMaxGuests; gameState.scenarioParkRatingWarningDays = _s6.ParkRatingWarningDays; gameState.lastEntranceStyle = _s6.LastEntranceStyle; // rct1_water_colour diff --git a/src/openrct2/scripting/bindings/world/ScPark.cpp b/src/openrct2/scripting/bindings/world/ScPark.cpp index d34899a2cf..a2da46c49b 100644 --- a/src/openrct2/scripting/bindings/world/ScPark.cpp +++ b/src/openrct2/scripting/bindings/world/ScPark.cpp @@ -144,7 +144,7 @@ namespace OpenRCT2::Scripting uint32_t ScPark::suggestedGuestMaximum_get() const { - return getGameState().suggestedGuestMaximum; + return getGameState().park.suggestedGuestMaximum; } int32_t ScPark::guestGenerationProbability_get() const diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 9a24360400..e5435fc60f 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -184,7 +184,7 @@ namespace OpenRCT2::Park // The more guests, the lower the chance of a new one uint32_t numGuests = gameState.park.numGuestsInPark + gameState.park.numGuestsHeadingForPark; - if (numGuests > gameState.suggestedGuestMaximum) + if (numGuests > gameState.park.suggestedGuestMaximum) { probability /= 4; // Even lower for difficult guest generation @@ -235,7 +235,7 @@ namespace OpenRCT2::Park if (static_cast(ScenarioRand() & 0xFFFF) < gameState.park.guestGenerationProbability) { bool difficultGeneration = (gameState.park.Flags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) != 0; - if (!difficultGeneration || gameState.suggestedGuestMaximum + 150 >= gameState.park.numGuestsInPark) + if (!difficultGeneration || gameState.park.suggestedGuestMaximum + 150 >= gameState.park.numGuestsInPark) { GenerateGuest(); } @@ -288,7 +288,7 @@ namespace OpenRCT2::Park gameState.park.Rating = 0; gameState.park.guestGenerationProbability = 0; gameState.park.totalRideValueForMoney = 0; - gameState.suggestedGuestMaximum = 0; + gameState.park.suggestedGuestMaximum = 0; gameState.researchLastItem = std::nullopt; gameState.park.marketingCampaigns.clear(); @@ -347,7 +347,7 @@ namespace OpenRCT2::Park gameState.park.Value = Park::CalculateParkValue(); gameState.park.companyValue = CalculateCompanyValue(); gameState.park.totalRideValueForMoney = calculateTotalRideValueForMoney(); - gameState.suggestedGuestMaximum = calculateSuggestedMaxGuests(); + gameState.park.suggestedGuestMaximum = calculateSuggestedMaxGuests(); gameState.park.guestGenerationProbability = calculateGuestGenerationProbability(); windowMgr->InvalidateByClass(WindowClass::Finances); diff --git a/src/openrct2/world/ParkData.h b/src/openrct2/world/ParkData.h index b8cb2a02b9..fedc23d331 100644 --- a/src/openrct2/world/ParkData.h +++ b/src/openrct2/world/ParkData.h @@ -99,6 +99,11 @@ namespace OpenRCT2::Park */ int32_t guestGenerationProbability; + /** + * In a difficult guest generation scenario, no guests will be generated if over this value. + */ + uint32_t suggestedGuestMaximum; + uint64_t totalAdmissions; money64 totalIncomeFromAdmissions;