diff options
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r-- | src/server/game/Maps/Map.cpp | 8 |
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; } |