diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2024-12-31 09:50:21 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-12-31 09:50:21 -0700 |
| commit | 1101dcafb08a1f17b06306ff44a9d869ffeb7862 (patch) | |
| tree | e63c623057b555fedd3d017b5d6c34d12de31098 /src/engine/GarbageCollector.cpp | |
| parent | 7e6aba50a2a2fa80db153ad154f5ae77cc344650 (diff) | |
| parent | 7ee714e4e93609a5dbf1dc648df0ce504e3d7284 (diff) | |
Merge pull request #133 from MegaMech/next
Fix loadtile, Impl more OObjects
Diffstat (limited to 'src/engine/GarbageCollector.cpp')
| -rw-r--r-- | src/engine/GarbageCollector.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/engine/GarbageCollector.cpp b/src/engine/GarbageCollector.cpp new file mode 100644 index 000000000..926620fe1 --- /dev/null +++ b/src/engine/GarbageCollector.cpp @@ -0,0 +1,31 @@ +#include "GarbageCollector.h" +#include "World.h" + +void RunGarbageCollector() { + //CleanActors(); + CleanObjects(); +} + +void CleanActors() { + // for (auto actor = gWorldInstance.Actors.begin(); actor != gWorldInstance.Actors.end();) { + // OObject* act = *actor; // Get a mutable copy + // if (act->PendingDestroy) { + // delete act; + // actor = gWorldInstance.Objects.erase(actor); // Remove from container + // continue; + // } + // actor++; + // } +} + +void CleanObjects() { + for (auto object = gWorldInstance.Objects.begin(); object != gWorldInstance.Objects.end();) { + OObject* obj = *object; // Get a mutable copy + if (obj->PendingDestroy) { + delete obj; + object = gWorldInstance.Objects.erase(object); // Remove from container + continue; + } + object++; + } +}
\ No newline at end of file |
