diff options
author | max-001 <maxsmits21@kpnmail.nl> | 2024-11-26 09:28:12 +0100 |
---|---|---|
committer | max-001 <maxsmits21@kpnmail.nl> | 2024-11-26 09:28:12 +0100 |
commit | 07ac07ce4cafe8ec454a1e53b1541dcaab10cf40 (patch) | |
tree | def28215f182f750bc4ff6d892455f7ce0dd6eb2 | |
parent | f52e7e1450d47604983dba5f3cbab364ffd77cdc (diff) |
It is now possible to reset the persistent flag
-rw-r--r-- | src/crepe/ComponentManager.cpp | 4 | ||||
-rw-r--r-- | src/crepe/ComponentManager.h | 3 | ||||
-rw-r--r-- | src/crepe/api/GameObject.cpp | 4 | ||||
-rw-r--r-- | src/crepe/api/GameObject.h | 4 |
4 files changed, 10 insertions, 5 deletions
diff --git a/src/crepe/ComponentManager.cpp b/src/crepe/ComponentManager.cpp index e99419e..af4b9f4 100644 --- a/src/crepe/ComponentManager.cpp +++ b/src/crepe/ComponentManager.cpp @@ -47,4 +47,6 @@ GameObject ComponentManager::new_object(const string & name, const string & tag, return object; } -void ComponentManager::set_persistent(game_object_id_t id) { this->persistent[id] = true; } +void ComponentManager::set_persistent(game_object_id_t id, bool persistent) { + this->persistent[id] = persistent; +} diff --git a/src/crepe/ComponentManager.h b/src/crepe/ComponentManager.h index 8462698..480124f 100644 --- a/src/crepe/ComponentManager.h +++ b/src/crepe/ComponentManager.h @@ -106,8 +106,9 @@ protected: * components will not be deleted. * * \param id The id of the GameObject to set as persistent + * \param persistent The persistent flag */ - void set_persistent(game_object_id_t id); + void set_persistent(game_object_id_t id, bool persistent); public: /** diff --git a/src/crepe/api/GameObject.cpp b/src/crepe/api/GameObject.cpp index 6c1de12..9ef4682 100644 --- a/src/crepe/api/GameObject.cpp +++ b/src/crepe/api/GameObject.cpp @@ -31,8 +31,8 @@ void GameObject::set_parent(const GameObject & parent) { parent_metadata.at(0).get().children.push_back(this->id); } -void GameObject::set_persistent() { +void GameObject::set_persistent(bool persistent) { ComponentManager & mgr = this->component_manager; - mgr.set_persistent(this->id); + mgr.set_persistent(this->id, persistent); } diff --git a/src/crepe/api/GameObject.h b/src/crepe/api/GameObject.h index a30dce3..4cd2bc0 100644 --- a/src/crepe/api/GameObject.h +++ b/src/crepe/api/GameObject.h @@ -63,8 +63,10 @@ public: * * This method sets the persistent flag of the GameObject to true. If the persistent * flag is set to true, the GameObject will not be deleted when the scene is changed. + * + * \param persistent The persistent flag */ - void set_persistent(); + void set_persistent(bool persistent = true); public: //! The id of the GameObject |