aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Creature/Creature.h224
1 files changed, 224 insertions, 0 deletions
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index a1f56317bd1..363ffb6c38d 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -36,6 +36,230 @@ class Player;
class SpellInfo;
class WorldSession;
+enum CreatureDifficultyFlags
+{
+ CREATURE_DIFFICULTYFLAGS_UNK1 = 0x00000001, // Related to mounts
+ CREATURE_DIFFICULTYFLAGS_NO_EXPERIENCE = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_NO_LOOT = 0x00000004,
+ CREATURE_DIFFICULTYFLAGS_UNKILLABLE = 0x00000008,
+ CREATURE_DIFFICULTYFLAGS_TAMEABLE = 0x00000010, // CREATURE_TYPEFLAGS_TAMEABLE
+ CREATURE_DIFFICULTYFLAGS_IMMUNE_TO_PC = 0x00000020, // UNIT_FLAG_IMMUNE_TO_PC
+ CREATURE_DIFFICULTYFLAGS_IMMUNE_TO_NPC = 0x00000040, // UNIT_FLAG_IMMUNE_TO_NPC
+ CREATURE_DIFFICULTYFLAGS_UNK2 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_SESSILE = 0x00000100, // Creature is rooted
+ CREATURE_DIFFICULTYFLAGS_NOT_SELECTABLE = 0x00000200, // UNIT_FLAG_NOT_SELECTABLE
+ CREATURE_DIFFICULTYFLAGS_UNK3 = 0x00000400, // Related to health - it seems similar to CREATURE_DIFFICULTYFLAGS_2_KEEP_HEALTH_POINTS_AT_RESET
+ CREATURE_DIFFICULTYFLAGS_UNK4 = 0x00000800,
+ CREATURE_DIFFICULTYFLAGS_UNK5 = 0x00001000,
+ CREATURE_DIFFICULTYFLAGS_UNK6 = 0x00002000,
+ CREATURE_DIFFICULTYFLAGS_UNK7 = 0x00004000,
+ CREATURE_DIFFICULTYFLAGS_UNK8 = 0x00008000,
+ CREATURE_DIFFICULTYFLAGS_BOSS = 0x00010000, // CREATURE_TYPEFLAGS_BOSS
+ CREATURE_DIFFICULTYFLAGS_UNK9 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_WATER_BOUND = 0x00040000,
+ CREATURE_DIFFICULTYFLAGS_CAN_PENETRATE_WATER = 0x00080000,
+ CREATURE_DIFFICULTYFLAGS_UNK10 = 0x00100000,
+ CREATURE_DIFFICULTYFLAGS_GHOST = 0x00200000, // CREATURE_TYPEFLAGS_GHOST
+ CREATURE_DIFFICULTYFLAGS_UNK11 = 0x00400000,
+ CREATURE_DIFFICULTYFLAGS_DO_NOT_PLAY_WOUND_PARRY_ANIMATION = 0x00800000, // CREATURE_TYPEFLAGS_DO_NOT_PLAY_WOUND_PARRY_ANIMATION
+ CREATURE_DIFFICULTYFLAGS_HIDE_FACTION_TOOLTIP = 0x01000000, // CREATURE_TYPEFLAGS_HIDE_FACTION_TOOLTIP
+ CREATURE_DIFFICULTYFLAGS_IGNORE_COMBAT = 0x02000000,
+ CREATURE_DIFFICULTYFLAGS_UNK12 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_SUMMON_GUARD_IF_IN_AGGRO_RANGE = 0x08000000, // Creature will summon a guard if player is within its aggro range (even if creature doesn't attack per se)
+ CREATURE_DIFFICULTYFLAGS_ONLY_SWIM = 0x10000000, // UNIT_FLAG_UNK_15
+ CREATURE_DIFFICULTYFLAGS_UNK13 = 0x20000000, // Related to gravity
+ CREATURE_DIFFICULTYFLAGS_TFLAG_UNK5 = 0x40000000, // CREATURE_TYPEFLAGS_UNK5
+ CREATURE_DIFFICULTYFLAGS_LARGE_AOI = 0x80000000 // UnitFlags2 0x200000
+};
+
+enum CreatureDifficultyFlags2
+{
+ CREATURE_DIFFICULTYFLAGS_2_UNK1 = 0x00000001,
+ CREATURE_DIFFICULTYFLAGS_2_FORCE_PARTY_MEMBERS_INTO_COMBAT = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_2_UNK2 = 0x00000004,
+ CREATURE_DIFFICULTYFLAGS_2_SPELL_ATTACKABLE = 0x00000008, // CREATURE_TYPEFLAGS_SPELL_ATTACKABLE
+ CREATURE_DIFFICULTYFLAGS_2_UNK3 = 0x00000010,
+ CREATURE_DIFFICULTYFLAGS_2_UNK4 = 0x00000020,
+ CREATURE_DIFFICULTYFLAGS_2_UNK5 = 0x00000040,
+ CREATURE_DIFFICULTYFLAGS_2_UNK6 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_2_UNK7 = 0x00000100,
+ CREATURE_DIFFICULTYFLAGS_2_UNK8 = 0x00000200,
+ CREATURE_DIFFICULTYFLAGS_2_UNK9 = 0x00000400,
+ CREATURE_DIFFICULTYFLAGS_2_DEAD_INTERACT = 0x00000800, // CREATURE_TYPEFLAGS_DEAD_INTERACT
+ CREATURE_DIFFICULTYFLAGS_2_UNK10 = 0x00001000,
+ CREATURE_DIFFICULTYFLAGS_2_UNK11 = 0x00002000,
+ CREATURE_DIFFICULTYFLAGS_2_HERBLOOT = 0x00004000, // CREATURE_TYPEFLAGS_HERBLOOT
+ CREATURE_DIFFICULTYFLAGS_2_MININGLOOT = 0x00008000, // CREATURE_TYPEFLAGS_MININGLOOT
+ CREATURE_DIFFICULTYFLAGS_2_DONT_LOG_DEATH = 0x00010000, // CREATURE_TYPEFLAGS_DONT_LOG_DEATH
+ CREATURE_DIFFICULTYFLAGS_2_UNK12 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_2_MOUNTED_COMBAT = 0x00040000, // CREATURE_TYPEFLAGS_MOUNTED_COMBAT
+ CREATURE_DIFFICULTYFLAGS_2_UNK13 = 0x00080000,
+ CREATURE_DIFFICULTYFLAGS_2_UNK14 = 0x00100000, // This flag seems similar to CREATURE_DIFFICULTYFLAGS_IGNORE_COMBAT
+ CREATURE_DIFFICULTYFLAGS_2_UNK15 = 0x00200000,
+ CREATURE_DIFFICULTYFLAGS_2_UNK16 = 0x00400000,
+ CREATURE_DIFFICULTYFLAGS_2_UNK17 = 0x00800000,
+ CREATURE_DIFFICULTYFLAGS_2_UNK18 = 0x01000000,
+ CREATURE_DIFFICULTYFLAGS_2_HIDE_BODY = 0x02000000, // UNIT_FLAG2_UNK1
+ CREATURE_DIFFICULTYFLAGS_2_UNK19 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_2_SERVER_ONLY = 0x08000000,
+ CREATURE_DIFFICULTYFLAGS_2_CAN_SAFE_FALL = 0x10000000,
+ CREATURE_DIFFICULTYFLAGS_2_CAN_ASSIST = 0x20000000, // CREATURE_TYPEFLAGS_CAN_ASSIST
+ CREATURE_DIFFICULTYFLAGS_2_KEEP_HEALTH_POINTS_AT_RESET = 0x40000000,
+ CREATURE_DIFFICULTYFLAGS_2_IS_PET_BAR_USED = 0x80000000 // CREATURE_TYPEFLAGS_IS_PET_BAR_USED
+};
+
+enum CreatureDifficultyFlags3
+{
+ CREATURE_DIFFICULTYFLAGS_3_UNK1 = 0x00000001,
+ CREATURE_DIFFICULTYFLAGS_3_UNK2 = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_3_INSTANTLY_APPEAR_MODEL = 0x00000004, // UNIT_FLAG2_INSTANTLY_APPEAR_MODEL
+ CREATURE_DIFFICULTYFLAGS_3_MASK_UID = 0x00000008, // CREATURE_TYPEFLAG_MASK_UID
+ CREATURE_DIFFICULTYFLAGS_3_ENGINEERLOOT = 0x00000010, // CREATURE_TYPEFLAGS_ENGINEERLOOT
+ CREATURE_DIFFICULTYFLAGS_3_UNK3 = 0x00000020,
+ CREATURE_DIFFICULTYFLAGS_3_UNK4 = 0x00000040,
+ CREATURE_DIFFICULTYFLAGS_3_UNK5 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_3_CANNOT_SWIM = 0x00000100, // UNIT_FLAG_UNK_14
+ CREATURE_DIFFICULTYFLAGS_3_EXOTIC = 0x00000200, // CREATURE_TYPEFLAGS_EXOTIC
+ CREATURE_DIFFICULTYFLAGS_3_GIGANTIC_AOI = 0x00000400, // Since MoP, creatures with that flag have UnitFlags2 0x400000
+ CREATURE_DIFFICULTYFLAGS_3_INFINITE_AOI = 0x00000800, // Since MoP, creatures with that flag have UnitFlags2 0x40000000
+ CREATURE_DIFFICULTYFLAGS_3_WATERWALKING = 0x00001000,
+ CREATURE_DIFFICULTYFLAGS_3_HIDE_NAMEPLATE = 0x00002000, // CREATURE_TYPEFLAGS_HIDE_NAMEPLATE
+ CREATURE_DIFFICULTYFLAGS_3_UNK6 = 0x00004000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK7 = 0x00008000,
+ CREATURE_DIFFICULTYFLAGS_3_USE_DEFAULT_COLLISION_BOX = 0x00010000, // CREATURE_TYPEFLAGS_USE_DEFAULT_COLLISION_BOX
+ CREATURE_DIFFICULTYFLAGS_3_UNK8 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_3_IS_SIEGE_WEAPON = 0x00040000, // CREATURE_TYPEFLAGS_IS_SIEGE_WEAPON
+ CREATURE_DIFFICULTYFLAGS_3_UNK9 = 0x00080000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK10 = 0x00100000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK11 = 0x00200000,
+ CREATURE_DIFFICULTYFLAGS_3_PROJECTILE_COLLISION = 0x00400000, // CREATURE_TYPEFLAGS_PROJECTILE_COLLISION
+ CREATURE_DIFFICULTYFLAGS_3_CAN_BE_MULTITAPPED = 0x00800000,
+ CREATURE_DIFFICULTYFLAGS_3_DO_NOT_PLAY_MOUNTED_ANIMATIONS = 0x01000000, // CREATURE_TYPEFLAGS_DO_NOT_PLAY_MOUNTED_ANIMATIONS
+ CREATURE_DIFFICULTYFLAGS_3_DISABLE_TURN = 0x02000000, // UNIT_FLAG2_DISABLE_TURN
+ CREATURE_DIFFICULTYFLAGS_3_UNK12 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK13 = 0x08000000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK14 = 0x10000000,
+ CREATURE_DIFFICULTYFLAGS_3_IS_LINK_ALL = 0x20000000, // CREATURE_TYPEFLAGS_IS_LINK_ALL
+ CREATURE_DIFFICULTYFLAGS_3_UNK15 = 0x40000000,
+ CREATURE_DIFFICULTYFLAGS_3_UNK16 = 0x80000000
+};
+
+enum CreatureDifficultyFlags4
+{
+ CREATURE_DIFFICULTYFLAGS_4_HAS_NO_BIRTH_ANIMATION = 0x00000001, // SMSG_UPDATE_OBJECT's "NoBirthAnim"
+ CREATURE_DIFFICULTYFLAGS_4_UNK1 = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_4_UNK2 = 0x00000004,
+ CREATURE_DIFFICULTYFLAGS_4_INTERACT_ONLY_WITH_CREATOR = 0x00000008, // CREATURE_TYPEFLAGS_INTERACT_ONLY_WITH_CREATOR
+ CREATURE_DIFFICULTYFLAGS_4_DO_NOT_PLAY_UNIT_EVENT_SOUNDS = 0x00000010, // CREATURE_TYPEFLAGS_DO_NOT_PLAY_UNIT_EVENT_SOUNDS
+ CREATURE_DIFFICULTYFLAGS_4_HAS_NO_SHADOW_BLOB = 0x00000020, // CREATURE_TYPEFLAGS_HAS_NO_SHADOW_BLOB
+ CREATURE_DIFFICULTYFLAGS_4_UNK3 = 0x00000040,
+ CREATURE_DIFFICULTYFLAGS_4_UNK4 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_4_UNK5 = 0x00000100,
+ CREATURE_DIFFICULTYFLAGS_4_UNK6 = 0x00000200,
+ CREATURE_DIFFICULTYFLAGS_4_UNK7 = 0x00000400,
+ CREATURE_DIFFICULTYFLAGS_4_UNK8 = 0x00000800,
+ CREATURE_DIFFICULTYFLAGS_4_UNK9 = 0x00001000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK10 = 0x00002000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK11 = 0x00004000,
+ CREATURE_DIFFICULTYFLAGS_4_UFLAG2_UNK20 = 0x00008000, // UnitFlags2 0x100000
+ CREATURE_DIFFICULTYFLAGS_4_UNK12 = 0x00010000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK13 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK14 = 0x00040000,
+ CREATURE_DIFFICULTYFLAGS_4_FORCE_GOSSIP = 0x00080000, // CREATURE_TYPEFLAGS_FORCE_GOSSIP
+ CREATURE_DIFFICULTYFLAGS_4_UNK15 = 0x00100000,
+ CREATURE_DIFFICULTYFLAGS_4_DO_NOT_SHEATHE = 0x00200000, // CREATURE_TYPEFLAGS_DO_NOT_SHEATHE
+ CREATURE_DIFFICULTYFLAGS_4_IGNORE_SPELL_MIN_RANGE_RESTRICTIONS = 0x00400000, // UnitFlags2 0x8000000
+ CREATURE_DIFFICULTYFLAGS_4_UNK16 = 0x00800000,
+ CREATURE_DIFFICULTYFLAGS_4_PREVENT_SWIM = 0x01000000, // UnitFlags2 0x1000000
+ CREATURE_DIFFICULTYFLAGS_4_HIDE_IN_COMBAT_LOG = 0x02000000, // UnitFlags2 0x2000000
+ CREATURE_DIFFICULTYFLAGS_4_UNK17 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK18 = 0x08000000,
+ CREATURE_DIFFICULTYFLAGS_4_UNK19 = 0x10000000,
+ CREATURE_DIFFICULTYFLAGS_4_DO_NOT_TARGET_ON_INTERACTION = 0x20000000, // CREATURE_TYPEFLAGS_DO_NOT_TARGET_ON_INTERACTION
+ CREATURE_DIFFICULTYFLAGS_4_DO_NOT_RENDER_OBJECT_NAME = 0x40000000, // CREATURE_TYPEFLAGS_DO_NOT_RENDER_OBJECT_NAME
+ CREATURE_DIFFICULTYFLAGS_4_UNIT_IS_QUEST_BOSS = 0x80000000 // CREATURE_TYPEFLAGS_UNIT_IS_QUEST_BOSS
+};
+
+enum CreatureDifficultyFlags5
+{
+ CREATURE_DIFFICULTYFLAGS_5_CANNOT_SWITCH_TARGETS = 0x00000001, // UnitFlags2 0x4000000
+ CREATURE_DIFFICULTYFLAGS_5_UNK1 = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_5_UFLAG2_UNK30 = 0x00000004, // UnitFlags2 0x10000000
+ CREATURE_DIFFICULTYFLAGS_5_UNK2 = 0x00000008,
+ CREATURE_DIFFICULTYFLAGS_5_UNK3 = 0x00000010,
+ CREATURE_DIFFICULTYFLAGS_5_UNK4 = 0x00000020,
+ CREATURE_DIFFICULTYFLAGS_5_UNK5 = 0x00000040,
+ CREATURE_DIFFICULTYFLAGS_5_UNK6 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_5_CAN_INTERACT_EVEN_IF_HOSTILE = 0x00000100, // UNIT_FLAG2_ALLOW_ENEMY_INTERACT
+ CREATURE_DIFFICULTYFLAGS_5_UNK7 = 0x00000200,
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK1 = 0x00000400, // CREATURE_TYPEFLAGS_2_UNK1
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK2 = 0x00000800, // CREATURE_TYPEFLAGS_2_UNK2
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK3 = 0x00001000, // CREATURE_TYPEFLAGS_2_UNK3
+ CREATURE_DIFFICULTYFLAGS_5_UFLAG2_UNK19 = 0x00002000, // UnitFlags2 0x80000
+ CREATURE_DIFFICULTYFLAGS_5_UNK8 = 0x00004000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK9 = 0x00008000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK10 = 0x00010000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK11 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK12 = 0x00040000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK13 = 0x00080000,
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK4 = 0x00100000, // CREATURE_TYPEFLAGS_2_UNK4
+ CREATURE_DIFFICULTYFLAGS_5_UNK14 = 0x00200000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK15 = 0x00400000,
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK5 = 0x00800000, // CREATURE_TYPEFLAGS_2_UNK5
+ CREATURE_DIFFICULTYFLAGS_5_UNK16 = 0x01000000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK17 = 0x02000000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK18 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK19 = 0x08000000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK20 = 0x10000000,
+ CREATURE_DIFFICULTYFLAGS_5_UNK21 = 0x20000000,
+ CREATURE_DIFFICULTYFLAGS_5_TFLAG2_UNK6 = 0x40000000, // CREATURE_TYPEFLAGS_2_UNK6
+ CREATURE_DIFFICULTYFLAGS_5_UNK22 = 0x80000000
+};
+
+enum CreatureDifficultyFlags6
+{
+ CREATURE_DIFFICULTYFLAGS_6_UNK1 = 0x00000001,
+ CREATURE_DIFFICULTYFLAGS_6_UNK2 = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_6_UNK3 = 0x00000004,
+ CREATURE_DIFFICULTYFLAGS_6_UNK4 = 0x00000008,
+ CREATURE_DIFFICULTYFLAGS_6_UNK5 = 0x00000010,
+ CREATURE_DIFFICULTYFLAGS_6_UNK6 = 0x00000020,
+ CREATURE_DIFFICULTYFLAGS_6_UNK7 = 0x00000040,
+ CREATURE_DIFFICULTYFLAGS_6_TFLAG2_UNK7 = 0x00000080,
+ CREATURE_DIFFICULTYFLAGS_6_UNK8 = 0x00000100,
+ CREATURE_DIFFICULTYFLAGS_6_UNK9 = 0x00000200,
+ CREATURE_DIFFICULTYFLAGS_6_UNK10 = 0x00000400,
+ CREATURE_DIFFICULTYFLAGS_6_UNK11 = 0x00000800,
+ CREATURE_DIFFICULTYFLAGS_6_UNK12 = 0x00001000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK13 = 0x00002000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK14 = 0x00004000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK15 = 0x00008000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK16 = 0x00010000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK17 = 0x00020000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK18 = 0x00040000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK19 = 0x00080000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK20 = 0x00100000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK21 = 0x00200000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK22 = 0x00400000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK23 = 0x00800000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK24 = 0x01000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK25 = 0x02000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK26 = 0x04000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK27 = 0x08000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK28 = 0x10000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK29 = 0x20000000,
+ CREATURE_DIFFICULTYFLAGS_6_UNK30 = 0x40000000,
+ CREATURE_DIFFICULTYFLAGS_6_TFLAG2_UNK14 = 0x80000000
+};
+
+enum CreatureDifficultyFlags7
+{
+ CREATURE_DIFFICULTYFLAGS_7_TFLAG2_UNK15 = 0x00000001,
+ CREATURE_DIFFICULTYFLAGS_7_TFLAG2_UNK16 = 0x00000002,
+ CREATURE_DIFFICULTYFLAGS_7_TFLAG2_UNK17 = 0x00000004,
+ CREATURE_DIFFICULTYFLAGS_7_UNK1 = 0x00000008
+};
+
enum CreatureFlagsExtra
{
CREATURE_FLAG_EXTRA_INSTANCE_BIND = 0x00000001, // creature kill bind instance with killer and killer's group