#include #include EntityID EntityManager::ID = 0; void InitEntityManager(Juliet::NonNullPtr world) { EntityManager* newManager = Juliet::ArenaPushStruct(world->WorldArena); world->EntityManager = newManager; newManager->Entities.Create(world->WorldArena JULIET_DEBUG_PARAM("Entities")); newManager->Arena = Juliet::ArenaAllocate({} JULIET_DEBUG_PARAM("Entity Arena")); } void ShutdownEntityManager() { GetEntityManager().Entities.Destroy(); } EntityManager& GetEntityManager() { Juliet::NonNullPtr entityManager = GetGameState()->World->EntityManager; return *entityManager; } void RegisterEntity(EntityManager& /*manager*/, Entity* entity) { entity->ID = EntityManager::ID++; }