From ea218cad0ee862964e12bb7f15d442acb7de6c43 Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Wed, 30 Aug 2023 11:00:04 -0400 Subject: first pass add ecs --- src/ecs.hpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/ecs.hpp (limited to 'src/ecs.hpp') diff --git a/src/ecs.hpp b/src/ecs.hpp new file mode 100644 index 0000000..d37ff57 --- /dev/null +++ b/src/ecs.hpp @@ -0,0 +1,25 @@ +#ifndef PKE_ECS_HPP +#define PKE_ECS_HPP + +#include "dynamic-array.hpp" +#include "macros.hpp" +#include "memory.hpp" + +#include "glm/vec3.hpp" + +TypeSafeInt_H(EntityHandle, uint64_t, UINT64_MAX); + +extern DynArray EntitiesToBeRemoved; + +struct Entity { + EntityHandle handle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; + EntityHandle parentHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}; + bool isMarkedForRemoval = false; +}; + +void ECS_Init(); +void ECS_Tick(double delta); +EntityHandle ECS_CreateEntity(EntityHandle parentEntityHandle = EntityHandle{EntityHandle_T{0xFFFFFFFFFFFFFFFF}}); +void ECS_MarkForRemoval(EntityHandle entityHandle); + +#endif /* PKE_ECS_HPP */ -- cgit v1.2.3