Using memory arena in the game that supports hot reload
This commit is contained in:
@@ -2,33 +2,30 @@
|
||||
|
||||
#include <Entity/Entity.h>
|
||||
|
||||
namespace Game
|
||||
EntityID EntityManager::ID = 0;
|
||||
|
||||
void InitEntityManager(Juliet::NonNullPtr<World> world)
|
||||
{
|
||||
namespace
|
||||
{
|
||||
EntityManager Manager;
|
||||
}
|
||||
EntityManager* newManager = Juliet::ArenaPushStruct<EntityManager>(world->WorldArena);
|
||||
world->EntityManager = newManager;
|
||||
|
||||
EntityID EntityManager::ID = 0;
|
||||
newManager->Entities.Create(world->WorldArena JULIET_DEBUG_PARAM("Entities"));
|
||||
|
||||
void InitEntityManager(Juliet::NonNullPtr<Juliet::Arena> arena)
|
||||
{
|
||||
Manager.Arena = arena.Get();
|
||||
Manager.Entities.Create(arena JULIET_DEBUG_PARAM("Entities"));
|
||||
}
|
||||
newManager->Arena = Juliet::ArenaAllocate({} JULIET_DEBUG_PARAM("Entity Arena"));
|
||||
}
|
||||
|
||||
void ShutdownEntityManager()
|
||||
{
|
||||
Manager.Entities.Destroy();
|
||||
}
|
||||
void ShutdownEntityManager()
|
||||
{
|
||||
GetEntityManager().Entities.Destroy();
|
||||
}
|
||||
|
||||
EntityManager& GetEntityManager()
|
||||
{
|
||||
return Manager;
|
||||
}
|
||||
EntityManager& GetEntityManager()
|
||||
{
|
||||
Juliet::NonNullPtr entityManager = GetGameState()->World->EntityManager;
|
||||
return *entityManager;
|
||||
}
|
||||
|
||||
void RegisterEntity(EntityManager& /*manager*/, Entity* entity)
|
||||
{
|
||||
entity->ID = EntityManager::ID++;
|
||||
}
|
||||
} // namespace Game
|
||||
void RegisterEntity(EntityManager& /*manager*/, Entity* entity)
|
||||
{
|
||||
entity->ID = EntityManager::ID++;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user