summaryrefslogtreecommitdiff
path: root/src/engine/GarbageCollector.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/GarbageCollector.cpp')
-rw-r--r--src/engine/GarbageCollector.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/engine/GarbageCollector.cpp b/src/engine/GarbageCollector.cpp
index 926620fe1..9832aa29d 100644
--- a/src/engine/GarbageCollector.cpp
+++ b/src/engine/GarbageCollector.cpp
@@ -4,6 +4,7 @@
void RunGarbageCollector() {
//CleanActors();
CleanObjects();
+ CleanStaticMeshActors();
}
void CleanActors() {
@@ -18,14 +19,27 @@ void CleanActors() {
// }
}
+void CleanStaticMeshActors() {
+ for (auto actor = gWorldInstance.StaticMeshActors.begin(); actor != gWorldInstance.StaticMeshActors.end();) {
+ StaticMeshActor* act = *actor; // Get a mutable copy
+ if (act->bPendingDestroy) {
+ delete act;
+ actor = gWorldInstance.StaticMeshActors.erase(actor); // Remove from container
+ continue;
+ } else {
+ actor++;
+ }
+ }
+}
+
void CleanObjects() {
for (auto object = gWorldInstance.Objects.begin(); object != gWorldInstance.Objects.end();) {
OObject* obj = *object; // Get a mutable copy
- if (obj->PendingDestroy) {
+ if (obj->bPendingDestroy) {
delete obj;
object = gWorldInstance.Objects.erase(object); // Remove from container
continue;
}
object++;
}
-} \ No newline at end of file
+}