Core/MMaps: Fixed pathing for objects that have terrain swaps active

Port From (https://github.com/TrinityCore/TrinityCore/commit/86725ed9267803506d8a5cab04c2c5641a234dd9)
This commit is contained in:
hondacrx
2023-09-13 20:46:16 -04:00
parent 3052b1dc23
commit f7ae161e3d
5 changed files with 50 additions and 24 deletions
+26
View File
@@ -270,6 +270,14 @@ namespace Game.Maps
LoadMapAndVMapImpl(gx, gy);
}
public void LoadMMapInstance(uint mapId, uint instanceId)
{
LoadMMapInstanceImpl(mapId, instanceId);
foreach (var childTerrain in _childTerrain)
childTerrain.LoadMMapInstanceImpl(mapId, instanceId);
}
public void LoadMapAndVMapImpl(int gx, int gy)
{
LoadMap(gx, gy);
@@ -282,6 +290,11 @@ namespace Game.Maps
_loadedGrids[GetBitsetIndex(gx, gy)] = true;
}
void LoadMMapInstanceImpl(uint mapId, uint instanceId)
{
Global.MMapMgr.LoadMapInstance(Global.WorldMgr.GetDataPath(), _mapId, mapId, instanceId);
}
public void LoadMap(int gx, int gy)
{
if (_gridMap[gx][gy] != null)
@@ -346,6 +359,14 @@ namespace Game.Maps
// unload later
}
public void UnloadMMapInstance(uint mapId, uint instanceId)
{
UnloadMMapInstanceImpl(mapId, instanceId);
foreach (var childTerrain in _childTerrain)
childTerrain.UnloadMMapInstanceImpl(mapId, instanceId);
}
public void UnloadMapImpl(int gx, int gy)
{
_gridMap[gx][gy] = null;
@@ -358,6 +379,11 @@ namespace Game.Maps
_loadedGrids[GetBitsetIndex(gx, gy)] = false;
}
void UnloadMMapInstanceImpl(uint mapId, uint instanceId)
{
Global.MMapMgr.UnloadMapInstance(_mapId, mapId, instanceId);
}
public GridMap GetGrid(uint mapId, float x, float y, bool loadIfMissing = true)
{
// half opt method