From 3261da535f8f5b3b52234a628a8b11b99bfae255 Mon Sep 17 00:00:00 2001 From: Ted John Date: Tue, 16 Jul 2019 17:56:41 +0100 Subject: [PATCH] Derive some park variables --- src/openrct2/ParkFile.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/openrct2/ParkFile.cpp b/src/openrct2/ParkFile.cpp index 8ec32d12a8..764d020dd9 100644 --- a/src/openrct2/ParkFile.cpp +++ b/src/openrct2/ParkFile.cpp @@ -115,6 +115,7 @@ namespace OpenRCT2 String::Set(gS6Info.details, sizeof(gS6Info.details), gScenarioName.c_str()); AutoCreateMapAnimations(); + AutoDeriveVariables(); } void Save(const std::string_view& path) @@ -776,6 +777,34 @@ namespace OpenRCT2 } } + void AutoDeriveVariables() + { + Peep* peep{}; + uint16_t spriteIndex{}; + uint16_t numGuestsInPark = 0; + uint16_t numGuestsHeadingsForPark = 0; + FOR_ALL_GUESTS (spriteIndex, peep) + { + if (peep->state == PEEP_STATE_ENTERING_PARK) + { + numGuestsHeadingsForPark++; + } + if (!peep->outside_of_park) + { + numGuestsInPark++; + } + } + + gNumGuestsInPark = numGuestsInPark; + gNumGuestsHeadingForPark = numGuestsHeadingsForPark; + + auto& park = GetContext()->GetGameState()->GetPark(); + gParkSize = park.CalculateParkSize(); + gParkValue = park.CalculateParkValue(); + gCompanyValue = park.CalculateCompanyValue(); + gParkRating = park.CalculateParkRating(); + } + static void ReadWriteStringTable(OrcaStream::ChunkStream& cs, std::string& value, const std::string_view& lcode) { std::vector> table;