diff options
Diffstat (limited to 'src/ecs.cpp')
| -rw-r--r-- | src/ecs.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
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, |
