diff --git a/SDK/include/NDK/World.hpp b/SDK/include/NDK/World.hpp index 1dfed7602..0f67eb7ef 100644 --- a/SDK/include/NDK/World.hpp +++ b/SDK/include/NDK/World.hpp @@ -30,12 +30,12 @@ namespace Ndk void Clear(); - void KillEntity(Entity* entity); + void KillEntity(EntityHandle entity); void KillEntities(const EntityList& list); - Entity* GetEntity(Entity::Id id); + EntityHandle GetEntity(Entity::Id id); - bool IsEntityValid(Entity* entity) const; + bool IsEntityValid(EntityHandle entity) const; bool IsEntityIdValid(Entity::Id id) const; void Update(); diff --git a/SDK/include/NDK/World.inl b/SDK/include/NDK/World.inl index 0aa3e3aaf..fbffd2c40 100644 --- a/SDK/include/NDK/World.inl +++ b/SDK/include/NDK/World.inl @@ -22,9 +22,9 @@ namespace Ndk KillEntity(entity); } - inline bool World::IsEntityValid(Entity* entity) const + inline bool World::IsEntityValid(EntityHandle entity) const { - return entity != nullptr && entity->GetWorld() == this && IsEntityIdValid(entity->GetId()); + return entity.IsValid() && entity->GetWorld() == this && IsEntityIdValid(entity->GetId()); } inline bool World::IsEntityIdValid(Entity::Id id) const diff --git a/SDK/src/NDK/Entity.cpp b/SDK/src/NDK/Entity.cpp index 634d6d9ad..d407a7778 100644 --- a/SDK/src/NDK/Entity.cpp +++ b/SDK/src/NDK/Entity.cpp @@ -28,7 +28,7 @@ namespace Ndk void Entity::Kill() { - m_world->KillEntity(this); + m_world->KillEntity(CreateHandle()); } bool Entity::IsValid() const diff --git a/SDK/src/NDK/World.cpp b/SDK/src/NDK/World.cpp index 6e7244ef4..a9b5e2695 100644 --- a/SDK/src/NDK/World.cpp +++ b/SDK/src/NDK/World.cpp @@ -50,7 +50,7 @@ namespace Ndk m_killedEntities.clear(); } - void World::KillEntity(Entity* entity) + void World::KillEntity(EntityHandle entity) { ///DOC: Ignoré si l'entité est invalide @@ -58,14 +58,14 @@ namespace Ndk m_killedEntities.emplace_back(entity); } - Entity* World::GetEntity(Entity::Id id) + EntityHandle World::GetEntity(Entity::Id id) { if (IsEntityIdValid(id)) - return &m_entities[id]; + return m_entities[id].CreateHandle(); else { NazaraError("Invalid ID"); - return nullptr; + return EntityHandle(); } }