diff options
| author | Shauren <shauren.trinity@gmail.com> | 2024-02-13 23:49:51 +0100 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2024-02-13 23:49:51 +0100 |
| commit | 16f555f79ef2fdebd18204bc90383ad7761343a5 (patch) | |
| tree | d1928466a7aa06ee093d6ac8d6190f88be484fb0 /src/server | |
| parent | ca1560f043df275d9241055adbf61a393666a533 (diff) | |
Core/MMAPs: Sprinkle master branch thread safety on mmap loading code
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 4 | ||||
| -rw-r--r-- | src/server/game/Movement/PathGenerator.cpp | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 10d3f1df348..9072158689b 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -174,7 +174,7 @@ void Map::LoadMMap(int gx, int gy) if (!DisableMgr::IsPathfindingEnabled(GetId())) return; - bool mmapLoadResult = MMAP::MMapFactory::createOrGetMMapManager()->loadMap((sWorld->GetDataPath() + "mmaps").c_str(), GetId(), gx, gy); + bool mmapLoadResult = MMAP::MMapFactory::createOrGetMMapManager()->loadMap(sWorld->GetDataPath(), GetId(), gx, gy); if (mmapLoadResult) TC_LOG_DEBUG("mmaps.tiles", "MMAP loaded name:{}, id:{}, x:{}, y:{} (mmap rep.: x:{}, y:{})", GetMapName(), GetId(), gx, gy, gx, gy); @@ -303,6 +303,8 @@ i_scriptLock(false), _respawnTimes(std::make_unique<RespawnListContainer>()), _r _weatherUpdateTimer.SetInterval(time_t(1 * IN_MILLISECONDS)); + MMAP::MMapFactory::createOrGetMMapManager()->loadMapInstance(sWorld->GetDataPath(), GetId(), GetInstanceId()); + sScriptMgr->OnCreateMap(this); } diff --git a/src/server/game/Movement/PathGenerator.cpp b/src/server/game/Movement/PathGenerator.cpp index 1dd5364a390..08de2f4e12c 100644 --- a/src/server/game/Movement/PathGenerator.cpp +++ b/src/server/game/Movement/PathGenerator.cpp @@ -41,8 +41,8 @@ PathGenerator::PathGenerator(WorldObject const* owner) : if (DisableMgr::IsPathfindingEnabled(mapId)) { MMAP::MMapManager* mmap = MMAP::MMapFactory::createOrGetMMapManager(); - _navMesh = mmap->GetNavMesh(mapId); _navMeshQuery = mmap->GetNavMeshQuery(mapId, _source->GetInstanceId()); + _navMesh = _navMeshQuery ? _navMeshQuery->getAttachedNavMesh() : mmap->GetNavMesh(mapId); } CreateFilter(); |
