From 1a11456f36ced4c696d5331c9ddedbdeafef0268 Mon Sep 17 00:00:00 2001 From: Duncan Date: Fri, 22 Jan 2021 14:36:55 +0000 Subject: [PATCH] Rework remove floating to use EntityList (#13895) --- src/openrct2/world/Sprite.cpp | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/src/openrct2/world/Sprite.cpp b/src/openrct2/world/Sprite.cpp index dba2cf9b09..778f1e3b5f 100644 --- a/src/openrct2/world/Sprite.cpp +++ b/src/openrct2/world/Sprite.cpp @@ -827,29 +827,24 @@ void litter_remove_at(const CoordsXYZ& litterPos) uint16_t remove_floating_sprites() { uint16_t removed = 0; - for (uint16_t i = 0; i < MAX_SPRITES; i++) + for (auto* balloon : EntityList(EntityListId::Misc)) { - auto* entity = GetEntity(i); - if (entity->Is()) + sprite_remove(balloon); + removed++; + } + for (auto* duck : EntityList(EntityListId::Misc)) + { + if (duck->IsFlying()) { - sprite_remove(entity); - removed++; - } - else if (entity->Is()) - { - auto* duck = entity->As(); - if (duck->IsFlying()) - { - duck->Remove(); - removed++; - } - } - else if (entity->Is()) - { - sprite_remove(entity); + sprite_remove(duck); removed++; } } + for (auto* money : EntityList(EntityListId::Misc)) + { + sprite_remove(money); + removed++; + } return removed; }