diff options
-rw-r--r-- | src/server/game/Entities/Creature/Creature.h | 224 |
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 |