aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/TerrainMgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/TerrainMgr.cpp')
-rw-r--r--src/server/game/Maps/TerrainMgr.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/server/game/Maps/TerrainMgr.cpp b/src/server/game/Maps/TerrainMgr.cpp
index b5c2eeea8f8..10151fa4127 100644
--- a/src/server/game/Maps/TerrainMgr.cpp
+++ b/src/server/game/Maps/TerrainMgr.cpp
@@ -163,6 +163,14 @@ void TerrainInfo::LoadMapAndVMap(int32 gx, int32 gy)
LoadMapAndVMapImpl(gx, gy);
}
+void TerrainInfo::LoadMMapInstance(uint32 mapId, uint32 instanceId)
+{
+ LoadMMapInstanceImpl(mapId, instanceId);
+
+ for (std::shared_ptr<TerrainInfo> const& childTerrain : _childTerrain)
+ childTerrain->LoadMMapInstanceImpl(mapId, instanceId);
+}
+
void TerrainInfo::LoadMapAndVMapImpl(int32 gx, int32 gy)
{
LoadMap(gx, gy);
@@ -175,6 +183,11 @@ void TerrainInfo::LoadMapAndVMapImpl(int32 gx, int32 gy)
_loadedGrids[GetBitsetIndex(gx, gy)] = true;
}
+void TerrainInfo::LoadMMapInstanceImpl(uint32 mapId, uint32 instanceId)
+{
+ MMAP::MMapFactory::createOrGetMMapManager()->loadMapInstance(sWorld->GetDataPath(), _mapId, mapId, instanceId);
+}
+
void TerrainInfo::LoadMap(int32 gx, int32 gy)
{
if (_gridMap[gx][gy])
@@ -240,6 +253,14 @@ void TerrainInfo::UnloadMap(int32 gx, int32 gy)
// unload later
}
+void TerrainInfo::UnloadMMapInstance(uint32 mapId, uint32 instanceId)
+{
+ UnloadMMapInstanceImpl(mapId, instanceId);
+
+ for (std::shared_ptr<TerrainInfo> const& childTerrain : _childTerrain)
+ childTerrain->UnloadMMapInstanceImpl(mapId, instanceId);
+}
+
void TerrainInfo::UnloadMapImpl(int32 gx, int32 gy)
{
_gridMap[gx][gy] = nullptr;
@@ -252,6 +273,11 @@ void TerrainInfo::UnloadMapImpl(int32 gx, int32 gy)
_loadedGrids[GetBitsetIndex(gx, gy)] = false;
}
+void TerrainInfo::UnloadMMapInstanceImpl(uint32 mapId, uint32 instanceId)
+{
+ MMAP::MMapFactory::createOrGetMMapManager()->unloadMapInstance(_mapId, mapId, instanceId);
+}
+
GridMap* TerrainInfo::GetGrid(uint32 mapId, float x, float y, bool loadIfMissing /*= true*/)
{
// half opt method