Implement SpawnParams struct (#536)

* Impl SpawnParams

* Added json submodule

* Update json

* Update

* Works

* Remove comment

* Works refactor

* Snowman and thwomp working

* Impl hot air balloon

* More progress

* All OObjects are done

* cleanup

* Refactor 2Dpath to normal path

* Update nlohmann json & fix compile

* Rest of actors

* MORE CHANGES

* Finish actors

* Done PR, some fix to collision viewer

* Impl falling rocks

* Add const

* wip editor refactor

* Property work

* continue

* Overridable editor properties

* Actor saving/loading works now

* Fix light alignment

* Clarification

* Impl penguin

* params impl signs

* properties impl falling rock

* More property impls

* impl air balloon

* Add spawnParams to OObject Translate

* Snowman translate better

* impl hedgehog properly

* properties impl trophy

* thwomp progress

* Finish impl properties

* Fix compile

* Fix cursor collisions

* Move registered actors

* Rename pathPoint XYZ to xyz

* Fix editor pause bug

* Clean up

* Review comments

* Remove SpawnParams struct from actor classes

* Rename

* Player Label First Iteration

* Work now

* Working 3d text

* Fix boo bug

* Finish AText actor

* Fix spawnparams compile

* Register AText

* Finish Text Actor

* Fix thwomp interpolation

* Fix compile

* Fix crab and hedgehog

* Fix loading flagpole

* Fix Hot Air Balloon

* Turn zbuffer on for AText

* Update

---------

Co-authored-by: MegaMech <7255464+MegaMech@users.noreply.github.com>
This commit is contained in:
MegaMech
2025-11-09 19:07:44 -07:00
committed by GitHub
parent 760fa3bf52
commit de9c5d5101
177 changed files with 6967 additions and 2105 deletions
+19 -10
View File
@@ -2,21 +2,30 @@
#include "World.h"
void RunGarbageCollector() {
//CleanActors();
CleanActors();
CleanObjects();
CleanStaticMeshActors();
}
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++;
// }
for (auto actor = gWorldInstance.Actors.begin(); actor != gWorldInstance.Actors.end();) {
AActor* act = *actor; // Get a mutable copy
if (act->bPendingDestroy) {
if (act->IsMod()) { // C++ actor
delete act;
actor = gWorldInstance.Actors.erase(actor); // Remove from container
} else { // Old C actor
act->Flags = 0;
act->Type = 0;
act->Name = "";
act->ResourceName = "";
actor++; // Manually advance the iterator since no deletion happens here
}
gNumActors -= 1;
continue;
}
actor++;
}
}
void CleanStaticMeshActors() {