summaryrefslogtreecommitdiff
path: root/src/ecs.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2023-10-06 14:42:03 -0400
committerJonathan Bradley <jcb@pikum.xyz>2023-10-06 17:20:20 -0400
commit791c153aabd579f518a9b00613459cba13734797 (patch)
tree858ec6f9a8398398a8a53ec5a886bca5825c62e0 /src/ecs.cpp
parent286bf5539527500429cfca4ded0bb78406f6364b (diff)
Memory management - ctors and dtors
Diffstat (limited to 'src/ecs.cpp')
-rw-r--r--src/ecs.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp
index 03596f3..88088f5 100644
--- a/src/ecs.cpp
+++ b/src/ecs.cpp
@@ -18,6 +18,7 @@ struct InstanceBucket {
};
DynArray<EntityHandle> EntitiesToBeRemoved{16}; // public
+DynArray<Entity> entitiesYetToBeRemoved{0};
DynArray<EntityHandle> entitiesMarkedForRemoval{16};
BucketContainer<EntityBucket, EntityHandle_T> Entities_BucketContainer{};
@@ -74,7 +75,6 @@ void ECS_MarkForRemoval(EntityHandle entityHandle) {
}
void ECS_Tick_Early(double delta) {
- static DynArray<Entity> entitiesYetToBeRemoved{0};
entitiesYetToBeRemoved.Resize(EntitiesToBeRemoved.Count());
EntitiesToBeRemoved.Resize(0);
for (long b = 0; b <= Entities_BucketContainer.bucketCounter; ++b) {
@@ -392,3 +392,9 @@ CompInstance *ECS_GetInstances(uint64_t bucketIndex, uint64_t &itemCount) {
}
return Comp_Instance_BucketContainer.buckets[bucketIndex].instances;
}
+
+void ECS_Teardown() {
+ entitiesYetToBeRemoved.~DynArray();
+ EntitiesToBeRemoved.~DynArray();
+ entitiesMarkedForRemoval.~DynArray();
+}