summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:01:10 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-05-20 21:01:10 -0400
commit8318fca632b8ff82c5966876c192fae891501771 (patch)
tree1673eede02a546f134e360acfad996863ed10f73
parent8e5c7b2368a49eb8a70fe73494ff1be8a89f35cd (diff)
pke: more ECS cleanup on teardown
-rw-r--r--src/ecs.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 9de7866..d029b18 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -66,6 +66,18 @@ void ECS_Init() {
Buckets_Init(ecs.bc.entityPtrs, bcSizes.entityPtrs);
Buckets_Init(ecs.bc.grBinds, bcSizes.grBinds);
Buckets_Init(ecs.bc.instances, bcSizes.instances);
+ if (entitiesMarkedForRemoval.GetPtr() == CAFE_BABE(Entity_Base*) || entitiesMarkedForRemoval.GetPtr() == nullptr) {
+ new (&entitiesMarkedForRemoval) DynArray<Entity_Base*>{16};
+ }
+ if (EntitiesToBeRemoved.GetPtr() == CAFE_BABE(Entity_Base*) || EntitiesToBeRemoved.GetPtr() == nullptr) {
+ new (&EntitiesToBeRemoved) DynArray<Entity_Base*>{16};
+ }
+ if (entitiesYetToBeRemoved.GetPtr() == CAFE_BABE(Entity_Base*) || entitiesYetToBeRemoved.GetPtr() == nullptr) {
+ new (&entitiesYetToBeRemoved) DynArray<Entity_Base*>{0, nullptr};
+ }
+ if (EntitiesWithExcessInstances.GetPtr() == CAFE_BABE(Entity_Base*) || EntitiesWithExcessInstances.GetPtr() == nullptr) {
+ new (&EntitiesWithExcessInstances) DynArray<Entity_Base*>{16};
+ }
}
Entity_Base *ECS_CreateGenericEntity() {