diff options
author | sfan5 <sfan5@live.de> | 2017-09-15 12:19:01 +0200 |
---|---|---|
committer | Loïc Blot <nerzhul@users.noreply.github.com> | 2017-09-15 12:19:01 +0200 |
commit | 04839f233f37faa9af406ea66fc6c199127781eb (patch) | |
tree | d243fcae7f57fe4cf22046f42cda5424a1561e4c /src/serverobject.h | |
parent | edbc533414b0ba991a82f8003d90924e1dc60d95 (diff) | |
download | minetest-04839f233f37faa9af406ea66fc6c199127781eb.tar.gz minetest-04839f233f37faa9af406ea66fc6c199127781eb.tar.bz2 minetest-04839f233f37faa9af406ea66fc6c199127781eb.zip |
ServerEnv: Clean up object lifecycle handling (#6414)
* ServerEnv: Clean up object lifecycle handling
Diffstat (limited to 'src/serverobject.h')
-rw-r--r-- | src/serverobject.h | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/serverobject.h b/src/serverobject.h index 33fc3e4a8..304281093 100644 --- a/src/serverobject.h +++ b/src/serverobject.h @@ -212,24 +212,28 @@ public: it anymore. - Removal is delayed to preserve the id for the time during which it could be confused to some other object by some client. - - This is set to true by the step() method when the object wants - to be deleted. - - This can be set to true by anything else too. + - This is usually set to true by the step() method when the object wants + to be deleted but can be set by anything else too. */ - bool m_removed = false; + bool m_pending_removal = false; /* - This is set to true when an object should be removed from the active - object list but couldn't be removed because the id has to be - reserved for some client. + Same purpose as m_pending_removal but for deactivation. + deactvation = save static data in block, remove active object - The environment checks this periodically. If this is true and also - m_known_by_count is true, object is deleted from the active object - list. + If this is set alongside with m_pending_removal, removal takes + priority. */ bool m_pending_deactivation = false; /* + A getter that unifies the above to answer the question: + "Can the environment still interact with this object?" + */ + inline bool isGone() const + { return m_pending_removal || m_pending_deactivation; } + + /* Whether the object's static data has been stored to a block */ bool m_static_exists = false; |