AzeorthCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
Unit.h File Reference
#include "EventProcessor.h"
#include "EnumFlag.h"
#include "FollowerRefMgr.h"
#include "FollowerReference.h"
#include "HostileRefMgr.h"
#include "ItemTemplate.h"
#include "MotionMaster.h"
#include "Object.h"
#include "Optional.h"
#include "SpellAuraDefines.h"
#include "SpellDefines.h"
#include "ThreatMgr.h"
#include <functional>
#include <utility>

Go to the source code of this file.

Classes

struct  DiminishingReturn
 
class  DispelInfo
 
struct  CleanDamage
 
class  DamageInfo
 
class  HealInfo
 
class  ProcEventInfo
 
struct  CalcDamageInfo
 
struct  SpellNonMeleeDamage
 
struct  SpellPeriodicAuraLogInfo
 
struct  RedirectThreatInfo
 
struct  DeclinedName
 
struct  GlobalCooldown
 
class  GlobalCooldownMgr
 
struct  UnitActionBarEntry
 
struct  CharmInfo
 
struct  AttackPosition
 
class  MMapTargetData
 
class  SafeUnitPointer
 
class  Unit
 
class  Acore::PowerPctOrderPred
 
class  Acore::HealthPctOrderPred
 
class  ConflagrateAuraStateDelayEvent
 
class  RedirectSpellEvent
 
class  VehicleDespawnEvent
 

Namespaces

namespace  Movement
 
namespace  Acore
 

Macros

#define WORLD_TRIGGER   12999
 
#define BASE_MINDAMAGE   1.0f
 
#define BASE_MAXDAMAGE   2.0f
 
#define BASE_ATTACK_TIME   2000
 
#define MAX_SHEATH_STATE   3
 
#define MAX_SPELL_CHARM   4
 
#define MAX_SPELL_VEHICLE   6
 
#define MAX_SPELL_POSSESS   8
 
#define MAX_SPELL_CONTROL_BAR   10
 
#define MAX_AGGRO_RADIUS   45.0f
 
#define MOD_END   (PCT_MOD+1)
 
#define MAX_MOVE_TYPE   9
 
#define MAX_COMBAT_RATING   25
 
#define MAX_DECLINED_NAME_CASES   5
 
#define CURRENT_FIRST_NON_MELEE_SPELL   1
 
#define CURRENT_MAX_SPELL   4
 
#define UNIT_ACTION_BUTTON_ACTION(X)   (uint32(X) & 0x00FFFFFF)
 
#define UNIT_ACTION_BUTTON_TYPE(X)   ((uint32(X) & 0xFF000000) >> 24)
 
#define MAKE_UNIT_ACTION_BUTTON(A, T)   (uint32(A) | (uint32(T) << 24))
 
#define MAX_UNIT_ACTION_BAR_INDEX   (ACTION_BAR_INDEX_END-ACTION_BAR_INDEX_START)
 
#define REACTIVE_TIMER_START   5000
 
#define SUMMON_SLOT_PET   0
 
#define SUMMON_SLOT_TOTEM   1
 
#define MAX_TOTEM_SLOT   5
 
#define SUMMON_SLOT_MINIPET   5
 
#define SUMMON_SLOT_QUEST   6
 
#define MAX_SUMMON_SLOT   7
 
#define MAX_GAMEOBJECT_SLOT   4
 
#define ATTACK_DISPLAY_DELAY   200
 
#define MAX_PLAYER_STEALTH_DETECT_RANGE   30.0f
 

Typedefs

typedef std::list< Unit * > UnitList
 
typedef std::list< std::pair< Aura *, uint8 > > DispelChargesList
 
typedef std::unordered_map< uint32, GlobalCooldownGlobalCooldownList
 
typedef std::list< Player * > SharedVisionList
 
typedef UnitActionBarEntry CharmSpellInfo
 
typedef std::unordered_map< uint32, uint32PacketCooldowns
 

Enumerations

enum  UnitBytes1Offsets : uint8 {
  UNIT_BYTES_1_OFFSET_STAND_STATE = 0 ,
  UNIT_BYTES_1_OFFSET_PET_TALENTS = 1 ,
  UNIT_BYTES_1_OFFSET_VIS_FLAG = 2 ,
  UNIT_BYTES_1_OFFSET_ANIM_TIER = 3
}
 
enum  UnitStandStateType {
  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
}
 
enum  UnitStandFlags {
  UNIT_STAND_FLAGS_UNK1 = 0x01 ,
  UNIT_STAND_FLAGS_CREEP = 0x02 ,
  UNIT_STAND_FLAGS_UNTRACKABLE = 0x04 ,
  UNIT_STAND_FLAGS_UNK4 = 0x08 ,
  UNIT_STAND_FLAGS_UNK5 = 0x10 ,
  UNIT_STAND_FLAGS_ALL = 0xFF
}
 
enum  UnitBytes1_Flags {
  UNIT_BYTE1_FLAG_GROUND = 0x00 ,
  UNIT_BYTE1_FLAG_ALWAYS_STAND = 0x01 ,
  UNIT_BYTE1_FLAG_HOVER = 0x02 ,
  UNIT_BYTE1_FLAG_FLY = 0x03 ,
  UNIT_BYTE1_FLAG_SUBMERGED = 0x04 ,
  UNIT_BYTE1_FLAG_ALL = 0xFF
}
 
enum  ShapeshiftForm {
  FORM_NONE = 0x00 ,
  FORM_CAT = 0x01 ,
  FORM_TREE = 0x02 ,
  FORM_TRAVEL = 0x03 ,
  FORM_AQUA = 0x04 ,
  FORM_BEAR = 0x05 ,
  FORM_AMBIENT = 0x06 ,
  FORM_GHOUL = 0x07 ,
  FORM_DIREBEAR = 0x08 ,
  FORM_STEVES_GHOUL = 0x09 ,
  FORM_THARONJA_SKELETON = 0x0A ,
  FORM_TEST_OF_STRENGTH = 0x0B ,
  FORM_BLB_PLAYER = 0x0C ,
  FORM_SHADOW_DANCE = 0x0D ,
  FORM_CREATUREBEAR = 0x0E ,
  FORM_CREATURECAT = 0x0F ,
  FORM_GHOSTWOLF = 0x10 ,
  FORM_BATTLESTANCE = 0x11 ,
  FORM_DEFENSIVESTANCE = 0x12 ,
  FORM_BERSERKERSTANCE = 0x13 ,
  FORM_TEST = 0x14 ,
  FORM_ZOMBIE = 0x15 ,
  FORM_METAMORPHOSIS = 0x16 ,
  FORM_UNDEAD = 0x19 ,
  FORM_MASTER_ANGLER = 0x1A ,
  FORM_FLIGHT_EPIC = 0x1B ,
  FORM_SHADOW = 0x1C ,
  FORM_FLIGHT = 0x1D ,
  FORM_STEALTH = 0x1E ,
  FORM_MOONKIN = 0x1F ,
  FORM_SPIRITOFREDEMPTION = 0x20
}
 
enum  SheathState {
  SHEATH_STATE_UNARMED = 0 ,
  SHEATH_STATE_MELEE = 1 ,
  SHEATH_STATE_RANGED = 2
}
 
enum  UnitPVPStateFlags {
  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  UnitRename {
  UNIT_CAN_BE_RENAMED = 0x01 ,
  UNIT_CAN_BE_ABANDONED = 0x02
}
 
enum  VictimState {
  VICTIMSTATE_INTACT = 0 ,
  VICTIMSTATE_HIT = 1 ,
  VICTIMSTATE_DODGE = 2 ,
  VICTIMSTATE_PARRY = 3 ,
  VICTIMSTATE_INTERRUPT = 4 ,
  VICTIMSTATE_BLOCKS = 5 ,
  VICTIMSTATE_EVADES = 6 ,
  VICTIMSTATE_IS_IMMUNE = 7 ,
  VICTIMSTATE_DEFLECTS = 8
}
 
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  InventorySlot {
  NULL_BAG = 0 ,
  NULL_SLOT = 255
}
 
enum  UnitModifierType {
  BASE_VALUE = 0 ,
  BASE_PCT = 1 ,
  TOTAL_VALUE = 2 ,
  TOTAL_PCT = 3 ,
  MODIFIER_TYPE_END = 4
}
 
enum  WeaponDamageRange {
  MINDAMAGE ,
  MAXDAMAGE ,
  MAX_WEAPON_DAMAGE_RANGE
}
 
enum  UnitMods {
  UNIT_MOD_STAT_STRENGTH ,
  UNIT_MOD_STAT_AGILITY ,
  UNIT_MOD_STAT_STAMINA ,
  UNIT_MOD_STAT_INTELLECT ,
  UNIT_MOD_STAT_SPIRIT ,
  UNIT_MOD_HEALTH ,
  UNIT_MOD_MANA ,
  UNIT_MOD_RAGE ,
  UNIT_MOD_FOCUS ,
  UNIT_MOD_ENERGY ,
  UNIT_MOD_HAPPINESS ,
  UNIT_MOD_RUNE ,
  UNIT_MOD_RUNIC_POWER ,
  UNIT_MOD_ARMOR ,
  UNIT_MOD_RESISTANCE_HOLY ,
  UNIT_MOD_RESISTANCE_FIRE ,
  UNIT_MOD_RESISTANCE_NATURE ,
  UNIT_MOD_RESISTANCE_FROST ,
  UNIT_MOD_RESISTANCE_SHADOW ,
  UNIT_MOD_RESISTANCE_ARCANE ,
  UNIT_MOD_ATTACK_POWER ,
  UNIT_MOD_ATTACK_POWER_RANGED ,
  UNIT_MOD_DAMAGE_MAINHAND ,
  UNIT_MOD_DAMAGE_OFFHAND ,
  UNIT_MOD_DAMAGE_RANGED ,
  UNIT_MOD_END ,
  UNIT_MOD_STAT_START = UNIT_MOD_STAT_STRENGTH ,
  UNIT_MOD_STAT_END = UNIT_MOD_STAT_SPIRIT + 1 ,
  UNIT_MOD_RESISTANCE_START = UNIT_MOD_ARMOR ,
  UNIT_MOD_RESISTANCE_END = UNIT_MOD_RESISTANCE_ARCANE + 1 ,
  UNIT_MOD_POWER_START = UNIT_MOD_MANA ,
  UNIT_MOD_POWER_END = UNIT_MOD_RUNIC_POWER + 1
}
 
enum  BaseModGroup {
  CRIT_PERCENTAGE ,
  RANGED_CRIT_PERCENTAGE ,
  OFFHAND_CRIT_PERCENTAGE ,
  SHIELD_BLOCK_VALUE ,
  BASEMOD_END
}
 
enum  BaseModType {
  FLAT_MOD ,
  PCT_MOD
}
 
enum  DeathState {
  ALIVE = 0 ,
  JUST_DIED = 1 ,
  CORPSE = 2 ,
  DEAD = 3 ,
  JUST_RESPAWNED = 4
}
 
enum  UnitState {
  UNIT_STATE_DIED = 0x00000001 ,
  UNIT_STATE_MELEE_ATTACKING = 0x00000002 ,
  UNIT_STATE_STUNNED = 0x00000008 ,
  UNIT_STATE_ROAMING = 0x00000010 ,
  UNIT_STATE_CHASE = 0x00000020 ,
  UNIT_STATE_FLEEING = 0x00000080 ,
  UNIT_STATE_IN_FLIGHT = 0x00000100 ,
  UNIT_STATE_FOLLOW = 0x00000200 ,
  UNIT_STATE_ROOT = 0x00000400 ,
  UNIT_STATE_CONFUSED = 0x00000800 ,
  UNIT_STATE_DISTRACTED = 0x00001000 ,
  UNIT_STATE_ISOLATED = 0x00002000 ,
  UNIT_STATE_ATTACK_PLAYER = 0x00004000 ,
  UNIT_STATE_CASTING = 0x00008000 ,
  UNIT_STATE_POSSESSED = 0x00010000 ,
  UNIT_STATE_CHARGING = 0x00020000 ,
  UNIT_STATE_JUMPING = 0x00040000 ,
  UNIT_STATE_MOVE = 0x00100000 ,
  UNIT_STATE_ROTATING = 0x00200000 ,
  UNIT_STATE_EVADE = 0x00400000 ,
  UNIT_STATE_ROAMING_MOVE = 0x00800000 ,
  UNIT_STATE_CONFUSED_MOVE = 0x01000000 ,
  UNIT_STATE_FLEEING_MOVE = 0x02000000 ,
  UNIT_STATE_CHASE_MOVE = 0x04000000 ,
  UNIT_STATE_FOLLOW_MOVE = 0x08000000 ,
  UNIT_STATE_IGNORE_PATHFINDING = 0x10000000 ,
  UNIT_STATE_NO_ENVIRONMENT_UPD = 0x20000000 ,
  UNIT_STATE_ALL_STATE_SUPPORTED ,
  UNIT_STATE_UNATTACKABLE = UNIT_STATE_IN_FLIGHT ,
  UNIT_STATE_MOVING = UNIT_STATE_ROAMING_MOVE | UNIT_STATE_CONFUSED_MOVE | UNIT_STATE_FLEEING_MOVE | UNIT_STATE_CHASE_MOVE | UNIT_STATE_FOLLOW_MOVE ,
  UNIT_STATE_CONTROLLED = (UNIT_STATE_CONFUSED | UNIT_STATE_STUNNED | UNIT_STATE_FLEEING) ,
  UNIT_STATE_LOST_CONTROL = (UNIT_STATE_CONTROLLED | UNIT_STATE_JUMPING | UNIT_STATE_CHARGING) ,
  UNIT_STATE_SIGHTLESS = (UNIT_STATE_LOST_CONTROL | UNIT_STATE_EVADE) ,
  UNIT_STATE_CANNOT_AUTOATTACK = (UNIT_STATE_LOST_CONTROL | UNIT_STATE_CASTING) ,
  UNIT_STATE_CANNOT_TURN = (UNIT_STATE_LOST_CONTROL | UNIT_STATE_ROTATING | UNIT_STATE_ROOT) ,
  UNIT_STATE_NOT_MOVE = UNIT_STATE_ROOT | UNIT_STATE_STUNNED | UNIT_STATE_DIED | UNIT_STATE_DISTRACTED ,
  UNIT_STATE_IGNORE_ANTISPEEDHACK = UNIT_STATE_FLEEING | UNIT_STATE_CONFUSED | UNIT_STATE_CHARGING | UNIT_STATE_DISTRACTED | UNIT_STATE_POSSESSED ,
  UNIT_STATE_ALL_STATE = 0xffffffff
}
 
enum  UnitMoveType {
  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  WeaponAttackType {
  BASE_ATTACK = 0 ,
  OFF_ATTACK = 1 ,
  RANGED_ATTACK = 2 ,
  MAX_ATTACK
}
 
enum  CombatRating {
  CR_WEAPON_SKILL = 0 ,
  CR_DEFENSE_SKILL = 1 ,
  CR_DODGE = 2 ,
  CR_PARRY = 3 ,
  CR_BLOCK = 4 ,
  CR_HIT_MELEE = 5 ,
  CR_HIT_RANGED = 6 ,
  CR_HIT_SPELL = 7 ,
  CR_CRIT_MELEE = 8 ,
  CR_CRIT_RANGED = 9 ,
  CR_CRIT_SPELL = 10 ,
  CR_HIT_TAKEN_MELEE = 11 ,
  CR_HIT_TAKEN_RANGED = 12 ,
  CR_HIT_TAKEN_SPELL = 13 ,
  CR_CRIT_TAKEN_MELEE = 14 ,
  CR_CRIT_TAKEN_RANGED = 15 ,
  CR_CRIT_TAKEN_SPELL = 16 ,
  CR_HASTE_MELEE = 17 ,
  CR_HASTE_RANGED = 18 ,
  CR_HASTE_SPELL = 19 ,
  CR_WEAPON_SKILL_MAINHAND = 20 ,
  CR_WEAPON_SKILL_OFFHAND = 21 ,
  CR_WEAPON_SKILL_RANGED = 22 ,
  CR_EXPERTISE = 23 ,
  CR_ARMOR_PENETRATION = 24
}
 
enum  DamageEffectType {
  DIRECT_DAMAGE = 0 ,
  SPELL_DIRECT_DAMAGE = 1 ,
  DOT = 2 ,
  HEAL = 3 ,
  NODAMAGE = 4 ,
  SELF_DAMAGE = 5
}
 
enum  UnitFlags : uint32 {
  UNIT_FLAG_NONE = 0x00000000 ,
  UNIT_FLAG_SERVER_CONTROLLED = 0x00000001 ,
  UNIT_FLAG_NON_ATTACKABLE = 0x00000002 ,
  UNIT_FLAG_DISABLE_MOVE = 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 = 0x00001000 ,
  UNIT_FLAG_SILENCED = 0x00002000 ,
  UNIT_FLAG_CANNOT_SWIM = 0x00004000 ,
  UNIT_FLAG_SWIMMING = 0x00008000 ,
  UNIT_FLAG_NON_ATTACKABLE_2 = 0x00010000 ,
  UNIT_FLAG_PACIFIED = 0x00020000 ,
  UNIT_FLAG_STUNNED = 0x00040000 ,
  UNIT_FLAG_IN_COMBAT = 0x00080000 ,
  UNIT_FLAG_TAXI_FLIGHT = 0x00100000 ,
  UNIT_FLAG_DISARMED = 0x00200000 ,
  UNIT_FLAG_CONFUSED = 0x00400000 ,
  UNIT_FLAG_FLEEING = 0x00800000 ,
  UNIT_FLAG_POSSESSED = 0x01000000 ,
  UNIT_FLAG_NOT_SELECTABLE = 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
}
 
enum  UnitFlags2 : uint32 {
  UNIT_FLAG2_NONE = 0x00000000 ,
  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_DO_NOT_FADE_IN = 0x00000020 ,
  UNIT_FLAG2_FORCE_MOVEMENT = 0x00000040 ,
  UNIT_FLAG2_DISARM_OFFHAND = 0x00000080 ,
  UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100 ,
  UNIT_FLAG2_DISARM_RANGED = 0x00000400 ,
  UNIT_FLAG2_REGENERATE_POWER = 0x00000800 ,
  UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000 ,
  UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000 ,
  UNIT_FLAG2_ALLOW_ENEMY_INTERACT = 0x00004000 ,
  UNIT_FLAG2_CANNOT_TURN = 0x00008000 ,
  UNIT_FLAG2_UNK2 = 0x00010000 ,
  UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000 ,
  UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000 ,
  UNIT_FLAG2_UNUSED_6 = 0x01000000
}
 
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_SPIRITHEALER = 0x00004000 ,
  UNIT_NPC_FLAG_SPIRITGUIDE = 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_VENDOR_MASK = UNIT_NPC_FLAG_VENDOR | UNIT_NPC_FLAG_VENDOR_AMMO | UNIT_NPC_FLAG_VENDOR_POISON | UNIT_NPC_FLAG_VENDOR_REAGENT
}
 Non Player Character flags. More...
 
enum  MovementFlags {
  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_ONTRANSPORT = 0x00000200 ,
  MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000400 ,
  MOVEMENTFLAG_ROOT = 0x00000800 ,
  MOVEMENTFLAG_FALLING = 0x00001000 ,
  MOVEMENTFLAG_FALLING_FAR = 0x00002000 ,
  MOVEMENTFLAG_PENDING_STOP = 0x00004000 ,
  MOVEMENTFLAG_PENDING_STRAFE_STOP = 0x00008000 ,
  MOVEMENTFLAG_PENDING_FORWARD = 0x00010000 ,
  MOVEMENTFLAG_PENDING_BACKWARD = 0x00020000 ,
  MOVEMENTFLAG_PENDING_STRAFE_LEFT = 0x00040000 ,
  MOVEMENTFLAG_PENDING_STRAFE_RIGHT = 0x00080000 ,
  MOVEMENTFLAG_PENDING_ROOT = 0x00100000 ,
  MOVEMENTFLAG_SWIMMING = 0x00200000 ,
  MOVEMENTFLAG_ASCENDING = 0x00400000 ,
  MOVEMENTFLAG_DESCENDING = 0x00800000 ,
  MOVEMENTFLAG_CAN_FLY = 0x01000000 ,
  MOVEMENTFLAG_FLYING = 0x02000000 ,
  MOVEMENTFLAG_SPLINE_ELEVATION = 0x04000000 ,
  MOVEMENTFLAG_SPLINE_ENABLED = 0x08000000 ,
  MOVEMENTFLAG_WATERWALKING = 0x10000000 ,
  MOVEMENTFLAG_FALLING_SLOW = 0x20000000 ,
  MOVEMENTFLAG_HOVER = 0x40000000 ,
  MOVEMENTFLAG_MASK_MOVING ,
  MOVEMENTFLAG_MASK_TURNING ,
  MOVEMENTFLAG_MASK_MOVING_FLY ,
  MOVEMENTFLAG_MASK_PLAYER_ONLY ,
  MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
}
 
enum  MovementFlags2 {
  MOVEMENTFLAG2_NONE = 0x00000000 ,
  MOVEMENTFLAG2_NO_STRAFE = 0x00000001 ,
  MOVEMENTFLAG2_NO_JUMPING = 0x00000002 ,
  MOVEMENTFLAG2_UNK3 = 0x00000004 ,
  MOVEMENTFLAG2_FULL_SPEED_TURNING = 0x00000008 ,
  MOVEMENTFLAG2_FULL_SPEED_PITCHING = 0x00000010 ,
  MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING = 0x00000020 ,
  MOVEMENTFLAG2_UNK7 = 0x00000040 ,
  MOVEMENTFLAG2_UNK8 = 0x00000080 ,
  MOVEMENTFLAG2_UNK9 = 0x00000100 ,
  MOVEMENTFLAG2_UNK10 = 0x00000200 ,
  MOVEMENTFLAG2_INTERPOLATED_MOVEMENT = 0x00000400 ,
  MOVEMENTFLAG2_INTERPOLATED_TURNING = 0x00000800 ,
  MOVEMENTFLAG2_INTERPOLATED_PITCHING = 0x00001000 ,
  MOVEMENTFLAG2_UNK14 = 0x00002000 ,
  MOVEMENTFLAG2_UNK15 = 0x00004000 ,
  MOVEMENTFLAG2_UNK16 = 0x00008000
}
 
enum  SplineFlags {
  SPLINEFLAG_NONE = 0x00000000 ,
  SPLINEFLAG_FORWARD = 0x00000001 ,
  SPLINEFLAG_BACKWARD = 0x00000002 ,
  SPLINEFLAG_STRAFE_LEFT = 0x00000004 ,
  SPLINEFLAG_STRAFE_RIGHT = 0x00000008 ,
  SPLINEFLAG_TURN_LEFT = 0x00000010 ,
  SPLINEFLAG_TURN_RIGHT = 0x00000020 ,
  SPLINEFLAG_PITCH_UP = 0x00000040 ,
  SPLINEFLAG_PITCH_DOWN = 0x00000080 ,
  SPLINEFLAG_DONE = 0x00000100 ,
  SPLINEFLAG_FALLING = 0x00000200 ,
  SPLINEFLAG_NO_SPLINE = 0x00000400 ,
  SPLINEFLAG_TRAJECTORY = 0x00000800 ,
  SPLINEFLAG_WALK_MODE = 0x00001000 ,
  SPLINEFLAG_FLYING = 0x00002000 ,
  SPLINEFLAG_KNOCKBACK = 0x00004000 ,
  SPLINEFLAG_FINAL_POINT = 0x00008000 ,
  SPLINEFLAG_FINAL_TARGET = 0x00010000 ,
  SPLINEFLAG_FINAL_FACING = 0x00020000 ,
  SPLINEFLAG_CATMULL_ROM = 0x00040000 ,
  SPLINEFLAG_CYCLIC = 0x00080000 ,
  SPLINEFLAG_ENTER_CYCLE = 0x00100000 ,
  SPLINEFLAG_ANIMATION_TIER = 0x00200000 ,
  SPLINEFLAG_FROZEN = 0x00400000 ,
  SPLINEFLAG_TRANSPORT = 0x00800000 ,
  SPLINEFLAG_TRANSPORT_EXIT = 0x01000000 ,
  SPLINEFLAG_UNKNOWN7 = 0x02000000 ,
  SPLINEFLAG_UNKNOWN8 = 0x04000000 ,
  SPLINEFLAG_ORIENTATION_INVERTED = 0x08000000 ,
  SPLINEFLAG_USE_PATH_SMOOTHING = 0x10000000 ,
  SPLINEFLAG_ANIMATION = 0x20000000 ,
  SPLINEFLAG_UNCOMPRESSED_PATH = 0x40000000 ,
  SPLINEFLAG_UNKNOWN10 = 0x80000000
}
 
enum  SplineType {
  SPLINETYPE_NORMAL = 0 ,
  SPLINETYPE_STOP = 1 ,
  SPLINETYPE_FACING_SPOT = 2 ,
  SPLINETYPE_FACING_TARGET = 3 ,
  SPLINETYPE_FACING_ANGLE = 4
}
 
enum  UnitTypeMask {
  UNIT_MASK_NONE = 0x00000000 ,
  UNIT_MASK_SUMMON = 0x00000001 ,
  UNIT_MASK_MINION = 0x00000002 ,
  UNIT_MASK_GUARDIAN = 0x00000004 ,
  UNIT_MASK_TOTEM = 0x00000008 ,
  UNIT_MASK_PET = 0x00000010 ,
  UNIT_MASK_VEHICLE = 0x00000020 ,
  UNIT_MASK_PUPPET = 0x00000040 ,
  UNIT_MASK_HUNTER_PET = 0x00000080 ,
  UNIT_MASK_CONTROLABLE_GUARDIAN = 0x00000100 ,
  UNIT_MASK_ACCESSORY = 0x00000200
}
 
enum  DiminishingLevels {
  DIMINISHING_LEVEL_1 = 0 ,
  DIMINISHING_LEVEL_2 = 1 ,
  DIMINISHING_LEVEL_3 = 2 ,
  DIMINISHING_LEVEL_IMMUNE = 3 ,
  DIMINISHING_LEVEL_4 = 3 ,
  DIMINISHING_LEVEL_TAUNT_IMMUNE = 4
}
 
enum  MeleeHitOutcome {
  MELEE_HIT_EVADE ,
  MELEE_HIT_MISS ,
  MELEE_HIT_DODGE ,
  MELEE_HIT_BLOCK ,
  MELEE_HIT_PARRY ,
  MELEE_HIT_GLANCING ,
  MELEE_HIT_CRIT ,
  MELEE_HIT_CRUSHING ,
  MELEE_HIT_NORMAL
}
 
enum  ExtraAttackSpells {
  SPELL_SWORD_SPECIALIZATION = 16459 ,
  SPELL_HACK_AND_SLASH = 66923
}
 
enum  CurrentSpellTypes {
  CURRENT_MELEE_SPELL = 0 ,
  CURRENT_GENERIC_SPELL = 1 ,
  CURRENT_CHANNELED_SPELL = 2 ,
  CURRENT_AUTOREPEAT_SPELL = 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
}
 
enum  CommandStates {
  COMMAND_STAY = 0 ,
  COMMAND_FOLLOW = 1 ,
  COMMAND_ATTACK = 2 ,
  COMMAND_ABANDON = 3
}
 
enum  CharmType {
  CHARM_TYPE_CHARM ,
  CHARM_TYPE_POSSESS ,
  CHARM_TYPE_VEHICLE ,
  CHARM_TYPE_CONVERT
}
 
enum  ActionBarIndex {
  ACTION_BAR_INDEX_START = 0 ,
  ACTION_BAR_INDEX_PET_SPELL_START = 3 ,
  ACTION_BAR_INDEX_PET_SPELL_END = 7 ,
  ACTION_BAR_INDEX_END = 10
}
 
enum  ReactiveType {
  REACTIVE_DEFENSE = 0 ,
  REACTIVE_HUNTER_PARRY = 1 ,
  REACTIVE_OVERPOWER = 2 ,
  REACTIVE_WOLVERINE_BITE = 3 ,
  MAX_REACTIVE
}
 
enum  PlayerTotemType {
  SUMMON_TYPE_TOTEM_FIRE = 63 ,
  SUMMON_TYPE_TOTEM_EARTH = 81 ,
  SUMMON_TYPE_TOTEM_WATER = 82 ,
  SUMMON_TYPE_TOTEM_AIR = 83
}
 
enum  SpellCooldownFlags {
  SPELL_COOLDOWN_FLAG_NONE = 0x0 ,
  SPELL_COOLDOWN_FLAG_INCLUDE_GCD = 0x1 ,
  SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS = 0x2
}
 Spell cooldown flags sent in SMSG_SPELL_COOLDOWN. More...
 

Functions

 DEFINE_ENUM_FLAG (UnitFlags)
 
 DEFINE_ENUM_FLAG (UnitFlags2)
 
 DEFINE_ENUM_FLAG (NPCFlags)
 
void createProcFlags (SpellInfo const *spellInfo, WeaponAttackType attackType, bool positive, uint32 &procAttacker, uint32 &procVictim)
 
uint32 createProcExtendMask (SpellNonMeleeDamage *damageInfo, SpellMissInfo missCondition)
 

Variables

static constexpr uint32 MAX_CREATURE_SPELLS = 8
 
static constexpr uint32 infinityCooldownDelay = 0x9A7EC800
 
static constexpr uint32 infinityCooldownDelayCheck = 0x4D3F6400
 
float baseMoveSpeed [MAX_MOVE_TYPE]
 
float playerBaseMoveSpeed [MAX_MOVE_TYPE]
 

Macro Definition Documentation

◆ ATTACK_DISPLAY_DELAY

#define ATTACK_DISPLAY_DELAY   200

◆ BASE_ATTACK_TIME

#define BASE_ATTACK_TIME   2000

◆ BASE_MAXDAMAGE

#define BASE_MAXDAMAGE   2.0f

◆ BASE_MINDAMAGE

#define BASE_MINDAMAGE   1.0f

◆ CURRENT_FIRST_NON_MELEE_SPELL

#define CURRENT_FIRST_NON_MELEE_SPELL   1

◆ CURRENT_MAX_SPELL

#define CURRENT_MAX_SPELL   4

◆ MAKE_UNIT_ACTION_BUTTON

#define MAKE_UNIT_ACTION_BUTTON (   A,
 
)    (uint32(A) | (uint32(T) << 24))

◆ MAX_AGGRO_RADIUS

#define MAX_AGGRO_RADIUS   45.0f

◆ MAX_COMBAT_RATING

#define MAX_COMBAT_RATING   25

◆ MAX_DECLINED_NAME_CASES

#define MAX_DECLINED_NAME_CASES   5

◆ MAX_GAMEOBJECT_SLOT

#define MAX_GAMEOBJECT_SLOT   4

◆ MAX_MOVE_TYPE

#define MAX_MOVE_TYPE   9

◆ MAX_PLAYER_STEALTH_DETECT_RANGE

#define MAX_PLAYER_STEALTH_DETECT_RANGE   30.0f

◆ MAX_SHEATH_STATE

#define MAX_SHEATH_STATE   3

◆ MAX_SPELL_CHARM

#define MAX_SPELL_CHARM   4

◆ MAX_SPELL_CONTROL_BAR

#define MAX_SPELL_CONTROL_BAR   10

◆ MAX_SPELL_POSSESS

#define MAX_SPELL_POSSESS   8

◆ MAX_SPELL_VEHICLE

#define MAX_SPELL_VEHICLE   6

◆ MAX_SUMMON_SLOT

#define MAX_SUMMON_SLOT   7

◆ MAX_TOTEM_SLOT

#define MAX_TOTEM_SLOT   5

◆ MAX_UNIT_ACTION_BAR_INDEX

#define MAX_UNIT_ACTION_BAR_INDEX   (ACTION_BAR_INDEX_END-ACTION_BAR_INDEX_START)

◆ MOD_END

#define MOD_END   (PCT_MOD+1)

◆ REACTIVE_TIMER_START

#define REACTIVE_TIMER_START   5000

◆ SUMMON_SLOT_MINIPET

#define SUMMON_SLOT_MINIPET   5

◆ SUMMON_SLOT_PET

#define SUMMON_SLOT_PET   0

◆ SUMMON_SLOT_QUEST

#define SUMMON_SLOT_QUEST   6

◆ SUMMON_SLOT_TOTEM

#define SUMMON_SLOT_TOTEM   1

◆ UNIT_ACTION_BUTTON_ACTION

#define UNIT_ACTION_BUTTON_ACTION (   X)    (uint32(X) & 0x00FFFFFF)

◆ UNIT_ACTION_BUTTON_TYPE

#define UNIT_ACTION_BUTTON_TYPE (   X)    ((uint32(X) & 0xFF000000) >> 24)

◆ WORLD_TRIGGER

#define WORLD_TRIGGER   12999

Typedef Documentation

◆ CharmSpellInfo

◆ DispelChargesList

typedef std::list< std::pair<Aura*, uint8> > DispelChargesList

◆ GlobalCooldownList

typedef std::unordered_map<uint32 , GlobalCooldown> GlobalCooldownList

◆ PacketCooldowns

typedef std::unordered_map<uint32, uint32> PacketCooldowns

◆ SharedVisionList

typedef std::list<Player*> SharedVisionList

◆ UnitList

typedef std::list<Unit*> UnitList

Enumeration Type Documentation

◆ ActionBarIndex

Enumerator
ACTION_BAR_INDEX_START 
ACTION_BAR_INDEX_PET_SPELL_START 
ACTION_BAR_INDEX_PET_SPELL_END 
ACTION_BAR_INDEX_END 
1084{
1089};
@ ACTION_BAR_INDEX_PET_SPELL_START
Definition: Unit.h:1086
@ ACTION_BAR_INDEX_PET_SPELL_END
Definition: Unit.h:1087
@ ACTION_BAR_INDEX_END
Definition: Unit.h:1088
@ ACTION_BAR_INDEX_START
Definition: Unit.h:1085

◆ ActiveStates

Enumerator
ACT_PASSIVE 
ACT_DISABLED 
ACT_ENABLED 
ACT_COMMAND 
ACT_REACTION 
ACT_DECIDE 
1012{
1013 ACT_PASSIVE = 0x01, // 0x01 - passive
1014 ACT_DISABLED = 0x81, // 0x80 - castable
1015 ACT_ENABLED = 0xC1, // 0x40 | 0x80 - auto cast + castable
1016 ACT_COMMAND = 0x07, // 0x01 | 0x02 | 0x04
1017 ACT_REACTION = 0x06, // 0x02 | 0x04
1018 ACT_DECIDE = 0x00 // custom
1019};
@ ACT_REACTION
Definition: Unit.h:1017
@ ACT_DECIDE
Definition: Unit.h:1018
@ ACT_COMMAND
Definition: Unit.h:1016
@ ACT_ENABLED
Definition: Unit.h:1015
@ ACT_PASSIVE
Definition: Unit.h:1013
@ ACT_DISABLED
Definition: Unit.h:1014

◆ BaseModGroup

Enumerator
CRIT_PERCENTAGE 
RANGED_CRIT_PERCENTAGE 
OFFHAND_CRIT_PERCENTAGE 
SHIELD_BLOCK_VALUE 
BASEMOD_END 
298{
304};
@ OFFHAND_CRIT_PERCENTAGE
Definition: Unit.h:301
@ BASEMOD_END
Definition: Unit.h:303
@ SHIELD_BLOCK_VALUE
Definition: Unit.h:302
@ CRIT_PERCENTAGE
Definition: Unit.h:299
@ RANGED_CRIT_PERCENTAGE
Definition: Unit.h:300

◆ BaseModType

Enumerator
FLAT_MOD 
PCT_MOD 
307{
308 FLAT_MOD,
309 PCT_MOD
310};
@ FLAT_MOD
Definition: Unit.h:308
@ PCT_MOD
Definition: Unit.h:309

◆ CharmType

enum CharmType
Enumerator
CHARM_TYPE_CHARM 
CHARM_TYPE_POSSESS 
CHARM_TYPE_VEHICLE 
CHARM_TYPE_CONVERT 
1074{
1079};
@ CHARM_TYPE_CHARM
Definition: Unit.h:1075
@ CHARM_TYPE_POSSESS
Definition: Unit.h:1076
@ CHARM_TYPE_CONVERT
Definition: Unit.h:1078
@ CHARM_TYPE_VEHICLE
Definition: Unit.h:1077

◆ CombatRating

Enumerator
CR_WEAPON_SKILL 
CR_DEFENSE_SKILL 
CR_DODGE 
CR_PARRY 
CR_BLOCK 
CR_HIT_MELEE 
CR_HIT_RANGED 
CR_HIT_SPELL 
CR_CRIT_MELEE 
CR_CRIT_RANGED 
CR_CRIT_SPELL 
CR_HIT_TAKEN_MELEE 
CR_HIT_TAKEN_RANGED 
CR_HIT_TAKEN_SPELL 
CR_CRIT_TAKEN_MELEE 
CR_CRIT_TAKEN_RANGED 
CR_CRIT_TAKEN_SPELL 
CR_HASTE_MELEE 
CR_HASTE_RANGED 
CR_HASTE_SPELL 
CR_WEAPON_SKILL_MAINHAND 
CR_WEAPON_SKILL_OFFHAND 
CR_WEAPON_SKILL_RANGED 
CR_EXPERTISE 
CR_ARMOR_PENETRATION 
403{
404 CR_WEAPON_SKILL = 0,
406 CR_DODGE = 2,
407 CR_PARRY = 3,
408 CR_BLOCK = 4,
409 CR_HIT_MELEE = 5,
410 CR_HIT_RANGED = 6,
411 CR_HIT_SPELL = 7,
412 CR_CRIT_MELEE = 8,
413 CR_CRIT_RANGED = 9,
414 CR_CRIT_SPELL = 10,
421 CR_HASTE_MELEE = 17,
422 CR_HASTE_RANGED = 18,
423 CR_HASTE_SPELL = 19,
427 CR_EXPERTISE = 23,
429};
@ CR_EXPERTISE
Definition: Unit.h:427
@ CR_HIT_TAKEN_MELEE
Definition: Unit.h:415
@ CR_WEAPON_SKILL_RANGED
Definition: Unit.h:426
@ CR_HASTE_RANGED
Definition: Unit.h:422
@ CR_HIT_MELEE
Definition: Unit.h:409
@ CR_CRIT_TAKEN_RANGED
Definition: Unit.h:419
@ CR_CRIT_TAKEN_SPELL
Definition: Unit.h:420
@ CR_ARMOR_PENETRATION
Definition: Unit.h:428
@ CR_CRIT_MELEE
Definition: Unit.h:412
@ CR_CRIT_RANGED
Definition: Unit.h:413
@ CR_HIT_TAKEN_SPELL
Definition: Unit.h:417
@ CR_WEAPON_SKILL
Definition: Unit.h:404
@ CR_PARRY
Definition: Unit.h:407
@ CR_WEAPON_SKILL_OFFHAND
Definition: Unit.h:425
@ CR_DODGE
Definition: Unit.h:406
@ CR_DEFENSE_SKILL
Definition: Unit.h:405
@ CR_HASTE_MELEE
Definition: Unit.h:421
@ CR_BLOCK
Definition: Unit.h:408
@ CR_WEAPON_SKILL_MAINHAND
Definition: Unit.h:424
@ CR_HASTE_SPELL
Definition: Unit.h:423
@ CR_HIT_SPELL
Definition: Unit.h:411
@ CR_HIT_TAKEN_RANGED
Definition: Unit.h:416
@ CR_CRIT_SPELL
Definition: Unit.h:414
@ CR_HIT_RANGED
Definition: Unit.h:410
@ CR_CRIT_TAKEN_MELEE
Definition: Unit.h:418

◆ CommandStates

Enumerator
COMMAND_STAY 
COMMAND_FOLLOW 
COMMAND_ATTACK 
COMMAND_ABANDON 
1029{
1030 COMMAND_STAY = 0,
1031 COMMAND_FOLLOW = 1,
1032 COMMAND_ATTACK = 2,
1033 COMMAND_ABANDON = 3
1034};
@ COMMAND_ATTACK
Definition: Unit.h:1032
@ COMMAND_ABANDON
Definition: Unit.h:1033
@ COMMAND_STAY
Definition: Unit.h:1030
@ COMMAND_FOLLOW
Definition: Unit.h:1031

◆ CurrentSpellTypes

Enumerator
CURRENT_MELEE_SPELL 
CURRENT_GENERIC_SPELL 
CURRENT_CHANNELED_SPELL 
CURRENT_AUTOREPEAT_SPELL 
977{
982};
@ CURRENT_CHANNELED_SPELL
Definition: Unit.h:980
@ CURRENT_GENERIC_SPELL
Definition: Unit.h:979
@ CURRENT_MELEE_SPELL
Definition: Unit.h:978
@ CURRENT_AUTOREPEAT_SPELL
Definition: Unit.h:981

◆ DamageEffectType

Enumerator
DIRECT_DAMAGE 
SPELL_DIRECT_DAMAGE 
DOT 
HEAL 
NODAMAGE 
SELF_DAMAGE 
434{
435 DIRECT_DAMAGE = 0, // used for normal weapon damage (not for class abilities or spells)
436 SPELL_DIRECT_DAMAGE = 1, // spell/class abilities damage
437 DOT = 2,
438 HEAL = 3,
439 NODAMAGE = 4, // used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
440 SELF_DAMAGE = 5
441};
@ SELF_DAMAGE
Definition: Unit.h:440
@ DIRECT_DAMAGE
Definition: Unit.h:435
@ NODAMAGE
Definition: Unit.h:439
@ DOT
Definition: Unit.h:437
@ SPELL_DIRECT_DAMAGE
Definition: Unit.h:436
@ HEAL
Definition: Unit.h:438

◆ DeathState

enum DeathState
Enumerator
ALIVE 
JUST_DIED 
CORPSE 
DEAD 
JUST_RESPAWNED 
315{
316 ALIVE = 0,
317 JUST_DIED = 1,
318 CORPSE = 2,
319 DEAD = 3,
320 JUST_RESPAWNED = 4,
321};
@ CORPSE
Definition: Unit.h:318
@ DEAD
Definition: Unit.h:319
@ ALIVE
Definition: Unit.h:316
@ JUST_RESPAWNED
Definition: Unit.h:320
@ JUST_DIED
Definition: Unit.h:317

◆ DiminishingLevels

Enumerator
DIMINISHING_LEVEL_1 
DIMINISHING_LEVEL_2 
DIMINISHING_LEVEL_3 
DIMINISHING_LEVEL_IMMUNE 
DIMINISHING_LEVEL_4 
DIMINISHING_LEVEL_TAUNT_IMMUNE 
693{
700};
@ DIMINISHING_LEVEL_3
Definition: Unit.h:696
@ DIMINISHING_LEVEL_1
Definition: Unit.h:694
@ DIMINISHING_LEVEL_4
Definition: Unit.h:698
@ DIMINISHING_LEVEL_IMMUNE
Definition: Unit.h:697
@ DIMINISHING_LEVEL_TAUNT_IMMUNE
Definition: Unit.h:699
@ DIMINISHING_LEVEL_2
Definition: Unit.h:695

◆ ExtraAttackSpells

Enumerator
SPELL_SWORD_SPECIALIZATION 
SPELL_HACK_AND_SLASH 
721{
724};
@ SPELL_HACK_AND_SLASH
Definition: Unit.h:723
@ SPELL_SWORD_SPECIALIZATION
Definition: Unit.h:722

◆ 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 
178{
179 HITINFO_NORMALSWING = 0x00000000,
180 HITINFO_UNK1 = 0x00000001, // req correct packet structure
181 HITINFO_AFFECTS_VICTIM = 0x00000002,
182 HITINFO_OFFHAND = 0x00000004,
183 HITINFO_UNK2 = 0x00000008,
184 HITINFO_MISS = 0x00000010,
185 HITINFO_FULL_ABSORB = 0x00000020,
186 HITINFO_PARTIAL_ABSORB = 0x00000040,
187 HITINFO_FULL_RESIST = 0x00000080,
188 HITINFO_PARTIAL_RESIST = 0x00000100,
189 HITINFO_CRITICALHIT = 0x00000200, // critical hit
190 HITINFO_UNK10 = 0x00000400,
191 HITINFO_UNK11 = 0x00000800,
192 HITINFO_UNK12 = 0x00001000,
193 HITINFO_BLOCK = 0x00002000, // blocked damage
194 HITINFO_UNK14 = 0x00004000, // set only if meleespellid is present// no world text when victim is hit for 0 dmg(HideWorldTextForNoDamage?)
195 HITINFO_UNK15 = 0x00008000, // player victim?// something related to blod sprut visual (BloodSpurtInBack?)
196 HITINFO_GLANCING = 0x00010000,
197 HITINFO_CRUSHING = 0x00020000,
198 HITINFO_NO_ANIMATION = 0x00040000,
199 HITINFO_UNK19 = 0x00080000,
200 HITINFO_UNK20 = 0x00100000,
201 HITINFO_SWINGNOHITSOUND = 0x00200000, // unused?
202 HITINFO_UNK22 = 0x00400000,
203 HITINFO_RAGE_GAIN = 0x00800000,
204 HITINFO_FAKE_DAMAGE = 0x01000000 // enables damage animation even if no damage done, set only if no damage
205};
@ HITINFO_PARTIAL_ABSORB
Definition: Unit.h:186
@ HITINFO_UNK2
Definition: Unit.h:183
@ HITINFO_FULL_RESIST
Definition: Unit.h:187
@ HITINFO_NORMALSWING
Definition: Unit.h:179
@ HITINFO_UNK22
Definition: Unit.h:202
@ HITINFO_BLOCK
Definition: Unit.h:193
@ HITINFO_UNK15
Definition: Unit.h:195
@ HITINFO_UNK19
Definition: Unit.h:199
@ HITINFO_CRUSHING
Definition: Unit.h:197
@ HITINFO_UNK20
Definition: Unit.h:200
@ HITINFO_FAKE_DAMAGE
Definition: Unit.h:204
@ HITINFO_SWINGNOHITSOUND
Definition: Unit.h:201
@ HITINFO_UNK12
Definition: Unit.h:192
@ HITINFO_MISS
Definition: Unit.h:184
@ HITINFO_RAGE_GAIN
Definition: Unit.h:203
@ HITINFO_FULL_ABSORB
Definition: Unit.h:185
@ HITINFO_NO_ANIMATION
Definition: Unit.h:198
@ HITINFO_OFFHAND
Definition: Unit.h:182
@ HITINFO_UNK1
Definition: Unit.h:180
@ HITINFO_GLANCING
Definition: Unit.h:196
@ HITINFO_UNK11
Definition: Unit.h:191
@ HITINFO_CRITICALHIT
Definition: Unit.h:189
@ HITINFO_PARTIAL_RESIST
Definition: Unit.h:188
@ HITINFO_AFFECTS_VICTIM
Definition: Unit.h:181
@ HITINFO_UNK14
Definition: Unit.h:194
@ HITINFO_UNK10
Definition: Unit.h:190

◆ InventorySlot

Enumerator
NULL_BAG 
NULL_SLOT 
209{
210 NULL_BAG = 0,
211 NULL_SLOT = 255
212};
@ NULL_BAG
Definition: Unit.h:210
@ NULL_SLOT
Definition: Unit.h:211

◆ MeleeHitOutcome

Enumerator
MELEE_HIT_EVADE 
MELEE_HIT_MISS 
MELEE_HIT_DODGE 
MELEE_HIT_BLOCK 
MELEE_HIT_PARRY 
MELEE_HIT_GLANCING 
MELEE_HIT_CRIT 
MELEE_HIT_CRUSHING 
MELEE_HIT_NORMAL 
715{
718};
@ MELEE_HIT_CRUSHING
Definition: Unit.h:717
@ MELEE_HIT_BLOCK
Definition: Unit.h:716
@ MELEE_HIT_CRIT
Definition: Unit.h:717
@ MELEE_HIT_NORMAL
Definition: Unit.h:717
@ MELEE_HIT_EVADE
Definition: Unit.h:716
@ MELEE_HIT_DODGE
Definition: Unit.h:716
@ MELEE_HIT_MISS
Definition: Unit.h:716
@ MELEE_HIT_PARRY
Definition: Unit.h:716
@ MELEE_HIT_GLANCING
Definition: Unit.h:717

◆ 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_ONTRANSPORT 
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_SPLINE_ENABLED 
MOVEMENTFLAG_WATERWALKING 
MOVEMENTFLAG_FALLING_SLOW 
MOVEMENTFLAG_HOVER 
MOVEMENTFLAG_MASK_MOVING 
MOVEMENTFLAG_MASK_TURNING 
MOVEMENTFLAG_MASK_MOVING_FLY 
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.

550{
551 MOVEMENTFLAG_NONE = 0x00000000,
552 MOVEMENTFLAG_FORWARD = 0x00000001,
553 MOVEMENTFLAG_BACKWARD = 0x00000002,
554 MOVEMENTFLAG_STRAFE_LEFT = 0x00000004,
555 MOVEMENTFLAG_STRAFE_RIGHT = 0x00000008,
556 MOVEMENTFLAG_LEFT = 0x00000010,
557 MOVEMENTFLAG_RIGHT = 0x00000020,
558 MOVEMENTFLAG_PITCH_UP = 0x00000040,
559 MOVEMENTFLAG_PITCH_DOWN = 0x00000080,
560 MOVEMENTFLAG_WALKING = 0x00000100, // Walking
561 MOVEMENTFLAG_ONTRANSPORT = 0x00000200, // Used for flying on some creatures
562 MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000400, // Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible.
563 MOVEMENTFLAG_ROOT = 0x00000800, // Must not be set along with MOVEMENTFLAG_MASK_MOVING
564 MOVEMENTFLAG_FALLING = 0x00001000, // damage dealt on that type of falling
565 MOVEMENTFLAG_FALLING_FAR = 0x00002000,
566 MOVEMENTFLAG_PENDING_STOP = 0x00004000,
568 MOVEMENTFLAG_PENDING_FORWARD = 0x00010000,
572 MOVEMENTFLAG_PENDING_ROOT = 0x00100000,
573 MOVEMENTFLAG_SWIMMING = 0x00200000, // appears with fly flag also
574 MOVEMENTFLAG_ASCENDING = 0x00400000, // press "space" when flying
575 MOVEMENTFLAG_DESCENDING = 0x00800000,
576 MOVEMENTFLAG_CAN_FLY = 0x01000000, // Appears when unit can fly AND also walk
577 MOVEMENTFLAG_FLYING = 0x02000000, // unit is actually flying. pretty sure this is only used for players. creatures use disable_gravity
578 MOVEMENTFLAG_SPLINE_ELEVATION = 0x04000000, // used for flight paths
579 MOVEMENTFLAG_SPLINE_ENABLED = 0x08000000, // used for flight paths
580 MOVEMENTFLAG_WATERWALKING = 0x10000000, // prevent unit from falling through water
581 MOVEMENTFLAG_FALLING_SLOW = 0x20000000, // active rogue safe fall spell (passive)
582 MOVEMENTFLAG_HOVER = 0x40000000, // hover, cannot jump
583
584 // TODO: Check if PITCH_UP and PITCH_DOWN really belong here..
589
592
595
599
603};
@ MOVEMENTFLAG_MASK_PLAYER_ONLY
Definition: Unit.h:597
@ MOVEMENTFLAG_DESCENDING
Definition: Unit.h:575
@ MOVEMENTFLAG_PITCH_DOWN
Definition: Unit.h:559
@ MOVEMENTFLAG_PENDING_STRAFE_STOP
Definition: Unit.h:567
@ MOVEMENTFLAG_PITCH_UP
Definition: Unit.h:558
@ MOVEMENTFLAG_RIGHT
Definition: Unit.h:557
@ MOVEMENTFLAG_PENDING_STOP
Definition: Unit.h:566
@ MOVEMENTFLAG_SPLINE_ENABLED
Definition: Unit.h:579
@ MOVEMENTFLAG_FORWARD
Definition: Unit.h:552
@ MOVEMENTFLAG_PENDING_STRAFE_LEFT
Definition: Unit.h:570
@ MOVEMENTFLAG_NONE
Definition: Unit.h:551
@ MOVEMENTFLAG_STRAFE_LEFT
Definition: Unit.h:554
@ MOVEMENTFLAG_ONTRANSPORT
Definition: Unit.h:561
@ MOVEMENTFLAG_BACKWARD
Definition: Unit.h:553
@ MOVEMENTFLAG_WATERWALKING
Definition: Unit.h:580
@ MOVEMENTFLAG_MASK_MOVING
Definition: Unit.h:585
@ MOVEMENTFLAG_DISABLE_GRAVITY
Definition: Unit.h:562
@ MOVEMENTFLAG_PENDING_BACKWARD
Definition: Unit.h:569
@ MOVEMENTFLAG_FLYING
Definition: Unit.h:577
@ MOVEMENTFLAG_FALLING_SLOW
Definition: Unit.h:581
@ MOVEMENTFLAG_PENDING_STRAFE_RIGHT
Definition: Unit.h:571
@ MOVEMENTFLAG_CAN_FLY
Definition: Unit.h:576
@ MOVEMENTFLAG_ROOT
Definition: Unit.h:563
@ MOVEMENTFLAG_MASK_TURNING
Definition: Unit.h:590
@ MOVEMENTFLAG_FALLING
Definition: Unit.h:564
@ MOVEMENTFLAG_LEFT
Definition: Unit.h:556
@ MOVEMENTFLAG_MASK_MOVING_FLY
Definition: Unit.h:593
@ MOVEMENTFLAG_STRAFE_RIGHT
Definition: Unit.h:555
@ MOVEMENTFLAG_FALLING_FAR
Definition: Unit.h:565
@ MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
Movement flags that have change status opcodes associated for players.
Definition: Unit.h:601
@ MOVEMENTFLAG_SWIMMING
Definition: Unit.h:573
@ MOVEMENTFLAG_ASCENDING
Definition: Unit.h:574
@ MOVEMENTFLAG_PENDING_FORWARD
Definition: Unit.h:568
@ MOVEMENTFLAG_HOVER
Definition: Unit.h:582
@ MOVEMENTFLAG_SPLINE_ELEVATION
Definition: Unit.h:578
@ MOVEMENTFLAG_PENDING_ROOT
Definition: Unit.h:572
@ MOVEMENTFLAG_WALKING
Definition: Unit.h:560

◆ MovementFlags2

Enumerator
MOVEMENTFLAG2_NONE 
MOVEMENTFLAG2_NO_STRAFE 
MOVEMENTFLAG2_NO_JUMPING 
MOVEMENTFLAG2_UNK3 
MOVEMENTFLAG2_FULL_SPEED_TURNING 
MOVEMENTFLAG2_FULL_SPEED_PITCHING 
MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING 
MOVEMENTFLAG2_UNK7 
MOVEMENTFLAG2_UNK8 
MOVEMENTFLAG2_UNK9 
MOVEMENTFLAG2_UNK10 
MOVEMENTFLAG2_INTERPOLATED_MOVEMENT 
MOVEMENTFLAG2_INTERPOLATED_TURNING 
MOVEMENTFLAG2_INTERPOLATED_PITCHING 
MOVEMENTFLAG2_UNK14 
MOVEMENTFLAG2_UNK15 
MOVEMENTFLAG2_UNK16 
606{
607 MOVEMENTFLAG2_NONE = 0x00000000,
608 MOVEMENTFLAG2_NO_STRAFE = 0x00000001,
609 MOVEMENTFLAG2_NO_JUMPING = 0x00000002,
610 MOVEMENTFLAG2_UNK3 = 0x00000004, // Overrides various clientside checks
614 MOVEMENTFLAG2_UNK7 = 0x00000040,
615 MOVEMENTFLAG2_UNK8 = 0x00000080,
616 MOVEMENTFLAG2_UNK9 = 0x00000100,
617 MOVEMENTFLAG2_UNK10 = 0x00000200,
621 MOVEMENTFLAG2_UNK14 = 0x00002000,
622 MOVEMENTFLAG2_UNK15 = 0x00004000,
623 MOVEMENTFLAG2_UNK16 = 0x00008000,
624};
@ MOVEMENTFLAG2_UNK3
Definition: Unit.h:610
@ MOVEMENTFLAG2_UNK8
Definition: Unit.h:615
@ MOVEMENTFLAG2_UNK9
Definition: Unit.h:616
@ MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING
Definition: Unit.h:613
@ MOVEMENTFLAG2_INTERPOLATED_PITCHING
Definition: Unit.h:620
@ MOVEMENTFLAG2_UNK7
Definition: Unit.h:614
@ MOVEMENTFLAG2_INTERPOLATED_MOVEMENT
Definition: Unit.h:618
@ MOVEMENTFLAG2_UNK15
Definition: Unit.h:622
@ MOVEMENTFLAG2_NO_STRAFE
Definition: Unit.h:608
@ MOVEMENTFLAG2_UNK16
Definition: Unit.h:623
@ MOVEMENTFLAG2_UNK14
Definition: Unit.h:621
@ MOVEMENTFLAG2_INTERPOLATED_TURNING
Definition: Unit.h:619
@ MOVEMENTFLAG2_FULL_SPEED_PITCHING
Definition: Unit.h:612
@ MOVEMENTFLAG2_UNK10
Definition: Unit.h:617
@ MOVEMENTFLAG2_NONE
Definition: Unit.h:607
@ MOVEMENTFLAG2_FULL_SPEED_TURNING
Definition: Unit.h:611
@ MOVEMENTFLAG2_NO_JUMPING
Definition: Unit.h:609

◆ 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_SPIRITHEALER 
UNIT_NPC_FLAG_SPIRITGUIDE 
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_VENDOR_MASK 
514{
515 UNIT_NPC_FLAG_NONE = 0x00000000, // SKIP
516 UNIT_NPC_FLAG_GOSSIP = 0x00000001, // TITLE has gossip menu DESCRIPTION 100%
517 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002, // TITLE is quest giver DESCRIPTION guessed, probably ok
518 UNIT_NPC_FLAG_UNK1 = 0x00000004,
519 UNIT_NPC_FLAG_UNK2 = 0x00000008,
520 UNIT_NPC_FLAG_TRAINER = 0x00000010, // TITLE is trainer DESCRIPTION 100%
521 UNIT_NPC_FLAG_TRAINER_CLASS = 0x00000020, // TITLE is class trainer DESCRIPTION 100%
522 UNIT_NPC_FLAG_TRAINER_PROFESSION = 0x00000040, // TITLE is profession trainer DESCRIPTION 100%
523 UNIT_NPC_FLAG_VENDOR = 0x00000080, // TITLE is vendor (generic) DESCRIPTION 100%
524 UNIT_NPC_FLAG_VENDOR_AMMO = 0x00000100, // TITLE is vendor (ammo) DESCRIPTION 100%, general goods vendor
525 UNIT_NPC_FLAG_VENDOR_FOOD = 0x00000200, // TITLE is vendor (food) DESCRIPTION 100%
526 UNIT_NPC_FLAG_VENDOR_POISON = 0x00000400, // TITLE is vendor (poison) DESCRIPTION guessed
527 UNIT_NPC_FLAG_VENDOR_REAGENT = 0x00000800, // TITLE is vendor (reagents) DESCRIPTION 100%
528 UNIT_NPC_FLAG_REPAIR = 0x00001000, // TITLE can repair DESCRIPTION 100%
529 UNIT_NPC_FLAG_FLIGHTMASTER = 0x00002000, // TITLE is flight master DESCRIPTION 100%
530 UNIT_NPC_FLAG_SPIRITHEALER = 0x00004000, // TITLE is spirit healer DESCRIPTION guessed
531 UNIT_NPC_FLAG_SPIRITGUIDE = 0x00008000, // TITLE is spirit guide DESCRIPTION guessed
532 UNIT_NPC_FLAG_INNKEEPER = 0x00010000, // TITLE is innkeeper
533 UNIT_NPC_FLAG_BANKER = 0x00020000, // TITLE is banker DESCRIPTION 100%
534 UNIT_NPC_FLAG_PETITIONER = 0x00040000, // TITLE handles guild/arena petitions DESCRIPTION 100% 0xC0000 = guild petitions, 0x40000 = arena team petitions
535 UNIT_NPC_FLAG_TABARDDESIGNER = 0x00080000, // TITLE is guild tabard designer DESCRIPTION 100%
536 UNIT_NPC_FLAG_BATTLEMASTER = 0x00100000, // TITLE is battlemaster DESCRIPTION 100%
537 UNIT_NPC_FLAG_AUCTIONEER = 0x00200000, // TITLE is auctioneer DESCRIPTION 100%
538 UNIT_NPC_FLAG_STABLEMASTER = 0x00400000, // TITLE is stable master DESCRIPTION 100%
539 UNIT_NPC_FLAG_GUILD_BANKER = 0x00800000, // TITLE is guild banker DESCRIPTION cause client to send 997 opcode
540 UNIT_NPC_FLAG_SPELLCLICK = 0x01000000, // TITLE has spell click enabled DESCRIPTION cause client to send 1015 opcode (spell click)
541 UNIT_NPC_FLAG_PLAYER_VEHICLE = 0x02000000, // TITLE is player vehicle DESCRIPTION players with mounts that have vehicle data should have it set
542 UNIT_NPC_FLAG_MAILBOX = 0x04000000, // TITLE is mailbox
543
545};
@ UNIT_NPC_FLAG_VENDOR_AMMO
Definition: Unit.h:524
@ UNIT_NPC_FLAG_TABARDDESIGNER
Definition: Unit.h:535
@ UNIT_NPC_FLAG_BANKER
Definition: Unit.h:533
@ UNIT_NPC_FLAG_AUCTIONEER
Definition: Unit.h:537
@ UNIT_NPC_FLAG_UNK2
Definition: Unit.h:519
@ UNIT_NPC_FLAG_VENDOR_POISON
Definition: Unit.h:526
@ UNIT_NPC_FLAG_GUILD_BANKER
Definition: Unit.h:539
@ UNIT_NPC_FLAG_VENDOR
Definition: Unit.h:523
@ UNIT_NPC_FLAG_STABLEMASTER
Definition: Unit.h:538
@ UNIT_NPC_FLAG_VENDOR_REAGENT
Definition: Unit.h:527
@ UNIT_NPC_FLAG_GOSSIP
Definition: Unit.h:516
@ UNIT_NPC_FLAG_NONE
Definition: Unit.h:515
@ UNIT_NPC_FLAG_BATTLEMASTER
Definition: Unit.h:536
@ UNIT_NPC_FLAG_VENDOR_FOOD
Definition: Unit.h:525
@ UNIT_NPC_FLAG_QUESTGIVER
Definition: Unit.h:517
@ UNIT_NPC_FLAG_INNKEEPER
Definition: Unit.h:532
@ UNIT_NPC_FLAG_SPELLCLICK
Definition: Unit.h:540
@ UNIT_NPC_FLAG_UNK1
Definition: Unit.h:518
@ UNIT_NPC_FLAG_VENDOR_MASK
Definition: Unit.h:544
@ UNIT_NPC_FLAG_MAILBOX
Definition: Unit.h:542
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
Definition: Unit.h:541
@ UNIT_NPC_FLAG_FLIGHTMASTER
Definition: Unit.h:529
@ UNIT_NPC_FLAG_TRAINER_CLASS
Definition: Unit.h:521
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
Definition: Unit.h:522
@ UNIT_NPC_FLAG_REPAIR
Definition: Unit.h:528
@ UNIT_NPC_FLAG_TRAINER
Definition: Unit.h:520
@ UNIT_NPC_FLAG_PETITIONER
Definition: Unit.h:534
@ UNIT_NPC_FLAG_SPIRITGUIDE
Definition: Unit.h:531
@ UNIT_NPC_FLAG_SPIRITHEALER
Definition: Unit.h:530

◆ PlayerTotemType

Enumerator
SUMMON_TYPE_TOTEM_FIRE 
SUMMON_TYPE_TOTEM_EARTH 
SUMMON_TYPE_TOTEM_WATER 
SUMMON_TYPE_TOTEM_AIR 
1220{
1225};
@ SUMMON_TYPE_TOTEM_EARTH
Definition: Unit.h:1222
@ SUMMON_TYPE_TOTEM_WATER
Definition: Unit.h:1223
@ SUMMON_TYPE_TOTEM_FIRE
Definition: Unit.h:1221
@ SUMMON_TYPE_TOTEM_AIR
Definition: Unit.h:1224

◆ ReactiveType

Enumerator
REACTIVE_DEFENSE 
REACTIVE_HUNTER_PARRY 
REACTIVE_OVERPOWER 
REACTIVE_WOLVERINE_BITE 
MAX_REACTIVE 
1201{
1202 REACTIVE_DEFENSE = 0,
1206
1208};
@ MAX_REACTIVE
Definition: Unit.h:1207
@ REACTIVE_OVERPOWER
Definition: Unit.h:1204
@ REACTIVE_DEFENSE
Definition: Unit.h:1202
@ REACTIVE_HUNTER_PARRY
Definition: Unit.h:1203
@ REACTIVE_WOLVERINE_BITE
Definition: Unit.h:1205

◆ ReactStates

Enumerator
REACT_PASSIVE 
REACT_DEFENSIVE 
REACT_AGGRESSIVE 
1022{
1023 REACT_PASSIVE = 0,
1024 REACT_DEFENSIVE = 1,
1026};
@ REACT_DEFENSIVE
Definition: Unit.h:1024
@ REACT_PASSIVE
Definition: Unit.h:1023
@ REACT_AGGRESSIVE
Definition: Unit.h:1025

◆ ShapeshiftForm

Enumerator
FORM_NONE 
FORM_CAT 
FORM_TREE 
FORM_TRAVEL 
FORM_AQUA 
FORM_BEAR 
FORM_AMBIENT 
FORM_GHOUL 
FORM_DIREBEAR 
FORM_STEVES_GHOUL 
FORM_THARONJA_SKELETON 
FORM_TEST_OF_STRENGTH 
FORM_BLB_PLAYER 
FORM_SHADOW_DANCE 
FORM_CREATUREBEAR 
FORM_CREATURECAT 
FORM_GHOSTWOLF 
FORM_BATTLESTANCE 
FORM_DEFENSIVESTANCE 
FORM_BERSERKERSTANCE 
FORM_TEST 
FORM_ZOMBIE 
FORM_METAMORPHOSIS 
FORM_UNDEAD 
FORM_MASTER_ANGLER 
FORM_FLIGHT_EPIC 
FORM_SHADOW 
FORM_FLIGHT 
FORM_STEALTH 
FORM_MOONKIN 
FORM_SPIRITOFREDEMPTION 
89{
90 FORM_NONE = 0x00,
91 FORM_CAT = 0x01,
92 FORM_TREE = 0x02,
93 FORM_TRAVEL = 0x03,
94 FORM_AQUA = 0x04,
95 FORM_BEAR = 0x05,
96 FORM_AMBIENT = 0x06,
97 FORM_GHOUL = 0x07,
98 FORM_DIREBEAR = 0x08,
99 FORM_STEVES_GHOUL = 0x09,
102 FORM_BLB_PLAYER = 0x0C,
103 FORM_SHADOW_DANCE = 0x0D,
104 FORM_CREATUREBEAR = 0x0E,
105 FORM_CREATURECAT = 0x0F,
106 FORM_GHOSTWOLF = 0x10,
107 FORM_BATTLESTANCE = 0x11,
110 FORM_TEST = 0x14,
111 FORM_ZOMBIE = 0x15,
112 FORM_METAMORPHOSIS = 0x16,
113 FORM_UNDEAD = 0x19,
114 FORM_MASTER_ANGLER = 0x1A,
115 FORM_FLIGHT_EPIC = 0x1B,
116 FORM_SHADOW = 0x1C,
117 FORM_FLIGHT = 0x1D,
118 FORM_STEALTH = 0x1E,
119 FORM_MOONKIN = 0x1F,
121};
@ FORM_DIREBEAR
Definition: Unit.h:98
@ FORM_UNDEAD
Definition: Unit.h:113
@ FORM_TEST
Definition: Unit.h:110
@ FORM_TRAVEL
Definition: Unit.h:93
@ FORM_CREATUREBEAR
Definition: Unit.h:104
@ FORM_SHADOW
Definition: Unit.h:116
@ FORM_SHADOW_DANCE
Definition: Unit.h:103
@ FORM_SPIRITOFREDEMPTION
Definition: Unit.h:120
@ FORM_BERSERKERSTANCE
Definition: Unit.h:109
@ FORM_MASTER_ANGLER
Definition: Unit.h:114
@ FORM_DEFENSIVESTANCE
Definition: Unit.h:108
@ FORM_THARONJA_SKELETON
Definition: Unit.h:100
@ FORM_FLIGHT_EPIC
Definition: Unit.h:115
@ FORM_STEVES_GHOUL
Definition: Unit.h:99
@ FORM_MOONKIN
Definition: Unit.h:119
@ FORM_NONE
Definition: Unit.h:90
@ FORM_CREATURECAT
Definition: Unit.h:105
@ FORM_CAT
Definition: Unit.h:91
@ FORM_FLIGHT
Definition: Unit.h:117
@ FORM_ZOMBIE
Definition: Unit.h:111
@ FORM_GHOSTWOLF
Definition: Unit.h:106
@ FORM_AMBIENT
Definition: Unit.h:96
@ FORM_AQUA
Definition: Unit.h:94
@ FORM_STEALTH
Definition: Unit.h:118
@ FORM_BATTLESTANCE
Definition: Unit.h:107
@ FORM_BLB_PLAYER
Definition: Unit.h:102
@ FORM_METAMORPHOSIS
Definition: Unit.h:112
@ FORM_GHOUL
Definition: Unit.h:97
@ FORM_TREE
Definition: Unit.h:92
@ FORM_TEST_OF_STRENGTH
Definition: Unit.h:101
@ FORM_BEAR
Definition: Unit.h:95

◆ SheathState

Enumerator
SHEATH_STATE_UNARMED 
SHEATH_STATE_MELEE 
SHEATH_STATE_RANGED 
125{
126 SHEATH_STATE_UNARMED = 0, // non prepared weapon
127 SHEATH_STATE_MELEE = 1, // prepared melee weapon
128 SHEATH_STATE_RANGED = 2 // prepared ranged weapon
129};
@ SHEATH_STATE_UNARMED
Definition: Unit.h:126
@ SHEATH_STATE_MELEE
Definition: Unit.h:127
@ SHEATH_STATE_RANGED
Definition: Unit.h:128

◆ SpellCooldownFlags

Spell cooldown flags sent in SMSG_SPELL_COOLDOWN.

Enumerator
SPELL_COOLDOWN_FLAG_NONE 
SPELL_COOLDOWN_FLAG_INCLUDE_GCD 

Starts GCD in addition to normal cooldown specified in the packet.

SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS 

Starts GCD for spells that should start their cooldown on events, requires SPELL_COOLDOWN_FLAG_INCLUDE_GCD set.

1229{
1233};
@ SPELL_COOLDOWN_FLAG_INCLUDE_EVENT_COOLDOWNS
Starts GCD for spells that should start their cooldown on events, requires SPELL_COOLDOWN_FLAG_INCLUD...
Definition: Unit.h:1232
@ SPELL_COOLDOWN_FLAG_INCLUDE_GCD
Starts GCD in addition to normal cooldown specified in the packet.
Definition: Unit.h:1231
@ SPELL_COOLDOWN_FLAG_NONE
Definition: Unit.h:1230

◆ SplineFlags

Enumerator
SPLINEFLAG_NONE 
SPLINEFLAG_FORWARD 
SPLINEFLAG_BACKWARD 
SPLINEFLAG_STRAFE_LEFT 
SPLINEFLAG_STRAFE_RIGHT 
SPLINEFLAG_TURN_LEFT 
SPLINEFLAG_TURN_RIGHT 
SPLINEFLAG_PITCH_UP 
SPLINEFLAG_PITCH_DOWN 
SPLINEFLAG_DONE 
SPLINEFLAG_FALLING 
SPLINEFLAG_NO_SPLINE 
SPLINEFLAG_TRAJECTORY 
SPLINEFLAG_WALK_MODE 
SPLINEFLAG_FLYING 
SPLINEFLAG_KNOCKBACK 
SPLINEFLAG_FINAL_POINT 
SPLINEFLAG_FINAL_TARGET 
SPLINEFLAG_FINAL_FACING 
SPLINEFLAG_CATMULL_ROM 
SPLINEFLAG_CYCLIC 
SPLINEFLAG_ENTER_CYCLE 
SPLINEFLAG_ANIMATION_TIER 
SPLINEFLAG_FROZEN 
SPLINEFLAG_TRANSPORT 
SPLINEFLAG_TRANSPORT_EXIT 
SPLINEFLAG_UNKNOWN7 
SPLINEFLAG_UNKNOWN8 
SPLINEFLAG_ORIENTATION_INVERTED 
SPLINEFLAG_USE_PATH_SMOOTHING 
SPLINEFLAG_ANIMATION 
SPLINEFLAG_UNCOMPRESSED_PATH 
SPLINEFLAG_UNKNOWN10 
627{
628 SPLINEFLAG_NONE = 0x00000000,
629 SPLINEFLAG_FORWARD = 0x00000001,
630 SPLINEFLAG_BACKWARD = 0x00000002,
631 SPLINEFLAG_STRAFE_LEFT = 0x00000004,
632 SPLINEFLAG_STRAFE_RIGHT = 0x00000008,
633 SPLINEFLAG_TURN_LEFT = 0x00000010,
634 SPLINEFLAG_TURN_RIGHT = 0x00000020,
635 SPLINEFLAG_PITCH_UP = 0x00000040,
636 SPLINEFLAG_PITCH_DOWN = 0x00000080,
637 SPLINEFLAG_DONE = 0x00000100,
638 SPLINEFLAG_FALLING = 0x00000200,
639 SPLINEFLAG_NO_SPLINE = 0x00000400,
640 SPLINEFLAG_TRAJECTORY = 0x00000800,
641 SPLINEFLAG_WALK_MODE = 0x00001000,
642 SPLINEFLAG_FLYING = 0x00002000,
643 SPLINEFLAG_KNOCKBACK = 0x00004000,
644 SPLINEFLAG_FINAL_POINT = 0x00008000,
645 SPLINEFLAG_FINAL_TARGET = 0x00010000,
646 SPLINEFLAG_FINAL_FACING = 0x00020000,
647 SPLINEFLAG_CATMULL_ROM = 0x00040000,
648 SPLINEFLAG_CYCLIC = 0x00080000,
649 SPLINEFLAG_ENTER_CYCLE = 0x00100000,
650 SPLINEFLAG_ANIMATION_TIER = 0x00200000,
651 SPLINEFLAG_FROZEN = 0x00400000,
652 SPLINEFLAG_TRANSPORT = 0x00800000,
653 SPLINEFLAG_TRANSPORT_EXIT = 0x01000000,
654 SPLINEFLAG_UNKNOWN7 = 0x02000000,
655 SPLINEFLAG_UNKNOWN8 = 0x04000000,
658 SPLINEFLAG_ANIMATION = 0x20000000,
659 SPLINEFLAG_UNCOMPRESSED_PATH = 0x40000000,
660 SPLINEFLAG_UNKNOWN10 = 0x80000000,
661};
@ SPLINEFLAG_CYCLIC
Definition: Unit.h:648
@ SPLINEFLAG_FINAL_TARGET
Definition: Unit.h:645
@ SPLINEFLAG_UNKNOWN7
Definition: Unit.h:654
@ SPLINEFLAG_UNCOMPRESSED_PATH
Definition: Unit.h:659
@ SPLINEFLAG_DONE
Definition: Unit.h:637
@ SPLINEFLAG_TRANSPORT_EXIT
Definition: Unit.h:653
@ SPLINEFLAG_PITCH_DOWN
Definition: Unit.h:636
@ SPLINEFLAG_NO_SPLINE
Definition: Unit.h:639
@ SPLINEFLAG_TRANSPORT
Definition: Unit.h:652
@ SPLINEFLAG_STRAFE_LEFT
Definition: Unit.h:631
@ SPLINEFLAG_TURN_RIGHT
Definition: Unit.h:634
@ SPLINEFLAG_ANIMATION_TIER
Definition: Unit.h:650
@ SPLINEFLAG_KNOCKBACK
Definition: Unit.h:643
@ SPLINEFLAG_CATMULL_ROM
Definition: Unit.h:647
@ SPLINEFLAG_ORIENTATION_INVERTED
Definition: Unit.h:656
@ SPLINEFLAG_BACKWARD
Definition: Unit.h:630
@ SPLINEFLAG_FALLING
Definition: Unit.h:638
@ SPLINEFLAG_WALK_MODE
Definition: Unit.h:641
@ SPLINEFLAG_ANIMATION
Definition: Unit.h:658
@ SPLINEFLAG_NONE
Definition: Unit.h:628
@ SPLINEFLAG_PITCH_UP
Definition: Unit.h:635
@ SPLINEFLAG_USE_PATH_SMOOTHING
Definition: Unit.h:657
@ SPLINEFLAG_TURN_LEFT
Definition: Unit.h:633
@ SPLINEFLAG_ENTER_CYCLE
Definition: Unit.h:649
@ SPLINEFLAG_FROZEN
Definition: Unit.h:651
@ SPLINEFLAG_STRAFE_RIGHT
Definition: Unit.h:632
@ SPLINEFLAG_FORWARD
Definition: Unit.h:629
@ SPLINEFLAG_UNKNOWN10
Definition: Unit.h:660
@ SPLINEFLAG_UNKNOWN8
Definition: Unit.h:655
@ SPLINEFLAG_FINAL_POINT
Definition: Unit.h:644
@ SPLINEFLAG_FINAL_FACING
Definition: Unit.h:646
@ SPLINEFLAG_TRAJECTORY
Definition: Unit.h:640
@ SPLINEFLAG_FLYING
Definition: Unit.h:642

◆ SplineType

enum SplineType
Enumerator
SPLINETYPE_NORMAL 
SPLINETYPE_STOP 
SPLINETYPE_FACING_SPOT 
SPLINETYPE_FACING_TARGET 
SPLINETYPE_FACING_ANGLE 
664{
666 SPLINETYPE_STOP = 1,
670};
@ SPLINETYPE_NORMAL
Definition: Unit.h:665
@ SPLINETYPE_FACING_SPOT
Definition: Unit.h:667
@ SPLINETYPE_STOP
Definition: Unit.h:666
@ SPLINETYPE_FACING_ANGLE
Definition: Unit.h:669
@ SPLINETYPE_FACING_TARGET
Definition: Unit.h:668

◆ UnitBytes1_Flags

Enumerator
UNIT_BYTE1_FLAG_GROUND 
UNIT_BYTE1_FLAG_ALWAYS_STAND 
UNIT_BYTE1_FLAG_HOVER 
UNIT_BYTE1_FLAG_FLY 
UNIT_BYTE1_FLAG_SUBMERGED 
UNIT_BYTE1_FLAG_ALL 
78{
85};
@ UNIT_BYTE1_FLAG_FLY
Definition: Unit.h:82
@ UNIT_BYTE1_FLAG_GROUND
Definition: Unit.h:79
@ UNIT_BYTE1_FLAG_HOVER
Definition: Unit.h:81
@ UNIT_BYTE1_FLAG_ALL
Definition: Unit.h:84
@ UNIT_BYTE1_FLAG_ALWAYS_STAND
Definition: Unit.h:80
@ UNIT_BYTE1_FLAG_SUBMERGED
Definition: Unit.h:83

◆ UnitBytes1Offsets

Enumerator
UNIT_BYTES_1_OFFSET_STAND_STATE 
UNIT_BYTES_1_OFFSET_PET_TALENTS 
UNIT_BYTES_1_OFFSET_VIS_FLAG 
UNIT_BYTES_1_OFFSET_ANIM_TIER 
43{
48};
@ UNIT_BYTES_1_OFFSET_ANIM_TIER
Definition: Unit.h:47
@ UNIT_BYTES_1_OFFSET_PET_TALENTS
Definition: Unit.h:45
@ UNIT_BYTES_1_OFFSET_STAND_STATE
Definition: Unit.h:44
@ UNIT_BYTES_1_OFFSET_VIS_FLAG
Definition: Unit.h:46

◆ UnitFlags

enum UnitFlags : uint32
Enumerator
UNIT_FLAG_NONE 
UNIT_FLAG_SERVER_CONTROLLED 
UNIT_FLAG_NON_ATTACKABLE 
UNIT_FLAG_DISABLE_MOVE 
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 
UNIT_FLAG_SILENCED 
UNIT_FLAG_CANNOT_SWIM 
UNIT_FLAG_SWIMMING 
UNIT_FLAG_NON_ATTACKABLE_2 
UNIT_FLAG_PACIFIED 
UNIT_FLAG_STUNNED 
UNIT_FLAG_IN_COMBAT 
UNIT_FLAG_TAXI_FLIGHT 
UNIT_FLAG_DISARMED 
UNIT_FLAG_CONFUSED 
UNIT_FLAG_FLEEING 
UNIT_FLAG_POSSESSED 
UNIT_FLAG_NOT_SELECTABLE 
UNIT_FLAG_SKINNABLE 
UNIT_FLAG_MOUNT 
UNIT_FLAG_UNK_28 
UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT 
UNIT_FLAG_SHEATHE 
UNIT_FLAG_IMMUNE 
446{
447 UNIT_FLAG_NONE = 0x00000000,
448 UNIT_FLAG_SERVER_CONTROLLED = 0x00000001, // set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner
449 UNIT_FLAG_NON_ATTACKABLE = 0x00000002, // not attackable
450 UNIT_FLAG_DISABLE_MOVE = 0x00000004,
451 UNIT_FLAG_PLAYER_CONTROLLED = 0x00000008, // controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC
452 UNIT_FLAG_RENAME = 0x00000010,
453 UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA
454 UNIT_FLAG_UNK_6 = 0x00000040,
455 UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE
456 UNIT_FLAG_IMMUNE_TO_PC = 0x00000100, // disables combat/assistance with PlayerCharacters (PC) - see Unit::_IsValidAttackTarget, Unit::_IsValidAssistTarget
457 UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200, // disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::_IsValidAttackTarget, Unit::_IsValidAssistTarget
458 UNIT_FLAG_LOOTING = 0x00000400, // loot animation
459 UNIT_FLAG_PET_IN_COMBAT = 0x00000800, // in combat?, 2.0.8
460 UNIT_FLAG_PVP = 0x00001000, // changed in 3.0.3
461 UNIT_FLAG_SILENCED = 0x00002000, // silenced, 2.1.1
462 UNIT_FLAG_CANNOT_SWIM = 0x00004000, // 2.0.8
463 UNIT_FLAG_SWIMMING = 0x00008000, // shows swim animation in water
464 UNIT_FLAG_NON_ATTACKABLE_2 = 0x00010000, // removes attackable icon, if on yourself, cannot assist self but can cast TARGET_SELF spells - added by SPELL_AURA_MOD_UNATTACKABLE
465 UNIT_FLAG_PACIFIED = 0x00020000, // 3.0.3 ok
466 UNIT_FLAG_STUNNED = 0x00040000, // 3.0.3 ok
467 UNIT_FLAG_IN_COMBAT = 0x00080000,
468 UNIT_FLAG_TAXI_FLIGHT = 0x00100000, // disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag
469 UNIT_FLAG_DISARMED = 0x00200000, // 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.
470 UNIT_FLAG_CONFUSED = 0x00400000,
471 UNIT_FLAG_FLEEING = 0x00800000,
472 UNIT_FLAG_POSSESSED = 0x01000000, // under direct client control by a player (possess or vehicle)
473 UNIT_FLAG_NOT_SELECTABLE = 0x02000000,
474 UNIT_FLAG_SKINNABLE = 0x04000000,
475 UNIT_FLAG_MOUNT = 0x08000000,
476 UNIT_FLAG_UNK_28 = 0x10000000,
477 UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT = 0x20000000, // Prevent automatically playing emotes from parsing chat text, for example "lol" in /say, ending message with ? or !, or using /yell
478 UNIT_FLAG_SHEATHE = 0x40000000,
479 UNIT_FLAG_IMMUNE = 0x80000000, // Immune to damage
480};
@ UNIT_FLAG_TAXI_FLIGHT
Definition: Unit.h:468
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
Definition: Unit.h:477
@ UNIT_FLAG_STUNNED
Definition: Unit.h:466
@ UNIT_FLAG_CANNOT_SWIM
Definition: Unit.h:462
@ UNIT_FLAG_NON_ATTACKABLE
Definition: Unit.h:449
@ UNIT_FLAG_UNK_6
Definition: Unit.h:454
@ UNIT_FLAG_IN_COMBAT
Definition: Unit.h:467
@ UNIT_FLAG_PREPARATION
Definition: Unit.h:453
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition: Unit.h:464
@ UNIT_FLAG_IMMUNE_TO_NPC
Definition: Unit.h:457
@ UNIT_FLAG_PVP
Definition: Unit.h:460
@ UNIT_FLAG_POSSESSED
Definition: Unit.h:472
@ UNIT_FLAG_IMMUNE
Definition: Unit.h:479
@ UNIT_FLAG_NONE
Definition: Unit.h:447
@ UNIT_FLAG_SERVER_CONTROLLED
Definition: Unit.h:448
@ UNIT_FLAG_DISARMED
Definition: Unit.h:469
@ UNIT_FLAG_PACIFIED
Definition: Unit.h:465
@ UNIT_FLAG_SWIMMING
Definition: Unit.h:463
@ UNIT_FLAG_CONFUSED
Definition: Unit.h:470
@ UNIT_FLAG_DISABLE_MOVE
Definition: Unit.h:450
@ UNIT_FLAG_FLEEING
Definition: Unit.h:471
@ UNIT_FLAG_NOT_SELECTABLE
Definition: Unit.h:473
@ UNIT_FLAG_RENAME
Definition: Unit.h:452
@ UNIT_FLAG_LOOTING
Definition: Unit.h:458
@ UNIT_FLAG_IMMUNE_TO_PC
Definition: Unit.h:456
@ UNIT_FLAG_NOT_ATTACKABLE_1
Definition: Unit.h:455
@ UNIT_FLAG_SILENCED
Definition: Unit.h:461
@ UNIT_FLAG_PLAYER_CONTROLLED
Definition: Unit.h:451
@ UNIT_FLAG_SKINNABLE
Definition: Unit.h:474
@ UNIT_FLAG_MOUNT
Definition: Unit.h:475
@ UNIT_FLAG_PET_IN_COMBAT
Definition: Unit.h:459
@ UNIT_FLAG_UNK_28
Definition: Unit.h:476
@ UNIT_FLAG_SHEATHE
Definition: Unit.h:478

◆ UnitFlags2

Enumerator
UNIT_FLAG2_NONE 
UNIT_FLAG2_FEIGN_DEATH 
UNIT_FLAG2_HIDE_BODY 
UNIT_FLAG2_IGNORE_REPUTATION 
UNIT_FLAG2_COMPREHEND_LANG 
UNIT_FLAG2_MIRROR_IMAGE 
UNIT_FLAG2_DO_NOT_FADE_IN 
UNIT_FLAG2_FORCE_MOVEMENT 
UNIT_FLAG2_DISARM_OFFHAND 
UNIT_FLAG2_DISABLE_PRED_STATS 
UNIT_FLAG2_DISARM_RANGED 
UNIT_FLAG2_REGENERATE_POWER 
UNIT_FLAG2_RESTRICT_PARTY_INTERACTION 
UNIT_FLAG2_PREVENT_SPELL_CLICK 
UNIT_FLAG2_ALLOW_ENEMY_INTERACT 
UNIT_FLAG2_CANNOT_TURN 
UNIT_FLAG2_UNK2 
UNIT_FLAG2_PLAY_DEATH_ANIM 
UNIT_FLAG2_ALLOW_CHEAT_SPELLS 
UNIT_FLAG2_UNUSED_6 
486{
487 UNIT_FLAG2_NONE = 0x00000000,
488 UNIT_FLAG2_FEIGN_DEATH = 0x00000001,
489 UNIT_FLAG2_HIDE_BODY = 0x00000002, // Hide unit model (show only player equip)
490 UNIT_FLAG2_IGNORE_REPUTATION = 0x00000004,
491 UNIT_FLAG2_COMPREHEND_LANG = 0x00000008,
492 UNIT_FLAG2_MIRROR_IMAGE = 0x00000010,
493 UNIT_FLAG2_DO_NOT_FADE_IN = 0x00000020, // Unit model instantly appears when summoned (does not fade in)
494 UNIT_FLAG2_FORCE_MOVEMENT = 0x00000040,
495 UNIT_FLAG2_DISARM_OFFHAND = 0x00000080,
496 UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100, // Player has disabled predicted stats (Used by raid frames)
497 UNIT_FLAG2_DISARM_RANGED = 0x00000400, // this does not disable ranged weapon display (maybe additional flag needed?)
498 UNIT_FLAG2_REGENERATE_POWER = 0x00000800,
499 UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000, // Restrict interaction to party or raid
500 UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000, // Prevent spellclick
502 UNIT_FLAG2_CANNOT_TURN = 0x00008000,
503 UNIT_FLAG2_UNK2 = 0x00010000,
504 UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000, // Plays special death animation upon death
505 UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000, // Allows casting spells with AttributesEx7 & SPELL_ATTR7_DEBUG_SPELL
506 UNIT_FLAG2_UNUSED_6 = 0x01000000,
507};
@ UNIT_FLAG2_UNK2
Definition: Unit.h:503
@ UNIT_FLAG2_DO_NOT_FADE_IN
Definition: Unit.h:493
@ UNIT_FLAG2_MIRROR_IMAGE
Definition: Unit.h:492
@ UNIT_FLAG2_NONE
Definition: Unit.h:487
@ UNIT_FLAG2_ALLOW_ENEMY_INTERACT
Definition: Unit.h:501
@ UNIT_FLAG2_PLAY_DEATH_ANIM
Definition: Unit.h:504
@ UNIT_FLAG2_HIDE_BODY
Definition: Unit.h:489
@ UNIT_FLAG2_IGNORE_REPUTATION
Definition: Unit.h:490
@ UNIT_FLAG2_PREVENT_SPELL_CLICK
Definition: Unit.h:500
@ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION
Definition: Unit.h:499
@ UNIT_FLAG2_DISABLE_PRED_STATS
Definition: Unit.h:496
@ UNIT_FLAG2_COMPREHEND_LANG
Definition: Unit.h:491
@ UNIT_FLAG2_UNUSED_6
Definition: Unit.h:506
@ UNIT_FLAG2_CANNOT_TURN
Definition: Unit.h:502
@ UNIT_FLAG2_FORCE_MOVEMENT
Definition: Unit.h:494
@ UNIT_FLAG2_ALLOW_CHEAT_SPELLS
Definition: Unit.h:505
@ UNIT_FLAG2_FEIGN_DEATH
Definition: Unit.h:488
@ UNIT_FLAG2_REGENERATE_POWER
Definition: Unit.h:498
@ UNIT_FLAG2_DISARM_OFFHAND
Definition: Unit.h:495
@ UNIT_FLAG2_DISARM_RANGED
Definition: Unit.h:497

◆ UnitModifierType

Enumerator
BASE_VALUE 
BASE_PCT 
TOTAL_VALUE 
TOTAL_PCT 
MODIFIER_TYPE_END 
244{
245 BASE_VALUE = 0,
246 BASE_PCT = 1,
247 TOTAL_VALUE = 2,
248 TOTAL_PCT = 3,
250};
@ MODIFIER_TYPE_END
Definition: Unit.h:249
@ BASE_VALUE
Definition: Unit.h:245
@ TOTAL_VALUE
Definition: Unit.h:247
@ TOTAL_PCT
Definition: Unit.h:248
@ BASE_PCT
Definition: Unit.h:246

◆ UnitMods

enum UnitMods
Enumerator
UNIT_MOD_STAT_STRENGTH 
UNIT_MOD_STAT_AGILITY 
UNIT_MOD_STAT_STAMINA 
UNIT_MOD_STAT_INTELLECT 
UNIT_MOD_STAT_SPIRIT 
UNIT_MOD_HEALTH 
UNIT_MOD_MANA 
UNIT_MOD_RAGE 
UNIT_MOD_FOCUS 
UNIT_MOD_ENERGY 
UNIT_MOD_HAPPINESS 
UNIT_MOD_RUNE 
UNIT_MOD_RUNIC_POWER 
UNIT_MOD_ARMOR 
UNIT_MOD_RESISTANCE_HOLY 
UNIT_MOD_RESISTANCE_FIRE 
UNIT_MOD_RESISTANCE_NATURE 
UNIT_MOD_RESISTANCE_FROST 
UNIT_MOD_RESISTANCE_SHADOW 
UNIT_MOD_RESISTANCE_ARCANE 
UNIT_MOD_ATTACK_POWER 
UNIT_MOD_ATTACK_POWER_RANGED 
UNIT_MOD_DAMAGE_MAINHAND 
UNIT_MOD_DAMAGE_OFFHAND 
UNIT_MOD_DAMAGE_RANGED 
UNIT_MOD_END 
UNIT_MOD_STAT_START 
UNIT_MOD_STAT_END 
UNIT_MOD_RESISTANCE_START 
UNIT_MOD_RESISTANCE_END 
UNIT_MOD_POWER_START 
UNIT_MOD_POWER_END 
261{
262 UNIT_MOD_STAT_STRENGTH, // UNIT_MOD_STAT_STRENGTH..UNIT_MOD_STAT_SPIRIT must be in existed order, it's accessed by index values of Stats enum.
268 UNIT_MOD_MANA, // UNIT_MOD_MANA..UNIT_MOD_RUNIC_POWER must be in existed order, it's accessed by index values of Powers enum.
275 UNIT_MOD_ARMOR, // UNIT_MOD_ARMOR..UNIT_MOD_RESISTANCE_ARCANE must be in existed order, it's accessed by index values of SpellSchools enum.
288 // synonyms
295};
@ UNIT_MOD_DAMAGE_OFFHAND
Definition: Unit.h:285
@ UNIT_MOD_RUNE
Definition: Unit.h:273
@ UNIT_MOD_STAT_INTELLECT
Definition: Unit.h:265
@ UNIT_MOD_POWER_END
Definition: Unit.h:294
@ UNIT_MOD_STAT_SPIRIT
Definition: Unit.h:266
@ UNIT_MOD_ARMOR
Definition: Unit.h:275
@ UNIT_MOD_RESISTANCE_SHADOW
Definition: Unit.h:280
@ UNIT_MOD_RESISTANCE_FROST
Definition: Unit.h:279
@ UNIT_MOD_END
Definition: Unit.h:287
@ UNIT_MOD_ATTACK_POWER
Definition: Unit.h:282
@ UNIT_MOD_STAT_END
Definition: Unit.h:290
@ UNIT_MOD_RESISTANCE_HOLY
Definition: Unit.h:276
@ UNIT_MOD_RESISTANCE_START
Definition: Unit.h:291
@ UNIT_MOD_RESISTANCE_ARCANE
Definition: Unit.h:281
@ UNIT_MOD_ENERGY
Definition: Unit.h:271
@ UNIT_MOD_HEALTH
Definition: Unit.h:267
@ UNIT_MOD_DAMAGE_RANGED
Definition: Unit.h:286
@ UNIT_MOD_POWER_START
Definition: Unit.h:293
@ UNIT_MOD_RESISTANCE_FIRE
Definition: Unit.h:277
@ UNIT_MOD_STAT_STRENGTH
Definition: Unit.h:262
@ UNIT_MOD_RESISTANCE_NATURE
Definition: Unit.h:278
@ UNIT_MOD_STAT_AGILITY
Definition: Unit.h:263
@ UNIT_MOD_RESISTANCE_END
Definition: Unit.h:292
@ UNIT_MOD_FOCUS
Definition: Unit.h:270
@ UNIT_MOD_DAMAGE_MAINHAND
Definition: Unit.h:284
@ UNIT_MOD_HAPPINESS
Definition: Unit.h:272
@ UNIT_MOD_MANA
Definition: Unit.h:268
@ UNIT_MOD_STAT_START
Definition: Unit.h:289
@ UNIT_MOD_RAGE
Definition: Unit.h:269
@ UNIT_MOD_STAT_STAMINA
Definition: Unit.h:264
@ UNIT_MOD_RUNIC_POWER
Definition: Unit.h:274
@ UNIT_MOD_ATTACK_POWER_RANGED
Definition: Unit.h:283

◆ 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 
377{
378 MOVE_WALK = 0,
379 MOVE_RUN = 1,
380 MOVE_RUN_BACK = 2,
381 MOVE_SWIM = 3,
382 MOVE_SWIM_BACK = 4,
383 MOVE_TURN_RATE = 5,
384 MOVE_FLIGHT = 6,
387};
@ MOVE_FLIGHT
Definition: Unit.h:384
@ MOVE_SWIM
Definition: Unit.h:381
@ MOVE_TURN_RATE
Definition: Unit.h:383
@ MOVE_FLIGHT_BACK
Definition: Unit.h:385
@ MOVE_SWIM_BACK
Definition: Unit.h:382
@ MOVE_RUN
Definition: Unit.h:379
@ MOVE_PITCH_RATE
Definition: Unit.h:386
@ MOVE_RUN_BACK
Definition: Unit.h:380
@ MOVE_WALK
Definition: Unit.h:378

◆ UnitPVPStateFlags

Enumerator
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 
135{
136 UNIT_BYTE2_FLAG_PVP = 0x01,
144};
@ UNIT_BYTE2_FLAG_UNK1
Definition: Unit.h:137
@ UNIT_BYTE2_FLAG_UNK6
Definition: Unit.h:142
@ UNIT_BYTE2_FLAG_PVP
Definition: Unit.h:136
@ UNIT_BYTE2_FLAG_FFA_PVP
Definition: Unit.h:138
@ UNIT_BYTE2_FLAG_UNK4
Definition: Unit.h:140
@ UNIT_BYTE2_FLAG_UNK5
Definition: Unit.h:141
@ UNIT_BYTE2_FLAG_UNK7
Definition: Unit.h:143
@ UNIT_BYTE2_FLAG_SANCTUARY
Definition: Unit.h:139

◆ UnitRename

enum UnitRename
Enumerator
UNIT_CAN_BE_RENAMED 
UNIT_CAN_BE_ABANDONED 
148{
149 UNIT_CAN_BE_RENAMED = 0x01,
151};
@ UNIT_CAN_BE_RENAMED
Definition: Unit.h:149
@ UNIT_CAN_BE_ABANDONED
Definition: Unit.h:150

◆ UnitStandFlags

Enumerator
UNIT_STAND_FLAGS_UNK1 
UNIT_STAND_FLAGS_CREEP 
UNIT_STAND_FLAGS_UNTRACKABLE 
UNIT_STAND_FLAGS_UNK4 
UNIT_STAND_FLAGS_UNK5 
UNIT_STAND_FLAGS_ALL 
67{
74};
@ UNIT_STAND_FLAGS_UNK4
Definition: Unit.h:71
@ UNIT_STAND_FLAGS_UNK5
Definition: Unit.h:72
@ UNIT_STAND_FLAGS_ALL
Definition: Unit.h:73
@ UNIT_STAND_FLAGS_UNK1
Definition: Unit.h:68
@ UNIT_STAND_FLAGS_CREEP
Definition: Unit.h:69
@ UNIT_STAND_FLAGS_UNTRACKABLE
Definition: Unit.h:70

◆ 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 
52{
63};
@ UNIT_STAND_STATE_SLEEP
Definition: Unit.h:56
@ UNIT_STAND_STATE_SIT_HIGH_CHAIR
Definition: Unit.h:59
@ UNIT_STAND_STATE_SUBMERGED
Definition: Unit.h:62
@ UNIT_STAND_STATE_SIT_MEDIUM_CHAIR
Definition: Unit.h:58
@ UNIT_STAND_STATE_SIT_LOW_CHAIR
Definition: Unit.h:57
@ UNIT_STAND_STATE_DEAD
Definition: Unit.h:60
@ UNIT_STAND_STATE_KNEEL
Definition: Unit.h:61
@ UNIT_STAND_STATE_SIT_CHAIR
Definition: Unit.h:55
@ UNIT_STAND_STATE_STAND
Definition: Unit.h:53
@ UNIT_STAND_STATE_SIT
Definition: Unit.h:54

◆ UnitState

enum UnitState
Enumerator
UNIT_STATE_DIED 
UNIT_STATE_MELEE_ATTACKING 
UNIT_STATE_STUNNED 
UNIT_STATE_ROAMING 
UNIT_STATE_CHASE 
UNIT_STATE_FLEEING 
UNIT_STATE_IN_FLIGHT 
UNIT_STATE_FOLLOW 
UNIT_STATE_ROOT 
UNIT_STATE_CONFUSED 
UNIT_STATE_DISTRACTED 
UNIT_STATE_ISOLATED 
UNIT_STATE_ATTACK_PLAYER 
UNIT_STATE_CASTING 
UNIT_STATE_POSSESSED 
UNIT_STATE_CHARGING 
UNIT_STATE_JUMPING 
UNIT_STATE_MOVE 
UNIT_STATE_ROTATING 
UNIT_STATE_EVADE 
UNIT_STATE_ROAMING_MOVE 
UNIT_STATE_CONFUSED_MOVE 
UNIT_STATE_FLEEING_MOVE 
UNIT_STATE_CHASE_MOVE 
UNIT_STATE_FOLLOW_MOVE 
UNIT_STATE_IGNORE_PATHFINDING 
UNIT_STATE_NO_ENVIRONMENT_UPD 
UNIT_STATE_ALL_STATE_SUPPORTED 
UNIT_STATE_UNATTACKABLE 
UNIT_STATE_MOVING 
UNIT_STATE_CONTROLLED 
UNIT_STATE_LOST_CONTROL 
UNIT_STATE_SIGHTLESS 
UNIT_STATE_CANNOT_AUTOATTACK 
UNIT_STATE_CANNOT_TURN 
UNIT_STATE_NOT_MOVE 
UNIT_STATE_IGNORE_ANTISPEEDHACK 
UNIT_STATE_ALL_STATE 
324{
325 UNIT_STATE_DIED = 0x00000001, // player has fake death aura
326 UNIT_STATE_MELEE_ATTACKING = 0x00000002, // player is melee attacking someone
327 //UNIT_STATE_MELEE_ATTACK_BY = 0x00000004, // player is melee attack by someone
328 UNIT_STATE_STUNNED = 0x00000008,
329 UNIT_STATE_ROAMING = 0x00000010,
330 UNIT_STATE_CHASE = 0x00000020,
331 //UNIT_STATE_SEARCHING = 0x00000040,
332 UNIT_STATE_FLEEING = 0x00000080,
333 UNIT_STATE_IN_FLIGHT = 0x00000100, // player is in flight mode
334 UNIT_STATE_FOLLOW = 0x00000200,
335 UNIT_STATE_ROOT = 0x00000400,
336 UNIT_STATE_CONFUSED = 0x00000800,
337 UNIT_STATE_DISTRACTED = 0x00001000,
338 UNIT_STATE_ISOLATED = 0x00002000, // area auras do not affect other players
339 UNIT_STATE_ATTACK_PLAYER = 0x00004000,
340 UNIT_STATE_CASTING = 0x00008000,
341 UNIT_STATE_POSSESSED = 0x00010000,
342 UNIT_STATE_CHARGING = 0x00020000,
343 UNIT_STATE_JUMPING = 0x00040000,
344 UNIT_STATE_MOVE = 0x00100000,
345 UNIT_STATE_ROTATING = 0x00200000,
346 UNIT_STATE_EVADE = 0x00400000,
347 UNIT_STATE_ROAMING_MOVE = 0x00800000,
348 UNIT_STATE_CONFUSED_MOVE = 0x01000000,
349 UNIT_STATE_FLEEING_MOVE = 0x02000000,
350 UNIT_STATE_CHASE_MOVE = 0x04000000,
351 UNIT_STATE_FOLLOW_MOVE = 0x08000000,
352 UNIT_STATE_IGNORE_PATHFINDING = 0x10000000, // do not use pathfinding in any MovementGenerator
353 UNIT_STATE_NO_ENVIRONMENT_UPD = 0x20000000, // pussywizard
354
361
363 // for real move using movegen check and stop (except unstoppable flight)
370 // stay by different reasons
373 UNIT_STATE_ALL_STATE = 0xffffffff //(UNIT_STATE_STOPPED | UNIT_STATE_MOVING | UNIT_STATE_IN_COMBAT | UNIT_STATE_IN_FLIGHT)
374};
@ UNIT_STATE_DISTRACTED
Definition: Unit.h:337
@ UNIT_STATE_NOT_MOVE
Definition: Unit.h:371
@ UNIT_STATE_EVADE
Definition: Unit.h:346
@ UNIT_STATE_DIED
Definition: Unit.h:325
@ UNIT_STATE_ATTACK_PLAYER
Definition: Unit.h:339
@ UNIT_STATE_POSSESSED
Definition: Unit.h:341
@ UNIT_STATE_CHASE
Definition: Unit.h:330
@ UNIT_STATE_ROAMING_MOVE
Definition: Unit.h:347
@ UNIT_STATE_UNATTACKABLE
Definition: Unit.h:362
@ UNIT_STATE_ALL_STATE
Definition: Unit.h:373
@ UNIT_STATE_LOST_CONTROL
Definition: Unit.h:366
@ UNIT_STATE_ALL_STATE_SUPPORTED
Definition: Unit.h:355
@ UNIT_STATE_CANNOT_AUTOATTACK
Definition: Unit.h:368
@ UNIT_STATE_CONFUSED
Definition: Unit.h:336
@ UNIT_STATE_FLEEING_MOVE
Definition: Unit.h:349
@ UNIT_STATE_IGNORE_ANTISPEEDHACK
Definition: Unit.h:372
@ UNIT_STATE_ROOT
Definition: Unit.h:335
@ UNIT_STATE_SIGHTLESS
Definition: Unit.h:367
@ UNIT_STATE_CONFUSED_MOVE
Definition: Unit.h:348
@ UNIT_STATE_CHASE_MOVE
Definition: Unit.h:350
@ UNIT_STATE_ISOLATED
Definition: Unit.h:338
@ UNIT_STATE_FOLLOW
Definition: Unit.h:334
@ UNIT_STATE_CHARGING
Definition: Unit.h:342
@ UNIT_STATE_IGNORE_PATHFINDING
Definition: Unit.h:352
@ UNIT_STATE_ROAMING
Definition: Unit.h:329
@ UNIT_STATE_CONTROLLED
Definition: Unit.h:365
@ UNIT_STATE_FLEEING
Definition: Unit.h:332
@ UNIT_STATE_NO_ENVIRONMENT_UPD
Definition: Unit.h:353
@ UNIT_STATE_CANNOT_TURN
Definition: Unit.h:369
@ UNIT_STATE_MOVING
Definition: Unit.h:364
@ UNIT_STATE_FOLLOW_MOVE
Definition: Unit.h:351
@ UNIT_STATE_MOVE
Definition: Unit.h:344
@ UNIT_STATE_MELEE_ATTACKING
Definition: Unit.h:326
@ UNIT_STATE_IN_FLIGHT
Definition: Unit.h:333
@ UNIT_STATE_CASTING
Definition: Unit.h:340
@ UNIT_STATE_ROTATING
Definition: Unit.h:345
@ UNIT_STATE_STUNNED
Definition: Unit.h:328
@ UNIT_STATE_JUMPING
Definition: Unit.h:343

◆ UnitTypeMask

Enumerator
UNIT_MASK_NONE 
UNIT_MASK_SUMMON 
UNIT_MASK_MINION 
UNIT_MASK_GUARDIAN 
UNIT_MASK_TOTEM 
UNIT_MASK_PET 
UNIT_MASK_VEHICLE 
UNIT_MASK_PUPPET 
UNIT_MASK_HUNTER_PET 
UNIT_MASK_CONTROLABLE_GUARDIAN 
UNIT_MASK_ACCESSORY 
673{
674 UNIT_MASK_NONE = 0x00000000,
675 UNIT_MASK_SUMMON = 0x00000001,
676 UNIT_MASK_MINION = 0x00000002,
677 UNIT_MASK_GUARDIAN = 0x00000004,
678 UNIT_MASK_TOTEM = 0x00000008,
679 UNIT_MASK_PET = 0x00000010,
680 UNIT_MASK_VEHICLE = 0x00000020,
681 UNIT_MASK_PUPPET = 0x00000040,
682 UNIT_MASK_HUNTER_PET = 0x00000080,
684 UNIT_MASK_ACCESSORY = 0x00000200,
685};
@ UNIT_MASK_NONE
Definition: Unit.h:674
@ UNIT_MASK_PUPPET
Definition: Unit.h:681
@ UNIT_MASK_CONTROLABLE_GUARDIAN
Definition: Unit.h:683
@ UNIT_MASK_HUNTER_PET
Definition: Unit.h:682
@ UNIT_MASK_TOTEM
Definition: Unit.h:678
@ UNIT_MASK_ACCESSORY
Definition: Unit.h:684
@ UNIT_MASK_SUMMON
Definition: Unit.h:675
@ UNIT_MASK_VEHICLE
Definition: Unit.h:680
@ UNIT_MASK_GUARDIAN
Definition: Unit.h:677
@ UNIT_MASK_MINION
Definition: Unit.h:676
@ UNIT_MASK_PET
Definition: Unit.h:679

◆ VictimState

Enumerator
VICTIMSTATE_INTACT 
VICTIMSTATE_HIT 
VICTIMSTATE_DODGE 
VICTIMSTATE_PARRY 
VICTIMSTATE_INTERRUPT 
VICTIMSTATE_BLOCKS 
VICTIMSTATE_EVADES 
VICTIMSTATE_IS_IMMUNE 
VICTIMSTATE_DEFLECTS 
165{
166 VICTIMSTATE_INTACT = 0, // set when attacker misses
167 VICTIMSTATE_HIT = 1, // victim got clear/blocked hit
171 VICTIMSTATE_BLOCKS = 5, // unused? not set when blocked, even on full block
175};
@ VICTIMSTATE_DEFLECTS
Definition: Unit.h:174
@ VICTIMSTATE_INTERRUPT
Definition: Unit.h:170
@ VICTIMSTATE_INTACT
Definition: Unit.h:166
@ VICTIMSTATE_HIT
Definition: Unit.h:167
@ VICTIMSTATE_DODGE
Definition: Unit.h:168
@ VICTIMSTATE_IS_IMMUNE
Definition: Unit.h:173
@ VICTIMSTATE_PARRY
Definition: Unit.h:169
@ VICTIMSTATE_BLOCKS
Definition: Unit.h:171
@ VICTIMSTATE_EVADES
Definition: Unit.h:172

◆ WeaponAttackType

Enumerator
BASE_ATTACK 
OFF_ATTACK 
RANGED_ATTACK 
MAX_ATTACK 
395{
396 BASE_ATTACK = 0,
397 OFF_ATTACK = 1,
398 RANGED_ATTACK = 2,
400};
@ OFF_ATTACK
Definition: Unit.h:397
@ MAX_ATTACK
Definition: Unit.h:399
@ BASE_ATTACK
Definition: Unit.h:396
@ RANGED_ATTACK
Definition: Unit.h:398

◆ WeaponDamageRange

Enumerator
MINDAMAGE 
MAXDAMAGE 
MAX_WEAPON_DAMAGE_RANGE 
253{
254 MINDAMAGE,
255 MAXDAMAGE,
256
258};
@ MAX_WEAPON_DAMAGE_RANGE
Definition: Unit.h:257
@ MINDAMAGE
Definition: Unit.h:254
@ MAXDAMAGE
Definition: Unit.h:255

Function Documentation

◆ createProcExtendMask()

uint32 createProcExtendMask ( SpellNonMeleeDamage damageInfo,
SpellMissInfo  missCondition 
)
16093{
16094 uint32 procEx = PROC_EX_NONE;
16095 // Check victim state
16096 if (missCondition != SPELL_MISS_NONE)
16097 switch (missCondition)
16098 {
16099 case SPELL_MISS_MISS:
16100 procEx |= PROC_EX_MISS;
16101 break;
16102 case SPELL_MISS_RESIST:
16103 procEx |= PROC_EX_RESIST;
16104 break;
16105 case SPELL_MISS_DODGE:
16106 procEx |= PROC_EX_DODGE;
16107 break;
16108 case SPELL_MISS_PARRY:
16109 procEx |= PROC_EX_PARRY;
16110 break;
16111 case SPELL_MISS_BLOCK:
16112 procEx |= PROC_EX_BLOCK;
16113 break;
16114 case SPELL_MISS_EVADE:
16115 procEx |= PROC_EX_EVADE;
16116 break;
16117 case SPELL_MISS_IMMUNE:
16118 procEx |= PROC_EX_IMMUNE;
16119 break;
16120 case SPELL_MISS_IMMUNE2:
16121 procEx |= PROC_EX_IMMUNE;
16122 break;
16123 case SPELL_MISS_DEFLECT:
16124 procEx |= PROC_EX_DEFLECT;
16125 break;
16126 case SPELL_MISS_ABSORB:
16127 procEx |= PROC_EX_ABSORB;
16128 break;
16129 case SPELL_MISS_REFLECT:
16130 procEx |= PROC_EX_REFLECT;
16131 break;
16132 default:
16133 break;
16134 }
16135 else
16136 {
16137 // On block
16138 if (damageInfo->blocked)
16139 procEx |= PROC_EX_BLOCK;
16140 // On absorb
16141 if (damageInfo->absorb)
16142 procEx |= PROC_EX_ABSORB;
16143 // On crit
16144 if (damageInfo->HitInfo & SPELL_HIT_TYPE_CRIT)
16145 procEx |= PROC_EX_CRITICAL_HIT;
16146 else
16147 procEx |= PROC_EX_NORMAL_HIT;
16148 }
16149 return procEx;
16150}
std::uint32_t uint32
Definition: Define.h:108
@ PROC_EX_NONE
Definition: SpellMgr.h:193
@ PROC_EX_DODGE
Definition: SpellMgr.h:198
@ PROC_EX_DEFLECT
Definition: SpellMgr.h:203
@ PROC_EX_BLOCK
Definition: SpellMgr.h:200
@ PROC_EX_CRITICAL_HIT
Definition: SpellMgr.h:195
@ PROC_EX_NORMAL_HIT
Definition: SpellMgr.h:194
@ PROC_EX_IMMUNE
Definition: SpellMgr.h:202
@ PROC_EX_MISS
Definition: SpellMgr.h:196
@ PROC_EX_RESIST
Definition: SpellMgr.h:197
@ PROC_EX_REFLECT
Definition: SpellMgr.h:205
@ PROC_EX_ABSORB
Definition: SpellMgr.h:204
@ PROC_EX_PARRY
Definition: SpellMgr.h:199
@ PROC_EX_EVADE
Definition: SpellMgr.h:201
@ SPELL_HIT_TYPE_CRIT
Definition: SharedDefines.h:1508
@ SPELL_MISS_PARRY
Definition: SharedDefines.h:1495
@ SPELL_MISS_IMMUNE
Definition: SharedDefines.h:1498
@ SPELL_MISS_ABSORB
Definition: SharedDefines.h:1501
@ SPELL_MISS_DODGE
Definition: SharedDefines.h:1494
@ SPELL_MISS_IMMUNE2
Definition: SharedDefines.h:1499
@ SPELL_MISS_NONE
Definition: SharedDefines.h:1491
@ SPELL_MISS_RESIST
Definition: SharedDefines.h:1493
@ SPELL_MISS_MISS
Definition: SharedDefines.h:1492
@ SPELL_MISS_EVADE
Definition: SharedDefines.h:1497
@ SPELL_MISS_REFLECT
Definition: SharedDefines.h:1502
@ SPELL_MISS_BLOCK
Definition: SharedDefines.h:1496
@ SPELL_MISS_DEFLECT
Definition: SharedDefines.h:1500
uint32 HitInfo
Definition: Unit.h:925
uint32 absorb
Definition: Unit.h:920
uint32 blocked
Definition: Unit.h:924

References SpellNonMeleeDamage::absorb, SpellNonMeleeDamage::blocked, SpellNonMeleeDamage::HitInfo, PROC_EX_ABSORB, PROC_EX_BLOCK, PROC_EX_CRITICAL_HIT, PROC_EX_DEFLECT, PROC_EX_DODGE, PROC_EX_EVADE, PROC_EX_IMMUNE, PROC_EX_MISS, PROC_EX_NONE, PROC_EX_NORMAL_HIT, PROC_EX_PARRY, PROC_EX_REFLECT, PROC_EX_RESIST, SPELL_HIT_TYPE_CRIT, SPELL_MISS_ABSORB, SPELL_MISS_BLOCK, SPELL_MISS_DEFLECT, SPELL_MISS_DODGE, SPELL_MISS_EVADE, SPELL_MISS_IMMUNE, SPELL_MISS_IMMUNE2, SPELL_MISS_MISS, SPELL_MISS_NONE, SPELL_MISS_PARRY, SPELL_MISS_REFLECT, and SPELL_MISS_RESIST.

Referenced by Spell::DoAllEffectOnTarget(), and AuraEffect::HandlePeriodicPowerBurnAuraTick().

◆ createProcFlags()

void createProcFlags ( SpellInfo const *  spellInfo,
WeaponAttackType  attackType,
bool  positive,
uint32 procAttacker,
uint32 procVictim 
)
16019{
16020 if (spellInfo)
16021 {
16022 switch (spellInfo->DmgClass)
16023 {
16025 if (positive)
16026 {
16029 }
16030 else
16031 {
16034 }
16035 break;
16037 if (positive)
16038 {
16041 }
16042 else
16043 {
16046 }
16047 break;
16050 if (attackType == OFF_ATTACK)
16051 procAttacker |= PROC_FLAG_DONE_OFFHAND_ATTACK;
16052 else
16053 procAttacker |= PROC_FLAG_DONE_MAINHAND_ATTACK;
16055 break;
16057 // Auto attack
16058 if (spellInfo->HasAttribute(SPELL_ATTR2_AUTO_REPEAT))
16059 {
16060 procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
16062 }
16063 else // Ranged spell attack
16064 {
16067 }
16068 break;
16069 default:
16070 if (spellInfo->EquippedItemClass == ITEM_CLASS_WEAPON &&
16071 spellInfo->EquippedItemSubClassMask & (1 << ITEM_SUBCLASS_WEAPON_WAND)
16072 && spellInfo->HasAttribute(SPELL_ATTR2_AUTO_REPEAT)) // Wands auto attack
16073 {
16074 procAttacker = PROC_FLAG_DONE_RANGED_AUTO_ATTACK;
16076 }
16077 break;
16078 }
16079 }
16080 else if (attackType == BASE_ATTACK)
16081 {
16084 }
16085 else if (attackType == OFF_ATTACK)
16086 {
16089 }
16090}
@ ITEM_SUBCLASS_WEAPON_WAND
Definition: ItemTemplate.h:372
@ ITEM_CLASS_WEAPON
Definition: ItemTemplate.h:302
@ PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS
Definition: SpellMgr.h:119
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS
Definition: SpellMgr.h:128
@ PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK
Definition: SpellMgr.h:117
@ PROC_FLAG_DONE_MELEE_AUTO_ATTACK
Definition: SpellMgr.h:110
@ PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS
Definition: SpellMgr.h:122
@ PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS
Definition: SpellMgr.h:113
@ PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG
Definition: SpellMgr.h:132
@ PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS
Definition: SpellMgr.h:120
@ PROC_FLAG_DONE_MAINHAND_ATTACK
Definition: SpellMgr.h:140
@ PROC_FLAG_DONE_RANGED_AUTO_ATTACK
Definition: SpellMgr.h:116
@ PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG
Definition: SpellMgr.h:126
@ PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG
Definition: SpellMgr.h:125
@ PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS
Definition: SpellMgr.h:129
@ PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK
Definition: SpellMgr.h:111
@ PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS
Definition: SpellMgr.h:123
@ PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS
Definition: SpellMgr.h:114
@ PROC_FLAG_DONE_OFFHAND_ATTACK
Definition: SpellMgr.h:141
@ PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG
Definition: SpellMgr.h:131
@ SPELL_ATTR2_AUTO_REPEAT
Definition: SharedDefines.h:433
@ SPELL_DAMAGE_CLASS_RANGED
Definition: SharedDefines.h:1520
@ SPELL_DAMAGE_CLASS_MAGIC
Definition: SharedDefines.h:1518
@ SPELL_DAMAGE_CLASS_NONE
Definition: SharedDefines.h:1517
@ SPELL_DAMAGE_CLASS_MELEE
Definition: SharedDefines.h:1519

References BASE_ATTACK, SpellInfo::DmgClass, SpellInfo::EquippedItemClass, SpellInfo::EquippedItemSubClassMask, SpellInfo::HasAttribute(), ITEM_CLASS_WEAPON, ITEM_SUBCLASS_WEAPON_WAND, OFF_ATTACK, PROC_FLAG_DONE_MAINHAND_ATTACK, PROC_FLAG_DONE_MELEE_AUTO_ATTACK, PROC_FLAG_DONE_OFFHAND_ATTACK, PROC_FLAG_DONE_RANGED_AUTO_ATTACK, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS, PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG, PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS, PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS, PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK, PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK, PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG, PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS, PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS, PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG, PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS, PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS, SPELL_ATTR2_AUTO_REPEAT, SPELL_DAMAGE_CLASS_MAGIC, SPELL_DAMAGE_CLASS_MELEE, SPELL_DAMAGE_CLASS_NONE, and SPELL_DAMAGE_CLASS_RANGED.

Referenced by Unit::CalcAbsorbResist().

◆ DEFINE_ENUM_FLAG() [1/3]

DEFINE_ENUM_FLAG ( NPCFlags  )

◆ DEFINE_ENUM_FLAG() [2/3]

DEFINE_ENUM_FLAG ( UnitFlags  )

◆ DEFINE_ENUM_FLAG() [3/3]

DEFINE_ENUM_FLAG ( UnitFlags2  )

Variable Documentation

◆ baseMoveSpeed

float baseMoveSpeed[MAX_MOVE_TYPE]
extern

◆ infinityCooldownDelay

constexpr uint32 infinityCooldownDelay = 0x9A7EC800
staticconstexpr

◆ infinityCooldownDelayCheck

◆ MAX_CREATURE_SPELLS

◆ playerBaseMoveSpeed

float playerBaseMoveSpeed[MAX_MOVE_TYPE]
extern