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
No known key found for this signature in database
GPG Key ID: 18CE582C71A225B0
1 changed files with 8 additions and 5 deletions

View File

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