From f789c1103856a253871846da6e41fcdf7aacd78b Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Thu, 24 Oct 2024 15:34:55 -0400 Subject: Always load but don't draw invisible objects Signed-off-by: Andrew Opalach --- src/objects/object.cc | 2 +- src/objects/scene.cc | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/objects/object.cc b/src/objects/object.cc index d648b63..4cf9790 100644 --- a/src/objects/object.cc +++ b/src/objects/object.cc @@ -209,7 +209,7 @@ auto Object::draw_internal(Engine *engine) -> void for (Effect *effect : this->effects) { - effect->draw(engine); + if (effect->visible) effect->draw(engine); } } diff --git a/src/objects/scene.cc b/src/objects/scene.cc index 21a2449..b9728c7 100644 --- a/src/objects/scene.cc +++ b/src/objects/scene.cc @@ -57,6 +57,7 @@ auto Scene::get_object_by_id(u32 id) -> Object * auto Scene::load(Engine *engine) -> void { + /* NOTE: Removing objects here is known to cause issues. if (this->objects.size() > 0) { for (auto it = this->objects.begin(); it != this->objects.end();) @@ -65,6 +66,7 @@ auto Scene::load(Engine *engine) -> void else it++; } } + */ for (Object *object : this->objects) { @@ -76,7 +78,7 @@ auto Scene::draw(Engine *engine) -> void { for (Object *object : this->objects) { - if (!object->loaded_as_dep) object->draw(engine); + if (!object->loaded_as_dep && object->visible) object->draw(engine); } } -- cgit v1.2.3-101-g0448