diff options
Diffstat (limited to 'src/entities.cpp')
| -rw-r--r-- | src/entities.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/entities.cpp b/src/entities.cpp index 1691986..0ab040c 100644 --- a/src/entities.cpp +++ b/src/entities.cpp @@ -31,22 +31,28 @@ void EntityType_Init() { Buckets_Init(EntityType_BC); } -EntityType *EntityType_Create() { +EntityType *EntityType_Create(pk_uuid uuid) { EntityTypeHandle entTypeHandle{Buckets_NewHandle(EntityType_BC)}; EntityType &entityType = EntityType_BC.buckets[entTypeHandle.bucketIndex][entTypeHandle.itemIndex]; new (&entityType) EntityType{}; + entityType.uuid = uuid; ECS_CreateEntity(&entityType); return &entityType; } Entity_Base *EntityType_CreateGenericInstance(EntityType *et, Entity_Base *levelEnt, CompInstance *srcInstance, InstPos *instPos) { assert(et != nullptr); + pk_uuid uuid = pk_uuid_zed; Entity_Base *genericEntity = ECS_CreateGenericEntity(); ECS_CreateEntity(genericEntity, levelEnt); + if (srcInstance != nullptr) { + uuid = srcInstance->uuid; + } + for (int64_t i = 0; i < et->detailsCount; ++i) { auto &etd = et->details[i]; - auto *compInst = ECS_CreateInstance(genericEntity, etd.grBinds); + auto *compInst = ECS_CreateInstance(genericEntity, uuid, etd.grBinds); btVector3 scaling{1.f,1.f,1.f}; btTransform posRot{}; |
