summaryrefslogtreecommitdiff
path: root/src/entities.cpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-03-31 12:02:44 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-03-31 12:02:44 -0400
commit89614d1dee1049a08e64aead95de6fb28fa7b150 (patch)
tree77e59a92c370154d7b7d859506e570a1fffd66c3 /src/entities.cpp
parent119c83096a81c5aef45a0dbef029bd2e49d2e977 (diff)
pke: parse uuid from scene and project files
Diffstat (limited to 'src/entities.cpp')
-rw-r--r--src/entities.cpp10
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{};