1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-16 11:33:03 +01:00

Fix overflow calculating maximum free slots for misc entities

This commit is contained in:
ζeh Matt
2024-01-12 17:48:39 +02:00
parent 7d8f13a97f
commit 3dc2a25121

View File

@@ -341,11 +341,14 @@ EntityBase* CreateEntity(EntityType type)
if (EntityTypeIsMiscEntity(type))
{
// Misc sprites are commonly used for effects, if there are less than MAX_MISC_SPRITES
// free it will fail to keep slots for more relevant sprites.
// Also there can't be more than MAX_MISC_SPRITES sprites in this list.
uint16_t miscSlotsRemaining = MAX_MISC_SPRITES - GetMiscEntityCount();
if (miscSlotsRemaining >= _freeIdList.size())
// Misc sprites are commonly used for effects, give other entity types higher priority.
if (GetMiscEntityCount() >= MAX_MISC_SPRITES)
{
return nullptr;
}
// If there are less than MAX_MISC_SPRITES free slots, ensure other entities can be created.
if (_freeIdList.size() < MAX_MISC_SPRITES)
{
return nullptr;
}