diff options
Diffstat (limited to 'src/ecs.cpp')
| -rw-r--r-- | src/ecs.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/ecs.cpp b/src/ecs.cpp index 1af539c..389e53f 100644 --- a/src/ecs.cpp +++ b/src/ecs.cpp @@ -22,7 +22,7 @@ BucketContainer<InstanceBucket, InstanceHandle_T> Comp_Instance_BucketContainer{ void ECS_GetEntity_Inner(EntityHandle entHandle, Entity*& ent) { EntityHandle_T entHandle_t{static_cast<EntityHandle_T>(entHandle)}; - assert(entHandle_t == ECS_UNSET_VAL && "Unknown entity handle"); + assert(entHandle_t != EntityHandle_T_MAX && "Unknown entity handle"); auto b = Buckets_GetBucketIndex(static_cast<EntityHandle_T>(entHandle)); auto e = Buckets_GetItemIndex(static_cast<EntityHandle_T>(entHandle)); ent = &Entities_BucketContainer.buckets[b].entities[e]; @@ -66,10 +66,10 @@ void ECS_Tick(double delta) { uint64_t entCount = b == Entities_BucketContainer.bucketCounter ? Entities_BucketContainer.itemCounter >> 32 : maxBucketItemCount; for (long e = 0; e < entCount; ++e) { Entity *ent = &Entities_BucketContainer.buckets[b].entities[e]; - if (ent->handle == EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}) continue; + if (ent->handle == EntityHandle_MAX) continue; if (ent->isMarkedForRemoval) { - ent->handle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; - ent->parentHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; + ent->handle = EntityHandle_MAX; + ent->parentHandle = EntityHandle_MAX; ent->isMarkedForRemoval = false; // TODO destroy components } else { @@ -103,8 +103,8 @@ CompGrBinds &ECS_CreateGrBinds(EntityHandle entHandle) { CompGrBinds *ECS_GetGrBinds(EntityHandle entHandle) { Entity *ent = nullptr; ECS_GetEntity_Inner(entHandle, ent); + if (ent->grBindsHandle == GrBindsHandle_MAX) return nullptr; GrBindsHandle_T grBindsHandle_t{static_cast<GrBindsHandle_T>(ent->grBindsHandle)}; - if (grBindsHandle_t == ECS_UNSET_VAL) return nullptr; auto b = Buckets_GetBucketIndex(grBindsHandle_t); auto i = Buckets_GetItemIndex(grBindsHandle_t); return &Comp_GrBinds_BucketContainer.buckets[b].compGrBinds[i]; @@ -128,8 +128,8 @@ CompInstance &ECS_CreateInstance(EntityHandle entHandle) { ECS_GetEntity_Inner(entHandle, ent); InstanceHandle_T newHandle{Buckets_NewHandle(maxBucketItemCount, Comp_Instance_BucketContainer)}; ent->instanceHandle = InstanceHandle{newHandle}; + assert(ent->grBindsHandle != GrBindsHandle_MAX); GrBindsHandle_T grBindsHandle_t{static_cast<GrBindsHandle_T>(ent->grBindsHandle)}; - assert(grBindsHandle_t != ECS_UNSET_VAL); auto b2 = Buckets_GetBucketIndex(grBindsHandle_t); auto i2 = Buckets_GetItemIndex(grBindsHandle_t); @@ -149,10 +149,10 @@ CompInstance &ECS_CreateInstance(EntityHandle entHandle) { CompInstance *ECS_GetInstance(EntityHandle entHandle) { Entity *ent = nullptr; ECS_GetEntity_Inner(entHandle, ent); + if (ent->grBindsHandle == GrBindsHandle_MAX) return nullptr; + if (ent->instanceHandle == InstanceHandle_MAX) return nullptr; GrBindsHandle_T grBindsHandle_t{static_cast<GrBindsHandle_T>(ent->grBindsHandle)}; - if (grBindsHandle_t == ECS_UNSET_VAL) return nullptr; InstanceHandle_T instanceHandle_t{static_cast<InstanceHandle_T>(ent->instanceHandle)}; - if (instanceHandle_t == ECS_UNSET_VAL) return nullptr; auto b2 = Buckets_GetBucketIndex(grBindsHandle_t); auto i2 = Buckets_GetItemIndex(grBindsHandle_t); |
