diff options
| author | MegaMech <MegaMech@users.noreply.github.com> | 2025-12-13 11:50:28 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-13 11:50:28 -0700 |
| commit | b934e98fc34964970ab5efacb2fb7c3372ae0b1a (patch) | |
| tree | cd96e5fabec7fdcc098d0de33b3b7e2754fb6cd5 /src/engine/GarbageCollector.cpp | |
| parent | e6acb59ef4797ce27ddc9e21982c3f4e40824b52 (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.cpp | 21 |
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++; |
