mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-23 07:43:01 +01:00
Move .guest(ChangeModifier|GenerationProbability) into ParkData struct
This commit is contained in:
@@ -131,8 +131,8 @@ namespace OpenRCT2::Ui::Windows
|
||||
auto screenCoords = ScreenCoordsXY{ windowPos.x + widget.midX(), windowPos.y + widget.midY() - 6 };
|
||||
|
||||
StringId stringId = gameState.park.numGuestsInPark == 1
|
||||
? _guestCountFormatsSingular[gameState.guestChangeModifier]
|
||||
: _guestCountFormats[gameState.guestChangeModifier];
|
||||
? _guestCountFormatsSingular[gameState.park.guestChangeModifier]
|
||||
: _guestCountFormats[gameState.park.guestChangeModifier];
|
||||
auto colour = GetHoverWidgetColour(WIDX_GUESTS);
|
||||
auto ft = Formatter();
|
||||
ft.Add<uint32_t>(gameState.park.numGuestsInPark);
|
||||
|
||||
@@ -305,7 +305,7 @@ namespace OpenRCT2::Editor
|
||||
gameState.park.numGuestsInPark = 0;
|
||||
gameState.park.numGuestsHeadingForPark = 0;
|
||||
gameState.park.numGuestsInParkLastWeek = 0;
|
||||
gameState.guestChangeModifier = 0;
|
||||
gameState.park.guestChangeModifier = 0;
|
||||
if (fromSave)
|
||||
{
|
||||
gameState.park.Flags |= PARK_FLAGS_NO_MONEY;
|
||||
|
||||
@@ -48,7 +48,6 @@ namespace OpenRCT2
|
||||
uint8_t guestInitialHappiness;
|
||||
uint8_t guestInitialHunger;
|
||||
uint8_t guestInitialThirst;
|
||||
uint8_t guestChangeModifier;
|
||||
uint32_t nextGuestNumber;
|
||||
|
||||
money64 totalRideValueForMoney;
|
||||
@@ -108,13 +107,6 @@ namespace OpenRCT2
|
||||
|
||||
ObjectEntryIndex lastEntranceStyle;
|
||||
|
||||
/**
|
||||
* 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;
|
||||
/**
|
||||
* In a difficult guest generation scenario, no guests will be generated if over this value.
|
||||
*/
|
||||
|
||||
@@ -640,7 +640,7 @@ namespace OpenRCT2
|
||||
{
|
||||
auto& gameState = getGameState();
|
||||
|
||||
serialiser << gameState.guestGenerationProbability;
|
||||
serialiser << gameState.park.guestGenerationProbability;
|
||||
serialiser << gameState.suggestedGuestMaximum;
|
||||
serialiser << Config::Get().general.ShowRealNamesOfGuests;
|
||||
|
||||
|
||||
@@ -1000,8 +1000,8 @@ namespace OpenRCT2
|
||||
cs.ReadWrite(gameState.totalRideValueForMoney);
|
||||
}
|
||||
cs.ReadWrite(gameState.park.numGuestsInParkLastWeek);
|
||||
cs.ReadWrite(gameState.guestChangeModifier);
|
||||
cs.ReadWrite(gameState.guestGenerationProbability);
|
||||
cs.ReadWrite(gameState.park.guestChangeModifier);
|
||||
cs.ReadWrite(gameState.park.guestGenerationProbability);
|
||||
cs.ReadWrite(gameState.suggestedGuestMaximum);
|
||||
|
||||
cs.ReadWriteArray(gameState.peepWarningThrottle, [&cs](uint8_t& value) {
|
||||
|
||||
@@ -2314,7 +2314,7 @@ namespace OpenRCT2::RCT1
|
||||
gameState.guestInitialThirst = _s4.GuestInitialThirst;
|
||||
gameState.guestInitialHappiness = _s4.GuestInitialHappiness;
|
||||
|
||||
gameState.guestGenerationProbability = _s4.GuestGenerationProbability;
|
||||
gameState.park.guestGenerationProbability = _s4.GuestGenerationProbability;
|
||||
|
||||
// Staff colours
|
||||
gameState.park.staffHandymanColour = RCT1::GetColour(_s4.HandymanColour);
|
||||
|
||||
@@ -401,7 +401,7 @@ namespace OpenRCT2::RCT2
|
||||
|
||||
ImportPeepSpawns(gameState);
|
||||
|
||||
gameState.guestChangeModifier = _s6.GuestCountChangeModifier;
|
||||
gameState.park.guestChangeModifier = _s6.GuestCountChangeModifier;
|
||||
gameState.researchFundingLevel = _s6.CurrentResearchLevel;
|
||||
// Pad01357400
|
||||
// _s6.ResearchedTrackTypesA
|
||||
@@ -462,7 +462,7 @@ namespace OpenRCT2::RCT2
|
||||
gameState.researchExpectedMonth = _s6.NextResearchExpectedMonth;
|
||||
gameState.guestInitialHappiness = _s6.GuestInitialHappiness;
|
||||
gameState.park.Size = _s6.ParkSize;
|
||||
gameState.guestGenerationProbability = _s6.GuestGenerationProbability;
|
||||
gameState.park.guestGenerationProbability = _s6.GuestGenerationProbability;
|
||||
gameState.totalRideValueForMoney = _s6.TotalRideValueForMoney;
|
||||
gameState.park.maxBankLoan = ToMoney64(_s6.MaximumLoan);
|
||||
gameState.guestInitialCash = ToMoney64(_s6.GuestInitialCash);
|
||||
|
||||
@@ -149,7 +149,7 @@ namespace OpenRCT2::Scripting
|
||||
|
||||
int32_t ScPark::guestGenerationProbability_get() const
|
||||
{
|
||||
return getGameState().guestGenerationProbability;
|
||||
return getGameState().park.guestGenerationProbability;
|
||||
}
|
||||
|
||||
DukValue ScPark::generateGuest()
|
||||
|
||||
@@ -232,7 +232,7 @@ namespace OpenRCT2::Park
|
||||
static void generateGuests(GameState_t& gameState)
|
||||
{
|
||||
// Generate a new guest for some probability
|
||||
if (static_cast<int32_t>(ScenarioRand() & 0xFFFF) < gameState.guestGenerationProbability)
|
||||
if (static_cast<int32_t>(ScenarioRand() & 0xFFFF) < gameState.park.guestGenerationProbability)
|
||||
{
|
||||
bool difficultGeneration = (gameState.park.Flags & PARK_FLAGS_DIFFICULT_GUEST_GENERATION) != 0;
|
||||
if (!difficultGeneration || gameState.suggestedGuestMaximum + 150 >= gameState.park.numGuestsInPark)
|
||||
@@ -284,9 +284,9 @@ namespace OpenRCT2::Park
|
||||
gameState.park.numGuestsInPark = 0;
|
||||
gameState.park.numGuestsInParkLastWeek = 0;
|
||||
gameState.park.numGuestsHeadingForPark = 0;
|
||||
gameState.guestChangeModifier = 0;
|
||||
gameState.park.guestChangeModifier = 0;
|
||||
gameState.park.Rating = 0;
|
||||
gameState.guestGenerationProbability = 0;
|
||||
gameState.park.guestGenerationProbability = 0;
|
||||
gameState.totalRideValueForMoney = 0;
|
||||
gameState.suggestedGuestMaximum = 0;
|
||||
gameState.researchLastItem = std::nullopt;
|
||||
@@ -348,7 +348,7 @@ namespace OpenRCT2::Park
|
||||
gameState.park.companyValue = CalculateCompanyValue();
|
||||
gameState.totalRideValueForMoney = calculateTotalRideValueForMoney();
|
||||
gameState.suggestedGuestMaximum = calculateSuggestedMaxGuests();
|
||||
gameState.guestGenerationProbability = calculateGuestGenerationProbability();
|
||||
gameState.park.guestGenerationProbability = calculateGuestGenerationProbability();
|
||||
|
||||
windowMgr->InvalidateByClass(WindowClass::Finances);
|
||||
auto intent = Intent(INTENT_ACTION_UPDATE_PARK_RATING);
|
||||
@@ -603,7 +603,7 @@ namespace OpenRCT2::Park
|
||||
guestChangeModifier = 0;
|
||||
}
|
||||
}
|
||||
gameState.guestChangeModifier = guestChangeModifier;
|
||||
gameState.park.guestChangeModifier = guestChangeModifier;
|
||||
gameState.park.numGuestsInParkLastWeek = gameState.park.numGuestsInPark;
|
||||
|
||||
// Update park rating, guests in park and current cash history
|
||||
|
||||
@@ -89,6 +89,15 @@ namespace OpenRCT2::Park
|
||||
uint32_t numGuestsInPark;
|
||||
uint32_t numGuestsHeadingForPark;
|
||||
uint32_t numGuestsInParkLastWeek;
|
||||
uint8_t guestChangeModifier;
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
uint64_t totalAdmissions;
|
||||
money64 totalIncomeFromAdmissions;
|
||||
|
||||
Reference in New Issue
Block a user