aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index 738d0d296c8..41d3d2a9abc 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -365,6 +365,8 @@ i_scriptLock(false), _respawnCheckTimer(0)
GetGuidSequenceGenerator<HighGuid::Transport>().Set(sObjectMgr->GetGenerator<HighGuid::Transport>().GetNextAfterMaxUsed());
+ _poolData = sPoolMgr->InitPoolsForMap(this);
+
MMAP::MMapFactory::createOrGetMMapManager()->loadMapInstance(sWorld->GetDataPath(), GetId(), i_InstanceId);
sScriptMgr->OnCreateMap(this);
@@ -3392,7 +3394,7 @@ void Map::ProcessRespawns()
ASSERT_NOTNULL(GetRespawnMapForType(next->type))->erase(next->spawnId);
// step 2: tell pooling logic to do its thing
- sPoolMgr->UpdatePool(poolId, next->type, next->spawnId);
+ sPoolMgr->UpdatePool(GetPoolData(), poolId, next->type, next->spawnId);
// step 3: get rid of the actual entry
RemoveRespawnTime(next->type, next->spawnId, nullptr, true);
@@ -3485,6 +3487,10 @@ bool Map::ShouldBeSpawnedOnGridLoad(SpawnObjectType type, ObjectGuid::LowType sp
if (!IsSpawnGroupActive(spawnGroup->groupId))
return false;
+ if (spawnData->ToSpawnData()->poolId)
+ if (!GetPoolData().IsSpawnedObject(type, spawnId))
+ return false;
+
return true;
}