From 42a45a06ff9b7a6022aad146bb08e600f418e894 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 1 Jun 2021 14:48:15 +0200 Subject: [PATCH] Allowing entities to be deleted --- lib/wal/sources/Entity/Entity.hpp | 2 ++ lib/wal/sources/Wal.hpp | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/wal/sources/Entity/Entity.hpp b/lib/wal/sources/Entity/Entity.hpp index 090c9baf..2321934d 100644 --- a/lib/wal/sources/Entity/Entity.hpp +++ b/lib/wal/sources/Entity/Entity.hpp @@ -122,5 +122,7 @@ namespace WAL ~Entity() = default; //! @brief An entity is not assignable Entity &operator=(const Entity &) = delete; + //! @brief An entity is move assignable. + Entity &operator=(Entity &&) = default; }; } // namespace WAL \ No newline at end of file diff --git a/lib/wal/sources/Wal.hpp b/lib/wal/sources/Wal.hpp index 76b893e6..9c40d1da 100644 --- a/lib/wal/sources/Wal.hpp +++ b/lib/wal/sources/Wal.hpp @@ -133,7 +133,10 @@ namespace WAL this->_fixedUpdate(); } this->_update(dtime); - // TODO delete entities scheduled for deletion. + auto &entities = this->scene->getEntities(); + entities.erase(std::remove_if(entities.begin(), entities.end(), [](auto &entity) { + return entity.shouldDelete(); + }), entities.end()); callback(*this, state); } }