summaryrefslogtreecommitdiff
path: root/src/engine/GarbageCollector.cpp
diff options
context:
space:
mode:
authorMegaMech <MegaMech@users.noreply.github.com>2025-12-13 11:50:28 -0700
committerGitHub <noreply@github.com>2025-12-13 11:50:28 -0700
commitb934e98fc34964970ab5efacb2fb7c3372ae0b1a (patch)
treecd96e5fabec7fdcc098d0de33b3b7e2754fb6cd5 /src/engine/GarbageCollector.cpp
parente6acb59ef4797ce27ddc9e21982c3f4e40824b52 (diff)
Refactor Track Class To Instantiate On Track Load (#587)
* Initial Commit * First compilation of Registry template * Further changes * wip changes * Impl TrackBrowser and Registry Info * Remove const from TInfo * Prep GetWorld * Name refactor * Refactor gWorldInstance to GetWorld() * wip * Should work now * Data menu work again * Fix editor staying open after program close * Rename LoadLevel to LoadTrackDataFromJson * More changes * Add statue * Add search to content browser using tags * Fix statue pos and register tags * Fix actor loading * Fix delete all bug which deleted cameras * reduce some boiler plate in actor and object * Remove unused rulesets * Search bar for all tabs * fix data screen * fix actor spawning * temp editor fix * Clean up * improve extra mode transformation * fix podium crash * Fix editor clicking * Fix editor clicking 2 * fix extra in custom track * Fix FI for three actors * Fix divide by zero error * Ids managed by Registry * Add scary comment --------- Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com> Co-authored-by: coco875 <pereira.jannin@gmail.com>
Diffstat (limited to 'src/engine/GarbageCollector.cpp')
-rw-r--r--src/engine/GarbageCollector.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/engine/GarbageCollector.cpp b/src/engine/GarbageCollector.cpp
index d356602d3..813f9ccce 100644
--- a/src/engine/GarbageCollector.cpp
+++ b/src/engine/GarbageCollector.cpp
@@ -11,12 +11,11 @@ void RunGarbageCollector() {
}
void CleanActors() {
- for (auto actor = gWorldInstance.Actors.begin(); actor != gWorldInstance.Actors.end();) {
- AActor* act = *actor; // Get a mutable copy
+ for (auto actor = GetWorld()->Actors.begin(); actor != GetWorld()->Actors.end();) {
+ auto* act = actor->get(); // Get a mutable copy
if (act->bPendingDestroy) {
if (act->IsMod()) { // C++ actor
- delete act;
- actor = gWorldInstance.Actors.erase(actor); // Remove from container
+ actor = GetWorld()->Actors.erase(actor); // Remove from container
} else { // Old C actor
act->Flags = 0;
act->Type = 0;
@@ -32,11 +31,10 @@ void CleanActors() {
}
void CleanStaticMeshActors() {
- for (auto actor = gWorldInstance.StaticMeshActors.begin(); actor != gWorldInstance.StaticMeshActors.end();) {
- StaticMeshActor* act = *actor; // Get a mutable copy
+ for (auto actor = GetWorld()->StaticMeshActors.begin(); actor != GetWorld()->StaticMeshActors.end();) {
+ StaticMeshActor* act = actor->get(); // Get a mutable copy
if (act->bPendingDestroy) {
- delete act;
- actor = gWorldInstance.StaticMeshActors.erase(actor); // Remove from container
+ actor = GetWorld()->StaticMeshActors.erase(actor); // Remove from container
continue;
} else {
actor++;
@@ -45,11 +43,10 @@ void CleanStaticMeshActors() {
}
void CleanObjects() {
- for (auto object = gWorldInstance.Objects.begin(); object != gWorldInstance.Objects.end();) {
- OObject* obj = *object; // Get a mutable copy
+ for (auto object = GetWorld()->Objects.begin(); object != GetWorld()->Objects.end();) {
+ OObject* obj = object->get(); // Get a mutable copy
if (obj->bPendingDestroy) {
- delete obj;
- object = gWorldInstance.Objects.erase(object); // Remove from container
+ object = GetWorld()->Objects.erase(object); // Remove from container
continue;
}
object++;