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{
142
144{
150
151#define ADV_FLYING_MAX_SPEED_TYPE 17
152
154{
155 DIRECT_DAMAGE = 0, // used for normal weapon damage (not for class abilities or spells)
156 SPELL_DIRECT_DAMAGE = 1, // spell/class abilities damage
157 DOT = 2,
158 HEAL = 3,
159 NODAMAGE = 4, // used also in case when damage applied to health but not applied to spell channelInterruptFlags/etc
160 SELF_DAMAGE = 5
162
163// Value masks for UNIT_FIELD_FLAGS
164// EnumUtils: DESCRIBE THIS
166{
167 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
168 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
169 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)
170 UNIT_FLAG_PLAYER_CONTROLLED = 0x00000008, // controlled by player, use _IMMUNE_TO_PC instead of _IMMUNE_TO_NPC
171 UNIT_FLAG_RENAME = 0x00000010,
172 UNIT_FLAG_PREPARATION = 0x00000020, // don't take reagents for spells with SPELL_ATTR5_NO_REAGENT_WHILE_PREP
173 UNIT_FLAG_UNK_6 = 0x00000040,
174 UNIT_FLAG_NOT_ATTACKABLE_1 = 0x00000080, // ?? (UNIT_FLAG_PLAYER_CONTROLLED | UNIT_FLAG_NOT_ATTACKABLE_1) is NON_PVP_ATTACKABLE
175 UNIT_FLAG_IMMUNE_TO_PC = 0x00000100, // disables combat/assistance with PlayerCharacters (PC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget
176 UNIT_FLAG_IMMUNE_TO_NPC = 0x00000200, // disables combat/assistance with NonPlayerCharacters (NPC) - see Unit::IsValidAttackTarget, Unit::IsValidAssistTarget
177 UNIT_FLAG_LOOTING = 0x00000400, // loot animation
178 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
179 UNIT_FLAG_PVP_ENABLING = 0x00001000, // changed in 3.0.3, now UNIT_BYTES_2_OFFSET_PVP_FLAG from UNIT_FIELD_BYTES_2
180 UNIT_FLAG_FORCE_NAMEPLATE = 0x00002000, // Force show nameplate, 9.0
181 UNIT_FLAG_CANT_SWIM = 0x00004000, // TITLE Can't Swim
182 UNIT_FLAG_CAN_SWIM = 0x00008000, // TITLE Can Swim DESCRIPTION shows swim animation in water
183 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
184 UNIT_FLAG_PACIFIED = 0x00020000, // 3.0.3 ok
185 UNIT_FLAG_STUNNED = 0x00040000, // 3.0.3 ok
187 UNIT_FLAG_ON_TAXI = 0x00100000, // disable casting at client side spell not allowed by taxi flight (mounted?), probably used with 0x4 flag
188 UNIT_FLAG_DISARMED = 0x00200000, // 3.0.3, disable melee spells casting..., "Required melee weapon" added to melee spells tooltip.
189 UNIT_FLAG_CONFUSED = 0x00400000,
190 UNIT_FLAG_FLEEING = 0x00800000,
191 UNIT_FLAG_POSSESSED = 0x01000000, // under direct client control by a player (possess or vehicle)
194 UNIT_FLAG_MOUNT = 0x08000000,
195 UNIT_FLAG_UNK_28 = 0x10000000,
196 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
197 UNIT_FLAG_SHEATHE = 0x40000000,
198 UNIT_FLAG_IMMUNE = 0x80000000, // Immune to damage
199
207
208 UNIT_FLAG_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG_DISALLOWED) // SKIP
210
212
213// Value masks for UNIT_FIELD_FLAGS_2
214// EnumUtils: DESCRIBE THIS
216{
218 UNIT_FLAG2_HIDE_BODY = 0x00000002, // TITLE Hide Body DESCRIPTION Hide unit model (show only player equip)
222 UNIT_FLAG2_DONT_FADE_IN = 0x00000020, // TITLE Don't Fade In DESCRIPTION Unit model instantly appears when summoned (does not fade in)
225 UNIT_FLAG2_DISABLE_PRED_STATS = 0x00000100, // Player has disabled predicted stats (Used by raid frames)
226 UNIT_FLAG2_ALLOW_CHANGING_TALENTS = 0x00000200, // Allows changing talents outside rest area
227 UNIT_FLAG2_DISARM_RANGED = 0x00000400, // this does not disable ranged weapon display (maybe additional flag needed?)
229 UNIT_FLAG2_RESTRICT_PARTY_INTERACTION = 0x00001000, // Restrict interaction to party or raid
230 UNIT_FLAG2_PREVENT_SPELL_CLICK = 0x00002000, // Prevent spellclick
231 UNIT_FLAG2_INTERACT_WHILE_HOSTILE = 0x00004000, // TITLE Interact while Hostile
232 UNIT_FLAG2_CANNOT_TURN = 0x00008000, // TITLE Cannot Turn
233 UNIT_FLAG2_UNK2 = 0x00010000,
234 UNIT_FLAG2_PLAY_DEATH_ANIM = 0x00020000, // Plays special death animation upon death
235 UNIT_FLAG2_ALLOW_CHEAT_SPELLS = 0x00040000, // Allows casting spells with AttributesEx7 & SPELL_ATTR7_IS_CHEAT_SPELL
236 UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER = 0x00080000, // TITLE Suppress highlight when targeted or moused over
237 UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS = 0x00100000, // TITLE Treat as Raid Unit For Helpful Spells (Instances ONLY)
238 UNIT_FLAG2_LARGE_AOI = 0x00200000, // TITLE Large (AOI)
239 UNIT_FLAG2_GIGANTIC_AOI = 0x00400000, // TITLE Gigantic (AOI)
241 UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS = 0x01000000, // TITLE AI will only swim if target swims
242 UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS = 0x02000000, // TITLE Don't generate combat log when engaged with NPC's
243 UNIT_FLAG2_UNTARGETABLE_BY_CLIENT = 0x04000000, // TITLE Untargetable By Client
244 UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES = 0x08000000, // TITLE Attacker Ignores Minimum Ranges
245 UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE = 0x10000000, // TITLE Uninteractible If Hostile
247 UNIT_FLAG2_INFINITE_AOI = 0x40000000, // TITLE Infinite (AOI)
249
253 /* UNIT_FLAG2_REGENERATE_POWER | */ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION | UNIT_FLAG2_CANNOT_TURN |
254 UNIT_FLAG2_PREVENT_SPELL_CLICK | /* UNIT_FLAG2_INTERACT_WHILE_HOSTILE | */ /* UNIT_FLAG2_UNK2 | */
259
260 UNIT_FLAG2_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG2_DISALLOWED) // SKIP
262
264
265// Value masks for UNIT_FIELD_FLAGS_3
266// EnumUtils: DESCRIBE THIS
268{
269 UNIT_FLAG3_UNK0 = 0x00000001,
270 UNIT_FLAG3_UNCONSCIOUS_ON_DEATH = 0x00000002, // TITLE Unconscious on Death DESCRIPTION Shows "Unconscious" in unit tooltip instead of "Dead"
271 UNIT_FLAG3_ALLOW_MOUNTED_COMBAT = 0x00000004, // TITLE Allow mounted combat
272 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
273 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
276 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
277 UNIT_FLAG3_IGNORE_COMBAT = 0x00000100, // TITLE Ignore Combat DESCRIPTION Same as SPELL_AURA_IGNORE_COMBAT
278 UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK = 0x00000200, // TITLE Suppress NPC feedback DESCRIPTION Skips playing sounds on left clicking npc
279 UNIT_FLAG3_UNK10 = 0x00000400,
280 UNIT_FLAG3_UNK11 = 0x00000800,
281 UNIT_FLAG3_UNK12 = 0x00001000,
282 UNIT_FLAG3_FAKE_DEAD = 0x00002000, // TITLE Show as dead
283 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)
284 UNIT_FLAG3_UNTARGETABLE_FROM_UI = 0x00008000, // TITLE Untargetable from UI DESCRIPTION Cannot be targeted from lua functions StartAttack, TargetUnit, PetAttack
285 UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD = 0x00010000, // Prevents facing changes while interacting if creature has flag UNIT_FLAG3_FAKE_DEAD
287 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
288 UNIT_FLAG3_SUPPRESS_NPC_SOUNDS = 0x00080000, // TITLE Suppress NPC sounds DESCRIPTION Skips playing sounds on beginning and end of npc interaction
289 UNIT_FLAG3_ALLOW_INTERACTION_WHILE_IN_COMBAT = 0x00100000, // TITLE Allow Interaction While in Combat DESCRIPTION Allows using various NPC functions while in combat (vendor, gossip, questgiver)
290 UNIT_FLAG3_UNK21 = 0x00200000,
292 UNIT_FLAG3_UNK23 = 0x00800000,
294 UNIT_FLAG3_UNK25 = 0x02000000,
295 UNIT_FLAG3_UNK26 = 0x04000000,
296 UNIT_FLAG3_UNK27 = 0x08000000,
297 UNIT_FLAG3_UNK28 = 0x10000000,
298 UNIT_FLAG3_UNK29 = 0x20000000,
299 UNIT_FLAG3_UNK30 = 0x40000000,
300 UNIT_FLAG3_UNK31 = 0x80000000,
301
302 UNIT_FLAG3_DISALLOWED = (UNIT_FLAG3_UNK0 | /* UNIT_FLAG3_UNCONSCIOUS_ON_DEATH | */ /* UNIT_FLAG3_ALLOW_MOUNTED_COMBAT | */ UNIT_FLAG3_GARRISON_PET |
303 /* UNIT_FLAG3_UI_CAN_GET_POSITION | */ /* UNIT_FLAG3_AI_OBSTACLE | */ UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE | /* UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK | */
305 UNIT_FLAG3_UNK12 | /* UNIT_FLAG3_FAKE_DEAD |*/ /* UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE | */ /* UNIT_FLAG3_UNTARGETABLE_FROM_UI | */
306 /* UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD | */ UNIT_FLAG3_ALREADY_SKINNED | /* UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS | */ /* UNIT_FLAG3_SUPPRESS_NPC_SOUNDS | */
308 /* UNIT_FLAG3_FORCE_HIDE_NAMEPLATE | */ UNIT_FLAG3_UNK25 | UNIT_FLAG3_UNK26 | UNIT_FLAG3_UNK27 |
310 UNIT_FLAG3_ALLOWED = (0xFFFFFFFF & ~UNIT_FLAG3_DISALLOWED) // SKIP
312
314
316// EnumUtils: DESCRIBE THIS
318{
319 UNIT_NPC_FLAG_NONE = 0x00000000,
320 UNIT_NPC_FLAG_GOSSIP = 0x00000001, // TITLE has gossip menu DESCRIPTION 100%
321 UNIT_NPC_FLAG_QUESTGIVER = 0x00000002, // TITLE is quest giver DESCRIPTION 100%
322 UNIT_NPC_FLAG_ACCOUNT_BANKER = 0x00000004, // TITLE is account banker
323 UNIT_NPC_FLAG_UNK2 = 0x00000008,
324 UNIT_NPC_FLAG_TRAINER = 0x00000010, // TITLE is trainer DESCRIPTION 100%
325 UNIT_NPC_FLAG_TRAINER_CLASS = 0x00000020, // TITLE is class trainer DESCRIPTION 100%
326 UNIT_NPC_FLAG_TRAINER_PROFESSION = 0x00000040, // TITLE is profession trainer DESCRIPTION 100%
327 UNIT_NPC_FLAG_VENDOR = 0x00000080, // TITLE is vendor (generic) DESCRIPTION 100%
328 UNIT_NPC_FLAG_VENDOR_AMMO = 0x00000100, // TITLE is vendor (ammo) DESCRIPTION 100%, general goods vendor
329 UNIT_NPC_FLAG_VENDOR_FOOD = 0x00000200, // TITLE is vendor (food) DESCRIPTION 100%
330 UNIT_NPC_FLAG_VENDOR_POISON = 0x00000400, // TITLE is vendor (poison) DESCRIPTION guessed
331 UNIT_NPC_FLAG_VENDOR_REAGENT = 0x00000800, // TITLE is vendor (reagents) DESCRIPTION 100%
332 UNIT_NPC_FLAG_REPAIR = 0x00001000, // TITLE can repair DESCRIPTION 100%
333 UNIT_NPC_FLAG_FLIGHTMASTER = 0x00002000, // TITLE is flight master DESCRIPTION 100%
334 UNIT_NPC_FLAG_SPIRIT_HEALER = 0x00004000, // TITLE is spirit healer
335 UNIT_NPC_FLAG_AREA_SPIRIT_HEALER = 0x00008000, // TITLE is area spirit healer
336 UNIT_NPC_FLAG_INNKEEPER = 0x00010000, // TITLE is innkeeper
337 UNIT_NPC_FLAG_BANKER = 0x00020000, // TITLE is banker DESCRIPTION 100%
338 UNIT_NPC_FLAG_PETITIONER = 0x00040000, // TITLE handles guild/arena petitions DESCRIPTION 100% 0xC0000 = guild petitions, 0x40000 = arena team petitions
339 UNIT_NPC_FLAG_TABARDDESIGNER = 0x00080000, // TITLE is guild tabard designer DESCRIPTION 100%
340 UNIT_NPC_FLAG_BATTLEMASTER = 0x00100000, // TITLE is battlemaster DESCRIPTION 100%
341 UNIT_NPC_FLAG_AUCTIONEER = 0x00200000, // TITLE is auctioneer DESCRIPTION 100%
342 UNIT_NPC_FLAG_STABLEMASTER = 0x00400000, // TITLE is stable master DESCRIPTION 100%
343 UNIT_NPC_FLAG_GUILD_BANKER = 0x00800000, // TITLE is guild banker DESCRIPTION
344 UNIT_NPC_FLAG_SPELLCLICK = 0x01000000, // TITLE has spell click enabled
345 UNIT_NPC_FLAG_PLAYER_VEHICLE = 0x02000000, // TITLE is player vehicle DESCRIPTION players with mounts that have vehicle data should have it set
346 UNIT_NPC_FLAG_MAILBOX = 0x04000000, // TITLE is mailbox
347 UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC = 0x08000000, // TITLE can reset artifact powers
348 UNIT_NPC_FLAG_TRANSMOGRIFIER = 0x10000000, // TITLE transmogrification
349 UNIT_NPC_FLAG_VAULTKEEPER = 0x20000000, // TITLE is void storage
350 UNIT_NPC_FLAG_WILD_BATTLE_PET = 0x40000000, // TITLE is wild battle pet DESCRIPTION Pet that player can fight (Battle Pet)
351 UNIT_NPC_FLAG_BLACK_MARKET = 0x80000000 // TITLE is black market
353
355
358
359// EnumUtils: DESCRIBE THIS
361{
363 UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER = 0x00000001, // TITLE is item upgrade
364 UNIT_NPC_FLAG_2_GARRISON_ARCHITECT = 0x00000002, // TITLE is garrison architect DESCRIPTION garrison building placement UI
365 UNIT_NPC_FLAG_2_STEERING = 0x00000004, // TITLE is avoiding obstacles DESCRIPTION clientside pathfinding
366 UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL = 0x00000008, // TITLE is area spirit healer individual DESCRIPTION area spirit healer with individual timers
367 UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER = 0x00000010, // TITLE is shipment crafter DESCRIPTION garrison work orders
368 UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC = 0x00000020, // TITLE is garrison mission
369 UNIT_NPC_FLAG_2_TRADESKILL_NPC = 0x00000040, // TITLE is tradeskill DESCRIPTION crafting at npc
370 UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW = 0x00000080, // TITLE is black market view DESCRIPTION only allows viewing black market auctions, no bidding
371 UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC = 0x00000200, // TITLE is garrrison talent
372 UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR = 0x00000400, // TITLE is contribution collector
373 UNIT_NPC_FLAG_2_FAST_STEERING_AVOIDS_OBSTACLES = 0x00002000, // TITLE enables avoiding obstacles when FastSteering spline flag is set
374 UNIT_NPC_FLAG_2_AZERITE_RESPEC = 0x00004000, // TITLE is azerite respec
375 UNIT_NPC_FLAG_2_ISLANDS_QUEUE = 0x00008000, // TITLE is islands queue
377 UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER = 0x00200000, // TITLE is personal tabard designer
378};
379
381
382// EnumUtils: DESCRIBE THIS
384{
385 MOVEMENTFLAG_NONE = 0x00000000,
390 MOVEMENTFLAG_LEFT = 0x00000010,
391 MOVEMENTFLAG_RIGHT = 0x00000020,
394 MOVEMENTFLAG_WALKING = 0x00000100, // Walking
395 MOVEMENTFLAG_DISABLE_GRAVITY = 0x00000200, // Former MOVEMENTFLAG_LEVITATING. This is used when walking is not possible.
396 MOVEMENTFLAG_ROOT = 0x00000400, // Must not be set along with MOVEMENTFLAG_MASK_MOVING
397 MOVEMENTFLAG_FALLING = 0x00000800, // damage dealt on that type of falling
406 MOVEMENTFLAG_SWIMMING = 0x00100000, // appears with fly flag also
407 MOVEMENTFLAG_ASCENDING = 0x00200000, // press "space" when flying
409 MOVEMENTFLAG_CAN_FLY = 0x00800000, // Appears when unit can fly. For example, appears when a player sits on a mount.
410 MOVEMENTFLAG_FLYING = 0x01000000, // unit is actually flying. pretty sure this is only used for players. creatures use disable_gravity
411 MOVEMENTFLAG_SPLINE_ELEVATION = 0x02000000, // used for flight paths
412 MOVEMENTFLAG_WATERWALKING = 0x04000000, // prevent unit from falling through water
413 MOVEMENTFLAG_FALLING_SLOW = 0x08000000, // active rogue safe fall spell (passive)
414 MOVEMENTFLAG_HOVER = 0x10000000, // hover, cannot jump
416
420
423
426
427 // Movement flags allowed for creature in CreateObject - we need to keep all other enabled serverside
428 // to properly calculate all movement
432
436
441
442// EnumUtils: DESCRIBE THIS
444{
445 MOVEMENTFLAG2_NONE = 0x00000000,
452 MOVEMENTFLAG2_WATERWALKING_FULL_PITCH = 0x00000040, // will always waterwalk, even if facing the camera directly down
455 MOVEMENTFLAG2_UNK9 = 0x00000200, // terrain normal calculation is disabled if this flag is not present, client automatically handles setting this flag
460 // these flags are not sent
466
467// EnumUtils: DESCRIBE THIS
469{
470 MOVEMENTFLAG3_NONE = 0x00000000,
475};
476
478{
480 HITINFO_UNK1 = 0x00000001, // req correct packet structure
482 HITINFO_OFFHAND = 0x00000004,
483 HITINFO_UNK2 = 0x00000008,
484 HITINFO_MISS = 0x00000010,
489 HITINFO_CRITICALHIT = 0x00000200, // critical hit
490 HITINFO_UNK10 = 0x00000400,
491 HITINFO_UNK11 = 0x00000800,
492 HITINFO_UNK12 = 0x00001000,
493 HITINFO_BLOCK = 0x00002000, // blocked damage
494 HITINFO_UNK14 = 0x00004000, // set only if meleespellid is present// no world text when victim is hit for 0 dmg(HideWorldTextForNoDamage?)
495 HITINFO_UNK15 = 0x00008000, // player victim?// something related to blod sprut visual (BloodSpurtInBack?)
496 HITINFO_GLANCING = 0x00010000,
497 HITINFO_CRUSHING = 0x00020000,
499 HITINFO_UNK19 = 0x00080000,
500 HITINFO_UNK20 = 0x00100000,
501 HITINFO_SWINGNOHITSOUND = 0x00200000, // unused?
502 HITINFO_UNK22 = 0x00400000,
503 HITINFO_RAGE_GAIN = 0x00800000,
504 HITINFO_FAKE_DAMAGE = 0x01000000 // enables damage animation even if no damage done, set only if no damage
506
508{
509 NotInRange = 0,
510 BadFacing = 1,
511 CantAttack = 2,
512 DeadTarget = 3
513};
514
515#define MAX_DECLINED_NAME_CASES 5
516
518{
519 DeclinedName() = default;
521
522 std::string name[MAX_DECLINED_NAME_CASES];
523};
524
526{
527 ACT_PASSIVE = 0x01, // 0x01 - passive
528 ACT_DISABLED = 0x81, // 0x80 - castable
529 ACT_ENABLED = 0xC1, // 0x40 | 0x80 - auto cast + castable
530 ACT_COMMAND = 0x07, // 0x01 | 0x02 | 0x04
531 ACT_REACTION = 0x06, // 0x02 | 0x04
532 ACT_DECIDE = 0x00 // custom
534
536{
540 REACT_ASSIST = 3
542
543inline char const* DescribeReactState(ReactStates state)
544{
545 switch (state)
546 {
547 case REACT_PASSIVE: return "PASSIVE";
548 case REACT_DEFENSIVE: return "DEFENSIVE";
549 case REACT_AGGRESSIVE: return "AGGRESSIVE";
550 case REACT_ASSIST: return "ASSIST";
551 default: return "<Invalid react state>";
552 }
553}
554
556{
563
564#endif // UnitDefines_h__
#define TC_GAME_API
Definition: Define.h:123
uint8_t uint8
Definition: Define.h:144
uint32_t uint32
Definition: Define.h:142
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:216
@ UNIT_FLAG2_UNK2
Definition: UnitDefines.h:233
@ UNIT_FLAG2_MIRROR_IMAGE
Definition: UnitDefines.h:221
@ UNIT_FLAG2_ALLOWED
Definition: UnitDefines.h:260
@ UNIT_FLAG2_AI_WILL_ONLY_SWIM_IF_TARGET_SWIMS
Definition: UnitDefines.h:241
@ UNIT_FLAG2_INTERACT_WHILE_HOSTILE
Definition: UnitDefines.h:231
@ UNIT_FLAG2_UNUSED_13
Definition: UnitDefines.h:248
@ UNIT_FLAG2_PLAY_DEATH_ANIM
Definition: UnitDefines.h:234
@ UNIT_FLAG2_HIDE_BODY
Definition: UnitDefines.h:218
@ UNIT_FLAG2_IGNORE_REPUTATION
Definition: UnitDefines.h:219
@ UNIT_FLAG2_PREVENT_SPELL_CLICK
Definition: UnitDefines.h:230
@ UNIT_FLAG2_UNINTERACTIBLE_IF_HOSTILE
Definition: UnitDefines.h:245
@ UNIT_FLAG2_RESTRICT_PARTY_INTERACTION
Definition: UnitDefines.h:229
@ UNIT_FLAG2_DISABLE_PRED_STATS
Definition: UnitDefines.h:225
@ UNIT_FLAG2_COMPREHEND_LANG
Definition: UnitDefines.h:220
@ UNIT_FLAG2_CANNOT_TURN
Definition: UnitDefines.h:232
@ UNIT_FLAG2_FORCE_MOVEMENT
Definition: UnitDefines.h:223
@ UNIT_FLAG2_GIGANTIC_AOI
Definition: UnitDefines.h:239
@ UNIT_FLAG2_ALLOW_CHEAT_SPELLS
Definition: UnitDefines.h:235
@ UNIT_FLAG2_FEIGN_DEATH
Definition: UnitDefines.h:217
@ UNIT_FLAG2_ATTACKER_IGNORES_MINIMUM_RANGES
Definition: UnitDefines.h:244
@ UNIT_FLAG2_INFINITE_AOI
Definition: UnitDefines.h:247
@ UNIT_FLAG2_NO_ACTIONS
Definition: UnitDefines.h:240
@ UNIT_FLAG2_REGENERATE_POWER
Definition: UnitDefines.h:228
@ UNIT_FLAG2_DONT_FADE_IN
Definition: UnitDefines.h:222
@ UNIT_FLAG2_DONT_GENERATE_COMBAT_LOG_WHEN_ENGAGED_WITH_NPCS
Definition: UnitDefines.h:242
@ UNIT_FLAG2_UNUSED_11
Definition: UnitDefines.h:246
@ UNIT_FLAG2_DISALLOWED
Definition: UnitDefines.h:250
@ UNIT_FLAG2_ALLOW_CHANGING_TALENTS
Definition: UnitDefines.h:226
@ UNIT_FLAG2_SUPPRESS_HIGHLIGHT_WHEN_TARGETED_OR_MOUSED_OVER
Definition: UnitDefines.h:236
@ UNIT_FLAG2_DISARM_OFFHAND
Definition: UnitDefines.h:224
@ UNIT_FLAG2_LARGE_AOI
Definition: UnitDefines.h:238
@ UNIT_FLAG2_TREAT_AS_RAID_UNIT_FOR_HELPFUL_SPELLS
Definition: UnitDefines.h:237
@ UNIT_FLAG2_UNTARGETABLE_BY_CLIENT
Definition: UnitDefines.h:243
@ UNIT_FLAG2_DISARM_RANGED
Definition: UnitDefines.h:227
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:478
@ HITINFO_PARTIAL_ABSORB
Definition: UnitDefines.h:486
@ HITINFO_UNK2
Definition: UnitDefines.h:483
@ HITINFO_FULL_RESIST
Definition: UnitDefines.h:487
@ HITINFO_NORMALSWING
Definition: UnitDefines.h:479
@ HITINFO_UNK22
Definition: UnitDefines.h:502
@ HITINFO_BLOCK
Definition: UnitDefines.h:493
@ HITINFO_UNK15
Definition: UnitDefines.h:495
@ HITINFO_UNK19
Definition: UnitDefines.h:499
@ HITINFO_CRUSHING
Definition: UnitDefines.h:497
@ HITINFO_UNK20
Definition: UnitDefines.h:500
@ HITINFO_FAKE_DAMAGE
Definition: UnitDefines.h:504
@ HITINFO_SWINGNOHITSOUND
Definition: UnitDefines.h:501
@ HITINFO_UNK12
Definition: UnitDefines.h:492
@ HITINFO_MISS
Definition: UnitDefines.h:484
@ HITINFO_RAGE_GAIN
Definition: UnitDefines.h:503
@ HITINFO_FULL_ABSORB
Definition: UnitDefines.h:485
@ HITINFO_NO_ANIMATION
Definition: UnitDefines.h:498
@ HITINFO_OFFHAND
Definition: UnitDefines.h:482
@ HITINFO_UNK1
Definition: UnitDefines.h:480
@ HITINFO_GLANCING
Definition: UnitDefines.h:496
@ HITINFO_UNK11
Definition: UnitDefines.h:491
@ HITINFO_CRITICALHIT
Definition: UnitDefines.h:489
@ HITINFO_PARTIAL_RESIST
Definition: UnitDefines.h:488
@ HITINFO_AFFECTS_VICTIM
Definition: UnitDefines.h:481
@ HITINFO_UNK14
Definition: UnitDefines.h:494
@ HITINFO_UNK10
Definition: UnitDefines.h:490
ReactStates
Definition: UnitDefines.h:536
@ REACT_DEFENSIVE
Definition: UnitDefines.h:538
@ REACT_PASSIVE
Definition: UnitDefines.h:537
@ REACT_AGGRESSIVE
Definition: UnitDefines.h:539
@ REACT_ASSIST
Definition: UnitDefines.h:540
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
AdvFlyingRateTypeSingle
Definition: UnitDefines.h:131
@ ADV_FLYING_DOUBLE_JUMP_VEL_MOD
Definition: UnitDefines.h:135
@ ADV_FLYING_OVER_MAX_DECELERATION
Definition: UnitDefines.h:139
@ ADV_FLYING_LIFT_COEFFICIENT
Definition: UnitDefines.h:134
@ ADV_FLYING_ADD_IMPULSE_MAX_SPEED
Definition: UnitDefines.h:137
@ ADV_FLYING_GLIDE_START_MIN_HEIGHT
Definition: UnitDefines.h:136
@ ADV_FLYING_AIR_FRICTION
Definition: UnitDefines.h:132
@ ADV_FLYING_LAUNCH_SPEED_COEFFICIENT
Definition: UnitDefines.h:140
@ ADV_FLYING_MAX_VEL
Definition: UnitDefines.h:133
@ ADV_FLYING_SURFACE_FRICTION
Definition: UnitDefines.h:138
constexpr NPCFlags UNIT_NPC_FLAG_VENDOR_MASK
Definition: UnitDefines.h:356
MovementFlags
Definition: UnitDefines.h:384
@ MOVEMENTFLAG_MASK_PLAYER_ONLY
Definition: UnitDefines.h:434
@ MOVEMENTFLAG_DESCENDING
Definition: UnitDefines.h:408
@ MOVEMENTFLAG_MASK_CREATURE_ALLOWED
Definition: UnitDefines.h:429
@ MOVEMENTFLAG_PITCH_DOWN
Definition: UnitDefines.h:393
@ MOVEMENTFLAG_PENDING_STRAFE_STOP
Definition: UnitDefines.h:400
@ MOVEMENTFLAG_PITCH_UP
Definition: UnitDefines.h:392
@ MOVEMENTFLAG_RIGHT
Definition: UnitDefines.h:391
@ MOVEMENTFLAG_PENDING_STOP
Definition: UnitDefines.h:399
@ MOVEMENTFLAG_FORWARD
Definition: UnitDefines.h:386
@ MOVEMENTFLAG_PENDING_STRAFE_LEFT
Definition: UnitDefines.h:403
@ MOVEMENTFLAG_NONE
Definition: UnitDefines.h:385
@ MOVEMENTFLAG_STRAFE_LEFT
Definition: UnitDefines.h:388
@ MOVEMENTFLAG_BACKWARD
Definition: UnitDefines.h:387
@ MOVEMENTFLAG_WATERWALKING
Definition: UnitDefines.h:412
@ MOVEMENTFLAG_MASK_MOVING
Definition: UnitDefines.h:417
@ MOVEMENTFLAG_DISABLE_GRAVITY
Definition: UnitDefines.h:395
@ MOVEMENTFLAG_PENDING_BACKWARD
Definition: UnitDefines.h:402
@ MOVEMENTFLAG_FLYING
Definition: UnitDefines.h:410
@ MOVEMENTFLAG_FALLING_SLOW
Definition: UnitDefines.h:413
@ MOVEMENTFLAG_PENDING_STRAFE_RIGHT
Definition: UnitDefines.h:404
@ MOVEMENTFLAG_CAN_FLY
Definition: UnitDefines.h:409
@ MOVEMENTFLAG_ROOT
Definition: UnitDefines.h:396
@ MOVEMENTFLAG_MASK_TURNING
Definition: UnitDefines.h:421
@ MOVEMENTFLAG_FALLING
Definition: UnitDefines.h:397
@ MOVEMENTFLAG_LEFT
Definition: UnitDefines.h:390
@ MOVEMENTFLAG_MASK_MOVING_FLY
Definition: UnitDefines.h:424
@ MOVEMENTFLAG_STRAFE_RIGHT
Definition: UnitDefines.h:389
@ MOVEMENTFLAG_FALLING_FAR
Definition: UnitDefines.h:398
@ MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE
Movement flags that have change status opcodes associated for players.
Definition: UnitDefines.h:438
@ MOVEMENTFLAG_SWIMMING
Definition: UnitDefines.h:406
@ MOVEMENTFLAG_ASCENDING
Definition: UnitDefines.h:407
@ MOVEMENTFLAG_PENDING_FORWARD
Definition: UnitDefines.h:401
@ MOVEMENTFLAG_HOVER
Definition: UnitDefines.h:414
@ MOVEMENTFLAG_SPLINE_ELEVATION
Definition: UnitDefines.h:411
@ MOVEMENTFLAG_PENDING_ROOT
Definition: UnitDefines.h:405
@ MOVEMENTFLAG_WALKING
Definition: UnitDefines.h:394
@ MOVEMENTFLAG_DISABLE_COLLISION
Definition: UnitDefines.h:415
MovementFlags2
Definition: UnitDefines.h:444
@ MOVEMENTFLAG2_CAN_DOUBLE_JUMP
Definition: UnitDefines.h:458
@ MOVEMENTFLAG2_CAN_SWIM_TO_FLY_TRANS
Definition: UnitDefines.h:454
@ MOVEMENTFLAG2_UNK9
Definition: UnitDefines.h:455
@ MOVEMENTFLAG2_ALWAYS_ALLOW_PITCHING
Definition: UnitDefines.h:450
@ MOVEMENTFLAG2_INTERPOLATED_PITCHING
Definition: UnitDefines.h:464
@ MOVEMENTFLAG2_INTERPOLATED_MOVEMENT
Definition: UnitDefines.h:462
@ MOVEMENTFLAG2_CAN_TURN_WHILE_FALLING
Definition: UnitDefines.h:456
@ MOVEMENTFLAG2_AWAITING_LOAD
Definition: UnitDefines.h:461
@ MOVEMENTFLAG2_WATERWALKING_FULL_PITCH
Definition: UnitDefines.h:452
@ MOVEMENTFLAG2_DOUBLE_JUMP
Definition: UnitDefines.h:459
@ MOVEMENTFLAG2_NO_STRAFE
Definition: UnitDefines.h:446
@ MOVEMENTFLAG2_IGNORE_MOVEMENT_FORCES
Definition: UnitDefines.h:457
@ MOVEMENTFLAG2_IS_VEHICLE_EXIT_VOLUNTARY
Definition: UnitDefines.h:451
@ MOVEMENTFLAG2_INTERPOLATED_TURNING
Definition: UnitDefines.h:463
@ MOVEMENTFLAG2_FULL_SPEED_PITCHING
Definition: UnitDefines.h:449
@ MOVEMENTFLAG2_VEHICLE_PASSENGER_IS_TRANSITION_ALLOWED
Definition: UnitDefines.h:453
@ MOVEMENTFLAG2_NONE
Definition: UnitDefines.h:445
@ MOVEMENTFLAG2_FULL_SPEED_TURNING
Definition: UnitDefines.h:448
@ MOVEMENTFLAG2_NO_JUMPING
Definition: UnitDefines.h:447
#define MAX_DECLINED_NAME_CASES
Definition: UnitDefines.h:515
AdvFlyingRateTypeRange
Definition: UnitDefines.h:144
@ ADV_FLYING_PITCHING_RATE_DOWN
Definition: UnitDefines.h:146
@ ADV_FLYING_TURN_VELOCITY_THRESHOLD
Definition: UnitDefines.h:148
@ ADV_FLYING_PITCHING_RATE_UP
Definition: UnitDefines.h:147
@ ADV_FLYING_BANKING_RATE
Definition: UnitDefines.h:145
AttackSwingErr
Definition: UnitDefines.h:508
ActiveStates
Definition: UnitDefines.h:526
@ ACT_REACTION
Definition: UnitDefines.h:531
@ ACT_DECIDE
Definition: UnitDefines.h:532
@ ACT_COMMAND
Definition: UnitDefines.h:530
@ ACT_ENABLED
Definition: UnitDefines.h:529
@ ACT_PASSIVE
Definition: UnitDefines.h:527
@ ACT_DISABLED
Definition: UnitDefines.h:528
NPCFlags
Non Player Character flags.
Definition: UnitDefines.h:318
@ UNIT_NPC_FLAG_VENDOR_AMMO
Definition: UnitDefines.h:328
@ UNIT_NPC_FLAG_TABARDDESIGNER
Definition: UnitDefines.h:339
@ UNIT_NPC_FLAG_SPIRIT_HEALER
Definition: UnitDefines.h:334
@ UNIT_NPC_FLAG_BANKER
Definition: UnitDefines.h:337
@ UNIT_NPC_FLAG_ACCOUNT_BANKER
Definition: UnitDefines.h:322
@ UNIT_NPC_FLAG_AUCTIONEER
Definition: UnitDefines.h:341
@ UNIT_NPC_FLAG_UNK2
Definition: UnitDefines.h:323
@ UNIT_NPC_FLAG_VENDOR_POISON
Definition: UnitDefines.h:330
@ UNIT_NPC_FLAG_AREA_SPIRIT_HEALER
Definition: UnitDefines.h:335
@ UNIT_NPC_FLAG_GUILD_BANKER
Definition: UnitDefines.h:343
@ UNIT_NPC_FLAG_VENDOR
Definition: UnitDefines.h:327
@ UNIT_NPC_FLAG_STABLEMASTER
Definition: UnitDefines.h:342
@ UNIT_NPC_FLAG_VENDOR_REAGENT
Definition: UnitDefines.h:331
@ UNIT_NPC_FLAG_GOSSIP
Definition: UnitDefines.h:320
@ UNIT_NPC_FLAG_NONE
Definition: UnitDefines.h:319
@ UNIT_NPC_FLAG_BATTLEMASTER
Definition: UnitDefines.h:340
@ UNIT_NPC_FLAG_VENDOR_FOOD
Definition: UnitDefines.h:329
@ UNIT_NPC_FLAG_QUESTGIVER
Definition: UnitDefines.h:321
@ UNIT_NPC_FLAG_ARTIFACT_POWER_RESPEC
Definition: UnitDefines.h:347
@ UNIT_NPC_FLAG_INNKEEPER
Definition: UnitDefines.h:336
@ UNIT_NPC_FLAG_SPELLCLICK
Definition: UnitDefines.h:344
@ UNIT_NPC_FLAG_TRANSMOGRIFIER
Definition: UnitDefines.h:348
@ UNIT_NPC_FLAG_BLACK_MARKET
Definition: UnitDefines.h:351
@ UNIT_NPC_FLAG_MAILBOX
Definition: UnitDefines.h:346
@ UNIT_NPC_FLAG_PLAYER_VEHICLE
Definition: UnitDefines.h:345
@ UNIT_NPC_FLAG_FLIGHTMASTER
Definition: UnitDefines.h:333
@ UNIT_NPC_FLAG_TRAINER_CLASS
Definition: UnitDefines.h:325
@ UNIT_NPC_FLAG_VAULTKEEPER
Definition: UnitDefines.h:349
@ UNIT_NPC_FLAG_TRAINER_PROFESSION
Definition: UnitDefines.h:326
@ UNIT_NPC_FLAG_REPAIR
Definition: UnitDefines.h:332
@ UNIT_NPC_FLAG_TRAINER
Definition: UnitDefines.h:324
@ UNIT_NPC_FLAG_PETITIONER
Definition: UnitDefines.h:338
@ UNIT_NPC_FLAG_WILD_BATTLE_PET
Definition: UnitDefines.h:350
DamageEffectType
Definition: UnitDefines.h:154
@ SELF_DAMAGE
Definition: UnitDefines.h:160
@ DIRECT_DAMAGE
Definition: UnitDefines.h:155
@ NODAMAGE
Definition: UnitDefines.h:159
@ DOT
Definition: UnitDefines.h:157
@ SPELL_DIRECT_DAMAGE
Definition: UnitDefines.h:156
@ HEAL
Definition: UnitDefines.h:158
UnitFlags3
Definition: UnitDefines.h:268
@ UNIT_FLAG3_UI_CAN_GET_POSITION
Definition: UnitDefines.h:273
@ UNIT_FLAG3_UNK28
Definition: UnitDefines.h:297
@ UNIT_FLAG3_SUPPRESS_ALL_NPC_SOUNDS
Definition: UnitDefines.h:287
@ UNIT_FLAG3_ALLOWED
Definition: UnitDefines.h:310
@ UNIT_FLAG3_UNK29
Definition: UnitDefines.h:298
@ UNIT_FLAG3_UNK11
Definition: UnitDefines.h:280
@ UNIT_FLAG3_SUPPRESS_NPC_FEEDBACK
Definition: UnitDefines.h:278
@ UNIT_FLAG3_UNCONSCIOUS_ON_DEATH
Definition: UnitDefines.h:270
@ UNIT_FLAG3_UNK26
Definition: UnitDefines.h:295
@ UNIT_FLAG3_AI_OBSTACLE
Definition: UnitDefines.h:274
@ UNIT_FLAG3_FAKE_DEAD
Definition: UnitDefines.h:282
@ UNIT_FLAG3_DISALLOWED
Definition: UnitDefines.h:302
@ UNIT_FLAG3_UNK10
Definition: UnitDefines.h:279
@ UNIT_FLAG3_UNK0
Definition: UnitDefines.h:269
@ UNIT_FLAG3_UNTARGETABLE_FROM_UI
Definition: UnitDefines.h:284
@ UNIT_FLAG3_UNK23
Definition: UnitDefines.h:292
@ UNIT_FLAG3_UNK12
Definition: UnitDefines.h:281
@ UNIT_FLAG3_UNK27
Definition: UnitDefines.h:296
@ UNIT_FLAG3_NO_FACING_ON_INTERACT_WHILE_FAKE_DEAD
Definition: UnitDefines.h:285
@ UNIT_FLAG3_NO_FACING_ON_INTERACT_AND_FAST_FACING_CHASE
Definition: UnitDefines.h:283
@ UNIT_FLAG3_FORCE_HIDE_NAMEPLATE
Definition: UnitDefines.h:293
@ UNIT_FLAG3_ALTERNATIVE_DEFAULT_LANGUAGE
Definition: UnitDefines.h:275
@ UNIT_FLAG3_UNK30
Definition: UnitDefines.h:299
@ UNIT_FLAG3_GARRISON_PET
Definition: UnitDefines.h:272
@ UNIT_FLAG3_UNK21
Definition: UnitDefines.h:290
@ UNIT_FLAG3_ALREADY_SKINNED
Definition: UnitDefines.h:286
@ UNIT_FLAG3_IGNORE_COMBAT
Definition: UnitDefines.h:277
@ UNIT_FLAG3_ALLOW_INTERACTION_WHILE_IN_COMBAT
Definition: UnitDefines.h:289
@ UNIT_FLAG3_ALLOW_MOUNTED_COMBAT
Definition: UnitDefines.h:271
@ UNIT_FLAG3_UNK25
Definition: UnitDefines.h:294
@ UNIT_FLAG3_DONT_FADE_OUT
Definition: UnitDefines.h:291
@ UNIT_FLAG3_SUPPRESS_ALL_NPC_FEEDBACK
Definition: UnitDefines.h:276
@ UNIT_FLAG3_UNK31
Definition: UnitDefines.h:300
@ UNIT_FLAG3_SUPPRESS_NPC_SOUNDS
Definition: UnitDefines.h:288
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:469
@ MOVEMENTFLAG3_ADV_FLYING
Definition: UnitDefines.h:473
@ MOVEMENTFLAG3_CANT_SWIM
Definition: UnitDefines.h:474
@ MOVEMENTFLAG3_DISABLE_INERTIA
Definition: UnitDefines.h:471
@ MOVEMENTFLAG3_CAN_ADV_FLY
Definition: UnitDefines.h:472
@ MOVEMENTFLAG3_NONE
Definition: UnitDefines.h:470
NPCFlags2
Definition: UnitDefines.h:361
@ UNIT_NPC_FLAG_2_GARRISON_ARCHITECT
Definition: UnitDefines.h:364
@ UNIT_NPC_FLAG_2_STEERING
Definition: UnitDefines.h:365
@ UNIT_NPC_FLAG_2_BLACK_MARKET_VIEW
Definition: UnitDefines.h:370
@ UNIT_NPC_FLAG_2_CONTRIBUTION_COLLECTOR
Definition: UnitDefines.h:372
@ UNIT_NPC_FLAG_2_GARRISON_TALENT_NPC
Definition: UnitDefines.h:371
@ UNIT_NPC_FLAG_2_ITEM_UPGRADE_MASTER
Definition: UnitDefines.h:363
@ UNIT_NPC_FLAG_2_AZERITE_RESPEC
Definition: UnitDefines.h:374
@ UNIT_NPC_FLAG_2_PERSONAL_TABARD_DESIGNER
Definition: UnitDefines.h:377
@ UNIT_NPC_FLAG_2_NONE
Definition: UnitDefines.h:362
@ UNIT_NPC_FLAG_2_TRADESKILL_NPC
Definition: UnitDefines.h:369
@ UNIT_NPC_FLAG_2_ISLANDS_QUEUE
Definition: UnitDefines.h:375
@ UNIT_NPC_FLAG_2_FAST_STEERING_AVOIDS_OBSTACLES
Definition: UnitDefines.h:373
@ UNIT_NPC_FLAG_2_AREA_SPIRIT_HEALER_INDIVIDUAL
Definition: UnitDefines.h:366
@ UNIT_NPC_FLAG_2_SHIPMENT_CRAFTER
Definition: UnitDefines.h:367
@ UNIT_NPC_FLAG_2_SUPPRESS_NPC_SOUNDS_EXCEPT_END_OF_INTERACTION
Definition: UnitDefines.h:376
@ UNIT_NPC_FLAG_2_GARRISON_MISSION_NPC
Definition: UnitDefines.h:368
char const * DescribeReactState(ReactStates state)
Definition: UnitDefines.h:543
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:556
@ COMMAND_ATTACK
Definition: UnitDefines.h:559
@ COMMAND_MOVE_TO
Definition: UnitDefines.h:561
@ COMMAND_ABANDON
Definition: UnitDefines.h:560
@ COMMAND_STAY
Definition: UnitDefines.h:557
@ COMMAND_FOLLOW
Definition: UnitDefines.h:558
UnitFlags
Definition: UnitDefines.h:166
@ UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT
Definition: UnitDefines.h:196
@ UNIT_FLAG_STUNNED
Definition: UnitDefines.h:185
@ UNIT_FLAG_PVP_ENABLING
Definition: UnitDefines.h:179
@ UNIT_FLAG_NON_ATTACKABLE
Definition: UnitDefines.h:168
@ UNIT_FLAG_UNK_6
Definition: UnitDefines.h:173
@ UNIT_FLAG_IN_COMBAT
Definition: UnitDefines.h:186
@ UNIT_FLAG_PREPARATION
Definition: UnitDefines.h:172
@ UNIT_FLAG_NON_ATTACKABLE_2
Definition: UnitDefines.h:183
@ UNIT_FLAG_IMMUNE_TO_NPC
Definition: UnitDefines.h:176
@ UNIT_FLAG_ON_TAXI
Definition: UnitDefines.h:187
@ UNIT_FLAG_ALLOWED
Definition: UnitDefines.h:208
@ UNIT_FLAG_POSSESSED
Definition: UnitDefines.h:191
@ UNIT_FLAG_IMMUNE
Definition: UnitDefines.h:198
@ UNIT_FLAG_SERVER_CONTROLLED
Definition: UnitDefines.h:167
@ UNIT_FLAG_DISARMED
Definition: UnitDefines.h:188
@ UNIT_FLAG_PACIFIED
Definition: UnitDefines.h:184
@ UNIT_FLAG_CAN_SWIM
Definition: UnitDefines.h:182
@ UNIT_FLAG_REMOVE_CLIENT_CONTROL
Definition: UnitDefines.h:169
@ UNIT_FLAG_CONFUSED
Definition: UnitDefines.h:189
@ UNIT_FLAG_FLEEING
Definition: UnitDefines.h:190
@ UNIT_FLAG_CANT_SWIM
Definition: UnitDefines.h:181
@ UNIT_FLAG_RENAME
Definition: UnitDefines.h:171
@ UNIT_FLAG_LOOTING
Definition: UnitDefines.h:177
@ UNIT_FLAG_UNINTERACTIBLE
Definition: UnitDefines.h:192
@ UNIT_FLAG_IMMUNE_TO_PC
Definition: UnitDefines.h:175
@ UNIT_FLAG_NOT_ATTACKABLE_1
Definition: UnitDefines.h:174
@ UNIT_FLAG_PLAYER_CONTROLLED
Definition: UnitDefines.h:170
@ UNIT_FLAG_DISALLOWED
Definition: UnitDefines.h:200
@ UNIT_FLAG_FORCE_NAMEPLATE
Definition: UnitDefines.h:180
@ UNIT_FLAG_SKINNABLE
Definition: UnitDefines.h:193
@ UNIT_FLAG_MOUNT
Definition: UnitDefines.h:194
@ UNIT_FLAG_PET_IN_COMBAT
Definition: UnitDefines.h:178
@ UNIT_FLAG_UNK_28
Definition: UnitDefines.h:195
@ UNIT_FLAG_SHEATHE
Definition: UnitDefines.h:197
Definition: Object.h:111
DeclinedName()=default