From 94a79bac7a06aa0f931e9d651928de7eea0a8b5c Mon Sep 17 00:00:00 2001 From: Treeston Date: Sat, 8 Feb 2020 20:22:37 +0100 Subject: Core/Misc: Some refactoring, #23603 prep: (#23676) - Split SpawnMetadata off from SpawnData - No longer allocate Creature/Gameobject objects in ObjectGridLoader just to check their typeid and delete them afterwards Co-authored-by: Giacomo Pozzoni (cherry picked from commit 9304e496cbf6ab6c028671fb8526c732ae5d799f) --- src/server/game/Pools/PoolMgr.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/server/game/Pools/PoolMgr.cpp') diff --git a/src/server/game/Pools/PoolMgr.cpp b/src/server/game/Pools/PoolMgr.cpp index 10af28c306d..d9402f7797a 100644 --- a/src/server/game/Pools/PoolMgr.cpp +++ b/src/server/game/Pools/PoolMgr.cpp @@ -177,7 +177,7 @@ void PoolGroup::Despawn1Object(uint64 guid) { sObjectMgr->RemoveCreatureFromGrid(guid, data); - Map* map = sMapMgr->FindMap(data->spawnPoint.GetMapId(), 0); + Map* map = sMapMgr->FindMap(data->mapId, 0); if (map && !map->Instanceable()) { auto creatureBounds = map->GetCreatureBySpawnIdStore().equal_range(guid); @@ -202,7 +202,7 @@ void PoolGroup::Despawn1Object(uint64 guid) { sObjectMgr->RemoveGameobjectFromGrid(guid, data); - Map* map = sMapMgr->FindMap(data->spawnPoint.GetMapId(), 0); + Map* map = sMapMgr->FindMap(data->mapId, 0); if (map && !map->Instanceable()) { auto gameobjectBounds = map->GetGameObjectBySpawnIdStore().equal_range(guid); @@ -323,7 +323,7 @@ void PoolGroup::Spawn1Object(PoolObject* obj) sObjectMgr->AddCreatureToGrid(obj->guid, data); // Spawn if necessary (loaded grids only) - Map* map = sMapMgr->FindMap(data->spawnPoint.GetMapId(), 0); + Map* map = sMapMgr->FindMap(data->mapId, 0); // We use spawn coords to spawn if (map && !map->Instanceable() && map->IsGridLoaded(data->spawnPoint)) Creature::CreateCreatureFromDB(obj->guid, map); @@ -339,7 +339,7 @@ void PoolGroup::Spawn1Object(PoolObject* obj) sObjectMgr->AddGameobjectToGrid(obj->guid, data); // Spawn if necessary (loaded grids only) // this base map checked as non-instanced and then only existed - Map* map = sMapMgr->FindMap(data->spawnPoint.GetMapId(), 0); + Map* map = sMapMgr->FindMap(data->mapId, 0); // We use current coords to unspawn, not spawn coords since creature can have changed grid if (map && !map->Instanceable() && map->IsGridLoaded(data->spawnPoint)) { @@ -760,6 +760,8 @@ uint32 PoolMgr::IsPartOfAPool(SpawnObjectType type, ObjectGuid::LowType spawnId) return IsPartOfAPool(spawnId); case SPAWN_TYPE_GAMEOBJECT: return IsPartOfAPool(spawnId); + case SPAWN_TYPE_AREATRIGGER: + return 0; default: ASSERT(false, "Invalid spawn type %u passed to PoolMgr::IsPartOfPool (with spawnId " UI64FMTD ")", uint32(type), spawnId); return 0; -- cgit v1.2.3