1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-28 01:04:50 +01:00

Fix #15566: Litter age underflow

This commit is contained in:
ζeh Matt
2021-10-12 20:50:17 +03:00
parent b4cd8e4628
commit c2d9d727d9
3 changed files with 12 additions and 4 deletions

View File

@@ -126,3 +126,8 @@ rct_string_id Litter::GetName() const
return STR_NONE;
return litterNames[EnumValue(SubType)];
}
uint32_t Litter::GetAge() const
{
return gCurrentTicks - creationTick;
}

View File

@@ -40,4 +40,5 @@ struct Litter : EntityBase
static void RemoveAt(const CoordsXYZ& litterPos);
void Serialise(DataSerialiser& stream);
rct_string_id GetName() const;
uint32_t GetAge() const;
};

View File

@@ -464,13 +464,15 @@ int32_t Park::CalculateParkRating() const
// Litter
{
int32_t litterCount = 0;
for (auto litter : EntityList<Litter>())
for (auto* litter : EntityList<Litter>())
{
// Ignore recently dropped litter
if (litter->creationTick - gCurrentTicks >= 7680)
if (litter->GetAge() < 7680)
{
litterCount++;
// Ignore recently dropped litter.
continue;
}
litterCount++;
}
result -= 600 - (4 * (150 - std::min<int32_t>(150, litterCount)));
}