From f53c4cb009643bc435c7d142af6d0f78ec02ac0e Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 30 May 2022 15:57:56 -0400 Subject: [PATCH] Core/Misc: Rename SetXXXFlags updatefield functions to ReplaceAllXXXFlags Port From (https://github.com/TrinityCore/TrinityCore/commit/4eba9786708dd3b22d9053c1a14eac7e6d03242e) --- Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs | 4 +-- .../Game/AI/ScriptedAI/ScriptedFollowerAI.cs | 4 +-- Source/Game/AI/SmartScripts/SmartAI.cs | 4 +-- Source/Game/AI/SmartScripts/SmartScript.cs | 2 +- Source/Game/Chat/Commands/ModifyCommands.cs | 8 ++--- Source/Game/Chat/Commands/NPCCommands.cs | 4 +-- Source/Game/Chat/Commands/ResetCommands.cs | 4 +-- Source/Game/Entities/Corpse.cs | 9 ++--- Source/Game/Entities/Creature/Creature.cs | 36 +++++++++---------- Source/Game/Entities/GameObject/GameObject.cs | 10 +++--- Source/Game/Entities/Item/Item.cs | 8 ++--- Source/Game/Entities/Object/WorldObject.cs | 7 ++-- Source/Game/Entities/Pet.cs | 18 +++++----- Source/Game/Entities/Player/Player.DB.cs | 4 +-- Source/Game/Entities/Player/Player.cs | 14 ++++---- Source/Game/Entities/Transport.cs | 2 +- Source/Game/Entities/Unit/Unit.Pets.cs | 8 ++--- Source/Game/Entities/Unit/Unit.cs | 16 ++++----- Source/Game/Events/GameEventManager.cs | 4 +-- Source/Game/Handlers/ItemHandler.cs | 2 +- Source/Game/Handlers/SpellHandler.cs | 2 +- Source/Game/Maps/Map.cs | 4 +-- Source/Game/Spells/SpellEffects.cs | 2 +- 23 files changed, 89 insertions(+), 87 deletions(-) diff --git a/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs b/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs index bebe2e1b5..1070b3683 100644 --- a/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs +++ b/Source/Game/AI/ScriptedAI/ScriptedEscortAI.cs @@ -420,8 +420,8 @@ namespace Game.AI me.GetMotionMaster().Clear(MovementGeneratorPriority.Normal); //disable npcflags - me.SetNpcFlags(NPCFlags.None); - me.SetNpcFlags2(NPCFlags2.None); + me.ReplaceAllNpcFlags(NPCFlags.None); + me.ReplaceAllNpcFlags2(NPCFlags2.None); if (me.IsImmuneToNPC()) { _hasImmuneToNPCFlags = true; diff --git a/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs b/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs index 7d543444a..b6b99d804 100644 --- a/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs +++ b/Source/Game/AI/ScriptedAI/ScriptedFollowerAI.cs @@ -210,8 +210,8 @@ namespace Game.AI me.GetMotionMaster().Clear(MovementGeneratorPriority.Normal); me.PauseMovement(); - me.SetNpcFlags(NPCFlags.None); - me.SetNpcFlags2(NPCFlags2.None); + me.ReplaceAllNpcFlags(NPCFlags.None); + me.ReplaceAllNpcFlags2(NPCFlags2.None); AddFollowState(FollowState.Inprogress); diff --git a/Source/Game/AI/SmartScripts/SmartAI.cs b/Source/Game/AI/SmartScripts/SmartAI.cs index 15f4c35f6..a2d481f5e 100644 --- a/Source/Game/AI/SmartScripts/SmartAI.cs +++ b/Source/Game/AI/SmartScripts/SmartAI.cs @@ -114,7 +114,7 @@ namespace Game.AI if (invoker && invoker.IsPlayer()) { _escortNPCFlags = me.m_unitData.NpcFlags[0]; - me.SetNpcFlags(0); + me.ReplaceAllNpcFlags(0); } me.GetMotionMaster().MovePath(_path, _repeatWaypointPath); @@ -239,7 +239,7 @@ namespace Game.AI if (_escortNPCFlags != 0) { - me.SetNpcFlags((NPCFlags)_escortNPCFlags); + me.ReplaceAllNpcFlags((NPCFlags)_escortNPCFlags); _escortNPCFlags = 0; } diff --git a/Source/Game/AI/SmartScripts/SmartScript.cs b/Source/Game/AI/SmartScripts/SmartScript.cs index b41a0c963..582522df5 100644 --- a/Source/Game/AI/SmartScripts/SmartScript.cs +++ b/Source/Game/AI/SmartScripts/SmartScript.cs @@ -1582,7 +1582,7 @@ namespace Game.AI { foreach (var target in targets) if (IsUnit(target)) - target.ToUnit().SetNpcFlags((NPCFlags)e.Action.flag.flag); + target.ToUnit().ReplaceAllNpcFlags((NPCFlags)e.Action.flag.flag); break; } case SmartActions.AddNpcFlag: diff --git a/Source/Game/Chat/Commands/ModifyCommands.cs b/Source/Game/Chat/Commands/ModifyCommands.cs index d09cd8e94..292a286c3 100644 --- a/Source/Game/Chat/Commands/ModifyCommands.cs +++ b/Source/Game/Chat/Commands/ModifyCommands.cs @@ -147,10 +147,10 @@ namespace Game.Chat handler.SendSysMessage(CypherStrings.YouChangeFaction, target.GetGUID().ToString(), factionid, flag, npcflag, dyflag); target.SetFaction(factionid); - target.SetUnitFlags((UnitFlags)flag); - target.SetNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF)); - target.SetNpcFlags2((NPCFlags2)(npcflag >> 32)); - target.SetDynamicFlags((UnitDynFlags)dyflag); + target.ReplaceAllUnitFlags((UnitFlags)flag); + target.ReplaceAllNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF)); + target.ReplaceAllNpcFlags2((NPCFlags2)(npcflag >> 32)); + target.ReplaceAllDynamicFlags((UnitDynFlags)dyflag); return true; } diff --git a/Source/Game/Chat/Commands/NPCCommands.cs b/Source/Game/Chat/Commands/NPCCommands.cs index b77eb00c7..a76f45161 100644 --- a/Source/Game/Chat/Commands/NPCCommands.cs +++ b/Source/Game/Chat/Commands/NPCCommands.cs @@ -1131,8 +1131,8 @@ namespace Game.Chat return false; } - creature.SetNpcFlags(npcFlags); - creature.SetNpcFlags2(npcFlags2); + creature.ReplaceAllNpcFlags(npcFlags); + creature.ReplaceAllNpcFlags2(npcFlags2); PreparedStatement stmt = DB.World.GetPreparedStatement(WorldStatements.UPD_CREATURE_NPCFLAG); stmt.AddValue(0, (ulong)npcFlags | ((ulong)npcFlags2 << 32)); diff --git a/Source/Game/Chat/Commands/ResetCommands.cs b/Source/Game/Chat/Commands/ResetCommands.cs index d5525e537..68f9d9073 100644 --- a/Source/Game/Chat/Commands/ResetCommands.cs +++ b/Source/Game/Chat/Commands/ResetCommands.cs @@ -79,9 +79,9 @@ namespace Game.Chat if (player.GetShapeshiftForm() == ShapeShiftForm.None) player.InitDisplayIds(); - player.SetPvpFlags(UnitPVPStateFlags.PvP); + player.ReplaceAllPvpFlags(UnitPVPStateFlags.PvP); - player.SetUnitFlags(UnitFlags.PlayerControlled); + player.ReplaceAllUnitFlags(UnitFlags.PlayerControlled); //-1 is default value player.SetWatchedFactionIndex(0xFFFFFFFF); diff --git a/Source/Game/Entities/Corpse.cs b/Source/Game/Entities/Corpse.cs index 08c089910..67c7c1b07 100644 --- a/Source/Game/Entities/Corpse.cs +++ b/Source/Game/Entities/Corpse.cs @@ -186,8 +186,8 @@ namespace Game.Entities SetRace(field.Read(7)); SetClass(field.Read(8)); SetSex(field.Read(9)); - SetFlags((CorpseFlags)field.Read(10)); - SetCorpseDynamicFlags((CorpseDynFlags)field.Read(11)); + ReplaceAllFlags((CorpseFlags)field.Read(10)); + ReplaceAllCorpseDynamicFlags((CorpseDynFlags)field.Read(11)); SetOwnerGUID(ObjectGuid.Create(HighGuid.Player, field.Read(15))); SetFactionTemplate(CliDB.ChrRacesStorage.LookupByKey(m_corpseData.RaceID).FactionID); @@ -285,9 +285,10 @@ namespace Game.Entities base.ClearUpdateMask(remove); } + public CorpseDynFlags GetCorpseDynamicFlags() { return (CorpseDynFlags)(uint)m_corpseData.DynamicFlags; } public void AddCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); } public void RemoveCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); } - public void SetCorpseDynamicFlags(CorpseDynFlags dynamicFlags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); } + public void ReplaceAllCorpseDynamicFlags(CorpseDynFlags dynamicFlags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.DynamicFlags), (uint)dynamicFlags); } public override ObjectGuid GetOwnerGUID() { return m_corpseData.Owner; } public void SetOwnerGUID(ObjectGuid owner) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Owner), owner); } public void SetPartyGUID(ObjectGuid partyGuid) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.PartyGUID), partyGuid); } @@ -296,7 +297,7 @@ namespace Game.Entities public void SetRace(byte race) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.RaceID), race); } public void SetClass(byte classId) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Class), classId); } public void SetSex(byte sex) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Sex), sex); } - public void SetFlags(CorpseFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Flags), (uint)flags); } + public void ReplaceAllFlags(CorpseFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.Flags), (uint)flags); } public void SetFactionTemplate(int factionTemplate) { SetUpdateFieldValue(m_values.ModifyValue(m_corpseData).ModifyValue(m_corpseData.FactionTemplate), factionTemplate); } public override uint GetFaction() { return (uint)(int)m_corpseData.FactionTemplate; } public override void SetFaction(uint faction) { SetFactionTemplate((int)faction); } diff --git a/Source/Game/Entities/Creature/Creature.cs b/Source/Game/Entities/Creature/Creature.cs index 028924ab5..7bcd706bd 100644 --- a/Source/Game/Entities/Creature/Creature.cs +++ b/Source/Game/Entities/Creature/Creature.cs @@ -349,19 +349,19 @@ namespace Game.Entities if (cInfo.FlagsExtra.HasAnyFlag(CreatureFlagsExtra.Worldevent)) npcFlags |= Global.GameEventMgr.GetNPCFlag(this); - SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF)); - SetNpcFlags2((NPCFlags2)(npcFlags >> 32)); + ReplaceAllNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF)); + ReplaceAllNpcFlags2((NPCFlags2)(npcFlags >> 32)); // if unit is in combat, keep this flag unitFlags &= ~(uint)UnitFlags.InCombat; if (IsInCombat()) unitFlags |= (uint)UnitFlags.InCombat; - SetUnitFlags((UnitFlags)unitFlags); - SetUnitFlags2((UnitFlags2)unitFlags2); - SetUnitFlags3((UnitFlags3)unitFlags3); + ReplaceAllUnitFlags((UnitFlags)unitFlags); + ReplaceAllUnitFlags2((UnitFlags2)unitFlags2); + ReplaceAllUnitFlags3((UnitFlags3)unitFlags3); - SetDynamicFlags((UnitDynFlags)dynamicFlags); + ReplaceAllDynamicFlags((UnitDynFlags)dynamicFlags); SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.StateAnimID), Global.DB2Mgr.GetEmptyAnimStateID()); @@ -1120,7 +1120,7 @@ namespace Game.Entities ClearUnitState(UnitState.AttackPlayer); if (IsAlive() && HasDynamicFlag(UnitDynFlags.Tapped)) - SetDynamicFlags((UnitDynFlags)GetCreatureTemplate().DynamicFlags); + ReplaceAllDynamicFlags((UnitDynFlags)GetCreatureTemplate().DynamicFlags); if (IsPet() || IsGuardian()) // update pets' speed for catchup OOC speed { @@ -1863,8 +1863,8 @@ namespace Game.Entities DoNotReacquireSpellFocusTarget(); // cancel delayed re-target SetTarget(ObjectGuid.Empty); // drop target - dead mobs shouldn't ever target things - SetNpcFlags(NPCFlags.None); - SetNpcFlags2(NPCFlags2.None); + ReplaceAllNpcFlags(NPCFlags.None); + ReplaceAllNpcFlags2(NPCFlags2.None); SetMountDisplayId(0); // if creature is mounted on a virtual mount, remove it at death @@ -1911,13 +1911,13 @@ namespace Game.Entities if (cInfo.FlagsExtra.HasAnyFlag(CreatureFlagsExtra.Worldevent)) npcFlags |= Global.GameEventMgr.GetNPCFlag(this); - SetNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF)); - SetNpcFlags2((NPCFlags2)(npcFlags >> 32)); + ReplaceAllNpcFlags((NPCFlags)(npcFlags & 0xFFFFFFFF)); + ReplaceAllNpcFlags2((NPCFlags2)(npcFlags >> 32)); - SetUnitFlags((UnitFlags)unitFlags); - SetUnitFlags2((UnitFlags2)unitFlags2); - SetUnitFlags3((UnitFlags3)unitFlags3); - SetDynamicFlags((UnitDynFlags)dynamicFlags); + ReplaceAllUnitFlags((UnitFlags)unitFlags); + ReplaceAllUnitFlags2((UnitFlags2)unitFlags2); + ReplaceAllUnitFlags3((UnitFlags3)unitFlags3); + ReplaceAllDynamicFlags((UnitDynFlags)dynamicFlags); RemoveUnitFlag(UnitFlags.InCombat); @@ -2408,7 +2408,7 @@ namespace Game.Entities // 3 StandMiscFlags SetStandState((UnitStandStateType)(cainfo.bytes1 & 0xFF)); - SetVisFlags((UnitVisFlags)((cainfo.bytes1 >> 16) & 0xFF)); + ReplaceAllVisFlags((UnitVisFlags)((cainfo.bytes1 >> 16) & 0xFF)); SetAnimTier((AnimTier)((cainfo.bytes1 >> 24) & 0xFF), false); //! Suspected correlation between UNIT_FIELD_BYTES_1, offset 3, value 0x2: @@ -2428,8 +2428,8 @@ namespace Game.Entities // 3 ShapeshiftForm Must be determined/set by shapeshift spell/aura SetSheath((SheathState)(cainfo.bytes2 & 0xFF)); - SetPvpFlags(UnitPVPStateFlags.None); - SetPetFlags(UnitPetFlags.None); + ReplaceAllPvpFlags(UnitPVPStateFlags.None); + ReplaceAllPetFlags(UnitPetFlags.None); SetShapeshiftForm(ShapeShiftForm.None); } diff --git a/Source/Game/Entities/GameObject/GameObject.cs b/Source/Game/Entities/GameObject/GameObject.cs index 2a4d5f188..67cb287e3 100644 --- a/Source/Game/Entities/GameObject/GameObject.cs +++ b/Source/Game/Entities/GameObject/GameObject.cs @@ -265,7 +265,7 @@ namespace Game.Entities if (goOverride != null) { SetFaction(goOverride.Faction); - SetFlags(goOverride.Flags); + ReplaceAllFlags(goOverride.Flags); } if (m_goTemplateAddon != null) @@ -529,7 +529,7 @@ namespace Game.Entities if (caster != null && caster.IsTypeId(TypeId.Player)) { SetGoState(GameObjectState.Active); - SetFlags(GameObjectFlags.NoDespawn); + ReplaceAllFlags(GameObjectFlags.NoDespawn); UpdateData udata = new(caster.GetMapId()); UpdateObject packet; @@ -903,7 +903,7 @@ namespace Game.Entities //reset flags GameObjectOverride goOverride = GetGameObjectOverride(); if (goOverride != null) - SetFlags(goOverride.Flags); + ReplaceAllFlags(goOverride.Flags); } if (m_respawnDelayTime == 0) @@ -1003,7 +1003,7 @@ namespace Game.Entities SetGoState(GameObjectState.Ready); GameObjectOverride goOverride = GetGameObjectOverride(); if (goOverride != null) - SetFlags(goOverride.Flags); + ReplaceAllFlags(goOverride.Flags); uint poolid = GetSpawnId() != 0 ? Global.PoolMgr.IsPartOfAPool(GetSpawnId()) : 0; if (poolid != 0) @@ -3309,7 +3309,7 @@ namespace Game.Entities public bool HasFlag(GameObjectFlags flags) { return (m_gameObjectData.Flags & (uint)flags) != 0; } public void AddFlag(GameObjectFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); } public void RemoveFlag(GameObjectFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); } - public void SetFlags(GameObjectFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); } + public void ReplaceAllFlags(GameObjectFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Flags), (uint)flags); } public void SetLevel(uint level) { SetUpdateFieldValue(m_values.ModifyValue(m_gameObjectData).ModifyValue(m_gameObjectData.Level), level); } public GameObjectTypes GetGoType() { return (GameObjectTypes)(sbyte)m_gameObjectData.TypeID; } diff --git a/Source/Game/Entities/Item/Item.cs b/Source/Game/Entities/Item/Item.cs index 70af94ce1..d363aa92c 100644 --- a/Source/Game/Entities/Item/Item.cs +++ b/Source/Game/Entities/Item/Item.cs @@ -444,7 +444,7 @@ namespace Game.Entities need_save = true; } - SetItemFlags((ItemFieldFlags)itemFlags); + ReplaceAllItemFlags((ItemFieldFlags)itemFlags); uint durability = fields.Read(10); SetDurability(durability); @@ -1237,7 +1237,7 @@ namespace Game.Entities newItem.SetCreator(GetCreator()); newItem.SetGiftCreator(GetGiftCreator()); - newItem.SetItemFlags((ItemFieldFlags)(m_itemData.DynamicFlags & ~(uint)(ItemFieldFlags.Refundable | ItemFieldFlags.BopTradeable))); + newItem.ReplaceAllItemFlags((ItemFieldFlags)(m_itemData.DynamicFlags & ~(uint)(ItemFieldFlags.Refundable | ItemFieldFlags.BopTradeable))); newItem.SetExpiration(m_itemData.Expiration); // player CAN be NULL in which case we must not update random properties because that accesses player's item update queue if (player != null) @@ -2574,11 +2574,11 @@ namespace Game.Entities public bool HasItemFlag(ItemFieldFlags flag) { return (m_itemData.DynamicFlags & (uint)flag) != 0; } public void AddItemFlag(ItemFieldFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } public void RemoveItemFlag(ItemFieldFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } - public void SetItemFlags(ItemFieldFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } + public void ReplaceAllItemFlags(ItemFieldFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags), (uint)flags); } public bool HasItemFlag2(ItemFieldFlags2 flag) { return (m_itemData.DynamicFlags2 & (uint)flag) != 0; } public void AddItemFlag2(ItemFieldFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } public void RemoveItemFlag2(ItemFieldFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } - public void SetItemFlags2(ItemFieldFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } + public void ReplaceAllItemFlags2(ItemFieldFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_itemData).ModifyValue(m_itemData.DynamicFlags2), (uint)flags); } public Bag ToBag() { return IsBag() ? this as Bag : null; } public AzeriteItem ToAzeriteItem() { return IsAzeriteItem() ? this as AzeriteItem : null; } diff --git a/Source/Game/Entities/Object/WorldObject.cs b/Source/Game/Entities/Object/WorldObject.cs index 0b89e3c42..c605b5a50 100644 --- a/Source/Game/Entities/Object/WorldObject.cs +++ b/Source/Game/Entities/Object/WorldObject.cs @@ -1456,8 +1456,9 @@ namespace Game.Entities Map map = GetMap(); if (map != null) { - if (map.IsDungeon()) - m_zoneScript = ((InstanceMap)map).GetInstanceScript(); + InstanceMap instanceMap = map.ToInstanceMap(); + if (instanceMap != null) + m_zoneScript = (ZoneScript)instanceMap.GetInstanceScript(); else if (!map.IsBattlegroundOrArena()) { BattleField bf = Global.BattleFieldMgr.GetBattlefieldToZoneId(GetZoneId()); @@ -2938,7 +2939,7 @@ namespace Game.Entities public bool HasDynamicFlag(UnitDynFlags flag) { return (m_objectData.DynamicFlags & (uint)flag) != 0; } public void AddDynamicFlag(UnitDynFlags flag) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags), (uint)flag); } public void RemoveDynamicFlag(UnitDynFlags flag) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags), (uint)flag); } - public void SetDynamicFlags(UnitDynFlags flag) { SetUpdateFieldValue(m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags), (uint)flag); } + public void ReplaceAllDynamicFlags(UnitDynFlags flag) { SetUpdateFieldValue(m_values.ModifyValue(m_objectData).ModifyValue(m_objectData.DynamicFlags), (uint)flag); } public TypeId GetTypeId() { return ObjectTypeId; } public bool IsTypeId(TypeId typeId) { return GetTypeId() == typeId; } diff --git a/Source/Game/Entities/Pet.cs b/Source/Game/Entities/Pet.cs index dd4f4c4e2..5e7866215 100644 --- a/Source/Game/Entities/Pet.cs +++ b/Source/Game/Entities/Pet.cs @@ -220,8 +220,8 @@ namespace Game.Entities SetDisplayId(petInfo.DisplayId); SetNativeDisplayId(petInfo.DisplayId); uint petlevel = petInfo.Level; - SetNpcFlags(NPCFlags.None); - SetNpcFlags2(NPCFlags2.None); + ReplaceAllNpcFlags(NPCFlags.None); + ReplaceAllNpcFlags2(NPCFlags2.None); SetName(petInfo.Name); switch (GetPetType()) @@ -230,14 +230,14 @@ namespace Game.Entities petlevel = owner.GetLevel(); SetClass(Class.Mage); - SetUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet dismiss, cancel) + ReplaceAllUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet dismiss, cancel) break; case PetType.Hunter: SetClass(Class.Warrior); SetGender(Gender.None); SetSheath(SheathState.Melee); - SetPetFlags(petInfo.WasRenamed ? UnitPetFlags.CanBeAbandoned : UnitPetFlags.CanBeRenamed | UnitPetFlags.CanBeAbandoned); - SetUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet abandon, cancel) + ReplaceAllPetFlags(petInfo.WasRenamed ? UnitPetFlags.CanBeAbandoned : UnitPetFlags.CanBeRenamed | UnitPetFlags.CanBeAbandoned); + ReplaceAllUnitFlags(UnitFlags.PlayerControlled); // this enables popup window (pet abandon, cancel) break; default: if (!IsPetGhoul()) @@ -565,7 +565,7 @@ namespace Game.Entities if (GetPetType() == PetType.Hunter) { // pet corpse non lootable and non skinnable - SetDynamicFlags(UnitDynFlags.None); + ReplaceAllDynamicFlags(UnitDynFlags.None); RemoveUnitFlag(UnitFlags.Skinnable); } } @@ -771,8 +771,8 @@ namespace Game.Entities SetPetNameTimestamp(0); SetPetExperience(0); SetPetNextLevelExperience((uint)(Global.ObjectMgr.GetXPForLevel(GetLevel() + 1) * PetXPFactor)); - SetNpcFlags(NPCFlags.None); - SetNpcFlags2(NPCFlags2.None); + ReplaceAllNpcFlags(NPCFlags.None); + ReplaceAllNpcFlags2(NPCFlags2.None); if (cinfo.CreatureType == CreatureType.Beast) { @@ -780,7 +780,7 @@ namespace Game.Entities SetGender(Gender.None); SetPowerType(PowerType.Focus); SetSheath(SheathState.Melee); - SetPetFlags(UnitPetFlags.CanBeRenamed | UnitPetFlags.CanBeAbandoned); + ReplaceAllPetFlags(UnitPetFlags.CanBeRenamed | UnitPetFlags.CanBeAbandoned); } return true; diff --git a/Source/Game/Entities/Player/Player.DB.cs b/Source/Game/Entities/Player/Player.DB.cs index 5f714a657..38678c168 100644 --- a/Source/Game/Entities/Player/Player.DB.cs +++ b/Source/Game/Entities/Player/Player.DB.cs @@ -2733,8 +2733,8 @@ namespace Game.Entities SetBankBagSlotCount(bankSlots); SetNativeGender(gender); SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.Inebriation), drunk); - SetPlayerFlags(playerFlags); - SetPlayerFlagsEx(playerFlagsEx); + ReplaceAllPlayerFlags(playerFlags); + ReplaceAllPlayerFlagsEx(playerFlagsEx); SetWatchedFactionIndex(watchedFaction); atLoginFlags = (AtLoginFlags)at_login; diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 317a98b36..a4cdcf0c6 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -4456,7 +4456,7 @@ namespace Game.Entities SetDeathState(DeathState.Corpse); - SetDynamicFlags(UnitDynFlags.None); + ReplaceAllDynamicFlags(UnitDynFlags.None); if (!CliDB.MapStorage.LookupByKey(GetMapId()).Instanceable() && !HasAuraType(AuraType.PreventResurrection)) AddPlayerLocalFlag(PlayerLocalFlags.ReleaseTimer); else @@ -4512,7 +4512,7 @@ namespace Game.Entities corpse.SetSex((byte)GetNativeGender()); corpse.SetClass((byte)GetClass()); corpse.SetCustomizations(m_playerData.Customizations); - corpse.SetFlags(flags); + corpse.ReplaceAllFlags(flags); corpse.SetDisplayId(GetNativeDisplayId()); corpse.SetFactionTemplate(CliDB.ChrRacesStorage.LookupByKey(GetRace()).FactionID); @@ -4761,8 +4761,8 @@ namespace Game.Entities pet.SetCreatorGUID(GetGUID()); pet.SetFaction(GetFaction()); - pet.SetNpcFlags(NPCFlags.None); - pet.SetNpcFlags2(NPCFlags2.None); + pet.ReplaceAllNpcFlags(NPCFlags.None); + pet.ReplaceAllNpcFlags2(NPCFlags2.None); pet.InitStatsForLevel(GetLevel()); SetMinion(pet, true); @@ -7598,12 +7598,12 @@ namespace Game.Entities public bool HasPlayerFlag(PlayerFlags flags) { return (m_playerData.PlayerFlags & (uint)flags) != 0; } public void AddPlayerFlag(PlayerFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlags), (uint)flags); } public void RemovePlayerFlag(PlayerFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlags), (uint)flags); } - public void SetPlayerFlags(PlayerFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlags), (uint)flags); } + public void ReplaceAllPlayerFlags(PlayerFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlags), (uint)flags); } public bool HasPlayerFlagEx(PlayerFlagsEx flags) { return (m_playerData.PlayerFlagsEx & (uint)flags) != 0; } public void AddPlayerFlagEx(PlayerFlagsEx flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlagsEx), (uint)flags); } public void RemovePlayerFlagEx(PlayerFlagsEx flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlagsEx), (uint)flags); } - public void SetPlayerFlagsEx(PlayerFlagsEx flags) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlagsEx), (uint)flags); } + public void ReplaceAllPlayerFlagsEx(PlayerFlagsEx flags) { SetUpdateFieldValue(m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.PlayerFlagsEx), (uint)flags); } public void SetAverageItemLevelTotal(float newItemLevel) { SetUpdateFieldValue(ref m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.AvgItemLevel, 0), newItemLevel); } public void SetAverageItemLevelEquipped(float newItemLevel) { SetUpdateFieldValue(ref m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.AvgItemLevel, 1), newItemLevel); } @@ -7692,7 +7692,7 @@ namespace Game.Entities public bool HasPlayerLocalFlag(PlayerLocalFlags flags) { return (m_activePlayerData.LocalFlags & (int)flags) != 0; } public void AddPlayerLocalFlag(PlayerLocalFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (uint)flags); } public void RemovePlayerLocalFlag(PlayerLocalFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (uint)flags); } - public void SetPlayerLocalFlags(PlayerLocalFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (uint)flags); } + public void ReplaceAllPlayerLocalFlags(PlayerLocalFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.LocalFlags), (uint)flags); } public byte GetNumRespecs() { return m_activePlayerData.NumRespecs; } public void SetNumRespecs(byte numRespecs) { SetUpdateFieldValue(m_values.ModifyValue(m_activePlayerData).ModifyValue(m_activePlayerData.NumRespecs), numRespecs); } diff --git a/Source/Game/Entities/Transport.cs b/Source/Game/Entities/Transport.cs index 6560f91ac..7b67a4363 100644 --- a/Source/Game/Entities/Transport.cs +++ b/Source/Game/Entities/Transport.cs @@ -119,7 +119,7 @@ namespace Game.Entities if (goOverride != null) { SetFaction(goOverride.Faction); - SetFlags(goOverride.Flags); + ReplaceAllFlags(goOverride.Flags); } m_goValue.Transport.PathProgress = 0; diff --git a/Source/Game/Entities/Unit/Unit.Pets.cs b/Source/Game/Entities/Unit/Unit.Pets.cs index c50ffb543..f2b06827b 100644 --- a/Source/Game/Entities/Unit/Unit.Pets.cs +++ b/Source/Game/Entities/Unit/Unit.Pets.cs @@ -181,7 +181,7 @@ namespace Game.Entities } // PvP, FFAPvP - minion.SetPvpFlags(GetPvpFlags()); + minion.ReplaceAllPvpFlags(GetPvpFlags()); // FIXME: hack, speed must be set only at follow if (IsTypeId(TypeId.Player) && minion.IsPet()) @@ -589,7 +589,7 @@ namespace Game.Entities charm.m_ControlledByPlayer = false; // PvP, FFAPvP - charm.SetPvpFlags(GetPvpFlags()); + charm.ReplaceAllPvpFlags(GetPvpFlags()); Cypher.Assert(charm.GetCharmerGUID().IsEmpty(), $"Unit {charm.GetEntry()} is being charmed, but it already has a charmer {charm.GetCharmerGUID()}"); charm.SetUpdateFieldValue(charm.m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.CharmedBy), GetGUID()); @@ -628,13 +628,13 @@ namespace Game.Entities { charm.m_ControlledByPlayer = true; charm.AddUnitFlag(UnitFlags.PlayerControlled); - charm.SetPvpFlags(player.GetPvpFlags()); + charm.ReplaceAllPvpFlags(player.GetPvpFlags()); } else { charm.m_ControlledByPlayer = false; charm.RemoveUnitFlag(UnitFlags.PlayerControlled); - charm.SetPvpFlags(UnitPVPStateFlags.None); + charm.ReplaceAllPvpFlags(UnitPVPStateFlags.None); } if (charm.IsWalking() != _isWalkingBeforeCharm) diff --git a/Source/Game/Entities/Unit/Unit.cs b/Source/Game/Entities/Unit/Unit.cs index 3ff8a9f54..858ed4a4f 100644 --- a/Source/Game/Entities/Unit/Unit.cs +++ b/Source/Game/Entities/Unit/Unit.cs @@ -803,11 +803,11 @@ namespace Game.Entities public bool HasNpcFlag(NPCFlags flags) { return (m_unitData.NpcFlags[0] & (uint)flags) != 0; } public void AddNpcFlag(NPCFlags flags) { SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); } public void RemoveNpcFlag(NPCFlags flags) { RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); } - public void SetNpcFlags(NPCFlags flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); } + public void ReplaceAllNpcFlags(NPCFlags flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 0), (uint)flags); } public bool HasNpcFlag2(NPCFlags2 flags) { return (m_unitData.NpcFlags[1] & (uint)flags) != 0; } public void AddNpcFlag2(NPCFlags2 flags) { SetUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); } public void RemoveNpcFlag2(NPCFlags2 flags) { RemoveUpdateFieldFlagValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); } - public void SetNpcFlags2(NPCFlags2 flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); } + public void ReplaceAllNpcFlags2(NPCFlags2 flags) { SetUpdateFieldValue(ref m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.NpcFlags, 1), (uint)flags); } public bool IsVendor() { return HasNpcFlag(NPCFlags.Vendor); } public bool IsTrainer() { return HasNpcFlag(NPCFlags.Trainer); } @@ -1984,15 +1984,15 @@ namespace Game.Entities public bool HasUnitFlag(UnitFlags flags) { return (m_unitData.Flags & (uint)flags) != 0; } public void AddUnitFlag(UnitFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags), (uint)flags); } public void RemoveUnitFlag(UnitFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags), (uint)flags); } - public void SetUnitFlags(UnitFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags), (uint)flags); } + public void ReplaceAllUnitFlags(UnitFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags), (uint)flags); } public bool HasUnitFlag2(UnitFlags2 flags) { return (m_unitData.Flags2 & (uint)flags) != 0; } public void AddUnitFlag2(UnitFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags2), (uint)flags); } public void RemoveUnitFlag2(UnitFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags2), (uint)flags); } - public void SetUnitFlags2(UnitFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags2), (uint)flags); } + public void ReplaceAllUnitFlags2(UnitFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags2), (uint)flags); } public bool HasUnitFlag3(UnitFlags3 flags) { return (m_unitData.Flags3 & (uint)flags) != 0; } public void AddUnitFlag3(UnitFlags3 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags3), (uint)flags); } public void RemoveUnitFlag3(UnitFlags3 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags3), (uint)flags); } - public void SetUnitFlags3(UnitFlags3 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags3), (uint)flags); } + public void ReplaceAllUnitFlags3(UnitFlags3 flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.Flags3), (uint)flags); } public void SetCreatedBySpell(uint spellId) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.CreatedBySpell), spellId); } @@ -2005,7 +2005,7 @@ namespace Game.Entities public bool HasPvpFlag(UnitPVPStateFlags flags) { return (m_unitData.PvpFlags & (uint)flags) != 0; } public void AddPvpFlag(UnitPVPStateFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PvpFlags), (byte)flags); } public void RemovePvpFlag(UnitPVPStateFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PvpFlags), (byte)flags); } - public void SetPvpFlags(UnitPVPStateFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PvpFlags), (byte)flags); } + public void ReplaceAllPvpFlags(UnitPVPStateFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PvpFlags), (byte)flags); } public bool IsInSanctuary() { return HasPvpFlag(UnitPVPStateFlags.Sanctuary); } public bool IsPvP() { return HasPvpFlag(UnitPVPStateFlags.PvP); } public bool IsFFAPvP() { return HasPvpFlag(UnitPVPStateFlags.FFAPvp); } @@ -2017,7 +2017,7 @@ namespace Game.Entities public bool HasPetFlag(UnitPetFlags flags) { return (m_unitData.PetFlags & (byte)flags) != 0; } public void AddPetFlag(UnitPetFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetFlags), (byte)flags); } public void RemovePetFlag(UnitPetFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetFlags), (byte)flags); } - public void SetPetFlags(UnitPetFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetFlags), (byte)flags); } + public void ReplaceAllPetFlags(UnitPetFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetFlags), (byte)flags); } public void SetPetNumberForClient(uint petNumber) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetNumber), petNumber); } public void SetPetNameTimestamp(uint timestamp) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.PetNameTimestamp), timestamp); } @@ -2165,7 +2165,7 @@ namespace Game.Entities public UnitStandStateType GetStandState() { return (UnitStandStateType)(byte)m_unitData.StandState; } public void AddVisFlags(UnitVisFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.VisFlags), (byte)flags); } public void RemoveVisFlags(UnitVisFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.VisFlags), (byte)flags); } - public void SetVisFlags(UnitVisFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.VisFlags), (byte)flags); } + public void ReplaceAllVisFlags(UnitVisFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(m_unitData).ModifyValue(m_unitData.VisFlags), (byte)flags); } public bool IsSitState() { diff --git a/Source/Game/Events/GameEventManager.cs b/Source/Game/Events/GameEventManager.cs index 62f8749d6..ba3a89f7c 100644 --- a/Source/Game/Events/GameEventManager.cs +++ b/Source/Game/Events/GameEventManager.cs @@ -1141,8 +1141,8 @@ namespace Game if (creatureTemplate != null) npcflag |= (ulong)creatureTemplate.Npcflag; - creature.SetNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF)); - creature.SetNpcFlags2((NPCFlags2)(npcflag >> 32)); + creature.ReplaceAllNpcFlags((NPCFlags)(npcflag & 0xFFFFFFFF)); + creature.ReplaceAllNpcFlags2((NPCFlags2)(npcflag >> 32)); // reset gossip options, since the flag change might have added / removed some //cr.ResetGossipOptions(); } diff --git a/Source/Game/Handlers/ItemHandler.cs b/Source/Game/Handlers/ItemHandler.cs index 814c1b574..228bbb18e 100644 --- a/Source/Game/Handlers/ItemHandler.cs +++ b/Source/Game/Handlers/ItemHandler.cs @@ -757,7 +757,7 @@ namespace Game } item.SetGiftCreator(GetPlayer().GetGUID()); - item.SetItemFlags(ItemFieldFlags.Wrapped); + item.ReplaceAllItemFlags(ItemFieldFlags.Wrapped); item.SetState(ItemUpdateState.Changed, GetPlayer()); if (item.GetState() == ItemUpdateState.New) // save new item, to have alway for `character_gifts` record in `item_instance` diff --git a/Source/Game/Handlers/SpellHandler.cs b/Source/Game/Handlers/SpellHandler.cs index f98d7eacf..91693f1f7 100644 --- a/Source/Game/Handlers/SpellHandler.cs +++ b/Source/Game/Handlers/SpellHandler.cs @@ -223,7 +223,7 @@ namespace Game item.SetGiftCreator(ObjectGuid.Empty); item.SetEntry(entry); - item.SetItemFlags((ItemFieldFlags)flags); + item.ReplaceAllItemFlags((ItemFieldFlags)flags); item.SetMaxDurability(item.GetTemplate().MaxDurability); item.SetState(ItemUpdateState.Changed, GetPlayer()); diff --git a/Source/Game/Maps/Map.cs b/Source/Game/Maps/Map.cs index 0c126f4c4..786acf335 100644 --- a/Source/Game/Maps/Map.cs +++ b/Source/Game/Maps/Map.cs @@ -3392,7 +3392,7 @@ namespace Game.Maps bones = new Corpse(); bones.Create(corpse.GetGUID().GetCounter(), this); - bones.SetCorpseDynamicFlags((CorpseDynFlags)(byte)corpse.m_corpseData.DynamicFlags); + bones.ReplaceAllCorpseDynamicFlags((CorpseDynFlags)(byte)corpse.m_corpseData.DynamicFlags); bones.SetOwnerGUID(corpse.m_corpseData.Owner); bones.SetPartyGUID(corpse.m_corpseData.PartyGUID); bones.SetGuildGUID(corpse.m_corpseData.GuildGUID); @@ -3401,7 +3401,7 @@ namespace Game.Maps bones.SetSex(corpse.m_corpseData.Sex); bones.SetClass(corpse.m_corpseData.Class); bones.SetCustomizations(corpse.m_corpseData.Customizations); - bones.SetFlags((CorpseFlags)(corpse.m_corpseData.Flags | (uint)CorpseFlags.Bones)); + bones.ReplaceAllFlags((CorpseFlags)(corpse.m_corpseData.Flags | (uint)CorpseFlags.Bones)); bones.SetFactionTemplate(corpse.m_corpseData.FactionTemplate); for (int i = 0; i < EquipmentSlot.End; ++i) bones.SetItem((uint)i, corpse.m_corpseData.Items[i]); diff --git a/Source/Game/Spells/SpellEffects.cs b/Source/Game/Spells/SpellEffects.cs index 18558dc79..9305ab492 100644 --- a/Source/Game/Spells/SpellEffects.cs +++ b/Source/Game/Spells/SpellEffects.cs @@ -3954,7 +3954,7 @@ namespace Game.Spells pet.Relocate(x, y, z, player.GetOrientation()); // This is needed so SaveStayPosition() will get the proper coords. } - pet.SetDynamicFlags(UnitDynFlags.None); + pet.ReplaceAllDynamicFlags(UnitDynFlags.None); pet.RemoveUnitFlag(UnitFlags.Skinnable); pet.SetDeathState(DeathState.Alive); pet.ClearUnitState(UnitState.AllErasable);