AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
UnitDefines.h File Reference
#include "Define.h"
#include "EnumFlag.h"

Go to the source code of this file.

Macros

#define MAX_SHEATH_STATE   3
 
#define MAX_MOVE_TYPE   9
 

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  ShapeshiftFlags {
  SHAPESHIFT_FLAG_STANCE = 0x00000001 ,
  SHAPESHIFT_FLAG_NOT_TOGGLEABLE = 0x00000002 ,
  SHAPESHIFT_FLAG_PERSIST_ON_DEATH = 0x00000004 ,
  SHAPESHIFT_FLAG_CAN_NPC_INTERACT = 0x00000008 ,
  SHAPESHIFT_FLAG_DONT_USE_WEAPON = 0x00000010 ,
  SHAPESHIFT_FLAG_AGILITY_ATTACK_BONUS = 0x00000020 ,
  SHAPESHIFT_FLAG_CAN_USE_EQUIPPED_ITEMS = 0x00000040 ,
  SHAPESHIFT_FLAG_CAN_USE_ITEMS = 0x00000080 ,
  SHAPESHIFT_FLAG_DONT_AUTO_UNSHIFT = 0x00000100 ,
  SHAPESHIFT_FLAG_CONSIDERED_DEAD = 0x00000200 ,
  SHAPESHIFT_FLAG_CAN_ONLY_CAST_SHAPESHIFT_SPELLS = 0x00000400 ,
  SHAPESHIFT_FLAG_STANCE_CANCEL_AT_FLIGHTMASTER = 0x00000800 ,
  SHAPESHIFT_FLAG_NO_EMOTE_SOUNDS = 0x00001000 ,
  SHAPESHIFT_FLAG_NO_TRIGGER_TELEPORT = 0x00002000 ,
  SHAPESHIFT_FLAG_CANNOT_CHANGE_EQUIPPED_ITEMS = 0x00004000 ,
  SHAPESHIFT_FLAG_RESUMMON_PETS_ON_UNSHIFT = 0x00008000 ,
  SHAPESHIFT_FLAG_CANNOT_USE_GAME_OBJECTS = 0x00010000
}
 
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  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  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  ClassContext : uint8 {
  CLASS_CONTEXT_NONE = 0 ,
  CLASS_CONTEXT_INIT = 1 ,
  CLASS_CONTEXT_TELEPORT = 2 ,
  CLASS_CONTEXT_QUEST = 3 ,
  CLASS_CONTEXT_STATS = 4 ,
  CLASS_CONTEXT_TAXI = 5 ,
  CLASS_CONTEXT_SKILL = 6 ,
  CLASS_CONTEXT_TALENT_POINT_CALC = 7 ,
  CLASS_CONTEXT_ABILITY = 8 ,
  CLASS_CONTEXT_ABILITY_REACTIVE = 9 ,
  CLASS_CONTEXT_PET = 10 ,
  CLASS_CONTEXT_PET_CHARM = 11 ,
  CLASS_CONTEXT_EQUIP_RELIC = 12 ,
  CLASS_CONTEXT_EQUIP_SHIELDS = 13 ,
  CLASS_CONTEXT_EQUIP_ARMOR_CLASS = 14 ,
  CLASS_CONTEXT_WEAPON_SWAP = 15 ,
  CLASS_CONTEXT_GRAVEYARD = 16 ,
  CLASS_CONTEXT_CLASS_TRAINER = 17
}
 
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  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  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
}
 

Functions

 DEFINE_ENUM_FLAG (UnitFlags)
 
 DEFINE_ENUM_FLAG (UnitFlags2)
 
 DEFINE_ENUM_FLAG (NPCFlags)
 

Macro Definition Documentation

◆ MAX_MOVE_TYPE

#define MAX_MOVE_TYPE   9

◆ MAX_SHEATH_STATE

#define MAX_SHEATH_STATE   3

Enumeration Type Documentation

◆ ClassContext

Enumerator
CLASS_CONTEXT_NONE 
CLASS_CONTEXT_INIT 
CLASS_CONTEXT_TELEPORT 
CLASS_CONTEXT_QUEST 
CLASS_CONTEXT_STATS 
CLASS_CONTEXT_TAXI 
CLASS_CONTEXT_SKILL 
CLASS_CONTEXT_TALENT_POINT_CALC 
CLASS_CONTEXT_ABILITY 
CLASS_CONTEXT_ABILITY_REACTIVE 
CLASS_CONTEXT_PET 
CLASS_CONTEXT_PET_CHARM 
CLASS_CONTEXT_EQUIP_RELIC 
CLASS_CONTEXT_EQUIP_SHIELDS 
CLASS_CONTEXT_EQUIP_ARMOR_CLASS 
CLASS_CONTEXT_WEAPON_SWAP 
CLASS_CONTEXT_GRAVEYARD 
CLASS_CONTEXT_CLASS_TRAINER 
225{
226 CLASS_CONTEXT_NONE = 0, // Default
244};
@ CLASS_CONTEXT_GRAVEYARD
Definition UnitDefines.h:242
@ CLASS_CONTEXT_ABILITY
Definition UnitDefines.h:234
@ CLASS_CONTEXT_NONE
Definition UnitDefines.h:226
@ CLASS_CONTEXT_CLASS_TRAINER
Definition UnitDefines.h:243
@ CLASS_CONTEXT_PET_CHARM
Definition UnitDefines.h:237
@ CLASS_CONTEXT_WEAPON_SWAP
Definition UnitDefines.h:241
@ CLASS_CONTEXT_PET
Definition UnitDefines.h:236
@ CLASS_CONTEXT_TELEPORT
Definition UnitDefines.h:228
@ CLASS_CONTEXT_INIT
Definition UnitDefines.h:227
@ CLASS_CONTEXT_ABILITY_REACTIVE
Definition UnitDefines.h:235
@ CLASS_CONTEXT_STATS
Definition UnitDefines.h:230
@ CLASS_CONTEXT_EQUIP_SHIELDS
Definition UnitDefines.h:239
@ CLASS_CONTEXT_SKILL
Definition UnitDefines.h:232
@ CLASS_CONTEXT_EQUIP_RELIC
Definition UnitDefines.h:238
@ CLASS_CONTEXT_TALENT_POINT_CALC
Definition UnitDefines.h:233
@ CLASS_CONTEXT_TAXI
Definition UnitDefines.h:231
@ CLASS_CONTEXT_EQUIP_ARMOR_CLASS
Definition UnitDefines.h:240
@ CLASS_CONTEXT_QUEST
Definition UnitDefines.h:229

◆ 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 
Todo:
: Check if PITCH_UP and PITCH_DOWN really belong here..
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.

363{
364 MOVEMENTFLAG_NONE = 0x00000000,
365 MOVEMENTFLAG_FORWARD = 0x00000001,
366 MOVEMENTFLAG_BACKWARD = 0x00000002,
367 MOVEMENTFLAG_STRAFE_LEFT = 0x00000004,
368 MOVEMENTFLAG_STRAFE_RIGHT = 0x00000008,
369 MOVEMENTFLAG_LEFT = 0x00000010,
370 MOVEMENTFLAG_RIGHT = 0x00000020,
371 MOVEMENTFLAG_PITCH_UP = 0x00000040,
372 MOVEMENTFLAG_PITCH_DOWN = 0x00000080,
373 MOVEMENTFLAG_WALKING = 0x00000100, // Walking
374 MOVEMENTFLAG_ONTRANSPORT = 0x00000200, // Used for flying on some creatures
375 MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000400, // Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible.
376 MOVEMENTFLAG_ROOT = 0x00000800, // Must not be set along with MOVEMENTFLAG_MASK_MOVING
377 MOVEMENTFLAG_FALLING = 0x00001000, // damage dealt on that type of falling
378 MOVEMENTFLAG_FALLING_FAR = 0x00002000,
379 MOVEMENTFLAG_PENDING_STOP = 0x00004000,
381 MOVEMENTFLAG_PENDING_FORWARD = 0x00010000,
385 MOVEMENTFLAG_PENDING_ROOT = 0x00100000,
386 MOVEMENTFLAG_SWIMMING = 0x00200000, // appears with fly flag also
387 MOVEMENTFLAG_ASCENDING = 0x00400000, // press "space" when flying
388 MOVEMENTFLAG_DESCENDING = 0x00800000,
389 MOVEMENTFLAG_CAN_FLY = 0x01000000, // Appears when unit can fly AND also walk
390 MOVEMENTFLAG_FLYING = 0x02000000, // unit is actually flying. pretty sure this is only used for players. creatures use disable_gravity
391 MOVEMENTFLAG_SPLINE_ELEVATION = 0x04000000, // used for flight paths
392 MOVEMENTFLAG_SPLINE_ENABLED = 0x08000000, // used for flight paths
393 MOVEMENTFLAG_WATERWALKING = 0x10000000, // prevent unit from falling through water
394 MOVEMENTFLAG_FALLING_SLOW = 0x20000000, // active rogue safe fall spell (passive)
395 MOVEMENTFLAG_HOVER = 0x40000000, // hover, cannot jump
396
402
405
408
412
416};
@ MOVEMENTFLAG_MASK_PLAYER_ONLY
Definition UnitDefines.h:410
@ MOVEMENTFLAG_DESCENDING
Definition UnitDefines.h:388
@ MOVEMENTFLAG_PITCH_DOWN
Definition UnitDefines.h:372
@ MOVEMENTFLAG_PENDING_STRAFE_STOP
Definition UnitDefines.h:380
@ MOVEMENTFLAG_PITCH_UP
Definition UnitDefines.h:371
@ MOVEMENTFLAG_RIGHT
Definition UnitDefines.h:370
@ MOVEMENTFLAG_PENDING_STOP
Definition UnitDefines.h:379
@ MOVEMENTFLAG_SPLINE_ENABLED
Definition UnitDefines.h:392
@ MOVEMENTFLAG_FORWARD
Definition UnitDefines.h:365
@ MOVEMENTFLAG_PENDING_STRAFE_LEFT
Definition UnitDefines.h:383
@ MOVEMENTFLAG_NONE
Definition UnitDefines.h:364
@ MOVEMENTFLAG_STRAFE_LEFT
Definition UnitDefines.h:367
@ MOVEMENTFLAG_ONTRANSPORT
Definition UnitDefines.h:374
@ MOVEMENTFLAG_BACKWARD
Definition UnitDefines.h:366
@ MOVEMENTFLAG_WATERWALKING
Definition UnitDefines.h:393
@ MOVEMENTFLAG_MASK_MOVING
Definition UnitDefines.h:398
@ MOVEMENTFLAG_DISABLE_GRAVITY
Definition UnitDefines.h:375
@ MOVEMENTFLAG_PENDING_BACKWARD
Definition UnitDefines.h:382
@ MOVEMENTFLAG_FLYING
Definition UnitDefines.h:390
@ MOVEMENTFLAG_FALLING_SLOW
Definition UnitDefines.h:394
@ MOVEMENTFLAG_PENDING_STRAFE_RIGHT
Definition UnitDefines.h:384
@ MOVEMENTFLAG_CAN_FLY
Definition UnitDefines.h:389
@ MOVEMENTFLAG_ROOT
Definition UnitDefines.h:376
@ MOVEMENTFLAG_MASK_TURNING
Definition UnitDefines.h:403
@ MOVEMENTFLAG_FALLING
Definition UnitDefines.h:377
@ MOVEMENTFLAG_LEFT
Definition UnitDefines.h:369
@ MOVEMENTFLAG_MASK_MOVING_FLY
Definition UnitDefines.h:406
@ MOVEMENTFLAG_STRAFE_RIGHT
Definition UnitDefines.h:368
@ MOVEMENTFLAG_FALLING_FAR
Definition UnitDefines.h:378
@ MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
Movement flags that have change status opcodes associated for players.
Definition UnitDefines.h:414
@ MOVEMENTFLAG_SWIMMING
Definition UnitDefines.h:386
@ MOVEMENTFLAG_ASCENDING
Definition UnitDefines.h:387
@ MOVEMENTFLAG_PENDING_FORWARD
Definition UnitDefines.h:381
@ MOVEMENTFLAG_HOVER
Definition UnitDefines.h:395
@ MOVEMENTFLAG_SPLINE_ELEVATION
Definition UnitDefines.h:391
@ MOVEMENTFLAG_PENDING_ROOT
Definition UnitDefines.h:385
@ MOVEMENTFLAG_WALKING
Definition UnitDefines.h:373

◆ 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 
419{
420 MOVEMENTFLAG2_NONE = 0x00000000,
421 MOVEMENTFLAG2_NO_STRAFE = 0x00000001,
422 MOVEMENTFLAG2_NO_JUMPING = 0x00000002,
423 MOVEMENTFLAG2_UNK3 = 0x00000004, // Overrides various clientside checks
427 MOVEMENTFLAG2_UNK7 = 0x00000040,
428 MOVEMENTFLAG2_UNK8 = 0x00000080,
429 MOVEMENTFLAG2_UNK9 = 0x00000100,
430 MOVEMENTFLAG2_UNK10 = 0x00000200,
434 MOVEMENTFLAG2_UNK14 = 0x00002000,
435 MOVEMENTFLAG2_UNK15 = 0x00004000,
436 MOVEMENTFLAG2_UNK16 = 0x00008000
437};
@ MOVEMENTFLAG2_UNK3
Definition UnitDefines.h:423
@ MOVEMENTFLAG2_UNK8
Definition UnitDefines.h:428
@ MOVEMENTFLAG2_UNK9
Definition UnitDefines.h:429
@ MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING
Definition UnitDefines.h:426
@ MOVEMENTFLAG2_INTERPOLATED_PITCHING
Definition UnitDefines.h:433
@ MOVEMENTFLAG2_UNK7
Definition UnitDefines.h:427
@ MOVEMENTFLAG2_INTERPOLATED_MOVEMENT
Definition UnitDefines.h:431
@ MOVEMENTFLAG2_UNK15
Definition UnitDefines.h:435
@ MOVEMENTFLAG2_NO_STRAFE
Definition UnitDefines.h:421
@ MOVEMENTFLAG2_UNK16
Definition UnitDefines.h:436
@ MOVEMENTFLAG2_UNK14
Definition UnitDefines.h:434
@ MOVEMENTFLAG2_INTERPOLATED_TURNING
Definition UnitDefines.h:432
@ MOVEMENTFLAG2_FULL_SPEED_PITCHING
Definition UnitDefines.h:425
@ MOVEMENTFLAG2_UNK10
Definition UnitDefines.h:430
@ MOVEMENTFLAG2_NONE
Definition UnitDefines.h:420
@ MOVEMENTFLAG2_FULL_SPEED_TURNING
Definition UnitDefines.h:424
@ MOVEMENTFLAG2_NO_JUMPING
Definition UnitDefines.h:422

◆ 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 
313{
314 UNIT_NPC_FLAG_NONE = 0x00000000, // SKIP
315 UNIT_NPC_FLAG_GOSSIP = 0x00000001, // TITLE has gossip menu DESCRIPTION 100%
316 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002, // TITLE is quest giver DESCRIPTION guessed, probably ok
317 UNIT_NPC_FLAG_UNK1 = 0x00000004,
318 UNIT_NPC_FLAG_UNK2 = 0x00000008,
319 UNIT_NPC_FLAG_TRAINER = 0x00000010, // TITLE is trainer DESCRIPTION 100%
320 UNIT_NPC_FLAG_TRAINER_CLASS = 0x00000020, // TITLE is class trainer DESCRIPTION 100%
321 UNIT_NPC_FLAG_TRAINER_PROFESSION = 0x00000040, // TITLE is profession trainer DESCRIPTION 100%
322 UNIT_NPC_FLAG_VENDOR = 0x00000080, // TITLE is vendor (generic) DESCRIPTION 100%
323 UNIT_NPC_FLAG_VENDOR_AMMO = 0x00000100, // TITLE is vendor (ammo) DESCRIPTION 100%, general goods vendor
324 UNIT_NPC_FLAG_VENDOR_FOOD = 0x00000200, // TITLE is vendor (food) DESCRIPTION 100%
325 UNIT_NPC_FLAG_VENDOR_POISON = 0x00000400, // TITLE is vendor (poison) DESCRIPTION guessed
326 UNIT_NPC_FLAG_VENDOR_REAGENT = 0x00000800, // TITLE is vendor (reagents) DESCRIPTION 100%
327 UNIT_NPC_FLAG_REPAIR = 0x00001000, // TITLE can repair DESCRIPTION 100%
328 UNIT_NPC_FLAG_FLIGHTMASTER = 0x00002000, // TITLE is flight master DESCRIPTION 100%
329 UNIT_NPC_FLAG_SPIRITHEALER = 0x00004000, // TITLE is spirit healer DESCRIPTION guessed
330 UNIT_NPC_FLAG_SPIRITGUIDE = 0x00008000, // TITLE is spirit guide DESCRIPTION guessed
331 UNIT_NPC_FLAG_INNKEEPER = 0x00010000, // TITLE is innkeeper
332 UNIT_NPC_FLAG_BANKER = 0x00020000, // TITLE is banker DESCRIPTION 100%
333 UNIT_NPC_FLAG_PETITIONER = 0x00040000, // TITLE handles guild/arena petitions DESCRIPTION 100% 0xC0000 = guild petitions, 0x40000 = arena team petitions
334 UNIT_NPC_FLAG_TABARDDESIGNER = 0x00080000, // TITLE is guild tabard designer DESCRIPTION 100%
335 UNIT_NPC_FLAG_BATTLEMASTER = 0x00100000, // TITLE is battlemaster DESCRIPTION 100%
336 UNIT_NPC_FLAG_AUCTIONEER = 0x00200000, // TITLE is auctioneer DESCRIPTION 100%
337 UNIT_NPC_FLAG_STABLEMASTER = 0x00400000, // TITLE is stable master DESCRIPTION 100%
338 UNIT_NPC_FLAG_GUILD_BANKER = 0x00800000, // TITLE is guild banker DESCRIPTION cause client to send 997 opcode
339 UNIT_NPC_FLAG_SPELLCLICK = 0x01000000, // TITLE has spell click enabled DESCRIPTION cause client to send 1015 opcode (spell click)
340 UNIT_NPC_FLAG_PLAYER_VEHICLE = 0x02000000, // TITLE is player vehicle DESCRIPTION players with mounts that have vehicle data should have it set
341 UNIT_NPC_FLAG_MAILBOX = 0x04000000, // TITLE is mailbox
342
344};
@ UNIT_NPC_FLAG_VENDOR_AMMO
Definition UnitDefines.h:323
@ UNIT_NPC_FLAG_TABARDDESIGNER
Definition UnitDefines.h:334
@ UNIT_NPC_FLAG_BANKER
Definition UnitDefines.h:332
@ UNIT_NPC_FLAG_AUCTIONEER
Definition UnitDefines.h:336
@ UNIT_NPC_FLAG_UNK2
Definition UnitDefines.h:318
@ UNIT_NPC_FLAG_VENDOR_POISON
Definition UnitDefines.h:325
@ UNIT_NPC_FLAG_GUILD_BANKER
Definition UnitDefines.h:338
@ UNIT_NPC_FLAG_VENDOR
Definition UnitDefines.h:322
@ UNIT_NPC_FLAG_STABLEMASTER
Definition UnitDefines.h:337
@ UNIT_NPC_FLAG_VENDOR_REAGENT
Definition UnitDefines.h:326
@ UNIT_NPC_FLAG_GOSSIP
Definition UnitDefines.h:315
@ UNIT_NPC_FLAG_NONE
Definition UnitDefines.h:314
@ UNIT_NPC_FLAG_BATTLEMASTER
Definition UnitDefines.h:335
@ UNIT_NPC_FLAG_VENDOR_FOOD
Definition UnitDefines.h:324
@ UNIT_NPC_FLAG_QUESTGIVER
Definition UnitDefines.h:316
@ UNIT_NPC_FLAG_INNKEEPER
Definition UnitDefines.h:331
@ UNIT_NPC_FLAG_SPELLCLICK
Definition UnitDefines.h:339
@ UNIT_NPC_FLAG_UNK1
Definition UnitDefines.h:317
@ UNIT_NPC_FLAG_VENDOR_MASK
Definition UnitDefines.h:343
@ UNIT_NPC_FLAG_MAILBOX
Definition UnitDefines.h:341
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
Definition UnitDefines.h:340
@ UNIT_NPC_FLAG_FLIGHTMASTER
Definition UnitDefines.h:328
@ UNIT_NPC_FLAG_TRAINER_CLASS
Definition UnitDefines.h:320
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
Definition UnitDefines.h:321
@ UNIT_NPC_FLAG_REPAIR
Definition UnitDefines.h:327
@ UNIT_NPC_FLAG_TRAINER
Definition UnitDefines.h:319
@ UNIT_NPC_FLAG_PETITIONER
Definition UnitDefines.h:333
@ UNIT_NPC_FLAG_SPIRITGUIDE
Definition UnitDefines.h:330
@ UNIT_NPC_FLAG_SPIRITHEALER
Definition UnitDefines.h:329

◆ ShapeshiftFlags

Enumerator
SHAPESHIFT_FLAG_STANCE 
SHAPESHIFT_FLAG_NOT_TOGGLEABLE 
SHAPESHIFT_FLAG_PERSIST_ON_DEATH 
SHAPESHIFT_FLAG_CAN_NPC_INTERACT 
SHAPESHIFT_FLAG_DONT_USE_WEAPON 
SHAPESHIFT_FLAG_AGILITY_ATTACK_BONUS 
SHAPESHIFT_FLAG_CAN_USE_EQUIPPED_ITEMS 
SHAPESHIFT_FLAG_CAN_USE_ITEMS 
SHAPESHIFT_FLAG_DONT_AUTO_UNSHIFT 
SHAPESHIFT_FLAG_CONSIDERED_DEAD 
SHAPESHIFT_FLAG_CAN_ONLY_CAST_SHAPESHIFT_SPELLS 
SHAPESHIFT_FLAG_STANCE_CANCEL_AT_FLIGHTMASTER 
SHAPESHIFT_FLAG_NO_EMOTE_SOUNDS 
SHAPESHIFT_FLAG_NO_TRIGGER_TELEPORT 
SHAPESHIFT_FLAG_CANNOT_CHANGE_EQUIPPED_ITEMS 
SHAPESHIFT_FLAG_RESUMMON_PETS_ON_UNSHIFT 
SHAPESHIFT_FLAG_CANNOT_USE_GAME_OBJECTS 
103{
104 SHAPESHIFT_FLAG_STANCE = 0x00000001, // Form allows various player activities, which normally cause "You can't X while shapeshifted." errors (npc/go interaction, item use, etc)
105 SHAPESHIFT_FLAG_NOT_TOGGLEABLE = 0x00000002, // NYI
106 SHAPESHIFT_FLAG_PERSIST_ON_DEATH = 0x00000004, // NYI
107 SHAPESHIFT_FLAG_CAN_NPC_INTERACT = 0x00000008, // Form unconditionally allows talking to NPCs while shapeshifted (even if other activities are disabled)
108 SHAPESHIFT_FLAG_DONT_USE_WEAPON = 0x00000010, // NYI
109 SHAPESHIFT_FLAG_AGILITY_ATTACK_BONUS = 0x00000020, // Druid Cat form
110 SHAPESHIFT_FLAG_CAN_USE_EQUIPPED_ITEMS = 0x00000040, // NYI
111 SHAPESHIFT_FLAG_CAN_USE_ITEMS = 0x00000080, // NYI
112 SHAPESHIFT_FLAG_DONT_AUTO_UNSHIFT = 0x00000100, // Handled at client side
113 SHAPESHIFT_FLAG_CONSIDERED_DEAD = 0x00000200, // NYI
116 SHAPESHIFT_FLAG_NO_EMOTE_SOUNDS = 0x00001000, // NYI
117 SHAPESHIFT_FLAG_NO_TRIGGER_TELEPORT = 0x00002000, // NYI
120 SHAPESHIFT_FLAG_CANNOT_USE_GAME_OBJECTS = 0x00010000, // NYI
121};
@ SHAPESHIFT_FLAG_CAN_ONLY_CAST_SHAPESHIFT_SPELLS
Definition UnitDefines.h:114
@ SHAPESHIFT_FLAG_NO_EMOTE_SOUNDS
Definition UnitDefines.h:116
@ SHAPESHIFT_FLAG_CONSIDERED_DEAD
Definition UnitDefines.h:113
@ SHAPESHIFT_FLAG_RESUMMON_PETS_ON_UNSHIFT
Definition UnitDefines.h:119
@ SHAPESHIFT_FLAG_DONT_AUTO_UNSHIFT
Definition UnitDefines.h:112
@ SHAPESHIFT_FLAG_AGILITY_ATTACK_BONUS
Definition UnitDefines.h:109
@ SHAPESHIFT_FLAG_STANCE
Definition UnitDefines.h:104
@ SHAPESHIFT_FLAG_DONT_USE_WEAPON
Definition UnitDefines.h:108
@ SHAPESHIFT_FLAG_PERSIST_ON_DEATH
Definition UnitDefines.h:106
@ SHAPESHIFT_FLAG_CANNOT_CHANGE_EQUIPPED_ITEMS
Definition UnitDefines.h:118
@ SHAPESHIFT_FLAG_NOT_TOGGLEABLE
Definition UnitDefines.h:105
@ SHAPESHIFT_FLAG_CAN_USE_ITEMS
Definition UnitDefines.h:111
@ SHAPESHIFT_FLAG_CAN_USE_EQUIPPED_ITEMS
Definition UnitDefines.h:110
@ SHAPESHIFT_FLAG_CANNOT_USE_GAME_OBJECTS
Definition UnitDefines.h:120
@ SHAPESHIFT_FLAG_CAN_NPC_INTERACT
Definition UnitDefines.h:107
@ SHAPESHIFT_FLAG_NO_TRIGGER_TELEPORT
Definition UnitDefines.h:117
@ SHAPESHIFT_FLAG_STANCE_CANCEL_AT_FLIGHTMASTER
Definition UnitDefines.h:115

◆ 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 
68{
69 FORM_NONE = 0x00,
70 FORM_CAT = 0x01,
71 FORM_TREE = 0x02,
72 FORM_TRAVEL = 0x03,
73 FORM_AQUA = 0x04,
74 FORM_BEAR = 0x05,
75 FORM_AMBIENT = 0x06,
76 FORM_GHOUL = 0x07,
77 FORM_DIREBEAR = 0x08,
78 FORM_STEVES_GHOUL = 0x09,
81 FORM_BLB_PLAYER = 0x0C,
82 FORM_SHADOW_DANCE = 0x0D,
83 FORM_CREATUREBEAR = 0x0E,
84 FORM_CREATURECAT = 0x0F,
85 FORM_GHOSTWOLF = 0x10,
86 FORM_BATTLESTANCE = 0x11,
89 FORM_TEST = 0x14,
90 FORM_ZOMBIE = 0x15,
91 FORM_METAMORPHOSIS = 0x16,
92 FORM_UNDEAD = 0x19,
93 FORM_MASTER_ANGLER = 0x1A,
94 FORM_FLIGHT_EPIC = 0x1B,
95 FORM_SHADOW = 0x1C,
96 FORM_FLIGHT = 0x1D,
97 FORM_STEALTH = 0x1E,
98 FORM_MOONKIN = 0x1F,
100};
@ FORM_DIREBEAR
Definition UnitDefines.h:77
@ FORM_UNDEAD
Definition UnitDefines.h:92
@ FORM_TEST
Definition UnitDefines.h:89
@ FORM_TRAVEL
Definition UnitDefines.h:72
@ FORM_CREATUREBEAR
Definition UnitDefines.h:83
@ FORM_SHADOW
Definition UnitDefines.h:95
@ FORM_SHADOW_DANCE
Definition UnitDefines.h:82
@ FORM_SPIRITOFREDEMPTION
Definition UnitDefines.h:99
@ FORM_BERSERKERSTANCE
Definition UnitDefines.h:88
@ FORM_MASTER_ANGLER
Definition UnitDefines.h:93
@ FORM_DEFENSIVESTANCE
Definition UnitDefines.h:87
@ FORM_THARONJA_SKELETON
Definition UnitDefines.h:79
@ FORM_FLIGHT_EPIC
Definition UnitDefines.h:94
@ FORM_STEVES_GHOUL
Definition UnitDefines.h:78
@ FORM_MOONKIN
Definition UnitDefines.h:98
@ FORM_NONE
Definition UnitDefines.h:69
@ FORM_CREATURECAT
Definition UnitDefines.h:84
@ FORM_CAT
Definition UnitDefines.h:70
@ FORM_FLIGHT
Definition UnitDefines.h:96
@ FORM_ZOMBIE
Definition UnitDefines.h:90
@ FORM_GHOSTWOLF
Definition UnitDefines.h:85
@ FORM_AMBIENT
Definition UnitDefines.h:75
@ FORM_AQUA
Definition UnitDefines.h:73
@ FORM_STEALTH
Definition UnitDefines.h:97
@ FORM_BATTLESTANCE
Definition UnitDefines.h:86
@ FORM_BLB_PLAYER
Definition UnitDefines.h:81
@ FORM_METAMORPHOSIS
Definition UnitDefines.h:91
@ FORM_GHOUL
Definition UnitDefines.h:76
@ FORM_TREE
Definition UnitDefines.h:71
@ FORM_TEST_OF_STRENGTH
Definition UnitDefines.h:80
@ FORM_BEAR
Definition UnitDefines.h:74

◆ 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 UnitDefines.h:126
@ SHEATH_STATE_MELEE
Definition UnitDefines.h:127
@ SHEATH_STATE_RANGED
Definition UnitDefines.h:128

◆ 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 
440{
441 SPLINEFLAG_NONE = 0x00000000,
442 SPLINEFLAG_FORWARD = 0x00000001,
443 SPLINEFLAG_BACKWARD = 0x00000002,
444 SPLINEFLAG_STRAFE_LEFT = 0x00000004,
445 SPLINEFLAG_STRAFE_RIGHT = 0x00000008,
446 SPLINEFLAG_TURN_LEFT = 0x00000010,
447 SPLINEFLAG_TURN_RIGHT = 0x00000020,
448 SPLINEFLAG_PITCH_UP = 0x00000040,
449 SPLINEFLAG_PITCH_DOWN = 0x00000080,
450 SPLINEFLAG_DONE = 0x00000100,
451 SPLINEFLAG_FALLING = 0x00000200,
452 SPLINEFLAG_NO_SPLINE = 0x00000400,
453 SPLINEFLAG_TRAJECTORY = 0x00000800,
454 SPLINEFLAG_WALK_MODE = 0x00001000,
455 SPLINEFLAG_FLYING = 0x00002000,
456 SPLINEFLAG_KNOCKBACK = 0x00004000,
457 SPLINEFLAG_FINAL_POINT = 0x00008000,
458 SPLINEFLAG_FINAL_TARGET = 0x00010000,
459 SPLINEFLAG_FINAL_FACING = 0x00020000,
460 SPLINEFLAG_CATMULL_ROM = 0x00040000,
461 SPLINEFLAG_CYCLIC = 0x00080000,
462 SPLINEFLAG_ENTER_CYCLE = 0x00100000,
463 SPLINEFLAG_ANIMATION_TIER = 0x00200000,
464 SPLINEFLAG_FROZEN = 0x00400000,
465 SPLINEFLAG_TRANSPORT = 0x00800000,
466 SPLINEFLAG_TRANSPORT_EXIT = 0x01000000,
467 SPLINEFLAG_UNKNOWN7 = 0x02000000,
468 SPLINEFLAG_UNKNOWN8 = 0x04000000,
471 SPLINEFLAG_ANIMATION = 0x20000000,
472 SPLINEFLAG_UNCOMPRESSED_PATH = 0x40000000,
473 SPLINEFLAG_UNKNOWN10 = 0x80000000
474};
@ SPLINEFLAG_CYCLIC
Definition UnitDefines.h:461
@ SPLINEFLAG_FINAL_TARGET
Definition UnitDefines.h:458
@ SPLINEFLAG_UNKNOWN7
Definition UnitDefines.h:467
@ SPLINEFLAG_UNCOMPRESSED_PATH
Definition UnitDefines.h:472
@ SPLINEFLAG_DONE
Definition UnitDefines.h:450
@ SPLINEFLAG_TRANSPORT_EXIT
Definition UnitDefines.h:466
@ SPLINEFLAG_PITCH_DOWN
Definition UnitDefines.h:449
@ SPLINEFLAG_NO_SPLINE
Definition UnitDefines.h:452
@ SPLINEFLAG_TRANSPORT
Definition UnitDefines.h:465
@ SPLINEFLAG_STRAFE_LEFT
Definition UnitDefines.h:444
@ SPLINEFLAG_TURN_RIGHT
Definition UnitDefines.h:447
@ SPLINEFLAG_ANIMATION_TIER
Definition UnitDefines.h:463
@ SPLINEFLAG_KNOCKBACK
Definition UnitDefines.h:456
@ SPLINEFLAG_CATMULL_ROM
Definition UnitDefines.h:460
@ SPLINEFLAG_ORIENTATION_INVERTED
Definition UnitDefines.h:469
@ SPLINEFLAG_BACKWARD
Definition UnitDefines.h:443
@ SPLINEFLAG_FALLING
Definition UnitDefines.h:451
@ SPLINEFLAG_WALK_MODE
Definition UnitDefines.h:454
@ SPLINEFLAG_ANIMATION
Definition UnitDefines.h:471
@ SPLINEFLAG_NONE
Definition UnitDefines.h:441
@ SPLINEFLAG_PITCH_UP
Definition UnitDefines.h:448
@ SPLINEFLAG_USE_PATH_SMOOTHING
Definition UnitDefines.h:470
@ SPLINEFLAG_TURN_LEFT
Definition UnitDefines.h:446
@ SPLINEFLAG_ENTER_CYCLE
Definition UnitDefines.h:462
@ SPLINEFLAG_FROZEN
Definition UnitDefines.h:464
@ SPLINEFLAG_STRAFE_RIGHT
Definition UnitDefines.h:445
@ SPLINEFLAG_FORWARD
Definition UnitDefines.h:442
@ SPLINEFLAG_UNKNOWN10
Definition UnitDefines.h:473
@ SPLINEFLAG_UNKNOWN8
Definition UnitDefines.h:468
@ SPLINEFLAG_FINAL_POINT
Definition UnitDefines.h:457
@ SPLINEFLAG_FINAL_FACING
Definition UnitDefines.h:459
@ SPLINEFLAG_TRAJECTORY
Definition UnitDefines.h:453
@ SPLINEFLAG_FLYING
Definition UnitDefines.h:455

◆ SplineType

enum SplineType
Enumerator
SPLINETYPE_NORMAL 
SPLINETYPE_STOP 
SPLINETYPE_FACING_SPOT 
SPLINETYPE_FACING_TARGET 
SPLINETYPE_FACING_ANGLE 
477{
479 SPLINETYPE_STOP = 1,
483};
@ SPLINETYPE_NORMAL
Definition UnitDefines.h:478
@ SPLINETYPE_FACING_SPOT
Definition UnitDefines.h:480
@ SPLINETYPE_STOP
Definition UnitDefines.h:479
@ SPLINETYPE_FACING_ANGLE
Definition UnitDefines.h:482
@ SPLINETYPE_FACING_TARGET
Definition UnitDefines.h:481

◆ 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 
57{
64};
@ UNIT_BYTE1_FLAG_FLY
Definition UnitDefines.h:61
@ UNIT_BYTE1_FLAG_GROUND
Definition UnitDefines.h:58
@ UNIT_BYTE1_FLAG_HOVER
Definition UnitDefines.h:60
@ UNIT_BYTE1_FLAG_ALL
Definition UnitDefines.h:63
@ UNIT_BYTE1_FLAG_ALWAYS_STAND
Definition UnitDefines.h:59
@ UNIT_BYTE1_FLAG_SUBMERGED
Definition UnitDefines.h:62

◆ 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 
22{
27};
@ UNIT_BYTES_1_OFFSET_ANIM_TIER
Definition UnitDefines.h:26
@ UNIT_BYTES_1_OFFSET_PET_TALENTS
Definition UnitDefines.h:24
@ UNIT_BYTES_1_OFFSET_STAND_STATE
Definition UnitDefines.h:23
@ UNIT_BYTES_1_OFFSET_VIS_FLAG
Definition UnitDefines.h:25

◆ 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 
248{
249 UNIT_FLAG_NONE = 0x00000000,
250 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
251 UNIT_FLAG_NON_ATTACKABLE = 0x00000002, // not attackable
252 UNIT_FLAG_DISABLE_MOVE = 0x00000004,
253 UNIT_FLAG_PLAYER_CONTROLLED = 0x00000008, // controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC
254 UNIT_FLAG_RENAME = 0x00000010,
255 UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_COST_WITH_AURA
256 UNIT_FLAG_UNK_6 = 0x00000040,
257 UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE
258 UNIT_FLAG_IMMUNE_TO_PC = 0x00000100, // disables combat/assistance with PlayerCharacters (PC) - see Unit::_IsValidAttackTarget, Unit::_IsValidAssistTarget
259 UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200, // disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::_IsValidAttackTarget, Unit::_IsValidAssistTarget
260 UNIT_FLAG_LOOTING = 0x00000400, // loot animation
261 UNIT_FLAG_PET_IN_COMBAT = 0x00000800, // in combat?, 2.0.8
262 UNIT_FLAG_PVP = 0x00001000, // changed in 3.0.3
263 UNIT_FLAG_SILENCED = 0x00002000, // silenced, 2.1.1
264 UNIT_FLAG_CANNOT_SWIM = 0x00004000, // 2.0.8
265 UNIT_FLAG_SWIMMING = 0x00008000, // shows swim animation in water
266 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
267 UNIT_FLAG_PACIFIED = 0x00020000, // 3.0.3 ok
268 UNIT_FLAG_STUNNED = 0x00040000, // 3.0.3 ok
269 UNIT_FLAG_IN_COMBAT = 0x00080000,
270 UNIT_FLAG_TAXI_FLIGHT = 0x00100000, // disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag
271 UNIT_FLAG_DISARMED = 0x00200000, // 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.
272 UNIT_FLAG_CONFUSED = 0x00400000,
273 UNIT_FLAG_FLEEING = 0x00800000,
274 UNIT_FLAG_POSSESSED = 0x01000000, // under direct client control by a player (possess or vehicle)
275 UNIT_FLAG_NOT_SELECTABLE = 0x02000000,
276 UNIT_FLAG_SKINNABLE = 0x04000000,
277 UNIT_FLAG_MOUNT = 0x08000000,
278 UNIT_FLAG_UNK_28 = 0x10000000,
279 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
280 UNIT_FLAG_SHEATHE = 0x40000000,
281 UNIT_FLAG_IMMUNE = 0x80000000 // Immune to damage
282};
@ UNIT_FLAG_TAXI_FLIGHT
Definition UnitDefines.h:270
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
Definition UnitDefines.h:279
@ UNIT_FLAG_STUNNED
Definition UnitDefines.h:268
@ UNIT_FLAG_CANNOT_SWIM
Definition UnitDefines.h:264
@ UNIT_FLAG_NON_ATTACKABLE
Definition UnitDefines.h:251
@ UNIT_FLAG_UNK_6
Definition UnitDefines.h:256
@ UNIT_FLAG_IN_COMBAT
Definition UnitDefines.h:269
@ UNIT_FLAG_PREPARATION
Definition UnitDefines.h:255
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition UnitDefines.h:266
@ UNIT_FLAG_IMMUNE_TO_NPC
Definition UnitDefines.h:259
@ UNIT_FLAG_PVP
Definition UnitDefines.h:262
@ UNIT_FLAG_POSSESSED
Definition UnitDefines.h:274
@ UNIT_FLAG_IMMUNE
Definition UnitDefines.h:281
@ UNIT_FLAG_NONE
Definition UnitDefines.h:249
@ UNIT_FLAG_SERVER_CONTROLLED
Definition UnitDefines.h:250
@ UNIT_FLAG_DISARMED
Definition UnitDefines.h:271
@ UNIT_FLAG_PACIFIED
Definition UnitDefines.h:267
@ UNIT_FLAG_SWIMMING
Definition UnitDefines.h:265
@ UNIT_FLAG_CONFUSED
Definition UnitDefines.h:272
@ UNIT_FLAG_DISABLE_MOVE
Definition UnitDefines.h:252
@ UNIT_FLAG_FLEEING
Definition UnitDefines.h:273
@ UNIT_FLAG_NOT_SELECTABLE
Definition UnitDefines.h:275
@ UNIT_FLAG_RENAME
Definition UnitDefines.h:254
@ UNIT_FLAG_LOOTING
Definition UnitDefines.h:260
@ UNIT_FLAG_IMMUNE_TO_PC
Definition UnitDefines.h:258
@ UNIT_FLAG_NOT_ATTACKABLE_1
Definition UnitDefines.h:257
@ UNIT_FLAG_SILENCED
Definition UnitDefines.h:263
@ UNIT_FLAG_PLAYER_CONTROLLED
Definition UnitDefines.h:253
@ UNIT_FLAG_SKINNABLE
Definition UnitDefines.h:276
@ UNIT_FLAG_MOUNT
Definition UnitDefines.h:277
@ UNIT_FLAG_PET_IN_COMBAT
Definition UnitDefines.h:261
@ UNIT_FLAG_UNK_28
Definition UnitDefines.h:278
@ UNIT_FLAG_SHEATHE
Definition UnitDefines.h:280

◆ 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 
287{
288 UNIT_FLAG2_NONE = 0x00000000,
289 UNIT_FLAG2_FEIGN_DEATH = 0x00000001,
290 UNIT_FLAG2_HIDE_BODY = 0x00000002, // Hide unit model (show only player equip)
291 UNIT_FLAG2_IGNORE_REPUTATION = 0x00000004,
292 UNIT_FLAG2_COMPREHEND_LANG = 0x00000008,
293 UNIT_FLAG2_MIRROR_IMAGE = 0x00000010,
294 UNIT_FLAG2_DO_NOT_FADE_IN = 0x00000020, // Unit model instantly appears when summoned (does not fade in)
295 UNIT_FLAG2_FORCE_MOVEMENT = 0x00000040,
296 UNIT_FLAG2_DISARM_OFFHAND = 0x00000080,
297 UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100, // Player has disabled predicted stats (Used by raid frames)
298 UNIT_FLAG2_DISARM_RANGED = 0x00000400, // this does not disable ranged weapon display (maybe additional flag needed?)
299 UNIT_FLAG2_REGENERATE_POWER = 0x00000800,
300 UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000, // Restrict interaction to party or raid
301 UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000, // Prevent spellclick
303 UNIT_FLAG2_CANNOT_TURN = 0x00008000,
304 UNIT_FLAG2_UNK2 = 0x00010000,
305 UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000, // Plays special death animation upon death
306 UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000, // Allows casting spells with AttributesEx7 & SPELL_ATTR7_DEBUG_SPELL
307 UNIT_FLAG2_UNUSED_6 = 0x01000000
308};
@ UNIT_FLAG2_UNK2
Definition UnitDefines.h:304
@ UNIT_FLAG2_DO_NOT_FADE_IN
Definition UnitDefines.h:294
@ UNIT_FLAG2_MIRROR_IMAGE
Definition UnitDefines.h:293
@ UNIT_FLAG2_NONE
Definition UnitDefines.h:288
@ UNIT_FLAG2_ALLOW_ENEMY_INTERACT
Definition UnitDefines.h:302
@ UNIT_FLAG2_PLAY_DEATH_ANIM
Definition UnitDefines.h:305
@ UNIT_FLAG2_HIDE_BODY
Definition UnitDefines.h:290
@ UNIT_FLAG2_IGNORE_REPUTATION
Definition UnitDefines.h:291
@ UNIT_FLAG2_PREVENT_SPELL_CLICK
Definition UnitDefines.h:301
@ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION
Definition UnitDefines.h:300
@ UNIT_FLAG2_DISABLE_PRED_STATS
Definition UnitDefines.h:297
@ UNIT_FLAG2_COMPREHEND_LANG
Definition UnitDefines.h:292
@ UNIT_FLAG2_UNUSED_6
Definition UnitDefines.h:307
@ UNIT_FLAG2_CANNOT_TURN
Definition UnitDefines.h:303
@ UNIT_FLAG2_FORCE_MOVEMENT
Definition UnitDefines.h:295
@ UNIT_FLAG2_ALLOW_CHEAT_SPELLS
Definition UnitDefines.h:306
@ UNIT_FLAG2_FEIGN_DEATH
Definition UnitDefines.h:289
@ UNIT_FLAG2_REGENERATE_POWER
Definition UnitDefines.h:299
@ UNIT_FLAG2_DISARM_OFFHAND
Definition UnitDefines.h:296
@ UNIT_FLAG2_DISARM_RANGED
Definition UnitDefines.h:298

◆ 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 
348{
349 MOVE_WALK = 0,
350 MOVE_RUN = 1,
351 MOVE_RUN_BACK = 2,
352 MOVE_SWIM = 3,
353 MOVE_SWIM_BACK = 4,
354 MOVE_TURN_RATE = 5,
355 MOVE_FLIGHT = 6,
358};
@ MOVE_FLIGHT
Definition UnitDefines.h:355
@ MOVE_SWIM
Definition UnitDefines.h:352
@ MOVE_TURN_RATE
Definition UnitDefines.h:354
@ MOVE_FLIGHT_BACK
Definition UnitDefines.h:356
@ MOVE_SWIM_BACK
Definition UnitDefines.h:353
@ MOVE_RUN
Definition UnitDefines.h:350
@ MOVE_PITCH_RATE
Definition UnitDefines.h:357
@ MOVE_RUN_BACK
Definition UnitDefines.h:351
@ MOVE_WALK
Definition UnitDefines.h:349

◆ 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 UnitDefines.h:137
@ UNIT_BYTE2_FLAG_UNK6
Definition UnitDefines.h:142
@ UNIT_BYTE2_FLAG_PVP
Definition UnitDefines.h:136
@ UNIT_BYTE2_FLAG_FFA_PVP
Definition UnitDefines.h:138
@ UNIT_BYTE2_FLAG_UNK4
Definition UnitDefines.h:140
@ UNIT_BYTE2_FLAG_UNK5
Definition UnitDefines.h:141
@ UNIT_BYTE2_FLAG_UNK7
Definition UnitDefines.h:143
@ UNIT_BYTE2_FLAG_SANCTUARY
Definition UnitDefines.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 UnitDefines.h:149
@ UNIT_CAN_BE_ABANDONED
Definition UnitDefines.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 
46{
53};
@ UNIT_STAND_FLAGS_UNK4
Definition UnitDefines.h:50
@ UNIT_STAND_FLAGS_UNK5
Definition UnitDefines.h:51
@ UNIT_STAND_FLAGS_ALL
Definition UnitDefines.h:52
@ UNIT_STAND_FLAGS_UNK1
Definition UnitDefines.h:47
@ UNIT_STAND_FLAGS_CREEP
Definition UnitDefines.h:48
@ UNIT_STAND_FLAGS_UNTRACKABLE
Definition UnitDefines.h:49

◆ 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 
31{
42};
@ UNIT_STAND_STATE_SLEEP
Definition UnitDefines.h:35
@ UNIT_STAND_STATE_SIT_HIGH_CHAIR
Definition UnitDefines.h:38
@ UNIT_STAND_STATE_SUBMERGED
Definition UnitDefines.h:41
@ UNIT_STAND_STATE_SIT_MEDIUM_CHAIR
Definition UnitDefines.h:37
@ UNIT_STAND_STATE_SIT_LOW_CHAIR
Definition UnitDefines.h:36
@ UNIT_STAND_STATE_DEAD
Definition UnitDefines.h:39
@ UNIT_STAND_STATE_KNEEL
Definition UnitDefines.h:40
@ UNIT_STAND_STATE_SIT_CHAIR
Definition UnitDefines.h:34
@ UNIT_STAND_STATE_STAND
Definition UnitDefines.h:32
@ UNIT_STAND_STATE_SIT
Definition UnitDefines.h:33

◆ 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 
169{
170 UNIT_STATE_DIED = 0x00000001, // player has fake death aura
171 UNIT_STATE_MELEE_ATTACKING = 0x00000002, // player is melee attacking someone
172 //UNIT_STATE_MELEE_ATTACK_BY = 0x00000004, // player is melee attack by someone
173 UNIT_STATE_STUNNED = 0x00000008,
174 UNIT_STATE_ROAMING = 0x00000010,
175 UNIT_STATE_CHASE = 0x00000020,
176 //UNIT_STATE_SEARCHING = 0x00000040,
177 UNIT_STATE_FLEEING = 0x00000080,
178 UNIT_STATE_IN_FLIGHT = 0x00000100, // player is in flight mode
179 UNIT_STATE_FOLLOW = 0x00000200,
180 UNIT_STATE_ROOT = 0x00000400,
181 UNIT_STATE_CONFUSED = 0x00000800,
182 UNIT_STATE_DISTRACTED = 0x00001000,
183 UNIT_STATE_ISOLATED = 0x00002000, // area auras do not affect other players
184 UNIT_STATE_ATTACK_PLAYER = 0x00004000,
185 UNIT_STATE_CASTING = 0x00008000,
186 UNIT_STATE_POSSESSED = 0x00010000,
187 UNIT_STATE_CHARGING = 0x00020000,
188 UNIT_STATE_JUMPING = 0x00040000,
189 UNIT_STATE_MOVE = 0x00100000,
190 UNIT_STATE_ROTATING = 0x00200000,
191 UNIT_STATE_EVADE = 0x00400000,
192 UNIT_STATE_ROAMING_MOVE = 0x00800000,
193 UNIT_STATE_CONFUSED_MOVE = 0x01000000,
194 UNIT_STATE_FLEEING_MOVE = 0x02000000,
195 UNIT_STATE_CHASE_MOVE = 0x04000000,
196 UNIT_STATE_FOLLOW_MOVE = 0x08000000,
197 UNIT_STATE_IGNORE_PATHFINDING = 0x10000000, // do not use pathfinding in any MovementGenerator
199
206
208
209 // for real move using movegen check and stop (except unstoppable flight)
216
217 // stay by different reasons
220 UNIT_STATE_ALL_STATE = 0xffffffff //(UNIT_STATE_STOPPED | UNIT_STATE_MOVING | UNIT_STATE_IN_COMBAT | UNIT_STATE_IN_FLIGHT)
221};
@ UNIT_STATE_DISTRACTED
Definition UnitDefines.h:182
@ UNIT_STATE_NOT_MOVE
Definition UnitDefines.h:218
@ UNIT_STATE_EVADE
Definition UnitDefines.h:191
@ UNIT_STATE_DIED
Definition UnitDefines.h:170
@ UNIT_STATE_ATTACK_PLAYER
Definition UnitDefines.h:184
@ UNIT_STATE_POSSESSED
Definition UnitDefines.h:186
@ UNIT_STATE_CHASE
Definition UnitDefines.h:175
@ UNIT_STATE_ROAMING_MOVE
Definition UnitDefines.h:192
@ UNIT_STATE_UNATTACKABLE
Definition UnitDefines.h:207
@ UNIT_STATE_ALL_STATE
Definition UnitDefines.h:220
@ UNIT_STATE_LOST_CONTROL
Definition UnitDefines.h:212
@ UNIT_STATE_ALL_STATE_SUPPORTED
Definition UnitDefines.h:200
@ UNIT_STATE_CANNOT_AUTOATTACK
Definition UnitDefines.h:214
@ UNIT_STATE_CONFUSED
Definition UnitDefines.h:181
@ UNIT_STATE_FLEEING_MOVE
Definition UnitDefines.h:194
@ UNIT_STATE_IGNORE_ANTISPEEDHACK
Definition UnitDefines.h:219
@ UNIT_STATE_ROOT
Definition UnitDefines.h:180
@ UNIT_STATE_SIGHTLESS
Definition UnitDefines.h:213
@ UNIT_STATE_CONFUSED_MOVE
Definition UnitDefines.h:193
@ UNIT_STATE_CHASE_MOVE
Definition UnitDefines.h:195
@ UNIT_STATE_ISOLATED
Definition UnitDefines.h:183
@ UNIT_STATE_FOLLOW
Definition UnitDefines.h:179
@ UNIT_STATE_CHARGING
Definition UnitDefines.h:187
@ UNIT_STATE_IGNORE_PATHFINDING
Definition UnitDefines.h:197
@ UNIT_STATE_ROAMING
Definition UnitDefines.h:174
@ UNIT_STATE_CONTROLLED
Definition UnitDefines.h:211
@ UNIT_STATE_FLEEING
Definition UnitDefines.h:177
@ UNIT_STATE_NO_ENVIRONMENT_UPD
Definition UnitDefines.h:198
@ UNIT_STATE_CANNOT_TURN
Definition UnitDefines.h:215
@ UNIT_STATE_MOVING
Definition UnitDefines.h:210
@ UNIT_STATE_FOLLOW_MOVE
Definition UnitDefines.h:196
@ UNIT_STATE_MOVE
Definition UnitDefines.h:189
@ UNIT_STATE_MELEE_ATTACKING
Definition UnitDefines.h:171
@ UNIT_STATE_IN_FLIGHT
Definition UnitDefines.h:178
@ UNIT_STATE_CASTING
Definition UnitDefines.h:185
@ UNIT_STATE_ROTATING
Definition UnitDefines.h:190
@ UNIT_STATE_STUNNED
Definition UnitDefines.h:173
@ UNIT_STATE_JUMPING
Definition UnitDefines.h:188

◆ 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 
154{
155 UNIT_MASK_NONE = 0x00000000,
156 UNIT_MASK_SUMMON = 0x00000001,
157 UNIT_MASK_MINION = 0x00000002,
158 UNIT_MASK_GUARDIAN = 0x00000004,
159 UNIT_MASK_TOTEM = 0x00000008,
160 UNIT_MASK_PET = 0x00000010,
161 UNIT_MASK_VEHICLE = 0x00000020,
162 UNIT_MASK_PUPPET = 0x00000040,
163 UNIT_MASK_HUNTER_PET = 0x00000080,
165 UNIT_MASK_ACCESSORY = 0x00000200
166};
@ UNIT_MASK_NONE
Definition UnitDefines.h:155
@ UNIT_MASK_PUPPET
Definition UnitDefines.h:162
@ UNIT_MASK_CONTROLABLE_GUARDIAN
Definition UnitDefines.h:164
@ UNIT_MASK_HUNTER_PET
Definition UnitDefines.h:163
@ UNIT_MASK_TOTEM
Definition UnitDefines.h:159
@ UNIT_MASK_ACCESSORY
Definition UnitDefines.h:165
@ UNIT_MASK_SUMMON
Definition UnitDefines.h:156
@ UNIT_MASK_VEHICLE
Definition UnitDefines.h:161
@ UNIT_MASK_GUARDIAN
Definition UnitDefines.h:158
@ UNIT_MASK_MINION
Definition UnitDefines.h:157
@ UNIT_MASK_PET
Definition UnitDefines.h:160

Function Documentation

◆ 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  )