Core/Maps: Replace some Instanceable() checks with IsDungeon()

Port From (https://github.com/TrinityCore/TrinityCore/commit/8466894d816f484f30cdbe47b980a142870c955e)
This commit is contained in:
hondacrx
2022-07-20 21:38:47 -04:00
parent e7bb4745e0
commit 732609fd87
7 changed files with 23 additions and 25 deletions
+4 -5
View File
@@ -424,17 +424,16 @@ namespace Game.Chat.Commands
AreaTableRecord zoneEntry = areaEntry.ParentAreaID != 0 ? CliDB.AreaTableStorage.LookupByKey(areaEntry.ParentAreaID) : areaEntry; AreaTableRecord zoneEntry = areaEntry.ParentAreaID != 0 ? CliDB.AreaTableStorage.LookupByKey(areaEntry.ParentAreaID) : areaEntry;
Cypher.Assert(zoneEntry != null); Cypher.Assert(zoneEntry != null);
x /= 100.0f;
y /= 100.0f;
Map map = Global.MapMgr.CreateBaseMap(zoneEntry.ContinentID); Map map = Global.MapMgr.CreateBaseMap(zoneEntry.ContinentID);
if (map.Instanceable()) if (!Global.DB2Mgr.Zone2MapCoordinates(areaEntry.ParentAreaID != 0 ? areaEntry.ParentAreaID : areaId, ref x, ref y))
{ {
handler.SendSysMessage(CypherStrings.InvalidZoneMap, areaId, areaEntry.AreaName[handler.GetSessionDbcLocale()], map.GetId(), map.GetMapName()); handler.SendSysMessage(CypherStrings.InvalidZoneMap, areaId, areaEntry.AreaName[handler.GetSessionDbcLocale()], map.GetId(), map.GetMapName());
return false; return false;
} }
x /= 100.0f;
y /= 100.0f;
Global.DB2Mgr.Zone2MapCoordinates(areaEntry.ParentAreaID != 0 ? areaEntry.ParentAreaID : areaId, ref x, ref y);
if (!GridDefines.IsValidMapCoord(zoneEntry.ContinentID, x, y)) if (!GridDefines.IsValidMapCoord(zoneEntry.ContinentID, x, y))
{ {
handler.SendSysMessage(CypherStrings.InvalidTargetCoord, x, y, zoneEntry.ContinentID); handler.SendSysMessage(CypherStrings.InvalidTargetCoord, x, y, zoneEntry.ContinentID);
+1 -1
View File
@@ -1816,7 +1816,7 @@ namespace Game.Chat
if (!target.GetMap().IsBattlegroundOrArena()) if (!target.GetMap().IsBattlegroundOrArena())
target.SetBattlegroundEntryPoint(); target.SetBattlegroundEntryPoint();
} }
else if (map.Instanceable()) else if (map.IsDungeon())
{ {
Map targetMap = target.GetMap(); Map targetMap = target.GetMap();
+6 -3
View File
@@ -2299,11 +2299,11 @@ namespace Game.DataStorage
return true; return true;
} }
public void Zone2MapCoordinates(uint areaId, ref float x, ref float y) public bool Zone2MapCoordinates(uint areaId, ref float x, ref float y)
{ {
AreaTableRecord areaEntry = AreaTableStorage.LookupByKey(areaId); AreaTableRecord areaEntry = AreaTableStorage.LookupByKey(areaId);
if (areaEntry == null) if (areaEntry == null)
return; return false;
foreach (var assignment in _uiMapAssignmentByArea[(int)UiMapSystem.World].LookupByKey(areaId)) foreach (var assignment in _uiMapAssignmentByArea[(int)UiMapSystem.World].LookupByKey(areaId))
{ {
@@ -2314,8 +2314,11 @@ namespace Game.DataStorage
float tmpX = (x - assignment.UiMax.X) / (assignment.UiMin.X - assignment.UiMax.X); float tmpX = (x - assignment.UiMax.X) / (assignment.UiMin.X - assignment.UiMax.X);
x = assignment.Region[0].X + tmpY * (assignment.Region[1].X - assignment.Region[0].X); x = assignment.Region[0].X + tmpY * (assignment.Region[1].X - assignment.Region[0].X);
y = assignment.Region[0].Y + tmpX * (assignment.Region[1].Y - assignment.Region[0].Y); y = assignment.Region[0].Y + tmpX * (assignment.Region[1].Y - assignment.Region[0].Y);
break;
return true;
} }
return false;
} }
public void Map2ZoneCoordinates(int areaId, ref float x, ref float y) public void Map2ZoneCoordinates(int areaId, ref float x, ref float y)
@@ -454,7 +454,7 @@ namespace Game.Maps
{ {
Log.outDebug(LogFilter.Maps, "InstanceSaveMgr._ResetInstance {0}, {1}", mapid, instanceId); Log.outDebug(LogFilter.Maps, "InstanceSaveMgr._ResetInstance {0}, {1}", mapid, instanceId);
Map map = Global.MapMgr.CreateBaseMap(mapid); Map map = Global.MapMgr.CreateBaseMap(mapid);
if (!map.Instanceable()) if (!map.IsDungeon())
return; return;
var pair = m_instanceSaveById.Find(instanceId); var pair = m_instanceSaveById.Find(instanceId);
@@ -464,12 +464,9 @@ namespace Game.Maps
DeleteInstanceFromDB(instanceId); // even if save not loaded DeleteInstanceFromDB(instanceId); // even if save not loaded
Map iMap = ((MapInstanced)map).FindInstanceMap(instanceId); Map iMap = ((MapInstanced)map).FindInstanceMap(instanceId);
if (iMap != null && iMap.IsDungeon())
((InstanceMap)iMap).Reset(InstanceResetMethod.RespawnDelay);
if (iMap != null) if (iMap != null)
{ {
((InstanceMap)iMap).Reset(InstanceResetMethod.RespawnDelay);
iMap.DeleteRespawnTimes(); iMap.DeleteRespawnTimes();
iMap.DeleteCorpseData(); iMap.DeleteCorpseData();
} }
+3 -3
View File
@@ -82,7 +82,7 @@ namespace Game.Maps
if (GetId() != mapId || player == null) if (GetId() != mapId || player == null)
return null; return null;
Map map; Map map = null;
uint newInstanceId; // instanceId of the resulting map uint newInstanceId; // instanceId of the resulting map
if (IsBattlegroundOrArena()) if (IsBattlegroundOrArena())
@@ -106,7 +106,7 @@ namespace Game.Maps
} }
} }
} }
else if(!IsGarrison()) else if(IsDungeon())
{ {
InstanceBind pBind = player.GetBoundInstance(GetId(), player.GetDifficultyID(GetEntry())); InstanceBind pBind = player.GetBoundInstance(GetId(), player.GetDifficultyID(GetEntry()));
InstanceSave pSave = pBind != null ? pBind.save : null; InstanceSave pSave = pBind != null ? pBind.save : null;
@@ -162,7 +162,7 @@ namespace Game.Maps
map = CreateInstance(newInstanceId, null, diff, player.GetTeamId()); map = CreateInstance(newInstanceId, null, diff, player.GetTeamId());
} }
} }
else else if (IsGarrison())
{ {
newInstanceId = (uint)player.GetGUID().GetCounter(); newInstanceId = (uint)player.GetGUID().GetCounter();
map = FindInstanceMap(newInstanceId); map = FindInstanceMap(newInstanceId);
+6 -7
View File
@@ -278,12 +278,11 @@ namespace Game.Entities
foreach (var pair in i_maps) foreach (var pair in i_maps)
{ {
Map map = pair.Value; Map map = pair.Value;
if (!map.Instanceable()) if (!map.IsDungeon())
continue; continue;
var maps = ((MapInstanced)map).GetInstancedMaps(); var maps = ((MapInstanced)map).GetInstancedMaps();
foreach (var imap in maps) ret += (uint)maps.Count;
if (imap.Value.IsDungeon())
ret++;
} }
return ret; return ret;
} }
@@ -297,12 +296,12 @@ namespace Game.Entities
foreach (var pair in i_maps) foreach (var pair in i_maps)
{ {
Map map = pair.Value; Map map = pair.Value;
if (!map.Instanceable()) if (!map.IsDungeon())
continue; continue;
var maps = ((MapInstanced)map).GetInstancedMaps(); var maps = ((MapInstanced)map).GetInstancedMaps();
foreach (var imap in maps) foreach (var imap in maps)
if (imap.Value.IsDungeon()) ret += (uint)imap.Value.GetPlayers().Count;
ret += (uint)imap.Value.GetPlayers().Count;
} }
return ret; return ret;
} }
+1 -1
View File
@@ -156,7 +156,7 @@ namespace Game
string[] seasonName = { "spring", "summer", "fall", "winter" }; string[] seasonName = { "spring", "summer", "fall", "winter" };
Log.outError(LogFilter.Server, "Generating a change in {0} weather for zone {1}.", seasonName[season], m_zone); Log.outInfo(LogFilter.Server, "Generating a change in {0} weather for zone {1}.", seasonName[season], m_zone);
if ((u < 60) && (m_intensity < 0.33333334f)) // Get fair if ((u < 60) && (m_intensity < 0.33333334f)) // Get fair
{ {