Core/Areas: Update AreaFlags
Port From (https://github.com/TrinityCore/TrinityCore/commit/f8f1c3b4f0ca631e76101f8492b9688c6d2dca01)
This commit is contained in:
@@ -97,7 +97,7 @@ namespace Game.Entities
|
||||
|
||||
AreaTableRecord area = CliDB.AreaTableStorage.LookupByKey(newArea);
|
||||
bool oldFFAPvPArea = pvpInfo.IsInFFAPvPArea;
|
||||
pvpInfo.IsInFFAPvPArea = area != null && area.HasFlag(AreaFlags.Arena);
|
||||
pvpInfo.IsInFFAPvPArea = area != null && area.GetFlags().HasFlag(AreaFlags.FreeForAllPvP);
|
||||
UpdatePvPState(true);
|
||||
|
||||
// check if we were in ffa arena and we left
|
||||
@@ -124,8 +124,8 @@ namespace Game.Entities
|
||||
else
|
||||
RemovePvpFlag(UnitPVPStateFlags.Sanctuary);
|
||||
|
||||
AreaFlags areaRestFlag = (GetTeam() == Team.Alliance) ? AreaFlags.RestZoneAlliance : AreaFlags.RestZoneHorde;
|
||||
if (area != null && area.HasFlag(areaRestFlag))
|
||||
AreaFlags areaRestFlag = (GetTeam() == Team.Alliance) ? AreaFlags.AllianceResting : AreaFlags.HordeResting;
|
||||
if (area != null && area.GetFlags().HasFlag(areaRestFlag))
|
||||
_restMgr.SetRestFlag(RestFlag.FactionArea);
|
||||
else
|
||||
_restMgr.RemoveRestFlag(RestFlag.FactionArea);
|
||||
@@ -181,7 +181,7 @@ namespace Game.Entities
|
||||
|
||||
UpdateHostileAreaState(zone);
|
||||
|
||||
if (zone.HasFlag(AreaFlags.Capital)) // Is in a capital city
|
||||
if (zone.GetFlags().HasFlag(AreaFlags.LinkedChat)) // Is in a capital city
|
||||
{
|
||||
if (!pvpInfo.IsInHostileArea || zone.IsSanctuary())
|
||||
_restMgr.SetRestFlag(RestFlag.City);
|
||||
@@ -226,17 +226,17 @@ namespace Game.Entities
|
||||
|
||||
if (area.IsSanctuary()) // sanctuary and arena cannot be overriden
|
||||
pvpInfo.IsInHostileArea = false;
|
||||
else if (area.HasFlag(AreaFlags.Arena))
|
||||
else if (area.GetFlags().HasFlag(AreaFlags.FreeForAllPvP))
|
||||
pvpInfo.IsInHostileArea = true;
|
||||
else if (overrideZonePvpType == ZonePVPTypeOverride.None)
|
||||
{
|
||||
if (area != null)
|
||||
{
|
||||
if (InBattleground() || area.HasFlag(AreaFlags.Combat) || (area.PvpCombatWorldStateID != -1 && Global.WorldStateMgr.GetValue(area.PvpCombatWorldStateID, GetMap()) != 0))
|
||||
if (InBattleground() || area.GetFlags().HasFlag(AreaFlags.CombatZone) || (area.PvpCombatWorldStateID != -1 && Global.WorldStateMgr.GetValue(area.PvpCombatWorldStateID, GetMap()) != 0))
|
||||
pvpInfo.IsInHostileArea = true;
|
||||
else if (IsWarModeLocalActive() || area.HasFlag(AreaFlags.Unk3))
|
||||
else if (IsWarModeLocalActive() || area.GetFlags().HasFlag(AreaFlags.EnemiesPvPFlagged))
|
||||
{
|
||||
if (area.HasFlag(AreaFlags.ContestedArea))
|
||||
if (area.GetFlags().HasFlag(AreaFlags.Contested))
|
||||
pvpInfo.IsInHostileArea = IsWarModeLocalActive();
|
||||
else
|
||||
{
|
||||
|
||||
@@ -356,7 +356,7 @@ namespace Game.Entities
|
||||
if (area.IsSanctuary())
|
||||
return false;
|
||||
|
||||
if (area.HasFlag(AreaFlags.Arena))
|
||||
if (area.GetFlags().HasFlag(AreaFlags.FreeForAllPvP))
|
||||
return true;
|
||||
|
||||
if (Global.BattleFieldMgr.IsWorldPvpArea(area.Id))
|
||||
|
||||
@@ -2738,10 +2738,10 @@ namespace Game.Entities
|
||||
|
||||
public bool CanJoinConstantChannelInZone(ChatChannelsRecord channel, AreaTableRecord zone)
|
||||
{
|
||||
if (channel.Flags.HasAnyFlag(ChannelDBCFlags.ZoneDep) && zone.HasFlag(AreaFlags.ArenaInstance))
|
||||
if (channel.Flags.HasAnyFlag(ChannelDBCFlags.ZoneDep) && zone.GetFlags().HasFlag(AreaFlags.NoChatChannels))
|
||||
return false;
|
||||
|
||||
if (channel.Flags.HasAnyFlag(ChannelDBCFlags.CityOnly) && !zone.HasFlag(AreaFlags.Capital))
|
||||
if (channel.Flags.HasAnyFlag(ChannelDBCFlags.CityOnly) && !zone.GetFlags().HasFlag(AreaFlags.AllowTradeChannel))
|
||||
return false;
|
||||
|
||||
if (channel.Flags.HasAnyFlag(ChannelDBCFlags.GuildReq) && GetGuildId() != 0)
|
||||
@@ -4200,7 +4200,7 @@ namespace Game.Entities
|
||||
|
||||
bool shouldResurrect = false;
|
||||
// Such zones are considered unreachable as a ghost and the player must be automatically revived
|
||||
if ((!IsAlive() && zone != null && zone.HasFlag(AreaFlags.NeedFly)) || GetTransport() != null || GetPositionZ() < GetMap().GetMinHeight(GetPhaseShift(), GetPositionX(), GetPositionY()))
|
||||
if ((!IsAlive() && zone != null && zone.GetFlags().HasFlag(AreaFlags.NoGhostOnRelease)) || GetTransport() != null || GetPositionZ() < GetMap().GetMinHeight(GetPhaseShift(), GetPositionX(), GetPositionY()))
|
||||
{
|
||||
shouldResurrect = true;
|
||||
SpawnCorpseBones();
|
||||
@@ -4787,7 +4787,7 @@ namespace Game.Entities
|
||||
|
||||
do
|
||||
{
|
||||
if ((area.Flags[1] & (uint)AreaFlags2.CanEnableWarMode) != 0)
|
||||
if (area.GetFlags2().HasFlag(AreaFlags2.AllowWarModeToggle))
|
||||
return true;
|
||||
|
||||
area = CliDB.AreaTableStorage.LookupByKey(area.ParentAreaID);
|
||||
|
||||
@@ -782,13 +782,13 @@ namespace Game.Entities
|
||||
|
||||
if (!mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.IgnoreRestrictions))
|
||||
{
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Ground) && !mountFlags.HasAnyFlag(AreaMountFlags.GroundAllowed))
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Ground) && !mountFlags.HasFlag(AreaMountFlags.AllowGroundMounts))
|
||||
continue;
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Flying) && !mountFlags.HasAnyFlag(AreaMountFlags.FlyingAllowed))
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Flying) && !mountFlags.HasFlag(AreaMountFlags.AllowFlyingMounts))
|
||||
continue;
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Float) && !mountFlags.HasAnyFlag(AreaMountFlags.FloatAllowed))
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Float) && !mountFlags.HasFlag(AreaMountFlags.AllowSurfaceSwimmingMounts))
|
||||
continue;
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Underwater) && !mountFlags.HasAnyFlag(AreaMountFlags.UnderwaterAllowed))
|
||||
if (mountCapability.Flags.HasAnyFlag(MountCapabilityFlags.Underwater) && !mountFlags.HasFlag(AreaMountFlags.AllowUnderwaterSwimmingMounts))
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user