aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Unit
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/Entities/Unit
parent4eba9786708dd3b22d9053c1a14eac7e6d03242e (diff)
Core/Misc: Rename AddXXXFlag updatefield functions to SetXXXFlag
Diffstat (limited to 'src/server/game/Entities/Unit')
-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
3 files changed, 52 insertions, 35 deletions
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,