From 5de252ae8471cea021944d2f404a7793f39a8d0d Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 13 Jul 2025 13:40:31 +0200 Subject: Core/Misc: Move large functions out of header files --- src/server/game/Maps/Map.cpp | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) (limited to 'src/server/game/Maps/Map.cpp') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index ac15853286e..76bfb162ec0 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2710,9 +2710,19 @@ bool Map::ActiveObjectsNearGrid(NGridType const& ngrid) const return false; } +void Map::AddWorldObject(WorldObject* obj) +{ + i_worldObjects.insert(obj); +} + +void Map::RemoveWorldObject(WorldObject* obj) +{ + i_worldObjects.erase(obj); +} + void Map::AddToActive(WorldObject* obj) { - AddToActiveHelper(obj); + m_activeNonPlayers.insert(obj); Optional respawnLocation; switch (obj->GetTypeId()) @@ -2751,7 +2761,19 @@ void Map::AddToActive(WorldObject* obj) void Map::RemoveFromActive(WorldObject* obj) { - RemoveFromActiveHelper(obj); + // Map::Update for active object in proccess + if (m_activeNonPlayersIter != m_activeNonPlayers.end()) + { + ActiveNonPlayers::iterator itr = m_activeNonPlayers.find(obj); + if (itr != m_activeNonPlayers.end()) + { + if (itr == m_activeNonPlayersIter) + ++m_activeNonPlayersIter; + m_activeNonPlayers.erase(itr); + } + } + else + m_activeNonPlayers.erase(obj); Optional respawnLocation; switch (obj->GetTypeId()) -- cgit v1.2.3