aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2022-03-27 18:14:47 +0200
committerShauren <shauren.trinity@gmail.com>2022-03-27 18:14:47 +0200
commitb47185cabfbdeeaf492bf2303635db07ce703785 (patch)
treea162947c7357e964ef991471fe5a40b44f6bbbcf /src/server/game
parent4eba9786708dd3b22d9053c1a14eac7e6d03242e (diff)
Core/Misc: Rename AddXXXFlag updatefield functions to SetXXXFlag
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/AI/CoreAI/PetAI.cpp2
-rw-r--r--src/server/game/AI/CreatureAI.cpp4
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp12
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp6
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp2
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp8
-rw-r--r--src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp6
-rw-r--r--src/server/game/Combat/CombatManager.cpp2
-rw-r--r--src/server/game/Entities/Corpse/Corpse.h2
-rw-r--r--src/server/game/Entities/Creature/Creature.cpp10
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp24
-rw-r--r--src/server/game/Entities/GameObject/GameObject.h2
-rw-r--r--src/server/game/Entities/Item/Item.cpp4
-rw-r--r--src/server/game/Entities/Item/Item.h6
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h4
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Object/Object.h2
-rw-r--r--src/server/game/Entities/Pet/Pet.cpp6
-rw-r--r--src/server/game/Entities/Player/Player.cpp74
-rw-r--r--src/server/game/Entities/Player/Player.h20
-rw-r--r--src/server/game/Entities/Player/RestMgr.cpp2
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp50
-rw-r--r--src/server/game/Entities/Unit/Unit.h22
-rw-r--r--src/server/game/Entities/Unit/UnitDefines.h15
-rw-r--r--src/server/game/Entities/Vehicle/Vehicle.cpp4
-rw-r--r--src/server/game/Groups/Group.cpp4
-rw-r--r--src/server/game/Handlers/AzeriteHandler.cpp2
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp2
-rw-r--r--src/server/game/Handlers/GuildHandler.cpp2
-rw-r--r--src/server/game/Handlers/MailHandler.cpp2
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp12
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp2
-rw-r--r--src/server/game/Handlers/VoidStorageHandler.cpp2
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h5
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp2
-rw-r--r--src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp2
-rw-r--r--src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp4
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp60
-rw-r--r--src/server/game/Spells/SpellEffects.cpp8
39 files changed, 217 insertions, 185 deletions
diff --git a/src/server/game/AI/CoreAI/PetAI.cpp b/src/server/game/AI/CoreAI/PetAI.cpp
index 9f4dfb4c9f3..3479e4c55a9 100644
--- a/src/server/game/AI/CoreAI/PetAI.cpp
+++ b/src/server/game/AI/CoreAI/PetAI.cpp
@@ -412,7 +412,7 @@ void PetAI::DoAttack(Unit* target, bool chase)
if (me->Attack(target, true))
{
- me->AddUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it
+ me->SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT); // on player pets, this flag indicates we're actively going after a target - that's what we're doing, so set it
// Play sound to let the player know the pet is attacking something it picked on its own
if (me->HasReactState(REACT_AGGRESSIVE) && !me->GetCharmInfo()->IsCommandAttack())
me->SendPetAIReaction(me->GetGUID());
diff --git a/src/server/game/AI/CreatureAI.cpp b/src/server/game/AI/CreatureAI.cpp
index 9222084a5d8..4d5be9811b9 100644
--- a/src/server/game/AI/CreatureAI.cpp
+++ b/src/server/game/AI/CreatureAI.cpp
@@ -394,10 +394,10 @@ int32 CreatureAI::VisualizeBoundary(Seconds duration, Unit* owner, bool fill) co
if (TempSummon* point = owner->SummonCreature(BOUNDARY_VISUALIZE_CREATURE, Position(startPosition.GetPositionX() + front.first * BOUNDARY_VISUALIZE_STEP_SIZE, startPosition.GetPositionY() + front.second * BOUNDARY_VISUALIZE_STEP_SIZE, spawnZ), TEMPSUMMON_TIMED_DESPAWN, duration))
{
point->SetObjectScale(BOUNDARY_VISUALIZE_CREATURE_SCALE);
- point->AddUnitFlag(UNIT_FLAG_STUNNED);
+ point->SetUnitFlag(UNIT_FLAG_STUNNED);
point->SetImmuneToAll(true);
if (!hasOutOfBoundsNeighbor)
- point->AddUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ point->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index b28edb29ef0..9d1b5c98651 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -1652,7 +1652,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
{
for (WorldObject* target : targets)
if (IsCreature(target))
- target->ToUnit()->AddNpcFlag(NPCFlags(e.action.flag.flag));
+ target->ToUnit()->SetNpcFlag(NPCFlags(e.action.flag.flag));
break;
}
case SMART_ACTION_REMOVE_NPC_FLAG:
@@ -1805,7 +1805,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
// pet talent points
break;
case 2:
- target->ToUnit()->AddVisFlags(UnitVisFlags(e.action.setunitByte.byte1));
+ target->ToUnit()->SetVisFlag(UnitVisFlags(e.action.setunitByte.byte1));
break;
case 3:
target->ToUnit()->SetAnimTier(AnimTier(e.action.setunitByte.byte1));
@@ -1828,7 +1828,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
// pet talent points
break;
case 2:
- target->ToUnit()->RemoveVisFlags(UnitVisFlags(e.action.setunitByte.byte1));
+ target->ToUnit()->RemoveVisFlag(UnitVisFlags(e.action.setunitByte.byte1));
break;
case 3:
target->ToUnit()->SetAnimTier(AnimTier::Ground);
@@ -2369,7 +2369,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setImmunePC.immunePC)
- target->ToUnit()->AddUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
else
target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
}
@@ -2383,7 +2383,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setImmuneNPC.immuneNPC)
- target->ToUnit()->AddUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
else
target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
}
@@ -2397,7 +2397,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (IsUnit(target))
{
if (e.action.setUninteractible.uninteractible)
- target->ToUnit()->AddUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ target->ToUnit()->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
else
target->ToUnit()->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp
index c39dbc9106a..4a0a3d25137 100644
--- a/src/server/game/Battlefield/Battlefield.cpp
+++ b/src/server/game/Battlefield/Battlefield.cpp
@@ -503,7 +503,7 @@ void Battlefield::HideNpc(Creature* creature)
{
creature->CombatStop();
creature->SetReactState(REACT_PASSIVE);
- creature->AddUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE));
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
creature->DisappearAndDie();
creature->SetVisible(false);
}
@@ -511,14 +511,14 @@ void Battlefield::HideNpc(Creature* creature)
void Battlefield::ShowNpc(Creature* creature, bool aggressive)
{
creature->SetVisible(true);
- creature->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE));
+ creature->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
if (!creature->IsAlive())
creature->Respawn(true);
if (aggressive)
creature->SetReactState(REACT_AGGRESSIVE);
else
{
- creature->AddUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ creature->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
creature->SetReactState(REACT_PASSIVE);
}
}
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 715c497fa30..5d18797a419 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -1812,7 +1812,7 @@ void Battleground::HandleKillPlayer(Player* victim, Player* killer)
if (!isArena())
{
// To be able to remove insignia -- ONLY IN Battlegrounds
- victim->AddUnitFlag(UNIT_FLAG_SKINNABLE);
+ victim->SetUnitFlag(UNIT_FLAG_SKINNABLE);
RewardXPAtKill(killer, victim);
}
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
index d826794b178..d0518e566e0 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundIC.cpp
@@ -137,9 +137,9 @@ void BattlegroundIC::PostUpdateImpl(uint32 diff)
{
if (siege->IsAlive())
{
- if (siege->HasUnitFlag(UnitFlags(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANT_SWIM | UNIT_FLAG_IMMUNE_TO_PC)))
+ if (siege->HasUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANT_SWIM | UNIT_FLAG_IMMUNE_TO_PC))
// following sniffs the vehicle always has UNIT_FLAG_CANNOT_SWIM
- siege->RemoveUnitFlag(UnitFlags(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_IMMUNE_TO_PC));
+ siege->RemoveUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_IMMUNE_TO_PC);
else
siege->SetHealth(siege->GetMaxHealth());
}
@@ -577,7 +577,7 @@ void BattlegroundIC::HandleContestedNodes(ICNodePoint* node)
for (Creature* cannon : cannons)
{
cannon->GetVehicleKit()->RemoveAllPassengers();
- cannon->AddUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ cannon->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
}
}
else if (node->nodeType == NODE_TYPE_WORKSHOP)
@@ -764,7 +764,7 @@ void BattlegroundIC::HandleCapturedNodes(ICNodePoint* node, bool recapture)
if (Creature* siegeEngine = GetBGCreature(siegeType))
{
- siegeEngine->AddUnitFlag(UnitFlags(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANT_SWIM));
+ siegeEngine->SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE | UNIT_FLAG_CANT_SWIM);
siegeEngine->SetImmuneToPC(true);
siegeEngine->SetFaction(BG_IC_Factions[(node->faction == TEAM_ALLIANCE ? 0 : 1)]);
}
diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
index c2cb0bad634..e112eff40ce 100644
--- a/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
+++ b/src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
@@ -676,9 +676,9 @@ void BattlegroundSA::DemolisherStartState(bool start)
if (Creature* dem = GetBGCreature(i))
{
if (start)
- dem->AddUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE));
+ dem->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
else
- dem->RemoveUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE));
+ dem->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE);
}
}
}
@@ -762,7 +762,7 @@ void BattlegroundSA::UpdateObjectInteractionFlags(uint32 objectId)
if (CanInteractWithObject(objectId))
go->RemoveFlag(GO_FLAG_NOT_SELECTABLE);
else
- go->AddFlag(GO_FLAG_NOT_SELECTABLE);
+ go->SetFlag(GO_FLAG_NOT_SELECTABLE);
}
}
diff --git a/src/server/game/Combat/CombatManager.cpp b/src/server/game/Combat/CombatManager.cpp
index 41ee2147113..4a82b5e98b2 100644
--- a/src/server/game/Combat/CombatManager.cpp
+++ b/src/server/game/Combat/CombatManager.cpp
@@ -367,7 +367,7 @@ bool CombatManager::UpdateOwnerCombatState() const
if (combatState)
{
- _owner->AddUnitFlag(UNIT_FLAG_IN_COMBAT);
+ _owner->SetUnitFlag(UNIT_FLAG_IN_COMBAT);
_owner->AtEnterCombat();
if (_owner->GetTypeId() != TYPEID_UNIT)
_owner->AtEngage(GetAnyTarget());
diff --git a/src/server/game/Entities/Corpse/Corpse.h b/src/server/game/Entities/Corpse/Corpse.h
index c52e8e74dd1..5d65e858ae3 100644
--- a/src/server/game/Entities/Corpse/Corpse.h
+++ b/src/server/game/Entities/Corpse/Corpse.h
@@ -87,7 +87,7 @@ class TC_GAME_API Corpse : public WorldObject, public GridObject<Corpse>
static void DeleteFromDB(ObjectGuid const& ownerGuid, CharacterDatabaseTransaction trans);
CorpseDynFlags GetCorpseDynamicFlags() const { return CorpseDynFlags(*m_corpseData->DynamicFlags); }
- void AddCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
+ void SetCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
void RemoveCorpseDynamicFlag(CorpseDynFlags dynamicFlags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
void ReplaceAllCorpseDynamicFlags(CorpseDynFlags dynamicFlags) { SetUpdateFieldValue(m_values.ModifyValue(&Corpse::m_corpseData).ModifyValue(&UF::CorpseData::DynamicFlags), dynamicFlags); }
diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp
index c5b445df19c..baba65fca1d 100644
--- a/src/server/game/Entities/Creature/Creature.cpp
+++ b/src/server/game/Entities/Creature/Creature.cpp
@@ -675,7 +675,7 @@ bool Creature::UpdateEntry(uint32 entry, CreatureData const* data /*= nullptr*/,
// trigger creature is always uninteractible and can not be attacked
if (IsTrigger())
- AddUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
+ SetUnitFlag(UNIT_FLAG_UNINTERACTIBLE);
InitializeReactState();
@@ -1357,7 +1357,7 @@ void Creature::SetLootRecipient(Unit* unit, bool withGroup)
else
m_lootRecipientGroup = ObjectGuid::Empty;
- AddDynamicFlag(UNIT_DYNFLAG_TAPPED);
+ SetDynamicFlag(UNIT_DYNFLAG_TAPPED);
}
// return true if this creature is tapped by the player or by a member of his group.
@@ -2518,7 +2518,7 @@ bool Creature::CanAssistTo(Unit const* u, Unit const* enemy, bool checkfaction /
if (IsCivilian())
return false;
- if (HasUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE)) || IsImmuneToNPC())
+ if (HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE) || IsImmuneToNPC())
return false;
// skip fighting creature
@@ -2874,14 +2874,14 @@ void Creature::RefreshCanSwimFlag(bool recheck)
// Check if the creature has UNIT_FLAG_CAN_SWIM and add it if it's missing
// Creatures must be able to chase a target in water if they can enter water
if (_isMissingCanSwimFlagOutOfCombat && CanEnterWater())
- AddUnitFlag(UNIT_FLAG_CAN_SWIM);
+ SetUnitFlag(UNIT_FLAG_CAN_SWIM);
}
void Creature::AllLootRemovedFromCorpse()
{
if (loot.loot_type != LOOT_SKINNING && !IsPet() && GetCreatureTemplate()->SkinLootId && hasLootRecipient())
if (LootTemplates_Skinning.HaveLootFor(GetCreatureTemplate()->SkinLootId))
- AddUnitFlag(UNIT_FLAG_SKINNABLE);
+ SetUnitFlag(UNIT_FLAG_SKINNABLE);
time_t now = GameTime::GetGameTime();
// Do not reset corpse remove time if corpse is already removed
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 8d618eaf8f2..bdd4b55c2eb 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -439,7 +439,7 @@ bool GameObject::Create(uint32 entry, Map* map, Position const& pos, QuaternionD
break;
case GAMEOBJECT_TYPE_PHASEABLE_MO:
RemoveFlag(GameObjectFlags(0xF00));
- AddFlag(GameObjectFlags((m_goInfo->phaseableMO.AreaNameSet & 0xF) << 8));
+ SetFlag(GameObjectFlags((m_goInfo->phaseableMO.AreaNameSet & 0xF) << 8));
break;
case GAMEOBJECT_TYPE_CAPTURE_POINT:
SetUpdateFieldValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::SpellVisualID), m_goInfo->capturePoint.SpellVisual1);
@@ -1269,7 +1269,7 @@ bool GameObject::LoadFromDB(ObjectGuid::LowType spawnId, Map* map, bool addToMap
if (!GetGOInfo()->GetDespawnPossibility() && !GetGOInfo()->IsDespawnAtAction())
{
- AddFlag(GO_FLAG_NODESPAWN);
+ SetFlag(GO_FLAG_NODESPAWN);
m_respawnDelayTime = 0;
m_respawnTime = 0;
}
@@ -1660,7 +1660,7 @@ void GameObject::ActivateObject(GameObjectActions action, int32 param, WorldObje
RemoveFlag(GO_FLAG_LOCKED);
break;
case GameObjectActions::Lock:
- AddFlag(GO_FLAG_LOCKED);
+ SetFlag(GO_FLAG_LOCKED);
break;
case GameObjectActions::Open:
if (unitCaster)
@@ -1691,14 +1691,14 @@ void GameObject::ActivateObject(GameObjectActions action, int32 param, WorldObje
DespawnOrUnsummon();
break;
case GameObjectActions::MakeInert:
- AddFlag(GO_FLAG_NOT_SELECTABLE);
+ SetFlag(GO_FLAG_NOT_SELECTABLE);
break;
case GameObjectActions::MakeActive:
RemoveFlag(GO_FLAG_NOT_SELECTABLE);
break;
case GameObjectActions::CloseAndLock:
ResetDoorOrButton();
- AddFlag(GO_FLAG_LOCKED);
+ SetFlag(GO_FLAG_LOCKED);
break;
case GameObjectActions::UseArtKit0:
case GameObjectActions::UseArtKit1:
@@ -1801,7 +1801,7 @@ void GameObject::SetGoArtKit(uint8 artkit, GameObject* go, ObjectGuid::LowType l
void GameObject::SwitchDoorOrButton(bool activate, bool alternative /* = false */)
{
if (activate)
- AddFlag(GO_FLAG_IN_USE);
+ SetFlag(GO_FLAG_IN_USE);
else
RemoveFlag(GO_FLAG_IN_USE);
@@ -2002,7 +2002,7 @@ void GameObject::Use(Unit* user)
if (uint32 trapEntry = info->goober.linkedTrap)
TriggeringLinkedGameObject(trapEntry, user);
- AddFlag(GO_FLAG_IN_USE);
+ SetFlag(GO_FLAG_IN_USE);
SetLootState(GO_ACTIVATED, user);
// this appear to be ok, however others exist in addition to this that should have custom (ex: 190510, 188692, 187389)
@@ -2669,7 +2669,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
switch (state)
{
case GO_DESTRUCTIBLE_INTACT:
- RemoveFlag(GameObjectFlags(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED));
+ RemoveFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
SetDisplayId(m_goInfo->displayId);
if (setHealth)
{
@@ -2684,7 +2684,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
AI()->Damaged(attackerOrHealer, m_goInfo->destructibleBuilding.DamagedEvent);
RemoveFlag(GO_FLAG_DESTROYED);
- AddFlag(GO_FLAG_DAMAGED);
+ SetFlag(GO_FLAG_DAMAGED);
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
@@ -2713,7 +2713,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
bg->DestroyGate(player, this);
RemoveFlag(GO_FLAG_DAMAGED);
- AddFlag(GO_FLAG_DESTROYED);
+ SetFlag(GO_FLAG_DESTROYED);
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
@@ -2732,7 +2732,7 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, WorldOb
case GO_DESTRUCTIBLE_REBUILDING:
{
EventInform(m_goInfo->destructibleBuilding.RebuildingEvent, attackerOrHealer);
- RemoveFlag(GameObjectFlags(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED));
+ RemoveFlag(GO_FLAG_DAMAGED | GO_FLAG_DESTROYED);
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
@@ -3321,7 +3321,7 @@ void GameObject::CreateModel()
{
m_model = GameObjectModel::Create(std::make_unique<GameObjectModelOwnerImpl>(this), sWorld->GetDataPath());
if (m_model && m_model->isMapObject())
- AddFlag(GO_FLAG_MAP_OBJECT);
+ SetFlag(GO_FLAG_MAP_OBJECT);
}
std::string GameObject::GetDebugInfo() const
diff --git a/src/server/game/Entities/GameObject/GameObject.h b/src/server/game/Entities/GameObject/GameObject.h
index 7b2d4aa1d88..b032b0018bb 100644
--- a/src/server/game/Entities/GameObject/GameObject.h
+++ b/src/server/game/Entities/GameObject/GameObject.h
@@ -200,7 +200,7 @@ class TC_GAME_API GameObject : public WorldObject, public GridObject<GameObject>
void getFishLootJunk(Loot* loot, Player* loot_owner);
bool HasFlag(GameObjectFlags flags) const { return (*m_gameObjectData->Flags & flags) != 0; }
- void AddFlag(GameObjectFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::Flags), flags); }
+ void SetFlag(GameObjectFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::Flags), flags); }
void RemoveFlag(GameObjectFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::Flags), flags); }
void ReplaceAllFlags(GameObjectFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&GameObject::m_gameObjectData).ModifyValue(&UF::GameObjectData::Flags), flags); }
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 30617f21b88..d52519fa164 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -1647,7 +1647,7 @@ Item* Item::CloneItem(uint32 count, Player const* player /*= nullptr*/) const
newItem->SetCreator(GetCreator());
newItem->SetGiftCreator(GetGiftCreator());
- newItem->ReplaceAllItemFlags(ItemFieldFlags(*m_itemData->DynamicFlags & ~(ITEM_FIELD_FLAG_REFUNDABLE | ITEM_FIELD_FLAG_BOP_TRADEABLE)));
+ newItem->ReplaceAllItemFlags(ItemFieldFlags(*m_itemData->DynamicFlags) & ~(ITEM_FIELD_FLAG_REFUNDABLE | ITEM_FIELD_FLAG_BOP_TRADEABLE));
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)
@@ -1892,7 +1892,7 @@ bool Item::IsRefundExpired()
void Item::SetSoulboundTradeable(GuidSet const& allowedLooters)
{
- AddItemFlag(ITEM_FIELD_FLAG_BOP_TRADEABLE);
+ SetItemFlag(ITEM_FIELD_FLAG_BOP_TRADEABLE);
allowedGUIDs = allowedLooters;
}
diff --git a/src/server/game/Entities/Item/Item.h b/src/server/game/Entities/Item/Item.h
index 7440b9bb0a2..8e7aebc7660 100644
--- a/src/server/game/Entities/Item/Item.h
+++ b/src/server/game/Entities/Item/Item.h
@@ -201,17 +201,17 @@ class TC_GAME_API Item : public Object
void SetBinding(bool val)
{
if (val)
- AddItemFlag(ITEM_FIELD_FLAG_SOULBOUND);
+ SetItemFlag(ITEM_FIELD_FLAG_SOULBOUND);
else
RemoveItemFlag(ITEM_FIELD_FLAG_SOULBOUND);
}
bool HasItemFlag(ItemFieldFlags flag) const { return (*m_itemData->DynamicFlags & flag) != 0; }
- void AddItemFlag(ItemFieldFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags), flags); }
+ void SetItemFlag(ItemFieldFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags), flags); }
void RemoveItemFlag(ItemFieldFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags), flags); }
void ReplaceAllItemFlags(ItemFieldFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags), flags); }
bool HasItemFlag2(ItemFieldFlags2 flag) const { return (*m_itemData->DynamicFlags2 & flag) != 0; }
- void AddItemFlag2(ItemFieldFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags2), flags); }
+ void SetItemFlag2(ItemFieldFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags2), flags); }
void RemoveItemFlag2(ItemFieldFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags2), flags); }
void ReplaceAllItemFlags2(ItemFieldFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(&Item::m_itemData).ModifyValue(&UF::ItemData::DynamicFlags2), flags); }
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index a2183ba78be..8ae68284dec 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -168,11 +168,15 @@ enum ItemFieldFlags : uint32
ITEM_FIELD_FLAG_UNK26 = 0x80000000
};
+DEFINE_ENUM_FLAG(ItemFieldFlags);
+
enum ItemFieldFlags2 : uint32
{
ITEM_FIELD_FLAG2_EQUIPPED = 0x1
};
+DEFINE_ENUM_FLAG(ItemFieldFlags2);
+
enum ItemFlags : uint32
{
ITEM_FLAG_NO_PICKUP = 0x00000001,
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 129ac5a7988..9350f7073e6 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2931,7 +2931,7 @@ bool WorldObject::IsValidAttackTarget(WorldObject const* target, SpellInfo const
}
// check flags
- if (unitTarget && unitTarget->HasUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)))
+ if (unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
return false;
Unit const* unitOrOwner = unit;
@@ -3075,7 +3075,7 @@ bool WorldObject::IsValidAssistTarget(WorldObject const* target, SpellInfo const
return false;
// check flags for negative spells
- if (isNegativeSpell && unitTarget && unitTarget->HasUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2)))
+ if (isNegativeSpell && unitTarget && unitTarget->HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_ON_TAXI | UNIT_FLAG_NOT_ATTACKABLE_1 | UNIT_FLAG_NON_ATTACKABLE_2))
return false;
if (isNegativeSpell || !bySpell || !bySpell->HasAttribute(SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG))
diff --git a/src/server/game/Entities/Object/Object.h b/src/server/game/Entities/Object/Object.h
index 66c9ed7a8ce..cd1e47ca26a 100644
--- a/src/server/game/Entities/Object/Object.h
+++ b/src/server/game/Entities/Object/Object.h
@@ -163,7 +163,7 @@ class TC_GAME_API Object
uint32 GetDynamicFlags() const { return m_objectData->DynamicFlags; }
bool HasDynamicFlag(uint32 flag) const { return (*m_objectData->DynamicFlags & flag) != 0; }
- void AddDynamicFlag(uint32 flag) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Object::m_objectData).ModifyValue(&UF::ObjectData::DynamicFlags), flag); }
+ void SetDynamicFlag(uint32 flag) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Object::m_objectData).ModifyValue(&UF::ObjectData::DynamicFlags), flag); }
void RemoveDynamicFlag(uint32 flag) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Object::m_objectData).ModifyValue(&UF::ObjectData::DynamicFlags), flag); }
void ReplaceAllDynamicFlags(uint32 flag) { SetUpdateFieldValue(m_values.ModifyValue(&Object::m_objectData).ModifyValue(&UF::ObjectData::DynamicFlags), flag); }
diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp
index 467daa1996b..a3c2313e63f 100644
--- a/src/server/game/Entities/Pet/Pet.cpp
+++ b/src/server/game/Entities/Pet/Pet.cpp
@@ -289,7 +289,7 @@ bool Pet::LoadPetFromDB(Player* owner, uint32 petEntry, uint32 petnumber, bool c
SetClass(CLASS_WARRIOR);
SetGender(GENDER_NONE);
SetSheath(SHEATH_STATE_MELEE);
- ReplaceAllPetFlags(petInfo->WasRenamed ? UNIT_PET_FLAG_CAN_BE_ABANDONED : UnitPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED));
+ ReplaceAllPetFlags(petInfo->WasRenamed ? UNIT_PET_FLAG_CAN_BE_ABANDONED : (UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED));
ReplaceAllUnitFlags(UNIT_FLAG_PLAYER_CONTROLLED); // this enables popup window (pet abandon, cancel)
break;
default:
@@ -842,7 +842,7 @@ bool Pet::CreateBaseAtTamed(CreatureTemplate const* cinfo, Map* map)
SetGender(GENDER_NONE);
SetPowerType(POWER_FOCUS);
SetSheath(SHEATH_STATE_MELEE);
- ReplaceAllPetFlags(UnitPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED));
+ ReplaceAllPetFlags(UNIT_PET_FLAG_CAN_BE_RENAMED | UNIT_PET_FLAG_CAN_BE_ABANDONED);
}
return true;
@@ -1702,7 +1702,7 @@ bool Pet::Create(ObjectGuid::LowType guidlow, Map* map, uint32 Entry, uint32 /*p
return false;
// Force regen flag for player pets, just like we do for players themselves
- AddUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
SetSheath(SHEATH_STATE_MELEE);
GetThreatManager().Initialize();
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 41957580229..f649e5169b1 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -476,11 +476,11 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
InitDisplayIds();
if (sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_PVP || sWorld->getIntConfig(CONFIG_GAME_TYPE) == REALM_TYPE_RPPVP)
{
- AddPvpFlag(UNIT_BYTE2_FLAG_PVP);
- AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ SetPvpFlag(UNIT_BYTE2_FLAG_PVP);
+ SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
- AddUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);
SetHoverHeight(1.0f); // default for players in 3.0.3
SetWatchedFactionIndex(-1);
@@ -1275,7 +1275,7 @@ void Player::ToggleAFK()
if (isAFK())
RemovePlayerFlag(PLAYER_FLAGS_AFK);
else
- AddPlayerFlag(PLAYER_FLAGS_AFK);
+ SetPlayerFlag(PLAYER_FLAGS_AFK);
// afk player not allowed in battleground
if (!IsGameMaster() && isAFK() && InBattleground() && !InArena())
@@ -1287,7 +1287,7 @@ void Player::ToggleDND()
if (isDND())
RemovePlayerFlag(PLAYER_FLAGS_DND);
else
- AddPlayerFlag(PLAYER_FLAGS_DND);
+ SetPlayerFlag(PLAYER_FLAGS_DND);
}
uint8 Player::GetChatFlags() const
@@ -2109,8 +2109,8 @@ void Player::SetGameMaster(bool on)
{
m_ExtraFlags |= PLAYER_EXTRA_GM_ON;
SetFaction(FACTION_FRIENDLY);
- AddPlayerFlag(PLAYER_FLAGS_GM);
- AddUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
+ SetPlayerFlag(PLAYER_FLAGS_GM);
+ SetUnitFlag2(UNIT_FLAG2_ALLOW_CHEAT_SPELLS);
if (Pet* pet = GetPet())
pet->SetFaction(FACTION_FRIENDLY);
@@ -2137,7 +2137,7 @@ void Player::SetGameMaster(bool on)
// restore FFA PvP Server state
if (sWorld->IsFFAPvPRealm())
- AddPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
// restore FFA PvP area state, remove not allowed for GM mounts
UpdateArea(m_areaUpdateId);
@@ -2570,22 +2570,22 @@ void Player::InitStatsForLevel(bool reapplyMods)
SetMountDisplayId(0);
// cleanup unit flags (will be re-applied if need at aura load).
- RemoveUnitFlag(UnitFlags(
+ RemoveUnitFlag(
UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_NOT_ATTACKABLE_1 |
UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_LOOTING |
UNIT_FLAG_PET_IN_COMBAT | UNIT_FLAG_SILENCED | UNIT_FLAG_PACIFIED |
UNIT_FLAG_STUNNED | UNIT_FLAG_IN_COMBAT | UNIT_FLAG_DISARMED |
UNIT_FLAG_CONFUSED | UNIT_FLAG_FLEEING | UNIT_FLAG_UNINTERACTIBLE |
- UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_ON_TAXI ));
- AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); // must be set
+ UNIT_FLAG_SKINNABLE | UNIT_FLAG_MOUNT | UNIT_FLAG_ON_TAXI );
+ SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED); // must be set
- AddUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);// must be set
+ SetUnitFlag2(UNIT_FLAG2_REGENERATE_POWER);// must be set
// cleanup player flags (will be re-applied if need at aura load), to avoid have ghost flag without ghost aura, for example.
- RemovePlayerFlag(PlayerFlags(PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST));
+ RemovePlayerFlag(PLAYER_FLAGS_AFK | PLAYER_FLAGS_DND | PLAYER_FLAGS_GM | PLAYER_FLAGS_GHOST);
- RemoveVisFlags(UNIT_VIS_FLAGS_ALL); // one form stealth modified bytes
- RemovePvpFlag(UnitPVPStateFlags(UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY));
+ RemoveVisFlag(UNIT_VIS_FLAGS_ALL); // one form stealth modified bytes
+ RemovePvpFlag(UNIT_BYTE2_FLAG_FFA_PVP | UNIT_BYTE2_FLAG_SANCTUARY);
// restore if need some important flags
SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LocalRegenFlags), 0);
@@ -4330,7 +4330,7 @@ void Player::ResurrectPlayer(float restore_percent, bool applySickness)
RemoveAurasDueToSpell(8326); // SPELL_AURA_GHOST
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
- AddDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
+ SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
setDeathState(ALIVE);
@@ -4413,7 +4413,7 @@ void Player::KillPlayer()
ReplaceAllDynamicFlags(UNIT_DYNFLAG_NONE);
if (!sMapStore.LookupEntry(GetMapId())->Instanceable() && !HasAuraType(SPELL_AURA_PREVENT_RESURRECTION))
- AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
+ SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
else
RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
@@ -7114,7 +7114,7 @@ void Player::SetInGuild(ObjectGuid::LowType guildId)
if (guildId)
{
SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::GuildGUID), ObjectGuid::Create<HighGuid::Guild>(guildId));
- AddPlayerFlag(PLAYER_FLAGS_GUILD_LEVEL_ENABLED);
+ SetPlayerFlag(PLAYER_FLAGS_GUILD_LEVEL_ENABLED);
}
else
{
@@ -7208,7 +7208,7 @@ void Player::UpdateArea(uint32 newArea)
pvpInfo.IsInNoPvPArea = false;
if (area && area->IsSanctuary()) // in sanctuary
{
- AddPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY);
+ SetPvpFlag(UNIT_BYTE2_FLAG_SANCTUARY);
pvpInfo.IsInNoPvPArea = true;
if (!duel && GetCombatManager().HasPvPCombat())
CombatStopWithPets();
@@ -8707,7 +8707,7 @@ void Player::RemovedInsignia(Player* looterPlr)
return;
// Now we must make bones lootable, and send player loot
- bones->AddCorpseDynamicFlag(CORPSE_DYNFLAG_LOOTABLE);
+ bones->SetCorpseDynamicFlag(CORPSE_DYNFLAG_LOOTABLE);
// We store the level of our player in the gold field
// We retrieve this information at Player::SendLoot()
@@ -9121,7 +9121,7 @@ void Player::SendLoot(ObjectGuid guid, LootType loot_type, bool aeLooting/* = fa
m_AELootView[loot->GetGUID()] = guid;
if (loot_type == LOOT_CORPSE && !guid.IsItem())
- AddUnitFlag(UNIT_FLAG_LOOTING);
+ SetUnitFlag(UNIT_FLAG_LOOTING);
}
else
SendLootError(loot->GetGUID(), guid, LOOT_ERROR_DIDNT_KILL);
@@ -12075,7 +12075,7 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat
Item* item = Item::CreateItem(itemId, count, context, this);
if (item)
{
- item->AddItemFlag(ITEM_FIELD_FLAG_NEW_ITEM);
+ item->SetItemFlag(ITEM_FIELD_FLAG_NEW_ITEM);
item->SetBonuses(bonusListIDs);
@@ -12119,7 +12119,7 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat
if (Item* childItem = StoreNewItem(childDest, childTemplate->GetId(), update, {}, {}, context, {}, addToCollection))
{
childItem->SetCreator(item->GetGUID());
- childItem->AddItemFlag(ITEM_FIELD_FLAG_CHILD);
+ childItem->SetItemFlag(ITEM_FIELD_FLAG_CHILD);
item->SetChildItem(childItem->GetGUID());
}
}
@@ -12321,7 +12321,7 @@ Item* Player::EquipItem(uint16 pos, Item* pItem, bool update)
}
}
- pItem->AddItemFlag2(ITEM_FIELD_FLAG2_EQUIPPED);
+ pItem->SetItemFlag2(ITEM_FIELD_FLAG2_EQUIPPED);
if (IsInWorld() && update)
{
@@ -12499,7 +12499,7 @@ void Player::QuickEquipItem(uint16 pos, Item* pItem)
uint8 slot = pos & 255;
VisualizeItem(slot, pItem);
- pItem->AddItemFlag2(ITEM_FIELD_FLAG2_EQUIPPED);
+ pItem->SetItemFlag2(ITEM_FIELD_FLAG2_EQUIPPED);
if (IsInWorld())
{
@@ -18628,7 +18628,7 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
// RaF stuff.
if (GetSession()->IsARecruiter() || (GetSession()->GetRecruiterId() != 0))
- AddDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
+ SetDynamicFlag(UNIT_DYNFLAG_REFER_A_FRIEND);
_LoadDeclinedNames(holder.GetPreparedResult(PLAYER_LOGIN_QUERY_LOAD_DECLINED_NAMES));
@@ -18924,7 +18924,7 @@ void Player::LoadCorpse(PreparedQueryResult result)
Field* fields = result->Fetch();
_corpseLocation.WorldRelocate(fields[0].GetUInt16(), fields[1].GetFloat(), fields[2].GetFloat(), fields[3].GetFloat(), fields[4].GetFloat());
if (!sMapStore.AssertEntry(_corpseLocation.GetMapId())->Instanceable())
- AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
+ SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
else
RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
}
@@ -19787,7 +19787,7 @@ void Player::_LoadGroup(PreparedQueryResult result)
if (Group* group = sGroupMgr->GetGroupByDbStoreId((*result)[0].GetUInt32()))
{
if (group->IsLeader(GetGUID()))
- AddPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
+ SetPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
uint8 subgroup = group->GetMemberGroup(GetGUID());
SetGroup(group, subgroup);
@@ -21797,7 +21797,7 @@ void Player::SetContestedPvP(Player* attackedPlayer)
if (!HasUnitState(UNIT_STATE_ATTACK_PLAYER))
{
AddUnitState(UNIT_STATE_ATTACK_PLAYER);
- AddPlayerFlag(PLAYER_FLAGS_CONTESTED_PVP);
+ SetPlayerFlag(PLAYER_FLAGS_CONTESTED_PVP);
// call MoveInLineOfSight for nearby contested guards
Trinity::AIRelocationNotifier notifier(*this);
Cell::VisitWorldObjects(this, notifier, GetVisibilityRange());
@@ -23017,7 +23017,7 @@ void Player::CleanupAfterTaxiFlight()
{
m_taxi.ClearTaxiDestinations(); // not destinations, clear source node
Dismount();
- RemoveUnitFlag(UnitFlags(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI));
+ RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
}
void Player::ContinueTaxiFlight() const
@@ -23165,7 +23165,7 @@ inline bool Player::_StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 c
if (pProto->HasFlag(ITEM_FLAG_ITEM_PURCHASE_RECORD) && crItem->ExtendedCost && pProto->GetMaxStackSize() == 1)
{
- it->AddItemFlag(ITEM_FIELD_FLAG_REFUNDABLE);
+ it->SetItemFlag(ITEM_FIELD_FLAG_REFUNDABLE);
it->SetRefundRecipient(GetGUID());
it->SetPaidMoney(price);
it->SetPaidExtendedCost(crItem->ExtendedCost);
@@ -23623,9 +23623,9 @@ void Player::UpdatePvPState(bool onlyFFA)
{
if (!IsFFAPvP())
{
- AddPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
for (ControlList::iterator itr = m_Controlled.begin(); itr != m_Controlled.end(); ++itr)
- (*itr)->AddPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
+ (*itr)->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
}
}
else if (IsFFAPvP())
@@ -29180,7 +29180,7 @@ void Player::SetWarModeDesired(bool enabled)
if (enabled)
{
- AddPlayerFlag(PLAYER_FLAGS_WAR_MODE_DESIRED);
+ SetPlayerFlag(PLAYER_FLAGS_WAR_MODE_DESIRED);
TogglePvpTalents(true);
SetPvP(true);
}
@@ -29197,7 +29197,7 @@ void Player::SetWarModeDesired(bool enabled)
void Player::SetWarModeLocal(bool enabled)
{
if (enabled)
- AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_WAR_MODE);
+ SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_WAR_MODE);
else
RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_WAR_MODE);
}
@@ -29238,12 +29238,12 @@ void Player::UpdateWarModeAuras()
}
else
{
- AddPlayerFlag(PLAYER_FLAGS_WAR_MODE_ACTIVE);
+ SetPlayerFlag(PLAYER_FLAGS_WAR_MODE_ACTIVE);
RemoveAurasDueToSpell(auraInside);
CastSpell(this, auraOutside, true);
}
SetWarModeLocal(true);
- AddPvpFlag(UNIT_BYTE2_FLAG_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_PVP);
}
else
{
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 528d8db6fab..12477542e99 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -484,6 +484,8 @@ enum PlayerFlags
PLAYER_FLAGS_COMMENTATOR_CAMERA = 0x80000000
};
+DEFINE_ENUM_FLAG(PlayerFlags);
+
enum PlayerFlagsEx
{
PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED = 0x0001,
@@ -495,6 +497,8 @@ enum PlayerFlagsEx
PLAYER_FLAGS_EX_UNLOCKED_AOE_LOOT = 0x0200
};
+DEFINE_ENUM_FLAG(PlayerFlagsEx);
+
enum PlayerLocalFlags
{
PLAYER_LOCAL_FLAG_CONTROLLING_PET = 0x00000001, // Displays "You have an active summon already" when trying to tame new pet
@@ -514,6 +518,8 @@ enum PlayerLocalFlags
PLAYER_LOCAL_FLAG_WEEKLY_REWARD_AVAILABLE = 0x00040000,
};
+DEFINE_ENUM_FLAG(PlayerLocalFlags);
+
// used in PLAYER_FIELD_BYTES2 values
enum PlayerFieldByte2Flags
{
@@ -1190,7 +1196,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void ContinueTaxiFlight() const;
bool IsDeveloper() const { return HasPlayerFlag(PLAYER_FLAGS_DEVELOPER); }
- void SetDeveloper(bool on) { if (on) AddPlayerFlag(PLAYER_FLAGS_DEVELOPER); else RemovePlayerFlag(PLAYER_FLAGS_DEVELOPER); }
+ void SetDeveloper(bool on) { if (on) SetPlayerFlag(PLAYER_FLAGS_DEVELOPER); else RemovePlayerFlag(PLAYER_FLAGS_DEVELOPER); }
bool isAcceptWhispers() const { return (m_ExtraFlags & PLAYER_EXTRA_ACCEPT_WHISPERS) != 0; }
void SetAcceptWhispers(bool on) { if (on) m_ExtraFlags |= PLAYER_EXTRA_ACCEPT_WHISPERS; else m_ExtraFlags &= ~PLAYER_EXTRA_ACCEPT_WHISPERS; }
bool IsGameMaster() const { return (m_ExtraFlags & PLAYER_EXTRA_GM_ON) != 0; }
@@ -2631,7 +2637,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
// Void Storage
bool IsVoidStorageUnlocked() const { return HasPlayerFlag(PLAYER_FLAGS_VOID_UNLOCKED); }
- void UnlockVoidStorage() { AddPlayerFlag(PLAYER_FLAGS_VOID_UNLOCKED); }
+ void UnlockVoidStorage() { SetPlayerFlag(PLAYER_FLAGS_VOID_UNLOCKED); }
void LockVoidStorage() { RemovePlayerFlag(PLAYER_FLAGS_VOID_UNLOCKED); }
uint8 GetNextVoidStorageFreeSlot() const;
uint8 GetNumOfVoidStorageFreeSlots() const;
@@ -2643,7 +2649,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
// Reagent Bank
bool IsReagentBankUnlocked() const { return HasPlayerFlagEx(PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED); }
- void UnlockReagentBank() { AddPlayerFlagEx(PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED); }
+ void UnlockReagentBank() { SetPlayerFlagEx(PLAYER_FLAGS_EX_REAGENT_BANK_UNLOCKED); }
void CreateGarrison(uint32 garrSiteId);
void DeleteGarrison();
@@ -2675,12 +2681,12 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool MeetPlayerCondition(uint32 conditionId) const;
bool HasPlayerFlag(PlayerFlags flags) const { return (*m_playerData->PlayerFlags & flags) != 0; }
- void AddPlayerFlag(PlayerFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlags), flags); }
+ void SetPlayerFlag(PlayerFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlags), flags); }
void RemovePlayerFlag(PlayerFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlags), flags); }
void ReplaceAllPlayerFlags(PlayerFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlags), flags); }
bool HasPlayerFlagEx(PlayerFlagsEx flags) const { return (*m_playerData->PlayerFlagsEx & flags) != 0; }
- void AddPlayerFlagEx(PlayerFlagsEx flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlagsEx), flags); }
+ void SetPlayerFlagEx(PlayerFlagsEx flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlagsEx), flags); }
void RemovePlayerFlagEx(PlayerFlagsEx flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlagsEx), flags); }
void ReplaceAllPlayerFlagsEx(PlayerFlagsEx flags) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_playerData).ModifyValue(&UF::PlayerData::PlayerFlagsEx), flags); }
@@ -2756,7 +2762,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
ObjectGuid GetSummonedBattlePetGUID() const { return m_activePlayerData->SummonedBattlePetGUID; }
void SetSummonedBattlePetGUID(ObjectGuid guid) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::SummonedBattlePetGUID), guid); }
- void AddTrackCreatureFlag(uint32 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::TrackCreatureMask), flags); }
+ void SetTrackCreatureFlag(uint32 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::TrackCreatureMask), flags); }
void RemoveTrackCreatureFlag(uint32 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::TrackCreatureMask), flags); }
void SetVersatilityBonus(float value) { SetUpdateFieldStatValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::VersatilityBonus), value); }
@@ -2766,7 +2772,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void ApplyModOverrideAPBySpellPowerPercent(float mod, bool apply) { ApplyModUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::OverrideAPBySpellPowerPercent), mod, apply); }
bool HasPlayerLocalFlag(PlayerLocalFlags flags) const { return (*m_activePlayerData->LocalFlags & flags) != 0; }
- void AddPlayerLocalFlag(PlayerLocalFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LocalFlags), flags); }
+ void SetPlayerLocalFlag(PlayerLocalFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LocalFlags), flags); }
void RemovePlayerLocalFlag(PlayerLocalFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LocalFlags), flags); }
void ReplaceAllPlayerLocalFlags(PlayerLocalFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Player::m_activePlayerData).ModifyValue(&UF::ActivePlayerData::LocalFlags), flags); }
diff --git a/src/server/game/Entities/Player/RestMgr.cpp b/src/server/game/Entities/Player/RestMgr.cpp
index 3c23a9310c0..2eb0243be28 100644
--- a/src/server/game/Entities/Player/RestMgr.cpp
+++ b/src/server/game/Entities/Player/RestMgr.cpp
@@ -102,7 +102,7 @@ void RestMgr::SetRestFlag(RestFlag restFlag, uint32 triggerID)
if (!oldRestMask && _restFlagMask) // only set flag/time on the first rest state
{
_restTime = GameTime::GetGameTime();
- _player->AddPlayerFlag(PLAYER_FLAGS_RESTING);
+ _player->SetPlayerFlag(PLAYER_FLAGS_RESTING);
}
if (triggerID)
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 004ee1f1ab3..86b7eac84a4 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5868,7 +5868,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
if (GetTypeId() == TYPEID_PLAYER)
{
minion->m_ControlledByPlayer = true;
- minion->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ minion->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
// Can only have one pet. If a new one is summoned, dismiss the old one.
@@ -6055,7 +6055,7 @@ void Unit::SetCharm(Unit* charm, bool apply)
charm->m_ControlledByPlayer = true;
/// @todo maybe we can use this flag to check if controlled by player
- charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
else
charm->m_ControlledByPlayer = false;
@@ -6094,13 +6094,13 @@ void Unit::SetCharm(Unit* charm, bool apply)
if (charm->GetTypeId() == TYPEID_PLAYER)
{
charm->m_ControlledByPlayer = true;
- charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
charm->ToPlayer()->UpdatePvPState();
}
else if (Player* player = charm->GetCharmerOrOwnerPlayerOrPlayerItself())
{
charm->m_ControlledByPlayer = true;
- charm->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ charm->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
charm->ReplaceAllPvpFlags(player->GetPvpFlags());
}
else
@@ -7573,7 +7573,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
if (mount)
SetMountDisplayId(mount);
- AddUnitFlag(UNIT_FLAG_MOUNT);
+ SetUnitFlag(UNIT_FLAG_MOUNT);
if (Player* player = ToPlayer())
{
@@ -7596,7 +7596,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
Battleground* bg = ToPlayer()->GetBattleground();
// don't unsummon pet in arena but SetFlag UNIT_FLAG_STUNNED to disable pet's interface
if (bg && bg->isArena())
- pet->AddUnitFlag(UNIT_FLAG_STUNNED);
+ pet->SetUnitFlag(UNIT_FLAG_STUNNED);
else
player->UnsummonPetTemporaryIfAny();
}
@@ -7604,7 +7604,7 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry)
// if we have charmed npc, stun him also (everywhere)
if (Unit* charm = player->GetCharmed())
if (charm->GetTypeId() == TYPEID_UNIT)
- charm->AddUnitFlag(UNIT_FLAG_STUNNED);
+ charm->SetUnitFlag(UNIT_FLAG_STUNNED);
player->SendMovementSetCollisionHeight(player->GetCollisionHeight(), WorldPackets::Movement::UpdateCollisionHeightReason::Mount);
}
@@ -7766,11 +7766,11 @@ void Unit::UpdateMountCapability()
bool Unit::IsServiceProvider() const
{
- return HasNpcFlag(NPCFlags(
+ return HasNpcFlag(
UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_TRAINER | UNIT_NPC_FLAG_FLIGHTMASTER |
UNIT_NPC_FLAG_PETITIONER | UNIT_NPC_FLAG_BATTLEMASTER | UNIT_NPC_FLAG_BANKER |
UNIT_NPC_FLAG_INNKEEPER | UNIT_NPC_FLAG_SPIRITHEALER |
- UNIT_NPC_FLAG_SPIRITGUIDE | UNIT_NPC_FLAG_TABARDDESIGNER | UNIT_NPC_FLAG_AUCTIONEER));
+ UNIT_NPC_FLAG_SPIRITGUIDE | UNIT_NPC_FLAG_TABARDDESIGNER | UNIT_NPC_FLAG_AUCTIONEER);
}
void Unit::EngageWithTarget(Unit* enemy)
@@ -7788,20 +7788,20 @@ void Unit::SetImmuneToAll(bool apply, bool keepCombat)
{
if (apply)
{
- AddUnitFlag(UnitFlags(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC));
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
m_combatManager.EndAllCombat();
}
else
- RemoveUnitFlag(UnitFlags(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC));
+ RemoveUnitFlag(UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC);
}
void Unit::SetImmuneToPC(bool apply, bool keepCombat)
{
if (apply)
{
- AddUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_PC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
{
@@ -7824,7 +7824,7 @@ void Unit::SetImmuneToNPC(bool apply, bool keepCombat)
{
if (apply)
{
- AddUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
+ SetUnitFlag(UNIT_FLAG_IMMUNE_TO_NPC);
ValidateAttackersAndOwnTarget();
if (!keepCombat)
{
@@ -7853,7 +7853,7 @@ bool Unit::isTargetableForAttack(bool checkFakeDeath) const
if (!IsAlive())
return false;
- if (HasUnitFlag(UnitFlags(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE)))
+ if (HasUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_UNINTERACTIBLE))
return false;
if (GetTypeId() == TYPEID_PLAYER && ToPlayer()->IsGameMaster())
@@ -8394,7 +8394,7 @@ void Unit::UpdatePetCombatState()
}
if (state)
- AddUnitFlag(UNIT_FLAG_PET_IN_COMBAT);
+ SetUnitFlag(UNIT_FLAG_PET_IN_COMBAT);
else
RemoveUnitFlag(UNIT_FLAG_PET_IN_COMBAT);
}
@@ -10408,7 +10408,7 @@ bool Unit::InitTamedPet(Pet* pet, uint8 level, uint32 spell_id)
pet->SetCreatedBySpell(spell_id);
if (GetTypeId() == TYPEID_PLAYER)
- pet->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ pet->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
if (!pet->InitStatsForLevel(level))
{
@@ -10710,7 +10710,7 @@ void Unit::SetMeleeAnimKitId(uint16 animKitId)
{
// must be after setDeathState which resets dynamic flags
if (!creature->loot.isLooted())
- creature->AddDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
+ creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
else
creature->AllLootRemovedFromCorpse();
}
@@ -10918,7 +10918,7 @@ void Unit::SetStunned(bool apply)
if (apply)
{
SetTarget(ObjectGuid::Empty);
- AddUnitFlag(UNIT_FLAG_STUNNED);
+ SetUnitFlag(UNIT_FLAG_STUNNED);
StopMoving();
@@ -11169,13 +11169,13 @@ bool Unit::SetCharmedBy(Unit* charmer, CharmType type, AuraApplication const* au
switch (type)
{
case CHARM_TYPE_VEHICLE:
- AddUnitFlag(UNIT_FLAG_POSSESSED);
+ SetUnitFlag(UNIT_FLAG_POSSESSED);
playerCharmer->SetClientControl(this, true);
playerCharmer->VehicleSpellInitialize();
break;
case CHARM_TYPE_POSSESS:
- AddUnitFlag(UNIT_FLAG_POSSESSED);
- charmer->AddUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL);
+ SetUnitFlag(UNIT_FLAG_POSSESSED);
+ charmer->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL);
playerCharmer->SetClientControl(this, true);
playerCharmer->PossessSpellInitialize();
AddUnitState(UNIT_STATE_POSSESSED);
@@ -11374,7 +11374,7 @@ void Unit::RemoveVehicleKit(bool onRemoveFromWorld /*= false*/)
m_updateFlag.Vehicle = false;
m_unitTypeMask &= ~UNIT_MASK_VEHICLE;
- RemoveNpcFlag(NPCFlags(UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE));
+ RemoveNpcFlag(UNIT_NPC_FLAG_SPELLCLICK | UNIT_NPC_FLAG_PLAYER_VEHICLE);
}
bool Unit::IsOnVehicle(Unit const* vehicle) const
@@ -11515,7 +11515,7 @@ bool Unit::IsContestedGuard() const
void Unit::SetPvP(bool state)
{
if (state)
- AddPvpFlag(UNIT_BYTE2_FLAG_PVP);
+ SetPvpFlag(UNIT_BYTE2_FLAG_PVP);
else
RemovePvpFlag(UNIT_BYTE2_FLAG_PVP);
}
@@ -12169,11 +12169,11 @@ bool Unit::CanSwim() const
return false;
if (HasUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED)) // is player
return true;
- if (HasUnitFlag2(UnitFlags2(0x1000000)))
+ if (HasUnitFlag2(UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS))
return false;
if (HasUnitFlag(UNIT_FLAG_PET_IN_COMBAT))
return true;
- return HasUnitFlag(UnitFlags(UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM));
+ return HasUnitFlag(UNIT_FLAG_RENAME | UNIT_FLAG_CAN_SWIM);
}
void Unit::NearTeleportTo(Position const& pos, bool casting /*= false*/)
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h
index 235eb5da319..aa9ec20bc68 100644
--- a/src/server/game/Entities/Unit/Unit.h
+++ b/src/server/game/Entities/Unit/Unit.h
@@ -946,17 +946,17 @@ class TC_GAME_API Unit : public WorldObject
void SetModTimeRate(float timeRate) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::ModTimeRate), timeRate); }
bool HasUnitFlag(UnitFlags flags) const { return (*m_unitData->Flags & flags) != 0; }
- void AddUnitFlag(UnitFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags), flags); }
+ void SetUnitFlag(UnitFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags), flags); }
void RemoveUnitFlag(UnitFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags), flags); }
void ReplaceAllUnitFlags(UnitFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags), flags); }
bool HasUnitFlag2(UnitFlags2 flags) const { return (*m_unitData->Flags2 & flags) != 0; }
- void AddUnitFlag2(UnitFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags2), flags); }
+ void SetUnitFlag2(UnitFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags2), flags); }
void RemoveUnitFlag2(UnitFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags2), flags); }
void ReplaceAllUnitFlags2(UnitFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags2), flags); }
bool HasUnitFlag3(UnitFlags3 flags) const { return (*m_unitData->Flags3 & flags) != 0; }
- void AddUnitFlag3(UnitFlags3 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags3), flags); }
+ void SetUnitFlag3(UnitFlags3 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags3), flags); }
void RemoveUnitFlag3(UnitFlags3 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags3), flags); }
void ReplaceAllUnitFlags3(UnitFlags3 flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::Flags3), flags); }
@@ -979,7 +979,7 @@ class TC_GAME_API Unit : public WorldObject
UnitPVPStateFlags GetPvpFlags() const { return UnitPVPStateFlags(*m_unitData->PvpFlags); }
bool HasPvpFlag(UnitPVPStateFlags flags) const { return (*m_unitData->PvpFlags & flags) != 0; }
- void AddPvpFlag(UnitPVPStateFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PvpFlags), flags); }
+ void SetPvpFlag(UnitPVPStateFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PvpFlags), flags); }
void RemovePvpFlag(UnitPVPStateFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PvpFlags), flags); }
void ReplaceAllPvpFlags(UnitPVPStateFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PvpFlags), flags); }
@@ -990,7 +990,7 @@ class TC_GAME_API Unit : public WorldObject
UnitPetFlag GetPetFlags() const { return UnitPetFlag(*m_unitData->PetFlags); }
bool HasPetFlag(UnitPetFlag flags) const { return (*m_unitData->PetFlags & flags) != 0; }
- void AddPetFlag(UnitPetFlag flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PetFlags), flags); }
+ void SetPetFlag(UnitPetFlag flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PetFlags), flags); }
void RemovePetFlag(UnitPetFlag flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PetFlags), flags); }
void ReplaceAllPetFlags(UnitPetFlag flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::PetFlags), flags); }
@@ -1002,8 +1002,8 @@ class TC_GAME_API Unit : public WorldObject
bool IsStandState() const;
void SetStandState(UnitStandStateType state, uint32 animKitID = 0);
- void AddVisFlags(UnitVisFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::VisFlags), flags); }
- void RemoveVisFlags(UnitVisFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::VisFlags), flags); }
+ void SetVisFlag(UnitVisFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::VisFlags), flags); }
+ void RemoveVisFlag(UnitVisFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::VisFlags), flags); }
void ReplaceAllVisFlags(UnitVisFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::VisFlags), flags); }
AnimTier GetAnimTier() const { return AnimTier(*m_unitData->AnimTier); }
@@ -1090,13 +1090,15 @@ class TC_GAME_API Unit : public WorldObject
MeleeHitOutcome RollMeleeOutcomeAgainst(Unit const* victim, WeaponAttackType attType) const;
+ NPCFlags GetNpcFlags() const { return NPCFlags(m_unitData->NpcFlags[0]); }
bool HasNpcFlag(NPCFlags flags) const { return (m_unitData->NpcFlags[0] & flags) != 0; }
- void AddNpcFlag(NPCFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 0), flags); }
+ void SetNpcFlag(NPCFlags flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 0), flags); }
void RemoveNpcFlag(NPCFlags flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 0), flags); }
void ReplaceAllNpcFlags(NPCFlags flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 0), flags); }
+ NPCFlags2 GetNpcFlags2() const { return NPCFlags2(m_unitData->NpcFlags[1]); }
bool HasNpcFlag2(NPCFlags2 flags) const { return (m_unitData->NpcFlags[1] & flags) != 0; }
- void AddNpcFlag2(NPCFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 1), flags); }
+ void SetNpcFlag2(NPCFlags2 flags) { SetUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 1), flags); }
void RemoveNpcFlag2(NPCFlags2 flags) { RemoveUpdateFieldFlagValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 1), flags); }
void ReplaceAllNpcFlags2(NPCFlags2 flags) { SetUpdateFieldValue(m_values.ModifyValue(&Unit::m_unitData).ModifyValue(&UF::UnitData::NpcFlags, 1), flags); }
@@ -1116,7 +1118,7 @@ class TC_GAME_API Unit : public WorldObject
bool IsArmorer() const { return HasNpcFlag(UNIT_NPC_FLAG_REPAIR); }
bool IsWildBattlePet() const { return HasNpcFlag(UNIT_NPC_FLAG_WILD_BATTLE_PET); }
bool IsServiceProvider() const;
- bool IsSpiritService() const { return HasNpcFlag(NPCFlags(UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE)); }
+ bool IsSpiritService() const { return HasNpcFlag(UNIT_NPC_FLAG_SPIRITHEALER | UNIT_NPC_FLAG_SPIRITGUIDE); }
bool IsCritter() const { return GetCreatureType() == CREATURE_TYPE_CRITTER; }
bool IsInFlight() const { return HasUnitState(UNIT_STATE_IN_FLIGHT); }
diff --git a/src/server/game/Entities/Unit/UnitDefines.h b/src/server/game/Entities/Unit/UnitDefines.h
index 48cfa6a9116..161c38161bc 100644
--- a/src/server/game/Entities/Unit/UnitDefines.h
+++ b/src/server/game/Entities/Unit/UnitDefines.h
@@ -19,6 +19,7 @@
#define UnitDefines_h__
#include "Define.h"
+#include "EnumFlag.h"
#include <string>
#define MIN_MELEE_REACH 2.0f
@@ -90,6 +91,8 @@ enum UnitPVPStateFlags : uint8
UNIT_BYTE2_FLAG_UNK7 = 0x80
};
+DEFINE_ENUM_FLAG(UnitPVPStateFlags);
+
// byte (2 from 0..3) of UNIT_FIELD_BYTES_2
enum UnitPetFlag : uint8
{
@@ -98,6 +101,8 @@ enum UnitPetFlag : uint8
UNIT_PET_FLAG_CAN_BE_ABANDONED = 0x02
};
+DEFINE_ENUM_FLAG(UnitPetFlag);
+
enum UnitMoveType
{
MOVE_WALK = 0,
@@ -161,6 +166,8 @@ enum UnitFlags : uint32
UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED)
};
+DEFINE_ENUM_FLAG(UnitFlags);
+
// Value masks for UNIT_FIELD_FLAGS_2
// EnumUtils: DESCRIBE THIS
enum UnitFlags2 : uint32
@@ -211,6 +218,8 @@ enum UnitFlags2 : uint32
UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED)
};
+DEFINE_ENUM_FLAG(UnitFlags2);
+
// Value masks for UNIT_FIELD_FLAGS_3
// EnumUtils: DESCRIBE THIS
enum UnitFlags3 : uint32
@@ -221,6 +230,8 @@ enum UnitFlags3 : uint32
UNIT_FLAG3_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG3_DISALLOWED)
};
+DEFINE_ENUM_FLAG(UnitFlags3);
+
/// Non Player Character flags
// EnumUtils: DESCRIBE THIS
enum NPCFlags : uint32
@@ -260,6 +271,8 @@ enum NPCFlags : uint32
UNIT_NPC_FLAG_BLACK_MARKET = 0x80000000 // TITLE is black market
};
+DEFINE_ENUM_FLAG(NPCFlags);
+
// EnumUtils: DESCRIBE THIS
enum NPCFlags2 : uint32
{
@@ -277,6 +290,8 @@ enum NPCFlags2 : uint32
UNIT_NPC_FLAG_2_ISLANDS_QUEUE = 0x8000, // TITLE is islands queue
};
+DEFINE_ENUM_FLAG(NPCFlags2);
+
enum MovementFlags : uint32
{
MOVEMENTFLAG_NONE = 0x00000000,
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index c50dcc3fde9..26c5fc949c0 100644
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -50,7 +50,7 @@ UsableSeatNum(0), _me(unit), _vehicleInfo(vehInfo), _creatureEntry(creatureEntry
// Set or remove correct flags based on available seats. Will overwrite db data (if wrong).
if (UsableSeatNum)
- _me->AddNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
+ _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
else
_me->RemoveNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
@@ -500,7 +500,7 @@ Vehicle* Vehicle::RemovePassenger(Unit* unit)
unit->GetName().c_str(), _me->GetEntry(), _vehicleInfo->ID, _me->GetGUID().ToString().c_str(), (int32)seat->first);
if (seat->second.SeatInfo->CanEnterOrExit() && ++UsableSeatNum)
- _me->AddNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
+ _me->SetNpcFlag((_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
// Enable gravity for passenger when he did not have it active before entering the vehicle
if (seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_DISABLE_GRAVITY && !seat->second.Passenger.IsGravityDisabled)
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 3b17bb29d32..8b82680f82a 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -161,7 +161,7 @@ bool Group::Create(Player* leader)
m_guid = ObjectGuid::Create<HighGuid::Party>(sGroupMgr->GenerateGroupId());
m_leaderGuid = leaderGuid;
m_leaderName = leader->GetName();
- leader->AddPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
+ leader->SetPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
if (isBGGroup() || isBFGroup())
{
@@ -783,7 +783,7 @@ void Group::ChangeLeader(ObjectGuid newLeaderGuid, int8 partyIndex)
if (Player* oldLeader = ObjectAccessor::FindConnectedPlayer(m_leaderGuid))
oldLeader->RemovePlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
- newLeader->AddPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
+ newLeader->SetPlayerFlag(PLAYER_FLAGS_GROUP_LEADER);
m_leaderGuid = newLeader->GetGUID();
m_leaderName = newLeader->GetName();
ToggleGroupMemberFlag(slot, MEMBER_FLAG_ASSISTANT, false);
diff --git a/src/server/game/Handlers/AzeriteHandler.cpp b/src/server/game/Handlers/AzeriteHandler.cpp
index 6b7d1e027fe..1f4bfa7646c 100644
--- a/src/server/game/Handlers/AzeriteHandler.cpp
+++ b/src/server/game/Handlers/AzeriteHandler.cpp
@@ -176,7 +176,7 @@ void WorldSession::HandleAzeriteEmpoweredItemViewed(WorldPackets::Azerite::Azeri
if (!item || !item->IsAzeriteEmpoweredItem())
return;
- item->AddItemFlag(ITEM_FIELD_FLAG_AZERITE_EMPOWERED_ITEM_VIEWED);
+ item->SetItemFlag(ITEM_FIELD_FLAG_AZERITE_EMPOWERED_ITEM_VIEWED);
item->SetState(ITEM_CHANGED, _player);
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index 48f22613bdf..7c98070ed15 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1296,7 +1296,7 @@ void WorldSession::HandlePlayerLogin(LoginQueryHolder const& holder)
// Set FFA PvP for non GM in non-rest mode
if (sWorld->IsFFAPvPRealm() && !pCurrChar->IsGameMaster() && !pCurrChar->HasPlayerFlag(PLAYER_FLAGS_RESTING))
- pCurrChar->AddPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
+ pCurrChar->SetPvpFlag(UNIT_BYTE2_FLAG_FFA_PVP);
if (pCurrChar->HasPlayerFlag(PLAYER_FLAGS_CONTESTED_PVP))
pCurrChar->SetContestedPvP();
diff --git a/src/server/game/Handlers/GuildHandler.cpp b/src/server/game/Handlers/GuildHandler.cpp
index ce0e4b0681d..c47b8145b19 100644
--- a/src/server/game/Handlers/GuildHandler.cpp
+++ b/src/server/game/Handlers/GuildHandler.cpp
@@ -535,7 +535,7 @@ void WorldSession::HandleGuildChallengeUpdateRequest(WorldPackets::Guild::GuildC
void WorldSession::HandleDeclineGuildInvites(WorldPackets::Guild::DeclineGuildInvites& packet)
{
if (packet.Allow)
- GetPlayer()->AddPlayerFlag(PLAYER_FLAGS_AUTO_DECLINE_GUILD);
+ GetPlayer()->SetPlayerFlag(PLAYER_FLAGS_AUTO_DECLINE_GUILD);
else
GetPlayer()->RemovePlayerFlag(PLAYER_FLAGS_AUTO_DECLINE_GUILD);
}
diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp
index 410726ec394..2b73fd51ffc 100644
--- a/src/server/game/Handlers/MailHandler.cpp
+++ b/src/server/game/Handlers/MailHandler.cpp
@@ -618,7 +618,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPackets::Mail::MailCreateTextIt
if (m->messageType == MAIL_NORMAL)
bodyItem->SetCreator(ObjectGuid::Create<HighGuid::Player>(m->sender));
- bodyItem->AddItemFlag(ITEM_FIELD_FLAG_READABLE);
+ bodyItem->SetItemFlag(ITEM_FIELD_FLAG_READABLE);
ItemPosCountVec dest;
uint8 msg = _player->CanStoreItem(NULL_BAG, NULL_SLOT, dest, bodyItem, false);
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index 519f98aaf31..aff58ca046d 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -278,7 +278,7 @@ void WorldSession::HandleLogoutRequestOpcode(WorldPackets::Character::LogoutRequ
if (GetPlayer()->GetStandState() == UNIT_STAND_STATE_STAND)
GetPlayer()->SetStandState(UNIT_STAND_STATE_SIT);
GetPlayer()->SetRooted(true);
- GetPlayer()->AddUnitFlag(UNIT_FLAG_STUNNED);
+ GetPlayer()->SetUnitFlag(UNIT_FLAG_STUNNED);
}
SetLogoutStartTime(GameTime::GetGameTime());
@@ -312,7 +312,7 @@ void WorldSession::HandleTogglePvP(WorldPackets::Misc::TogglePvP& /*packet*/)
{
if (!GetPlayer()->HasPlayerFlag(PLAYER_FLAGS_IN_PVP))
{
- GetPlayer()->AddPlayerFlag(PLAYER_FLAGS_IN_PVP);
+ GetPlayer()->SetPlayerFlag(PLAYER_FLAGS_IN_PVP);
GetPlayer()->RemovePlayerFlag(PLAYER_FLAGS_PVP_TIMER);
if (!GetPlayer()->IsPvP() || GetPlayer()->pvpInfo.EndTimer)
GetPlayer()->UpdatePvP(true, true);
@@ -320,7 +320,7 @@ void WorldSession::HandleTogglePvP(WorldPackets::Misc::TogglePvP& /*packet*/)
else if (!GetPlayer()->IsWarModeLocalActive())
{
GetPlayer()->RemovePlayerFlag(PLAYER_FLAGS_IN_PVP);
- GetPlayer()->AddPlayerFlag(PLAYER_FLAGS_PVP_TIMER);
+ GetPlayer()->SetPlayerFlag(PLAYER_FLAGS_PVP_TIMER);
if (!GetPlayer()->pvpInfo.IsHostile && GetPlayer()->IsPvP())
GetPlayer()->pvpInfo.EndTimer = GameTime::GetGameTime(); // start toggle-off
}
@@ -330,7 +330,7 @@ void WorldSession::HandleSetPvP(WorldPackets::Misc::SetPvP& packet)
{
if (packet.EnablePVP)
{
- GetPlayer()->AddPlayerFlag(PLAYER_FLAGS_IN_PVP);
+ GetPlayer()->SetPlayerFlag(PLAYER_FLAGS_IN_PVP);
GetPlayer()->RemovePlayerFlag(PLAYER_FLAGS_PVP_TIMER);
if (!GetPlayer()->IsPvP() || GetPlayer()->pvpInfo.EndTimer)
GetPlayer()->UpdatePvP(true, true);
@@ -338,7 +338,7 @@ void WorldSession::HandleSetPvP(WorldPackets::Misc::SetPvP& packet)
else if (!GetPlayer()->IsWarModeLocalActive())
{
GetPlayer()->RemovePlayerFlag(PLAYER_FLAGS_IN_PVP);
- GetPlayer()->AddPlayerFlag(PLAYER_FLAGS_PVP_TIMER);
+ GetPlayer()->SetPlayerFlag(PLAYER_FLAGS_PVP_TIMER);
if (!GetPlayer()->pvpInfo.IsHostile && GetPlayer()->IsPvP())
GetPlayer()->pvpInfo.EndTimer = GameTime::GetGameTime(); // start toggle-off
}
@@ -1041,7 +1041,7 @@ void WorldSession::HandleSetRaidDifficultyOpcode(WorldPackets::Misc::SetRaidDiff
void WorldSession::HandleSetTaxiBenchmark(WorldPackets::Misc::SetTaxiBenchmarkMode& packet)
{
if (packet.Enable)
- _player->AddPlayerFlag(PLAYER_FLAGS_TAXI_BENCHMARK);
+ _player->SetPlayerFlag(PLAYER_FLAGS_TAXI_BENCHMARK);
else
_player->RemovePlayerFlag(PLAYER_FLAGS_TAXI_BENCHMARK);
}
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index da83cc662b0..c1209c0f7a7 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -431,7 +431,7 @@ void WorldSession::HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movem
if (plrMover->IsAlive())
{
TC_LOG_DEBUG("entities.player.falldamage", "FALLDAMAGE Below map. Map min height: %f , Player debug info:\n%s", plrMover->GetMap()->GetMinHeight(plrMover->GetPhaseShift(), movementInfo.pos.GetPositionX(), movementInfo.pos.GetPositionY()), plrMover->GetDebugInfo().c_str());
- plrMover->AddPlayerFlag(PLAYER_FLAGS_IS_OUT_OF_BOUNDS);
+ plrMover->SetPlayerFlag(PLAYER_FLAGS_IS_OUT_OF_BOUNDS);
plrMover->EnvironmentalDamage(DAMAGE_FALL_TO_VOID, GetPlayer()->GetMaxHealth());
// player can be alive if GM/etc
// change the death state to CORPSE to prevent the death timer from
diff --git a/src/server/game/Handlers/VoidStorageHandler.cpp b/src/server/game/Handlers/VoidStorageHandler.cpp
index 844a6c1eace..a586e64672c 100644
--- a/src/server/game/Handlers/VoidStorageHandler.cpp
+++ b/src/server/game/Handlers/VoidStorageHandler.cpp
@@ -51,7 +51,7 @@ void WorldSession::HandleVoidStorageUnlock(WorldPackets::VoidStorage::UnlockVoid
void WorldSession::HandleVoidStorageQuery(WorldPackets::VoidStorage::QueryVoidStorage& queryVoidStorage)
{
- Creature* unit = _player->GetNPCIfCanInteractWith(queryVoidStorage.Npc, NPCFlags(UNIT_NPC_FLAG_TRANSMOGRIFIER | UNIT_NPC_FLAG_VAULTKEEPER), UNIT_NPC_FLAG_2_NONE);
+ Creature* unit = _player->GetNPCIfCanInteractWith(queryVoidStorage.Npc, UNIT_NPC_FLAG_TRANSMOGRIFIER | UNIT_NPC_FLAG_VAULTKEEPER, UNIT_NPC_FLAG_2_NONE);
if (!unit)
{
TC_LOG_DEBUG("network", "WORLD: HandleVoidStorageQuery - %s not found or player can't interact with it.", queryVoidStorage.Npc.ToString().c_str());
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index c5c75e56dba..8ddb0a46f84 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -19,6 +19,7 @@
#define TRINITY_SHAREDDEFINES_H
#include "Define.h"
+#include "EnumFlag.h"
float const GROUND_HEIGHT_TOLERANCE = 0.05f; // Extra tolerance to z position to check if it is in air or on ground.
constexpr float Z_OFFSET_FIND_HEIGHT = 0.5f;
@@ -2817,6 +2818,8 @@ enum GameObjectFlags
GO_FLAG_LOW_PRIORITY_SELECTION = 0x04000000, // client will give lower cursor priority to this object when multiple objects overlap
};
+DEFINE_ENUM_FLAG(GameObjectFlags);
+
enum GameObjectDynamicLowFlags
{
GO_DYNFLAG_LO_HIDE_MODEL = 0x0002, // Object model is not shown with this flag
@@ -5669,6 +5672,8 @@ enum CorpseDynFlags
CORPSE_DYNFLAG_LOOTABLE = 0x0001
};
+DEFINE_ENUM_FLAG(CorpseDynFlags);
+
#define PLAYER_CORPSE_LOOT_ENTRY 1
// EnumUtils: DESCRIBE THIS
diff --git a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
index dd6e3708d68..64fbb953619 100755
--- a/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/ConfusedMovementGenerator.cpp
@@ -49,7 +49,7 @@ void ConfusedMovementGenerator<T>::DoInitialize(T* owner)
return;
// TODO: UNIT_FIELD_FLAGS should not be handled by generators
- owner->AddUnitFlag(UNIT_FLAG_CONFUSED);
+ owner->SetUnitFlag(UNIT_FLAG_CONFUSED);
owner->StopMoving();
_timer.Reset(0);
diff --git a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
index 415793b7b50..c8916f45c1f 100644
--- a/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FleeingMovementGenerator.cpp
@@ -55,7 +55,7 @@ void FleeingMovementGenerator<T>::DoInitialize(T* owner)
return;
// TODO: UNIT_FIELD_FLAGS should not be handled by generators
- owner->AddUnitFlag(UNIT_FLAG_FLEEING);
+ owner->SetUnitFlag(UNIT_FLAG_FLEEING);
_path = nullptr;
SetTargetLocation(owner);
diff --git a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
index f6cc69c1f3c..89d990cb3b8 100644
--- a/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/FlightPathMovementGenerator.cpp
@@ -73,7 +73,7 @@ void FlightPathMovementGenerator::DoReset(Player* owner)
RemoveFlag(MOVEMENTGENERATOR_FLAG_DEACTIVATED);
owner->CombatStopWithPets();
- owner->AddUnitFlag(UnitFlags(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI));
+ owner->SetUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
uint32 end = GetPathAtMapEnd();
uint32 currentNodeId = GetCurrentNode();
@@ -160,7 +160,7 @@ void FlightPathMovementGenerator::DoFinalize(Player* owner, bool active, bool/*
uint32 taxiNodeId = owner->m_taxi.GetTaxiDestination();
owner->m_taxi.ClearTaxiDestinations();
owner->Dismount();
- owner->RemoveUnitFlag(UnitFlags(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI));
+ owner->RemoveUnitFlag(UNIT_FLAG_REMOVE_CLIENT_CONTROL | UNIT_FLAG_ON_TAXI);
if (owner->m_taxi.empty())
{
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index 751f6ac27af..51bcda8d306 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -1533,7 +1533,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo
target->m_stealth.AddFlag(type);
target->m_stealth.AddValue(type, GetAmount());
- target->AddVisFlags(UNIT_VIS_FLAGS_CREEP);
+ target->SetVisFlag(UNIT_VIS_FLAGS_CREEP);
if (Player * playerTarget = target->ToPlayer())
playerTarget->AddAuraVision(PLAYER_FIELD_BYTE2_STEALTH);
}
@@ -1545,7 +1545,7 @@ void AuraEffect::HandleModStealth(AuraApplication const* aurApp, uint8 mode, boo
{
target->m_stealth.DelFlag(type);
- target->RemoveVisFlags(UNIT_VIS_FLAGS_CREEP);
+ target->RemoveVisFlag(UNIT_VIS_FLAGS_CREEP);
if (Player * playerTarget = target->ToPlayer())
playerTarget->RemoveAuraVision(PLAYER_FIELD_BYTE2_STEALTH);
}
@@ -1651,7 +1651,7 @@ void AuraEffect::HandleAuraGhost(AuraApplication const* aurApp, uint8 mode, bool
if (apply)
{
- target->AddPlayerFlag(PLAYER_FLAGS_GHOST);
+ target->SetPlayerFlag(PLAYER_FLAGS_GHOST);
target->m_serverSideVisibility.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
target->m_serverSideVisibilityDetect.SetValue(SERVERSIDE_VISIBILITY_GHOST, GHOST_VISIBILITY_GHOST);
}
@@ -2098,7 +2098,7 @@ void AuraEffect::HandleAuraCloneCaster(AuraApplication const* aurApp, uint8 mode
// What must be cloned? at least display and scale
target->SetDisplayId(caster->GetDisplayId());
//target->SetObjectScale(caster->GetObjectScale()); // we need retail info about how scaling is handled (aura maybe?)
- target->AddUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE);
+ target->SetUnitFlag2(UNIT_FLAG2_MIRROR_IMAGE);
}
else
{
@@ -2160,9 +2160,9 @@ void AuraEffect::HandleFeignDeath(AuraApplication const* aurApp, uint8 mode, boo
if (aurApp->GetRemoveMode())
return;
- target->AddUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
- target->AddUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
- target->AddDynamicFlag(UNIT_DYNFLAG_DEAD);
+ target->SetUnitFlag(UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT);
+ target->SetUnitFlag2(UNIT_FLAG2_FEIGN_DEATH);
+ target->SetDynamicFlag(UNIT_DYNFLAG_DEAD);
target->AddUnitState(UNIT_STATE_DIED);
if (Creature* creature = target->ToCreature())
@@ -2192,7 +2192,7 @@ void AuraEffect::HandleModUnattackable(AuraApplication const* aurApp, uint8 mode
return;
if (apply)
- target->AddUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
+ target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
else
target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE_2);
@@ -2230,7 +2230,7 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode,
{
case SPELL_AURA_MOD_DISARM:
if (apply)
- flagChangeFunc = [](Unit* u) { u->AddUnitFlag(UNIT_FLAG_DISARMED); };
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag(UNIT_FLAG_DISARMED); };
else
flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag(UNIT_FLAG_DISARMED); };
slot = EQUIPMENT_SLOT_MAINHAND;
@@ -2238,7 +2238,7 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode,
break;
case SPELL_AURA_MOD_DISARM_OFFHAND:
if (apply)
- flagChangeFunc = [](Unit* u) { u->AddUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); };
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); };
else
flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_OFFHAND); };
slot = EQUIPMENT_SLOT_OFFHAND;
@@ -2246,7 +2246,7 @@ void AuraEffect::HandleAuraModDisarm(AuraApplication const* aurApp, uint8 mode,
break;
case SPELL_AURA_MOD_DISARM_RANGED:
if (apply)
- flagChangeFunc = [](Unit* u) { u->AddUnitFlag2(UNIT_FLAG2_DISARM_RANGED); };
+ flagChangeFunc = [](Unit* u) { u->SetUnitFlag2(UNIT_FLAG2_DISARM_RANGED); };
else
flagChangeFunc = [](Unit* u) { u->RemoveUnitFlag2(UNIT_FLAG2_DISARM_RANGED); };
slot = EQUIPMENT_SLOT_MAINHAND;
@@ -2291,7 +2291,7 @@ void AuraEffect::HandleAuraModSilence(AuraApplication const* aurApp, uint8 mode,
if (apply)
{
- target->AddUnitFlag(UNIT_FLAG_SILENCED);
+ target->SetUnitFlag(UNIT_FLAG_SILENCED);
// call functions which may have additional effects after changing state of unit
// Stop cast only spells vs PreventionType & SPELL_PREVENTION_TYPE_SILENCE
@@ -2319,7 +2319,7 @@ void AuraEffect::HandleAuraModPacify(AuraApplication const* aurApp, uint8 mode,
Unit* target = aurApp->GetTarget();
if (apply)
- target->AddUnitFlag(UNIT_FLAG_PACIFIED);
+ target->SetUnitFlag(UNIT_FLAG_PACIFIED);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
@@ -2341,7 +2341,7 @@ void AuraEffect::HandleAuraModPacifyAndSilence(AuraApplication const* aurApp, ui
if (m_spellInfo->Id == 45839)
{
if (apply)
- target->AddUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
+ target->SetUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
else
target->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE);
}
@@ -2364,7 +2364,7 @@ void AuraEffect::HandleAuraModNoActions(AuraApplication const* aurApp, uint8 mod
if (apply)
{
- target->AddUnitFlag2(UNIT_FLAG2_NO_ACTIONS);
+ target->SetUnitFlag2(UNIT_FLAG2_NO_ACTIONS);
// call functions which may have additional effects after chainging state of unit
// Stop cast only spells vs PreventionType & SPELL_PREVENTION_TYPE_SILENCE
@@ -2398,7 +2398,7 @@ void AuraEffect::HandleAuraTrackCreatures(AuraApplication const* aurApp, uint8 m
return;
if (apply)
- target->AddTrackCreatureFlag(uint32(1) << (GetMiscValue() - 1));
+ target->SetTrackCreatureFlag(uint32(1) << (GetMiscValue() - 1));
else
target->RemoveTrackCreatureFlag(uint32(1) << (GetMiscValue() - 1));
}
@@ -2419,7 +2419,7 @@ void AuraEffect::HandleAuraTrackStealthed(AuraApplication const* aurApp, uint8 m
return;
}
if (apply)
- target->AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_TRACK_STEALTHED);
+ target->SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_TRACK_STEALTHED);
else
target->RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_TRACK_STEALTHED);
}
@@ -2433,7 +2433,7 @@ void AuraEffect::HandleAuraModStalked(AuraApplication const* aurApp, uint8 mode,
// used by spells: Hunter's Mark, Mind Vision, Syndicate Tracker (MURP) DND
if (apply)
- target->AddDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
+ target->SetDynamicFlag(UNIT_DYNFLAG_TRACK_UNIT);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
@@ -2454,13 +2454,13 @@ void AuraEffect::HandleAuraUntrackable(AuraApplication const* aurApp, uint8 mode
Unit* target = aurApp->GetTarget();
if (apply)
- target->AddVisFlags(UNIT_VIS_FLAGS_UNTRACKABLE);
+ target->SetVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
if (target->HasAuraType(GetAuraType()))
return;
- target->RemoveVisFlags(UNIT_VIS_FLAGS_UNTRACKABLE);
+ target->RemoveVisFlag(UNIT_VIS_FLAGS_UNTRACKABLE);
}
}
@@ -2496,7 +2496,7 @@ void AuraEffect::HandleAuraAllowTalentSwapping(AuraApplication const* aurApp, ui
return;
if (apply)
- target->AddUnitFlag2(UNIT_FLAG2_ALLOW_CHANGING_TALENTS);
+ target->SetUnitFlag2(UNIT_FLAG2_ALLOW_CHANGING_TALENTS);
else if (!target->HasAuraType(GetAuraType()))
target->RemoveUnitFlag2(UNIT_FLAG2_ALLOW_CHANGING_TALENTS);
}
@@ -2690,7 +2690,7 @@ void AuraEffect::HandleForceMoveForward(AuraApplication const* aurApp, uint8 mod
Unit* target = aurApp->GetTarget();
if (apply)
- target->AddUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
+ target->SetUnitFlag2(UNIT_FLAG2_FORCE_MOVEMENT);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
@@ -3224,7 +3224,7 @@ void AuraEffect::HandleAuraModSchoolImmunity(AuraApplication const* aurApp, uint
if (apply)
{
- target->AddUnitFlag(UNIT_FLAG_IMMUNE);
+ target->SetUnitFlag(UNIT_FLAG_IMMUNE);
target->GetThreatManager().EvaluateSuppressed();
}
else
@@ -3246,7 +3246,7 @@ void AuraEffect::HandleAuraModDmgImmunity(AuraApplication const* aurApp, uint8 m
if (apply)
{
- target->AddUnitFlag(UNIT_FLAG_IMMUNE);
+ target->SetUnitFlag(UNIT_FLAG_IMMUNE);
target->GetThreatManager().EvaluateSuppressed();
}
else
@@ -4438,7 +4438,7 @@ void AuraEffect::HandleArenaPreparation(AuraApplication const* aurApp, uint8 mod
Unit* target = aurApp->GetTarget();
if (apply)
- target->AddUnitFlag(UNIT_FLAG_PREPARATION);
+ target->SetUnitFlag(UNIT_FLAG_PREPARATION);
else
{
// do not remove unit flag if there are more than this auraEffect of that kind on unit on unit
@@ -4873,7 +4873,7 @@ void AuraEffect::HandleAuraEmpathy(AuraApplication const* aurApp, uint8 mode, bo
if (target->GetCreatureType() == CREATURE_TYPE_BEAST)
{
if (apply)
- target->AddDynamicFlag(UNIT_DYNFLAG_SPECIALINFO);
+ target->SetDynamicFlag(UNIT_DYNFLAG_SPECIALINFO);
else
target->RemoveDynamicFlag(UNIT_DYNFLAG_SPECIALINFO);
}
@@ -4896,7 +4896,7 @@ void AuraEffect::HandleAuraModFaction(AuraApplication const* aurApp, uint8 mode,
{
target->RestoreFaction();
if (target->GetTypeId() == TYPEID_PLAYER)
- target->AddUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
+ target->SetUnitFlag(UNIT_FLAG_PLAYER_CONTROLLED);
}
}
@@ -4923,7 +4923,7 @@ void AuraEffect::HandleComprehendLanguage(AuraApplication const* aurApp, uint8 m
Unit* target = aurApp->GetTarget();
if (apply)
- target->AddUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG);
+ target->SetUnitFlag2(UNIT_FLAG2_COMPREHEND_LANG);
else
{
if (target->HasAuraType(GetAuraType()))
@@ -5158,7 +5158,7 @@ void AuraEffect::HandlePreventResurrection(AuraApplication const* aurApp, uint8
if (apply)
target->RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
else if (!target->GetMap()->Instanceable())
- target->AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
+ target->SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_RELEASE_TIMER);
}
void AuraEffect::HandleMastery(AuraApplication const* aurApp, uint8 mode, bool /*apply*/) const
@@ -5907,7 +5907,7 @@ void AuraEffect::HandleAllowUsingGameobjectsWhileMounted(AuraApplication const*
return;
if (apply)
- target->AddPlayerLocalFlag(PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED);
+ target->SetPlayerLocalFlag(PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED);
else if (!target->HasAuraType(SPELL_AURA_ALLOW_USING_GAMEOBJECTS_WHILE_MOUNTED))
target->RemovePlayerLocalFlag(PLAYER_LOCAL_FLAG_CAN_USE_OBJECTS_MOUNTED);
}
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index d723e505845..a7e7f24c007 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -1663,7 +1663,7 @@ void Spell::EffectOpenLock()
SendLoot(guid, LOOT_SKINNING);
else if (itemTarget)
{
- itemTarget->AddItemFlag(ITEM_FIELD_FLAG_UNLOCKED);
+ itemTarget->SetItemFlag(ITEM_FIELD_FLAG_UNLOCKED);
itemTarget->SetState(ITEM_CHANGED, itemTarget->GetOwner());
}
@@ -3780,7 +3780,7 @@ void Spell::EffectSkinning()
uint32 skill = creature->GetCreatureTemplate()->GetRequiredLootSkill();
creature->RemoveUnitFlag(UNIT_FLAG_SKINNABLE);
- creature->AddDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
+ creature->SetDynamicFlag(UNIT_DYNFLAG_LOOTABLE);
player->SendLoot(creature->GetGUID(), LOOT_SKINNING);
if (skill == SKILL_SKINNING)
@@ -4905,7 +4905,7 @@ void Spell::EffectRenamePet()
!unitTarget->IsPet() || ((Pet*)unitTarget)->getPetType() != HUNTER_PET)
return;
- unitTarget->AddPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED);
+ unitTarget->SetPetFlag(UNIT_PET_FLAG_CAN_BE_RENAMED);
}
void Spell::EffectPlayMusic()
@@ -5404,7 +5404,7 @@ void Spell::EffectEnableBattlePets()
return;
Player* player = unitTarget->ToPlayer();
- player->AddPlayerFlag(PLAYER_FLAGS_PET_BATTLES_UNLOCKED);
+ player->SetPlayerFlag(PLAYER_FLAGS_PET_BATTLES_UNLOCKED);
player->GetSession()->GetBattlePetMgr()->UnlockSlot(BattlePets::BattlePetSlot::Slot0);
}