diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-04 17:27:54 -0500 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2024-01-04 17:27:54 -0500 |
| commit | b0e0814374d934a62e434b65d02d23d3884bce80 (patch) | |
| tree | 894d98ed1fdb77ffebb16d20fa885272001fe0cb /src/ecs.cpp | |
| parent | 25648cbd7273c66ab6fc9d5e647ee0268da1f4d8 (diff) | |
refactor to allow unloading a single EntityType
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, |
