From 64b23b9de934739b39663460e9dddba3124451ad Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 28 Feb 2022 13:16:41 -0500 Subject: [PATCH] Core/Units: Named unit flags Port From (https://github.com/TrinityCore/TrinityCore/commit/b4952db4640ee3ec6a7df8545b5c582202f36405) --- Source/Framework/Constants/CreatureConst.cs | 23 ++++++++++++++------- Source/Game/Entities/Creature/Creature.cs | 6 +++--- Source/Game/Entities/Unit/Unit.Combat.cs | 2 +- Source/Game/Entities/Unit/Unit.Movement.cs | 4 ++-- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Source/Framework/Constants/CreatureConst.cs b/Source/Framework/Constants/CreatureConst.cs index 6395923ff..a3778f057 100644 --- a/Source/Framework/Constants/CreatureConst.cs +++ b/Source/Framework/Constants/CreatureConst.cs @@ -62,8 +62,8 @@ namespace Framework.Constants PetInCombat = 0x800, Pvp = 0x1000, Silenced = 0x2000, - CannotSwim = 0x4000, - Swimming = 0x8000, // shows swim animation in water + CantSwim = 0x4000, + CanSwim = 0x8000, // shows swim animation in water NonAttackable2 = 0x10000, Pacified = 0x20000, Stunned = 0x40000, @@ -85,11 +85,11 @@ namespace Framework.Constants public enum UnitFlags2 : uint { FeignDeath = 0x01, - Unk1 = 0x02, + HideBody = 0x02, IgnoreReputation = 0x04, ComprehendLang = 0x08, MirrorImage = 0x10, - InstantlyAppearModel = 0x20, + DontFadeIn = 0x20, ForceMove = 0x40, DisarmOffhand = 0x80, DisablePredStats = 0x100, @@ -98,12 +98,21 @@ namespace Framework.Constants RegeneratePower = 0x800, RestrictPartyInteraction = 0x1000, PreventSpellClick = 0x2000, - AllowEnemyInteract = 0x4000, - DisableTurn = 0x8000, + InteractWhileHostile = 0x4000, + CannotTurn = 0x8000, Unk2 = 0x10000, PlayDeathAnim = 0x20000, AllowCheatSpells = 0x40000, - NoActions = 0x800000 + TreatAsRaidUnitForHelpfulSpells = 0x100000, + LargeAoi = 0x00200000, + GiganticAoi = 0x400000, + NoActions = 0x800000, + AiWillOnlySwimIfTargetSwims = 0x1000000, + DontGenerateCombatLogWhenEngagedWithNpcs = 0x2000000, + UntargetableByClient = 0x4000000, + AttackerIgnoresMinimumRanges = 0x8000000, + UninteractibleIfHostile = 0x10000000, + InfiniteAoi = 0x40000000, } public enum UnitFlags3 : uint diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 7ee5a6c53..c6bfaf4fe 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -2994,7 +2994,7 @@ namespace Game.Entities } } - if (!HasUnitFlag2(UnitFlags2.DisableTurn)) + if (!HasUnitFlag2(UnitFlags2.CannotTurn)) { // Face the target - we need to do this before the unit state is modified for no-turn spells if (target) @@ -3041,7 +3041,7 @@ namespace Game.Entities if (IsPet()) // player pets do not use delay system { - if (!HasUnitFlag2(UnitFlags2.DisableTurn)) + if (!HasUnitFlag2(UnitFlags2.CannotTurn)) ReacquireSpellFocusTarget(); } else // don't allow re-target right away to prevent visual bugs @@ -3060,7 +3060,7 @@ namespace Game.Entities SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Target), _spellFocusInfo.Target); - if (!HasUnitFlag2(UnitFlags2.DisableTurn)) + if (!HasUnitFlag2(UnitFlags2.CannotTurn)) { if (!_spellFocusInfo.Target.IsEmpty()) { diff --git a/Source/Game/Entities/Unit/Unit.Combat.cs b/Source/Game/Entities/Unit/Unit.Combat.cs index 5b2940b7e..31a0c08cc 100644 --- a/Source/Game/Entities/Unit/Unit.Combat.cs +++ b/Source/Game/Entities/Unit/Unit.Combat.cs @@ -499,7 +499,7 @@ namespace Game.Entities if (attType != WeaponAttackType.BaseAttack && attType != WeaponAttackType.OffAttack) return; - if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.Possessed) && !HasUnitFlag2(UnitFlags2.DisableTurn)) + if (IsTypeId(TypeId.Unit) && !HasUnitFlag(UnitFlags.Possessed) && !HasUnitFlag2(UnitFlags2.CannotTurn)) SetFacingToObject(victim, false); // update client side facing to face the target (prevents visual glitches when casting untargeted spells) // melee attack spell casted at main hand attack only - no normal melee dmg dealt diff --git a/Source/Game/Entities/Unit/Unit.Movement.cs b/Source/Game/Entities/Unit/Unit.Movement.cs index 8530b0b4e..b53794ca9 100644 --- a/Source/Game/Entities/Unit/Unit.Movement.cs +++ b/Source/Game/Entities/Unit/Unit.Movement.cs @@ -52,7 +52,7 @@ namespace Game.Entities public virtual bool CanSwim() { // Mirror client behavior, if this method returns false then client will not use swimming animation and for players will apply gravity as if there was no water - if (HasUnitFlag(UnitFlags.CannotSwim)) + if (HasUnitFlag(UnitFlags.CantSwim)) return false; if (HasUnitFlag(UnitFlags.PlayerControlled)) // is player return true; @@ -61,7 +61,7 @@ namespace Game.Entities if (IsPet() && HasUnitFlag(UnitFlags.PetInCombat)) return true; - return HasUnitFlag(UnitFlags.Rename | UnitFlags.Swimming); + return HasUnitFlag(UnitFlags.Rename | UnitFlags.CanSwim); } public bool IsInWater() {