diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/Maps/TerrainMgr.cpp | 21 | ||||
| -rw-r--r-- | src/server/scripts/Commands/cs_mmaps.cpp | 7 |
2 files changed, 19 insertions, 9 deletions
diff --git a/src/server/game/Maps/TerrainMgr.cpp b/src/server/game/Maps/TerrainMgr.cpp index a18373dc248..2e6d8e184b9 100644 --- a/src/server/game/Maps/TerrainMgr.cpp +++ b/src/server/game/Maps/TerrainMgr.cpp @@ -239,12 +239,21 @@ void TerrainInfo::LoadMMap(int32 gx, int32 gy) if (!DisableMgr::IsPathfindingEnabled(GetId())) return; - 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); - else - TC_LOG_WARN("mmaps.tiles", "Could not load MMAP name:{}, id:{}, x:{}, y:{} (mmap rep.: x:{}, y:{})", GetMapName(), GetId(), gx, gy, gx, gy); + switch (MMAP::LoadResult mmapLoadResult = MMAP::MMapFactory::createOrGetMMapManager()->loadMap(sWorld->GetDataPath(), GetId(), gx, gy)) + { + case MMAP::LoadResult::Success: + TC_LOG_DEBUG("mmaps.tiles", "MMAP loaded name:{}, id:{}, x:{}, y:{} (mmap rep.: x:{}, y:{})", GetMapName(), GetId(), gx, gy, gx, gy); + break; + case MMAP::LoadResult::AlreadyLoaded: + break; + case MMAP::LoadResult::FileNotFound: + if (_parentTerrain) + break; // don't log tile not found errors for child maps + [[fallthrough]]; + default: + TC_LOG_WARN("mmaps.tiles", "Could not load MMAP name:{}, id:{}, x:{}, y:{} (mmap rep.: x:{}, y:{}) result: {}", GetMapName(), GetId(), gx, gy, gx, gy, AsUnderlyingType(mmapLoadResult)); + break; + } } void TerrainInfo::UnloadMap(int32 gx, int32 gy) diff --git a/src/server/scripts/Commands/cs_mmaps.cpp b/src/server/scripts/Commands/cs_mmaps.cpp index 94004eb8125..2b4fc01675e 100644 --- a/src/server/scripts/Commands/cs_mmaps.cpp +++ b/src/server/scripts/Commands/cs_mmaps.cpp @@ -138,11 +138,12 @@ public: float x, y, z; player->GetPosition(x, y, z); - handler->PSendSysMessage("%04u%02i%02i.mmtile", player->GetMapId(), gx, gy); - handler->PSendSysMessage("tileloc [%i, %i]", gy, gx); - // calculate navmesh tile location uint32 terrainMapId = PhasingHandler::GetTerrainMapId(player->GetPhaseShift(), player->GetMapId(), player->GetMap()->GetTerrain(), x, y); + + handler->PSendSysMessage("%04u%02i%02i.mmtile", terrainMapId, gx, gy); + handler->PSendSysMessage("tileloc [%i, %i]", gy, gx); + dtNavMesh const* navmesh = MMAP::MMapFactory::createOrGetMMapManager()->GetNavMesh(terrainMapId); dtNavMeshQuery const* navmeshquery = MMAP::MMapFactory::createOrGetMMapManager()->GetNavMeshQuery(terrainMapId, player->GetMapId(), player->GetInstanceId()); if (!navmesh || !navmeshquery) |
