diff options
author | Treeston <treeston.mmoc@gmail.com> | 2018-12-11 14:38:12 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-11-16 19:52:57 +0100 |
commit | 5b45253f57684720e479952ec02f59f4b8a57381 (patch) | |
tree | 9d54b6e4484a456752df4fa690e75b12adc01b1d | |
parent | 3f656e07798c35c7606496f1d92a2c2429f0a94a (diff) |
Core/Misc: Explicit typing for SpellAttrN enums, add nicer text to UNKs, and restore some relevant info from old comments. Final one of these.
(cherry picked from commit 3acba6dded14afdf84f2ab51ca3b6cec92bdb092)
-rw-r--r-- | src/server/game/Miscellaneous/SharedDefines.h | 626 | ||||
-rw-r--r-- | src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp | 590 |
2 files changed, 608 insertions, 608 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h index 7e2adc7083f..4ffbbf36085 100644 --- a/src/server/game/Miscellaneous/SharedDefines.h +++ b/src/server/game/Miscellaneous/SharedDefines.h @@ -395,9 +395,9 @@ uint32 constexpr QuestDifficultyColors[MAX_QUEST_DIFFICULTY] = // *********************************** // EnumUtils: DESCRIBE THIS -enum SpellAttr0 +enum SpellAttr0 : uint32 { - SPELL_ATTR0_UNK0 = 0x00000001, + SPELL_ATTR0_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr0 SPELL_ATTR0_REQ_AMMO = 0x00000002, // TITLE Treat as ranged attack DESCRIPTION Use ammo, ranged attack range modifiers, ranged haste, etc. SPELL_ATTR0_ON_NEXT_SWING = 0x00000004, // TITLE On next melee (type 1) DESCRIPTION Both "on next swing" attributes have identical handling in server & client SPELL_ATTR0_IS_REPLENISHMENT = 0x00000008, // TITLE Replenishment (client only) @@ -408,7 +408,7 @@ enum SpellAttr0 SPELL_ATTR0_HIDE_IN_COMBAT_LOG = 0x00000100, // TITLE Hidden in combat log (client only) DESCRIPTION Spell will not appear in combat logs SPELL_ATTR0_TARGET_MAINHAND_ITEM = 0x00000200, // TITLE Auto-target mainhand item (client only) DESCRIPTION Client will automatically select main-hand item as cast target SPELL_ATTR0_ON_NEXT_SWING_2 = 0x00000400, // TITLE On next melee (type 2) DESCRIPTION Both "on next swing" attributes have identical handling in server & client - SPELL_ATTR0_UNK11 = 0x00000800, + SPELL_ATTR0_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr0 SPELL_ATTR0_DAYTIME_ONLY = 0x00001000, // TITLE Only usable during daytime (unused) SPELL_ATTR0_NIGHT_ONLY = 0x00002000, // TITLE Only usable during nighttime (unused) SPELL_ATTR0_INDOORS_ONLY = 0x00004000, // TITLE Only usable indoors @@ -432,13 +432,13 @@ enum SpellAttr0 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr1 +enum SpellAttr1 : uint32 { SPELL_ATTR1_DISMISS_PET = 0x00000001, // TITLE Dismiss Pet on cast DESCRIPTION Without this attribute, summoning spells will fail if caster already has a pet SPELL_ATTR1_DRAIN_ALL_POWER = 0x00000002, // TITLE Drain all power DESCRIPTION Ignores listed power cost and drains entire pool instead SPELL_ATTR1_CHANNELED_1 = 0x00000004, // TITLE Channeled (type 1) DESCRIPTION Both "channeled" attributes have identical handling in server & client SPELL_ATTR1_CANT_BE_REDIRECTED = 0x00000008, // TITLE Ignore redirection effects DESCRIPTION Spell will not be attracted by SPELL_MAGNET auras (Grounding Totem) - SPELL_ATTR1_UNK4 = 0x00000010, + SPELL_ATTR1_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr1 SPELL_ATTR1_NOT_BREAK_STEALTH = 0x00000020, // TITLE Does not break stealth SPELL_ATTR1_CHANNELED_2 = 0x00000040, // TITLE Channeled (type 2) DESCRIPTION Both "channeled" attributes have identical handling in server & client SPELL_ATTR1_CANT_BE_REFLECTED = 0x00000080, // TITLE Ignore reflection effects DESCRIPTION Spell will pierce through Spell Reflection and similar @@ -452,53 +452,53 @@ enum SpellAttr1 SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY = 0x00008000, // TITLE Immunity cancels preapplied auras DESCRIPTION For immunity spells, cancel all auras that this spell would make you immune to when the spell is applied SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE = 0x00010000, // TITLE Unaffected by school immunities DESCRIPTION Will not pierce Divine Shield, Ice Block and other full invulnerabilities SPELL_ATTR1_UNAUTOCASTABLE_BY_PET = 0x00020000, // TITLE Cannot be autocast by pet - SPELL_ATTR1_UNK18 = 0x00040000, + SPELL_ATTR1_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr1 DESCRIPTION Stun, Polymorph, Daze, Hex - CC? SPELL_ATTR1_CANT_TARGET_SELF = 0x00080000, // TITLE Cannot be self-cast SPELL_ATTR1_REQ_COMBO_POINTS1 = 0x00100000, // TITLE Requires combo points (type 1) - SPELL_ATTR1_UNK21 = 0x00200000, + SPELL_ATTR1_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr1 SPELL_ATTR1_REQ_COMBO_POINTS2 = 0x00400000, // TITLE Requires combo points (type 2) - SPELL_ATTR1_UNK23 = 0x00800000, + SPELL_ATTR1_UNK23 = 0x00800000, // TITLE Unknwon attribute 23@Attr1 SPELL_ATTR1_IS_FISHING = 0x01000000, // TITLE Fishing (client only) - SPELL_ATTR1_UNK25 = 0x02000000, - SPELL_ATTR1_UNK26 = 0x04000000, - SPELL_ATTR1_UNK27 = 0x08000000, + SPELL_ATTR1_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr1 + SPELL_ATTR1_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr1 DESCRIPTION Related to [target=focus] and [target=mouseover] macros? + SPELL_ATTR1_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr1 DESCRIPTION Melee spell? SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR = 0x10000000, // TITLE Hide in aura bar (client only) SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME = 0x20000000, // TITLE Show spell name during channel (client only) SPELL_ATTR1_ENABLE_AT_DODGE = 0x40000000, // TITLE Enable at dodge - SPELL_ATTR1_UNK31 = 0x80000000 + SPELL_ATTR1_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr1 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr2 +enum SpellAttr2 : uint32 { SPELL_ATTR2_CAN_TARGET_DEAD = 0x00000001, // TITLE Can target dead players or corpses - SPELL_ATTR2_UNK1 = 0x00000002, + SPELL_ATTR2_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr2 SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS = 0x00000004, // TITLE Ignore Line of Sight SPELL_ATTR2_UNK3 = 0x00000008, // TITLE Ignore aura scaling SPELL_ATTR2_DISPLAY_IN_STANCE_BAR = 0x00000010, // TITLE Show in stance bar (client only) SPELL_ATTR2_AUTOREPEAT_FLAG = 0x00000020, // TITLE Ranged auto-attack spell SPELL_ATTR2_CANT_TARGET_TAPPED = 0x00000040, // TITLE Cannot target others' tapped units DESCRIPTION Can only target untapped units, or those tapped by caster - SPELL_ATTR2_UNK7 = 0x00000080, - SPELL_ATTR2_UNK8 = 0x00000100, - SPELL_ATTR2_UNK9 = 0x00000200, - SPELL_ATTR2_UNK10 = 0x00000400, + SPELL_ATTR2_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr2 + SPELL_ATTR2_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr2 + SPELL_ATTR2_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr2 + SPELL_ATTR2_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr2 DESCRIPTION Related to taming? SPELL_ATTR2_HEALTH_FUNNEL = 0x00000800, // TITLE Health Funnel - SPELL_ATTR2_UNK12 = 0x00001000, + SPELL_ATTR2_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr2 SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA = 0x00002000, // TITLE Enchant persists when entering arena - SPELL_ATTR2_UNK14 = 0x00004000, - SPELL_ATTR2_UNK15 = 0x00008000, + SPELL_ATTR2_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr2 + SPELL_ATTR2_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr2 SPELL_ATTR2_TAME_BEAST = 0x00010000, // TITLE Tame Beast SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS = 0x00020000, // TITLE Don't reset swing timer DESCRIPTION Does not reset melee/ranged autoattack timer on cast SPELL_ATTR2_REQ_DEAD_PET = 0x00040000, // TITLE Requires dead pet SPELL_ATTR2_NOT_NEED_SHAPESHIFT = 0x00080000, // TITLE Also allow outside shapeshift DESCRIPTION Even if Stances are nonzero, allow spell to be cast outside of shapeshift (though not in a different shapeshift) - SPELL_ATTR2_UNK20 = 0x00100000, - SPELL_ATTR2_DAMAGE_REDUCED_SHIELD = 0x00200000, - SPELL_ATTR2_UNK22 = 0x00400000, + SPELL_ATTR2_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr2 + SPELL_ATTR2_DAMAGE_REDUCED_SHIELD = 0x00200000, // TITLE Damage reduction ability DESCRIPTION Causes BG flags to be dropped if combined with ATTR1_DISPEL_AURAS_ON_IMMUNITY + SPELL_ATTR2_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr2 SPELL_ATTR2_IS_ARCANE_CONCENTRATION = 0x00800000, // TITLE Arcane Concentration - SPELL_ATTR2_UNK24 = 0x01000000, - SPELL_ATTR2_UNK25 = 0x02000000, + SPELL_ATTR2_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr2 + SPELL_ATTR2_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr2 SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE = 0x04000000, // TITLE Pierce aura application immunities DESCRIPTION Allow aura to be applied despite target being immune to new aura applications - SPELL_ATTR2_UNK27 = 0x08000000, + SPELL_ATTR2_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr2 SPELL_ATTR2_IGNORE_ACTION_AURA_INTERRUPT_FLAGS= 0x10000000,// TITLE Not an Action SPELL_ATTR2_CANT_CRIT = 0x20000000, // TITLE Cannot critically strike SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC = 0x40000000, // TITLE Allow triggered spell to trigger procs DESCRIPTION Without this attribute, any triggered spell will be unable to trigger other auras' procs @@ -506,15 +506,15 @@ enum SpellAttr2 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr3 +enum SpellAttr3 : uint32 { - SPELL_ATTR3_UNK0 = 0x00000001, // + SPELL_ATTR3_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr3 SPELL_ATTR3_NO_PROC_EQUIP_REQUIREMENT = 0x00000002, // TITLE No Proc Equip Requirement DESCRIPTION Ignores subclass mask check when checking proc - SPELL_ATTR3_UNK2 = 0x00000004, + SPELL_ATTR3_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr3 SPELL_ATTR3_BLOCKABLE_SPELL = 0x00000008, // TITLE Blockable spell SPELL_ATTR3_IGNORE_RESURRECTION_TIMER = 0x00000010, // TITLE Ignore resurrection timer - SPELL_ATTR3_UNK5 = 0x00000020, - SPELL_ATTR3_UNK6 = 0x00000040, + SPELL_ATTR3_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr3 + SPELL_ATTR3_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr3 SPELL_ATTR3_STACK_FOR_DIFF_CASTERS = 0x00000080, // TITLE Stack separately for each caster SPELL_ATTR3_ONLY_TARGET_PLAYERS = 0x00000100, // TITLE Can only target players SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2 = 0x00000200, // TITLE Allow triggered spell to trigger (type 2) DESCRIPTION Without this attribute, any triggered spell will be unable to trigger other auras' procs @@ -523,430 +523,430 @@ enum SpellAttr3 SPELL_ATTR3_ONLY_TARGET_GHOSTS = 0x00001000, // TITLE Can only target ghost players SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR = 0x00002000, // TITLE Do not display channel bar (client only) SPELL_ATTR3_IS_HONORLESS_TARGET = 0x00004000, // TITLE Honorless Target - SPELL_ATTR3_UNK15 = 0x00008000, + SPELL_ATTR3_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr3 DESCRIPTION Auto Shoot, Shoot, Throw - ranged normal attack attribute? SPELL_ATTR3_CANT_TRIGGER_PROC = 0x00010000, // TITLE Cannot trigger procs SPELL_ATTR3_NO_INITIAL_AGGRO = 0x00020000, // TITLE No initial aggro SPELL_ATTR3_IGNORE_HIT_RESULT = 0x00040000, // TITLE Ignore hit result DESCRIPTION Spell cannot miss, or be dodged/parried/blocked SPELL_ATTR3_DISABLE_PROC = 0x00080000, // TITLE Cannot trigger spells during aura proc SPELL_ATTR3_DEATH_PERSISTENT = 0x00100000, // TITLE Persists through death - SPELL_ATTR3_UNK21 = 0x00200000, + SPELL_ATTR3_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr3 SPELL_ATTR3_REQ_WAND = 0x00400000, // TITLE Requires equipped Wand - SPELL_ATTR3_UNK23 = 0x00800000, + SPELL_ATTR3_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr3 SPELL_ATTR3_REQ_OFFHAND = 0x01000000, // TITLE Requires offhand weapon SPELL_ATTR3_TREAT_AS_PERIODIC = 0x02000000, // TITLE Treat as periodic effect SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED = 0x04000000, // TITLE Can trigger from triggered spells SPELL_ATTR3_DRAIN_SOUL = 0x08000000, // TITLE Drain Soul - SPELL_ATTR3_UNK28 = 0x10000000, + SPELL_ATTR3_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr3 SPELL_ATTR3_NO_DONE_BONUS = 0x20000000, // TITLE Damage dealt is unaffected by modifiers SPELL_ATTR3_DONT_DISPLAY_RANGE = 0x40000000, // TITLE Do not show range in tooltip (client only) - SPELL_ATTR3_UNK31 = 0x80000000 + SPELL_ATTR3_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr3 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr4 +enum SpellAttr4 : uint32 { SPELL_ATTR4_IGNORE_RESISTANCES = 0x00000001, // TITLE Cannot be resisted SPELL_ATTR4_PROC_ONLY_ON_CASTER = 0x00000002, // TITLE Only proc on self-cast SPELL_ATTR4_AURA_EXPIRES_OFFLINE = 0x00000004, // TITLE Aura Expires Offline DESCRIPTION Debuffs (except Resurrection Sickness) will automatically do this - SPELL_ATTR4_UNK3 = 0x00000008, + SPELL_ATTR4_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr4 SPELL_ATTR4_UNK4 = 0x00000010, // TITLE Treat as delayed spell - SPELL_ATTR4_UNK5 = 0x00000020, + SPELL_ATTR4_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr4 SPELL_ATTR4_NOT_STEALABLE = 0x00000040, // TITLE Aura cannot be stolen SPELL_ATTR4_CAN_CAST_WHILE_CASTING = 0x00000080, // TITLE Can be cast while casting DESCRIPTION Ignores already in-progress cast and still casts SPELL_ATTR4_FIXED_DAMAGE = 0x00000100, // TITLE Deals fixed damage SPELL_ATTR4_TRIGGER_ACTIVATE = 0x00000200, // TITLE Spell is initially disabled (client only) SPELL_ATTR4_SPELL_VS_EXTEND_COST = 0x00000400, // TITLE Attack speed modifies cost DESCRIPTION Adds 10 to power cost for each 1s of weapon speed - SPELL_ATTR4_UNK11 = 0x00000800, - SPELL_ATTR4_UNK12 = 0x00001000, + SPELL_ATTR4_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr4 + SPELL_ATTR4_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr4 SPELL_ATTR4_COMBAT_LOG_NO_CASTER = 0x00002000, // TITLE Do Not Log Caster SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS = 0x00004000, // TITLE Damage does not break auras SPELL_ATTR4_HIDDEN_IN_SPELLBOOK = 0x00008000, // TITLE Not In Spellbook SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG = 0x00010000, // TITLE Not In Arena or Rated Battleground DESCRIPTION Makes spell unusable despite CD <= 10min SPELL_ATTR4_USABLE_IN_ARENA = 0x00020000, // TITLE Usable in arena DESCRIPTION Makes spell usable despite CD > 10min SPELL_ATTR4_AREA_TARGET_CHAIN = 0x00040000, // TITLE Chain area targets DESCRIPTION [NYI] Hits area targets over time instead of all at once - SPELL_ATTR4_UNK19 = 0x00080000, + SPELL_ATTR4_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr4 SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER = 0x00100000, // TITLE Allow self-cast to override stronger aura (client only) SPELL_ATTR4_DONT_REMOVE_IN_ARENA = 0x00200000, // TITLE Allow Entering Arena - SPELL_ATTR4_UNK22 = 0x00400000, + SPELL_ATTR4_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr4 SPELL_ATTR4_SUPPRESS_WEAPON_PROCS = 0x00800000, // TITLE Suppress Weapon Procs - SPELL_ATTR4_UNK24 = 0x01000000, + SPELL_ATTR4_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr4 DESCRIPTION Shoot-type spell? SPELL_ATTR4_IS_PET_SCALING = 0x02000000, // TITLE Pet Scaling aura SPELL_ATTR4_CAST_ONLY_IN_OUTLAND = 0x04000000, // TITLE Only in Outland/Northrend - SPELL_ATTR4_UNK27 = 0x08000000, - SPELL_ATTR4_UNK28 = 0x10000000, - SPELL_ATTR4_UNK29 = 0x20000000, - SPELL_ATTR4_UNK30 = 0x40000000, - SPELL_ATTR4_UNK31 = 0x80000000 + SPELL_ATTR4_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr4 + SPELL_ATTR4_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr4 + SPELL_ATTR4_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr4 + SPELL_ATTR4_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr4 + SPELL_ATTR4_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr4 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr5 +enum SpellAttr5 : uint32 { SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING = 0x00000001, // TITLE Can be channeled while moving SPELL_ATTR5_NO_REAGENT_WHILE_PREP = 0x00000002, // TITLE No reagents during arena preparation SPELL_ATTR5_REMOVE_ENTERING_ARENA = 0x00000004, // TITLE Remove Entering Arena DESCRIPTION Force this aura to be removed on entering arena, regardless of other properties SPELL_ATTR5_USABLE_WHILE_STUNNED = 0x00000008, // TITLE Usable while stunned - SPELL_ATTR5_UNK4 = 0x00000010, + SPELL_ATTR5_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr5 SPELL_ATTR5_SINGLE_TARGET_SPELL = 0x00000020, // TITLE Single-target aura DESCRIPTION Remove previous application to another unit if applied - SPELL_ATTR5_UNK6 = 0x00000040, - SPELL_ATTR5_UNK7 = 0x00000080, + SPELL_ATTR5_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr5 + SPELL_ATTR5_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr5 SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED = 0x00000100, // TITLE Not On Player Controlled NPC SPELL_ATTR5_START_PERIODIC_AT_APPLY = 0x00000200, // TITLE Immediately do periodic tick on apply SPELL_ATTR5_HIDE_DURATION = 0x00000400, // TITLE Do not send aura duration to client SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET = 0x00000800, // TITLE Auto-target target of target (client only) - SPELL_ATTR5_UNK12 = 0x00001000, + SPELL_ATTR5_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr5 DESCRIPTION Cleave related? SPELL_ATTR5_HASTE_AFFECT_DURATION = 0x00002000, // TITLE Duration scales with Haste Rating SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED = 0x00004000, // TITLE Not Available While Charmed - SPELL_ATTR5_UNK15 = 0x00008000, - SPELL_ATTR5_UNK16 = 0x00010000, + SPELL_ATTR5_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr5 DESCRIPTION Related to multi-target spells? + SPELL_ATTR5_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr5 SPELL_ATTR5_USABLE_WHILE_FEARED = 0x00020000, // TITLE Usable while feared SPELL_ATTR5_USABLE_WHILE_CONFUSED = 0x00040000, // TITLE Usable while confused SPELL_ATTR5_DONT_TURN_DURING_CAST = 0x00080000, // TITLE Do not auto-turn while casting - SPELL_ATTR5_UNK20 = 0x00100000, - SPELL_ATTR5_UNK21 = 0x00200000, - SPELL_ATTR5_UNK22 = 0x00400000, - SPELL_ATTR5_UNK23 = 0x00800000, - SPELL_ATTR5_UNK24 = 0x01000000, - SPELL_ATTR5_UNK25 = 0x02000000, + SPELL_ATTR5_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr5 + SPELL_ATTR5_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr5 + SPELL_ATTR5_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr5 + SPELL_ATTR5_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr5 + SPELL_ATTR5_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr5 + SPELL_ATTR5_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr5 SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT = 0x04000000, // TITLE Ignore line of sight checks SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST = 0x08000000, // TITLE Don't show aura if self-cast (client only) SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST = 0x10000000, // TITLE Don't show aura unless self-cast (client only) - SPELL_ATTR5_UNK29 = 0x20000000, - SPELL_ATTR5_UNK30 = 0x40000000, - SPELL_ATTR5_UNK31 = 0x80000000 + SPELL_ATTR5_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr5 + SPELL_ATTR5_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr5 + SPELL_ATTR5_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr5 DESCRIPTION Forces nearby enemies to attack caster? }; // EnumUtils: DESCRIBE THIS -enum SpellAttr6 +enum SpellAttr6 : uint32 { SPELL_ATTR6_DONT_DISPLAY_COOLDOWN = 0x00000001, // TITLE Don't display cooldown (client only) SPELL_ATTR6_ONLY_IN_ARENA = 0x00000002, // TITLE Only usable in arena SPELL_ATTR6_IGNORE_CASTER_AURAS = 0x00000004, // TITLE Ignore all preventing caster auras SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG = 0x00000008, // TITLE Ignore immunity flags when assisting - SPELL_ATTR6_UNK4 = 0x00000010, + SPELL_ATTR6_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr6 SPELL_ATTR6_DO_NOT_CONSUME_RESOURCES = 0x00000020, // TITLE Don't consume proc charges SPELL_ATTR6_USE_SPELL_CAST_EVENT = 0x00000040, // TITLE Generate spell_cast event instead of aura_start (client only) - SPELL_ATTR6_UNK7 = 0x00000080, + SPELL_ATTR6_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr6 SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED = 0x00000100, // TITLE Do not implicitly target in CC DESCRIPTION Implicit targeting (chaining and area targeting) will not impact crowd controlled targets - SPELL_ATTR6_UNK9 = 0x00000200, + SPELL_ATTR6_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr6 SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS = 0x00000400, // TITLE Can target possessed friends DESCRIPTION [NYI] SPELL_ATTR6_NOT_IN_RAID_INSTANCE = 0x00000800, // TITLE Unusable in raid instances SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE = 0x00001000, // TITLE Castable while caster is on vehicle SPELL_ATTR6_CAN_TARGET_INVISIBLE = 0x00002000, // TITLE Can target invisible units - SPELL_ATTR6_UNK14 = 0x00004000, - SPELL_ATTR6_UNK15 = 0x00008000, - SPELL_ATTR6_UNK16 = 0x00010000, - SPELL_ATTR6_UNK17 = 0x00020000, + SPELL_ATTR6_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr6 + SPELL_ATTR6_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr6 + SPELL_ATTR6_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr6 + SPELL_ATTR6_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr6 DESCRIPTION Mount related? SPELL_ATTR6_CAST_BY_CHARMER = 0x00040000, // TITLE Spell is cast by charmer DESCRIPTION Client will prevent casting if not possessed, charmer will be caster for all intents and purposes - SPELL_ATTR6_UNK19 = 0x00080000, + SPELL_ATTR6_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr6 SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER = 0x00100000, // TITLE Only visible to caster (client only) SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS = 0x00200000, // TITLE Client UI target effects (client only) - SPELL_ATTR6_UNK22 = 0x00400000, - SPELL_ATTR6_UNK23 = 0x00800000, + SPELL_ATTR6_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr6 + SPELL_ATTR6_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr6 SPELL_ATTR6_CAN_TARGET_UNTARGETABLE = 0x01000000, // TITLE Can target untargetable units SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT = 0x02000000, // TITLE Do not reset swing timer if cast time is instant - SPELL_ATTR6_UNK26 = 0x04000000, + SPELL_ATTR6_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr6 DESCRIPTION Player castable buff? SPELL_ATTR6_IGNORE_HEALING_MODIFIERS = 0x08000000, // TITLE Limit applicable %healing modifiers DESCRIPTION This prevents certain healing modifiers from applying - see implementation if you really care about details - SPELL_ATTR6_UNK28 = 0x10000000, + SPELL_ATTR6_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr6 DESCRIPTION Death grip? SPELL_ATTR6_IGNORE_CASTER_DAMAGE_MODIFIERS = 0x20000000, // TITLE Limit applicable %damage modifiers DESCRIPTION This prevents certain damage modifiers from applying - see implementation if you really care about details - SPELL_ATTR6_UNK30 = 0x40000000, + SPELL_ATTR6_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr6 SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS = 0x80000000 // TITLE Ignore cooldown modifiers for category cooldown }; // EnumUtils: DESCRIBE THIS -enum SpellAttr7 +enum SpellAttr7 : uint32 { - SPELL_ATTR7_UNK0 = 0x00000001, + SPELL_ATTR7_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr7 SPELL_ATTR7_IGNORE_DURATION_MODS = 0x00000002, // TITLE Ignore duration modifiers SPELL_ATTR7_REACTIVATE_AT_RESURRECT = 0x00000004, // TITLE Reactivate at resurrect (client only) SPELL_ATTR7_IS_CHEAT_SPELL = 0x00000008, // TITLE Is cheat spell DESCRIPTION Cannot cast if caster doesn't have UnitFlag2 & UNIT_FLAG2_ALLOW_CHEAT_SPELLS - SPELL_ATTR7_UNK4 = 0x00000010, + SPELL_ATTR7_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr7 DESCRIPTION Soulstone related? SPELL_ATTR7_SUMMON_TOTEM = 0x00000020, // TITLE Summons player-owned totem SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE = 0x00000040, // TITLE Damage dealt by this does not cause spell pushback - SPELL_ATTR7_UNK7 = 0x00000080, + SPELL_ATTR7_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr7 SPELL_ATTR7_HORDE_ONLY = 0x00000100, // TITLE Horde only SPELL_ATTR7_ALLIANCE_ONLY = 0x00000200, // TITLE Alliance only SPELL_ATTR7_DISPEL_CHARGES = 0x00000400, // TITLE Dispel/Spellsteal remove individual charges - SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER = 0x00000800, // TITLE Only interrupt non-player casting - SPELL_ATTR7_SILENCE_ONLY_NONPLAYER = 0x00001000, + SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER = 0x00000800, // TITLE Can Cause Interrupt DESCRIPTION Only interrupt non-player casting + SPELL_ATTR7_SILENCE_ONLY_NONPLAYER = 0x00001000, // TITLE Can Cause Silence SPELL_ATTR7_CAN_ALWAYS_BE_INTERRUPTED = 0x00002000, // TITLE No UI Not Interruptible DESCRIPTION Can always be interrupted, even if caster is immune - SPELL_ATTR7_UNK14 = 0x00004000, - SPELL_ATTR7_UNK15 = 0x00008000, + SPELL_ATTR7_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr7 + SPELL_ATTR7_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr7 DESCRIPTION Exorcism - guaranteed crit vs families? SPELL_ATTR7_HIDDEN_IN_SPELLBOOK_WHEN_LEARNED = 0x00010000, // TITLE Only In Spellbook Until Learned DESCRIPTION After learning these spells become hidden in spellbook (but are visible when not learned for low level characters) - SPELL_ATTR7_UNK17 = 0x00020000, + SPELL_ATTR7_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr7 SPELL_ATTR7_HAS_CHARGE_EFFECT = 0x00040000, // TITLE Has charge effect SPELL_ATTR7_ZONE_TELEPORT = 0x00080000, // TITLE Is zone teleport - SPELL_ATTR7_UNK20 = 0x00100000, - SPELL_ATTR7_UNK21 = 0x00200000, - SPELL_ATTR7_UNK22 = 0x00400000, - SPELL_ATTR7_UNK23 = 0x00800000, - SPELL_ATTR7_UNK24 = 0x01000000, - SPELL_ATTR7_UNK25 = 0x02000000, - SPELL_ATTR7_UNK26 = 0x04000000, - SPELL_ATTR7_UNK27 = 0x08000000, + SPELL_ATTR7_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr7 DESCRIPTION Invulnerability related? + SPELL_ATTR7_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr7 + SPELL_ATTR7_IGNORES_COLD_WEATHER_FLYING_REQUIREMENT = 0x00400000, // TITLE Ignores Cold Weather Flying Requirement + SPELL_ATTR7_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr7 + SPELL_ATTR7_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr7 + SPELL_ATTR7_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr7 + SPELL_ATTR7_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr7 + SPELL_ATTR7_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr7 SPELL_ATTR7_CONSOLIDATED_RAID_BUFF = 0x10000000, // TITLE Consolidate in raid buff frame (client only) - SPELL_ATTR7_UNK29 = 0x20000000, - SPELL_ATTR7_UNK30 = 0x40000000, + SPELL_ATTR7_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr7 + SPELL_ATTR7_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr7 SPELL_ATTR7_CLIENT_INDICATOR = 0x80000000 // TITLE Client indicator (client only) }; // EnumUtils: DESCRIBE THIS -enum SpellAttr8 -{ - SPELL_ATTR8_CANT_MISS = 0x00000001, - SPELL_ATTR8_UNK1 = 0x00000002, - SPELL_ATTR8_UNK2 = 0x00000004, - SPELL_ATTR8_UNK3 = 0x00000008, - SPELL_ATTR8_UNK4 = 0x00000010, - SPELL_ATTR8_UNK5 = 0x00000020, - SPELL_ATTR8_UNK6 = 0x00000040, - SPELL_ATTR8_UNK7 = 0x00000080, - SPELL_ATTR8_AFFECT_PARTY_AND_RAID = 0x00000100, - SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER = 0x00000200, // Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping) - SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM = 0x00000400, - SPELL_ATTR8_UNK11 = 0x00000800, - SPELL_ATTR8_AURA_SEND_AMOUNT = 0x00001000, - SPELL_ATTR8_UNK13 = 0x00002000, - SPELL_ATTR8_UNK14 = 0x00004000, - SPELL_ATTR8_WATER_MOUNT = 0x00008000, - SPELL_ATTR8_UNK16 = 0x00010000, - SPELL_ATTR8_UNK17 = 0x00020000, - SPELL_ATTR8_REMEMBER_SPELLS = 0x00040000, - SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET = 0x00080000, - SPELL_ATTR8_ARMOR_SPECIALIZATION = 0x00100000, - SPELL_ATTR8_UNK21 = 0x00200000, - SPELL_ATTR8_UNK22 = 0x00400000, +enum SpellAttr8 : uint32 +{ + SPELL_ATTR8_CANT_MISS = 0x00000001, // TITLE No Attack Block + SPELL_ATTR8_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr8 + SPELL_ATTR8_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr8 + SPELL_ATTR8_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr8 + SPELL_ATTR8_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr8 + SPELL_ATTR8_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr8 + SPELL_ATTR8_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr8 + SPELL_ATTR8_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr8 + SPELL_ATTR8_AFFECT_PARTY_AND_RAID = 0x00000100, // TITLE Use Target's Level for Spell Scaling + SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER = 0x00000200, // TITLE Periodic Can Crit DESCRIPTION (WRONG) Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping) + SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM = 0x00000400, // TITLE Mirror creature name + SPELL_ATTR8_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr8 + SPELL_ATTR8_AURA_SEND_AMOUNT = 0x00001000, // TITLE Aura Points On Client + SPELL_ATTR8_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr8 + SPELL_ATTR8_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr8 + SPELL_ATTR8_WATER_MOUNT = 0x00008000, // TITLE Requires location to be on liquid surface + SPELL_ATTR8_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr8 + SPELL_ATTR8_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr8 + SPELL_ATTR8_REMEMBER_SPELLS = 0x00040000, // TTILE Ignore Spellcast Override Cost + SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET = 0x00080000, // TITLE Allow Targets Hidden by Spawn Tracking + SPELL_ATTR8_ARMOR_SPECIALIZATION = 0x00100000, // TITLE Requires Equipped Inv Types + SPELL_ATTR8_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr8 + SPELL_ATTR8_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr8 SPELL_ATTR8_BATTLE_RESURRECTION = 0x00800000, // TITLE Enforce In Combat Ressurection Limit DESCRIPTION Used to limit the number of resurrections in boss encounters - SPELL_ATTR8_HEALING_SPELL = 0x01000000, - SPELL_ATTR8_UNK25 = 0x02000000, + SPELL_ATTR8_HEALING_SPELL = 0x01000000, // TITLE Heal Prediction + SPELL_ATTR8_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr8 SPELL_ATTR8_RAID_MARKER = 0x04000000, // TITLE Skip Is Known Check - SPELL_ATTR8_UNK27 = 0x08000000, + SPELL_ATTR8_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr8 SPELL_ATTR8_NOT_IN_BG_OR_ARENA = 0x10000000, // TITLE Not in Battleground - SPELL_ATTR8_MASTERY_SPECIALIZATION = 0x20000000, - SPELL_ATTR8_UNK30 = 0x40000000, + SPELL_ATTR8_MASTERY_SPECIALIZATION = 0x20000000, // TITLE Mastery Affects Points + SPELL_ATTR8_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr8 SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG = 0x80000000 // TITLE Can Attack ImmunePC DESCRIPTION Do not check UNIT_FLAG_IMMUNE_TO_PC in IsValidAttackTarget }; // EnumUtils: DESCRIBE THIS -enum SpellAttr9 +enum SpellAttr9 : uint32 { - SPELL_ATTR9_UNK0 = 0x00000001, - SPELL_ATTR9_UNK1 = 0x00000002, + SPELL_ATTR9_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr9 + SPELL_ATTR9_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr9 SPELL_ATTR9_RESTRICTED_FLIGHT_AREA = 0x00000004, // TITLE Only When Illegally Mounted - SPELL_ATTR9_UNK3 = 0x00000008, - SPELL_ATTR9_SPECIAL_DELAY_CALCULATION = 0x00000010, - SPELL_ATTR9_SUMMON_PLAYER_TOTEM = 0x00000020, - SPELL_ATTR9_UNK6 = 0x00000040, - SPELL_ATTR9_UNK7 = 0x00000080, - SPELL_ATTR9_AIMED_SHOT = 0x00000100, + SPELL_ATTR9_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr9 + SPELL_ATTR9_SPECIAL_DELAY_CALCULATION = 0x00000010, // TITLE Missile Speed is Delay (in sec) + SPELL_ATTR9_SUMMON_PLAYER_TOTEM = 0x00000020, // TITLE Ignore Totem Requirements for Casting + SPELL_ATTR9_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr9 + SPELL_ATTR9_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr9 + SPELL_ATTR9_AIMED_SHOT = 0x00000100, // TITLE Cooldown Ignores Ranged Weapon SPELL_ATTR9_NOT_USABLE_IN_ARENA = 0x00000200, // TITLE Not In Arena - SPELL_ATTR9_UNK10 = 0x00000400, - SPELL_ATTR9_UNK11 = 0x00000800, - SPELL_ATTR9_UNK12 = 0x00001000, - SPELL_ATTR9_SLAM = 0x00002000, + SPELL_ATTR9_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr9 + SPELL_ATTR9_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr9 + SPELL_ATTR9_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr9 + SPELL_ATTR9_SLAM = 0x00002000, // TITLE Haste Affects Melee Ability Casttime SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS = 0x00004000, // TITLE Ignore Default Rated Battleground Restrictions - SPELL_ATTR9_UNK15 = 0x00008000, - SPELL_ATTR9_UNK16 = 0x00010000, - SPELL_ATTR9_UNK17 = 0x00020000, - SPELL_ATTR9_UNK18 = 0x00040000, - SPELL_ATTR9_UNK19 = 0x00080000, - SPELL_ATTR9_UNK20 = 0x00100000, - SPELL_ATTR9_UNK21 = 0x00200000, - SPELL_ATTR9_UNK22 = 0x00400000, - SPELL_ATTR9_UNK23 = 0x00800000, - SPELL_ATTR9_UNK24 = 0x01000000, - SPELL_ATTR9_UNK25 = 0x02000000, - SPELL_ATTR9_UNK26 = 0x04000000, - SPELL_ATTR9_UNK27 = 0x08000000, - SPELL_ATTR9_UNK28 = 0x10000000, - SPELL_ATTR9_UNK29 = 0x20000000, - SPELL_ATTR9_UNK30 = 0x40000000, - SPELL_ATTR9_UNK31 = 0x80000000 + SPELL_ATTR9_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr9 + SPELL_ATTR9_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr9 + SPELL_ATTR9_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr9 + SPELL_ATTR9_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr9 + SPELL_ATTR9_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr9 + SPELL_ATTR9_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr9 + SPELL_ATTR9_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr9 + SPELL_ATTR9_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr9 + SPELL_ATTR9_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr9 + SPELL_ATTR9_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr9 + SPELL_ATTR9_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr9 + SPELL_ATTR9_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr9 + SPELL_ATTR9_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr9 + SPELL_ATTR9_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr9 + SPELL_ATTR9_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr9 + SPELL_ATTR9_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr9 + SPELL_ATTR9_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr9 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr10 -{ - SPELL_ATTR10_UNK0 = 0x00000001, - SPELL_ATTR10_UNK1 = 0x00000002, - SPELL_ATTR10_UNK2 = 0x00000004, - SPELL_ATTR10_UNK3 = 0x00000008, - SPELL_ATTR10_WATER_SPOUT = 0x00000010, - SPELL_ATTR10_UNK5 = 0x00000020, - SPELL_ATTR10_UNK6 = 0x00000040, - SPELL_ATTR10_TELEPORT_PLAYER = 0x00000080, - SPELL_ATTR10_UNK8 = 0x00000100, - SPELL_ATTR10_UNK9 = 0x00000200, - SPELL_ATTR10_UNK10 = 0x00000400, - SPELL_ATTR10_HERB_GATHERING_MINING = 0x00000800, +enum SpellAttr10 : uint32 +{ + SPELL_ATTR10_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr10 + SPELL_ATTR10_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr10 + SPELL_ATTR10_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr10 + SPELL_ATTR10_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr10 + SPELL_ATTR10_WATER_SPOUT = 0x00000010, // TITLE NPC Knockback - ignore doors + SPELL_ATTR10_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr10 + SPELL_ATTR10_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr10 + SPELL_ATTR10_TELEPORT_PLAYER = 0x00000080, // TITLE Ignore instance lock and farm limit on teleport + SPELL_ATTR10_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr10 + SPELL_ATTR10_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr10 + SPELL_ATTR10_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr10 + SPELL_ATTR10_HERB_GATHERING_MINING = 0x00000800, // TITLE Lock chest at precast SPELL_ATTR10_USE_SPELL_BASE_LEVEL_FOR_SCALING= 0x00001000, // TITLE Use Spell Base Level For Scaling SPELL_ATTR10_RESET_COOLDOWN_ON_ENCOUNTER_END = 0x00002000, // TITLE Reset cooldown upon ending an encounter SPELL_ATTR10_ROLLING_PERIODIC = 0x00004000, // TITLE Rolling Periodic DESCRIPTION Add remaining periodic damage to new aura when refreshed - SPELL_ATTR10_UNK15 = 0x00008000, - SPELL_ATTR10_UNK16 = 0x00010000, + SPELL_ATTR10_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr10 + SPELL_ATTR10_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr10 SPELL_ATTR10_CAN_DODGE_PARRY_WHILE_CASTING = 0x00020000, // TITLE Allow Defense While Casting - SPELL_ATTR10_UNK18 = 0x00040000, - SPELL_ATTR10_UNK19 = 0x00080000, - SPELL_ATTR10_UNK20 = 0x00100000, - SPELL_ATTR10_UNK21 = 0x00200000, - SPELL_ATTR10_UNK22 = 0x00400000, - SPELL_ATTR10_UNK23 = 0x00800000, - SPELL_ATTR10_UNK24 = 0x01000000, - SPELL_ATTR10_UNK25 = 0x02000000, - SPELL_ATTR10_UNK26 = 0x04000000, - SPELL_ATTR10_UNK27 = 0x08000000, - SPELL_ATTR10_UNK28 = 0x10000000, + SPELL_ATTR10_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr10 + SPELL_ATTR10_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr10 + SPELL_ATTR10_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr10 + SPELL_ATTR10_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr10 + SPELL_ATTR10_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr10 + SPELL_ATTR10_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr10 + SPELL_ATTR10_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr10 + SPELL_ATTR10_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr10 + SPELL_ATTR10_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr10 + SPELL_ATTR10_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr10 + SPELL_ATTR10_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr10 SPELL_ATTR10_MOUNT_IS_NOT_ACCOUNT_WIDE = 0x20000000, // TITLE This Mount is NOT at the account level - SPELL_ATTR10_UNK30 = 0x40000000, - SPELL_ATTR10_UNK31 = 0x80000000 + SPELL_ATTR10_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr10 + SPELL_ATTR10_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr10 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr11 +enum SpellAttr11 : uint32 { - SPELL_ATTR11_UNK0 = 0x00000001, - SPELL_ATTR11_UNK1 = 0x00000002, + SPELL_ATTR11_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr11 + SPELL_ATTR11_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr11 SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL = 0x00000004, // TITLE Scales with Casting Item's Level - SPELL_ATTR11_UNK3 = 0x00000008, - SPELL_ATTR11_UNK4 = 0x00000010, + SPELL_ATTR11_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr11 + SPELL_ATTR11_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr11 SPELL_ATTR11_ABSORB_ENVIRONMENTAL_DAMAGE = 0x00000020, // TITLE Absorb Falling Damage - SPELL_ATTR11_UNK6 = 0x00000040, + SPELL_ATTR11_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr11 SPELL_ATTR11_RANK_IGNORES_CASTER_LEVEL = 0x00000080, // TITLE Ignore Caster's spell level DESCRIPTION Spell_C_GetSpellRank returns SpellLevels->MaxLevel * 5 instead of std::min(SpellLevels->MaxLevel, caster->Level) * 5 - SPELL_ATTR11_UNK8 = 0x00000100, - SPELL_ATTR11_UNK9 = 0x00000200, - SPELL_ATTR11_UNK10 = 0x00000400, + SPELL_ATTR11_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr11 + SPELL_ATTR11_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr11 + SPELL_ATTR11_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr11 SPELL_ATTR11_NOT_USABLE_IN_INSTANCES = 0x00000800, // TITLE Not in Instances - SPELL_ATTR11_UNK12 = 0x00001000, - SPELL_ATTR11_UNK13 = 0x00002000, - SPELL_ATTR11_UNK14 = 0x00004000, - SPELL_ATTR11_UNK15 = 0x00008000, + SPELL_ATTR11_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr11 + SPELL_ATTR11_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr11 + SPELL_ATTR11_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr11 + SPELL_ATTR11_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr11 SPELL_ATTR11_NOT_USABLE_IN_CHALLENGE_MODE = 0x00010000, // TITLE Not in Mythic+ Mode (Challenge Mode) - SPELL_ATTR11_UNK17 = 0x00020000, - SPELL_ATTR11_UNK18 = 0x00040000, - SPELL_ATTR11_UNK19 = 0x00080000, - SPELL_ATTR11_UNK20 = 0x00100000, - SPELL_ATTR11_UNK21 = 0x00200000, - SPELL_ATTR11_UNK22 = 0x00400000, - SPELL_ATTR11_UNK23 = 0x00800000, - SPELL_ATTR11_UNK24 = 0x01000000, - SPELL_ATTR11_UNK25 = 0x02000000, - SPELL_ATTR11_UNK26 = 0x04000000, - SPELL_ATTR11_UNK27 = 0x08000000, - SPELL_ATTR11_UNK28 = 0x10000000, - SPELL_ATTR11_UNK29 = 0x20000000, - SPELL_ATTR11_UNK30 = 0x40000000, - SPELL_ATTR11_UNK31 = 0x80000000 + SPELL_ATTR11_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr11 + SPELL_ATTR11_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr11 + SPELL_ATTR11_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr11 + SPELL_ATTR11_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr11 + SPELL_ATTR11_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr11 + SPELL_ATTR11_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr11 + SPELL_ATTR11_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr11 + SPELL_ATTR11_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr11 + SPELL_ATTR11_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr11 + SPELL_ATTR11_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr11 + SPELL_ATTR11_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr11 + SPELL_ATTR11_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr11 + SPELL_ATTR11_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr11 + SPELL_ATTR11_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr11 + SPELL_ATTR11_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr11 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr12 -{ - SPELL_ATTR12_UNK0 = 0x00000001, - SPELL_ATTR12_UNK1 = 0x00000002, - SPELL_ATTR12_UNK2 = 0x00000004, - SPELL_ATTR12_UNK3 = 0x00000008, - SPELL_ATTR12_UNK4 = 0x00000010, - SPELL_ATTR12_UNK5 = 0x00000020, - SPELL_ATTR12_UNK6 = 0x00000040, - SPELL_ATTR12_UNK7 = 0x00000080, - SPELL_ATTR12_UNK8 = 0x00000100, +enum SpellAttr12 : uint32 +{ + SPELL_ATTR12_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr12 + SPELL_ATTR12_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr12 + SPELL_ATTR12_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr12 + SPELL_ATTR12_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr12 + SPELL_ATTR12_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr12 + SPELL_ATTR12_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr12 + SPELL_ATTR12_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr12 + SPELL_ATTR12_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr12 + SPELL_ATTR12_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr12 SPELL_ATTR12_IGNORE_CASTING_DISABLED = 0x00000200, // TITLE Active Passive DESCRIPTION Ignores aura 263 SPELL_AURA_DISABLE_CASTING_EXCEPT_ABILITIES - SPELL_ATTR12_UNK10 = 0x00000400, - SPELL_ATTR12_UNK11 = 0x00000800, - SPELL_ATTR12_UNK12 = 0x00001000, - SPELL_ATTR12_UNK13 = 0x00002000, - SPELL_ATTR12_UNK14 = 0x00004000, - SPELL_ATTR12_UNK15 = 0x00008000, - SPELL_ATTR12_UNK16 = 0x00010000, - SPELL_ATTR12_UNK17 = 0x00020000, - SPELL_ATTR12_UNK18 = 0x00040000, - SPELL_ATTR12_UNK19 = 0x00080000, - SPELL_ATTR12_UNK20 = 0x00100000, - SPELL_ATTR12_UNK21 = 0x00200000, - SPELL_ATTR12_UNK22 = 0x00400000, + SPELL_ATTR12_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr12 + SPELL_ATTR12_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr12 + SPELL_ATTR12_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr12 + SPELL_ATTR12_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr12 + SPELL_ATTR12_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr12 + SPELL_ATTR12_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr12 + SPELL_ATTR12_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr12 + SPELL_ATTR12_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr12 + SPELL_ATTR12_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr12 + SPELL_ATTR12_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr12 + SPELL_ATTR12_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr12 + SPELL_ATTR12_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr12 + SPELL_ATTR12_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr12 SPELL_ATTR12_START_COOLDOWN_ON_CAST_START = 0x00800000, // TITLE Trigger Cooldown On Spell Start - SPELL_ATTR12_IS_GARRISON_BUFF = 0x01000000, - SPELL_ATTR12_UNK25 = 0x02000000, - SPELL_ATTR12_UNK26 = 0x04000000, - SPELL_ATTR12_IS_READINESS_SPELL = 0x08000000, - SPELL_ATTR12_UNK28 = 0x10000000, - SPELL_ATTR12_UNK29 = 0x20000000, - SPELL_ATTR12_UNK30 = 0x40000000, - SPELL_ATTR12_UNK31 = 0x80000000 + SPELL_ATTR12_IS_GARRISON_BUFF = 0x01000000, // TITLE Never Learn + SPELL_ATTR12_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr12 + SPELL_ATTR12_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr12 + SPELL_ATTR12_IS_READINESS_SPELL = 0x08000000, // TITLE Recompute Aura on Mercenary Mode + SPELL_ATTR12_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr12 + SPELL_ATTR12_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr12 + SPELL_ATTR12_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr12 + SPELL_ATTR12_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr12 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr13 -{ - SPELL_ATTR13_UNK0 = 0x00000001, - SPELL_ATTR13_UNK1 = 0x00000002, - SPELL_ATTR13_PASSIVE_IS_UPGRADE = 0x00000004, // 2 Displays "Upgrade" in spell tooltip instead of "Passive" - SPELL_ATTR13_UNK3 = 0x00000008, - SPELL_ATTR13_UNK4 = 0x00000010, - SPELL_ATTR13_UNK5 = 0x00000020, - SPELL_ATTR13_UNK6 = 0x00000040, - SPELL_ATTR13_UNK7 = 0x00000080, - SPELL_ATTR13_UNK8 = 0x00000100, - SPELL_ATTR13_UNK9 = 0x00000200, - SPELL_ATTR13_UNK10 = 0x00000400, - SPELL_ATTR13_UNK11 = 0x00000800, - SPELL_ATTR13_UNK12 = 0x00001000, - SPELL_ATTR13_UNK13 = 0x00002000, - SPELL_ATTR13_UNK14 = 0x00004000, - SPELL_ATTR13_UNK15 = 0x00008000, - SPELL_ATTR13_UNK16 = 0x00010000, - SPELL_ATTR13_UNK17 = 0x00020000, - SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT = 0x00040000, - SPELL_ATTR13_UNK19 = 0x00080000, - SPELL_ATTR13_UNK20 = 0x00100000, - SPELL_ATTR13_UNK21 = 0x00200000, - SPELL_ATTR13_UNK22 = 0x00400000, - SPELL_ATTR13_UNK23 = 0x00800000, - SPELL_ATTR13_UNK24 = 0x01000000, - SPELL_ATTR13_UNK25 = 0x02000000, - SPELL_ATTR13_UNK26 = 0x04000000, - SPELL_ATTR13_UNK27 = 0x08000000, - SPELL_ATTR13_UNK28 = 0x10000000, - SPELL_ATTR13_UNK29 = 0x20000000, - SPELL_ATTR13_UNK30 = 0x40000000, - SPELL_ATTR13_UNK31 = 0x80000000 +enum SpellAttr13 : uint32 +{ + SPELL_ATTR13_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr13 + SPELL_ATTR13_UNK1 = 0x00000002, // TITLE Unknown attribute 0@Attr13 + SPELL_ATTR13_PASSIVE_IS_UPGRADE = 0x00000004, // TITLE Is Upgrade DESCRIPTION Displays "Upgrade" in spell tooltip instead of "Passive" + SPELL_ATTR13_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr13 + SPELL_ATTR13_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr13 + SPELL_ATTR13_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr13 + SPELL_ATTR13_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr13 + SPELL_ATTR13_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr13 + SPELL_ATTR13_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr13 + SPELL_ATTR13_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr13 + SPELL_ATTR13_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr13 + SPELL_ATTR13_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr13 + SPELL_ATTR13_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr13 + SPELL_ATTR13_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr13 + SPELL_ATTR13_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr13 + SPELL_ATTR13_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr13 + SPELL_ATTR13_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr13 + SPELL_ATTR13_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr13 + SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT = 0x00040000, // TITLE Do Not Enforce Shapeshift Requirements + SPELL_ATTR13_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr13 + SPELL_ATTR13_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr13 + SPELL_ATTR13_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr13 + SPELL_ATTR13_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr13 + SPELL_ATTR13_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr13 + SPELL_ATTR13_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr13 + SPELL_ATTR13_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr13 + SPELL_ATTR13_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr13 + SPELL_ATTR13_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr13 + SPELL_ATTR13_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr13 + SPELL_ATTR13_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr13 + SPELL_ATTR13_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr13 + SPELL_ATTR13_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr13 }; // EnumUtils: DESCRIBE THIS -enum SpellAttr14 +enum SpellAttr14 : uint32 { - SPELL_ATTR14_UNK0 = 0x00000001, + SPELL_ATTR14_UNK0 = 0x00000001, // TITLE Unknown attribute 0@Attr14 SPELL_ATTR14_REAGENT_COST_CONSUMES_CHARGES = 0x00000002, // TITLE Reagent Consume Charges DESCRIPTION Consumes item charges for reagent costs instead of whole items - SPELL_ATTR14_UNK2 = 0x00000004, + SPELL_ATTR14_UNK2 = 0x00000004, // TITLE Unknown attribute 2@Attr14 SPELL_ATTR14_HIDE_PASSIVE_FROM_TOOLTIP = 0x00000008, // TITLE Don't show "Passive" or "Upgrade" in tooltip - SPELL_ATTR14_UNK4 = 0x00000010, - SPELL_ATTR14_UNK5 = 0x00000020, - SPELL_ATTR14_UNK6 = 0x00000040, - SPELL_ATTR14_UNK7 = 0x00000080, - SPELL_ATTR14_UNK8 = 0x00000100, - SPELL_ATTR14_UNK9 = 0x00000200, - SPELL_ATTR14_UNK10 = 0x00000400, - SPELL_ATTR14_UNK11 = 0x00000800, - SPELL_ATTR14_UNK12 = 0x00001000, - SPELL_ATTR14_UNK13 = 0x00002000, - SPELL_ATTR14_UNK14 = 0x00004000, - SPELL_ATTR14_UNK15 = 0x00008000, - SPELL_ATTR14_UNK16 = 0x00010000, - SPELL_ATTR14_UNK17 = 0x00020000, - SPELL_ATTR14_UNK18 = 0x00040000, - SPELL_ATTR14_UNK19 = 0x00080000, - SPELL_ATTR14_UNK20 = 0x00100000, - SPELL_ATTR14_UNK21 = 0x00200000, - SPELL_ATTR14_UNK22 = 0x00400000, - SPELL_ATTR14_UNK23 = 0x00800000, - SPELL_ATTR14_UNK24 = 0x01000000, - SPELL_ATTR14_UNK25 = 0x02000000, - SPELL_ATTR14_UNK26 = 0x04000000, - SPELL_ATTR14_UNK27 = 0x08000000, - SPELL_ATTR14_UNK28 = 0x10000000, - SPELL_ATTR14_UNK29 = 0x20000000, - SPELL_ATTR14_UNK30 = 0x40000000, - SPELL_ATTR14_UNK31 = 0x80000000 + SPELL_ATTR14_UNK4 = 0x00000010, // TITLE Unknown attribute 4@Attr14 + SPELL_ATTR14_UNK5 = 0x00000020, // TITLE Unknown attribute 5@Attr14 + SPELL_ATTR14_UNK6 = 0x00000040, // TITLE Unknown attribute 6@Attr14 + SPELL_ATTR14_UNK7 = 0x00000080, // TITLE Unknown attribute 7@Attr14 + SPELL_ATTR14_UNK8 = 0x00000100, // TITLE Unknown attribute 8@Attr14 + SPELL_ATTR14_UNK9 = 0x00000200, // TITLE Unknown attribute 9@Attr14 + SPELL_ATTR14_UNK10 = 0x00000400, // TITLE Unknown attribute 10@Attr14 + SPELL_ATTR14_UNK11 = 0x00000800, // TITLE Unknown attribute 11@Attr14 + SPELL_ATTR14_UNK12 = 0x00001000, // TITLE Unknown attribute 12@Attr14 + SPELL_ATTR14_UNK13 = 0x00002000, // TITLE Unknown attribute 13@Attr14 + SPELL_ATTR14_UNK14 = 0x00004000, // TITLE Unknown attribute 14@Attr14 + SPELL_ATTR14_UNK15 = 0x00008000, // TITLE Unknown attribute 15@Attr14 + SPELL_ATTR14_UNK16 = 0x00010000, // TITLE Unknown attribute 16@Attr14 + SPELL_ATTR14_UNK17 = 0x00020000, // TITLE Unknown attribute 17@Attr14 + SPELL_ATTR14_UNK18 = 0x00040000, // TITLE Unknown attribute 18@Attr14 + SPELL_ATTR14_UNK19 = 0x00080000, // TITLE Unknown attribute 19@Attr14 + SPELL_ATTR14_UNK20 = 0x00100000, // TITLE Unknown attribute 20@Attr14 + SPELL_ATTR14_UNK21 = 0x00200000, // TITLE Unknown attribute 21@Attr14 + SPELL_ATTR14_UNK22 = 0x00400000, // TITLE Unknown attribute 22@Attr14 + SPELL_ATTR14_UNK23 = 0x00800000, // TITLE Unknown attribute 23@Attr14 + SPELL_ATTR14_UNK24 = 0x01000000, // TITLE Unknown attribute 24@Attr14 + SPELL_ATTR14_UNK25 = 0x02000000, // TITLE Unknown attribute 25@Attr14 + SPELL_ATTR14_UNK26 = 0x04000000, // TITLE Unknown attribute 26@Attr14 + SPELL_ATTR14_UNK27 = 0x08000000, // TITLE Unknown attribute 27@Attr14 + SPELL_ATTR14_UNK28 = 0x10000000, // TITLE Unknown attribute 28@Attr14 + SPELL_ATTR14_UNK29 = 0x20000000, // TITLE Unknown attribute 29@Attr14 + SPELL_ATTR14_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr14 + SPELL_ATTR14_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr14 }; #define MIN_SPECIALIZATION_LEVEL 10 diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp index 01c909482b2..4c9293a97cf 100644 --- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp +++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp @@ -135,7 +135,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr0>::ToString(SpellAttr0 value) { switch (value) { - case SPELL_ATTR0_UNK0: return { "SPELL_ATTR0_UNK0", "SPELL_ATTR0_UNK0", "" }; + case SPELL_ATTR0_UNK0: return { "SPELL_ATTR0_UNK0", "Unknown attribute 0@Attr0", "" }; case SPELL_ATTR0_REQ_AMMO: return { "SPELL_ATTR0_REQ_AMMO", "Treat as ranged attack", "Use ammo, ranged attack range modifiers, ranged haste, etc." }; case SPELL_ATTR0_ON_NEXT_SWING: return { "SPELL_ATTR0_ON_NEXT_SWING", "On next melee (type 1)", "Both \042on next swing\042 attributes have identical handling in server & client" }; case SPELL_ATTR0_IS_REPLENISHMENT: return { "SPELL_ATTR0_IS_REPLENISHMENT", "Replenishment (client only)", "" }; @@ -146,7 +146,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr0>::ToString(SpellAttr0 value) case SPELL_ATTR0_HIDE_IN_COMBAT_LOG: return { "SPELL_ATTR0_HIDE_IN_COMBAT_LOG", "Hidden in combat log (client only)", "Spell will not appear in combat logs" }; case SPELL_ATTR0_TARGET_MAINHAND_ITEM: return { "SPELL_ATTR0_TARGET_MAINHAND_ITEM", "Auto-target mainhand item (client only)", "Client will automatically select main-hand item as cast target" }; case SPELL_ATTR0_ON_NEXT_SWING_2: return { "SPELL_ATTR0_ON_NEXT_SWING_2", "On next melee (type 2)", "Both \042on next swing\042 attributes have identical handling in server & client" }; - case SPELL_ATTR0_UNK11: return { "SPELL_ATTR0_UNK11", "SPELL_ATTR0_UNK11", "" }; + case SPELL_ATTR0_UNK11: return { "SPELL_ATTR0_UNK11", "Unknown attribute 11@Attr0", "" }; case SPELL_ATTR0_DAYTIME_ONLY: return { "SPELL_ATTR0_DAYTIME_ONLY", "Only usable during daytime (unused)", "" }; case SPELL_ATTR0_NIGHT_ONLY: return { "SPELL_ATTR0_NIGHT_ONLY", "Only usable during nighttime (unused)", "" }; case SPELL_ATTR0_INDOORS_ONLY: return { "SPELL_ATTR0_INDOORS_ONLY", "Only usable indoors", "" }; @@ -227,7 +227,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr1>::ToString(SpellAttr1 value) case SPELL_ATTR1_DRAIN_ALL_POWER: return { "SPELL_ATTR1_DRAIN_ALL_POWER", "Drain all power", "Ignores listed power cost and drains entire pool instead" }; case SPELL_ATTR1_CHANNELED_1: return { "SPELL_ATTR1_CHANNELED_1", "Channeled (type 1)", "Both \042channeled\042 attributes have identical handling in server & client" }; case SPELL_ATTR1_CANT_BE_REDIRECTED: return { "SPELL_ATTR1_CANT_BE_REDIRECTED", "Ignore redirection effects", "Spell will not be attracted by SPELL_MAGNET auras (Grounding Totem)" }; - case SPELL_ATTR1_UNK4: return { "SPELL_ATTR1_UNK4", "SPELL_ATTR1_UNK4", "" }; + case SPELL_ATTR1_UNK4: return { "SPELL_ATTR1_UNK4", "Unknown attribute 4@Attr1", "" }; case SPELL_ATTR1_NOT_BREAK_STEALTH: return { "SPELL_ATTR1_NOT_BREAK_STEALTH", "Does not break stealth", "" }; case SPELL_ATTR1_CHANNELED_2: return { "SPELL_ATTR1_CHANNELED_2", "Channeled (type 2)", "Both \042channeled\042 attributes have identical handling in server & client" }; case SPELL_ATTR1_CANT_BE_REFLECTED: return { "SPELL_ATTR1_CANT_BE_REFLECTED", "Ignore reflection effects", "Spell will pierce through Spell Reflection and similar" }; @@ -241,20 +241,20 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr1>::ToString(SpellAttr1 value) case SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY: return { "SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY", "Immunity cancels preapplied auras", "For immunity spells, cancel all auras that this spell would make you immune to when the spell is applied" }; case SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE: return { "SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE", "Unaffected by school immunities", "Will not pierce Divine Shield, Ice Block and other full invulnerabilities" }; case SPELL_ATTR1_UNAUTOCASTABLE_BY_PET: return { "SPELL_ATTR1_UNAUTOCASTABLE_BY_PET", "Cannot be autocast by pet", "" }; - case SPELL_ATTR1_UNK18: return { "SPELL_ATTR1_UNK18", "SPELL_ATTR1_UNK18", "" }; + case SPELL_ATTR1_UNK18: return { "SPELL_ATTR1_UNK18", "Unknown attribute 18@Attr1", "Stun, Polymorph, Daze, Hex - CC?" }; case SPELL_ATTR1_CANT_TARGET_SELF: return { "SPELL_ATTR1_CANT_TARGET_SELF", "Cannot be self-cast", "" }; case SPELL_ATTR1_REQ_COMBO_POINTS1: return { "SPELL_ATTR1_REQ_COMBO_POINTS1", "Requires combo points (type 1)", "" }; - case SPELL_ATTR1_UNK21: return { "SPELL_ATTR1_UNK21", "SPELL_ATTR1_UNK21", "" }; + case SPELL_ATTR1_UNK21: return { "SPELL_ATTR1_UNK21", "Unknown attribute 21@Attr1", "" }; case SPELL_ATTR1_REQ_COMBO_POINTS2: return { "SPELL_ATTR1_REQ_COMBO_POINTS2", "Requires combo points (type 2)", "" }; - case SPELL_ATTR1_UNK23: return { "SPELL_ATTR1_UNK23", "SPELL_ATTR1_UNK23", "" }; + case SPELL_ATTR1_UNK23: return { "SPELL_ATTR1_UNK23", "Unknwon attribute 23@Attr1", "" }; case SPELL_ATTR1_IS_FISHING: return { "SPELL_ATTR1_IS_FISHING", "Fishing (client only)", "" }; - case SPELL_ATTR1_UNK25: return { "SPELL_ATTR1_UNK25", "SPELL_ATTR1_UNK25", "" }; - case SPELL_ATTR1_UNK26: return { "SPELL_ATTR1_UNK26", "SPELL_ATTR1_UNK26", "" }; - case SPELL_ATTR1_UNK27: return { "SPELL_ATTR1_UNK27", "SPELL_ATTR1_UNK27", "" }; + case SPELL_ATTR1_UNK25: return { "SPELL_ATTR1_UNK25", "Unknown attribute 25@Attr1", "" }; + case SPELL_ATTR1_UNK26: return { "SPELL_ATTR1_UNK26", "Unknown attribute 26@Attr1", "Related to [target=focus] and [target=mouseover] macros?" }; + case SPELL_ATTR1_UNK27: return { "SPELL_ATTR1_UNK27", "Unknown attribute 27@Attr1", "Melee spell?" }; case SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR: return { "SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR", "Hide in aura bar (client only)", "" }; case SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME: return { "SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME", "Show spell name during channel (client only)", "" }; case SPELL_ATTR1_ENABLE_AT_DODGE: return { "SPELL_ATTR1_ENABLE_AT_DODGE", "Enable at dodge", "" }; - case SPELL_ATTR1_UNK31: return { "SPELL_ATTR1_UNK31", "SPELL_ATTR1_UNK31", "" }; + case SPELL_ATTR1_UNK31: return { "SPELL_ATTR1_UNK31", "Unknown attribute 31@Attr1", "" }; default: throw std::out_of_range("value"); } } @@ -312,33 +312,33 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr2>::ToString(SpellAttr2 value) switch (value) { case SPELL_ATTR2_CAN_TARGET_DEAD: return { "SPELL_ATTR2_CAN_TARGET_DEAD", "Can target dead players or corpses", "" }; - case SPELL_ATTR2_UNK1: return { "SPELL_ATTR2_UNK1", "SPELL_ATTR2_UNK1", "" }; + case SPELL_ATTR2_UNK1: return { "SPELL_ATTR2_UNK1", "Unknown attribute 1@Attr2", "" }; case SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS: return { "SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS", "Ignore Line of Sight", "" }; case SPELL_ATTR2_UNK3: return { "SPELL_ATTR2_UNK3", "Ignore aura scaling", "" }; case SPELL_ATTR2_DISPLAY_IN_STANCE_BAR: return { "SPELL_ATTR2_DISPLAY_IN_STANCE_BAR", "Show in stance bar (client only)", "" }; case SPELL_ATTR2_AUTOREPEAT_FLAG: return { "SPELL_ATTR2_AUTOREPEAT_FLAG", "Ranged auto-attack spell", "" }; case SPELL_ATTR2_CANT_TARGET_TAPPED: return { "SPELL_ATTR2_CANT_TARGET_TAPPED", "Cannot target others' tapped units", "Can only target untapped units, or those tapped by caster" }; - case SPELL_ATTR2_UNK7: return { "SPELL_ATTR2_UNK7", "SPELL_ATTR2_UNK7", "" }; - case SPELL_ATTR2_UNK8: return { "SPELL_ATTR2_UNK8", "SPELL_ATTR2_UNK8", "" }; - case SPELL_ATTR2_UNK9: return { "SPELL_ATTR2_UNK9", "SPELL_ATTR2_UNK9", "" }; - case SPELL_ATTR2_UNK10: return { "SPELL_ATTR2_UNK10", "SPELL_ATTR2_UNK10", "" }; + case SPELL_ATTR2_UNK7: return { "SPELL_ATTR2_UNK7", "Unknown attribute 7@Attr2", "" }; + case SPELL_ATTR2_UNK8: return { "SPELL_ATTR2_UNK8", "Unknown attribute 8@Attr2", "" }; + case SPELL_ATTR2_UNK9: return { "SPELL_ATTR2_UNK9", "Unknown attribute 9@Attr2", "" }; + case SPELL_ATTR2_UNK10: return { "SPELL_ATTR2_UNK10", "Unknown attribute 10@Attr2", "Related to taming?" }; case SPELL_ATTR2_HEALTH_FUNNEL: return { "SPELL_ATTR2_HEALTH_FUNNEL", "Health Funnel", "" }; - case SPELL_ATTR2_UNK12: return { "SPELL_ATTR2_UNK12", "SPELL_ATTR2_UNK12", "" }; + case SPELL_ATTR2_UNK12: return { "SPELL_ATTR2_UNK12", "Unknown attribute 12@Attr2", "" }; case SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA: return { "SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA", "Enchant persists when entering arena", "" }; - case SPELL_ATTR2_UNK14: return { "SPELL_ATTR2_UNK14", "SPELL_ATTR2_UNK14", "" }; - case SPELL_ATTR2_UNK15: return { "SPELL_ATTR2_UNK15", "SPELL_ATTR2_UNK15", "" }; + case SPELL_ATTR2_UNK14: return { "SPELL_ATTR2_UNK14", "Unknown attribute 14@Attr2", "" }; + case SPELL_ATTR2_UNK15: return { "SPELL_ATTR2_UNK15", "Unknown attribute 15@Attr2", "" }; case SPELL_ATTR2_TAME_BEAST: return { "SPELL_ATTR2_TAME_BEAST", "Tame Beast", "" }; case SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS: return { "SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS", "Don't reset swing timer", "Does not reset melee/ranged autoattack timer on cast" }; case SPELL_ATTR2_REQ_DEAD_PET: return { "SPELL_ATTR2_REQ_DEAD_PET", "Requires dead pet", "" }; case SPELL_ATTR2_NOT_NEED_SHAPESHIFT: return { "SPELL_ATTR2_NOT_NEED_SHAPESHIFT", "Also allow outside shapeshift", "Even if Stances are nonzero, allow spell to be cast outside of shapeshift (though not in a different shapeshift)" }; - case SPELL_ATTR2_UNK20: return { "SPELL_ATTR2_UNK20", "SPELL_ATTR2_UNK20", "" }; - case SPELL_ATTR2_DAMAGE_REDUCED_SHIELD: return { "SPELL_ATTR2_DAMAGE_REDUCED_SHIELD", "SPELL_ATTR2_DAMAGE_REDUCED_SHIELD", "" }; - case SPELL_ATTR2_UNK22: return { "SPELL_ATTR2_UNK22", "SPELL_ATTR2_UNK22", "" }; + case SPELL_ATTR2_UNK20: return { "SPELL_ATTR2_UNK20", "Unknown attribute 20@Attr2", "" }; + case SPELL_ATTR2_DAMAGE_REDUCED_SHIELD: return { "SPELL_ATTR2_DAMAGE_REDUCED_SHIELD", "Damage reduction ability", "Causes BG flags to be dropped if combined with ATTR1_DISPEL_AURAS_ON_IMMUNITY" }; + case SPELL_ATTR2_UNK22: return { "SPELL_ATTR2_UNK22", "Unknown attribute 22@Attr2", "" }; case SPELL_ATTR2_IS_ARCANE_CONCENTRATION: return { "SPELL_ATTR2_IS_ARCANE_CONCENTRATION", "Arcane Concentration", "" }; - case SPELL_ATTR2_UNK24: return { "SPELL_ATTR2_UNK24", "SPELL_ATTR2_UNK24", "" }; - case SPELL_ATTR2_UNK25: return { "SPELL_ATTR2_UNK25", "SPELL_ATTR2_UNK25", "" }; + case SPELL_ATTR2_UNK24: return { "SPELL_ATTR2_UNK24", "Unknown attribute 24@Attr2", "" }; + case SPELL_ATTR2_UNK25: return { "SPELL_ATTR2_UNK25", "Unknown attribute 25@Attr2", "" }; case SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE: return { "SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE", "Pierce aura application immunities", "Allow aura to be applied despite target being immune to new aura applications" }; - case SPELL_ATTR2_UNK27: return { "SPELL_ATTR2_UNK27", "SPELL_ATTR2_UNK27", "" }; + case SPELL_ATTR2_UNK27: return { "SPELL_ATTR2_UNK27", "Unknown attribute 27@Attr2", "" }; case SPELL_ATTR2_IGNORE_ACTION_AURA_INTERRUPT_FLAGS: return { "SPELL_ATTR2_IGNORE_ACTION_AURA_INTERRUPT_FLAGS", "Not an Action", "" }; case SPELL_ATTR2_CANT_CRIT: return { "SPELL_ATTR2_CANT_CRIT", "Cannot critically strike", "" }; case SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC: return { "SPELL_ATTR2_TRIGGERED_CAN_TRIGGER_PROC", "Allow triggered spell to trigger procs", "Without this attribute, any triggered spell will be unable to trigger other auras' procs" }; @@ -399,13 +399,13 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr3>::ToString(SpellAttr3 value) { switch (value) { - case SPELL_ATTR3_UNK0: return { "SPELL_ATTR3_UNK0", "SPELL_ATTR3_UNK0", "" }; + case SPELL_ATTR3_UNK0: return { "SPELL_ATTR3_UNK0", "Unknown attribute 0@Attr3", "" }; case SPELL_ATTR3_NO_PROC_EQUIP_REQUIREMENT: return { "SPELL_ATTR3_NO_PROC_EQUIP_REQUIREMENT", "No Proc Equip Requirement", "Ignores subclass mask check when checking proc" }; - case SPELL_ATTR3_UNK2: return { "SPELL_ATTR3_UNK2", "SPELL_ATTR3_UNK2", "" }; + case SPELL_ATTR3_UNK2: return { "SPELL_ATTR3_UNK2", "Unknown attribute 2@Attr3", "" }; case SPELL_ATTR3_BLOCKABLE_SPELL: return { "SPELL_ATTR3_BLOCKABLE_SPELL", "Blockable spell", "" }; case SPELL_ATTR3_IGNORE_RESURRECTION_TIMER: return { "SPELL_ATTR3_IGNORE_RESURRECTION_TIMER", "Ignore resurrection timer", "" }; - case SPELL_ATTR3_UNK5: return { "SPELL_ATTR3_UNK5", "SPELL_ATTR3_UNK5", "" }; - case SPELL_ATTR3_UNK6: return { "SPELL_ATTR3_UNK6", "SPELL_ATTR3_UNK6", "" }; + case SPELL_ATTR3_UNK5: return { "SPELL_ATTR3_UNK5", "Unknown attribute 5@Attr3", "" }; + case SPELL_ATTR3_UNK6: return { "SPELL_ATTR3_UNK6", "Unknown attribute 6@Attr3", "" }; case SPELL_ATTR3_STACK_FOR_DIFF_CASTERS: return { "SPELL_ATTR3_STACK_FOR_DIFF_CASTERS", "Stack separately for each caster", "" }; case SPELL_ATTR3_ONLY_TARGET_PLAYERS: return { "SPELL_ATTR3_ONLY_TARGET_PLAYERS", "Can only target players", "" }; case SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2: return { "SPELL_ATTR3_TRIGGERED_CAN_TRIGGER_PROC_2", "Allow triggered spell to trigger (type 2)", "Without this attribute, any triggered spell will be unable to trigger other auras' procs" }; @@ -414,23 +414,23 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr3>::ToString(SpellAttr3 value) case SPELL_ATTR3_ONLY_TARGET_GHOSTS: return { "SPELL_ATTR3_ONLY_TARGET_GHOSTS", "Can only target ghost players", "" }; case SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR: return { "SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR", "Do not display channel bar (client only)", "" }; case SPELL_ATTR3_IS_HONORLESS_TARGET: return { "SPELL_ATTR3_IS_HONORLESS_TARGET", "Honorless Target", "" }; - case SPELL_ATTR3_UNK15: return { "SPELL_ATTR3_UNK15", "SPELL_ATTR3_UNK15", "" }; + case SPELL_ATTR3_UNK15: return { "SPELL_ATTR3_UNK15", "Unknown attribute 15@Attr3", "Auto Shoot, Shoot, Throw - ranged normal attack attribute?" }; case SPELL_ATTR3_CANT_TRIGGER_PROC: return { "SPELL_ATTR3_CANT_TRIGGER_PROC", "Cannot trigger procs", "" }; case SPELL_ATTR3_NO_INITIAL_AGGRO: return { "SPELL_ATTR3_NO_INITIAL_AGGRO", "No initial aggro", "" }; case SPELL_ATTR3_IGNORE_HIT_RESULT: return { "SPELL_ATTR3_IGNORE_HIT_RESULT", "Ignore hit result", "Spell cannot miss, or be dodged/parried/blocked" }; case SPELL_ATTR3_DISABLE_PROC: return { "SPELL_ATTR3_DISABLE_PROC", "Cannot trigger spells during aura proc", "" }; case SPELL_ATTR3_DEATH_PERSISTENT: return { "SPELL_ATTR3_DEATH_PERSISTENT", "Persists through death", "" }; - case SPELL_ATTR3_UNK21: return { "SPELL_ATTR3_UNK21", "SPELL_ATTR3_UNK21", "" }; + case SPELL_ATTR3_UNK21: return { "SPELL_ATTR3_UNK21", "Unknown attribute 21@Attr3", "" }; case SPELL_ATTR3_REQ_WAND: return { "SPELL_ATTR3_REQ_WAND", "Requires equipped Wand", "" }; - case SPELL_ATTR3_UNK23: return { "SPELL_ATTR3_UNK23", "SPELL_ATTR3_UNK23", "" }; + case SPELL_ATTR3_UNK23: return { "SPELL_ATTR3_UNK23", "Unknown attribute 23@Attr3", "" }; case SPELL_ATTR3_REQ_OFFHAND: return { "SPELL_ATTR3_REQ_OFFHAND", "Requires offhand weapon", "" }; case SPELL_ATTR3_TREAT_AS_PERIODIC: return { "SPELL_ATTR3_TREAT_AS_PERIODIC", "Treat as periodic effect", "" }; case SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED: return { "SPELL_ATTR3_CAN_PROC_WITH_TRIGGERED", "Can trigger from triggered spells", "" }; case SPELL_ATTR3_DRAIN_SOUL: return { "SPELL_ATTR3_DRAIN_SOUL", "Drain Soul", "" }; - case SPELL_ATTR3_UNK28: return { "SPELL_ATTR3_UNK28", "SPELL_ATTR3_UNK28", "" }; + case SPELL_ATTR3_UNK28: return { "SPELL_ATTR3_UNK28", "Unknown attribute 28@Attr3", "" }; case SPELL_ATTR3_NO_DONE_BONUS: return { "SPELL_ATTR3_NO_DONE_BONUS", "Damage dealt is unaffected by modifiers", "" }; case SPELL_ATTR3_DONT_DISPLAY_RANGE: return { "SPELL_ATTR3_DONT_DISPLAY_RANGE", "Do not show range in tooltip (client only)", "" }; - case SPELL_ATTR3_UNK31: return { "SPELL_ATTR3_UNK31", "SPELL_ATTR3_UNK31", "" }; + case SPELL_ATTR3_UNK31: return { "SPELL_ATTR3_UNK31", "Unknown attribute 31@Attr3", "" }; default: throw std::out_of_range("value"); } } @@ -490,35 +490,35 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr4>::ToString(SpellAttr4 value) case SPELL_ATTR4_IGNORE_RESISTANCES: return { "SPELL_ATTR4_IGNORE_RESISTANCES", "Cannot be resisted", "" }; case SPELL_ATTR4_PROC_ONLY_ON_CASTER: return { "SPELL_ATTR4_PROC_ONLY_ON_CASTER", "Only proc on self-cast", "" }; case SPELL_ATTR4_AURA_EXPIRES_OFFLINE: return { "SPELL_ATTR4_AURA_EXPIRES_OFFLINE", "Aura Expires Offline", "Debuffs (except Resurrection Sickness) will automatically do this" }; - case SPELL_ATTR4_UNK3: return { "SPELL_ATTR4_UNK3", "SPELL_ATTR4_UNK3", "" }; + case SPELL_ATTR4_UNK3: return { "SPELL_ATTR4_UNK3", "Unknown attribute 3@Attr4", "" }; case SPELL_ATTR4_UNK4: return { "SPELL_ATTR4_UNK4", "Treat as delayed spell", "" }; - case SPELL_ATTR4_UNK5: return { "SPELL_ATTR4_UNK5", "SPELL_ATTR4_UNK5", "" }; + case SPELL_ATTR4_UNK5: return { "SPELL_ATTR4_UNK5", "Unknown attribute 5@Attr4", "" }; case SPELL_ATTR4_NOT_STEALABLE: return { "SPELL_ATTR4_NOT_STEALABLE", "Aura cannot be stolen", "" }; case SPELL_ATTR4_CAN_CAST_WHILE_CASTING: return { "SPELL_ATTR4_CAN_CAST_WHILE_CASTING", "Can be cast while casting", "Ignores already in-progress cast and still casts" }; case SPELL_ATTR4_FIXED_DAMAGE: return { "SPELL_ATTR4_FIXED_DAMAGE", "Deals fixed damage", "" }; case SPELL_ATTR4_TRIGGER_ACTIVATE: return { "SPELL_ATTR4_TRIGGER_ACTIVATE", "Spell is initially disabled (client only)", "" }; case SPELL_ATTR4_SPELL_VS_EXTEND_COST: return { "SPELL_ATTR4_SPELL_VS_EXTEND_COST", "Attack speed modifies cost", "Adds 10 to power cost for each 1s of weapon speed" }; - case SPELL_ATTR4_UNK11: return { "SPELL_ATTR4_UNK11", "SPELL_ATTR4_UNK11", "" }; - case SPELL_ATTR4_UNK12: return { "SPELL_ATTR4_UNK12", "SPELL_ATTR4_UNK12", "" }; + case SPELL_ATTR4_UNK11: return { "SPELL_ATTR4_UNK11", "Unknown attribute 11@Attr4", "" }; + case SPELL_ATTR4_UNK12: return { "SPELL_ATTR4_UNK12", "Unknown attribute 12@Attr4", "" }; case SPELL_ATTR4_COMBAT_LOG_NO_CASTER: return { "SPELL_ATTR4_COMBAT_LOG_NO_CASTER", "Do Not Log Caster", "" }; case SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS: return { "SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS", "Damage does not break auras", "" }; case SPELL_ATTR4_HIDDEN_IN_SPELLBOOK: return { "SPELL_ATTR4_HIDDEN_IN_SPELLBOOK", "Not In Spellbook", "" }; case SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG: return { "SPELL_ATTR4_NOT_USABLE_IN_ARENA_OR_RATED_BG", "Not In Arena or Rated Battleground", "Makes spell unusable despite CD <= 10min" }; case SPELL_ATTR4_USABLE_IN_ARENA: return { "SPELL_ATTR4_USABLE_IN_ARENA", "Usable in arena", "Makes spell usable despite CD > 10min" }; case SPELL_ATTR4_AREA_TARGET_CHAIN: return { "SPELL_ATTR4_AREA_TARGET_CHAIN", "Chain area targets", "[NYI] Hits area targets over time instead of all at once" }; - case SPELL_ATTR4_UNK19: return { "SPELL_ATTR4_UNK19", "SPELL_ATTR4_UNK19", "" }; + case SPELL_ATTR4_UNK19: return { "SPELL_ATTR4_UNK19", "Unknown attribute 19@Attr4", "" }; case SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER: return { "SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER", "Allow self-cast to override stronger aura (client only)", "" }; case SPELL_ATTR4_DONT_REMOVE_IN_ARENA: return { "SPELL_ATTR4_DONT_REMOVE_IN_ARENA", "Allow Entering Arena", "" }; - case SPELL_ATTR4_UNK22: return { "SPELL_ATTR4_UNK22", "SPELL_ATTR4_UNK22", "" }; + case SPELL_ATTR4_UNK22: return { "SPELL_ATTR4_UNK22", "Unknown attribute 22@Attr4", "" }; case SPELL_ATTR4_SUPPRESS_WEAPON_PROCS: return { "SPELL_ATTR4_SUPPRESS_WEAPON_PROCS", "Suppress Weapon Procs", "" }; - case SPELL_ATTR4_UNK24: return { "SPELL_ATTR4_UNK24", "SPELL_ATTR4_UNK24", "" }; + case SPELL_ATTR4_UNK24: return { "SPELL_ATTR4_UNK24", "Unknown attribute 24@Attr4", "Shoot-type spell?" }; case SPELL_ATTR4_IS_PET_SCALING: return { "SPELL_ATTR4_IS_PET_SCALING", "Pet Scaling aura", "" }; case SPELL_ATTR4_CAST_ONLY_IN_OUTLAND: return { "SPELL_ATTR4_CAST_ONLY_IN_OUTLAND", "Only in Outland/Northrend", "" }; - case SPELL_ATTR4_UNK27: return { "SPELL_ATTR4_UNK27", "SPELL_ATTR4_UNK27", "" }; - case SPELL_ATTR4_UNK28: return { "SPELL_ATTR4_UNK28", "SPELL_ATTR4_UNK28", "" }; - case SPELL_ATTR4_UNK29: return { "SPELL_ATTR4_UNK29", "SPELL_ATTR4_UNK29", "" }; - case SPELL_ATTR4_UNK30: return { "SPELL_ATTR4_UNK30", "SPELL_ATTR4_UNK30", "" }; - case SPELL_ATTR4_UNK31: return { "SPELL_ATTR4_UNK31", "SPELL_ATTR4_UNK31", "" }; + case SPELL_ATTR4_UNK27: return { "SPELL_ATTR4_UNK27", "Unknown attribute 27@Attr4", "" }; + case SPELL_ATTR4_UNK28: return { "SPELL_ATTR4_UNK28", "Unknown attribute 28@Attr4", "" }; + case SPELL_ATTR4_UNK29: return { "SPELL_ATTR4_UNK29", "Unknown attribute 29@Attr4", "" }; + case SPELL_ATTR4_UNK30: return { "SPELL_ATTR4_UNK30", "Unknown attribute 30@Attr4", "" }; + case SPELL_ATTR4_UNK31: return { "SPELL_ATTR4_UNK31", "Unknown attribute 31@Attr4", "" }; default: throw std::out_of_range("value"); } } @@ -579,34 +579,34 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr5>::ToString(SpellAttr5 value) case SPELL_ATTR5_NO_REAGENT_WHILE_PREP: return { "SPELL_ATTR5_NO_REAGENT_WHILE_PREP", "No reagents during arena preparation", "" }; case SPELL_ATTR5_REMOVE_ENTERING_ARENA: return { "SPELL_ATTR5_REMOVE_ENTERING_ARENA", "Remove Entering Arena", "Force this aura to be removed on entering arena, regardless of other properties" }; case SPELL_ATTR5_USABLE_WHILE_STUNNED: return { "SPELL_ATTR5_USABLE_WHILE_STUNNED", "Usable while stunned", "" }; - case SPELL_ATTR5_UNK4: return { "SPELL_ATTR5_UNK4", "SPELL_ATTR5_UNK4", "" }; + case SPELL_ATTR5_UNK4: return { "SPELL_ATTR5_UNK4", "Unknown attribute 4@Attr5", "" }; case SPELL_ATTR5_SINGLE_TARGET_SPELL: return { "SPELL_ATTR5_SINGLE_TARGET_SPELL", "Single-target aura", "Remove previous application to another unit if applied" }; - case SPELL_ATTR5_UNK6: return { "SPELL_ATTR5_UNK6", "SPELL_ATTR5_UNK6", "" }; - case SPELL_ATTR5_UNK7: return { "SPELL_ATTR5_UNK7", "SPELL_ATTR5_UNK7", "" }; + case SPELL_ATTR5_UNK6: return { "SPELL_ATTR5_UNK6", "Unknown attribute 6@Attr5", "" }; + case SPELL_ATTR5_UNK7: return { "SPELL_ATTR5_UNK7", "Unknown attribute 7@Attr5", "" }; case SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED: return { "SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED", "Not On Player Controlled NPC", "" }; case SPELL_ATTR5_START_PERIODIC_AT_APPLY: return { "SPELL_ATTR5_START_PERIODIC_AT_APPLY", "Immediately do periodic tick on apply", "" }; case SPELL_ATTR5_HIDE_DURATION: return { "SPELL_ATTR5_HIDE_DURATION", "Do not send aura duration to client", "" }; case SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET: return { "SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET", "Auto-target target of target (client only)", "" }; - case SPELL_ATTR5_UNK12: return { "SPELL_ATTR5_UNK12", "SPELL_ATTR5_UNK12", "" }; + case SPELL_ATTR5_UNK12: return { "SPELL_ATTR5_UNK12", "Unknown attribute 12@Attr5", "Cleave related?" }; case SPELL_ATTR5_HASTE_AFFECT_DURATION: return { "SPELL_ATTR5_HASTE_AFFECT_DURATION", "Duration scales with Haste Rating", "" }; case SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED: return { "SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED", "Not Available While Charmed", "" }; - case SPELL_ATTR5_UNK15: return { "SPELL_ATTR5_UNK15", "SPELL_ATTR5_UNK15", "" }; - case SPELL_ATTR5_UNK16: return { "SPELL_ATTR5_UNK16", "SPELL_ATTR5_UNK16", "" }; + case SPELL_ATTR5_UNK15: return { "SPELL_ATTR5_UNK15", "Unknown attribute 15@Attr5", "Related to multi-target spells?" }; + case SPELL_ATTR5_UNK16: return { "SPELL_ATTR5_UNK16", "Unknown attribute 16@Attr5", "" }; case SPELL_ATTR5_USABLE_WHILE_FEARED: return { "SPELL_ATTR5_USABLE_WHILE_FEARED", "Usable while feared", "" }; case SPELL_ATTR5_USABLE_WHILE_CONFUSED: return { "SPELL_ATTR5_USABLE_WHILE_CONFUSED", "Usable while confused", "" }; case SPELL_ATTR5_DONT_TURN_DURING_CAST: return { "SPELL_ATTR5_DONT_TURN_DURING_CAST", "Do not auto-turn while casting", "" }; - case SPELL_ATTR5_UNK20: return { "SPELL_ATTR5_UNK20", "SPELL_ATTR5_UNK20", "" }; - case SPELL_ATTR5_UNK21: return { "SPELL_ATTR5_UNK21", "SPELL_ATTR5_UNK21", "" }; - case SPELL_ATTR5_UNK22: return { "SPELL_ATTR5_UNK22", "SPELL_ATTR5_UNK22", "" }; - case SPELL_ATTR5_UNK23: return { "SPELL_ATTR5_UNK23", "SPELL_ATTR5_UNK23", "" }; - case SPELL_ATTR5_UNK24: return { "SPELL_ATTR5_UNK24", "SPELL_ATTR5_UNK24", "" }; - case SPELL_ATTR5_UNK25: return { "SPELL_ATTR5_UNK25", "SPELL_ATTR5_UNK25", "" }; + case SPELL_ATTR5_UNK20: return { "SPELL_ATTR5_UNK20", "Unknown attribute 20@Attr5", "" }; + case SPELL_ATTR5_UNK21: return { "SPELL_ATTR5_UNK21", "Unknown attribute 21@Attr5", "" }; + case SPELL_ATTR5_UNK22: return { "SPELL_ATTR5_UNK22", "Unknown attribute 22@Attr5", "" }; + case SPELL_ATTR5_UNK23: return { "SPELL_ATTR5_UNK23", "Unknown attribute 23@Attr5", "" }; + case SPELL_ATTR5_UNK24: return { "SPELL_ATTR5_UNK24", "Unknown attribute 24@Attr5", "" }; + case SPELL_ATTR5_UNK25: return { "SPELL_ATTR5_UNK25", "Unknown attribute 25@Attr5", "" }; case SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT: return { "SPELL_ATTR5_ALWAYS_AOE_LINE_OF_SIGHT", "Ignore line of sight checks", "" }; case SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST: return { "SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST", "Don't show aura if self-cast (client only)", "" }; case SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST: return { "SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST", "Don't show aura unless self-cast (client only)", "" }; - case SPELL_ATTR5_UNK29: return { "SPELL_ATTR5_UNK29", "SPELL_ATTR5_UNK29", "" }; - case SPELL_ATTR5_UNK30: return { "SPELL_ATTR5_UNK30", "SPELL_ATTR5_UNK30", "" }; - case SPELL_ATTR5_UNK31: return { "SPELL_ATTR5_UNK31", "SPELL_ATTR5_UNK31", "" }; + case SPELL_ATTR5_UNK29: return { "SPELL_ATTR5_UNK29", "Unknown attribute 29@Attr5", "" }; + case SPELL_ATTR5_UNK30: return { "SPELL_ATTR5_UNK30", "Unknown attribute 30@Attr5", "" }; + case SPELL_ATTR5_UNK31: return { "SPELL_ATTR5_UNK31", "Unknown attribute 31@Attr5", "Forces nearby enemies to attack caster?" }; default: throw std::out_of_range("value"); } } @@ -667,33 +667,33 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr6>::ToString(SpellAttr6 value) case SPELL_ATTR6_ONLY_IN_ARENA: return { "SPELL_ATTR6_ONLY_IN_ARENA", "Only usable in arena", "" }; case SPELL_ATTR6_IGNORE_CASTER_AURAS: return { "SPELL_ATTR6_IGNORE_CASTER_AURAS", "Ignore all preventing caster auras", "" }; case SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG: return { "SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG", "Ignore immunity flags when assisting", "" }; - case SPELL_ATTR6_UNK4: return { "SPELL_ATTR6_UNK4", "SPELL_ATTR6_UNK4", "" }; + case SPELL_ATTR6_UNK4: return { "SPELL_ATTR6_UNK4", "Unknown attribute 4@Attr6", "" }; case SPELL_ATTR6_DO_NOT_CONSUME_RESOURCES: return { "SPELL_ATTR6_DO_NOT_CONSUME_RESOURCES", "Don't consume proc charges", "" }; case SPELL_ATTR6_USE_SPELL_CAST_EVENT: return { "SPELL_ATTR6_USE_SPELL_CAST_EVENT", "Generate spell_cast event instead of aura_start (client only)", "" }; - case SPELL_ATTR6_UNK7: return { "SPELL_ATTR6_UNK7", "SPELL_ATTR6_UNK7", "" }; + case SPELL_ATTR6_UNK7: return { "SPELL_ATTR6_UNK7", "Unknown attribute 7@Attr6", "" }; case SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED: return { "SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED", "Do not implicitly target in CC", "Implicit targeting (chaining and area targeting) will not impact crowd controlled targets" }; - case SPELL_ATTR6_UNK9: return { "SPELL_ATTR6_UNK9", "SPELL_ATTR6_UNK9", "" }; + case SPELL_ATTR6_UNK9: return { "SPELL_ATTR6_UNK9", "Unknown attribute 9@Attr6", "" }; case SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS: return { "SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS", "Can target possessed friends", "[NYI]" }; case SPELL_ATTR6_NOT_IN_RAID_INSTANCE: return { "SPELL_ATTR6_NOT_IN_RAID_INSTANCE", "Unusable in raid instances", "" }; case SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE: return { "SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE", "Castable while caster is on vehicle", "" }; case SPELL_ATTR6_CAN_TARGET_INVISIBLE: return { "SPELL_ATTR6_CAN_TARGET_INVISIBLE", "Can target invisible units", "" }; - case SPELL_ATTR6_UNK14: return { "SPELL_ATTR6_UNK14", "SPELL_ATTR6_UNK14", "" }; - case SPELL_ATTR6_UNK15: return { "SPELL_ATTR6_UNK15", "SPELL_ATTR6_UNK15", "" }; - case SPELL_ATTR6_UNK16: return { "SPELL_ATTR6_UNK16", "SPELL_ATTR6_UNK16", "" }; - case SPELL_ATTR6_UNK17: return { "SPELL_ATTR6_UNK17", "SPELL_ATTR6_UNK17", "" }; + case SPELL_ATTR6_UNK14: return { "SPELL_ATTR6_UNK14", "Unknown attribute 14@Attr6", "" }; + case SPELL_ATTR6_UNK15: return { "SPELL_ATTR6_UNK15", "Unknown attribute 15@Attr6", "" }; + case SPELL_ATTR6_UNK16: return { "SPELL_ATTR6_UNK16", "Unknown attribute 16@Attr6", "" }; + case SPELL_ATTR6_UNK17: return { "SPELL_ATTR6_UNK17", "Unknown attribute 17@Attr6", "Mount related?" }; case SPELL_ATTR6_CAST_BY_CHARMER: return { "SPELL_ATTR6_CAST_BY_CHARMER", "Spell is cast by charmer", "Client will prevent casting if not possessed, charmer will be caster for all intents and purposes" }; - case SPELL_ATTR6_UNK19: return { "SPELL_ATTR6_UNK19", "SPELL_ATTR6_UNK19", "" }; + case SPELL_ATTR6_UNK19: return { "SPELL_ATTR6_UNK19", "Unknown attribute 19@Attr6", "" }; case SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER: return { "SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER", "Only visible to caster (client only)", "" }; case SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS: return { "SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS", "Client UI target effects (client only)", "" }; - case SPELL_ATTR6_UNK22: return { "SPELL_ATTR6_UNK22", "SPELL_ATTR6_UNK22", "" }; - case SPELL_ATTR6_UNK23: return { "SPELL_ATTR6_UNK23", "SPELL_ATTR6_UNK23", "" }; + case SPELL_ATTR6_UNK22: return { "SPELL_ATTR6_UNK22", "Unknown attribute 22@Attr6", "" }; + case SPELL_ATTR6_UNK23: return { "SPELL_ATTR6_UNK23", "Unknown attribute 23@Attr6", "" }; case SPELL_ATTR6_CAN_TARGET_UNTARGETABLE: return { "SPELL_ATTR6_CAN_TARGET_UNTARGETABLE", "Can target untargetable units", "" }; case SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT: return { "SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT", "Do not reset swing timer if cast time is instant", "" }; - case SPELL_ATTR6_UNK26: return { "SPELL_ATTR6_UNK26", "SPELL_ATTR6_UNK26", "" }; + case SPELL_ATTR6_UNK26: return { "SPELL_ATTR6_UNK26", "Unknown attribute 26@Attr6", "Player castable buff?" }; case SPELL_ATTR6_IGNORE_HEALING_MODIFIERS: return { "SPELL_ATTR6_IGNORE_HEALING_MODIFIERS", "Limit applicable %healing modifiers", "This prevents certain healing modifiers from applying - see implementation if you really care about details" }; - case SPELL_ATTR6_UNK28: return { "SPELL_ATTR6_UNK28", "SPELL_ATTR6_UNK28", "" }; + case SPELL_ATTR6_UNK28: return { "SPELL_ATTR6_UNK28", "Unknown attribute 28@Attr6", "Death grip?" }; case SPELL_ATTR6_IGNORE_CASTER_DAMAGE_MODIFIERS: return { "SPELL_ATTR6_IGNORE_CASTER_DAMAGE_MODIFIERS", "Limit applicable %damage modifiers", "This prevents certain damage modifiers from applying - see implementation if you really care about details" }; - case SPELL_ATTR6_UNK30: return { "SPELL_ATTR6_UNK30", "SPELL_ATTR6_UNK30", "" }; + case SPELL_ATTR6_UNK30: return { "SPELL_ATTR6_UNK30", "Unknown attribute 30@Attr6", "" }; case SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS: return { "SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS", "Ignore cooldown modifiers for category cooldown", "" }; default: throw std::out_of_range("value"); } @@ -751,37 +751,37 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr7>::ToString(SpellAttr7 value) { switch (value) { - case SPELL_ATTR7_UNK0: return { "SPELL_ATTR7_UNK0", "SPELL_ATTR7_UNK0", "" }; + case SPELL_ATTR7_UNK0: return { "SPELL_ATTR7_UNK0", "Unknown attribute 0@Attr7", "" }; case SPELL_ATTR7_IGNORE_DURATION_MODS: return { "SPELL_ATTR7_IGNORE_DURATION_MODS", "Ignore duration modifiers", "" }; case SPELL_ATTR7_REACTIVATE_AT_RESURRECT: return { "SPELL_ATTR7_REACTIVATE_AT_RESURRECT", "Reactivate at resurrect (client only)", "" }; case SPELL_ATTR7_IS_CHEAT_SPELL: return { "SPELL_ATTR7_IS_CHEAT_SPELL", "Is cheat spell", "Cannot cast if caster doesn't have UnitFlag2 & UNIT_FLAG2_ALLOW_CHEAT_SPELLS" }; - case SPELL_ATTR7_UNK4: return { "SPELL_ATTR7_UNK4", "SPELL_ATTR7_UNK4", "" }; + case SPELL_ATTR7_UNK4: return { "SPELL_ATTR7_UNK4", "Unknown attribute 4@Attr7", "Soulstone related?" }; case SPELL_ATTR7_SUMMON_TOTEM: return { "SPELL_ATTR7_SUMMON_TOTEM", "Summons player-owned totem", "" }; case SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE: return { "SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE", "Damage dealt by this does not cause spell pushback", "" }; - case SPELL_ATTR7_UNK7: return { "SPELL_ATTR7_UNK7", "SPELL_ATTR7_UNK7", "" }; + case SPELL_ATTR7_UNK7: return { "SPELL_ATTR7_UNK7", "Unknown attribute 7@Attr7", "" }; case SPELL_ATTR7_HORDE_ONLY: return { "SPELL_ATTR7_HORDE_ONLY", "Horde only", "" }; case SPELL_ATTR7_ALLIANCE_ONLY: return { "SPELL_ATTR7_ALLIANCE_ONLY", "Alliance only", "" }; case SPELL_ATTR7_DISPEL_CHARGES: return { "SPELL_ATTR7_DISPEL_CHARGES", "Dispel/Spellsteal remove individual charges", "" }; - case SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER: return { "SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER", "Only interrupt non-player casting", "" }; - case SPELL_ATTR7_SILENCE_ONLY_NONPLAYER: return { "SPELL_ATTR7_SILENCE_ONLY_NONPLAYER", "SPELL_ATTR7_SILENCE_ONLY_NONPLAYER", "" }; + case SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER: return { "SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER", "Can Cause Interrupt", "Only interrupt non-player casting" }; + case SPELL_ATTR7_SILENCE_ONLY_NONPLAYER: return { "SPELL_ATTR7_SILENCE_ONLY_NONPLAYER", "Can Cause Silence", "" }; case SPELL_ATTR7_CAN_ALWAYS_BE_INTERRUPTED: return { "SPELL_ATTR7_CAN_ALWAYS_BE_INTERRUPTED", "No UI Not Interruptible", "Can always be interrupted, even if caster is immune" }; - case SPELL_ATTR7_UNK14: return { "SPELL_ATTR7_UNK14", "SPELL_ATTR7_UNK14", "" }; - case SPELL_ATTR7_UNK15: return { "SPELL_ATTR7_UNK15", "SPELL_ATTR7_UNK15", "" }; + case SPELL_ATTR7_UNK14: return { "SPELL_ATTR7_UNK14", "Unknown attribute 14@Attr7", "" }; + case SPELL_ATTR7_UNK15: return { "SPELL_ATTR7_UNK15", "Unknown attribute 15@Attr7", "Exorcism - guaranteed crit vs families?" }; case SPELL_ATTR7_HIDDEN_IN_SPELLBOOK_WHEN_LEARNED: return { "SPELL_ATTR7_HIDDEN_IN_SPELLBOOK_WHEN_LEARNED", "Only In Spellbook Until Learned", "After learning these spells become hidden in spellbook (but are visible when not learned for low level characters)" }; - case SPELL_ATTR7_UNK17: return { "SPELL_ATTR7_UNK17", "SPELL_ATTR7_UNK17", "" }; + case SPELL_ATTR7_UNK17: return { "SPELL_ATTR7_UNK17", "Unknown attribute 17@Attr7", "" }; case SPELL_ATTR7_HAS_CHARGE_EFFECT: return { "SPELL_ATTR7_HAS_CHARGE_EFFECT", "Has charge effect", "" }; case SPELL_ATTR7_ZONE_TELEPORT: return { "SPELL_ATTR7_ZONE_TELEPORT", "Is zone teleport", "" }; - case SPELL_ATTR7_UNK20: return { "SPELL_ATTR7_UNK20", "SPELL_ATTR7_UNK20", "" }; - case SPELL_ATTR7_UNK21: return { "SPELL_ATTR7_UNK21", "SPELL_ATTR7_UNK21", "" }; - case SPELL_ATTR7_UNK22: return { "SPELL_ATTR7_UNK22", "SPELL_ATTR7_UNK22", "" }; - case SPELL_ATTR7_UNK23: return { "SPELL_ATTR7_UNK23", "SPELL_ATTR7_UNK23", "" }; - case SPELL_ATTR7_UNK24: return { "SPELL_ATTR7_UNK24", "SPELL_ATTR7_UNK24", "" }; - case SPELL_ATTR7_UNK25: return { "SPELL_ATTR7_UNK25", "SPELL_ATTR7_UNK25", "" }; - case SPELL_ATTR7_UNK26: return { "SPELL_ATTR7_UNK26", "SPELL_ATTR7_UNK26", "" }; - case SPELL_ATTR7_UNK27: return { "SPELL_ATTR7_UNK27", "SPELL_ATTR7_UNK27", "" }; + case SPELL_ATTR7_UNK20: return { "SPELL_ATTR7_UNK20", "Unknown attribute 20@Attr7", "Invulnerability related?" }; + case SPELL_ATTR7_UNK21: return { "SPELL_ATTR7_UNK21", "Unknown attribute 21@Attr7", "" }; + case SPELL_ATTR7_IGNORES_COLD_WEATHER_FLYING_REQUIREMENT: return { "SPELL_ATTR7_IGNORES_COLD_WEATHER_FLYING_REQUIREMENT", "Ignores Cold Weather Flying Requirement", "" }; + case SPELL_ATTR7_UNK23: return { "SPELL_ATTR7_UNK23", "Unknown attribute 23@Attr7", "" }; + case SPELL_ATTR7_UNK24: return { "SPELL_ATTR7_UNK24", "Unknown attribute 24@Attr7", "" }; + case SPELL_ATTR7_UNK25: return { "SPELL_ATTR7_UNK25", "Unknown attribute 25@Attr7", "" }; + case SPELL_ATTR7_UNK26: return { "SPELL_ATTR7_UNK26", "Unknown attribute 26@Attr7", "" }; + case SPELL_ATTR7_UNK27: return { "SPELL_ATTR7_UNK27", "Unknown attribute 27@Attr7", "" }; case SPELL_ATTR7_CONSOLIDATED_RAID_BUFF: return { "SPELL_ATTR7_CONSOLIDATED_RAID_BUFF", "Consolidate in raid buff frame (client only)", "" }; - case SPELL_ATTR7_UNK29: return { "SPELL_ATTR7_UNK29", "SPELL_ATTR7_UNK29", "" }; - case SPELL_ATTR7_UNK30: return { "SPELL_ATTR7_UNK30", "SPELL_ATTR7_UNK30", "" }; + case SPELL_ATTR7_UNK29: return { "SPELL_ATTR7_UNK29", "Unknown attribute 29@Attr7", "" }; + case SPELL_ATTR7_UNK30: return { "SPELL_ATTR7_UNK30", "Unknown attribute 30@Attr7", "" }; case SPELL_ATTR7_CLIENT_INDICATOR: return { "SPELL_ATTR7_CLIENT_INDICATOR", "Client indicator (client only)", "" }; default: throw std::out_of_range("value"); } @@ -817,7 +817,7 @@ TC_API_EXPORT SpellAttr7 EnumUtils<SpellAttr7>::FromIndex(size_t index) case 19: return SPELL_ATTR7_ZONE_TELEPORT; case 20: return SPELL_ATTR7_UNK20; case 21: return SPELL_ATTR7_UNK21; - case 22: return SPELL_ATTR7_UNK22; + case 22: return SPELL_ATTR7_IGNORES_COLD_WEATHER_FLYING_REQUIREMENT; case 23: return SPELL_ATTR7_UNK23; case 24: return SPELL_ATTR7_UNK24; case 25: return SPELL_ATTR7_UNK25; @@ -839,37 +839,37 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr8>::ToString(SpellAttr8 value) { switch (value) { - case SPELL_ATTR8_CANT_MISS: return { "SPELL_ATTR8_CANT_MISS", "SPELL_ATTR8_CANT_MISS", "" }; - case SPELL_ATTR8_UNK1: return { "SPELL_ATTR8_UNK1", "SPELL_ATTR8_UNK1", "" }; - case SPELL_ATTR8_UNK2: return { "SPELL_ATTR8_UNK2", "SPELL_ATTR8_UNK2", "" }; - case SPELL_ATTR8_UNK3: return { "SPELL_ATTR8_UNK3", "SPELL_ATTR8_UNK3", "" }; - case SPELL_ATTR8_UNK4: return { "SPELL_ATTR8_UNK4", "SPELL_ATTR8_UNK4", "" }; - case SPELL_ATTR8_UNK5: return { "SPELL_ATTR8_UNK5", "SPELL_ATTR8_UNK5", "" }; - case SPELL_ATTR8_UNK6: return { "SPELL_ATTR8_UNK6", "SPELL_ATTR8_UNK6", "" }; - case SPELL_ATTR8_UNK7: return { "SPELL_ATTR8_UNK7", "SPELL_ATTR8_UNK7", "" }; - case SPELL_ATTR8_AFFECT_PARTY_AND_RAID: return { "SPELL_ATTR8_AFFECT_PARTY_AND_RAID", "SPELL_ATTR8_AFFECT_PARTY_AND_RAID", "" }; - case SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER: return { "SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER", "SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER", "Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping)" }; - case SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM: return { "SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM", "SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM", "" }; - case SPELL_ATTR8_UNK11: return { "SPELL_ATTR8_UNK11", "SPELL_ATTR8_UNK11", "" }; - case SPELL_ATTR8_AURA_SEND_AMOUNT: return { "SPELL_ATTR8_AURA_SEND_AMOUNT", "SPELL_ATTR8_AURA_SEND_AMOUNT", "" }; - case SPELL_ATTR8_UNK13: return { "SPELL_ATTR8_UNK13", "SPELL_ATTR8_UNK13", "" }; - case SPELL_ATTR8_UNK14: return { "SPELL_ATTR8_UNK14", "SPELL_ATTR8_UNK14", "" }; - case SPELL_ATTR8_WATER_MOUNT: return { "SPELL_ATTR8_WATER_MOUNT", "SPELL_ATTR8_WATER_MOUNT", "" }; - case SPELL_ATTR8_UNK16: return { "SPELL_ATTR8_UNK16", "SPELL_ATTR8_UNK16", "" }; - case SPELL_ATTR8_UNK17: return { "SPELL_ATTR8_UNK17", "SPELL_ATTR8_UNK17", "" }; - case SPELL_ATTR8_REMEMBER_SPELLS: return { "SPELL_ATTR8_REMEMBER_SPELLS", "SPELL_ATTR8_REMEMBER_SPELLS", "" }; - case SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET: return { "SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET", "SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET", "" }; - case SPELL_ATTR8_ARMOR_SPECIALIZATION: return { "SPELL_ATTR8_ARMOR_SPECIALIZATION", "SPELL_ATTR8_ARMOR_SPECIALIZATION", "" }; - case SPELL_ATTR8_UNK21: return { "SPELL_ATTR8_UNK21", "SPELL_ATTR8_UNK21", "" }; - case SPELL_ATTR8_UNK22: return { "SPELL_ATTR8_UNK22", "SPELL_ATTR8_UNK22", "" }; + case SPELL_ATTR8_CANT_MISS: return { "SPELL_ATTR8_CANT_MISS", "No Attack Block", "" }; + case SPELL_ATTR8_UNK1: return { "SPELL_ATTR8_UNK1", "Unknown attribute 1@Attr8", "" }; + case SPELL_ATTR8_UNK2: return { "SPELL_ATTR8_UNK2", "Unknown attribute 2@Attr8", "" }; + case SPELL_ATTR8_UNK3: return { "SPELL_ATTR8_UNK3", "Unknown attribute 3@Attr8", "" }; + case SPELL_ATTR8_UNK4: return { "SPELL_ATTR8_UNK4", "Unknown attribute 4@Attr8", "" }; + case SPELL_ATTR8_UNK5: return { "SPELL_ATTR8_UNK5", "Unknown attribute 5@Attr8", "" }; + case SPELL_ATTR8_UNK6: return { "SPELL_ATTR8_UNK6", "Unknown attribute 6@Attr8", "" }; + case SPELL_ATTR8_UNK7: return { "SPELL_ATTR8_UNK7", "Unknown attribute 7@Attr8", "" }; + case SPELL_ATTR8_AFFECT_PARTY_AND_RAID: return { "SPELL_ATTR8_AFFECT_PARTY_AND_RAID", "Use Target's Level for Spell Scaling", "" }; + case SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER: return { "SPELL_ATTR8_DONT_RESET_PERIODIC_TIMER", "Periodic Can Crit", "(WRONG) Periodic auras with this flag keep old periodic timer when refreshing at close to one tick remaining (kind of anti DoT clipping)" }; + case SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM: return { "SPELL_ATTR8_NAME_CHANGED_DURING_TRANSFORM", "Mirror creature name", "" }; + case SPELL_ATTR8_UNK11: return { "SPELL_ATTR8_UNK11", "Unknown attribute 11@Attr8", "" }; + case SPELL_ATTR8_AURA_SEND_AMOUNT: return { "SPELL_ATTR8_AURA_SEND_AMOUNT", "Aura Points On Client", "" }; + case SPELL_ATTR8_UNK13: return { "SPELL_ATTR8_UNK13", "Unknown attribute 13@Attr8", "" }; + case SPELL_ATTR8_UNK14: return { "SPELL_ATTR8_UNK14", "Unknown attribute 14@Attr8", "" }; + case SPELL_ATTR8_WATER_MOUNT: return { "SPELL_ATTR8_WATER_MOUNT", "Requires location to be on liquid surface", "" }; + case SPELL_ATTR8_UNK16: return { "SPELL_ATTR8_UNK16", "Unknown attribute 16@Attr8", "" }; + case SPELL_ATTR8_UNK17: return { "SPELL_ATTR8_UNK17", "Unknown attribute 17@Attr8", "" }; + case SPELL_ATTR8_REMEMBER_SPELLS: return { "SPELL_ATTR8_REMEMBER_SPELLS", "SPELL_ATTR8_REMEMBER_SPELLS", "TTILE Ignore Spellcast Override Cost" }; + case SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET: return { "SPELL_ATTR8_USE_COMBO_POINTS_ON_ANY_TARGET", "Allow Targets Hidden by Spawn Tracking", "" }; + case SPELL_ATTR8_ARMOR_SPECIALIZATION: return { "SPELL_ATTR8_ARMOR_SPECIALIZATION", "Requires Equipped Inv Types", "" }; + case SPELL_ATTR8_UNK21: return { "SPELL_ATTR8_UNK21", "Unknown attribute 21@Attr8", "" }; + case SPELL_ATTR8_UNK22: return { "SPELL_ATTR8_UNK22", "Unknown attribute 22@Attr8", "" }; case SPELL_ATTR8_BATTLE_RESURRECTION: return { "SPELL_ATTR8_BATTLE_RESURRECTION", "Enforce In Combat Ressurection Limit", "Used to limit the number of resurrections in boss encounters" }; - case SPELL_ATTR8_HEALING_SPELL: return { "SPELL_ATTR8_HEALING_SPELL", "SPELL_ATTR8_HEALING_SPELL", "" }; - case SPELL_ATTR8_UNK25: return { "SPELL_ATTR8_UNK25", "SPELL_ATTR8_UNK25", "" }; + case SPELL_ATTR8_HEALING_SPELL: return { "SPELL_ATTR8_HEALING_SPELL", "Heal Prediction", "" }; + case SPELL_ATTR8_UNK25: return { "SPELL_ATTR8_UNK25", "Unknown attribute 25@Attr8", "" }; case SPELL_ATTR8_RAID_MARKER: return { "SPELL_ATTR8_RAID_MARKER", "Skip Is Known Check", "" }; - case SPELL_ATTR8_UNK27: return { "SPELL_ATTR8_UNK27", "SPELL_ATTR8_UNK27", "" }; + case SPELL_ATTR8_UNK27: return { "SPELL_ATTR8_UNK27", "Unknown attribute 27@Attr8", "" }; case SPELL_ATTR8_NOT_IN_BG_OR_ARENA: return { "SPELL_ATTR8_NOT_IN_BG_OR_ARENA", "Not in Battleground", "" }; - case SPELL_ATTR8_MASTERY_SPECIALIZATION: return { "SPELL_ATTR8_MASTERY_SPECIALIZATION", "SPELL_ATTR8_MASTERY_SPECIALIZATION", "" }; - case SPELL_ATTR8_UNK30: return { "SPELL_ATTR8_UNK30", "SPELL_ATTR8_UNK30", "" }; + case SPELL_ATTR8_MASTERY_SPECIALIZATION: return { "SPELL_ATTR8_MASTERY_SPECIALIZATION", "Mastery Affects Points", "" }; + case SPELL_ATTR8_UNK30: return { "SPELL_ATTR8_UNK30", "Unknown attribute 30@Attr8", "" }; case SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG: return { "SPELL_ATTR8_ATTACK_IGNORE_IMMUNE_TO_PC_FLAG", "Can Attack ImmunePC", "Do not check UNIT_FLAG_IMMUNE_TO_PC in IsValidAttackTarget" }; default: throw std::out_of_range("value"); } @@ -927,38 +927,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value) { switch (value) { - case SPELL_ATTR9_UNK0: return { "SPELL_ATTR9_UNK0", "SPELL_ATTR9_UNK0", "" }; - case SPELL_ATTR9_UNK1: return { "SPELL_ATTR9_UNK1", "SPELL_ATTR9_UNK1", "" }; + case SPELL_ATTR9_UNK0: return { "SPELL_ATTR9_UNK0", "Unknown attribute 0@Attr9", "" }; + case SPELL_ATTR9_UNK1: return { "SPELL_ATTR9_UNK1", "Unknown attribute 1@Attr9", "" }; case SPELL_ATTR9_RESTRICTED_FLIGHT_AREA: return { "SPELL_ATTR9_RESTRICTED_FLIGHT_AREA", "Only When Illegally Mounted", "" }; - case SPELL_ATTR9_UNK3: return { "SPELL_ATTR9_UNK3", "SPELL_ATTR9_UNK3", "" }; - case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return { "SPELL_ATTR9_SPECIAL_DELAY_CALCULATION", "SPELL_ATTR9_SPECIAL_DELAY_CALCULATION", "" }; - case SPELL_ATTR9_SUMMON_PLAYER_TOTEM: return { "SPELL_ATTR9_SUMMON_PLAYER_TOTEM", "SPELL_ATTR9_SUMMON_PLAYER_TOTEM", "" }; - case SPELL_ATTR9_UNK6: return { "SPELL_ATTR9_UNK6", "SPELL_ATTR9_UNK6", "" }; - case SPELL_ATTR9_UNK7: return { "SPELL_ATTR9_UNK7", "SPELL_ATTR9_UNK7", "" }; - case SPELL_ATTR9_AIMED_SHOT: return { "SPELL_ATTR9_AIMED_SHOT", "SPELL_ATTR9_AIMED_SHOT", "" }; + case SPELL_ATTR9_UNK3: return { "SPELL_ATTR9_UNK3", "Unknown attribute 3@Attr9", "" }; + case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return { "SPELL_ATTR9_SPECIAL_DELAY_CALCULATION", "Missile Speed is Delay (in sec)", "" }; + case SPELL_ATTR9_SUMMON_PLAYER_TOTEM: return { "SPELL_ATTR9_SUMMON_PLAYER_TOTEM", "Ignore Totem Requirements for Casting", "" }; + case SPELL_ATTR9_UNK6: return { "SPELL_ATTR9_UNK6", "Unknown attribute 6@Attr9", "" }; + case SPELL_ATTR9_UNK7: return { "SPELL_ATTR9_UNK7", "Unknown attribute 7@Attr9", "" }; + case SPELL_ATTR9_AIMED_SHOT: return { "SPELL_ATTR9_AIMED_SHOT", "Cooldown Ignores Ranged Weapon", "" }; case SPELL_ATTR9_NOT_USABLE_IN_ARENA: return { "SPELL_ATTR9_NOT_USABLE_IN_ARENA", "Not In Arena", "" }; - case SPELL_ATTR9_UNK10: return { "SPELL_ATTR9_UNK10", "SPELL_ATTR9_UNK10", "" }; - case SPELL_ATTR9_UNK11: return { "SPELL_ATTR9_UNK11", "SPELL_ATTR9_UNK11", "" }; - case SPELL_ATTR9_UNK12: return { "SPELL_ATTR9_UNK12", "SPELL_ATTR9_UNK12", "" }; - case SPELL_ATTR9_SLAM: return { "SPELL_ATTR9_SLAM", "SPELL_ATTR9_SLAM", "" }; + case SPELL_ATTR9_UNK10: return { "SPELL_ATTR9_UNK10", "Unknown attribute 10@Attr9", "" }; + case SPELL_ATTR9_UNK11: return { "SPELL_ATTR9_UNK11", "Unknown attribute 11@Attr9", "" }; + case SPELL_ATTR9_UNK12: return { "SPELL_ATTR9_UNK12", "Unknown attribute 12@Attr9", "" }; + case SPELL_ATTR9_SLAM: return { "SPELL_ATTR9_SLAM", "Haste Affects Melee Ability Casttime", "" }; case SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS: return { "SPELL_ATTR9_USABLE_IN_RATED_BATTLEGROUNDS", "Ignore Default Rated Battleground Restrictions", "" }; - case SPELL_ATTR9_UNK15: return { "SPELL_ATTR9_UNK15", "SPELL_ATTR9_UNK15", "" }; - case SPELL_ATTR9_UNK16: return { "SPELL_ATTR9_UNK16", "SPELL_ATTR9_UNK16", "" }; - case SPELL_ATTR9_UNK17: return { "SPELL_ATTR9_UNK17", "SPELL_ATTR9_UNK17", "" }; - case SPELL_ATTR9_UNK18: return { "SPELL_ATTR9_UNK18", "SPELL_ATTR9_UNK18", "" }; - case SPELL_ATTR9_UNK19: return { "SPELL_ATTR9_UNK19", "SPELL_ATTR9_UNK19", "" }; - case SPELL_ATTR9_UNK20: return { "SPELL_ATTR9_UNK20", "SPELL_ATTR9_UNK20", "" }; - case SPELL_ATTR9_UNK21: return { "SPELL_ATTR9_UNK21", "SPELL_ATTR9_UNK21", "" }; - case SPELL_ATTR9_UNK22: return { "SPELL_ATTR9_UNK22", "SPELL_ATTR9_UNK22", "" }; - case SPELL_ATTR9_UNK23: return { "SPELL_ATTR9_UNK23", "SPELL_ATTR9_UNK23", "" }; - case SPELL_ATTR9_UNK24: return { "SPELL_ATTR9_UNK24", "SPELL_ATTR9_UNK24", "" }; - case SPELL_ATTR9_UNK25: return { "SPELL_ATTR9_UNK25", "SPELL_ATTR9_UNK25", "" }; - case SPELL_ATTR9_UNK26: return { "SPELL_ATTR9_UNK26", "SPELL_ATTR9_UNK26", "" }; - case SPELL_ATTR9_UNK27: return { "SPELL_ATTR9_UNK27", "SPELL_ATTR9_UNK27", "" }; - case SPELL_ATTR9_UNK28: return { "SPELL_ATTR9_UNK28", "SPELL_ATTR9_UNK28", "" }; - case SPELL_ATTR9_UNK29: return { "SPELL_ATTR9_UNK29", "SPELL_ATTR9_UNK29", "" }; - case SPELL_ATTR9_UNK30: return { "SPELL_ATTR9_UNK30", "SPELL_ATTR9_UNK30", "" }; - case SPELL_ATTR9_UNK31: return { "SPELL_ATTR9_UNK31", "SPELL_ATTR9_UNK31", "" }; + case SPELL_ATTR9_UNK15: return { "SPELL_ATTR9_UNK15", "Unknown attribute 15@Attr9", "" }; + case SPELL_ATTR9_UNK16: return { "SPELL_ATTR9_UNK16", "Unknown attribute 16@Attr9", "" }; + case SPELL_ATTR9_UNK17: return { "SPELL_ATTR9_UNK17", "Unknown attribute 17@Attr9", "" }; + case SPELL_ATTR9_UNK18: return { "SPELL_ATTR9_UNK18", "Unknown attribute 18@Attr9", "" }; + case SPELL_ATTR9_UNK19: return { "SPELL_ATTR9_UNK19", "Unknown attribute 19@Attr9", "" }; + case SPELL_ATTR9_UNK20: return { "SPELL_ATTR9_UNK20", "Unknown attribute 20@Attr9", "" }; + case SPELL_ATTR9_UNK21: return { "SPELL_ATTR9_UNK21", "Unknown attribute 21@Attr9", "" }; + case SPELL_ATTR9_UNK22: return { "SPELL_ATTR9_UNK22", "Unknown attribute 22@Attr9", "" }; + case SPELL_ATTR9_UNK23: return { "SPELL_ATTR9_UNK23", "Unknown attribute 23@Attr9", "" }; + case SPELL_ATTR9_UNK24: return { "SPELL_ATTR9_UNK24", "Unknown attribute 24@Attr9", "" }; + case SPELL_ATTR9_UNK25: return { "SPELL_ATTR9_UNK25", "Unknown attribute 25@Attr9", "" }; + case SPELL_ATTR9_UNK26: return { "SPELL_ATTR9_UNK26", "Unknown attribute 26@Attr9", "" }; + case SPELL_ATTR9_UNK27: return { "SPELL_ATTR9_UNK27", "Unknown attribute 27@Attr9", "" }; + case SPELL_ATTR9_UNK28: return { "SPELL_ATTR9_UNK28", "Unknown attribute 28@Attr9", "" }; + case SPELL_ATTR9_UNK29: return { "SPELL_ATTR9_UNK29", "Unknown attribute 29@Attr9", "" }; + case SPELL_ATTR9_UNK30: return { "SPELL_ATTR9_UNK30", "Unknown attribute 30@Attr9", "" }; + case SPELL_ATTR9_UNK31: return { "SPELL_ATTR9_UNK31", "Unknown attribute 31@Attr9", "" }; default: throw std::out_of_range("value"); } } @@ -1015,38 +1015,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr10>::ToString(SpellAttr10 value) { switch (value) { - case SPELL_ATTR10_UNK0: return { "SPELL_ATTR10_UNK0", "SPELL_ATTR10_UNK0", "" }; - case SPELL_ATTR10_UNK1: return { "SPELL_ATTR10_UNK1", "SPELL_ATTR10_UNK1", "" }; - case SPELL_ATTR10_UNK2: return { "SPELL_ATTR10_UNK2", "SPELL_ATTR10_UNK2", "" }; - case SPELL_ATTR10_UNK3: return { "SPELL_ATTR10_UNK3", "SPELL_ATTR10_UNK3", "" }; - case SPELL_ATTR10_WATER_SPOUT: return { "SPELL_ATTR10_WATER_SPOUT", "SPELL_ATTR10_WATER_SPOUT", "" }; - case SPELL_ATTR10_UNK5: return { "SPELL_ATTR10_UNK5", "SPELL_ATTR10_UNK5", "" }; - case SPELL_ATTR10_UNK6: return { "SPELL_ATTR10_UNK6", "SPELL_ATTR10_UNK6", "" }; - case SPELL_ATTR10_TELEPORT_PLAYER: return { "SPELL_ATTR10_TELEPORT_PLAYER", "SPELL_ATTR10_TELEPORT_PLAYER", "" }; - case SPELL_ATTR10_UNK8: return { "SPELL_ATTR10_UNK8", "SPELL_ATTR10_UNK8", "" }; - case SPELL_ATTR10_UNK9: return { "SPELL_ATTR10_UNK9", "SPELL_ATTR10_UNK9", "" }; - case SPELL_ATTR10_UNK10: return { "SPELL_ATTR10_UNK10", "SPELL_ATTR10_UNK10", "" }; - case SPELL_ATTR10_HERB_GATHERING_MINING: return { "SPELL_ATTR10_HERB_GATHERING_MINING", "SPELL_ATTR10_HERB_GATHERING_MINING", "" }; + case SPELL_ATTR10_UNK0: return { "SPELL_ATTR10_UNK0", "Unknown attribute 0@Attr10", "" }; + case SPELL_ATTR10_UNK1: return { "SPELL_ATTR10_UNK1", "Unknown attribute 1@Attr10", "" }; + case SPELL_ATTR10_UNK2: return { "SPELL_ATTR10_UNK2", "Unknown attribute 2@Attr10", "" }; + case SPELL_ATTR10_UNK3: return { "SPELL_ATTR10_UNK3", "Unknown attribute 3@Attr10", "" }; + case SPELL_ATTR10_WATER_SPOUT: return { "SPELL_ATTR10_WATER_SPOUT", "NPC Knockback - ignore doors", "" }; + case SPELL_ATTR10_UNK5: return { "SPELL_ATTR10_UNK5", "Unknown attribute 5@Attr10", "" }; + case SPELL_ATTR10_UNK6: return { "SPELL_ATTR10_UNK6", "Unknown attribute 6@Attr10", "" }; + case SPELL_ATTR10_TELEPORT_PLAYER: return { "SPELL_ATTR10_TELEPORT_PLAYER", "Ignore instance lock and farm limit on teleport", "" }; + case SPELL_ATTR10_UNK8: return { "SPELL_ATTR10_UNK8", "Unknown attribute 8@Attr10", "" }; + case SPELL_ATTR10_UNK9: return { "SPELL_ATTR10_UNK9", "Unknown attribute 9@Attr10", "" }; + case SPELL_ATTR10_UNK10: return { "SPELL_ATTR10_UNK10", "Unknown attribute 10@Attr10", "" }; + case SPELL_ATTR10_HERB_GATHERING_MINING: return { "SPELL_ATTR10_HERB_GATHERING_MINING", "Lock chest at precast", "" }; case SPELL_ATTR10_USE_SPELL_BASE_LEVEL_FOR_SCALING: return { "SPELL_ATTR10_USE_SPELL_BASE_LEVEL_FOR_SCALING", "Use Spell Base Level For Scaling", "" }; case SPELL_ATTR10_RESET_COOLDOWN_ON_ENCOUNTER_END: return { "SPELL_ATTR10_RESET_COOLDOWN_ON_ENCOUNTER_END", "Reset cooldown upon ending an encounter", "" }; case SPELL_ATTR10_ROLLING_PERIODIC: return { "SPELL_ATTR10_ROLLING_PERIODIC", "Rolling Periodic", "Add remaining periodic damage to new aura when refreshed" }; - case SPELL_ATTR10_UNK15: return { "SPELL_ATTR10_UNK15", "SPELL_ATTR10_UNK15", "" }; - case SPELL_ATTR10_UNK16: return { "SPELL_ATTR10_UNK16", "SPELL_ATTR10_UNK16", "" }; + case SPELL_ATTR10_UNK15: return { "SPELL_ATTR10_UNK15", "Unknown attribute 15@Attr10", "" }; + case SPELL_ATTR10_UNK16: return { "SPELL_ATTR10_UNK16", "Unknown attribute 16@Attr10", "" }; case SPELL_ATTR10_CAN_DODGE_PARRY_WHILE_CASTING: return { "SPELL_ATTR10_CAN_DODGE_PARRY_WHILE_CASTING", "Allow Defense While Casting", "" }; - case SPELL_ATTR10_UNK18: return { "SPELL_ATTR10_UNK18", "SPELL_ATTR10_UNK18", "" }; - case SPELL_ATTR10_UNK19: return { "SPELL_ATTR10_UNK19", "SPELL_ATTR10_UNK19", "" }; - case SPELL_ATTR10_UNK20: return { "SPELL_ATTR10_UNK20", "SPELL_ATTR10_UNK20", "" }; - case SPELL_ATTR10_UNK21: return { "SPELL_ATTR10_UNK21", "SPELL_ATTR10_UNK21", "" }; - case SPELL_ATTR10_UNK22: return { "SPELL_ATTR10_UNK22", "SPELL_ATTR10_UNK22", "" }; - case SPELL_ATTR10_UNK23: return { "SPELL_ATTR10_UNK23", "SPELL_ATTR10_UNK23", "" }; - case SPELL_ATTR10_UNK24: return { "SPELL_ATTR10_UNK24", "SPELL_ATTR10_UNK24", "" }; - case SPELL_ATTR10_UNK25: return { "SPELL_ATTR10_UNK25", "SPELL_ATTR10_UNK25", "" }; - case SPELL_ATTR10_UNK26: return { "SPELL_ATTR10_UNK26", "SPELL_ATTR10_UNK26", "" }; - case SPELL_ATTR10_UNK27: return { "SPELL_ATTR10_UNK27", "SPELL_ATTR10_UNK27", "" }; - case SPELL_ATTR10_UNK28: return { "SPELL_ATTR10_UNK28", "SPELL_ATTR10_UNK28", "" }; + case SPELL_ATTR10_UNK18: return { "SPELL_ATTR10_UNK18", "Unknown attribute 18@Attr10", "" }; + case SPELL_ATTR10_UNK19: return { "SPELL_ATTR10_UNK19", "Unknown attribute 19@Attr10", "" }; + case SPELL_ATTR10_UNK20: return { "SPELL_ATTR10_UNK20", "Unknown attribute 20@Attr10", "" }; + case SPELL_ATTR10_UNK21: return { "SPELL_ATTR10_UNK21", "Unknown attribute 21@Attr10", "" }; + case SPELL_ATTR10_UNK22: return { "SPELL_ATTR10_UNK22", "Unknown attribute 22@Attr10", "" }; + case SPELL_ATTR10_UNK23: return { "SPELL_ATTR10_UNK23", "Unknown attribute 23@Attr10", "" }; + case SPELL_ATTR10_UNK24: return { "SPELL_ATTR10_UNK24", "Unknown attribute 24@Attr10", "" }; + case SPELL_ATTR10_UNK25: return { "SPELL_ATTR10_UNK25", "Unknown attribute 25@Attr10", "" }; + case SPELL_ATTR10_UNK26: return { "SPELL_ATTR10_UNK26", "Unknown attribute 26@Attr10", "" }; + case SPELL_ATTR10_UNK27: return { "SPELL_ATTR10_UNK27", "Unknown attribute 27@Attr10", "" }; + case SPELL_ATTR10_UNK28: return { "SPELL_ATTR10_UNK28", "Unknown attribute 28@Attr10", "" }; case SPELL_ATTR10_MOUNT_IS_NOT_ACCOUNT_WIDE: return { "SPELL_ATTR10_MOUNT_IS_NOT_ACCOUNT_WIDE", "This Mount is NOT at the account level", "" }; - case SPELL_ATTR10_UNK30: return { "SPELL_ATTR10_UNK30", "SPELL_ATTR10_UNK30", "" }; - case SPELL_ATTR10_UNK31: return { "SPELL_ATTR10_UNK31", "SPELL_ATTR10_UNK31", "" }; + case SPELL_ATTR10_UNK30: return { "SPELL_ATTR10_UNK30", "Unknown attribute 30@Attr10", "" }; + case SPELL_ATTR10_UNK31: return { "SPELL_ATTR10_UNK31", "Unknown attribute 31@Attr10", "" }; default: throw std::out_of_range("value"); } } @@ -1103,38 +1103,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr11>::ToString(SpellAttr11 value) { switch (value) { - case SPELL_ATTR11_UNK0: return { "SPELL_ATTR11_UNK0", "SPELL_ATTR11_UNK0", "" }; - case SPELL_ATTR11_UNK1: return { "SPELL_ATTR11_UNK1", "SPELL_ATTR11_UNK1", "" }; + case SPELL_ATTR11_UNK0: return { "SPELL_ATTR11_UNK0", "Unknown attribute 0@Attr11", "" }; + case SPELL_ATTR11_UNK1: return { "SPELL_ATTR11_UNK1", "Unknown attribute 1@Attr11", "" }; case SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL: return { "SPELL_ATTR11_SCALES_WITH_ITEM_LEVEL", "Scales with Casting Item's Level", "" }; - case SPELL_ATTR11_UNK3: return { "SPELL_ATTR11_UNK3", "SPELL_ATTR11_UNK3", "" }; - case SPELL_ATTR11_UNK4: return { "SPELL_ATTR11_UNK4", "SPELL_ATTR11_UNK4", "" }; + case SPELL_ATTR11_UNK3: return { "SPELL_ATTR11_UNK3", "Unknown attribute 3@Attr11", "" }; + case SPELL_ATTR11_UNK4: return { "SPELL_ATTR11_UNK4", "Unknown attribute 4@Attr11", "" }; case SPELL_ATTR11_ABSORB_ENVIRONMENTAL_DAMAGE: return { "SPELL_ATTR11_ABSORB_ENVIRONMENTAL_DAMAGE", "Absorb Falling Damage", "" }; - case SPELL_ATTR11_UNK6: return { "SPELL_ATTR11_UNK6", "SPELL_ATTR11_UNK6", "" }; + case SPELL_ATTR11_UNK6: return { "SPELL_ATTR11_UNK6", "Unknown attribute 6@Attr11", "" }; case SPELL_ATTR11_RANK_IGNORES_CASTER_LEVEL: return { "SPELL_ATTR11_RANK_IGNORES_CASTER_LEVEL", "Ignore Caster's spell level", "Spell_C_GetSpellRank returns SpellLevels->MaxLevel * 5 instead of std::min(SpellLevels->MaxLevel, caster->Level) * 5" }; - case SPELL_ATTR11_UNK8: return { "SPELL_ATTR11_UNK8", "SPELL_ATTR11_UNK8", "" }; - case SPELL_ATTR11_UNK9: return { "SPELL_ATTR11_UNK9", "SPELL_ATTR11_UNK9", "" }; - case SPELL_ATTR11_UNK10: return { "SPELL_ATTR11_UNK10", "SPELL_ATTR11_UNK10", "" }; + case SPELL_ATTR11_UNK8: return { "SPELL_ATTR11_UNK8", "Unknown attribute 8@Attr11", "" }; + case SPELL_ATTR11_UNK9: return { "SPELL_ATTR11_UNK9", "Unknown attribute 9@Attr11", "" }; + case SPELL_ATTR11_UNK10: return { "SPELL_ATTR11_UNK10", "Unknown attribute 10@Attr11", "" }; case SPELL_ATTR11_NOT_USABLE_IN_INSTANCES: return { "SPELL_ATTR11_NOT_USABLE_IN_INSTANCES", "Not in Instances", "" }; - case SPELL_ATTR11_UNK12: return { "SPELL_ATTR11_UNK12", "SPELL_ATTR11_UNK12", "" }; - case SPELL_ATTR11_UNK13: return { "SPELL_ATTR11_UNK13", "SPELL_ATTR11_UNK13", "" }; - case SPELL_ATTR11_UNK14: return { "SPELL_ATTR11_UNK14", "SPELL_ATTR11_UNK14", "" }; - case SPELL_ATTR11_UNK15: return { "SPELL_ATTR11_UNK15", "SPELL_ATTR11_UNK15", "" }; + case SPELL_ATTR11_UNK12: return { "SPELL_ATTR11_UNK12", "Unknown attribute 12@Attr11", "" }; + case SPELL_ATTR11_UNK13: return { "SPELL_ATTR11_UNK13", "Unknown attribute 13@Attr11", "" }; + case SPELL_ATTR11_UNK14: return { "SPELL_ATTR11_UNK14", "Unknown attribute 14@Attr11", "" }; + case SPELL_ATTR11_UNK15: return { "SPELL_ATTR11_UNK15", "Unknown attribute 15@Attr11", "" }; case SPELL_ATTR11_NOT_USABLE_IN_CHALLENGE_MODE: return { "SPELL_ATTR11_NOT_USABLE_IN_CHALLENGE_MODE", "Not in Mythic+ Mode (Challenge Mode)", "" }; - case SPELL_ATTR11_UNK17: return { "SPELL_ATTR11_UNK17", "SPELL_ATTR11_UNK17", "" }; - case SPELL_ATTR11_UNK18: return { "SPELL_ATTR11_UNK18", "SPELL_ATTR11_UNK18", "" }; - case SPELL_ATTR11_UNK19: return { "SPELL_ATTR11_UNK19", "SPELL_ATTR11_UNK19", "" }; - case SPELL_ATTR11_UNK20: return { "SPELL_ATTR11_UNK20", "SPELL_ATTR11_UNK20", "" }; - case SPELL_ATTR11_UNK21: return { "SPELL_ATTR11_UNK21", "SPELL_ATTR11_UNK21", "" }; - case SPELL_ATTR11_UNK22: return { "SPELL_ATTR11_UNK22", "SPELL_ATTR11_UNK22", "" }; - case SPELL_ATTR11_UNK23: return { "SPELL_ATTR11_UNK23", "SPELL_ATTR11_UNK23", "" }; - case SPELL_ATTR11_UNK24: return { "SPELL_ATTR11_UNK24", "SPELL_ATTR11_UNK24", "" }; - case SPELL_ATTR11_UNK25: return { "SPELL_ATTR11_UNK25", "SPELL_ATTR11_UNK25", "" }; - case SPELL_ATTR11_UNK26: return { "SPELL_ATTR11_UNK26", "SPELL_ATTR11_UNK26", "" }; - case SPELL_ATTR11_UNK27: return { "SPELL_ATTR11_UNK27", "SPELL_ATTR11_UNK27", "" }; - case SPELL_ATTR11_UNK28: return { "SPELL_ATTR11_UNK28", "SPELL_ATTR11_UNK28", "" }; - case SPELL_ATTR11_UNK29: return { "SPELL_ATTR11_UNK29", "SPELL_ATTR11_UNK29", "" }; - case SPELL_ATTR11_UNK30: return { "SPELL_ATTR11_UNK30", "SPELL_ATTR11_UNK30", "" }; - case SPELL_ATTR11_UNK31: return { "SPELL_ATTR11_UNK31", "SPELL_ATTR11_UNK31", "" }; + case SPELL_ATTR11_UNK17: return { "SPELL_ATTR11_UNK17", "Unknown attribute 17@Attr11", "" }; + case SPELL_ATTR11_UNK18: return { "SPELL_ATTR11_UNK18", "Unknown attribute 18@Attr11", "" }; + case SPELL_ATTR11_UNK19: return { "SPELL_ATTR11_UNK19", "Unknown attribute 19@Attr11", "" }; + case SPELL_ATTR11_UNK20: return { "SPELL_ATTR11_UNK20", "Unknown attribute 20@Attr11", "" }; + case SPELL_ATTR11_UNK21: return { "SPELL_ATTR11_UNK21", "Unknown attribute 21@Attr11", "" }; + case SPELL_ATTR11_UNK22: return { "SPELL_ATTR11_UNK22", "Unknown attribute 22@Attr11", "" }; + case SPELL_ATTR11_UNK23: return { "SPELL_ATTR11_UNK23", "Unknown attribute 23@Attr11", "" }; + case SPELL_ATTR11_UNK24: return { "SPELL_ATTR11_UNK24", "Unknown attribute 24@Attr11", "" }; + case SPELL_ATTR11_UNK25: return { "SPELL_ATTR11_UNK25", "Unknown attribute 25@Attr11", "" }; + case SPELL_ATTR11_UNK26: return { "SPELL_ATTR11_UNK26", "Unknown attribute 26@Attr11", "" }; + case SPELL_ATTR11_UNK27: return { "SPELL_ATTR11_UNK27", "Unknown attribute 27@Attr11", "" }; + case SPELL_ATTR11_UNK28: return { "SPELL_ATTR11_UNK28", "Unknown attribute 28@Attr11", "" }; + case SPELL_ATTR11_UNK29: return { "SPELL_ATTR11_UNK29", "Unknown attribute 29@Attr11", "" }; + case SPELL_ATTR11_UNK30: return { "SPELL_ATTR11_UNK30", "Unknown attribute 30@Attr11", "" }; + case SPELL_ATTR11_UNK31: return { "SPELL_ATTR11_UNK31", "Unknown attribute 31@Attr11", "" }; default: throw std::out_of_range("value"); } } @@ -1191,38 +1191,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr12>::ToString(SpellAttr12 value) { switch (value) { - case SPELL_ATTR12_UNK0: return { "SPELL_ATTR12_UNK0", "SPELL_ATTR12_UNK0", "" }; - case SPELL_ATTR12_UNK1: return { "SPELL_ATTR12_UNK1", "SPELL_ATTR12_UNK1", "" }; - case SPELL_ATTR12_UNK2: return { "SPELL_ATTR12_UNK2", "SPELL_ATTR12_UNK2", "" }; - case SPELL_ATTR12_UNK3: return { "SPELL_ATTR12_UNK3", "SPELL_ATTR12_UNK3", "" }; - case SPELL_ATTR12_UNK4: return { "SPELL_ATTR12_UNK4", "SPELL_ATTR12_UNK4", "" }; - case SPELL_ATTR12_UNK5: return { "SPELL_ATTR12_UNK5", "SPELL_ATTR12_UNK5", "" }; - case SPELL_ATTR12_UNK6: return { "SPELL_ATTR12_UNK6", "SPELL_ATTR12_UNK6", "" }; - case SPELL_ATTR12_UNK7: return { "SPELL_ATTR12_UNK7", "SPELL_ATTR12_UNK7", "" }; - case SPELL_ATTR12_UNK8: return { "SPELL_ATTR12_UNK8", "SPELL_ATTR12_UNK8", "" }; + case SPELL_ATTR12_UNK0: return { "SPELL_ATTR12_UNK0", "Unknown attribute 0@Attr12", "" }; + case SPELL_ATTR12_UNK1: return { "SPELL_ATTR12_UNK1", "Unknown attribute 1@Attr12", "" }; + case SPELL_ATTR12_UNK2: return { "SPELL_ATTR12_UNK2", "Unknown attribute 2@Attr12", "" }; + case SPELL_ATTR12_UNK3: return { "SPELL_ATTR12_UNK3", "Unknown attribute 3@Attr12", "" }; + case SPELL_ATTR12_UNK4: return { "SPELL_ATTR12_UNK4", "Unknown attribute 4@Attr12", "" }; + case SPELL_ATTR12_UNK5: return { "SPELL_ATTR12_UNK5", "Unknown attribute 5@Attr12", "" }; + case SPELL_ATTR12_UNK6: return { "SPELL_ATTR12_UNK6", "Unknown attribute 6@Attr12", "" }; + case SPELL_ATTR12_UNK7: return { "SPELL_ATTR12_UNK7", "Unknown attribute 7@Attr12", "" }; + case SPELL_ATTR12_UNK8: return { "SPELL_ATTR12_UNK8", "Unknown attribute 8@Attr12", "" }; case SPELL_ATTR12_IGNORE_CASTING_DISABLED: return { "SPELL_ATTR12_IGNORE_CASTING_DISABLED", "Active Passive", "Ignores aura 263 SPELL_AURA_DISABLE_CASTING_EXCEPT_ABILITIES" }; - case SPELL_ATTR12_UNK10: return { "SPELL_ATTR12_UNK10", "SPELL_ATTR12_UNK10", "" }; - case SPELL_ATTR12_UNK11: return { "SPELL_ATTR12_UNK11", "SPELL_ATTR12_UNK11", "" }; - case SPELL_ATTR12_UNK12: return { "SPELL_ATTR12_UNK12", "SPELL_ATTR12_UNK12", "" }; - case SPELL_ATTR12_UNK13: return { "SPELL_ATTR12_UNK13", "SPELL_ATTR12_UNK13", "" }; - case SPELL_ATTR12_UNK14: return { "SPELL_ATTR12_UNK14", "SPELL_ATTR12_UNK14", "" }; - case SPELL_ATTR12_UNK15: return { "SPELL_ATTR12_UNK15", "SPELL_ATTR12_UNK15", "" }; - case SPELL_ATTR12_UNK16: return { "SPELL_ATTR12_UNK16", "SPELL_ATTR12_UNK16", "" }; - case SPELL_ATTR12_UNK17: return { "SPELL_ATTR12_UNK17", "SPELL_ATTR12_UNK17", "" }; - case SPELL_ATTR12_UNK18: return { "SPELL_ATTR12_UNK18", "SPELL_ATTR12_UNK18", "" }; - case SPELL_ATTR12_UNK19: return { "SPELL_ATTR12_UNK19", "SPELL_ATTR12_UNK19", "" }; - case SPELL_ATTR12_UNK20: return { "SPELL_ATTR12_UNK20", "SPELL_ATTR12_UNK20", "" }; - case SPELL_ATTR12_UNK21: return { "SPELL_ATTR12_UNK21", "SPELL_ATTR12_UNK21", "" }; - case SPELL_ATTR12_UNK22: return { "SPELL_ATTR12_UNK22", "SPELL_ATTR12_UNK22", "" }; + case SPELL_ATTR12_UNK10: return { "SPELL_ATTR12_UNK10", "Unknown attribute 10@Attr12", "" }; + case SPELL_ATTR12_UNK11: return { "SPELL_ATTR12_UNK11", "Unknown attribute 11@Attr12", "" }; + case SPELL_ATTR12_UNK12: return { "SPELL_ATTR12_UNK12", "Unknown attribute 12@Attr12", "" }; + case SPELL_ATTR12_UNK13: return { "SPELL_ATTR12_UNK13", "Unknown attribute 13@Attr12", "" }; + case SPELL_ATTR12_UNK14: return { "SPELL_ATTR12_UNK14", "Unknown attribute 14@Attr12", "" }; + case SPELL_ATTR12_UNK15: return { "SPELL_ATTR12_UNK15", "Unknown attribute 15@Attr12", "" }; + case SPELL_ATTR12_UNK16: return { "SPELL_ATTR12_UNK16", "Unknown attribute 16@Attr12", "" }; + case SPELL_ATTR12_UNK17: return { "SPELL_ATTR12_UNK17", "Unknown attribute 17@Attr12", "" }; + case SPELL_ATTR12_UNK18: return { "SPELL_ATTR12_UNK18", "Unknown attribute 18@Attr12", "" }; + case SPELL_ATTR12_UNK19: return { "SPELL_ATTR12_UNK19", "Unknown attribute 19@Attr12", "" }; + case SPELL_ATTR12_UNK20: return { "SPELL_ATTR12_UNK20", "Unknown attribute 20@Attr12", "" }; + case SPELL_ATTR12_UNK21: return { "SPELL_ATTR12_UNK21", "Unknown attribute 21@Attr12", "" }; + case SPELL_ATTR12_UNK22: return { "SPELL_ATTR12_UNK22", "Unknown attribute 22@Attr12", "" }; case SPELL_ATTR12_START_COOLDOWN_ON_CAST_START: return { "SPELL_ATTR12_START_COOLDOWN_ON_CAST_START", "Trigger Cooldown On Spell Start", "" }; - case SPELL_ATTR12_IS_GARRISON_BUFF: return { "SPELL_ATTR12_IS_GARRISON_BUFF", "SPELL_ATTR12_IS_GARRISON_BUFF", "" }; - case SPELL_ATTR12_UNK25: return { "SPELL_ATTR12_UNK25", "SPELL_ATTR12_UNK25", "" }; - case SPELL_ATTR12_UNK26: return { "SPELL_ATTR12_UNK26", "SPELL_ATTR12_UNK26", "" }; - case SPELL_ATTR12_IS_READINESS_SPELL: return { "SPELL_ATTR12_IS_READINESS_SPELL", "SPELL_ATTR12_IS_READINESS_SPELL", "" }; - case SPELL_ATTR12_UNK28: return { "SPELL_ATTR12_UNK28", "SPELL_ATTR12_UNK28", "" }; - case SPELL_ATTR12_UNK29: return { "SPELL_ATTR12_UNK29", "SPELL_ATTR12_UNK29", "" }; - case SPELL_ATTR12_UNK30: return { "SPELL_ATTR12_UNK30", "SPELL_ATTR12_UNK30", "" }; - case SPELL_ATTR12_UNK31: return { "SPELL_ATTR12_UNK31", "SPELL_ATTR12_UNK31", "" }; + case SPELL_ATTR12_IS_GARRISON_BUFF: return { "SPELL_ATTR12_IS_GARRISON_BUFF", "Never Learn", "" }; + case SPELL_ATTR12_UNK25: return { "SPELL_ATTR12_UNK25", "Unknown attribute 25@Attr12", "" }; + case SPELL_ATTR12_UNK26: return { "SPELL_ATTR12_UNK26", "Unknown attribute 26@Attr12", "" }; + case SPELL_ATTR12_IS_READINESS_SPELL: return { "SPELL_ATTR12_IS_READINESS_SPELL", "Recompute Aura on Mercenary Mode", "" }; + case SPELL_ATTR12_UNK28: return { "SPELL_ATTR12_UNK28", "Unknown attribute 28@Attr12", "" }; + case SPELL_ATTR12_UNK29: return { "SPELL_ATTR12_UNK29", "Unknown attribute 29@Attr12", "" }; + case SPELL_ATTR12_UNK30: return { "SPELL_ATTR12_UNK30", "Unknown attribute 30@Attr12", "" }; + case SPELL_ATTR12_UNK31: return { "SPELL_ATTR12_UNK31", "Unknown attribute 31@Attr12", "" }; default: throw std::out_of_range("value"); } } @@ -1279,38 +1279,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr13>::ToString(SpellAttr13 value) { switch (value) { - case SPELL_ATTR13_UNK0: return { "SPELL_ATTR13_UNK0", "SPELL_ATTR13_UNK0", "" }; - case SPELL_ATTR13_UNK1: return { "SPELL_ATTR13_UNK1", "SPELL_ATTR13_UNK1", "" }; - case SPELL_ATTR13_PASSIVE_IS_UPGRADE: return { "SPELL_ATTR13_PASSIVE_IS_UPGRADE", "SPELL_ATTR13_PASSIVE_IS_UPGRADE", "2 Displays \042Upgrade\042 in spell tooltip instead of \042Passive\042" }; - case SPELL_ATTR13_UNK3: return { "SPELL_ATTR13_UNK3", "SPELL_ATTR13_UNK3", "" }; - case SPELL_ATTR13_UNK4: return { "SPELL_ATTR13_UNK4", "SPELL_ATTR13_UNK4", "" }; - case SPELL_ATTR13_UNK5: return { "SPELL_ATTR13_UNK5", "SPELL_ATTR13_UNK5", "" }; - case SPELL_ATTR13_UNK6: return { "SPELL_ATTR13_UNK6", "SPELL_ATTR13_UNK6", "" }; - case SPELL_ATTR13_UNK7: return { "SPELL_ATTR13_UNK7", "SPELL_ATTR13_UNK7", "" }; - case SPELL_ATTR13_UNK8: return { "SPELL_ATTR13_UNK8", "SPELL_ATTR13_UNK8", "" }; - case SPELL_ATTR13_UNK9: return { "SPELL_ATTR13_UNK9", "SPELL_ATTR13_UNK9", "" }; - case SPELL_ATTR13_UNK10: return { "SPELL_ATTR13_UNK10", "SPELL_ATTR13_UNK10", "" }; - case SPELL_ATTR13_UNK11: return { "SPELL_ATTR13_UNK11", "SPELL_ATTR13_UNK11", "" }; - case SPELL_ATTR13_UNK12: return { "SPELL_ATTR13_UNK12", "SPELL_ATTR13_UNK12", "" }; - case SPELL_ATTR13_UNK13: return { "SPELL_ATTR13_UNK13", "SPELL_ATTR13_UNK13", "" }; - case SPELL_ATTR13_UNK14: return { "SPELL_ATTR13_UNK14", "SPELL_ATTR13_UNK14", "" }; - case SPELL_ATTR13_UNK15: return { "SPELL_ATTR13_UNK15", "SPELL_ATTR13_UNK15", "" }; - case SPELL_ATTR13_UNK16: return { "SPELL_ATTR13_UNK16", "SPELL_ATTR13_UNK16", "" }; - case SPELL_ATTR13_UNK17: return { "SPELL_ATTR13_UNK17", "SPELL_ATTR13_UNK17", "" }; - case SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT: return { "SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT", "SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT", "" }; - case SPELL_ATTR13_UNK19: return { "SPELL_ATTR13_UNK19", "SPELL_ATTR13_UNK19", "" }; - case SPELL_ATTR13_UNK20: return { "SPELL_ATTR13_UNK20", "SPELL_ATTR13_UNK20", "" }; - case SPELL_ATTR13_UNK21: return { "SPELL_ATTR13_UNK21", "SPELL_ATTR13_UNK21", "" }; - case SPELL_ATTR13_UNK22: return { "SPELL_ATTR13_UNK22", "SPELL_ATTR13_UNK22", "" }; - case SPELL_ATTR13_UNK23: return { "SPELL_ATTR13_UNK23", "SPELL_ATTR13_UNK23", "" }; - case SPELL_ATTR13_UNK24: return { "SPELL_ATTR13_UNK24", "SPELL_ATTR13_UNK24", "" }; - case SPELL_ATTR13_UNK25: return { "SPELL_ATTR13_UNK25", "SPELL_ATTR13_UNK25", "" }; - case SPELL_ATTR13_UNK26: return { "SPELL_ATTR13_UNK26", "SPELL_ATTR13_UNK26", "" }; - case SPELL_ATTR13_UNK27: return { "SPELL_ATTR13_UNK27", "SPELL_ATTR13_UNK27", "" }; - case SPELL_ATTR13_UNK28: return { "SPELL_ATTR13_UNK28", "SPELL_ATTR13_UNK28", "" }; - case SPELL_ATTR13_UNK29: return { "SPELL_ATTR13_UNK29", "SPELL_ATTR13_UNK29", "" }; - case SPELL_ATTR13_UNK30: return { "SPELL_ATTR13_UNK30", "SPELL_ATTR13_UNK30", "" }; - case SPELL_ATTR13_UNK31: return { "SPELL_ATTR13_UNK31", "SPELL_ATTR13_UNK31", "" }; + case SPELL_ATTR13_UNK0: return { "SPELL_ATTR13_UNK0", "Unknown attribute 0@Attr13", "" }; + case SPELL_ATTR13_UNK1: return { "SPELL_ATTR13_UNK1", "Unknown attribute 0@Attr13", "" }; + case SPELL_ATTR13_PASSIVE_IS_UPGRADE: return { "SPELL_ATTR13_PASSIVE_IS_UPGRADE", "Is Upgrade", "Displays \042Upgrade\042 in spell tooltip instead of \042Passive\042" }; + case SPELL_ATTR13_UNK3: return { "SPELL_ATTR13_UNK3", "Unknown attribute 3@Attr13", "" }; + case SPELL_ATTR13_UNK4: return { "SPELL_ATTR13_UNK4", "Unknown attribute 4@Attr13", "" }; + case SPELL_ATTR13_UNK5: return { "SPELL_ATTR13_UNK5", "Unknown attribute 5@Attr13", "" }; + case SPELL_ATTR13_UNK6: return { "SPELL_ATTR13_UNK6", "Unknown attribute 6@Attr13", "" }; + case SPELL_ATTR13_UNK7: return { "SPELL_ATTR13_UNK7", "Unknown attribute 7@Attr13", "" }; + case SPELL_ATTR13_UNK8: return { "SPELL_ATTR13_UNK8", "Unknown attribute 8@Attr13", "" }; + case SPELL_ATTR13_UNK9: return { "SPELL_ATTR13_UNK9", "Unknown attribute 9@Attr13", "" }; + case SPELL_ATTR13_UNK10: return { "SPELL_ATTR13_UNK10", "Unknown attribute 10@Attr13", "" }; + case SPELL_ATTR13_UNK11: return { "SPELL_ATTR13_UNK11", "Unknown attribute 11@Attr13", "" }; + case SPELL_ATTR13_UNK12: return { "SPELL_ATTR13_UNK12", "Unknown attribute 12@Attr13", "" }; + case SPELL_ATTR13_UNK13: return { "SPELL_ATTR13_UNK13", "Unknown attribute 13@Attr13", "" }; + case SPELL_ATTR13_UNK14: return { "SPELL_ATTR13_UNK14", "Unknown attribute 14@Attr13", "" }; + case SPELL_ATTR13_UNK15: return { "SPELL_ATTR13_UNK15", "Unknown attribute 15@Attr13", "" }; + case SPELL_ATTR13_UNK16: return { "SPELL_ATTR13_UNK16", "Unknown attribute 16@Attr13", "" }; + case SPELL_ATTR13_UNK17: return { "SPELL_ATTR13_UNK17", "Unknown attribute 17@Attr13", "" }; + case SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT: return { "SPELL_ATTR13_ACTIVATES_REQUIRED_SHAPESHIFT", "Do Not Enforce Shapeshift Requirements", "" }; + case SPELL_ATTR13_UNK19: return { "SPELL_ATTR13_UNK19", "Unknown attribute 19@Attr13", "" }; + case SPELL_ATTR13_UNK20: return { "SPELL_ATTR13_UNK20", "Unknown attribute 20@Attr13", "" }; + case SPELL_ATTR13_UNK21: return { "SPELL_ATTR13_UNK21", "Unknown attribute 21@Attr13", "" }; + case SPELL_ATTR13_UNK22: return { "SPELL_ATTR13_UNK22", "Unknown attribute 22@Attr13", "" }; + case SPELL_ATTR13_UNK23: return { "SPELL_ATTR13_UNK23", "Unknown attribute 23@Attr13", "" }; + case SPELL_ATTR13_UNK24: return { "SPELL_ATTR13_UNK24", "Unknown attribute 24@Attr13", "" }; + case SPELL_ATTR13_UNK25: return { "SPELL_ATTR13_UNK25", "Unknown attribute 25@Attr13", "" }; + case SPELL_ATTR13_UNK26: return { "SPELL_ATTR13_UNK26", "Unknown attribute 26@Attr13", "" }; + case SPELL_ATTR13_UNK27: return { "SPELL_ATTR13_UNK27", "Unknown attribute 27@Attr13", "" }; + case SPELL_ATTR13_UNK28: return { "SPELL_ATTR13_UNK28", "Unknown attribute 28@Attr13", "" }; + case SPELL_ATTR13_UNK29: return { "SPELL_ATTR13_UNK29", "Unknown attribute 29@Attr13", "" }; + case SPELL_ATTR13_UNK30: return { "SPELL_ATTR13_UNK30", "Unknown attribute 30@Attr13", "" }; + case SPELL_ATTR13_UNK31: return { "SPELL_ATTR13_UNK31", "Unknown attribute 31@Attr13", "" }; default: throw std::out_of_range("value"); } } @@ -1367,38 +1367,38 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr14>::ToString(SpellAttr14 value) { switch (value) { - case SPELL_ATTR14_UNK0: return { "SPELL_ATTR14_UNK0", "SPELL_ATTR14_UNK0", "" }; + case SPELL_ATTR14_UNK0: return { "SPELL_ATTR14_UNK0", "Unknown attribute 0@Attr14", "" }; case SPELL_ATTR14_REAGENT_COST_CONSUMES_CHARGES: return { "SPELL_ATTR14_REAGENT_COST_CONSUMES_CHARGES", "Reagent Consume Charges", "Consumes item charges for reagent costs instead of whole items" }; - case SPELL_ATTR14_UNK2: return { "SPELL_ATTR14_UNK2", "SPELL_ATTR14_UNK2", "" }; + case SPELL_ATTR14_UNK2: return { "SPELL_ATTR14_UNK2", "Unknown attribute 2@Attr14", "" }; case SPELL_ATTR14_HIDE_PASSIVE_FROM_TOOLTIP: return { "SPELL_ATTR14_HIDE_PASSIVE_FROM_TOOLTIP", "Don't show \042Passive\042 or \042Upgrade\042 in tooltip", "" }; - case SPELL_ATTR14_UNK4: return { "SPELL_ATTR14_UNK4", "SPELL_ATTR14_UNK4", "" }; - case SPELL_ATTR14_UNK5: return { "SPELL_ATTR14_UNK5", "SPELL_ATTR14_UNK5", "" }; - case SPELL_ATTR14_UNK6: return { "SPELL_ATTR14_UNK6", "SPELL_ATTR14_UNK6", "" }; - case SPELL_ATTR14_UNK7: return { "SPELL_ATTR14_UNK7", "SPELL_ATTR14_UNK7", "" }; - case SPELL_ATTR14_UNK8: return { "SPELL_ATTR14_UNK8", "SPELL_ATTR14_UNK8", "" }; - case SPELL_ATTR14_UNK9: return { "SPELL_ATTR14_UNK9", "SPELL_ATTR14_UNK9", "" }; - case SPELL_ATTR14_UNK10: return { "SPELL_ATTR14_UNK10", "SPELL_ATTR14_UNK10", "" }; - case SPELL_ATTR14_UNK11: return { "SPELL_ATTR14_UNK11", "SPELL_ATTR14_UNK11", "" }; - case SPELL_ATTR14_UNK12: return { "SPELL_ATTR14_UNK12", "SPELL_ATTR14_UNK12", "" }; - case SPELL_ATTR14_UNK13: return { "SPELL_ATTR14_UNK13", "SPELL_ATTR14_UNK13", "" }; - case SPELL_ATTR14_UNK14: return { "SPELL_ATTR14_UNK14", "SPELL_ATTR14_UNK14", "" }; - case SPELL_ATTR14_UNK15: return { "SPELL_ATTR14_UNK15", "SPELL_ATTR14_UNK15", "" }; - case SPELL_ATTR14_UNK16: return { "SPELL_ATTR14_UNK16", "SPELL_ATTR14_UNK16", "" }; - case SPELL_ATTR14_UNK17: return { "SPELL_ATTR14_UNK17", "SPELL_ATTR14_UNK17", "" }; - case SPELL_ATTR14_UNK18: return { "SPELL_ATTR14_UNK18", "SPELL_ATTR14_UNK18", "" }; - case SPELL_ATTR14_UNK19: return { "SPELL_ATTR14_UNK19", "SPELL_ATTR14_UNK19", "" }; - case SPELL_ATTR14_UNK20: return { "SPELL_ATTR14_UNK20", "SPELL_ATTR14_UNK20", "" }; - case SPELL_ATTR14_UNK21: return { "SPELL_ATTR14_UNK21", "SPELL_ATTR14_UNK21", "" }; - case SPELL_ATTR14_UNK22: return { "SPELL_ATTR14_UNK22", "SPELL_ATTR14_UNK22", "" }; - case SPELL_ATTR14_UNK23: return { "SPELL_ATTR14_UNK23", "SPELL_ATTR14_UNK23", "" }; - case SPELL_ATTR14_UNK24: return { "SPELL_ATTR14_UNK24", "SPELL_ATTR14_UNK24", "" }; - case SPELL_ATTR14_UNK25: return { "SPELL_ATTR14_UNK25", "SPELL_ATTR14_UNK25", "" }; - case SPELL_ATTR14_UNK26: return { "SPELL_ATTR14_UNK26", "SPELL_ATTR14_UNK26", "" }; - case SPELL_ATTR14_UNK27: return { "SPELL_ATTR14_UNK27", "SPELL_ATTR14_UNK27", "" }; - case SPELL_ATTR14_UNK28: return { "SPELL_ATTR14_UNK28", "SPELL_ATTR14_UNK28", "" }; - case SPELL_ATTR14_UNK29: return { "SPELL_ATTR14_UNK29", "SPELL_ATTR14_UNK29", "" }; - case SPELL_ATTR14_UNK30: return { "SPELL_ATTR14_UNK30", "SPELL_ATTR14_UNK30", "" }; - case SPELL_ATTR14_UNK31: return { "SPELL_ATTR14_UNK31", "SPELL_ATTR14_UNK31", "" }; + case SPELL_ATTR14_UNK4: return { "SPELL_ATTR14_UNK4", "Unknown attribute 4@Attr14", "" }; + case SPELL_ATTR14_UNK5: return { "SPELL_ATTR14_UNK5", "Unknown attribute 5@Attr14", "" }; + case SPELL_ATTR14_UNK6: return { "SPELL_ATTR14_UNK6", "Unknown attribute 6@Attr14", "" }; + case SPELL_ATTR14_UNK7: return { "SPELL_ATTR14_UNK7", "Unknown attribute 7@Attr14", "" }; + case SPELL_ATTR14_UNK8: return { "SPELL_ATTR14_UNK8", "Unknown attribute 8@Attr14", "" }; + case SPELL_ATTR14_UNK9: return { "SPELL_ATTR14_UNK9", "Unknown attribute 9@Attr14", "" }; + case SPELL_ATTR14_UNK10: return { "SPELL_ATTR14_UNK10", "Unknown attribute 10@Attr14", "" }; + case SPELL_ATTR14_UNK11: return { "SPELL_ATTR14_UNK11", "Unknown attribute 11@Attr14", "" }; + case SPELL_ATTR14_UNK12: return { "SPELL_ATTR14_UNK12", "Unknown attribute 12@Attr14", "" }; + case SPELL_ATTR14_UNK13: return { "SPELL_ATTR14_UNK13", "Unknown attribute 13@Attr14", "" }; + case SPELL_ATTR14_UNK14: return { "SPELL_ATTR14_UNK14", "Unknown attribute 14@Attr14", "" }; + case SPELL_ATTR14_UNK15: return { "SPELL_ATTR14_UNK15", "Unknown attribute 15@Attr14", "" }; + case SPELL_ATTR14_UNK16: return { "SPELL_ATTR14_UNK16", "Unknown attribute 16@Attr14", "" }; + case SPELL_ATTR14_UNK17: return { "SPELL_ATTR14_UNK17", "Unknown attribute 17@Attr14", "" }; + case SPELL_ATTR14_UNK18: return { "SPELL_ATTR14_UNK18", "Unknown attribute 18@Attr14", "" }; + case SPELL_ATTR14_UNK19: return { "SPELL_ATTR14_UNK19", "Unknown attribute 19@Attr14", "" }; + case SPELL_ATTR14_UNK20: return { "SPELL_ATTR14_UNK20", "Unknown attribute 20@Attr14", "" }; + case SPELL_ATTR14_UNK21: return { "SPELL_ATTR14_UNK21", "Unknown attribute 21@Attr14", "" }; + case SPELL_ATTR14_UNK22: return { "SPELL_ATTR14_UNK22", "Unknown attribute 22@Attr14", "" }; + case SPELL_ATTR14_UNK23: return { "SPELL_ATTR14_UNK23", "Unknown attribute 23@Attr14", "" }; + case SPELL_ATTR14_UNK24: return { "SPELL_ATTR14_UNK24", "Unknown attribute 24@Attr14", "" }; + case SPELL_ATTR14_UNK25: return { "SPELL_ATTR14_UNK25", "Unknown attribute 25@Attr14", "" }; + case SPELL_ATTR14_UNK26: return { "SPELL_ATTR14_UNK26", "Unknown attribute 26@Attr14", "" }; + case SPELL_ATTR14_UNK27: return { "SPELL_ATTR14_UNK27", "Unknown attribute 27@Attr14", "" }; + case SPELL_ATTR14_UNK28: return { "SPELL_ATTR14_UNK28", "Unknown attribute 28@Attr14", "" }; + case SPELL_ATTR14_UNK29: return { "SPELL_ATTR14_UNK29", "Unknown attribute 29@Attr14", "" }; + case SPELL_ATTR14_UNK30: return { "SPELL_ATTR14_UNK30", "Unknown attribute 30@Attr14", "" }; + case SPELL_ATTR14_UNK31: return { "SPELL_ATTR14_UNK31", "Unknown attribute 31@Attr14", "" }; default: throw std::out_of_range("value"); } } |