1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-12 02:22:26 +01:00

Move _guestGenerationProbability to GameState_t

This commit is contained in:
Gymnasiast
2024-02-07 22:48:56 +01:00
parent a20f2b04e9
commit 142d708cee
8 changed files with 18 additions and 17 deletions

View File

@@ -86,6 +86,14 @@ namespace OpenRCT2
std::vector<ResearchItem> ResearchItemsUninvented; std::vector<ResearchItem> ResearchItemsUninvented;
std::vector<ResearchItem> ResearchItemsInvented; std::vector<ResearchItem> ResearchItemsInvented;
uint8_t ResearchUncompletedCategories; uint8_t ResearchUncompletedCategories;
/**
* Probability out of 65535, of gaining a new guest per game tick.
* new guests per second = 40 * (probability / 65535)
* With a full park rating, non-overpriced entrance fee, less guests than the suggested maximum and four positive
* awards, approximately 1 guest per second can be generated (+60 guests in one minute).
*/
int32_t GuestGenerationProbability;
}; };
GameState_t& GetGameState(); GameState_t& GetGameState();

View File

@@ -665,7 +665,9 @@ namespace OpenRCT2
bool SerialiseParkParameters(DataSerialiser& serialiser) bool SerialiseParkParameters(DataSerialiser& serialiser)
{ {
serialiser << _guestGenerationProbability; auto& gameState = GetGameState();
serialiser << gameState.GuestGenerationProbability;
serialiser << _suggestedGuestMaximum; serialiser << _suggestedGuestMaximum;
serialiser << gConfigGeneral.ShowRealNamesOfGuests; serialiser << gConfigGeneral.ShowRealNamesOfGuests;

View File

@@ -909,7 +909,7 @@ namespace OpenRCT2
} }
cs.ReadWrite(gameState.NumGuestsInParkLastWeek); cs.ReadWrite(gameState.NumGuestsInParkLastWeek);
cs.ReadWrite(gGuestChangeModifier); cs.ReadWrite(gGuestChangeModifier);
cs.ReadWrite(_guestGenerationProbability); cs.ReadWrite(gameState.GuestGenerationProbability);
cs.ReadWrite(_suggestedGuestMaximum); cs.ReadWrite(_suggestedGuestMaximum);
cs.ReadWriteArray(gPeepWarningThrottle, [&cs](uint8_t& value) { cs.ReadWriteArray(gPeepWarningThrottle, [&cs](uint8_t& value) {

View File

@@ -2194,7 +2194,7 @@ namespace RCT1
gameState.GuestInitialThirst = _s4.GuestInitialThirst; gameState.GuestInitialThirst = _s4.GuestInitialThirst;
gameState.GuestInitialHappiness = _s4.GuestInitialHappiness; gameState.GuestInitialHappiness = _s4.GuestInitialHappiness;
_guestGenerationProbability = _s4.GuestGenerationProbability; gameState.GuestGenerationProbability = _s4.GuestGenerationProbability;
// Staff colours // Staff colours
gameState.StaffHandymanColour = RCT1::GetColour(_s4.HandymanColour); gameState.StaffHandymanColour = RCT1::GetColour(_s4.HandymanColour);

View File

@@ -338,7 +338,7 @@ namespace RCT2
gameState.ResearchExpectedMonth = _s6.NextResearchExpectedMonth; gameState.ResearchExpectedMonth = _s6.NextResearchExpectedMonth;
gameState.GuestInitialHappiness = _s6.GuestInitialHappiness; gameState.GuestInitialHappiness = _s6.GuestInitialHappiness;
gameState.ParkSize = _s6.ParkSize; gameState.ParkSize = _s6.ParkSize;
_guestGenerationProbability = _s6.GuestGenerationProbability; gameState.GuestGenerationProbability = _s6.GuestGenerationProbability;
gameState.TotalRideValueForMoney = _s6.TotalRideValueForMoney; gameState.TotalRideValueForMoney = _s6.TotalRideValueForMoney;
gMaxBankLoan = ToMoney64(_s6.MaximumLoan); gMaxBankLoan = ToMoney64(_s6.MaximumLoan);
gameState.GuestInitialCash = ToMoney64(_s6.GuestInitialCash); gameState.GuestInitialCash = ToMoney64(_s6.GuestInitialCash);

View File

@@ -144,7 +144,7 @@ namespace OpenRCT2::Scripting
int32_t ScPark::guestGenerationProbability_get() const int32_t ScPark::guestGenerationProbability_get() const
{ {
return _guestGenerationProbability; return GetGameState().GuestGenerationProbability;
} }
money64 ScPark::guestInitialCash_get() const money64 ScPark::guestInitialCash_get() const

View File

@@ -63,14 +63,6 @@ static int32_t _forcedParkRating = -1;
*/ */
uint32_t _suggestedGuestMaximum; uint32_t _suggestedGuestMaximum;
/**
* Probability out of 65535, of gaining a new guest per game tick.
* new guests per second = 40 * (probability / 65535)
* With a full park rating, non-overpriced entrance fee, less guests than the suggested maximum and four positive awards,
* approximately 1 guest per second can be generated (+60 guests in one minute).
*/
int32_t _guestGenerationProbability;
/** /**
* Choose a random peep spawn and iterates through until defined spawn is found. * Choose a random peep spawn and iterates through until defined spawn is found.
*/ */
@@ -259,7 +251,7 @@ void Park::Initialise()
gameState.NumGuestsHeadingForPark = 0; gameState.NumGuestsHeadingForPark = 0;
gGuestChangeModifier = 0; gGuestChangeModifier = 0;
gameState.ParkRating = 0; gameState.ParkRating = 0;
_guestGenerationProbability = 0; gameState.GuestGenerationProbability = 0;
gameState.TotalRideValueForMoney = 0; gameState.TotalRideValueForMoney = 0;
_suggestedGuestMaximum = 0; _suggestedGuestMaximum = 0;
gameState.ResearchLastItem = std::nullopt; gameState.ResearchLastItem = std::nullopt;
@@ -321,7 +313,7 @@ void Park::Update(const Date& date)
gCompanyValue = CalculateCompanyValue(); gCompanyValue = CalculateCompanyValue();
gameState.TotalRideValueForMoney = CalculateTotalRideValueForMoney(); gameState.TotalRideValueForMoney = CalculateTotalRideValueForMoney();
_suggestedGuestMaximum = CalculateSuggestedMaxGuests(); _suggestedGuestMaximum = CalculateSuggestedMaxGuests();
_guestGenerationProbability = CalculateGuestGenerationProbability(); gameState.GuestGenerationProbability = CalculateGuestGenerationProbability();
WindowInvalidateByClass(WindowClass::Finances); WindowInvalidateByClass(WindowClass::Finances);
auto intent = Intent(INTENT_ACTION_UPDATE_PARK_RATING); auto intent = Intent(INTENT_ACTION_UPDATE_PARK_RATING);
@@ -676,7 +668,7 @@ void Park::GenerateGuests()
auto& gameState = GetGameState(); auto& gameState = GetGameState();
// Generate a new guest for some probability // Generate a new guest for some probability
if (static_cast<int32_t>(ScenarioRand() & 0xFFFF) < _guestGenerationProbability) if (static_cast<int32_t>(ScenarioRand() & 0xFFFF) < gameState.GuestGenerationProbability)
{ {
bool difficultGeneration = (gameState.ParkFlags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) != 0; bool difficultGeneration = (gameState.ParkFlags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) != 0;
if (!difficultGeneration || _suggestedGuestMaximum + 150 >= gameState.NumGuestsInPark) if (!difficultGeneration || _suggestedGuestMaximum + 150 >= gameState.NumGuestsInPark)

View File

@@ -99,7 +99,6 @@ extern money64 gCompanyValue;
extern int16_t gParkRatingCasualtyPenalty; extern int16_t gParkRatingCasualtyPenalty;
extern uint32_t gGuestsInParkHistory[32]; extern uint32_t gGuestsInParkHistory[32];
extern int32_t _guestGenerationProbability;
extern uint32_t _suggestedGuestMaximum; extern uint32_t _suggestedGuestMaximum;
void ParkSetForcedRating(int32_t rating); void ParkSetForcedRating(int32_t rating);