From b0e0814374d934a62e434b65d02d23d3884bce80 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Thu, 4 Jan 2024 17:27:54 -0500 Subject: refactor to allow unloading a single EntityType --- src/ecs.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/ecs.cpp') diff --git a/src/ecs.cpp b/src/ecs.cpp index c33caaa..34eb701 100644 --- a/src/ecs.cpp +++ b/src/ecs.cpp @@ -127,7 +127,9 @@ void ECS_Tick_Early(double delta) { instBucketIndex = clonedEnt.instanceHandle.bucketIndex; instBucket = &Comp_Instance_BucketContainer.buckets[instBucketIndex]; inst = &instBucket->instances[clonedEnt.instanceHandle.itemIndex]; - grBinds = &Comp_GrBinds_BucketContainer.buckets[inst->grBindsHandle.bucketIndex].compGrBinds[inst->grBindsHandle.itemIndex]; + if (inst->grBindsHandle != GrBindsHandle_MAX) { + grBinds = &Comp_GrBinds_BucketContainer.buckets[inst->grBindsHandle.bucketIndex].compGrBinds[inst->grBindsHandle.itemIndex]; + } } if (grBinds == nullptr && clonedEnt.grBindsHandle != GrBindsHandle_MAX) { grBinds = &Comp_GrBinds_BucketContainer.buckets[clonedEnt.grBindsHandle.bucketIndex].compGrBinds[clonedEnt.grBindsHandle.itemIndex]; @@ -168,6 +170,11 @@ void ECS_Tick_Early(double delta) { inst->bt.rigidBody = CAFE_BABE(btRigidBody); inst->bt.motionState = CAFE_BABE(btDefaultMotionState); } else if (grBinds != nullptr) { + grBinds->entHandle = EntityHandle_MAX; + grBinds->grBindsHandle = GrBindsHandle_MAX; + grBinds->vkPipelineLayout = VK_NULL_HANDLE; + grBinds->graphicsPipeline = VK_NULL_HANDLE; + grBinds->collisionCallback = PkeCallback{}; /* * 2023-09-05 JB note - the Vulkan assets (device memory, buffers, * pipeline layout, and descriptor set) are unloaded elsewhere, just, -- cgit v1.2.3