summaryrefslogtreecommitdiff
path: root/src/entities.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2024-01-03 16:35:09 -0500
committerJonathan Bradley <jcb@pikum.xyz>2024-01-03 16:35:09 -0500
commit1ffa486edd70406627f3e329351184dafebc1aea (patch)
tree494a3289a185260b089b3396944d7268090bceba /src/entities.hpp
parentbe543940e3c561ee2ab8eb315211112b97065476 (diff)
checkpoint - EntityTypeDetails array
Diffstat (limited to 'src/entities.hpp')
-rw-r--r--src/entities.hpp31
1 files changed, 15 insertions, 16 deletions
diff --git a/src/entities.hpp b/src/entities.hpp
index 41ae7fd..f822336 100644
--- a/src/entities.hpp
+++ b/src/entities.hpp
@@ -12,38 +12,37 @@
#include <BulletCollision/CollisionShapes/btCollisionShape.h>
#include <vulkan/vulkan_core.h>
-struct EntityType {
- AssetKey modelAssetKey;
+struct EntityTypeDetails {
AssetKey textureAssetKey;
- const char *entityTypeCode = nullptr;
- EntityHandle entityHandle;
+ EntityHandle entityHandle = EntityHandle_MAX;
GrBindsHandle grBindsHandle = GrBindsHandle_MAX;
- VkDeviceMemory deviceMemoryVert = VK_NULL_HANDLE;
- VkDeviceMemory deviceMemoryInst = VK_NULL_HANDLE;
- VkDeviceMemory deviceMemoryPhysVert = VK_NULL_HANDLE;
- VkDeviceMemory deviceMemoryTexture = VK_NULL_HANDLE;
VkImage textureImage = VK_NULL_HANDLE;
VkImageView textureImageView = VK_NULL_HANDLE;
VkDescriptorPool vkDescriptorPool = VK_NULL_HANDLE;
- uint32_t startingInstanceCount = 1024;
- struct Importer_GLTF {
- int16_t AccessorIndexVertex = 0;
- int16_t AccessorIndexNormal = 1;
- int16_t AccessorIndexUV = 2;
- int16_t AccessorIndexIndex = 3;
- } Importer_GLTF;
struct {
btCollisionShape *shape = nullptr;
btScalar startingMass = 1.f;
PhysicsCollision startingCollisionLayer = PhysicsCollision{1};
PhysicsCollision startingCollisionMask = PhysicsCollision{1};
} bt;
+ uint32_t startingInstanceCount = 1024;
+};
+struct EntityType {
+ AssetKey modelAssetKey;
+ const char *entityTypeCode = nullptr;
+ EntityHandle entityHandle = EntityHandle_MAX;
+ VkDeviceMemory deviceMemoryVert = VK_NULL_HANDLE;
+ VkDeviceMemory deviceMemoryInst = VK_NULL_HANDLE;
+ VkDeviceMemory deviceMemoryPhysVert = VK_NULL_HANDLE;
+ VkDeviceMemory deviceMemoryTexture = VK_NULL_HANDLE;
+ int64_t detailsCount = 1;
+ EntityTypeDetails details[1];
};
extern DynArray<EntityType> GlobalEntityTypes;
void EntityType_Init();
int64_t EntityType_FindByTypeCode(const char *typeCode);
-int64_t EntityType_FindByEntityHandle(EntityHandle handle);
+int64_t EntityType_FindByEntityHandle(EntityHandle handle, int64_t &detailIndex);
void EntityType_Load(EntityType &et);
void EntityType_Tick_Late(double delta);
void EntityType_RolloverInstances(EntityType &et, CompGrBinds &grBinds);