summaryrefslogtreecommitdiff
path: root/src/engine/GarbageCollector.cpp
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2024-12-31 09:50:21 -0700
committerGitHub <noreply@github.com>2024-12-31 09:50:21 -0700
commit1101dcafb08a1f17b06306ff44a9d869ffeb7862 (patch)
treee63c623057b555fedd3d017b5d6c34d12de31098 /src/engine/GarbageCollector.cpp
parent7e6aba50a2a2fa80db153ad154f5ae77cc344650 (diff)
parent7ee714e4e93609a5dbf1dc648df0ce504e3d7284 (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.cpp31
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