From 7537ca24e39a5563c4a4b0e47f6b8588170b9ce0 Mon Sep 17 00:00:00 2001 From: Stephan Spengler Date: Sat, 3 Sep 2022 16:24:21 +0200 Subject: [PATCH] Combine the guest generation loops into one --- src/openrct2/world/Park.cpp | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/src/openrct2/world/Park.cpp b/src/openrct2/world/Park.cpp index 4ca6475e86..8ceca28922 100644 --- a/src/openrct2/world/Park.cpp +++ b/src/openrct2/world/Park.cpp @@ -549,8 +549,8 @@ money16 Park::CalculateTotalRideValueForMoney() const uint32_t Park::CalculateSuggestedMaxGuests() const { uint32_t suggestedMaxGuests = 0; + uint32_t difficultGenerationBonus = 0; - // TODO combine the two ride loops for (auto& ride : GetRideManager()) { if (ride.status != RideStatus::Open) @@ -562,20 +562,10 @@ uint32_t Park::CalculateSuggestedMaxGuests() const // Add guest score for ride type suggestedMaxGuests += ride.GetRideTypeDescriptor().BonusValue; - } - // If difficult guest generation, extra guests are available for good rides - if (gParkFlags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) - { - suggestedMaxGuests = std::min(suggestedMaxGuests, 1000); - for (auto& ride : GetRideManager()) + // If difficult guest generation, extra guests are available for good rides + if (gParkFlags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) { - if (ride.status != RideStatus::Open) - continue; - if (ride.lifecycle_flags & RIDE_LIFECYCLE_CRASHED) - continue; - if (ride.lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN) - continue; if (!(ride.lifecycle_flags & RIDE_LIFECYCLE_TESTED)) continue; if (!ride.GetRideTypeDescriptor().HasFlag(RIDE_TYPE_FLAG_HAS_TRACK)) @@ -588,10 +578,16 @@ uint32_t Park::CalculateSuggestedMaxGuests() const continue; // Bonus guests for good ride - suggestedMaxGuests += ride.GetRideTypeDescriptor().BonusValue * 2; + difficultGenerationBonus += ride.GetRideTypeDescriptor().BonusValue * 2; } } + if (gParkFlags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) + { + suggestedMaxGuests = std::min(suggestedMaxGuests, 1000); + suggestedMaxGuests += difficultGenerationBonus; + } + suggestedMaxGuests = std::min(suggestedMaxGuests, 65535); return suggestedMaxGuests; }