TrinityCore
UnitDefines.h File Reference
#include "Define.h"
#include "EnumFlag.h"
#include <string>
+ Include dependency graph for UnitDefines.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DeclinedName
 

Namespaces

namespace  UF
 

Macros

#define MIN_MELEE_REACH   2.0f
 
#define NOMINAL_MELEE_RANGE   5.0f
 
#define MELEE_RANGE   (NOMINAL_MELEE_RANGE - MIN_MELEE_REACH * 2)
 
#define BASE_MINDAMAGE   1.0f
 
#define BASE_MAXDAMAGE   2.0f
 
#define BASE_ATTACK_TIME   2000
 
#define MAX_EQUIPMENT_ITEMS   3
 
#define MAX_MOVE_TYPE   9
 
#define MAX_DECLINED_NAME_CASES   5
 

Enumerations

enum  UnitStandStateType : uint8 {
  UNIT_STAND_STATE_STAND = 0 , UNIT_STAND_STATE_SIT = 1 , UNIT_STAND_STATE_SIT_CHAIR = 2 , UNIT_STAND_STATE_SLEEP = 3 ,
  UNIT_STAND_STATE_SIT_LOW_CHAIR = 4 , UNIT_STAND_STATE_SIT_MEDIUM_CHAIR = 5 , UNIT_STAND_STATE_SIT_HIGH_CHAIR = 6 , UNIT_STAND_STATE_DEAD = 7 ,
  UNIT_STAND_STATE_KNEEL = 8 , UNIT_STAND_STATE_SUBMERGED = 9 , MAX_UNIT_STAND_STATE
}
 
enum  UnitVisFlags : uint8 {
  UNIT_VIS_FLAGS_INVISIBLE = 0x01 , UNIT_VIS_FLAGS_STEALTHED = 0x02 , UNIT_VIS_FLAGS_UNTRACKABLE = 0x04 , UNIT_VIS_FLAGS_UNK4 = 0x08 ,
  UNIT_VIS_FLAGS_UNK5 = 0x10 , UNIT_VIS_FLAGS_ALL = 0xFF
}
 
enum class  AnimTier : uint8 {
  Ground = 0 , Swim = 1 , Hover = 2 , Fly = 3 ,
  Submerged = 4 , Max
}
 
enum  SheathState : uint8 { SHEATH_STATE_UNARMED = 0 , SHEATH_STATE_MELEE = 1 , SHEATH_STATE_RANGED = 2 , MAX_SHEATH_STATE }
 
enum  UnitPVPStateFlags : uint8 {
  UNIT_BYTE2_FLAG_NONE = 0x00 , UNIT_BYTE2_FLAG_PVP = 0x01 , UNIT_BYTE2_FLAG_UNK1 = 0x02 , UNIT_BYTE2_FLAG_FFA_PVP = 0x04 ,
  UNIT_BYTE2_FLAG_SANCTUARY = 0x08 , UNIT_BYTE2_FLAG_UNK4 = 0x10 , UNIT_BYTE2_FLAG_UNK5 = 0x20 , UNIT_BYTE2_FLAG_UNK6 = 0x40 ,
  UNIT_BYTE2_FLAG_UNK7 = 0x80
}
 
enum  UnitPetFlag : uint8 { UNIT_PET_FLAG_NONE = 0x0 , UNIT_PET_FLAG_CAN_BE_RENAMED = 0x01 , UNIT_PET_FLAG_CAN_BE_ABANDONED = 0x02 }
 
enum  UnitMoveType : uint8 {
  MOVE_WALK = 0 , MOVE_RUN = 1 , MOVE_RUN_BACK = 2 , MOVE_SWIM = 3 ,
  MOVE_SWIM_BACK = 4 , MOVE_TURN_RATE = 5 , MOVE_FLIGHT = 6 , MOVE_FLIGHT_BACK = 7 ,
  MOVE_PITCH_RATE = 8
}
 
enum  DamageEffectType : uint8 {
  DIRECT_DAMAGE = 0 , SPELL_DIRECT_DAMAGE = 1 , DOT = 2 , HEAL = 3 ,
  NODAMAGE = 4 , SELF_DAMAGE = 5
}
 
enum  UnitFlags : uint32 {
  UNIT_FLAG_SERVER_CONTROLLED = 0x00000001 , UNIT_FLAG_NON_ATTACKABLE = 0x00000002 , UNIT_FLAG_REMOVE_CLIENT_CONTROL = 0x00000004 , UNIT_FLAG_PLAYER_CONTROLLED = 0x00000008 ,
  UNIT_FLAG_RENAME = 0x00000010 , UNIT_FLAG_PREPARATION = 0x00000020 , UNIT_FLAG_UNK_6 = 0x00000040 , UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080 ,
  UNIT_FLAG_IMMUNE_TO_PC = 0x00000100 , UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200 , UNIT_FLAG_LOOTING = 0x00000400 , UNIT_FLAG_PET_IN_COMBAT = 0x00000800 ,
  UNIT_FLAG_PVP_ENABLING = 0x00001000 , UNIT_FLAG_FORCE_NAMEPLATE = 0x00002000 , UNIT_FLAG_CANT_SWIM = 0x00004000 , UNIT_FLAG_CAN_SWIM = 0x00008000 ,
  UNIT_FLAG_NON_ATTACKABLE_2 = 0x00010000 , UNIT_FLAG_PACIFIED = 0x00020000 , UNIT_FLAG_STUNNED = 0x00040000 , UNIT_FLAG_IN_COMBAT = 0x00080000 ,
  UNIT_FLAG_ON_TAXI = 0x00100000 , UNIT_FLAG_DISARMED = 0x00200000 , UNIT_FLAG_CONFUSED = 0x00400000 , UNIT_FLAG_FLEEING = 0x00800000 ,
  UNIT_FLAG_POSSESSED = 0x01000000 , UNIT_FLAG_UNINTERACTIBLE = 0x02000000 , UNIT_FLAG_SKINNABLE = 0x04000000 , UNIT_FLAG_MOUNT = 0x08000000 ,
  UNIT_FLAG_UNK_28 = 0x10000000 , UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT = 0x20000000 , UNIT_FLAG_SHEATHE = 0x40000000 , UNIT_FLAG_IMMUNE = 0x80000000 ,
  UNIT_FLAG_DISALLOWED , UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED)
}
 
enum  UnitFlags2 : uint32 {
  UNIT_FLAG2_FEIGN_DEATH = 0x00000001 , UNIT_FLAG2_HIDE_BODY = 0x00000002 , UNIT_FLAG2_IGNORE_REPUTATION = 0x00000004 , UNIT_FLAG2_COMPREHEND_LANG = 0x00000008 ,
  UNIT_FLAG2_MIRROR_IMAGE = 0x00000010 , UNIT_FLAG2_DONT_FADE_IN = 0x00000020 , UNIT_FLAG2_FORCE_MOVEMENT = 0x00000040 , UNIT_FLAG2_DISARM_OFFHAND = 0x00000080 ,
  UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100 , UNIT_FLAG2_ALLOW_CHANGING_TALENTS = 0x00000200 , UNIT_FLAG2_DISARM_RANGED = 0x00000400 , UNIT_FLAG2_REGENERATE_POWER = 0x00000800 ,
  UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000 , UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000 , UNIT_FLAG2_INTERACT_WHILE_HOSTILE = 0x00004000 , UNIT_FLAG2_CANNOT_TURN = 0x00008000 ,
  UNIT_FLAG2_UNK2 = 0x00010000 , UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000 , UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000 , UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER = 0x00080000 ,
  UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS = 0x00100000 , UNIT_FLAG2_LARGE_AOI = 0x00200000 , UNIT_FLAG2_GIGANTIC_AOI = 0x00400000 , UNIT_FLAG2_NO_ACTIONS = 0x00800000 ,
  UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS = 0x01000000 , UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS = 0x02000000 , UNIT_FLAG2_UNTARGETABLE_BY_CLIENT = 0x04000000 , UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES = 0x08000000 ,
  UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE = 0x10000000 , UNIT_FLAG2_UNUSED_11 = 0x20000000 , UNIT_FLAG2_INFINITE_AOI = 0x40000000 , UNIT_FLAG2_UNUSED_13 = 0x80000000 ,
  UNIT_FLAG2_DISALLOWED , UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED)
}
 
enum  UnitFlags3 : uint32 {
  UNIT_FLAG3_UNK0 = 0x00000001 , UNIT_FLAG3_UNCONSCIOUS_ON_DEATH = 0x00000002 , UNIT_FLAG3_ALLOW_MOUNTED_COMBAT = 0x00000004 , UNIT_FLAG3_GARRISON_PET = 0x00000008 ,
  UNIT_FLAG3_UI_CAN_GET_POSITION = 0x00000010 , UNIT_FLAG3_AI_OBSTACLE = 0x00000020 , UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE = 0x00000040 , UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK = 0x00000080 ,
  UNIT_FLAG3_IGNORE_COMBAT = 0x00000100 , UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK = 0x00000200 , UNIT_FLAG3_UNK10 = 0x00000400 , UNIT_FLAG3_UNK11 = 0x00000800 ,
  UNIT_FLAG3_UNK12 = 0x00001000 , UNIT_FLAG3_FAKE_DEAD = 0x00002000 , UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE = 0x00004000 , UNIT_FLAG3_UNTARGETABLE_FROM_UI = 0x00008000 ,
  UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD = 0x00010000 , UNIT_FLAG3_ALREADY_SKINNED = 0x00020000 , UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS = 0x00040000 , UNIT_FLAG3_SUPPRESS_NPC_SOUNDS = 0x00080000 ,
  UNIT_FLAG3_ALLOW_INTERACTION_WHILE_IN_COMBAT = 0x00100000 , UNIT_FLAG3_UNK21 = 0x00200000 , UNIT_FLAG3_DONT_FADE_OUT = 0x00400000 , UNIT_FLAG3_UNK23 = 0x00800000 ,
  UNIT_FLAG3_FORCE_HIDE_NAMEPLATE = 0x01000000 , UNIT_FLAG3_UNK25 = 0x02000000 , UNIT_FLAG3_UNK26 = 0x04000000 , UNIT_FLAG3_UNK27 = 0x08000000 ,
  UNIT_FLAG3_UNK28 = 0x10000000 , UNIT_FLAG3_UNK29 = 0x20000000 , UNIT_FLAG3_UNK30 = 0x40000000 , UNIT_FLAG3_UNK31 = 0x80000000 ,
  UNIT_FLAG3_DISALLOWED , UNIT_FLAG3_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG3_DISALLOWED)
}
 
enum  NPCFlags : uint32 {
  UNIT_NPC_FLAG_NONE = 0x00000000 , UNIT_NPC_FLAG_GOSSIP = 0x00000001 , UNIT_NPC_FLAG_QUESTGIVER = 0x00000002 , UNIT_NPC_FLAG_UNK1 = 0x00000004 ,
  UNIT_NPC_FLAG_UNK2 = 0x00000008 , UNIT_NPC_FLAG_TRAINER = 0x00000010 , UNIT_NPC_FLAG_TRAINER_CLASS = 0x00000020 , UNIT_NPC_FLAG_TRAINER_PROFESSION = 0x00000040 ,
  UNIT_NPC_FLAG_VENDOR = 0x00000080 , UNIT_NPC_FLAG_VENDOR_AMMO = 0x00000100 , UNIT_NPC_FLAG_VENDOR_FOOD = 0x00000200 , UNIT_NPC_FLAG_VENDOR_POISON = 0x00000400 ,
  UNIT_NPC_FLAG_VENDOR_REAGENT = 0x00000800 , UNIT_NPC_FLAG_REPAIR = 0x00001000 , UNIT_NPC_FLAG_FLIGHTMASTER = 0x00002000 , UNIT_NPC_FLAG_SPIRIT_HEALER = 0x00004000 ,
  UNIT_NPC_FLAG_AREA_SPIRIT_HEALER = 0x00008000 , UNIT_NPC_FLAG_INNKEEPER = 0x00010000 , UNIT_NPC_FLAG_BANKER = 0x00020000 , UNIT_NPC_FLAG_PETITIONER = 0x00040000 ,
  UNIT_NPC_FLAG_TABARDDESIGNER = 0x00080000 , UNIT_NPC_FLAG_BATTLEMASTER = 0x00100000 , UNIT_NPC_FLAG_AUCTIONEER = 0x00200000 , UNIT_NPC_FLAG_STABLEMASTER = 0x00400000 ,
  UNIT_NPC_FLAG_GUILD_BANKER = 0x00800000 , UNIT_NPC_FLAG_SPELLCLICK = 0x01000000 , UNIT_NPC_FLAG_PLAYER_VEHICLE = 0x02000000 , UNIT_NPC_FLAG_MAILBOX = 0x04000000 ,
  UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC = 0x08000000 , UNIT_NPC_FLAG_TRANSMOGRIFIER = 0x10000000 , UNIT_NPC_FLAG_VAULTKEEPER = 0x20000000 , UNIT_NPC_FLAG_WILD_BATTLE_PET = 0x40000000 ,
  UNIT_NPC_FLAG_BLACK_MARKET = 0x80000000
}
 Non Player Character flags. More...
 
enum  NPCFlags2 : uint32 {
  UNIT_NPC_FLAG_2_NONE = 0x00000000 , UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER = 0x00000001 , UNIT_NPC_FLAG_2_GARRISON_ARCHITECT = 0x00000002 , UNIT_NPC_FLAG_2_STEERING = 0x00000004 ,
  UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL = 0x00000008 , UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER = 0x00000010 , UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC = 0x00000020 , UNIT_NPC_FLAG_2_TRADESKILL_NPC = 0x00000040 ,
  UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW = 0x00000080 , UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC = 0x00000200 , UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR = 0x00000400 , UNIT_NPC_FLAG_2_AZERITE_RESPEC = 0x00004000 ,
  UNIT_NPC_FLAG_2_ISLANDS_QUEUE = 0x00008000 , UNIT_NPC_FLAG_2_SUPPRESS_NPC_SOUNDS_EXCEPT_END_OF_INTERACTION = 0x00010000 , UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER = 0x00200000
}
 
enum  MovementFlags : uint32 {
  MOVEMENTFLAG_NONE = 0x00000000 , MOVEMENTFLAG_FORWARD = 0x00000001 , MOVEMENTFLAG_BACKWARD = 0x00000002 , MOVEMENTFLAG_STRAFE_LEFT = 0x00000004 ,
  MOVEMENTFLAG_STRAFE_RIGHT = 0x00000008 , MOVEMENTFLAG_LEFT = 0x00000010 , MOVEMENTFLAG_RIGHT = 0x00000020 , MOVEMENTFLAG_PITCH_UP = 0x00000040 ,
  MOVEMENTFLAG_PITCH_DOWN = 0x00000080 , MOVEMENTFLAG_WALKING = 0x00000100 , MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000200 , MOVEMENTFLAG_ROOT = 0x00000400 ,
  MOVEMENTFLAG_FALLING = 0x00000800 , MOVEMENTFLAG_FALLING_FAR = 0x00001000 , MOVEMENTFLAG_PENDING_STOP = 0x00002000 , MOVEMENTFLAG_PENDING_STRAFE_STOP = 0x00004000 ,
  MOVEMENTFLAG_PENDING_FORWARD = 0x00008000 , MOVEMENTFLAG_PENDING_BACKWARD = 0x00010000 , MOVEMENTFLAG_PENDING_STRAFE_LEFT = 0x00020000 , MOVEMENTFLAG_PENDING_STRAFE_RIGHT = 0x00040000 ,
  MOVEMENTFLAG_PENDING_ROOT = 0x00080000 , MOVEMENTFLAG_SWIMMING = 0x00100000 , MOVEMENTFLAG_ASCENDING = 0x00200000 , MOVEMENTFLAG_DESCENDING = 0x00400000 ,
  MOVEMENTFLAG_CAN_FLY = 0x00800000 , MOVEMENTFLAG_FLYING = 0x01000000 , MOVEMENTFLAG_SPLINE_ELEVATION = 0x02000000 , MOVEMENTFLAG_WATERWALKING = 0x04000000 ,
  MOVEMENTFLAG_FALLING_SLOW = 0x08000000 , MOVEMENTFLAG_HOVER = 0x10000000 , MOVEMENTFLAG_DISABLE_COLLISION = 0x20000000 , MOVEMENTFLAG_MASK_MOVING ,
  MOVEMENTFLAG_MASK_TURNING , MOVEMENTFLAG_MASK_MOVING_FLY , MOVEMENTFLAG_MASK_CREATURE_ALLOWED , MOVEMENTFLAG_MASK_PLAYER_ONLY ,
  MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
}
 
enum  MovementFlags2 : uint32 {
  MOVEMENTFLAG2_NONE = 0x00000000 , MOVEMENTFLAG2_NO_STRAFE = 0x00000001 , MOVEMENTFLAG2_NO_JUMPING = 0x00000002 , MOVEMENTFLAG2_FULL_SPEED_TURNING = 0x00000004 ,
  MOVEMENTFLAG2_FULL_SPEED_PITCHING = 0x00000008 , MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING = 0x00000010 , MOVEMENTFLAG2_IS_VEHICLE_EXIT_VOLUNTARY = 0x00000020 , MOVEMENTFLAG2_WATERWALKING_FULL_PITCH = 0x00000040 ,
  MOVEMENTFLAG2_VEHICLE_PASSENGER_IS_TRANSITION_ALLOWED = 0x00000080 , MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS = 0x00000100 , MOVEMENTFLAG2_UNK9 = 0x00000200 , MOVEMENTFLAG2_CAN_TURN_WHILE_FALLING = 0x00000400 ,
  MOVEMENTFLAG2_IGNORE_MOVEMENT_FORCES = 0x00000800 , MOVEMENTFLAG2_CAN_DOUBLE_JUMP = 0x00001000 , MOVEMENTFLAG2_DOUBLE_JUMP = 0x00002000 , MOVEMENTFLAG2_AWAITING_LOAD = 0x00010000 ,
  MOVEMENTFLAG2_INTERPOLATED_MOVEMENT = 0x00020000 , MOVEMENTFLAG2_INTERPOLATED_TURNING = 0x00040000 , MOVEMENTFLAG2_INTERPOLATED_PITCHING = 0x00080000
}
 
enum  MovementFlags3 : uint32 { MOVEMENTFLAG3_NONE = 0x00000000 , MOVEMENTFLAG3_DISABLE_INERTIA = 0x00000001 , MOVEMENTFLAG3_CAN_ADV_FLY = 0x00000002 , MOVEMENTFLAG3_ADV_FLYING = 0x00000004 }
 
enum  HitInfo {
  HITINFO_NORMALSWING = 0x00000000 , HITINFO_UNK1 = 0x00000001 , HITINFO_AFFECTS_VICTIM = 0x00000002 , HITINFO_OFFHAND = 0x00000004 ,
  HITINFO_UNK2 = 0x00000008 , HITINFO_MISS = 0x00000010 , HITINFO_FULL_ABSORB = 0x00000020 , HITINFO_PARTIAL_ABSORB = 0x00000040 ,
  HITINFO_FULL_RESIST = 0x00000080 , HITINFO_PARTIAL_RESIST = 0x00000100 , HITINFO_CRITICALHIT = 0x00000200 , HITINFO_UNK10 = 0x00000400 ,
  HITINFO_UNK11 = 0x00000800 , HITINFO_UNK12 = 0x00001000 , HITINFO_BLOCK = 0x00002000 , HITINFO_UNK14 = 0x00004000 ,
  HITINFO_UNK15 = 0x00008000 , HITINFO_GLANCING = 0x00010000 , HITINFO_CRUSHING = 0x00020000 , HITINFO_NO_ANIMATION = 0x00040000 ,
  HITINFO_UNK19 = 0x00080000 , HITINFO_UNK20 = 0x00100000 , HITINFO_SWINGNOHITSOUND = 0x00200000 , HITINFO_UNK22 = 0x00400000 ,
  HITINFO_RAGE_GAIN = 0x00800000 , HITINFO_FAKE_DAMAGE = 0x01000000
}
 
enum class  AttackSwingErr : uint8 { NotInRange = 0 , BadFacing = 1 , CantAttack = 2 , DeadTarget = 3 }
 
enum  ActiveStates : uint8 {
  ACT_PASSIVE = 0x01 , ACT_DISABLED = 0x81 , ACT_ENABLED = 0xC1 , ACT_COMMAND = 0x07 ,
  ACT_REACTION = 0x06 , ACT_DECIDE = 0x00
}
 
enum  ReactStates : uint8 { REACT_PASSIVE = 0 , REACT_DEFENSIVE = 1 , REACT_AGGRESSIVE = 2 , REACT_ASSIST = 3 }
 
enum  CommandStates : uint8 {
  COMMAND_STAY = 0 , COMMAND_FOLLOW = 1 , COMMAND_ATTACK = 2 , COMMAND_ABANDON = 3 ,
  COMMAND_MOVE_TO = 4
}
 

Functions

 DEFINE_ENUM_FLAG (UnitPVPStateFlags)
 
 DEFINE_ENUM_FLAG (UnitPetFlag)
 
 DEFINE_ENUM_FLAG (UnitFlags)
 
 DEFINE_ENUM_FLAG (UnitFlags2)
 
 DEFINE_ENUM_FLAG (UnitFlags3)
 
 DEFINE_ENUM_FLAG (NPCFlags)
 
 DEFINE_ENUM_FLAG (NPCFlags2)
 
char const * DescribeReactState (ReactStates state)
 

Macro Definition Documentation

◆ BASE_ATTACK_TIME

#define BASE_ATTACK_TIME   2000

Definition at line 35 of file UnitDefines.h.

◆ BASE_MAXDAMAGE

#define BASE_MAXDAMAGE   2.0f

Definition at line 34 of file UnitDefines.h.

◆ BASE_MINDAMAGE

#define BASE_MINDAMAGE   1.0f

Definition at line 33 of file UnitDefines.h.

◆ MAX_DECLINED_NAME_CASES

#define MAX_DECLINED_NAME_CASES   5

Definition at line 484 of file UnitDefines.h.

◆ MAX_EQUIPMENT_ITEMS

#define MAX_EQUIPMENT_ITEMS   3

Definition at line 37 of file UnitDefines.h.

◆ MAX_MOVE_TYPE

#define MAX_MOVE_TYPE   9

Definition at line 128 of file UnitDefines.h.

◆ MELEE_RANGE

#define MELEE_RANGE   (NOMINAL_MELEE_RANGE - MIN_MELEE_REACH * 2)

Definition at line 32 of file UnitDefines.h.

◆ MIN_MELEE_REACH

#define MIN_MELEE_REACH   2.0f

Definition at line 30 of file UnitDefines.h.

◆ NOMINAL_MELEE_RANGE

#define NOMINAL_MELEE_RANGE   5.0f

Definition at line 31 of file UnitDefines.h.

Enumeration Type Documentation

◆ ActiveStates

Enumerator
ACT_PASSIVE 
ACT_DISABLED 
ACT_ENABLED 
ACT_COMMAND 
ACT_REACTION 
ACT_DECIDE 

Definition at line 494 of file UnitDefines.h.

◆ AnimTier

enum class AnimTier : uint8
strong
Enumerator
Ground 
Swim 
Hover 
Fly 
Submerged 
Max 

Definition at line 68 of file UnitDefines.h.

◆ AttackSwingErr

enum class AttackSwingErr : uint8
strong
Enumerator
NotInRange 
BadFacing 
CantAttack 
DeadTarget 

Definition at line 476 of file UnitDefines.h.

◆ CommandStates

Enumerator
COMMAND_STAY 
COMMAND_FOLLOW 
COMMAND_ATTACK 
COMMAND_ABANDON 
COMMAND_MOVE_TO 

Definition at line 524 of file UnitDefines.h.

◆ DamageEffectType

Enumerator
DIRECT_DAMAGE 
SPELL_DIRECT_DAMAGE 
DOT 
HEAL 
NODAMAGE 
SELF_DAMAGE 

Definition at line 130 of file UnitDefines.h.

◆ HitInfo

enum HitInfo
Enumerator
HITINFO_NORMALSWING 
HITINFO_UNK1 
HITINFO_AFFECTS_VICTIM 
HITINFO_OFFHAND 
HITINFO_UNK2 
HITINFO_MISS 
HITINFO_FULL_ABSORB 
HITINFO_PARTIAL_ABSORB 
HITINFO_FULL_RESIST 
HITINFO_PARTIAL_RESIST 
HITINFO_CRITICALHIT 
HITINFO_UNK10 
HITINFO_UNK11 
HITINFO_UNK12 
HITINFO_BLOCK 
HITINFO_UNK14 
HITINFO_UNK15 
HITINFO_GLANCING 
HITINFO_CRUSHING 
HITINFO_NO_ANIMATION 
HITINFO_UNK19 
HITINFO_UNK20 
HITINFO_SWINGNOHITSOUND 
HITINFO_UNK22 
HITINFO_RAGE_GAIN 
HITINFO_FAKE_DAMAGE 

Definition at line 446 of file UnitDefines.h.

◆ MovementFlags

Enumerator
MOVEMENTFLAG_NONE 
MOVEMENTFLAG_FORWARD 
MOVEMENTFLAG_BACKWARD 
MOVEMENTFLAG_STRAFE_LEFT 
MOVEMENTFLAG_STRAFE_RIGHT 
MOVEMENTFLAG_LEFT 
MOVEMENTFLAG_RIGHT 
MOVEMENTFLAG_PITCH_UP 
MOVEMENTFLAG_PITCH_DOWN 
MOVEMENTFLAG_WALKING 
MOVEMENTFLAG_DISABLE_GRAVITY 
MOVEMENTFLAG_ROOT 
MOVEMENTFLAG_FALLING 
MOVEMENTFLAG_FALLING_FAR 
MOVEMENTFLAG_PENDING_STOP 
MOVEMENTFLAG_PENDING_STRAFE_STOP 
MOVEMENTFLAG_PENDING_FORWARD 
MOVEMENTFLAG_PENDING_BACKWARD 
MOVEMENTFLAG_PENDING_STRAFE_LEFT 
MOVEMENTFLAG_PENDING_STRAFE_RIGHT 
MOVEMENTFLAG_PENDING_ROOT 
MOVEMENTFLAG_SWIMMING 
MOVEMENTFLAG_ASCENDING 
MOVEMENTFLAG_DESCENDING 
MOVEMENTFLAG_CAN_FLY 
MOVEMENTFLAG_FLYING 
MOVEMENTFLAG_SPLINE_ELEVATION 
MOVEMENTFLAG_WATERWALKING 
MOVEMENTFLAG_FALLING_SLOW 
MOVEMENTFLAG_HOVER 
MOVEMENTFLAG_DISABLE_COLLISION 
MOVEMENTFLAG_MASK_MOVING 
MOVEMENTFLAG_MASK_TURNING 
MOVEMENTFLAG_MASK_MOVING_FLY 
MOVEMENTFLAG_MASK_CREATURE_ALLOWED 
MOVEMENTFLAG_MASK_PLAYER_ONLY 
Todo:
if needed: add more flags to this masks that are exclusive to players
MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE 

Movement flags that have change status opcodes associated for players.

Definition at line 355 of file UnitDefines.h.

◆ MovementFlags2

Enumerator
MOVEMENTFLAG2_NONE 
MOVEMENTFLAG2_NO_STRAFE 
MOVEMENTFLAG2_NO_JUMPING 
MOVEMENTFLAG2_FULL_SPEED_TURNING 
MOVEMENTFLAG2_FULL_SPEED_PITCHING 
MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING 
MOVEMENTFLAG2_IS_VEHICLE_EXIT_VOLUNTARY 
MOVEMENTFLAG2_WATERWALKING_FULL_PITCH 
MOVEMENTFLAG2_VEHICLE_PASSENGER_IS_TRANSITION_ALLOWED 
MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS 
MOVEMENTFLAG2_UNK9 
MOVEMENTFLAG2_CAN_TURN_WHILE_FALLING 
MOVEMENTFLAG2_IGNORE_MOVEMENT_FORCES 
MOVEMENTFLAG2_CAN_DOUBLE_JUMP 
MOVEMENTFLAG2_DOUBLE_JUMP 
MOVEMENTFLAG2_AWAITING_LOAD 
MOVEMENTFLAG2_INTERPOLATED_MOVEMENT 
MOVEMENTFLAG2_INTERPOLATED_TURNING 
MOVEMENTFLAG2_INTERPOLATED_PITCHING 

Definition at line 414 of file UnitDefines.h.

◆ MovementFlags3

Enumerator
MOVEMENTFLAG3_NONE 
MOVEMENTFLAG3_DISABLE_INERTIA 
MOVEMENTFLAG3_CAN_ADV_FLY 
MOVEMENTFLAG3_ADV_FLYING 

Definition at line 438 of file UnitDefines.h.

◆ NPCFlags

enum NPCFlags : uint32

Non Player Character flags.

Enumerator
UNIT_NPC_FLAG_NONE 
UNIT_NPC_FLAG_GOSSIP 
UNIT_NPC_FLAG_QUESTGIVER 
UNIT_NPC_FLAG_UNK1 
UNIT_NPC_FLAG_UNK2 
UNIT_NPC_FLAG_TRAINER 
UNIT_NPC_FLAG_TRAINER_CLASS 
UNIT_NPC_FLAG_TRAINER_PROFESSION 
UNIT_NPC_FLAG_VENDOR 
UNIT_NPC_FLAG_VENDOR_AMMO 
UNIT_NPC_FLAG_VENDOR_FOOD 
UNIT_NPC_FLAG_VENDOR_POISON 
UNIT_NPC_FLAG_VENDOR_REAGENT 
UNIT_NPC_FLAG_REPAIR 
UNIT_NPC_FLAG_FLIGHTMASTER 
UNIT_NPC_FLAG_SPIRIT_HEALER 
UNIT_NPC_FLAG_AREA_SPIRIT_HEALER 
UNIT_NPC_FLAG_INNKEEPER 
UNIT_NPC_FLAG_BANKER 
UNIT_NPC_FLAG_PETITIONER 
UNIT_NPC_FLAG_TABARDDESIGNER 
UNIT_NPC_FLAG_BATTLEMASTER 
UNIT_NPC_FLAG_AUCTIONEER 
UNIT_NPC_FLAG_STABLEMASTER 
UNIT_NPC_FLAG_GUILD_BANKER 
UNIT_NPC_FLAG_SPELLCLICK 
UNIT_NPC_FLAG_PLAYER_VEHICLE 
UNIT_NPC_FLAG_MAILBOX 
UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC 
UNIT_NPC_FLAG_TRANSMOGRIFIER 
UNIT_NPC_FLAG_VAULTKEEPER 
UNIT_NPC_FLAG_WILD_BATTLE_PET 
UNIT_NPC_FLAG_BLACK_MARKET 

Definition at line 294 of file UnitDefines.h.

◆ NPCFlags2

enum NPCFlags2 : uint32
Enumerator
UNIT_NPC_FLAG_2_NONE 
UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER 
UNIT_NPC_FLAG_2_GARRISON_ARCHITECT 
UNIT_NPC_FLAG_2_STEERING 
UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL 
UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER 
UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC 
UNIT_NPC_FLAG_2_TRADESKILL_NPC 
UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW 
UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC 
UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR 
UNIT_NPC_FLAG_2_AZERITE_RESPEC 
UNIT_NPC_FLAG_2_ISLANDS_QUEUE 
UNIT_NPC_FLAG_2_SUPPRESS_NPC_SOUNDS_EXCEPT_END_OF_INTERACTION 
UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER 

Definition at line 334 of file UnitDefines.h.

◆ ReactStates

Enumerator
REACT_PASSIVE 
REACT_DEFENSIVE 
REACT_AGGRESSIVE 
REACT_ASSIST 

Definition at line 504 of file UnitDefines.h.

◆ SheathState

Enumerator
SHEATH_STATE_UNARMED 
SHEATH_STATE_MELEE 
SHEATH_STATE_RANGED 
MAX_SHEATH_STATE 

Definition at line 80 of file UnitDefines.h.

◆ UnitFlags

enum UnitFlags : uint32
Enumerator
UNIT_FLAG_SERVER_CONTROLLED 
UNIT_FLAG_NON_ATTACKABLE 
UNIT_FLAG_REMOVE_CLIENT_CONTROL 
UNIT_FLAG_PLAYER_CONTROLLED 
UNIT_FLAG_RENAME 
UNIT_FLAG_PREPARATION 
UNIT_FLAG_UNK_6 
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_PVP_ENABLING 
UNIT_FLAG_FORCE_NAMEPLATE 
UNIT_FLAG_CANT_SWIM 
UNIT_FLAG_CAN_SWIM 
UNIT_FLAG_NON_ATTACKABLE_2 
UNIT_FLAG_PACIFIED 
UNIT_FLAG_STUNNED 
UNIT_FLAG_IN_COMBAT 
UNIT_FLAG_ON_TAXI 
UNIT_FLAG_DISARMED 
UNIT_FLAG_CONFUSED 
UNIT_FLAG_FLEEING 
UNIT_FLAG_POSSESSED 
UNIT_FLAG_UNINTERACTIBLE 
UNIT_FLAG_SKINNABLE 
UNIT_FLAG_MOUNT 
UNIT_FLAG_UNK_28 
UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT 
UNIT_FLAG_SHEATHE 
UNIT_FLAG_IMMUNE 
UNIT_FLAG_DISALLOWED 
UNIT_FLAG_ALLOWED 

Definition at line 142 of file UnitDefines.h.

◆ UnitFlags2

Enumerator
UNIT_FLAG2_FEIGN_DEATH 
UNIT_FLAG2_HIDE_BODY 
UNIT_FLAG2_IGNORE_REPUTATION 
UNIT_FLAG2_COMPREHEND_LANG 
UNIT_FLAG2_MIRROR_IMAGE 
UNIT_FLAG2_DONT_FADE_IN 
UNIT_FLAG2_FORCE_MOVEMENT 
UNIT_FLAG2_DISARM_OFFHAND 
UNIT_FLAG2_DISABLE_PRED_STATS 
UNIT_FLAG2_ALLOW_CHANGING_TALENTS 
UNIT_FLAG2_DISARM_RANGED 
UNIT_FLAG2_REGENERATE_POWER 
UNIT_FLAG2_RESTRICT_PARTY_INTERACTION 
UNIT_FLAG2_PREVENT_SPELL_CLICK 
UNIT_FLAG2_INTERACT_WHILE_HOSTILE 
UNIT_FLAG2_CANNOT_TURN 
UNIT_FLAG2_UNK2 
UNIT_FLAG2_PLAY_DEATH_ANIM 
UNIT_FLAG2_ALLOW_CHEAT_SPELLS 
UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER 
UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS 
UNIT_FLAG2_LARGE_AOI 
UNIT_FLAG2_GIGANTIC_AOI 
UNIT_FLAG2_NO_ACTIONS 
UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS 
UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS 
UNIT_FLAG2_UNTARGETABLE_BY_CLIENT 
UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES 
UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE 
UNIT_FLAG2_UNUSED_11 
UNIT_FLAG2_INFINITE_AOI 
UNIT_FLAG2_UNUSED_13 
UNIT_FLAG2_DISALLOWED 
UNIT_FLAG2_ALLOWED 

Definition at line 192 of file UnitDefines.h.

◆ UnitFlags3

Enumerator
UNIT_FLAG3_UNK0 
UNIT_FLAG3_UNCONSCIOUS_ON_DEATH 
UNIT_FLAG3_ALLOW_MOUNTED_COMBAT 
UNIT_FLAG3_GARRISON_PET 
UNIT_FLAG3_UI_CAN_GET_POSITION 
UNIT_FLAG3_AI_OBSTACLE 
UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE 
UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK 
UNIT_FLAG3_IGNORE_COMBAT 
UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK 
UNIT_FLAG3_UNK10 
UNIT_FLAG3_UNK11 
UNIT_FLAG3_UNK12 
UNIT_FLAG3_FAKE_DEAD 
UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE 
UNIT_FLAG3_UNTARGETABLE_FROM_UI 
UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD 
UNIT_FLAG3_ALREADY_SKINNED 
UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS 
UNIT_FLAG3_SUPPRESS_NPC_SOUNDS 
UNIT_FLAG3_ALLOW_INTERACTION_WHILE_IN_COMBAT 
UNIT_FLAG3_UNK21 
UNIT_FLAG3_DONT_FADE_OUT 
UNIT_FLAG3_UNK23 
UNIT_FLAG3_FORCE_HIDE_NAMEPLATE 
UNIT_FLAG3_UNK25 
UNIT_FLAG3_UNK26 
UNIT_FLAG3_UNK27 
UNIT_FLAG3_UNK28 
UNIT_FLAG3_UNK29 
UNIT_FLAG3_UNK30 
UNIT_FLAG3_UNK31 
UNIT_FLAG3_DISALLOWED 
UNIT_FLAG3_ALLOWED 

Definition at line 244 of file UnitDefines.h.

◆ UnitMoveType

Enumerator
MOVE_WALK 
MOVE_RUN 
MOVE_RUN_BACK 
MOVE_SWIM 
MOVE_SWIM_BACK 
MOVE_TURN_RATE 
MOVE_FLIGHT 
MOVE_FLIGHT_BACK 
MOVE_PITCH_RATE 

Definition at line 115 of file UnitDefines.h.

◆ UnitPetFlag

Enumerator
UNIT_PET_FLAG_NONE 
UNIT_PET_FLAG_CAN_BE_RENAMED 
UNIT_PET_FLAG_CAN_BE_ABANDONED 

Definition at line 106 of file UnitDefines.h.

◆ UnitPVPStateFlags

Enumerator
UNIT_BYTE2_FLAG_NONE 
UNIT_BYTE2_FLAG_PVP 
UNIT_BYTE2_FLAG_UNK1 
UNIT_BYTE2_FLAG_FFA_PVP 
UNIT_BYTE2_FLAG_SANCTUARY 
UNIT_BYTE2_FLAG_UNK4 
UNIT_BYTE2_FLAG_UNK5 
UNIT_BYTE2_FLAG_UNK6 
UNIT_BYTE2_FLAG_UNK7 

Definition at line 90 of file UnitDefines.h.

◆ UnitStandStateType

Enumerator
UNIT_STAND_STATE_STAND 
UNIT_STAND_STATE_SIT 
UNIT_STAND_STATE_SIT_CHAIR 
UNIT_STAND_STATE_SLEEP 
UNIT_STAND_STATE_SIT_LOW_CHAIR 
UNIT_STAND_STATE_SIT_MEDIUM_CHAIR 
UNIT_STAND_STATE_SIT_HIGH_CHAIR 
UNIT_STAND_STATE_DEAD 
UNIT_STAND_STATE_KNEEL 
UNIT_STAND_STATE_SUBMERGED 
MAX_UNIT_STAND_STATE 

Definition at line 40 of file UnitDefines.h.

◆ UnitVisFlags

Enumerator
UNIT_VIS_FLAGS_INVISIBLE 
UNIT_VIS_FLAGS_STEALTHED 
UNIT_VIS_FLAGS_UNTRACKABLE 
UNIT_VIS_FLAGS_UNK4 
UNIT_VIS_FLAGS_UNK5 
UNIT_VIS_FLAGS_ALL 

Definition at line 57 of file UnitDefines.h.

Function Documentation

◆ DEFINE_ENUM_FLAG() [1/7]

DEFINE_ENUM_FLAG ( NPCFlags  )

◆ DEFINE_ENUM_FLAG() [2/7]

DEFINE_ENUM_FLAG ( NPCFlags2  )

◆ DEFINE_ENUM_FLAG() [3/7]

DEFINE_ENUM_FLAG ( UnitFlags  )

◆ DEFINE_ENUM_FLAG() [4/7]

DEFINE_ENUM_FLAG ( UnitFlags2  )

◆ DEFINE_ENUM_FLAG() [5/7]

DEFINE_ENUM_FLAG ( UnitFlags3  )

◆ DEFINE_ENUM_FLAG() [6/7]

DEFINE_ENUM_FLAG ( UnitPetFlag  )

◆ DEFINE_ENUM_FLAG() [7/7]

DEFINE_ENUM_FLAG ( UnitPVPStateFlags  )

◆ DescribeReactState()

char const * DescribeReactState ( ReactStates  state)
inline

Definition at line 512 of file UnitDefines.h.

+ Here is the caller graph for this function: