TrinityCore
UnitDefines.h
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#ifndef UnitDefines_h__
19#define UnitDefines_h__
20
21#include "Define.h"
22#include "EnumFlag.h"
23#include <string>
24
25namespace UF
26{
27struct DeclinedNames;
28}
29
30#define MIN_MELEE_REACH 2.0f
31#define NOMINAL_MELEE_RANGE 5.0f
32#define MELEE_RANGE (NOMINAL_MELEE_RANGE - MIN_MELEE_REACH * 2) //center to center for players
33#define BASE_MINDAMAGE 1.0f
34#define BASE_MAXDAMAGE 2.0f
35#define BASE_ATTACK_TIME 2000
36
37#define MAX_EQUIPMENT_ITEMS 3
38
39// byte value (UNIT_FIELD_BYTES_1, 0)
41{
52
54};
55
56// byte flag value (UNIT_FIELD_BYTES_1, 2)
58{
65};
66
67// UNIT_FIELD_BYTES_1 (UNIT_BYTES_1_OFFSET_ANIM_TIER)
68enum class AnimTier : uint8
69{
70 Ground = 0, // plays ground tier animations
71 Swim = 1, // falls back to ground tier animations, not handled by the client, should never appear in sniffs, will prevent tier change animations from playing correctly if used
72 Hover = 2, // plays flying tier animations or falls back to ground tier animations, automatically enables hover clientside when entering visibility with this value
73 Fly = 3, // plays flying tier animations
74 Submerged = 4,
75
76 Max
77};
78
79// low byte (0 from 0..3) of UNIT_FIELD_BYTES_2
81{
82 SHEATH_STATE_UNARMED = 0, // non prepared weapon
83 SHEATH_STATE_MELEE = 1, // prepared melee weapon
84 SHEATH_STATE_RANGED = 2, // prepared ranged weapon
85
87};
88
89// byte (1 from 0..3) of UNIT_FIELD_BYTES_2
91{
102
104
105// byte (2 from 0..3) of UNIT_FIELD_BYTES_2
107{
112
114
116{
127
128#define MAX_MOVE_TYPE 9
129
131{
132 DIRECT_DAMAGE = 0, // used for normal weapon damage (not for class abilities or spells)
133 SPELL_DIRECT_DAMAGE = 1, // spell/class abilities damage
134 DOT = 2,
135 HEAL = 3,
136 NODAMAGE = 4, // used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
137 SELF_DAMAGE = 5
139
140// Value masks for UNIT_FIELD_FLAGS
141// EnumUtils: DESCRIBE THIS
143{
144 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
145 UNIT_FLAG_NON_ATTACKABLE = 0x00000002, // not attackable, set when creature starts to cast spells with SPELL_EFFECT_SPAWN and cast time, removed when spell hits caster, original name is UNIT_FLAG_SPAWNING. Rename when it will be removed from all scripts
146 UNIT_FLAG_REMOVE_CLIENT_CONTROL = 0x00000004, // This is a legacy flag used to disable movement player's movement while controlling other units, SMSG_CLIENT_CONTROL replaces this functionality clientside now. CONFUSED and FLEEING flags have the same effect on client movement asDISABLE_MOVE_CONTROL in addition to preventing spell casts/autoattack (they all allow climbing steeper hills and emotes while moving)
147 UNIT_FLAG_PLAYER_CONTROLLED = 0x00000008, // controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC
148 UNIT_FLAG_RENAME = 0x00000010,
149 UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP
150 UNIT_FLAG_UNK_6 = 0x00000040,
151 UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE
152 UNIT_FLAG_IMMUNE_TO_PC = 0x00000100, // disables combat/assistance with PlayerCharacters (PC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget
153 UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200, // disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget
154 UNIT_FLAG_LOOTING = 0x00000400, // loot animation
155 UNIT_FLAG_PET_IN_COMBAT = 0x00000800, // on player pets: whether the pet is chasing a target to attack || on other units: whether any of the unit's minions is in combat
156 UNIT_FLAG_PVP_ENABLING = 0x00001000, // changed in 3.0.3, now UNIT_BYTES_2_OFFSET_PVP_FLAG from UNIT_FIELD_BYTES_2
157 UNIT_FLAG_FORCE_NAMEPLATE = 0x00002000, // Force show nameplate, 9.0
158 UNIT_FLAG_CANT_SWIM = 0x00004000, // TITLE Can't Swim
159 UNIT_FLAG_CAN_SWIM = 0x00008000, // TITLE Can Swim DESCRIPTION shows swim animation in water
160 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
161 UNIT_FLAG_PACIFIED = 0x00020000, // 3.0.3 ok
162 UNIT_FLAG_STUNNED = 0x00040000, // 3.0.3 ok
164 UNIT_FLAG_ON_TAXI = 0x00100000, // disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag
165 UNIT_FLAG_DISARMED = 0x00200000, // 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.
166 UNIT_FLAG_CONFUSED = 0x00400000,
167 UNIT_FLAG_FLEEING = 0x00800000,
168 UNIT_FLAG_POSSESSED = 0x01000000, // under direct client control by a player (possess or vehicle)
171 UNIT_FLAG_MOUNT = 0x08000000,
172 UNIT_FLAG_UNK_28 = 0x10000000,
173 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
174 UNIT_FLAG_SHEATHE = 0x40000000,
175 UNIT_FLAG_IMMUNE = 0x80000000, // Immune to damage
176
184
185 UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED) // SKIP
187
189
190// Value masks for UNIT_FIELD_FLAGS_2
191// EnumUtils: DESCRIBE THIS
193{
195 UNIT_FLAG2_HIDE_BODY = 0x00000002, // TITLE Hide Body DESCRIPTION Hide unit model (show only player equip)
199 UNIT_FLAG2_DONT_FADE_IN = 0x00000020, // TITLE Don't Fade In DESCRIPTION Unit model instantly appears when summoned (does not fade in)
202 UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100, // Player has disabled predicted stats (Used by raid frames)
203 UNIT_FLAG2_ALLOW_CHANGING_TALENTS = 0x00000200, // Allows changing talents outside rest area
204 UNIT_FLAG2_DISARM_RANGED = 0x00000400, // this does not disable ranged weapon display (maybe additional flag needed?)
206 UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000, // Restrict interaction to party or raid
207 UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000, // Prevent spellclick
208 UNIT_FLAG2_INTERACT_WHILE_HOSTILE = 0x00004000, // TITLE Interact while Hostile
209 UNIT_FLAG2_CANNOT_TURN = 0x00008000, // TITLE Cannot Turn
210 UNIT_FLAG2_UNK2 = 0x00010000,
211 UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000, // Plays special death animation upon death
212 UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000, // Allows casting spells with AttributesEx7 & SPELL_ATTR7_IS_CHEAT_SPELL
213 UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER = 0x00080000, // TITLE Suppress highlight when targeted or moused over
214 UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS = 0x00100000, // TITLE Treat as Raid Unit For Helpful Spells (Instances ONLY)
215 UNIT_FLAG2_LARGE_AOI = 0x00200000, // TITLE Large (AOI)
216 UNIT_FLAG2_GIGANTIC_AOI = 0x00400000, // TITLE Gigantic (AOI)
218 UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS = 0x01000000, // TITLE AI will only swim if target swims
219 UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS = 0x02000000, // TITLE Don't generate combat log when engaged with NPC's
220 UNIT_FLAG2_UNTARGETABLE_BY_CLIENT = 0x04000000, // TITLE Untargetable By Client
221 UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES = 0x08000000, // TITLE Attacker Ignores Minimum Ranges
222 UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE = 0x10000000, // TITLE Uninteractible If Hostile
224 UNIT_FLAG2_INFINITE_AOI = 0x40000000, // TITLE Infinite (AOI)
226
230 /* UNIT_FLAG2_REGENERATE_POWER | */ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION |
231 UNIT_FLAG2_PREVENT_SPELL_CLICK | /* UNIT_FLAG2_INTERACT_WHILE_HOSTILE | */ /* UNIT_FLAG2_UNK2 | */
236
237 UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED) // SKIP
239
241
242// Value masks for UNIT_FIELD_FLAGS_3
243// EnumUtils: DESCRIBE THIS
245{
246 UNIT_FLAG3_UNK0 = 0x00000001,
247 UNIT_FLAG3_UNCONSCIOUS_ON_DEATH = 0x00000002, // TITLE Unconscious on Death DESCRIPTION Shows "Unconscious" in unit tooltip instead of "Dead"
248 UNIT_FLAG3_ALLOW_MOUNTED_COMBAT = 0x00000004, // TITLE Allow mounted combat
249 UNIT_FLAG3_GARRISON_PET = 0x00000008, // TITLE Garrison pet DESCRIPTION Special garrison pet creatures that display one of favorite player battle pets - this flag allows querying name and turns off default battle pet behavior
250 UNIT_FLAG3_UI_CAN_GET_POSITION = 0x00000010, // TITLE UI Can Get Position DESCRIPTION Allows lua functions like UnitPosition to always get the position even for npcs or non-grouped players
253 UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK = 0x00000080, // TITLE Suppress all NPC feedback DESCRIPTION Skips playing sounds on left clicking npc for all npcs as long as npc with this flag is visible
254 UNIT_FLAG3_IGNORE_COMBAT = 0x00000100, // TITLE Ignore Combat DESCRIPTION Same as SPELL_AURA_IGNORE_COMBAT
255 UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK = 0x00000200, // TITLE Suppress NPC feedback DESCRIPTION Skips playing sounds on left clicking npc
256 UNIT_FLAG3_UNK10 = 0x00000400,
257 UNIT_FLAG3_UNK11 = 0x00000800,
258 UNIT_FLAG3_UNK12 = 0x00001000,
259 UNIT_FLAG3_FAKE_DEAD = 0x00002000, // TITLE Show as dead
260 UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE = 0x00004000, // Causes the creature to both not change facing on interaction and speeds up smooth facing changes while attacking (clientside)
261 UNIT_FLAG3_UNTARGETABLE_FROM_UI = 0x00008000, // TITLE Untargetable from UI DESCRIPTION Cannot be targeted from lua functions StartAttack, TargetUnit, PetAttack
262 UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD = 0x00010000, // Prevents facing changes while interacting if creature has flag UNIT_FLAG3_FAKE_DEAD
264 UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS = 0x00040000, // TITLE Suppress all NPC sounds DESCRIPTION Skips playing sounds on beginning and end of npc interaction for all npcs as long as npc with this flag is visible
265 UNIT_FLAG3_SUPPRESS_NPC_SOUNDS = 0x00080000, // TITLE Suppress NPC sounds DESCRIPTION Skips playing sounds on beginning and end of npc interaction
266 UNIT_FLAG3_UNK20 = 0x00100000,
267 UNIT_FLAG3_UNK21 = 0x00200000,
269 UNIT_FLAG3_UNK23 = 0x00800000,
271 UNIT_FLAG3_UNK25 = 0x02000000,
272 UNIT_FLAG3_UNK26 = 0x04000000,
273 UNIT_FLAG3_UNK27 = 0x08000000,
274 UNIT_FLAG3_UNK28 = 0x10000000,
275 UNIT_FLAG3_UNK29 = 0x20000000,
276 UNIT_FLAG3_UNK30 = 0x40000000,
277 UNIT_FLAG3_UNK31 = 0x80000000,
278
279 UNIT_FLAG3_DISALLOWED = (UNIT_FLAG3_UNK0 | /* UNIT_FLAG3_UNCONSCIOUS_ON_DEATH | */ /* UNIT_FLAG3_ALLOW_MOUNTED_COMBAT | */ UNIT_FLAG3_GARRISON_PET |
280 /* UNIT_FLAG3_UI_CAN_GET_POSITION | */ /* UNIT_FLAG3_AI_OBSTACLE | */ UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE | /* UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK | */
282 UNIT_FLAG3_UNK12 | /* UNIT_FLAG3_FAKE_DEAD | */ /* UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE | */ /* UNIT_FLAG3_UNTARGETABLE_FROM_UI | */
283 /* UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD | */ UNIT_FLAG3_ALREADY_SKINNED | /* UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS | */ /* UNIT_FLAG3_SUPPRESS_NPC_SOUNDS | */
284 UNIT_FLAG3_UNK20 | UNIT_FLAG3_UNK21 | /* UNIT_FLAG3_DONT_FADE_OUT | */ UNIT_FLAG3_UNK23 |
285 /* UNIT_FLAG3_FORCE_HIDE_NAMEPLATE | */ UNIT_FLAG3_UNK25 | UNIT_FLAG3_UNK26 | UNIT_FLAG3_UNK27 |
287 UNIT_FLAG3_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG3_DISALLOWED) // SKIP
289
291
293// EnumUtils: DESCRIBE THIS
295{
296 UNIT_NPC_FLAG_NONE = 0x00000000,
297 UNIT_NPC_FLAG_GOSSIP = 0x00000001, // TITLE has gossip menu DESCRIPTION 100%
298 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002, // TITLE is quest giver DESCRIPTION 100%
299 UNIT_NPC_FLAG_UNK1 = 0x00000004,
300 UNIT_NPC_FLAG_UNK2 = 0x00000008,
301 UNIT_NPC_FLAG_TRAINER = 0x00000010, // TITLE is trainer DESCRIPTION 100%
302 UNIT_NPC_FLAG_TRAINER_CLASS = 0x00000020, // TITLE is class trainer DESCRIPTION 100%
303 UNIT_NPC_FLAG_TRAINER_PROFESSION = 0x00000040, // TITLE is profession trainer DESCRIPTION 100%
304 UNIT_NPC_FLAG_VENDOR = 0x00000080, // TITLE is vendor (generic) DESCRIPTION 100%
305 UNIT_NPC_FLAG_VENDOR_AMMO = 0x00000100, // TITLE is vendor (ammo) DESCRIPTION 100%, general goods vendor
306 UNIT_NPC_FLAG_VENDOR_FOOD = 0x00000200, // TITLE is vendor (food) DESCRIPTION 100%
307 UNIT_NPC_FLAG_VENDOR_POISON = 0x00000400, // TITLE is vendor (poison) DESCRIPTION guessed
308 UNIT_NPC_FLAG_VENDOR_REAGENT = 0x00000800, // TITLE is vendor (reagents) DESCRIPTION 100%
309 UNIT_NPC_FLAG_REPAIR = 0x00001000, // TITLE can repair DESCRIPTION 100%
310 UNIT_NPC_FLAG_FLIGHTMASTER = 0x00002000, // TITLE is flight master DESCRIPTION 100%
311 UNIT_NPC_FLAG_SPIRIT_HEALER = 0x00004000, // TITLE is spirit healer
312 UNIT_NPC_FLAG_AREA_SPIRIT_HEALER = 0x00008000, // TITLE is area spirit healer
313 UNIT_NPC_FLAG_INNKEEPER = 0x00010000, // TITLE is innkeeper
314 UNIT_NPC_FLAG_BANKER = 0x00020000, // TITLE is banker DESCRIPTION 100%
315 UNIT_NPC_FLAG_PETITIONER = 0x00040000, // TITLE handles guild/arena petitions DESCRIPTION 100% 0xC0000 = guild petitions, 0x40000 = arena team petitions
316 UNIT_NPC_FLAG_TABARDDESIGNER = 0x00080000, // TITLE is guild tabard designer DESCRIPTION 100%
317 UNIT_NPC_FLAG_BATTLEMASTER = 0x00100000, // TITLE is battlemaster DESCRIPTION 100%
318 UNIT_NPC_FLAG_AUCTIONEER = 0x00200000, // TITLE is auctioneer DESCRIPTION 100%
319 UNIT_NPC_FLAG_STABLEMASTER = 0x00400000, // TITLE is stable master DESCRIPTION 100%
320 UNIT_NPC_FLAG_GUILD_BANKER = 0x00800000, // TITLE is guild banker DESCRIPTION
321 UNIT_NPC_FLAG_SPELLCLICK = 0x01000000, // TITLE has spell click enabled
322 UNIT_NPC_FLAG_PLAYER_VEHICLE = 0x02000000, // TITLE is player vehicle DESCRIPTION players with mounts that have vehicle data should have it set
323 UNIT_NPC_FLAG_MAILBOX = 0x04000000, // TITLE is mailbox
324 UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC = 0x08000000, // TITLE can reset artifact powers
325 UNIT_NPC_FLAG_TRANSMOGRIFIER = 0x10000000, // TITLE transmogrification
326 UNIT_NPC_FLAG_VAULTKEEPER = 0x20000000, // TITLE is void storage
327 UNIT_NPC_FLAG_WILD_BATTLE_PET = 0x40000000, // TITLE is wild battle pet DESCRIPTION Pet that player can fight (Battle Pet)
328 UNIT_NPC_FLAG_BLACK_MARKET = 0x80000000 // TITLE is black market
330
332
333// EnumUtils: DESCRIBE THIS
335{
337 UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER = 0x00000001, // TITLE is item upgrade
338 UNIT_NPC_FLAG_2_GARRISON_ARCHITECT = 0x00000002, // TITLE is garrison architect DESCRIPTION garrison building placement UI
339 UNIT_NPC_FLAG_2_STEERING = 0x00000004, // TITLE is avoiding obstacles DESCRIPTION clientside pathfinding
340 UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL = 0x00000008, // TITLE is area spirit healer individual DESCRIPTION area spirit healer with individual timers
341 UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER = 0x00000010, // TITLE is shipment crafter DESCRIPTION garrison work orders
342 UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC = 0x00000020, // TITLE is garrison mission
343 UNIT_NPC_FLAG_2_TRADESKILL_NPC = 0x00000040, // TITLE is tradeskill DESCRIPTION crafting at npc
344 UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW = 0x00000080, // TITLE is black market view DESCRIPTION only allows viewing black market auctions, no bidding
345 UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC = 0x00000200, // TITLE is garrrison talent
346 UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR = 0x00000400, // TITLE is contribution collector
347 UNIT_NPC_FLAG_2_AZERITE_RESPEC = 0x00004000, // TITLE is azerite respec
348 UNIT_NPC_FLAG_2_ISLANDS_QUEUE = 0x00008000, // TITLE is islands queue
350 UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER= 0x00200000, // TITLE is personal tabard designer
351};
352
354
356{
357 MOVEMENTFLAG_NONE = 0x00000000,
362 MOVEMENTFLAG_LEFT = 0x00000010,
363 MOVEMENTFLAG_RIGHT = 0x00000020,
366 MOVEMENTFLAG_WALKING = 0x00000100, // Walking
367 MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000200, // Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible.
368 MOVEMENTFLAG_ROOT = 0x00000400, // Must not be set along with MOVEMENTFLAG_MASK_MOVING
369 MOVEMENTFLAG_FALLING = 0x00000800, // damage dealt on that type of falling
378 MOVEMENTFLAG_SWIMMING = 0x00100000, // appears with fly flag also
379 MOVEMENTFLAG_ASCENDING = 0x00200000, // press "space" when flying
381 MOVEMENTFLAG_CAN_FLY = 0x00800000, // Appears when unit can fly. For example, appears when a player sits on a mount.
382 MOVEMENTFLAG_FLYING = 0x01000000, // unit is actually flying. pretty sure this is only used for players. creatures use disable_gravity
383 MOVEMENTFLAG_SPLINE_ELEVATION = 0x02000000, // used for flight paths
384 MOVEMENTFLAG_WATERWALKING = 0x04000000, // prevent unit from falling through water
385 MOVEMENTFLAG_FALLING_SLOW = 0x08000000, // active rogue safe fall spell (passive)
386 MOVEMENTFLAG_HOVER = 0x10000000, // hover, cannot jump
388
392
395
398
399 // Movement flags allowed for creature in CreateObject - we need to keep all other enabled serverside
400 // to properly calculate all movement
404
408
413
415{
416 MOVEMENTFLAG2_NONE = 0x00000000,
423 MOVEMENTFLAG2_WATERWALKING_FULL_PITCH = 0x00000040, // will always waterwalk, even if facing the camera directly down
426 MOVEMENTFLAG2_UNK9 = 0x00000200, // terrain normal calculation is disabled if this flag is not present, client automatically handles setting this flag
431 // these flags are not sent
437
439{
440 MOVEMENTFLAG3_NONE = 0x00000000,
444};
445
447{
449 HITINFO_UNK1 = 0x00000001, // req correct packet structure
451 HITINFO_OFFHAND = 0x00000004,
452 HITINFO_UNK2 = 0x00000008,
453 HITINFO_MISS = 0x00000010,
458 HITINFO_CRITICALHIT = 0x00000200, // critical hit
459 HITINFO_UNK10 = 0x00000400,
460 HITINFO_UNK11 = 0x00000800,
461 HITINFO_UNK12 = 0x00001000,
462 HITINFO_BLOCK = 0x00002000, // blocked damage
463 HITINFO_UNK14 = 0x00004000, // set only if meleespellid is present// no world text when victim is hit for 0 dmg(HideWorldTextForNoDamage?)
464 HITINFO_UNK15 = 0x00008000, // player victim?// something related to blod sprut visual (BloodSpurtInBack?)
465 HITINFO_GLANCING = 0x00010000,
466 HITINFO_CRUSHING = 0x00020000,
468 HITINFO_UNK19 = 0x00080000,
469 HITINFO_UNK20 = 0x00100000,
470 HITINFO_SWINGNOHITSOUND = 0x00200000, // unused?
471 HITINFO_UNK22 = 0x00400000,
472 HITINFO_RAGE_GAIN = 0x00800000,
473 HITINFO_FAKE_DAMAGE = 0x01000000 // enables damage animation even if no damage done, set only if no damage
475
477{
478 NotInRange = 0,
479 BadFacing = 1,
480 CantAttack = 2,
481 DeadTarget = 3
482};
483
484#define MAX_DECLINED_NAME_CASES 5
485
487{
488 DeclinedName() = default;
490
491 std::string name[MAX_DECLINED_NAME_CASES];
492};
493
495{
496 ACT_PASSIVE = 0x01, // 0x01 - passive
497 ACT_DISABLED = 0x81, // 0x80 - castable
498 ACT_ENABLED = 0xC1, // 0x40 | 0x80 - auto cast + castable
499 ACT_COMMAND = 0x07, // 0x01 | 0x02 | 0x04
500 ACT_REACTION = 0x06, // 0x02 | 0x04
501 ACT_DECIDE = 0x00 // custom
503
505{
509 REACT_ASSIST = 3
511
512inline char const* DescribeReactState(ReactStates state)
513{
514 switch (state)
515 {
516 case REACT_PASSIVE: return "PASSIVE";
517 case REACT_DEFENSIVE: return "DEFENSIVE";
518 case REACT_AGGRESSIVE: return "AGGRESSIVE";
519 case REACT_ASSIST: return "ASSIST";
520 default: return "<Invalid react state>";
521 }
522}
523
525{
532
533#endif // UnitDefines_h__
#define TC_GAME_API
Definition: Define.h:124
uint8_t uint8
Definition: Define.h:145
uint32_t uint32
Definition: Define.h:143
UnitMoveType
Definition: UnitDefines.h:116
@ MOVE_FLIGHT
Definition: UnitDefines.h:123
@ MOVE_SWIM
Definition: UnitDefines.h:120
@ MOVE_TURN_RATE
Definition: UnitDefines.h:122
@ MOVE_FLIGHT_BACK
Definition: UnitDefines.h:124
@ MOVE_SWIM_BACK
Definition: UnitDefines.h:121
@ MOVE_RUN
Definition: UnitDefines.h:118
@ MOVE_PITCH_RATE
Definition: UnitDefines.h:125
@ MOVE_RUN_BACK
Definition: UnitDefines.h:119
@ MOVE_WALK
Definition: UnitDefines.h:117
DEFINE_ENUM_FLAG(UnitPVPStateFlags)
UnitFlags2
Definition: UnitDefines.h:193
@ UNIT_FLAG2_UNK2
Definition: UnitDefines.h:210
@ UNIT_FLAG2_MIRROR_IMAGE
Definition: UnitDefines.h:198
@ UNIT_FLAG2_ALLOWED
Definition: UnitDefines.h:237
@ UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS
Definition: UnitDefines.h:218
@ UNIT_FLAG2_INTERACT_WHILE_HOSTILE
Definition: UnitDefines.h:208
@ UNIT_FLAG2_UNUSED_13
Definition: UnitDefines.h:225
@ UNIT_FLAG2_PLAY_DEATH_ANIM
Definition: UnitDefines.h:211
@ UNIT_FLAG2_HIDE_BODY
Definition: UnitDefines.h:195
@ UNIT_FLAG2_IGNORE_REPUTATION
Definition: UnitDefines.h:196
@ UNIT_FLAG2_PREVENT_SPELL_CLICK
Definition: UnitDefines.h:207
@ UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE
Definition: UnitDefines.h:222
@ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION
Definition: UnitDefines.h:206
@ UNIT_FLAG2_DISABLE_PRED_STATS
Definition: UnitDefines.h:202
@ UNIT_FLAG2_COMPREHEND_LANG
Definition: UnitDefines.h:197
@ UNIT_FLAG2_CANNOT_TURN
Definition: UnitDefines.h:209
@ UNIT_FLAG2_FORCE_MOVEMENT
Definition: UnitDefines.h:200
@ UNIT_FLAG2_GIGANTIC_AOI
Definition: UnitDefines.h:216
@ UNIT_FLAG2_ALLOW_CHEAT_SPELLS
Definition: UnitDefines.h:212
@ UNIT_FLAG2_FEIGN_DEATH
Definition: UnitDefines.h:194
@ UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES
Definition: UnitDefines.h:221
@ UNIT_FLAG2_INFINITE_AOI
Definition: UnitDefines.h:224
@ UNIT_FLAG2_NO_ACTIONS
Definition: UnitDefines.h:217
@ UNIT_FLAG2_REGENERATE_POWER
Definition: UnitDefines.h:205
@ UNIT_FLAG2_DONT_FADE_IN
Definition: UnitDefines.h:199
@ UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS
Definition: UnitDefines.h:219
@ UNIT_FLAG2_UNUSED_11
Definition: UnitDefines.h:223
@ UNIT_FLAG2_DISALLOWED
Definition: UnitDefines.h:227
@ UNIT_FLAG2_ALLOW_CHANGING_TALENTS
Definition: UnitDefines.h:203
@ UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER
Definition: UnitDefines.h:213
@ UNIT_FLAG2_DISARM_OFFHAND
Definition: UnitDefines.h:201
@ UNIT_FLAG2_LARGE_AOI
Definition: UnitDefines.h:215
@ UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS
Definition: UnitDefines.h:214
@ UNIT_FLAG2_UNTARGETABLE_BY_CLIENT
Definition: UnitDefines.h:220
@ UNIT_FLAG2_DISARM_RANGED
Definition: UnitDefines.h:204
UnitPetFlag
Definition: UnitDefines.h:107
@ UNIT_PET_FLAG_NONE
Definition: UnitDefines.h:108
@ UNIT_PET_FLAG_CAN_BE_ABANDONED
Definition: UnitDefines.h:110
@ UNIT_PET_FLAG_CAN_BE_RENAMED
Definition: UnitDefines.h:109
HitInfo
Definition: UnitDefines.h:447
@ HITINFO_PARTIAL_ABSORB
Definition: UnitDefines.h:455
@ HITINFO_UNK2
Definition: UnitDefines.h:452
@ HITINFO_FULL_RESIST
Definition: UnitDefines.h:456
@ HITINFO_NORMALSWING
Definition: UnitDefines.h:448
@ HITINFO_UNK22
Definition: UnitDefines.h:471
@ HITINFO_BLOCK
Definition: UnitDefines.h:462
@ HITINFO_UNK15
Definition: UnitDefines.h:464
@ HITINFO_UNK19
Definition: UnitDefines.h:468
@ HITINFO_CRUSHING
Definition: UnitDefines.h:466
@ HITINFO_UNK20
Definition: UnitDefines.h:469
@ HITINFO_FAKE_DAMAGE
Definition: UnitDefines.h:473
@ HITINFO_SWINGNOHITSOUND
Definition: UnitDefines.h:470
@ HITINFO_UNK12
Definition: UnitDefines.h:461
@ HITINFO_MISS
Definition: UnitDefines.h:453
@ HITINFO_RAGE_GAIN
Definition: UnitDefines.h:472
@ HITINFO_FULL_ABSORB
Definition: UnitDefines.h:454
@ HITINFO_NO_ANIMATION
Definition: UnitDefines.h:467
@ HITINFO_OFFHAND
Definition: UnitDefines.h:451
@ HITINFO_UNK1
Definition: UnitDefines.h:449
@ HITINFO_GLANCING
Definition: UnitDefines.h:465
@ HITINFO_UNK11
Definition: UnitDefines.h:460
@ HITINFO_CRITICALHIT
Definition: UnitDefines.h:458
@ HITINFO_PARTIAL_RESIST
Definition: UnitDefines.h:457
@ HITINFO_AFFECTS_VICTIM
Definition: UnitDefines.h:450
@ HITINFO_UNK14
Definition: UnitDefines.h:463
@ HITINFO_UNK10
Definition: UnitDefines.h:459
ReactStates
Definition: UnitDefines.h:505
@ REACT_DEFENSIVE
Definition: UnitDefines.h:507
@ REACT_PASSIVE
Definition: UnitDefines.h:506
@ REACT_AGGRESSIVE
Definition: UnitDefines.h:508
@ REACT_ASSIST
Definition: UnitDefines.h:509
UnitStandStateType
Definition: UnitDefines.h:41
@ UNIT_STAND_STATE_SLEEP
Definition: UnitDefines.h:45
@ UNIT_STAND_STATE_SIT_HIGH_CHAIR
Definition: UnitDefines.h:48
@ UNIT_STAND_STATE_SUBMERGED
Definition: UnitDefines.h:51
@ UNIT_STAND_STATE_SIT_MEDIUM_CHAIR
Definition: UnitDefines.h:47
@ UNIT_STAND_STATE_SIT_LOW_CHAIR
Definition: UnitDefines.h:46
@ UNIT_STAND_STATE_DEAD
Definition: UnitDefines.h:49
@ UNIT_STAND_STATE_KNEEL
Definition: UnitDefines.h:50
@ UNIT_STAND_STATE_SIT_CHAIR
Definition: UnitDefines.h:44
@ MAX_UNIT_STAND_STATE
Definition: UnitDefines.h:53
@ UNIT_STAND_STATE_STAND
Definition: UnitDefines.h:42
@ UNIT_STAND_STATE_SIT
Definition: UnitDefines.h:43
MovementFlags
Definition: UnitDefines.h:356
@ MOVEMENTFLAG_MASK_PLAYER_ONLY
Definition: UnitDefines.h:406
@ MOVEMENTFLAG_DESCENDING
Definition: UnitDefines.h:380
@ MOVEMENTFLAG_MASK_CREATURE_ALLOWED
Definition: UnitDefines.h:401
@ MOVEMENTFLAG_PITCH_DOWN
Definition: UnitDefines.h:365
@ MOVEMENTFLAG_PENDING_STRAFE_STOP
Definition: UnitDefines.h:372
@ MOVEMENTFLAG_PITCH_UP
Definition: UnitDefines.h:364
@ MOVEMENTFLAG_RIGHT
Definition: UnitDefines.h:363
@ MOVEMENTFLAG_PENDING_STOP
Definition: UnitDefines.h:371
@ MOVEMENTFLAG_FORWARD
Definition: UnitDefines.h:358
@ MOVEMENTFLAG_PENDING_STRAFE_LEFT
Definition: UnitDefines.h:375
@ MOVEMENTFLAG_NONE
Definition: UnitDefines.h:357
@ MOVEMENTFLAG_STRAFE_LEFT
Definition: UnitDefines.h:360
@ MOVEMENTFLAG_BACKWARD
Definition: UnitDefines.h:359
@ MOVEMENTFLAG_WATERWALKING
Definition: UnitDefines.h:384
@ MOVEMENTFLAG_MASK_MOVING
Definition: UnitDefines.h:389
@ MOVEMENTFLAG_DISABLE_GRAVITY
Definition: UnitDefines.h:367
@ MOVEMENTFLAG_PENDING_BACKWARD
Definition: UnitDefines.h:374
@ MOVEMENTFLAG_FLYING
Definition: UnitDefines.h:382
@ MOVEMENTFLAG_FALLING_SLOW
Definition: UnitDefines.h:385
@ MOVEMENTFLAG_PENDING_STRAFE_RIGHT
Definition: UnitDefines.h:376
@ MOVEMENTFLAG_CAN_FLY
Definition: UnitDefines.h:381
@ MOVEMENTFLAG_ROOT
Definition: UnitDefines.h:368
@ MOVEMENTFLAG_MASK_TURNING
Definition: UnitDefines.h:393
@ MOVEMENTFLAG_FALLING
Definition: UnitDefines.h:369
@ MOVEMENTFLAG_LEFT
Definition: UnitDefines.h:362
@ MOVEMENTFLAG_MASK_MOVING_FLY
Definition: UnitDefines.h:396
@ MOVEMENTFLAG_STRAFE_RIGHT
Definition: UnitDefines.h:361
@ MOVEMENTFLAG_FALLING_FAR
Definition: UnitDefines.h:370
@ MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
Movement flags that have change status opcodes associated for players.
Definition: UnitDefines.h:410
@ MOVEMENTFLAG_SWIMMING
Definition: UnitDefines.h:378
@ MOVEMENTFLAG_ASCENDING
Definition: UnitDefines.h:379
@ MOVEMENTFLAG_PENDING_FORWARD
Definition: UnitDefines.h:373
@ MOVEMENTFLAG_HOVER
Definition: UnitDefines.h:386
@ MOVEMENTFLAG_SPLINE_ELEVATION
Definition: UnitDefines.h:383
@ MOVEMENTFLAG_PENDING_ROOT
Definition: UnitDefines.h:377
@ MOVEMENTFLAG_WALKING
Definition: UnitDefines.h:366
@ MOVEMENTFLAG_DISABLE_COLLISION
Definition: UnitDefines.h:387
MovementFlags2
Definition: UnitDefines.h:415
@ MOVEMENTFLAG2_CAN_DOUBLE_JUMP
Definition: UnitDefines.h:429
@ MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS
Definition: UnitDefines.h:425
@ MOVEMENTFLAG2_UNK9
Definition: UnitDefines.h:426
@ MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING
Definition: UnitDefines.h:421
@ MOVEMENTFLAG2_INTERPOLATED_PITCHING
Definition: UnitDefines.h:435
@ MOVEMENTFLAG2_INTERPOLATED_MOVEMENT
Definition: UnitDefines.h:433
@ MOVEMENTFLAG2_CAN_TURN_WHILE_FALLING
Definition: UnitDefines.h:427
@ MOVEMENTFLAG2_AWAITING_LOAD
Definition: UnitDefines.h:432
@ MOVEMENTFLAG2_WATERWALKING_FULL_PITCH
Definition: UnitDefines.h:423
@ MOVEMENTFLAG2_DOUBLE_JUMP
Definition: UnitDefines.h:430
@ MOVEMENTFLAG2_NO_STRAFE
Definition: UnitDefines.h:417
@ MOVEMENTFLAG2_IGNORE_MOVEMENT_FORCES
Definition: UnitDefines.h:428
@ MOVEMENTFLAG2_IS_VEHICLE_EXIT_VOLUNTARY
Definition: UnitDefines.h:422
@ MOVEMENTFLAG2_INTERPOLATED_TURNING
Definition: UnitDefines.h:434
@ MOVEMENTFLAG2_FULL_SPEED_PITCHING
Definition: UnitDefines.h:420
@ MOVEMENTFLAG2_VEHICLE_PASSENGER_IS_TRANSITION_ALLOWED
Definition: UnitDefines.h:424
@ MOVEMENTFLAG2_NONE
Definition: UnitDefines.h:416
@ MOVEMENTFLAG2_FULL_SPEED_TURNING
Definition: UnitDefines.h:419
@ MOVEMENTFLAG2_NO_JUMPING
Definition: UnitDefines.h:418
#define MAX_DECLINED_NAME_CASES
Definition: UnitDefines.h:484
AttackSwingErr
Definition: UnitDefines.h:477
ActiveStates
Definition: UnitDefines.h:495
@ ACT_REACTION
Definition: UnitDefines.h:500
@ ACT_DECIDE
Definition: UnitDefines.h:501
@ ACT_COMMAND
Definition: UnitDefines.h:499
@ ACT_ENABLED
Definition: UnitDefines.h:498
@ ACT_PASSIVE
Definition: UnitDefines.h:496
@ ACT_DISABLED
Definition: UnitDefines.h:497
NPCFlags
Non Player Character flags.
Definition: UnitDefines.h:295
@ UNIT_NPC_FLAG_VENDOR_AMMO
Definition: UnitDefines.h:305
@ UNIT_NPC_FLAG_TABARDDESIGNER
Definition: UnitDefines.h:316
@ UNIT_NPC_FLAG_SPIRIT_HEALER
Definition: UnitDefines.h:311
@ UNIT_NPC_FLAG_BANKER
Definition: UnitDefines.h:314
@ UNIT_NPC_FLAG_AUCTIONEER
Definition: UnitDefines.h:318
@ UNIT_NPC_FLAG_UNK2
Definition: UnitDefines.h:300
@ UNIT_NPC_FLAG_VENDOR_POISON
Definition: UnitDefines.h:307
@ UNIT_NPC_FLAG_AREA_SPIRIT_HEALER
Definition: UnitDefines.h:312
@ UNIT_NPC_FLAG_GUILD_BANKER
Definition: UnitDefines.h:320
@ UNIT_NPC_FLAG_VENDOR
Definition: UnitDefines.h:304
@ UNIT_NPC_FLAG_STABLEMASTER
Definition: UnitDefines.h:319
@ UNIT_NPC_FLAG_VENDOR_REAGENT
Definition: UnitDefines.h:308
@ UNIT_NPC_FLAG_GOSSIP
Definition: UnitDefines.h:297
@ UNIT_NPC_FLAG_NONE
Definition: UnitDefines.h:296
@ UNIT_NPC_FLAG_BATTLEMASTER
Definition: UnitDefines.h:317
@ UNIT_NPC_FLAG_VENDOR_FOOD
Definition: UnitDefines.h:306
@ UNIT_NPC_FLAG_QUESTGIVER
Definition: UnitDefines.h:298
@ UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC
Definition: UnitDefines.h:324
@ UNIT_NPC_FLAG_INNKEEPER
Definition: UnitDefines.h:313
@ UNIT_NPC_FLAG_SPELLCLICK
Definition: UnitDefines.h:321
@ UNIT_NPC_FLAG_UNK1
Definition: UnitDefines.h:299
@ UNIT_NPC_FLAG_TRANSMOGRIFIER
Definition: UnitDefines.h:325
@ UNIT_NPC_FLAG_BLACK_MARKET
Definition: UnitDefines.h:328
@ UNIT_NPC_FLAG_MAILBOX
Definition: UnitDefines.h:323
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
Definition: UnitDefines.h:322
@ UNIT_NPC_FLAG_FLIGHTMASTER
Definition: UnitDefines.h:310
@ UNIT_NPC_FLAG_TRAINER_CLASS
Definition: UnitDefines.h:302
@ UNIT_NPC_FLAG_VAULTKEEPER
Definition: UnitDefines.h:326
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
Definition: UnitDefines.h:303
@ UNIT_NPC_FLAG_REPAIR
Definition: UnitDefines.h:309
@ UNIT_NPC_FLAG_TRAINER
Definition: UnitDefines.h:301
@ UNIT_NPC_FLAG_PETITIONER
Definition: UnitDefines.h:315
@ UNIT_NPC_FLAG_WILD_BATTLE_PET
Definition: UnitDefines.h:327
DamageEffectType
Definition: UnitDefines.h:131
@ SELF_DAMAGE
Definition: UnitDefines.h:137
@ DIRECT_DAMAGE
Definition: UnitDefines.h:132
@ NODAMAGE
Definition: UnitDefines.h:136
@ DOT
Definition: UnitDefines.h:134
@ SPELL_DIRECT_DAMAGE
Definition: UnitDefines.h:133
@ HEAL
Definition: UnitDefines.h:135
UnitFlags3
Definition: UnitDefines.h:245
@ UNIT_FLAG3_UI_CAN_GET_POSITION
Definition: UnitDefines.h:250
@ UNIT_FLAG3_UNK28
Definition: UnitDefines.h:274
@ UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS
Definition: UnitDefines.h:264
@ UNIT_FLAG3_ALLOWED
Definition: UnitDefines.h:287
@ UNIT_FLAG3_UNK29
Definition: UnitDefines.h:275
@ UNIT_FLAG3_UNK11
Definition: UnitDefines.h:257
@ UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK
Definition: UnitDefines.h:255
@ UNIT_FLAG3_UNK20
Definition: UnitDefines.h:266
@ UNIT_FLAG3_UNCONSCIOUS_ON_DEATH
Definition: UnitDefines.h:247
@ UNIT_FLAG3_UNK26
Definition: UnitDefines.h:272
@ UNIT_FLAG3_AI_OBSTACLE
Definition: UnitDefines.h:251
@ UNIT_FLAG3_FAKE_DEAD
Definition: UnitDefines.h:259
@ UNIT_FLAG3_DISALLOWED
Definition: UnitDefines.h:279
@ UNIT_FLAG3_UNK10
Definition: UnitDefines.h:256
@ UNIT_FLAG3_UNK0
Definition: UnitDefines.h:246
@ UNIT_FLAG3_UNTARGETABLE_FROM_UI
Definition: UnitDefines.h:261
@ UNIT_FLAG3_UNK23
Definition: UnitDefines.h:269
@ UNIT_FLAG3_UNK12
Definition: UnitDefines.h:258
@ UNIT_FLAG3_UNK27
Definition: UnitDefines.h:273
@ UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD
Definition: UnitDefines.h:262
@ UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE
Definition: UnitDefines.h:260
@ UNIT_FLAG3_FORCE_HIDE_NAMEPLATE
Definition: UnitDefines.h:270
@ UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE
Definition: UnitDefines.h:252
@ UNIT_FLAG3_UNK30
Definition: UnitDefines.h:276
@ UNIT_FLAG3_GARRISON_PET
Definition: UnitDefines.h:249
@ UNIT_FLAG3_UNK21
Definition: UnitDefines.h:267
@ UNIT_FLAG3_ALREADY_SKINNED
Definition: UnitDefines.h:263
@ UNIT_FLAG3_IGNORE_COMBAT
Definition: UnitDefines.h:254
@ UNIT_FLAG3_ALLOW_MOUNTED_COMBAT
Definition: UnitDefines.h:248
@ UNIT_FLAG3_UNK25
Definition: UnitDefines.h:271
@ UNIT_FLAG3_DONT_FADE_OUT
Definition: UnitDefines.h:268
@ UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK
Definition: UnitDefines.h:253
@ UNIT_FLAG3_UNK31
Definition: UnitDefines.h:277
@ UNIT_FLAG3_SUPPRESS_NPC_SOUNDS
Definition: UnitDefines.h:265
SheathState
Definition: UnitDefines.h:81
@ SHEATH_STATE_UNARMED
Definition: UnitDefines.h:82
@ SHEATH_STATE_MELEE
Definition: UnitDefines.h:83
@ MAX_SHEATH_STATE
Definition: UnitDefines.h:86
@ SHEATH_STATE_RANGED
Definition: UnitDefines.h:84
MovementFlags3
Definition: UnitDefines.h:439
@ MOVEMENTFLAG3_ADV_FLYING
Definition: UnitDefines.h:443
@ MOVEMENTFLAG3_DISABLE_INERTIA
Definition: UnitDefines.h:441
@ MOVEMENTFLAG3_CAN_ADV_FLY
Definition: UnitDefines.h:442
@ MOVEMENTFLAG3_NONE
Definition: UnitDefines.h:440
NPCFlags2
Definition: UnitDefines.h:335
@ UNIT_NPC_FLAG_2_GARRISON_ARCHITECT
Definition: UnitDefines.h:338
@ UNIT_NPC_FLAG_2_STEERING
Definition: UnitDefines.h:339
@ UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW
Definition: UnitDefines.h:344
@ UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR
Definition: UnitDefines.h:346
@ UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC
Definition: UnitDefines.h:345
@ UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER
Definition: UnitDefines.h:337
@ UNIT_NPC_FLAG_2_AZERITE_RESPEC
Definition: UnitDefines.h:347
@ UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER
Definition: UnitDefines.h:350
@ UNIT_NPC_FLAG_2_NONE
Definition: UnitDefines.h:336
@ UNIT_NPC_FLAG_2_TRADESKILL_NPC
Definition: UnitDefines.h:343
@ UNIT_NPC_FLAG_2_ISLANDS_QUEUE
Definition: UnitDefines.h:348
@ UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL
Definition: UnitDefines.h:340
@ UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER
Definition: UnitDefines.h:341
@ UNIT_NPC_FLAG_2_SUPPRESS_NPC_SOUNDS_EXCEPT_END_OF_INTERACTION
Definition: UnitDefines.h:349
@ UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC
Definition: UnitDefines.h:342
char const * DescribeReactState(ReactStates state)
Definition: UnitDefines.h:512
UnitPVPStateFlags
Definition: UnitDefines.h:91
@ UNIT_BYTE2_FLAG_UNK1
Definition: UnitDefines.h:94
@ UNIT_BYTE2_FLAG_UNK6
Definition: UnitDefines.h:99
@ UNIT_BYTE2_FLAG_PVP
Definition: UnitDefines.h:93
@ UNIT_BYTE2_FLAG_FFA_PVP
Definition: UnitDefines.h:95
@ UNIT_BYTE2_FLAG_UNK4
Definition: UnitDefines.h:97
@ UNIT_BYTE2_FLAG_UNK5
Definition: UnitDefines.h:98
@ UNIT_BYTE2_FLAG_UNK7
Definition: UnitDefines.h:100
@ UNIT_BYTE2_FLAG_NONE
Definition: UnitDefines.h:92
@ UNIT_BYTE2_FLAG_SANCTUARY
Definition: UnitDefines.h:96
AnimTier
Definition: UnitDefines.h:69
UnitVisFlags
Definition: UnitDefines.h:58
@ UNIT_VIS_FLAGS_UNTRACKABLE
Definition: UnitDefines.h:61
@ UNIT_VIS_FLAGS_STEALTHED
Definition: UnitDefines.h:60
@ UNIT_VIS_FLAGS_UNK5
Definition: UnitDefines.h:63
@ UNIT_VIS_FLAGS_INVISIBLE
Definition: UnitDefines.h:59
@ UNIT_VIS_FLAGS_UNK4
Definition: UnitDefines.h:62
@ UNIT_VIS_FLAGS_ALL
Definition: UnitDefines.h:64
CommandStates
Definition: UnitDefines.h:525
@ COMMAND_ATTACK
Definition: UnitDefines.h:528
@ COMMAND_MOVE_TO
Definition: UnitDefines.h:530
@ COMMAND_ABANDON
Definition: UnitDefines.h:529
@ COMMAND_STAY
Definition: UnitDefines.h:526
@ COMMAND_FOLLOW
Definition: UnitDefines.h:527
UnitFlags
Definition: UnitDefines.h:143
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
Definition: UnitDefines.h:173
@ UNIT_FLAG_STUNNED
Definition: UnitDefines.h:162
@ UNIT_FLAG_PVP_ENABLING
Definition: UnitDefines.h:156
@ UNIT_FLAG_NON_ATTACKABLE
Definition: UnitDefines.h:145
@ UNIT_FLAG_UNK_6
Definition: UnitDefines.h:150
@ UNIT_FLAG_IN_COMBAT
Definition: UnitDefines.h:163
@ UNIT_FLAG_PREPARATION
Definition: UnitDefines.h:149
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition: UnitDefines.h:160
@ UNIT_FLAG_IMMUNE_TO_NPC
Definition: UnitDefines.h:153
@ UNIT_FLAG_ON_TAXI
Definition: UnitDefines.h:164
@ UNIT_FLAG_ALLOWED
Definition: UnitDefines.h:185
@ UNIT_FLAG_POSSESSED
Definition: UnitDefines.h:168
@ UNIT_FLAG_IMMUNE
Definition: UnitDefines.h:175
@ UNIT_FLAG_SERVER_CONTROLLED
Definition: UnitDefines.h:144
@ UNIT_FLAG_DISARMED
Definition: UnitDefines.h:165
@ UNIT_FLAG_PACIFIED
Definition: UnitDefines.h:161
@ UNIT_FLAG_CAN_SWIM
Definition: UnitDefines.h:159
@ UNIT_FLAG_REMOVE_CLIENT_CONTROL
Definition: UnitDefines.h:146
@ UNIT_FLAG_CONFUSED
Definition: UnitDefines.h:166
@ UNIT_FLAG_FLEEING
Definition: UnitDefines.h:167
@ UNIT_FLAG_CANT_SWIM
Definition: UnitDefines.h:158
@ UNIT_FLAG_RENAME
Definition: UnitDefines.h:148
@ UNIT_FLAG_LOOTING
Definition: UnitDefines.h:154
@ UNIT_FLAG_UNINTERACTIBLE
Definition: UnitDefines.h:169
@ UNIT_FLAG_IMMUNE_TO_PC
Definition: UnitDefines.h:152
@ UNIT_FLAG_NOT_ATTACKABLE_1
Definition: UnitDefines.h:151
@ UNIT_FLAG_PLAYER_CONTROLLED
Definition: UnitDefines.h:147
@ UNIT_FLAG_DISALLOWED
Definition: UnitDefines.h:177
@ UNIT_FLAG_FORCE_NAMEPLATE
Definition: UnitDefines.h:157
@ UNIT_FLAG_SKINNABLE
Definition: UnitDefines.h:170
@ UNIT_FLAG_MOUNT
Definition: UnitDefines.h:171
@ UNIT_FLAG_PET_IN_COMBAT
Definition: UnitDefines.h:155
@ UNIT_FLAG_UNK_28
Definition: UnitDefines.h:172
@ UNIT_FLAG_SHEATHE
Definition: UnitDefines.h:174
Definition: Object.h:108
DeclinedName()=default