TrinityCore
Loading...
Searching...
No Matches
enuminfo_SharedDefines.cpp
Go to the documentation of this file.
1/*
2 * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by the
6 * Free Software Foundation; either version 2 of the License, or (at your
7 * option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12 * more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18#include "SharedDefines.h"
19#include "Define.h"
20#include "SmartEnum.h"
21#include <stdexcept>
22
24{
25
26/*************************************************************\
27|* data for enum 'Races' in 'SharedDefines.h' auto-generated *|
28\*************************************************************/
29template <>
31{
32 switch (value)
33 {
34 case RACE_HUMAN: return { "RACE_HUMAN", "Human", "" };
35 case RACE_ORC: return { "RACE_ORC", "Orc", "" };
36 case RACE_DWARF: return { "RACE_DWARF", "Dwarf", "" };
37 case RACE_NIGHTELF: return { "RACE_NIGHTELF", "Night Elf", "" };
38 case RACE_UNDEAD_PLAYER: return { "RACE_UNDEAD_PLAYER", "Undead", "" };
39 case RACE_TAUREN: return { "RACE_TAUREN", "Tauren", "" };
40 case RACE_GNOME: return { "RACE_GNOME", "Gnome", "" };
41 case RACE_TROLL: return { "RACE_TROLL", "Troll", "" };
42 case RACE_BLOODELF: return { "RACE_BLOODELF", "Blood Elf", "" };
43 case RACE_DRAENEI: return { "RACE_DRAENEI", "Draenei", "" };
44 default: throw std::out_of_range("value");
45 }
46}
47
48template <>
50
51template <>
53{
54 switch (index)
55 {
56 case 0: return RACE_HUMAN;
57 case 1: return RACE_ORC;
58 case 2: return RACE_DWARF;
59 case 3: return RACE_NIGHTELF;
60 case 4: return RACE_UNDEAD_PLAYER;
61 case 5: return RACE_TAUREN;
62 case 6: return RACE_GNOME;
63 case 7: return RACE_TROLL;
64 case 8: return RACE_BLOODELF;
65 case 9: return RACE_DRAENEI;
66 default: throw std::out_of_range("index");
67 }
68}
69
70template <>
72{
73 switch (value)
74 {
75 case RACE_HUMAN: return 0;
76 case RACE_ORC: return 1;
77 case RACE_DWARF: return 2;
78 case RACE_NIGHTELF: return 3;
79 case RACE_UNDEAD_PLAYER: return 4;
80 case RACE_TAUREN: return 5;
81 case RACE_GNOME: return 6;
82 case RACE_TROLL: return 7;
83 case RACE_BLOODELF: return 8;
84 case RACE_DRAENEI: return 9;
85 default: throw std::out_of_range("value");
86 }
87}
88
89/***************************************************************\
90|* data for enum 'Classes' in 'SharedDefines.h' auto-generated *|
91\***************************************************************/
92template <>
94{
95 switch (value)
96 {
97 case CLASS_WARRIOR: return { "CLASS_WARRIOR", "Warrior", "" };
98 case CLASS_PALADIN: return { "CLASS_PALADIN", "Paladin", "" };
99 case CLASS_HUNTER: return { "CLASS_HUNTER", "Hunter", "" };
100 case CLASS_ROGUE: return { "CLASS_ROGUE", "Rogue", "" };
101 case CLASS_PRIEST: return { "CLASS_PRIEST", "Priest", "" };
102 case CLASS_DEATH_KNIGHT: return { "CLASS_DEATH_KNIGHT", "Death Knight", "" };
103 case CLASS_SHAMAN: return { "CLASS_SHAMAN", "Shaman", "" };
104 case CLASS_MAGE: return { "CLASS_MAGE", "Mage", "" };
105 case CLASS_WARLOCK: return { "CLASS_WARLOCK", "Warlock", "" };
106 case CLASS_DRUID: return { "CLASS_DRUID", "Druid", "" };
107 default: throw std::out_of_range("value");
108 }
109}
110
111template <>
113
114template <>
116{
117 switch (index)
118 {
119 case 0: return CLASS_WARRIOR;
120 case 1: return CLASS_PALADIN;
121 case 2: return CLASS_HUNTER;
122 case 3: return CLASS_ROGUE;
123 case 4: return CLASS_PRIEST;
124 case 5: return CLASS_DEATH_KNIGHT;
125 case 6: return CLASS_SHAMAN;
126 case 7: return CLASS_MAGE;
127 case 8: return CLASS_WARLOCK;
128 case 9: return CLASS_DRUID;
129 default: throw std::out_of_range("index");
130 }
131}
132
133template <>
135{
136 switch (value)
137 {
138 case CLASS_WARRIOR: return 0;
139 case CLASS_PALADIN: return 1;
140 case CLASS_HUNTER: return 2;
141 case CLASS_ROGUE: return 3;
142 case CLASS_PRIEST: return 4;
143 case CLASS_DEATH_KNIGHT: return 5;
144 case CLASS_SHAMAN: return 6;
145 case CLASS_MAGE: return 7;
146 case CLASS_WARLOCK: return 8;
147 case CLASS_DRUID: return 9;
148 default: throw std::out_of_range("value");
149 }
150}
151
152/**************************************************************\
153|* data for enum 'Powers' in 'SharedDefines.h' auto-generated *|
154\**************************************************************/
155template <>
157{
158 switch (value)
159 {
160 case POWER_HEALTH: return { "POWER_HEALTH", "Health", "" };
161 case POWER_MANA: return { "POWER_MANA", "Mana", "" };
162 case POWER_RAGE: return { "POWER_RAGE", "Rage", "" };
163 case POWER_FOCUS: return { "POWER_FOCUS", "Focus", "" };
164 case POWER_ENERGY: return { "POWER_ENERGY", "Energy", "" };
165 case POWER_HAPPINESS: return { "POWER_HAPPINESS", "Happiness", "" };
166 case POWER_RUNE: return { "POWER_RUNE", "Runes", "" };
167 case POWER_RUNIC_POWER: return { "POWER_RUNIC_POWER", "Runic Power", "" };
168 default: throw std::out_of_range("value");
169 }
170}
171
172template <>
174
175template <>
177{
178 switch (index)
179 {
180 case 0: return POWER_HEALTH;
181 case 1: return POWER_MANA;
182 case 2: return POWER_RAGE;
183 case 3: return POWER_FOCUS;
184 case 4: return POWER_ENERGY;
185 case 5: return POWER_HAPPINESS;
186 case 6: return POWER_RUNE;
187 case 7: return POWER_RUNIC_POWER;
188 default: throw std::out_of_range("index");
189 }
190}
191
192template <>
194{
195 switch (value)
196 {
197 case POWER_HEALTH: return 0;
198 case POWER_MANA: return 1;
199 case POWER_RAGE: return 2;
200 case POWER_FOCUS: return 3;
201 case POWER_ENERGY: return 4;
202 case POWER_HAPPINESS: return 5;
203 case POWER_RUNE: return 6;
204 case POWER_RUNIC_POWER: return 7;
205 default: throw std::out_of_range("value");
206 }
207}
208
209/********************************************************************\
210|* data for enum 'SpellSchools' in 'SharedDefines.h' auto-generated *|
211\********************************************************************/
212template <>
214{
215 switch (value)
216 {
217 case SPELL_SCHOOL_NORMAL: return { "SPELL_SCHOOL_NORMAL", "Physical", "" };
218 case SPELL_SCHOOL_HOLY: return { "SPELL_SCHOOL_HOLY", "Holy", "" };
219 case SPELL_SCHOOL_FIRE: return { "SPELL_SCHOOL_FIRE", "Fire", "" };
220 case SPELL_SCHOOL_NATURE: return { "SPELL_SCHOOL_NATURE", "Nature", "" };
221 case SPELL_SCHOOL_FROST: return { "SPELL_SCHOOL_FROST", "Frost", "" };
222 case SPELL_SCHOOL_SHADOW: return { "SPELL_SCHOOL_SHADOW", "Shadow", "" };
223 case SPELL_SCHOOL_ARCANE: return { "SPELL_SCHOOL_ARCANE", "Arcane", "" };
224 default: throw std::out_of_range("value");
225 }
226}
227
228template <>
230
231template <>
233{
234 switch (index)
235 {
236 case 0: return SPELL_SCHOOL_NORMAL;
237 case 1: return SPELL_SCHOOL_HOLY;
238 case 2: return SPELL_SCHOOL_FIRE;
239 case 3: return SPELL_SCHOOL_NATURE;
240 case 4: return SPELL_SCHOOL_FROST;
241 case 5: return SPELL_SCHOOL_SHADOW;
242 case 6: return SPELL_SCHOOL_ARCANE;
243 default: throw std::out_of_range("index");
244 }
245}
246
247template <>
249{
250 switch (value)
251 {
252 case SPELL_SCHOOL_NORMAL: return 0;
253 case SPELL_SCHOOL_HOLY: return 1;
254 case SPELL_SCHOOL_FIRE: return 2;
255 case SPELL_SCHOOL_NATURE: return 3;
256 case SPELL_SCHOOL_FROST: return 4;
257 case SPELL_SCHOOL_SHADOW: return 5;
258 case SPELL_SCHOOL_ARCANE: return 6;
259 default: throw std::out_of_range("value");
260 }
261}
262
263/******************************************************************\
264|* data for enum 'SpellAttr0' in 'SharedDefines.h' auto-generated *|
265\******************************************************************/
266template <>
268{
269 switch (value)
270 {
271 case SPELL_ATTR0_UNK0: return { "SPELL_ATTR0_UNK0", "Unknown attribute 0@Attr0", "" };
272 case SPELL_ATTR0_REQ_AMMO: return { "SPELL_ATTR0_REQ_AMMO", "Treat as ranged attack", "Use ammo, ranged attack range modifiers, ranged haste, etc." };
273 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" };
274 case SPELL_ATTR0_IS_REPLENISHMENT: return { "SPELL_ATTR0_IS_REPLENISHMENT", "Replenishment (client only)", "" };
275 case SPELL_ATTR0_ABILITY: return { "SPELL_ATTR0_ABILITY", "Treat as ability", "Cannot be reflected, not affected by cast speed modifiers, etc." };
276 case SPELL_ATTR0_TRADESPELL: return { "SPELL_ATTR0_TRADESPELL", "Trade skill recipe", "Displayed in recipe list, not affected by cast speed modifiers" };
277 case SPELL_ATTR0_PASSIVE: return { "SPELL_ATTR0_PASSIVE", "Passive spell", "Spell is automatically cast on self by core" };
278 case SPELL_ATTR0_HIDDEN_CLIENTSIDE: return { "SPELL_ATTR0_HIDDEN_CLIENTSIDE", "Hidden in UI (client only)", "Not visible in spellbook or aura bar" };
279 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" };
280 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" };
281 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" };
282 case SPELL_ATTR0_UNK11: return { "SPELL_ATTR0_UNK11", "Unknown attribute 11@Attr0", "" };
283 case SPELL_ATTR0_DAYTIME_ONLY: return { "SPELL_ATTR0_DAYTIME_ONLY", "Only usable during daytime (unused)", "" };
284 case SPELL_ATTR0_NIGHT_ONLY: return { "SPELL_ATTR0_NIGHT_ONLY", "Only usable during nighttime (unused)", "" };
285 case SPELL_ATTR0_INDOORS_ONLY: return { "SPELL_ATTR0_INDOORS_ONLY", "Only usable indoors", "" };
286 case SPELL_ATTR0_OUTDOORS_ONLY: return { "SPELL_ATTR0_OUTDOORS_ONLY", "Only usable outdoors", "" };
287 case SPELL_ATTR0_NOT_SHAPESHIFT: return { "SPELL_ATTR0_NOT_SHAPESHIFT", "Not usable while shapeshifted", "" };
288 case SPELL_ATTR0_ONLY_STEALTHED: return { "SPELL_ATTR0_ONLY_STEALTHED", "Only usable in stealth", "" };
289 case SPELL_ATTR0_DONT_AFFECT_SHEATH_STATE: return { "SPELL_ATTR0_DONT_AFFECT_SHEATH_STATE", "Don't shealthe weapons (client only)", "" };
290 case SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION: return { "SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION", "Scale with caster level", "For non-player casts, scale impact and power cost with caster's level" };
291 case SPELL_ATTR0_STOP_ATTACK_TARGET: return { "SPELL_ATTR0_STOP_ATTACK_TARGET", "Stop attacking after cast", "After casting this, the current auto-attack will be interrupted" };
292 case SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK: return { "SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK", "Prevent physical avoidance", "Spell cannot be dodged, parried or blocked" };
293 case SPELL_ATTR0_CAST_TRACK_TARGET: return { "SPELL_ATTR0_CAST_TRACK_TARGET", "Automatically face target during cast (client only)", "" };
294 case SPELL_ATTR0_CASTABLE_WHILE_DEAD: return { "SPELL_ATTR0_CASTABLE_WHILE_DEAD", "Can be cast while dead", "Spells without this flag cannot be cast by dead units in non-triggered contexts" };
295 case SPELL_ATTR0_CASTABLE_WHILE_MOUNTED: return { "SPELL_ATTR0_CASTABLE_WHILE_MOUNTED", "Can be cast while mounted", "" };
296 case SPELL_ATTR0_DISABLED_WHILE_ACTIVE: return { "SPELL_ATTR0_DISABLED_WHILE_ACTIVE", "Cooldown starts on expiry", "Spell is unusable while already active, and cooldown does not begin until the effects have worn off" };
297 case SPELL_ATTR0_NEGATIVE_1: return { "SPELL_ATTR0_NEGATIVE_1", "Is negative spell", "Forces the spell to be treated as a negative spell" };
298 case SPELL_ATTR0_CASTABLE_WHILE_SITTING: return { "SPELL_ATTR0_CASTABLE_WHILE_SITTING", "Can be cast while sitting", "" };
299 case SPELL_ATTR0_CANT_USED_IN_COMBAT: return { "SPELL_ATTR0_CANT_USED_IN_COMBAT", "Cannot be used in combat", "" };
300 case SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY: return { "SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY", "Pierce invulnerability", "Allows spell to pierce invulnerability, unless the invulnerability spell also has this attribute" };
301 case SPELL_ATTR0_HEARTBEAT_RESIST_CHECK: return { "SPELL_ATTR0_HEARTBEAT_RESIST_CHECK", "Periodic resistance checks", "Periodically re-rolls against resistance to potentially expire aura early" };
302 case SPELL_ATTR0_CANT_CANCEL: return { "SPELL_ATTR0_CANT_CANCEL", "Aura cannot be cancelled", "Prevents the player from voluntarily canceling a positive aura" };
303 default: throw std::out_of_range("value");
304 }
305}
306
307template <>
309
310template <>
312{
313 switch (index)
314 {
315 case 0: return SPELL_ATTR0_UNK0;
316 case 1: return SPELL_ATTR0_REQ_AMMO;
317 case 2: return SPELL_ATTR0_ON_NEXT_SWING;
318 case 3: return SPELL_ATTR0_IS_REPLENISHMENT;
319 case 4: return SPELL_ATTR0_ABILITY;
320 case 5: return SPELL_ATTR0_TRADESPELL;
321 case 6: return SPELL_ATTR0_PASSIVE;
322 case 7: return SPELL_ATTR0_HIDDEN_CLIENTSIDE;
323 case 8: return SPELL_ATTR0_HIDE_IN_COMBAT_LOG;
325 case 10: return SPELL_ATTR0_ON_NEXT_SWING_2;
326 case 11: return SPELL_ATTR0_UNK11;
327 case 12: return SPELL_ATTR0_DAYTIME_ONLY;
328 case 13: return SPELL_ATTR0_NIGHT_ONLY;
329 case 14: return SPELL_ATTR0_INDOORS_ONLY;
330 case 15: return SPELL_ATTR0_OUTDOORS_ONLY;
331 case 16: return SPELL_ATTR0_NOT_SHAPESHIFT;
332 case 17: return SPELL_ATTR0_ONLY_STEALTHED;
335 case 20: return SPELL_ATTR0_STOP_ATTACK_TARGET;
337 case 22: return SPELL_ATTR0_CAST_TRACK_TARGET;
338 case 23: return SPELL_ATTR0_CASTABLE_WHILE_DEAD;
340 case 25: return SPELL_ATTR0_DISABLED_WHILE_ACTIVE;
341 case 26: return SPELL_ATTR0_NEGATIVE_1;
343 case 28: return SPELL_ATTR0_CANT_USED_IN_COMBAT;
346 case 31: return SPELL_ATTR0_CANT_CANCEL;
347 default: throw std::out_of_range("index");
348 }
349}
350
351template <>
353{
354 switch (value)
355 {
356 case SPELL_ATTR0_UNK0: return 0;
357 case SPELL_ATTR0_REQ_AMMO: return 1;
358 case SPELL_ATTR0_ON_NEXT_SWING: return 2;
359 case SPELL_ATTR0_IS_REPLENISHMENT: return 3;
360 case SPELL_ATTR0_ABILITY: return 4;
361 case SPELL_ATTR0_TRADESPELL: return 5;
362 case SPELL_ATTR0_PASSIVE: return 6;
363 case SPELL_ATTR0_HIDDEN_CLIENTSIDE: return 7;
364 case SPELL_ATTR0_HIDE_IN_COMBAT_LOG: return 8;
366 case SPELL_ATTR0_ON_NEXT_SWING_2: return 10;
367 case SPELL_ATTR0_UNK11: return 11;
368 case SPELL_ATTR0_DAYTIME_ONLY: return 12;
369 case SPELL_ATTR0_NIGHT_ONLY: return 13;
370 case SPELL_ATTR0_INDOORS_ONLY: return 14;
371 case SPELL_ATTR0_OUTDOORS_ONLY: return 15;
372 case SPELL_ATTR0_NOT_SHAPESHIFT: return 16;
373 case SPELL_ATTR0_ONLY_STEALTHED: return 17;
376 case SPELL_ATTR0_STOP_ATTACK_TARGET: return 20;
378 case SPELL_ATTR0_CAST_TRACK_TARGET: return 22;
379 case SPELL_ATTR0_CASTABLE_WHILE_DEAD: return 23;
381 case SPELL_ATTR0_DISABLED_WHILE_ACTIVE: return 25;
382 case SPELL_ATTR0_NEGATIVE_1: return 26;
384 case SPELL_ATTR0_CANT_USED_IN_COMBAT: return 28;
387 case SPELL_ATTR0_CANT_CANCEL: return 31;
388 default: throw std::out_of_range("value");
389 }
390}
391
392/******************************************************************\
393|* data for enum 'SpellAttr1' in 'SharedDefines.h' auto-generated *|
394\******************************************************************/
395template <>
397{
398 switch (value)
399 {
400 case SPELL_ATTR1_DISMISS_PET: return { "SPELL_ATTR1_DISMISS_PET", "Dismiss Pet on cast", "Without this attribute, summoning spells will fail if caster already has a pet" };
401 case SPELL_ATTR1_DRAIN_ALL_POWER: return { "SPELL_ATTR1_DRAIN_ALL_POWER", "Drain all power", "Ignores listed power cost and drains entire pool instead" };
402 case SPELL_ATTR1_CHANNELED_1: return { "SPELL_ATTR1_CHANNELED_1", "Channeled (type 1)", "Both \042channeled\042 attributes have identical handling in server & client" };
403 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)" };
404 case SPELL_ATTR1_UNK4: return { "SPELL_ATTR1_UNK4", "Unknown attribute 4@Attr1", "" };
405 case SPELL_ATTR1_NOT_BREAK_STEALTH: return { "SPELL_ATTR1_NOT_BREAK_STEALTH", "Does not break stealth", "" };
406 case SPELL_ATTR1_CHANNELED_2: return { "SPELL_ATTR1_CHANNELED_2", "Channeled (type 2)", "Both \042channeled\042 attributes have identical handling in server & client" };
407 case SPELL_ATTR1_CANT_BE_REFLECTED: return { "SPELL_ATTR1_CANT_BE_REFLECTED", "Ignore reflection effects", "Spell will pierce through Spell Reflection and similar" };
408 case SPELL_ATTR1_CANT_TARGET_IN_COMBAT: return { "SPELL_ATTR1_CANT_TARGET_IN_COMBAT", "Target cannot be in combat", "" };
409 case SPELL_ATTR1_MELEE_COMBAT_START: return { "SPELL_ATTR1_MELEE_COMBAT_START", "Starts auto-attack (client only)", "Caster will begin auto-attacking the target on cast" };
410 case SPELL_ATTR1_NO_THREAT: return { "SPELL_ATTR1_NO_THREAT", "Does not generate threat", "Also does not cause target to engage" };
411 case SPELL_ATTR1_DONT_REFRESH_DURATION_ON_RECAST: return { "SPELL_ATTR1_DONT_REFRESH_DURATION_ON_RECAST", "Aura will not refresh its duration when recast", "" };
412 case SPELL_ATTR1_IS_PICKPOCKET: return { "SPELL_ATTR1_IS_PICKPOCKET", "Pickpocket (client only)", "" };
413 case SPELL_ATTR1_FARSIGHT: return { "SPELL_ATTR1_FARSIGHT", "Farsight aura (client only)", "" };
414 case SPELL_ATTR1_CHANNEL_TRACK_TARGET: return { "SPELL_ATTR1_CHANNEL_TRACK_TARGET", "Track target while channeling", "While channeling, adjust facing to face target" };
415 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" };
416 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" };
417 case SPELL_ATTR1_UNAUTOCASTABLE_BY_PET: return { "SPELL_ATTR1_UNAUTOCASTABLE_BY_PET", "Cannot be autocast by pet", "" };
418 case SPELL_ATTR1_PREVENTS_ANIM: return { "SPELL_ATTR1_PREVENTS_ANIM", "NYI, auras apply UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT", "" };
419 case SPELL_ATTR1_CANT_TARGET_SELF: return { "SPELL_ATTR1_CANT_TARGET_SELF", "Cannot be self-cast", "" };
420 case SPELL_ATTR1_REQ_COMBO_POINTS1: return { "SPELL_ATTR1_REQ_COMBO_POINTS1", "Requires combo points (type 1)", "" };
421 case SPELL_ATTR1_UNK21: return { "SPELL_ATTR1_UNK21", "Unknown attribute 21@Attr1", "" };
422 case SPELL_ATTR1_REQ_COMBO_POINTS2: return { "SPELL_ATTR1_REQ_COMBO_POINTS2", "Requires combo points (type 2)", "" };
423 case SPELL_ATTR1_UNK23: return { "SPELL_ATTR1_UNK23", "Unknwon attribute 23@Attr1", "" };
424 case SPELL_ATTR1_IS_FISHING: return { "SPELL_ATTR1_IS_FISHING", "Fishing (client only)", "" };
425 case SPELL_ATTR1_UNK25: return { "SPELL_ATTR1_UNK25", "Unknown attribute 25@Attr1", "" };
426 case SPELL_ATTR1_REQUIRE_ALL_TARGETS: return { "SPELL_ATTR1_REQUIRE_ALL_TARGETS", "Require All Targets", "" };
427 case SPELL_ATTR1_UNK27: return { "SPELL_ATTR1_UNK27", "Unknown attribute 27@Attr1", "Melee spell?" };
428 case SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR: return { "SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR", "Hide in aura bar (client only)", "" };
429 case SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME: return { "SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME", "Show spell name during channel (client only)", "" };
430 case SPELL_ATTR1_ENABLE_AT_DODGE: return { "SPELL_ATTR1_ENABLE_AT_DODGE", "Enable at dodge", "" };
431 case SPELL_ATTR1_UNK31: return { "SPELL_ATTR1_UNK31", "Unknown attribute 31@Attr1", "" };
432 default: throw std::out_of_range("value");
433 }
434}
435
436template <>
438
439template <>
441{
442 switch (index)
443 {
444 case 0: return SPELL_ATTR1_DISMISS_PET;
445 case 1: return SPELL_ATTR1_DRAIN_ALL_POWER;
446 case 2: return SPELL_ATTR1_CHANNELED_1;
447 case 3: return SPELL_ATTR1_CANT_BE_REDIRECTED;
448 case 4: return SPELL_ATTR1_UNK4;
449 case 5: return SPELL_ATTR1_NOT_BREAK_STEALTH;
450 case 6: return SPELL_ATTR1_CHANNELED_2;
451 case 7: return SPELL_ATTR1_CANT_BE_REFLECTED;
453 case 9: return SPELL_ATTR1_MELEE_COMBAT_START;
454 case 10: return SPELL_ATTR1_NO_THREAT;
456 case 12: return SPELL_ATTR1_IS_PICKPOCKET;
457 case 13: return SPELL_ATTR1_FARSIGHT;
458 case 14: return SPELL_ATTR1_CHANNEL_TRACK_TARGET;
461 case 17: return SPELL_ATTR1_UNAUTOCASTABLE_BY_PET;
462 case 18: return SPELL_ATTR1_PREVENTS_ANIM;
463 case 19: return SPELL_ATTR1_CANT_TARGET_SELF;
464 case 20: return SPELL_ATTR1_REQ_COMBO_POINTS1;
465 case 21: return SPELL_ATTR1_UNK21;
466 case 22: return SPELL_ATTR1_REQ_COMBO_POINTS2;
467 case 23: return SPELL_ATTR1_UNK23;
468 case 24: return SPELL_ATTR1_IS_FISHING;
469 case 25: return SPELL_ATTR1_UNK25;
470 case 26: return SPELL_ATTR1_REQUIRE_ALL_TARGETS;
471 case 27: return SPELL_ATTR1_UNK27;
474 case 30: return SPELL_ATTR1_ENABLE_AT_DODGE;
475 case 31: return SPELL_ATTR1_UNK31;
476 default: throw std::out_of_range("index");
477 }
478}
479
480template <>
482{
483 switch (value)
484 {
485 case SPELL_ATTR1_DISMISS_PET: return 0;
486 case SPELL_ATTR1_DRAIN_ALL_POWER: return 1;
487 case SPELL_ATTR1_CHANNELED_1: return 2;
488 case SPELL_ATTR1_CANT_BE_REDIRECTED: return 3;
489 case SPELL_ATTR1_UNK4: return 4;
490 case SPELL_ATTR1_NOT_BREAK_STEALTH: return 5;
491 case SPELL_ATTR1_CHANNELED_2: return 6;
492 case SPELL_ATTR1_CANT_BE_REFLECTED: return 7;
494 case SPELL_ATTR1_MELEE_COMBAT_START: return 9;
495 case SPELL_ATTR1_NO_THREAT: return 10;
497 case SPELL_ATTR1_IS_PICKPOCKET: return 12;
498 case SPELL_ATTR1_FARSIGHT: return 13;
499 case SPELL_ATTR1_CHANNEL_TRACK_TARGET: return 14;
502 case SPELL_ATTR1_UNAUTOCASTABLE_BY_PET: return 17;
503 case SPELL_ATTR1_PREVENTS_ANIM: return 18;
504 case SPELL_ATTR1_CANT_TARGET_SELF: return 19;
505 case SPELL_ATTR1_REQ_COMBO_POINTS1: return 20;
506 case SPELL_ATTR1_UNK21: return 21;
507 case SPELL_ATTR1_REQ_COMBO_POINTS2: return 22;
508 case SPELL_ATTR1_UNK23: return 23;
509 case SPELL_ATTR1_IS_FISHING: return 24;
510 case SPELL_ATTR1_UNK25: return 25;
511 case SPELL_ATTR1_REQUIRE_ALL_TARGETS: return 26;
512 case SPELL_ATTR1_UNK27: return 27;
515 case SPELL_ATTR1_ENABLE_AT_DODGE: return 30;
516 case SPELL_ATTR1_UNK31: return 31;
517 default: throw std::out_of_range("value");
518 }
519}
520
521/******************************************************************\
522|* data for enum 'SpellAttr2' in 'SharedDefines.h' auto-generated *|
523\******************************************************************/
524template <>
526{
527 switch (value)
528 {
529 case SPELL_ATTR2_CAN_TARGET_DEAD: return { "SPELL_ATTR2_CAN_TARGET_DEAD", "Can target dead players or corpses", "" };
530 case SPELL_ATTR2_UNK1: return { "SPELL_ATTR2_UNK1", "Unknown attribute 1@Attr2", "" };
531 case SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS: return { "SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS", "Ignore Line of Sight", "" };
532 case SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF: return { "SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF", "Allow Low Level Buff", "" };
533 case SPELL_ATTR2_DISPLAY_IN_STANCE_BAR: return { "SPELL_ATTR2_DISPLAY_IN_STANCE_BAR", "Show in stance bar (client only)", "" };
534 case SPELL_ATTR2_AUTOREPEAT_FLAG: return { "SPELL_ATTR2_AUTOREPEAT_FLAG", "Ranged auto-attack spell", "" };
535 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" };
536 case SPELL_ATTR2_UNK7: return { "SPELL_ATTR2_UNK7", "Unknown attribute 7@Attr2", "" };
537 case SPELL_ATTR2_UNK8: return { "SPELL_ATTR2_UNK8", "Unknown attribute 8@Attr2", "" };
538 case SPELL_ATTR2_UNK9: return { "SPELL_ATTR2_UNK9", "Unknown attribute 9@Attr2", "" };
539 case SPELL_ATTR2_UNK10: return { "SPELL_ATTR2_UNK10", "Unknown attribute 10@Attr2", "Related to taming?" };
540 case SPELL_ATTR2_HEALTH_FUNNEL: return { "SPELL_ATTR2_HEALTH_FUNNEL", "Health Funnel", "" };
541 case SPELL_ATTR2_UNK12: return { "SPELL_ATTR2_UNK12", "Unknown attribute 12@Attr2", "" };
542 case SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA: return { "SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA", "Enchant persists when entering arena", "" };
543 case SPELL_ATTR2_UNK14: return { "SPELL_ATTR2_UNK14", "Unknown attribute 14@Attr2", "" };
544 case SPELL_ATTR2_UNK15: return { "SPELL_ATTR2_UNK15", "Unknown attribute 15@Attr2", "" };
545 case SPELL_ATTR2_TAME_BEAST: return { "SPELL_ATTR2_TAME_BEAST", "Tame Beast", "" };
546 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" };
547 case SPELL_ATTR2_REQ_DEAD_PET: return { "SPELL_ATTR2_REQ_DEAD_PET", "Requires dead pet", "" };
548 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)" };
549 case SPELL_ATTR2_UNK20: return { "SPELL_ATTR2_UNK20", "Unknown attribute 20@Attr2", "" };
550 case SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE: return { "SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE", "Fail on all targets immune", "Causes BG flags to be dropped if combined with ATTR1_DISPEL_AURAS_ON_IMMUNITY" };
551 case SPELL_ATTR2_UNK22: return { "SPELL_ATTR2_UNK22", "Unknown attribute 22@Attr2", "" };
552 case SPELL_ATTR2_IS_ARCANE_CONCENTRATION: return { "SPELL_ATTR2_IS_ARCANE_CONCENTRATION", "Arcane Concentration", "" };
553 case SPELL_ATTR2_UNK24: return { "SPELL_ATTR2_UNK24", "Unknown attribute 24@Attr2", "" };
554 case SPELL_ATTR2_UNK25: return { "SPELL_ATTR2_UNK25", "Unknown attribute 25@Attr2", "" };
555 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" };
556 case SPELL_ATTR2_UNK27: return { "SPELL_ATTR2_UNK27", "Unknown attribute 27@Attr2", "" };
557 case SPELL_ATTR2_UNK28: return { "SPELL_ATTR2_UNK28", "Unknown attribute 28@Attr2", "" };
558 case SPELL_ATTR2_CANT_CRIT: return { "SPELL_ATTR2_CANT_CRIT", "Cannot critically strike", "" };
559 case SPELL_ATTR2_ACTIVE_THREAT: return { "SPELL_ATTR2_ACTIVE_THREAT", "Active Threat", "" };
560 case SPELL_ATTR2_FOOD_BUFF: return { "SPELL_ATTR2_FOOD_BUFF", "Food buff (client only)", "" };
561 default: throw std::out_of_range("value");
562 }
563}
564
565template <>
567
568template <>
570{
571 switch (index)
572 {
573 case 0: return SPELL_ATTR2_CAN_TARGET_DEAD;
574 case 1: return SPELL_ATTR2_UNK1;
578 case 5: return SPELL_ATTR2_AUTOREPEAT_FLAG;
579 case 6: return SPELL_ATTR2_CANT_TARGET_TAPPED;
580 case 7: return SPELL_ATTR2_UNK7;
581 case 8: return SPELL_ATTR2_UNK8;
582 case 9: return SPELL_ATTR2_UNK9;
583 case 10: return SPELL_ATTR2_UNK10;
584 case 11: return SPELL_ATTR2_HEALTH_FUNNEL;
585 case 12: return SPELL_ATTR2_UNK12;
587 case 14: return SPELL_ATTR2_UNK14;
588 case 15: return SPELL_ATTR2_UNK15;
589 case 16: return SPELL_ATTR2_TAME_BEAST;
591 case 18: return SPELL_ATTR2_REQ_DEAD_PET;
592 case 19: return SPELL_ATTR2_NOT_NEED_SHAPESHIFT;
593 case 20: return SPELL_ATTR2_UNK20;
595 case 22: return SPELL_ATTR2_UNK22;
597 case 24: return SPELL_ATTR2_UNK24;
598 case 25: return SPELL_ATTR2_UNK25;
600 case 27: return SPELL_ATTR2_UNK27;
601 case 28: return SPELL_ATTR2_UNK28;
602 case 29: return SPELL_ATTR2_CANT_CRIT;
603 case 30: return SPELL_ATTR2_ACTIVE_THREAT;
604 case 31: return SPELL_ATTR2_FOOD_BUFF;
605 default: throw std::out_of_range("index");
606 }
607}
608
609template <>
611{
612 switch (value)
613 {
614 case SPELL_ATTR2_CAN_TARGET_DEAD: return 0;
615 case SPELL_ATTR2_UNK1: return 1;
619 case SPELL_ATTR2_AUTOREPEAT_FLAG: return 5;
620 case SPELL_ATTR2_CANT_TARGET_TAPPED: return 6;
621 case SPELL_ATTR2_UNK7: return 7;
622 case SPELL_ATTR2_UNK8: return 8;
623 case SPELL_ATTR2_UNK9: return 9;
624 case SPELL_ATTR2_UNK10: return 10;
625 case SPELL_ATTR2_HEALTH_FUNNEL: return 11;
626 case SPELL_ATTR2_UNK12: return 12;
628 case SPELL_ATTR2_UNK14: return 14;
629 case SPELL_ATTR2_UNK15: return 15;
630 case SPELL_ATTR2_TAME_BEAST: return 16;
632 case SPELL_ATTR2_REQ_DEAD_PET: return 18;
633 case SPELL_ATTR2_NOT_NEED_SHAPESHIFT: return 19;
634 case SPELL_ATTR2_UNK20: return 20;
636 case SPELL_ATTR2_UNK22: return 22;
638 case SPELL_ATTR2_UNK24: return 24;
639 case SPELL_ATTR2_UNK25: return 25;
641 case SPELL_ATTR2_UNK27: return 27;
642 case SPELL_ATTR2_UNK28: return 28;
643 case SPELL_ATTR2_CANT_CRIT: return 29;
644 case SPELL_ATTR2_ACTIVE_THREAT: return 30;
645 case SPELL_ATTR2_FOOD_BUFF: return 31;
646 default: throw std::out_of_range("value");
647 }
648}
649
650/******************************************************************\
651|* data for enum 'SpellAttr3' in 'SharedDefines.h' auto-generated *|
652\******************************************************************/
653template <>
655{
656 switch (value)
657 {
658 case SPELL_ATTR3_UNK0: return { "SPELL_ATTR3_UNK0", "Unknown attribute 0@Attr3", "" };
659 case SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK: return { "SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK", "SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK", "1 Ignores subclass mask check when checking proc" };
660 case SPELL_ATTR3_UNK2: return { "SPELL_ATTR3_UNK2", "Unknown attribute 2@Attr3", "" };
661 case SPELL_ATTR3_COMPLETELY_BLOCKED: return { "SPELL_ATTR3_COMPLETELY_BLOCKED", "Completely Blocked", "" };
662 case SPELL_ATTR3_IGNORE_RESURRECTION_TIMER: return { "SPELL_ATTR3_IGNORE_RESURRECTION_TIMER", "Ignore resurrection timer", "" };
663 case SPELL_ATTR3_UNK5: return { "SPELL_ATTR3_UNK5", "Unknown attribute 5@Attr3", "" };
664 case SPELL_ATTR3_UNK6: return { "SPELL_ATTR3_UNK6", "Unknown attribute 6@Attr3", "" };
665 case SPELL_ATTR3_STACK_FOR_DIFF_CASTERS: return { "SPELL_ATTR3_STACK_FOR_DIFF_CASTERS", "Stack separately for each caster", "" };
666 case SPELL_ATTR3_ONLY_TARGET_PLAYERS: return { "SPELL_ATTR3_ONLY_TARGET_PLAYERS", "Can only target players", "" };
667 case SPELL_ATTR3_NOT_A_PROC: return { "SPELL_ATTR3_NOT_A_PROC", "Not a Proc", "Without this attribute, any triggered spell will be unable to trigger other auras' procs" };
668 case SPELL_ATTR3_MAIN_HAND: return { "SPELL_ATTR3_MAIN_HAND", "Require main hand weapon", "" };
669 case SPELL_ATTR3_BATTLEGROUND: return { "SPELL_ATTR3_BATTLEGROUND", "Can only be cast in battleground", "" };
670 case SPELL_ATTR3_ONLY_TARGET_GHOSTS: return { "SPELL_ATTR3_ONLY_TARGET_GHOSTS", "Can only target ghost players", "" };
671 case SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR: return { "SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR", "Do not display channel bar (client only)", "" };
672 case SPELL_ATTR3_IS_HONORLESS_TARGET: return { "SPELL_ATTR3_IS_HONORLESS_TARGET", "Honorless Target", "" };
673 case SPELL_ATTR3_UNK15: return { "SPELL_ATTR3_UNK15", "Unknown attribute 15@Attr3", "Auto Shoot, Shoot, Throw - ranged normal attack attribute?" };
674 case SPELL_ATTR3_CANT_TRIGGER_PROC: return { "SPELL_ATTR3_CANT_TRIGGER_PROC", "Cannot trigger procs", "" };
675 case SPELL_ATTR3_NO_INITIAL_AGGRO: return { "SPELL_ATTR3_NO_INITIAL_AGGRO", "No initial aggro", "" };
676 case SPELL_ATTR3_IGNORE_HIT_RESULT: return { "SPELL_ATTR3_IGNORE_HIT_RESULT", "Ignore hit result", "Spell cannot miss, or be dodged/parried/blocked" };
677 case SPELL_ATTR3_DISABLE_PROC: return { "SPELL_ATTR3_DISABLE_PROC", "Cannot trigger spells during aura proc", "" };
678 case SPELL_ATTR3_DEATH_PERSISTENT: return { "SPELL_ATTR3_DEATH_PERSISTENT", "Persists through death", "" };
679 case SPELL_ATTR3_UNK21: return { "SPELL_ATTR3_UNK21", "Unknown attribute 21@Attr3", "" };
680 case SPELL_ATTR3_REQ_WAND: return { "SPELL_ATTR3_REQ_WAND", "Requires equipped Wand", "" };
681 case SPELL_ATTR3_UNK23: return { "SPELL_ATTR3_UNK23", "Unknown attribute 23@Attr3", "" };
682 case SPELL_ATTR3_REQ_OFFHAND: return { "SPELL_ATTR3_REQ_OFFHAND", "Requires offhand weapon", "" };
683 case SPELL_ATTR3_TREAT_AS_PERIODIC: return { "SPELL_ATTR3_TREAT_AS_PERIODIC", "Treat as periodic effect", "" };
684 case SPELL_ATTR3_CAN_PROC_FROM_PROCS: return { "SPELL_ATTR3_CAN_PROC_FROM_PROCS", "Can Proc From Procs", "" };
685 case SPELL_ATTR3_DRAIN_SOUL: return { "SPELL_ATTR3_DRAIN_SOUL", "Drain Soul", "" };
686 case SPELL_ATTR3_UNK28: return { "SPELL_ATTR3_UNK28", "Unknown attribute 28@Attr3", "" };
687 case SPELL_ATTR3_NO_DONE_BONUS: return { "SPELL_ATTR3_NO_DONE_BONUS", "Damage dealt is unaffected by modifiers", "" };
688 case SPELL_ATTR3_DONT_DISPLAY_RANGE: return { "SPELL_ATTR3_DONT_DISPLAY_RANGE", "Do not show range in tooltip (client only)", "" };
689 case SPELL_ATTR3_UNK31: return { "SPELL_ATTR3_UNK31", "Unknown attribute 31@Attr3", "" };
690 default: throw std::out_of_range("value");
691 }
692}
693
694template <>
696
697template <>
699{
700 switch (index)
701 {
702 case 0: return SPELL_ATTR3_UNK0;
704 case 2: return SPELL_ATTR3_UNK2;
705 case 3: return SPELL_ATTR3_COMPLETELY_BLOCKED;
707 case 5: return SPELL_ATTR3_UNK5;
708 case 6: return SPELL_ATTR3_UNK6;
710 case 8: return SPELL_ATTR3_ONLY_TARGET_PLAYERS;
711 case 9: return SPELL_ATTR3_NOT_A_PROC;
712 case 10: return SPELL_ATTR3_MAIN_HAND;
713 case 11: return SPELL_ATTR3_BATTLEGROUND;
714 case 12: return SPELL_ATTR3_ONLY_TARGET_GHOSTS;
716 case 14: return SPELL_ATTR3_IS_HONORLESS_TARGET;
717 case 15: return SPELL_ATTR3_UNK15;
718 case 16: return SPELL_ATTR3_CANT_TRIGGER_PROC;
719 case 17: return SPELL_ATTR3_NO_INITIAL_AGGRO;
720 case 18: return SPELL_ATTR3_IGNORE_HIT_RESULT;
721 case 19: return SPELL_ATTR3_DISABLE_PROC;
722 case 20: return SPELL_ATTR3_DEATH_PERSISTENT;
723 case 21: return SPELL_ATTR3_UNK21;
724 case 22: return SPELL_ATTR3_REQ_WAND;
725 case 23: return SPELL_ATTR3_UNK23;
726 case 24: return SPELL_ATTR3_REQ_OFFHAND;
727 case 25: return SPELL_ATTR3_TREAT_AS_PERIODIC;
728 case 26: return SPELL_ATTR3_CAN_PROC_FROM_PROCS;
729 case 27: return SPELL_ATTR3_DRAIN_SOUL;
730 case 28: return SPELL_ATTR3_UNK28;
731 case 29: return SPELL_ATTR3_NO_DONE_BONUS;
732 case 30: return SPELL_ATTR3_DONT_DISPLAY_RANGE;
733 case 31: return SPELL_ATTR3_UNK31;
734 default: throw std::out_of_range("index");
735 }
736}
737
738template <>
740{
741 switch (value)
742 {
743 case SPELL_ATTR3_UNK0: return 0;
745 case SPELL_ATTR3_UNK2: return 2;
746 case SPELL_ATTR3_COMPLETELY_BLOCKED: return 3;
748 case SPELL_ATTR3_UNK5: return 5;
749 case SPELL_ATTR3_UNK6: return 6;
751 case SPELL_ATTR3_ONLY_TARGET_PLAYERS: return 8;
752 case SPELL_ATTR3_NOT_A_PROC: return 9;
753 case SPELL_ATTR3_MAIN_HAND: return 10;
754 case SPELL_ATTR3_BATTLEGROUND: return 11;
755 case SPELL_ATTR3_ONLY_TARGET_GHOSTS: return 12;
757 case SPELL_ATTR3_IS_HONORLESS_TARGET: return 14;
758 case SPELL_ATTR3_UNK15: return 15;
759 case SPELL_ATTR3_CANT_TRIGGER_PROC: return 16;
760 case SPELL_ATTR3_NO_INITIAL_AGGRO: return 17;
761 case SPELL_ATTR3_IGNORE_HIT_RESULT: return 18;
762 case SPELL_ATTR3_DISABLE_PROC: return 19;
763 case SPELL_ATTR3_DEATH_PERSISTENT: return 20;
764 case SPELL_ATTR3_UNK21: return 21;
765 case SPELL_ATTR3_REQ_WAND: return 22;
766 case SPELL_ATTR3_UNK23: return 23;
767 case SPELL_ATTR3_REQ_OFFHAND: return 24;
768 case SPELL_ATTR3_TREAT_AS_PERIODIC: return 25;
769 case SPELL_ATTR3_CAN_PROC_FROM_PROCS: return 26;
770 case SPELL_ATTR3_DRAIN_SOUL: return 27;
771 case SPELL_ATTR3_UNK28: return 28;
772 case SPELL_ATTR3_NO_DONE_BONUS: return 29;
773 case SPELL_ATTR3_DONT_DISPLAY_RANGE: return 30;
774 case SPELL_ATTR3_UNK31: return 31;
775 default: throw std::out_of_range("value");
776 }
777}
778
779/******************************************************************\
780|* data for enum 'SpellAttr4' in 'SharedDefines.h' auto-generated *|
781\******************************************************************/
782template <>
784{
785 switch (value)
786 {
787 case SPELL_ATTR4_IGNORE_RESISTANCES: return { "SPELL_ATTR4_IGNORE_RESISTANCES", "Cannot be resisted", "" };
788 case SPELL_ATTR4_PROC_ONLY_ON_CASTER: return { "SPELL_ATTR4_PROC_ONLY_ON_CASTER", "Only proc on self-cast", "" };
789 case SPELL_ATTR4_FADES_WHILE_LOGGED_OUT: return { "SPELL_ATTR4_FADES_WHILE_LOGGED_OUT", "Buff expires while offline", "Debuffs (except Resurrection Sickness) will automatically do this" };
790 case SPELL_ATTR4_UNK3: return { "SPELL_ATTR4_UNK3", "Unknown attribute 3@Attr4", "" };
791 case SPELL_ATTR4_UNK4: return { "SPELL_ATTR4_UNK4", "Treat as delayed spell", "" };
792 case SPELL_ATTR4_UNK5: return { "SPELL_ATTR4_UNK5", "Unknown attribute 5@Attr4", "" };
793 case SPELL_ATTR4_NOT_STEALABLE: return { "SPELL_ATTR4_NOT_STEALABLE", "Aura cannot be stolen", "" };
794 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" };
795 case SPELL_ATTR4_FIXED_DAMAGE: return { "SPELL_ATTR4_FIXED_DAMAGE", "Deals fixed damage", "" };
796 case SPELL_ATTR4_TRIGGER_ACTIVATE: return { "SPELL_ATTR4_TRIGGER_ACTIVATE", "Spell is initially disabled (client only)", "" };
797 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" };
798 case SPELL_ATTR4_UNK11: return { "SPELL_ATTR4_UNK11", "Unknown attribute 11@Attr4", "" };
799 case SPELL_ATTR4_UNK12: return { "SPELL_ATTR4_UNK12", "Unknown attribute 12@Attr4", "" };
800 case SPELL_ATTR4_UNK13: return { "SPELL_ATTR4_UNK13", "Unknown attribute 13@Attr4", "" };
801 case SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS: return { "SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS", "Damage does not break auras", "" };
802 case SPELL_ATTR4_UNK15: return { "SPELL_ATTR4_UNK15", "Unknown attribute 15@Attr4", "" };
803 case SPELL_ATTR4_NOT_USABLE_IN_ARENA: return { "SPELL_ATTR4_NOT_USABLE_IN_ARENA", "Not usable in arena", "Makes spell unusable despite CD <= 10min" };
804 case SPELL_ATTR4_USABLE_IN_ARENA: return { "SPELL_ATTR4_USABLE_IN_ARENA", "Usable in arena", "Makes spell usable despite CD > 10min" };
805 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" };
806 case SPELL_ATTR4_UNK19: return { "SPELL_ATTR4_UNK19", "Unknown attribute 19@Attr4", "" };
807 case SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER: return { "SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER", "Allow self-cast to override stronger aura (client only)", "" };
808 case SPELL_ATTR4_DONT_REMOVE_IN_ARENA: return { "SPELL_ATTR4_DONT_REMOVE_IN_ARENA", "Keep when entering arena", "" };
809 case SPELL_ATTR4_UNK22: return { "SPELL_ATTR4_UNK22", "Unknown attribute 22@Attr4", "" };
810 case SPELL_ATTR4_CANT_TRIGGER_ITEM_SPELLS: return { "SPELL_ATTR4_CANT_TRIGGER_ITEM_SPELLS", "Cannot trigger item spells", "" };
811 case SPELL_ATTR4_UNK24: return { "SPELL_ATTR4_UNK24", "Unknown attribute 24@Attr4", "Shoot-type spell?" };
812 case SPELL_ATTR4_IS_PET_SCALING: return { "SPELL_ATTR4_IS_PET_SCALING", "Pet Scaling aura", "" };
813 case SPELL_ATTR4_CAST_ONLY_IN_OUTLAND: return { "SPELL_ATTR4_CAST_ONLY_IN_OUTLAND", "Only in Outland/Northrend", "" };
814 case SPELL_ATTR4_FORCE_DISPLAY_CASTBAR: return { "SPELL_ATTR4_FORCE_DISPLAY_CASTBAR", "Force Display Castbar", "" };
815 case SPELL_ATTR4_UNK28: return { "SPELL_ATTR4_UNK28", "Unknown attribute 28@Attr4", "" };
816 case SPELL_ATTR4_UNK29: return { "SPELL_ATTR4_UNK29", "Unknown attribute 29@Attr4", "" };
817 case SPELL_ATTR4_UNK30: return { "SPELL_ATTR4_UNK30", "Unknown attribute 30@Attr4", "" };
818 case SPELL_ATTR4_UNK31: return { "SPELL_ATTR4_UNK31", "Unknown attribute 31@Attr4", "" };
819 default: throw std::out_of_range("value");
820 }
821}
822
823template <>
825
826template <>
828{
829 switch (index)
830 {
831 case 0: return SPELL_ATTR4_IGNORE_RESISTANCES;
832 case 1: return SPELL_ATTR4_PROC_ONLY_ON_CASTER;
834 case 3: return SPELL_ATTR4_UNK3;
835 case 4: return SPELL_ATTR4_UNK4;
836 case 5: return SPELL_ATTR4_UNK5;
837 case 6: return SPELL_ATTR4_NOT_STEALABLE;
839 case 8: return SPELL_ATTR4_FIXED_DAMAGE;
840 case 9: return SPELL_ATTR4_TRIGGER_ACTIVATE;
841 case 10: return SPELL_ATTR4_SPELL_VS_EXTEND_COST;
842 case 11: return SPELL_ATTR4_UNK11;
843 case 12: return SPELL_ATTR4_UNK12;
844 case 13: return SPELL_ATTR4_UNK13;
846 case 15: return SPELL_ATTR4_UNK15;
847 case 16: return SPELL_ATTR4_NOT_USABLE_IN_ARENA;
848 case 17: return SPELL_ATTR4_USABLE_IN_ARENA;
849 case 18: return SPELL_ATTR4_AREA_TARGET_CHAIN;
850 case 19: return SPELL_ATTR4_UNK19;
852 case 21: return SPELL_ATTR4_DONT_REMOVE_IN_ARENA;
853 case 22: return SPELL_ATTR4_UNK22;
855 case 24: return SPELL_ATTR4_UNK24;
856 case 25: return SPELL_ATTR4_IS_PET_SCALING;
857 case 26: return SPELL_ATTR4_CAST_ONLY_IN_OUTLAND;
858 case 27: return SPELL_ATTR4_FORCE_DISPLAY_CASTBAR;
859 case 28: return SPELL_ATTR4_UNK28;
860 case 29: return SPELL_ATTR4_UNK29;
861 case 30: return SPELL_ATTR4_UNK30;
862 case 31: return SPELL_ATTR4_UNK31;
863 default: throw std::out_of_range("index");
864 }
865}
866
867template <>
869{
870 switch (value)
871 {
872 case SPELL_ATTR4_IGNORE_RESISTANCES: return 0;
873 case SPELL_ATTR4_PROC_ONLY_ON_CASTER: return 1;
875 case SPELL_ATTR4_UNK3: return 3;
876 case SPELL_ATTR4_UNK4: return 4;
877 case SPELL_ATTR4_UNK5: return 5;
878 case SPELL_ATTR4_NOT_STEALABLE: return 6;
880 case SPELL_ATTR4_FIXED_DAMAGE: return 8;
881 case SPELL_ATTR4_TRIGGER_ACTIVATE: return 9;
882 case SPELL_ATTR4_SPELL_VS_EXTEND_COST: return 10;
883 case SPELL_ATTR4_UNK11: return 11;
884 case SPELL_ATTR4_UNK12: return 12;
885 case SPELL_ATTR4_UNK13: return 13;
887 case SPELL_ATTR4_UNK15: return 15;
888 case SPELL_ATTR4_NOT_USABLE_IN_ARENA: return 16;
889 case SPELL_ATTR4_USABLE_IN_ARENA: return 17;
890 case SPELL_ATTR4_AREA_TARGET_CHAIN: return 18;
891 case SPELL_ATTR4_UNK19: return 19;
893 case SPELL_ATTR4_DONT_REMOVE_IN_ARENA: return 21;
894 case SPELL_ATTR4_UNK22: return 22;
896 case SPELL_ATTR4_UNK24: return 24;
897 case SPELL_ATTR4_IS_PET_SCALING: return 25;
898 case SPELL_ATTR4_CAST_ONLY_IN_OUTLAND: return 26;
899 case SPELL_ATTR4_FORCE_DISPLAY_CASTBAR: return 27;
900 case SPELL_ATTR4_UNK28: return 28;
901 case SPELL_ATTR4_UNK29: return 29;
902 case SPELL_ATTR4_UNK30: return 30;
903 case SPELL_ATTR4_UNK31: return 31;
904 default: throw std::out_of_range("value");
905 }
906}
907
908/******************************************************************\
909|* data for enum 'SpellAttr5' in 'SharedDefines.h' auto-generated *|
910\******************************************************************/
911template <>
913{
914 switch (value)
915 {
916 case SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING: return { "SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING", "Can be channeled while moving", "" };
917 case SPELL_ATTR5_NO_REAGENT_WHILE_PREP: return { "SPELL_ATTR5_NO_REAGENT_WHILE_PREP", "No reagents during arena preparation", "" };
918 case SPELL_ATTR5_REMOVE_ON_ARENA_ENTER: return { "SPELL_ATTR5_REMOVE_ON_ARENA_ENTER", "Remove when entering arena", "Force this aura to be removed on entering arena, regardless of other properties" };
919 case SPELL_ATTR5_USABLE_WHILE_STUNNED: return { "SPELL_ATTR5_USABLE_WHILE_STUNNED", "Usable while stunned", "" };
920 case SPELL_ATTR5_UNK4: return { "SPELL_ATTR5_UNK4", "Unknown attribute 4@Attr5", "" };
921 case SPELL_ATTR5_SINGLE_TARGET_SPELL: return { "SPELL_ATTR5_SINGLE_TARGET_SPELL", "Single-target aura", "Remove previous application to another unit if applied" };
922 case SPELL_ATTR5_UNK6: return { "SPELL_ATTR5_UNK6", "Unknown attribute 6@Attr5", "" };
923 case SPELL_ATTR5_UNK7: return { "SPELL_ATTR5_UNK7", "Unknown attribute 7@Attr5", "" };
924 case SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED: return { "SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED", "Cannot target player controlled units but can target players", "" };
925 case SPELL_ATTR5_START_PERIODIC_AT_APPLY: return { "SPELL_ATTR5_START_PERIODIC_AT_APPLY", "Immediately do periodic tick on apply", "" };
926 case SPELL_ATTR5_HIDE_DURATION: return { "SPELL_ATTR5_HIDE_DURATION", "Do not send aura duration to client", "" };
927 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)", "" };
928 case SPELL_ATTR5_UNK12: return { "SPELL_ATTR5_UNK12", "Unknown attribute 12@Attr5", "Cleave related?" };
929 case SPELL_ATTR5_HASTE_AFFECT_DURATION: return { "SPELL_ATTR5_HASTE_AFFECT_DURATION", "Duration scales with Haste Rating", "" };
930 case SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED: return { "SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED", "Charmed units cannot cast this spell", "" };
931 case SPELL_ATTR5_UNK15: return { "SPELL_ATTR5_UNK15", "Unknown attribute 15@Attr5", "Related to multi-target spells?" };
932 case SPELL_ATTR5_UNK16: return { "SPELL_ATTR5_UNK16", "Unknown attribute 16@Attr5", "" };
933 case SPELL_ATTR5_USABLE_WHILE_FEARED: return { "SPELL_ATTR5_USABLE_WHILE_FEARED", "Usable while feared", "" };
934 case SPELL_ATTR5_USABLE_WHILE_CONFUSED: return { "SPELL_ATTR5_USABLE_WHILE_CONFUSED", "Usable while confused", "" };
935 case SPELL_ATTR5_DONT_TURN_DURING_CAST: return { "SPELL_ATTR5_DONT_TURN_DURING_CAST", "Do not auto-turn while casting", "" };
936 case SPELL_ATTR5_UNK20: return { "SPELL_ATTR5_UNK20", "Unknown attribute 20@Attr5", "" };
937 case SPELL_ATTR5_UNK21: return { "SPELL_ATTR5_UNK21", "Unknown attribute 21@Attr5", "" };
938 case SPELL_ATTR5_UNK22: return { "SPELL_ATTR5_UNK22", "Unknown attribute 22@Attr5", "" };
939 case SPELL_ATTR5_UNK23: return { "SPELL_ATTR5_UNK23", "Unknown attribute 23@Attr5", "" };
940 case SPELL_ATTR5_UNK24: return { "SPELL_ATTR5_UNK24", "Unknown attribute 24@Attr5", "" };
941 case SPELL_ATTR5_UNK25: return { "SPELL_ATTR5_UNK25", "Unknown attribute 25@Attr5", "" };
942 case SPELL_ATTR5_SKIP_CHECKCAST_LOS_CHECK: return { "SPELL_ATTR5_SKIP_CHECKCAST_LOS_CHECK", "Ignore line of sight checks", "" };
943 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)", "" };
944 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)", "" };
945 case SPELL_ATTR5_UNK29: return { "SPELL_ATTR5_UNK29", "Unknown attribute 29@Attr5", "" };
946 case SPELL_ATTR5_UNK30: return { "SPELL_ATTR5_UNK30", "Unknown attribute 30@Attr5", "" };
947 case SPELL_ATTR5_UNK31: return { "SPELL_ATTR5_UNK31", "Unknown attribute 31@Attr5", "Forces nearby enemies to attack caster?" };
948 default: throw std::out_of_range("value");
949 }
950}
951
952template <>
954
955template <>
957{
958 switch (index)
959 {
964 case 4: return SPELL_ATTR5_UNK4;
965 case 5: return SPELL_ATTR5_SINGLE_TARGET_SPELL;
966 case 6: return SPELL_ATTR5_UNK6;
967 case 7: return SPELL_ATTR5_UNK7;
970 case 10: return SPELL_ATTR5_HIDE_DURATION;
972 case 12: return SPELL_ATTR5_UNK12;
973 case 13: return SPELL_ATTR5_HASTE_AFFECT_DURATION;
975 case 15: return SPELL_ATTR5_UNK15;
976 case 16: return SPELL_ATTR5_UNK16;
977 case 17: return SPELL_ATTR5_USABLE_WHILE_FEARED;
978 case 18: return SPELL_ATTR5_USABLE_WHILE_CONFUSED;
979 case 19: return SPELL_ATTR5_DONT_TURN_DURING_CAST;
980 case 20: return SPELL_ATTR5_UNK20;
981 case 21: return SPELL_ATTR5_UNK21;
982 case 22: return SPELL_ATTR5_UNK22;
983 case 23: return SPELL_ATTR5_UNK23;
984 case 24: return SPELL_ATTR5_UNK24;
985 case 25: return SPELL_ATTR5_UNK25;
989 case 29: return SPELL_ATTR5_UNK29;
990 case 30: return SPELL_ATTR5_UNK30;
991 case 31: return SPELL_ATTR5_UNK31;
992 default: throw std::out_of_range("index");
993 }
994}
995
996template <>
998{
999 switch (value)
1000 {
1002 case SPELL_ATTR5_NO_REAGENT_WHILE_PREP: return 1;
1003 case SPELL_ATTR5_REMOVE_ON_ARENA_ENTER: return 2;
1004 case SPELL_ATTR5_USABLE_WHILE_STUNNED: return 3;
1005 case SPELL_ATTR5_UNK4: return 4;
1006 case SPELL_ATTR5_SINGLE_TARGET_SPELL: return 5;
1007 case SPELL_ATTR5_UNK6: return 6;
1008 case SPELL_ATTR5_UNK7: return 7;
1011 case SPELL_ATTR5_HIDE_DURATION: return 10;
1013 case SPELL_ATTR5_UNK12: return 12;
1014 case SPELL_ATTR5_HASTE_AFFECT_DURATION: return 13;
1016 case SPELL_ATTR5_UNK15: return 15;
1017 case SPELL_ATTR5_UNK16: return 16;
1018 case SPELL_ATTR5_USABLE_WHILE_FEARED: return 17;
1019 case SPELL_ATTR5_USABLE_WHILE_CONFUSED: return 18;
1020 case SPELL_ATTR5_DONT_TURN_DURING_CAST: return 19;
1021 case SPELL_ATTR5_UNK20: return 20;
1022 case SPELL_ATTR5_UNK21: return 21;
1023 case SPELL_ATTR5_UNK22: return 22;
1024 case SPELL_ATTR5_UNK23: return 23;
1025 case SPELL_ATTR5_UNK24: return 24;
1026 case SPELL_ATTR5_UNK25: return 25;
1030 case SPELL_ATTR5_UNK29: return 29;
1031 case SPELL_ATTR5_UNK30: return 30;
1032 case SPELL_ATTR5_UNK31: return 31;
1033 default: throw std::out_of_range("value");
1034 }
1035}
1036
1037/******************************************************************\
1038|* data for enum 'SpellAttr6' in 'SharedDefines.h' auto-generated *|
1039\******************************************************************/
1040template <>
1042{
1043 switch (value)
1044 {
1045 case SPELL_ATTR6_DONT_DISPLAY_COOLDOWN: return { "SPELL_ATTR6_DONT_DISPLAY_COOLDOWN", "Don't display cooldown (client only)", "" };
1046 case SPELL_ATTR6_ONLY_IN_ARENA: return { "SPELL_ATTR6_ONLY_IN_ARENA", "Only usable in arena", "" };
1047 case SPELL_ATTR6_IGNORE_CASTER_AURAS: return { "SPELL_ATTR6_IGNORE_CASTER_AURAS", "Ignore all preventing caster auras", "" };
1048 case SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG: return { "SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG", "Ignore immunity flags when assisting", "" };
1049 case SPELL_ATTR6_UNK4: return { "SPELL_ATTR6_UNK4", "Unknown attribute 4@Attr6", "" };
1050 case SPELL_ATTR6_DONT_CONSUME_PROC_CHARGES: return { "SPELL_ATTR6_DONT_CONSUME_PROC_CHARGES", "Don't consume proc charges", "" };
1051 case SPELL_ATTR6_USE_SPELL_CAST_EVENT: return { "SPELL_ATTR6_USE_SPELL_CAST_EVENT", "Generate spell_cast event instead of aura_start (client only)", "" };
1052 case SPELL_ATTR6_UNK7: return { "SPELL_ATTR6_UNK7", "Unknown attribute 7@Attr6", "" };
1053 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" };
1054 case SPELL_ATTR6_UNK9: return { "SPELL_ATTR6_UNK9", "Unknown attribute 9@Attr6", "" };
1055 case SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS: return { "SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS", "Can target possessed friends", "[NYI]" };
1056 case SPELL_ATTR6_NOT_IN_RAID_INSTANCE: return { "SPELL_ATTR6_NOT_IN_RAID_INSTANCE", "Unusable in raid instances", "" };
1057 case SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE: return { "SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE", "Castable while caster is on vehicle", "" };
1058 case SPELL_ATTR6_CAN_TARGET_INVISIBLE: return { "SPELL_ATTR6_CAN_TARGET_INVISIBLE", "Can target invisible units", "" };
1059 case SPELL_ATTR6_UNK14: return { "SPELL_ATTR6_UNK14", "Unknown attribute 14@Attr6", "" };
1060 case SPELL_ATTR6_UNK15: return { "SPELL_ATTR6_UNK15", "Unknown attribute 15@Attr6", "" };
1061 case SPELL_ATTR6_UNK16: return { "SPELL_ATTR6_UNK16", "Unknown attribute 16@Attr6", "" };
1062 case SPELL_ATTR6_UNK17: return { "SPELL_ATTR6_UNK17", "Unknown attribute 17@Attr6", "Mount related?" };
1063 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" };
1064 case SPELL_ATTR6_UNK19: return { "SPELL_ATTR6_UNK19", "Unknown attribute 19@Attr6", "" };
1065 case SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER: return { "SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER", "Only visible to caster (client only)", "" };
1066 case SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS: return { "SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS", "Client UI target effects (client only)", "" };
1067 case SPELL_ATTR6_UNK22: return { "SPELL_ATTR6_UNK22", "Unknown attribute 22@Attr6", "" };
1068 case SPELL_ATTR6_UNK23: return { "SPELL_ATTR6_UNK23", "Unknown attribute 23@Attr6", "" };
1069 case SPELL_ATTR6_CAN_TARGET_UNTARGETABLE: return { "SPELL_ATTR6_CAN_TARGET_UNTARGETABLE", "Can target untargetable units", "" };
1070 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", "" };
1071 case SPELL_ATTR6_UNK26: return { "SPELL_ATTR6_UNK26", "Unknown attribute 26@Attr6", "Player castable buff?" };
1072 case SPELL_ATTR6_LIMIT_PCT_HEALING_MODS: return { "SPELL_ATTR6_LIMIT_PCT_HEALING_MODS", "Limit applicable %healing modifiers", "This prevents certain healing modifiers from applying - see implementation if you really care about details" };
1073 case SPELL_ATTR6_UNK28: return { "SPELL_ATTR6_UNK28", "Unknown attribute 28@Attr6", "Death grip?" };
1074 case SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS: return { "SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS", "Limit applicable %damage modifiers", "This prevents certain damage modifiers from applying - see implementation if you really care about details" };
1075 case SPELL_ATTR6_UNK30: return { "SPELL_ATTR6_UNK30", "Unknown attribute 30@Attr6", "" };
1076 case SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS: return { "SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS", "Ignore cooldown modifiers for category cooldown", "" };
1077 default: throw std::out_of_range("value");
1078 }
1079}
1080
1081template <>
1083
1084template <>
1086{
1087 switch (index)
1088 {
1089 case 0: return SPELL_ATTR6_DONT_DISPLAY_COOLDOWN;
1090 case 1: return SPELL_ATTR6_ONLY_IN_ARENA;
1091 case 2: return SPELL_ATTR6_IGNORE_CASTER_AURAS;
1093 case 4: return SPELL_ATTR6_UNK4;
1095 case 6: return SPELL_ATTR6_USE_SPELL_CAST_EVENT;
1096 case 7: return SPELL_ATTR6_UNK7;
1098 case 9: return SPELL_ATTR6_UNK9;
1100 case 11: return SPELL_ATTR6_NOT_IN_RAID_INSTANCE;
1102 case 13: return SPELL_ATTR6_CAN_TARGET_INVISIBLE;
1103 case 14: return SPELL_ATTR6_UNK14;
1104 case 15: return SPELL_ATTR6_UNK15;
1105 case 16: return SPELL_ATTR6_UNK16;
1106 case 17: return SPELL_ATTR6_UNK17;
1107 case 18: return SPELL_ATTR6_CAST_BY_CHARMER;
1108 case 19: return SPELL_ATTR6_UNK19;
1109 case 20: return SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER;
1111 case 22: return SPELL_ATTR6_UNK22;
1112 case 23: return SPELL_ATTR6_UNK23;
1115 case 26: return SPELL_ATTR6_UNK26;
1116 case 27: return SPELL_ATTR6_LIMIT_PCT_HEALING_MODS;
1117 case 28: return SPELL_ATTR6_UNK28;
1118 case 29: return SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS;
1119 case 30: return SPELL_ATTR6_UNK30;
1121 default: throw std::out_of_range("index");
1122 }
1123}
1124
1125template <>
1127{
1128 switch (value)
1129 {
1130 case SPELL_ATTR6_DONT_DISPLAY_COOLDOWN: return 0;
1131 case SPELL_ATTR6_ONLY_IN_ARENA: return 1;
1132 case SPELL_ATTR6_IGNORE_CASTER_AURAS: return 2;
1134 case SPELL_ATTR6_UNK4: return 4;
1136 case SPELL_ATTR6_USE_SPELL_CAST_EVENT: return 6;
1137 case SPELL_ATTR6_UNK7: return 7;
1139 case SPELL_ATTR6_UNK9: return 9;
1141 case SPELL_ATTR6_NOT_IN_RAID_INSTANCE: return 11;
1143 case SPELL_ATTR6_CAN_TARGET_INVISIBLE: return 13;
1144 case SPELL_ATTR6_UNK14: return 14;
1145 case SPELL_ATTR6_UNK15: return 15;
1146 case SPELL_ATTR6_UNK16: return 16;
1147 case SPELL_ATTR6_UNK17: return 17;
1148 case SPELL_ATTR6_CAST_BY_CHARMER: return 18;
1149 case SPELL_ATTR6_UNK19: return 19;
1150 case SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER: return 20;
1152 case SPELL_ATTR6_UNK22: return 22;
1153 case SPELL_ATTR6_UNK23: return 23;
1156 case SPELL_ATTR6_UNK26: return 26;
1157 case SPELL_ATTR6_LIMIT_PCT_HEALING_MODS: return 27;
1158 case SPELL_ATTR6_UNK28: return 28;
1159 case SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS: return 29;
1160 case SPELL_ATTR6_UNK30: return 30;
1162 default: throw std::out_of_range("value");
1163 }
1164}
1165
1166/******************************************************************\
1167|* data for enum 'SpellAttr7' in 'SharedDefines.h' auto-generated *|
1168\******************************************************************/
1169template <>
1171{
1172 switch (value)
1173 {
1174 case SPELL_ATTR7_UNK0: return { "SPELL_ATTR7_UNK0", "Unknown attribute 0@Attr7", "" };
1175 case SPELL_ATTR7_IGNORE_DURATION_MODS: return { "SPELL_ATTR7_IGNORE_DURATION_MODS", "Ignore duration modifiers", "" };
1176 case SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD: return { "SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD", "Disable Aura While Dead", "" };
1177 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" };
1178 case SPELL_ATTR7_UNK4: return { "SPELL_ATTR7_UNK4", "Unknown attribute 4@Attr7", "Soulstone related?" };
1179 case SPELL_ATTR7_SUMMON_PLAYER_TOTEM: return { "SPELL_ATTR7_SUMMON_PLAYER_TOTEM", "Summons player-owned totem", "" };
1180 case SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE: return { "SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE", "Damage dealt by this does not cause spell pushback", "" };
1181 case SPELL_ATTR7_UNK7: return { "SPELL_ATTR7_UNK7", "Unknown attribute 7@Attr7", "" };
1182 case SPELL_ATTR7_HORDE_ONLY: return { "SPELL_ATTR7_HORDE_ONLY", "Horde only", "" };
1183 case SPELL_ATTR7_ALLIANCE_ONLY: return { "SPELL_ATTR7_ALLIANCE_ONLY", "Alliance only", "" };
1184 case SPELL_ATTR7_DISPEL_CHARGES: return { "SPELL_ATTR7_DISPEL_CHARGES", "Dispel/Spellsteal remove individual charges", "" };
1185 case SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER: return { "SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER", "Only interrupt non-player casting", "" };
1186 case SPELL_ATTR7_UNK12: return { "SPELL_ATTR7_UNK12", "Unknown attribute 12@Attr7", "" };
1187 case SPELL_ATTR7_UNK13: return { "SPELL_ATTR7_UNK13", "Unknown attribute 13@Attr7", "" };
1188 case SPELL_ATTR7_UNK14: return { "SPELL_ATTR7_UNK14", "Unknown attribute 14@Attr7", "" };
1189 case SPELL_ATTR7_UNK15: return { "SPELL_ATTR7_UNK15", "Unknown attribute 15@Attr7", "Exorcism - guaranteed crit vs families?" };
1190 case SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER: return { "SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER", "Can restore secondary power", "Only spells with this attribute can replenish a non-active power type" };
1191 case SPELL_ATTR7_UNK17: return { "SPELL_ATTR7_UNK17", "Unknown attribute 17@Attr7", "" };
1192 case SPELL_ATTR7_HAS_CHARGE_EFFECT: return { "SPELL_ATTR7_HAS_CHARGE_EFFECT", "Has charge effect", "" };
1193 case SPELL_ATTR7_ZONE_TELEPORT: return { "SPELL_ATTR7_ZONE_TELEPORT", "Is zone teleport", "" };
1194 case SPELL_ATTR7_UNK20: return { "SPELL_ATTR7_UNK20", "Unknown attribute 20@Attr7", "Invulnerability related?" };
1195 case SPELL_ATTR7_UNK21: return { "SPELL_ATTR7_UNK21", "Unknown attribute 21@Attr7", "" };
1196 case SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING: return { "SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING", "Ignore cold weather flying restriction", "Set for loaner mounts, allows them to be used despite lacking required flight skill" };
1197 case SPELL_ATTR7_CANT_DODGE: return { "SPELL_ATTR7_CANT_DODGE", "Spell cannot be dodged", "" };
1198 case SPELL_ATTR7_CANT_PARRY: return { "SPELL_ATTR7_CANT_PARRY", "Spell cannot be parried", "" };
1199 case SPELL_ATTR7_CANT_MISS: return { "SPELL_ATTR7_CANT_MISS", "Spell cannot be missed", "" };
1200 case SPELL_ATTR7_UNK26: return { "SPELL_ATTR7_UNK26", "Unknown attribute 26@Attr7", "" };
1201 case SPELL_ATTR7_BYPASS_NO_RESURRECT_AURA: return { "SPELL_ATTR7_BYPASS_NO_RESURRECT_AURA", "Bypasses the prevent resurrection aura", "" };
1202 case SPELL_ATTR7_CONSOLIDATED_RAID_BUFF: return { "SPELL_ATTR7_CONSOLIDATED_RAID_BUFF", "Consolidate in raid buff frame (client only)", "" };
1203 case SPELL_ATTR7_UNK29: return { "SPELL_ATTR7_UNK29", "Unknown attribute 29@Attr7", "" };
1204 case SPELL_ATTR7_UNK30: return { "SPELL_ATTR7_UNK30", "Unknown attribute 30@Attr7", "" };
1205 case SPELL_ATTR7_CLIENT_INDICATOR: return { "SPELL_ATTR7_CLIENT_INDICATOR", "Client indicator (client only)", "" };
1206 default: throw std::out_of_range("value");
1207 }
1208}
1209
1210template <>
1212
1213template <>
1215{
1216 switch (index)
1217 {
1218 case 0: return SPELL_ATTR7_UNK0;
1219 case 1: return SPELL_ATTR7_IGNORE_DURATION_MODS;
1221 case 3: return SPELL_ATTR7_IS_CHEAT_SPELL;
1222 case 4: return SPELL_ATTR7_UNK4;
1223 case 5: return SPELL_ATTR7_SUMMON_PLAYER_TOTEM;
1224 case 6: return SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE;
1225 case 7: return SPELL_ATTR7_UNK7;
1226 case 8: return SPELL_ATTR7_HORDE_ONLY;
1227 case 9: return SPELL_ATTR7_ALLIANCE_ONLY;
1228 case 10: return SPELL_ATTR7_DISPEL_CHARGES;
1230 case 12: return SPELL_ATTR7_UNK12;
1231 case 13: return SPELL_ATTR7_UNK13;
1232 case 14: return SPELL_ATTR7_UNK14;
1233 case 15: return SPELL_ATTR7_UNK15;
1235 case 17: return SPELL_ATTR7_UNK17;
1236 case 18: return SPELL_ATTR7_HAS_CHARGE_EFFECT;
1237 case 19: return SPELL_ATTR7_ZONE_TELEPORT;
1238 case 20: return SPELL_ATTR7_UNK20;
1239 case 21: return SPELL_ATTR7_UNK21;
1241 case 23: return SPELL_ATTR7_CANT_DODGE;
1242 case 24: return SPELL_ATTR7_CANT_PARRY;
1243 case 25: return SPELL_ATTR7_CANT_MISS;
1244 case 26: return SPELL_ATTR7_UNK26;
1246 case 28: return SPELL_ATTR7_CONSOLIDATED_RAID_BUFF;
1247 case 29: return SPELL_ATTR7_UNK29;
1248 case 30: return SPELL_ATTR7_UNK30;
1249 case 31: return SPELL_ATTR7_CLIENT_INDICATOR;
1250 default: throw std::out_of_range("index");
1251 }
1252}
1253
1254template <>
1256{
1257 switch (value)
1258 {
1259 case SPELL_ATTR7_UNK0: return 0;
1260 case SPELL_ATTR7_IGNORE_DURATION_MODS: return 1;
1262 case SPELL_ATTR7_IS_CHEAT_SPELL: return 3;
1263 case SPELL_ATTR7_UNK4: return 4;
1264 case SPELL_ATTR7_SUMMON_PLAYER_TOTEM: return 5;
1265 case SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE: return 6;
1266 case SPELL_ATTR7_UNK7: return 7;
1267 case SPELL_ATTR7_HORDE_ONLY: return 8;
1268 case SPELL_ATTR7_ALLIANCE_ONLY: return 9;
1269 case SPELL_ATTR7_DISPEL_CHARGES: return 10;
1271 case SPELL_ATTR7_UNK12: return 12;
1272 case SPELL_ATTR7_UNK13: return 13;
1273 case SPELL_ATTR7_UNK14: return 14;
1274 case SPELL_ATTR7_UNK15: return 15;
1276 case SPELL_ATTR7_UNK17: return 17;
1277 case SPELL_ATTR7_HAS_CHARGE_EFFECT: return 18;
1278 case SPELL_ATTR7_ZONE_TELEPORT: return 19;
1279 case SPELL_ATTR7_UNK20: return 20;
1280 case SPELL_ATTR7_UNK21: return 21;
1282 case SPELL_ATTR7_CANT_DODGE: return 23;
1283 case SPELL_ATTR7_CANT_PARRY: return 24;
1284 case SPELL_ATTR7_CANT_MISS: return 25;
1285 case SPELL_ATTR7_UNK26: return 26;
1287 case SPELL_ATTR7_CONSOLIDATED_RAID_BUFF: return 28;
1288 case SPELL_ATTR7_UNK29: return 29;
1289 case SPELL_ATTR7_UNK30: return 30;
1290 case SPELL_ATTR7_CLIENT_INDICATOR: return 31;
1291 default: throw std::out_of_range("value");
1292 }
1293}
1294
1295/***********************************************************************\
1296|* data for enum 'SpellCastResult' in 'SharedDefines.h' auto-generated *|
1297\***********************************************************************/
1298template <>
1300{
1301 switch (value)
1302 {
1303 case SPELL_FAILED_SUCCESS: return { "SPELL_FAILED_SUCCESS", "SPELL_FAILED_SUCCESS", "" };
1304 case SPELL_FAILED_AFFECTING_COMBAT: return { "SPELL_FAILED_AFFECTING_COMBAT", "SPELL_FAILED_AFFECTING_COMBAT", "" };
1305 case SPELL_FAILED_ALREADY_AT_FULL_HEALTH: return { "SPELL_FAILED_ALREADY_AT_FULL_HEALTH", "SPELL_FAILED_ALREADY_AT_FULL_HEALTH", "" };
1306 case SPELL_FAILED_ALREADY_AT_FULL_MANA: return { "SPELL_FAILED_ALREADY_AT_FULL_MANA", "SPELL_FAILED_ALREADY_AT_FULL_MANA", "" };
1307 case SPELL_FAILED_ALREADY_AT_FULL_POWER: return { "SPELL_FAILED_ALREADY_AT_FULL_POWER", "SPELL_FAILED_ALREADY_AT_FULL_POWER", "" };
1308 case SPELL_FAILED_ALREADY_BEING_TAMED: return { "SPELL_FAILED_ALREADY_BEING_TAMED", "SPELL_FAILED_ALREADY_BEING_TAMED", "" };
1309 case SPELL_FAILED_ALREADY_HAVE_CHARM: return { "SPELL_FAILED_ALREADY_HAVE_CHARM", "SPELL_FAILED_ALREADY_HAVE_CHARM", "" };
1310 case SPELL_FAILED_ALREADY_HAVE_SUMMON: return { "SPELL_FAILED_ALREADY_HAVE_SUMMON", "SPELL_FAILED_ALREADY_HAVE_SUMMON", "" };
1311 case SPELL_FAILED_ALREADY_OPEN: return { "SPELL_FAILED_ALREADY_OPEN", "SPELL_FAILED_ALREADY_OPEN", "" };
1312 case SPELL_FAILED_AURA_BOUNCED: return { "SPELL_FAILED_AURA_BOUNCED", "SPELL_FAILED_AURA_BOUNCED", "" };
1313 case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return { "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "" };
1314 case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return { "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "" };
1315 case SPELL_FAILED_BAD_TARGETS: return { "SPELL_FAILED_BAD_TARGETS", "SPELL_FAILED_BAD_TARGETS", "" };
1316 case SPELL_FAILED_CANT_BE_CHARMED: return { "SPELL_FAILED_CANT_BE_CHARMED", "SPELL_FAILED_CANT_BE_CHARMED", "" };
1317 case SPELL_FAILED_CANT_BE_DISENCHANTED: return { "SPELL_FAILED_CANT_BE_DISENCHANTED", "SPELL_FAILED_CANT_BE_DISENCHANTED", "" };
1318 case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return { "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "" };
1319 case SPELL_FAILED_CANT_BE_MILLED: return { "SPELL_FAILED_CANT_BE_MILLED", "SPELL_FAILED_CANT_BE_MILLED", "" };
1320 case SPELL_FAILED_CANT_BE_PROSPECTED: return { "SPELL_FAILED_CANT_BE_PROSPECTED", "SPELL_FAILED_CANT_BE_PROSPECTED", "" };
1321 case SPELL_FAILED_CANT_CAST_ON_TAPPED: return { "SPELL_FAILED_CANT_CAST_ON_TAPPED", "SPELL_FAILED_CANT_CAST_ON_TAPPED", "" };
1322 case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return { "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "" };
1323 case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return { "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "" };
1324 case SPELL_FAILED_CANT_STEALTH: return { "SPELL_FAILED_CANT_STEALTH", "SPELL_FAILED_CANT_STEALTH", "" };
1325 case SPELL_FAILED_CASTER_AURASTATE: return { "SPELL_FAILED_CASTER_AURASTATE", "SPELL_FAILED_CASTER_AURASTATE", "" };
1326 case SPELL_FAILED_CASTER_DEAD: return { "SPELL_FAILED_CASTER_DEAD", "SPELL_FAILED_CASTER_DEAD", "" };
1327 case SPELL_FAILED_CHARMED: return { "SPELL_FAILED_CHARMED", "SPELL_FAILED_CHARMED", "" };
1328 case SPELL_FAILED_CHEST_IN_USE: return { "SPELL_FAILED_CHEST_IN_USE", "SPELL_FAILED_CHEST_IN_USE", "" };
1329 case SPELL_FAILED_CONFUSED: return { "SPELL_FAILED_CONFUSED", "SPELL_FAILED_CONFUSED", "" };
1330 case SPELL_FAILED_DONT_REPORT: return { "SPELL_FAILED_DONT_REPORT", "SPELL_FAILED_DONT_REPORT", "" };
1331 case SPELL_FAILED_EQUIPPED_ITEM: return { "SPELL_FAILED_EQUIPPED_ITEM", "SPELL_FAILED_EQUIPPED_ITEM", "" };
1332 case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "" };
1333 case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "" };
1334 case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "" };
1335 case SPELL_FAILED_ERROR: return { "SPELL_FAILED_ERROR", "SPELL_FAILED_ERROR", "" };
1336 case SPELL_FAILED_FIZZLE: return { "SPELL_FAILED_FIZZLE", "SPELL_FAILED_FIZZLE", "" };
1337 case SPELL_FAILED_FLEEING: return { "SPELL_FAILED_FLEEING", "SPELL_FAILED_FLEEING", "" };
1338 case SPELL_FAILED_FOOD_LOWLEVEL: return { "SPELL_FAILED_FOOD_LOWLEVEL", "SPELL_FAILED_FOOD_LOWLEVEL", "" };
1339 case SPELL_FAILED_HIGHLEVEL: return { "SPELL_FAILED_HIGHLEVEL", "SPELL_FAILED_HIGHLEVEL", "" };
1340 case SPELL_FAILED_HUNGER_SATIATED: return { "SPELL_FAILED_HUNGER_SATIATED", "SPELL_FAILED_HUNGER_SATIATED", "" };
1341 case SPELL_FAILED_IMMUNE: return { "SPELL_FAILED_IMMUNE", "SPELL_FAILED_IMMUNE", "" };
1342 case SPELL_FAILED_INCORRECT_AREA: return { "SPELL_FAILED_INCORRECT_AREA", "SPELL_FAILED_INCORRECT_AREA", "" };
1343 case SPELL_FAILED_INTERRUPTED: return { "SPELL_FAILED_INTERRUPTED", "SPELL_FAILED_INTERRUPTED", "" };
1344 case SPELL_FAILED_INTERRUPTED_COMBAT: return { "SPELL_FAILED_INTERRUPTED_COMBAT", "SPELL_FAILED_INTERRUPTED_COMBAT", "" };
1345 case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return { "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "" };
1346 case SPELL_FAILED_ITEM_GONE: return { "SPELL_FAILED_ITEM_GONE", "SPELL_FAILED_ITEM_GONE", "" };
1347 case SPELL_FAILED_ITEM_NOT_FOUND: return { "SPELL_FAILED_ITEM_NOT_FOUND", "SPELL_FAILED_ITEM_NOT_FOUND", "" };
1348 case SPELL_FAILED_ITEM_NOT_READY: return { "SPELL_FAILED_ITEM_NOT_READY", "SPELL_FAILED_ITEM_NOT_READY", "" };
1349 case SPELL_FAILED_LEVEL_REQUIREMENT: return { "SPELL_FAILED_LEVEL_REQUIREMENT", "SPELL_FAILED_LEVEL_REQUIREMENT", "" };
1350 case SPELL_FAILED_LINE_OF_SIGHT: return { "SPELL_FAILED_LINE_OF_SIGHT", "SPELL_FAILED_LINE_OF_SIGHT", "" };
1351 case SPELL_FAILED_LOWLEVEL: return { "SPELL_FAILED_LOWLEVEL", "SPELL_FAILED_LOWLEVEL", "" };
1352 case SPELL_FAILED_LOW_CASTLEVEL: return { "SPELL_FAILED_LOW_CASTLEVEL", "SPELL_FAILED_LOW_CASTLEVEL", "" };
1353 case SPELL_FAILED_MAINHAND_EMPTY: return { "SPELL_FAILED_MAINHAND_EMPTY", "SPELL_FAILED_MAINHAND_EMPTY", "" };
1354 case SPELL_FAILED_MOVING: return { "SPELL_FAILED_MOVING", "SPELL_FAILED_MOVING", "" };
1355 case SPELL_FAILED_NEED_AMMO: return { "SPELL_FAILED_NEED_AMMO", "SPELL_FAILED_NEED_AMMO", "" };
1356 case SPELL_FAILED_NEED_AMMO_POUCH: return { "SPELL_FAILED_NEED_AMMO_POUCH", "SPELL_FAILED_NEED_AMMO_POUCH", "" };
1357 case SPELL_FAILED_NEED_EXOTIC_AMMO: return { "SPELL_FAILED_NEED_EXOTIC_AMMO", "SPELL_FAILED_NEED_EXOTIC_AMMO", "" };
1358 case SPELL_FAILED_NEED_MORE_ITEMS: return { "SPELL_FAILED_NEED_MORE_ITEMS", "SPELL_FAILED_NEED_MORE_ITEMS", "" };
1359 case SPELL_FAILED_NOPATH: return { "SPELL_FAILED_NOPATH", "SPELL_FAILED_NOPATH", "" };
1360 case SPELL_FAILED_NOT_BEHIND: return { "SPELL_FAILED_NOT_BEHIND", "SPELL_FAILED_NOT_BEHIND", "" };
1361 case SPELL_FAILED_NOT_FISHABLE: return { "SPELL_FAILED_NOT_FISHABLE", "SPELL_FAILED_NOT_FISHABLE", "" };
1362 case SPELL_FAILED_NOT_FLYING: return { "SPELL_FAILED_NOT_FLYING", "SPELL_FAILED_NOT_FLYING", "" };
1363 case SPELL_FAILED_NOT_HERE: return { "SPELL_FAILED_NOT_HERE", "SPELL_FAILED_NOT_HERE", "" };
1364 case SPELL_FAILED_NOT_INFRONT: return { "SPELL_FAILED_NOT_INFRONT", "SPELL_FAILED_NOT_INFRONT", "" };
1365 case SPELL_FAILED_NOT_IN_CONTROL: return { "SPELL_FAILED_NOT_IN_CONTROL", "SPELL_FAILED_NOT_IN_CONTROL", "" };
1366 case SPELL_FAILED_NOT_KNOWN: return { "SPELL_FAILED_NOT_KNOWN", "SPELL_FAILED_NOT_KNOWN", "" };
1367 case SPELL_FAILED_NOT_MOUNTED: return { "SPELL_FAILED_NOT_MOUNTED", "SPELL_FAILED_NOT_MOUNTED", "" };
1368 case SPELL_FAILED_NOT_ON_TAXI: return { "SPELL_FAILED_NOT_ON_TAXI", "SPELL_FAILED_NOT_ON_TAXI", "" };
1369 case SPELL_FAILED_NOT_ON_TRANSPORT: return { "SPELL_FAILED_NOT_ON_TRANSPORT", "SPELL_FAILED_NOT_ON_TRANSPORT", "" };
1370 case SPELL_FAILED_NOT_READY: return { "SPELL_FAILED_NOT_READY", "SPELL_FAILED_NOT_READY", "" };
1371 case SPELL_FAILED_NOT_SHAPESHIFT: return { "SPELL_FAILED_NOT_SHAPESHIFT", "SPELL_FAILED_NOT_SHAPESHIFT", "" };
1372 case SPELL_FAILED_NOT_STANDING: return { "SPELL_FAILED_NOT_STANDING", "SPELL_FAILED_NOT_STANDING", "" };
1373 case SPELL_FAILED_NOT_TRADEABLE: return { "SPELL_FAILED_NOT_TRADEABLE", "SPELL_FAILED_NOT_TRADEABLE", "" };
1374 case SPELL_FAILED_NOT_TRADING: return { "SPELL_FAILED_NOT_TRADING", "SPELL_FAILED_NOT_TRADING", "" };
1375 case SPELL_FAILED_NOT_UNSHEATHED: return { "SPELL_FAILED_NOT_UNSHEATHED", "SPELL_FAILED_NOT_UNSHEATHED", "" };
1376 case SPELL_FAILED_NOT_WHILE_GHOST: return { "SPELL_FAILED_NOT_WHILE_GHOST", "SPELL_FAILED_NOT_WHILE_GHOST", "" };
1377 case SPELL_FAILED_NOT_WHILE_LOOTING: return { "SPELL_FAILED_NOT_WHILE_LOOTING", "SPELL_FAILED_NOT_WHILE_LOOTING", "" };
1378 case SPELL_FAILED_NO_AMMO: return { "SPELL_FAILED_NO_AMMO", "SPELL_FAILED_NO_AMMO", "" };
1379 case SPELL_FAILED_NO_CHARGES_REMAIN: return { "SPELL_FAILED_NO_CHARGES_REMAIN", "SPELL_FAILED_NO_CHARGES_REMAIN", "" };
1380 case SPELL_FAILED_NO_CHAMPION: return { "SPELL_FAILED_NO_CHAMPION", "SPELL_FAILED_NO_CHAMPION", "" };
1381 case SPELL_FAILED_NO_COMBO_POINTS: return { "SPELL_FAILED_NO_COMBO_POINTS", "SPELL_FAILED_NO_COMBO_POINTS", "" };
1382 case SPELL_FAILED_NO_DUELING: return { "SPELL_FAILED_NO_DUELING", "SPELL_FAILED_NO_DUELING", "" };
1383 case SPELL_FAILED_NO_ENDURANCE: return { "SPELL_FAILED_NO_ENDURANCE", "SPELL_FAILED_NO_ENDURANCE", "" };
1384 case SPELL_FAILED_NO_FISH: return { "SPELL_FAILED_NO_FISH", "SPELL_FAILED_NO_FISH", "" };
1385 case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return { "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "" };
1386 case SPELL_FAILED_NO_MOUNTS_ALLOWED: return { "SPELL_FAILED_NO_MOUNTS_ALLOWED", "SPELL_FAILED_NO_MOUNTS_ALLOWED", "" };
1387 case SPELL_FAILED_NO_PET: return { "SPELL_FAILED_NO_PET", "SPELL_FAILED_NO_PET", "" };
1388 case SPELL_FAILED_NO_POWER: return { "SPELL_FAILED_NO_POWER", "SPELL_FAILED_NO_POWER", "" };
1389 case SPELL_FAILED_NOTHING_TO_DISPEL: return { "SPELL_FAILED_NOTHING_TO_DISPEL", "SPELL_FAILED_NOTHING_TO_DISPEL", "" };
1390 case SPELL_FAILED_NOTHING_TO_STEAL: return { "SPELL_FAILED_NOTHING_TO_STEAL", "SPELL_FAILED_NOTHING_TO_STEAL", "" };
1391 case SPELL_FAILED_ONLY_ABOVEWATER: return { "SPELL_FAILED_ONLY_ABOVEWATER", "SPELL_FAILED_ONLY_ABOVEWATER", "" };
1392 case SPELL_FAILED_ONLY_DAYTIME: return { "SPELL_FAILED_ONLY_DAYTIME", "SPELL_FAILED_ONLY_DAYTIME", "" };
1393 case SPELL_FAILED_ONLY_INDOORS: return { "SPELL_FAILED_ONLY_INDOORS", "SPELL_FAILED_ONLY_INDOORS", "" };
1394 case SPELL_FAILED_ONLY_MOUNTED: return { "SPELL_FAILED_ONLY_MOUNTED", "SPELL_FAILED_ONLY_MOUNTED", "" };
1395 case SPELL_FAILED_ONLY_NIGHTTIME: return { "SPELL_FAILED_ONLY_NIGHTTIME", "SPELL_FAILED_ONLY_NIGHTTIME", "" };
1396 case SPELL_FAILED_ONLY_OUTDOORS: return { "SPELL_FAILED_ONLY_OUTDOORS", "SPELL_FAILED_ONLY_OUTDOORS", "" };
1397 case SPELL_FAILED_ONLY_SHAPESHIFT: return { "SPELL_FAILED_ONLY_SHAPESHIFT", "SPELL_FAILED_ONLY_SHAPESHIFT", "" };
1398 case SPELL_FAILED_ONLY_STEALTHED: return { "SPELL_FAILED_ONLY_STEALTHED", "SPELL_FAILED_ONLY_STEALTHED", "" };
1399 case SPELL_FAILED_ONLY_UNDERWATER: return { "SPELL_FAILED_ONLY_UNDERWATER", "SPELL_FAILED_ONLY_UNDERWATER", "" };
1400 case SPELL_FAILED_OUT_OF_RANGE: return { "SPELL_FAILED_OUT_OF_RANGE", "SPELL_FAILED_OUT_OF_RANGE", "" };
1401 case SPELL_FAILED_PACIFIED: return { "SPELL_FAILED_PACIFIED", "SPELL_FAILED_PACIFIED", "" };
1402 case SPELL_FAILED_POSSESSED: return { "SPELL_FAILED_POSSESSED", "SPELL_FAILED_POSSESSED", "" };
1403 case SPELL_FAILED_REAGENTS: return { "SPELL_FAILED_REAGENTS", "SPELL_FAILED_REAGENTS", "" };
1404 case SPELL_FAILED_REQUIRES_AREA: return { "SPELL_FAILED_REQUIRES_AREA", "SPELL_FAILED_REQUIRES_AREA", "" };
1405 case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return { "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "" };
1406 case SPELL_FAILED_ROOTED: return { "SPELL_FAILED_ROOTED", "SPELL_FAILED_ROOTED", "" };
1407 case SPELL_FAILED_SILENCED: return { "SPELL_FAILED_SILENCED", "SPELL_FAILED_SILENCED", "" };
1408 case SPELL_FAILED_SPELL_IN_PROGRESS: return { "SPELL_FAILED_SPELL_IN_PROGRESS", "SPELL_FAILED_SPELL_IN_PROGRESS", "" };
1409 case SPELL_FAILED_SPELL_LEARNED: return { "SPELL_FAILED_SPELL_LEARNED", "SPELL_FAILED_SPELL_LEARNED", "" };
1410 case SPELL_FAILED_SPELL_UNAVAILABLE: return { "SPELL_FAILED_SPELL_UNAVAILABLE", "SPELL_FAILED_SPELL_UNAVAILABLE", "" };
1411 case SPELL_FAILED_STUNNED: return { "SPELL_FAILED_STUNNED", "SPELL_FAILED_STUNNED", "" };
1412 case SPELL_FAILED_TARGETS_DEAD: return { "SPELL_FAILED_TARGETS_DEAD", "SPELL_FAILED_TARGETS_DEAD", "" };
1413 case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return { "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "" };
1414 case SPELL_FAILED_TARGET_AURASTATE: return { "SPELL_FAILED_TARGET_AURASTATE", "SPELL_FAILED_TARGET_AURASTATE", "" };
1415 case SPELL_FAILED_TARGET_DUELING: return { "SPELL_FAILED_TARGET_DUELING", "SPELL_FAILED_TARGET_DUELING", "" };
1416 case SPELL_FAILED_TARGET_ENEMY: return { "SPELL_FAILED_TARGET_ENEMY", "SPELL_FAILED_TARGET_ENEMY", "" };
1417 case SPELL_FAILED_TARGET_ENRAGED: return { "SPELL_FAILED_TARGET_ENRAGED", "SPELL_FAILED_TARGET_ENRAGED", "" };
1418 case SPELL_FAILED_TARGET_FRIENDLY: return { "SPELL_FAILED_TARGET_FRIENDLY", "SPELL_FAILED_TARGET_FRIENDLY", "" };
1419 case SPELL_FAILED_TARGET_IN_COMBAT: return { "SPELL_FAILED_TARGET_IN_COMBAT", "SPELL_FAILED_TARGET_IN_COMBAT", "" };
1420 case SPELL_FAILED_TARGET_IS_PLAYER: return { "SPELL_FAILED_TARGET_IS_PLAYER", "SPELL_FAILED_TARGET_IS_PLAYER", "" };
1421 case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return { "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "" };
1422 case SPELL_FAILED_TARGET_NOT_DEAD: return { "SPELL_FAILED_TARGET_NOT_DEAD", "SPELL_FAILED_TARGET_NOT_DEAD", "" };
1423 case SPELL_FAILED_TARGET_NOT_IN_PARTY: return { "SPELL_FAILED_TARGET_NOT_IN_PARTY", "SPELL_FAILED_TARGET_NOT_IN_PARTY", "" };
1424 case SPELL_FAILED_TARGET_NOT_LOOTED: return { "SPELL_FAILED_TARGET_NOT_LOOTED", "SPELL_FAILED_TARGET_NOT_LOOTED", "" };
1425 case SPELL_FAILED_TARGET_NOT_PLAYER: return { "SPELL_FAILED_TARGET_NOT_PLAYER", "SPELL_FAILED_TARGET_NOT_PLAYER", "" };
1426 case SPELL_FAILED_TARGET_NO_POCKETS: return { "SPELL_FAILED_TARGET_NO_POCKETS", "SPELL_FAILED_TARGET_NO_POCKETS", "" };
1427 case SPELL_FAILED_TARGET_NO_WEAPONS: return { "SPELL_FAILED_TARGET_NO_WEAPONS", "SPELL_FAILED_TARGET_NO_WEAPONS", "" };
1428 case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return { "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "" };
1429 case SPELL_FAILED_TARGET_UNSKINNABLE: return { "SPELL_FAILED_TARGET_UNSKINNABLE", "SPELL_FAILED_TARGET_UNSKINNABLE", "" };
1430 case SPELL_FAILED_THIRST_SATIATED: return { "SPELL_FAILED_THIRST_SATIATED", "SPELL_FAILED_THIRST_SATIATED", "" };
1431 case SPELL_FAILED_TOO_CLOSE: return { "SPELL_FAILED_TOO_CLOSE", "SPELL_FAILED_TOO_CLOSE", "" };
1432 case SPELL_FAILED_TOO_MANY_OF_ITEM: return { "SPELL_FAILED_TOO_MANY_OF_ITEM", "SPELL_FAILED_TOO_MANY_OF_ITEM", "" };
1433 case SPELL_FAILED_TOTEM_CATEGORY: return { "SPELL_FAILED_TOTEM_CATEGORY", "SPELL_FAILED_TOTEM_CATEGORY", "" };
1434 case SPELL_FAILED_TOTEMS: return { "SPELL_FAILED_TOTEMS", "SPELL_FAILED_TOTEMS", "" };
1435 case SPELL_FAILED_TRY_AGAIN: return { "SPELL_FAILED_TRY_AGAIN", "SPELL_FAILED_TRY_AGAIN", "" };
1436 case SPELL_FAILED_UNIT_NOT_BEHIND: return { "SPELL_FAILED_UNIT_NOT_BEHIND", "SPELL_FAILED_UNIT_NOT_BEHIND", "" };
1437 case SPELL_FAILED_UNIT_NOT_INFRONT: return { "SPELL_FAILED_UNIT_NOT_INFRONT", "SPELL_FAILED_UNIT_NOT_INFRONT", "" };
1438 case SPELL_FAILED_WRONG_PET_FOOD: return { "SPELL_FAILED_WRONG_PET_FOOD", "SPELL_FAILED_WRONG_PET_FOOD", "" };
1439 case SPELL_FAILED_NOT_WHILE_FATIGUED: return { "SPELL_FAILED_NOT_WHILE_FATIGUED", "SPELL_FAILED_NOT_WHILE_FATIGUED", "" };
1440 case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return { "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "" };
1441 case SPELL_FAILED_NOT_WHILE_TRADING: return { "SPELL_FAILED_NOT_WHILE_TRADING", "SPELL_FAILED_NOT_WHILE_TRADING", "" };
1442 case SPELL_FAILED_TARGET_NOT_IN_RAID: return { "SPELL_FAILED_TARGET_NOT_IN_RAID", "SPELL_FAILED_TARGET_NOT_IN_RAID", "" };
1443 case SPELL_FAILED_TARGET_FREEFORALL: return { "SPELL_FAILED_TARGET_FREEFORALL", "SPELL_FAILED_TARGET_FREEFORALL", "" };
1444 case SPELL_FAILED_NO_EDIBLE_CORPSES: return { "SPELL_FAILED_NO_EDIBLE_CORPSES", "SPELL_FAILED_NO_EDIBLE_CORPSES", "" };
1445 case SPELL_FAILED_ONLY_BATTLEGROUNDS: return { "SPELL_FAILED_ONLY_BATTLEGROUNDS", "SPELL_FAILED_ONLY_BATTLEGROUNDS", "" };
1446 case SPELL_FAILED_TARGET_NOT_GHOST: return { "SPELL_FAILED_TARGET_NOT_GHOST", "SPELL_FAILED_TARGET_NOT_GHOST", "" };
1447 case SPELL_FAILED_TRANSFORM_UNUSABLE: return { "SPELL_FAILED_TRANSFORM_UNUSABLE", "SPELL_FAILED_TRANSFORM_UNUSABLE", "" };
1448 case SPELL_FAILED_WRONG_WEATHER: return { "SPELL_FAILED_WRONG_WEATHER", "SPELL_FAILED_WRONG_WEATHER", "" };
1449 case SPELL_FAILED_DAMAGE_IMMUNE: return { "SPELL_FAILED_DAMAGE_IMMUNE", "SPELL_FAILED_DAMAGE_IMMUNE", "" };
1450 case SPELL_FAILED_PREVENTED_BY_MECHANIC: return { "SPELL_FAILED_PREVENTED_BY_MECHANIC", "SPELL_FAILED_PREVENTED_BY_MECHANIC", "" };
1451 case SPELL_FAILED_PLAY_TIME: return { "SPELL_FAILED_PLAY_TIME", "SPELL_FAILED_PLAY_TIME", "" };
1452 case SPELL_FAILED_REPUTATION: return { "SPELL_FAILED_REPUTATION", "SPELL_FAILED_REPUTATION", "" };
1453 case SPELL_FAILED_MIN_SKILL: return { "SPELL_FAILED_MIN_SKILL", "SPELL_FAILED_MIN_SKILL", "" };
1454 case SPELL_FAILED_NOT_IN_ARENA: return { "SPELL_FAILED_NOT_IN_ARENA", "SPELL_FAILED_NOT_IN_ARENA", "" };
1455 case SPELL_FAILED_NOT_ON_SHAPESHIFT: return { "SPELL_FAILED_NOT_ON_SHAPESHIFT", "SPELL_FAILED_NOT_ON_SHAPESHIFT", "" };
1456 case SPELL_FAILED_NOT_ON_STEALTHED: return { "SPELL_FAILED_NOT_ON_STEALTHED", "SPELL_FAILED_NOT_ON_STEALTHED", "" };
1457 case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return { "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "" };
1458 case SPELL_FAILED_NOT_ON_MOUNTED: return { "SPELL_FAILED_NOT_ON_MOUNTED", "SPELL_FAILED_NOT_ON_MOUNTED", "" };
1459 case SPELL_FAILED_TOO_SHALLOW: return { "SPELL_FAILED_TOO_SHALLOW", "SPELL_FAILED_TOO_SHALLOW", "" };
1460 case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return { "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "" };
1461 case SPELL_FAILED_TARGET_IS_TRIVIAL: return { "SPELL_FAILED_TARGET_IS_TRIVIAL", "SPELL_FAILED_TARGET_IS_TRIVIAL", "" };
1462 case SPELL_FAILED_BM_OR_INVISGOD: return { "SPELL_FAILED_BM_OR_INVISGOD", "SPELL_FAILED_BM_OR_INVISGOD", "" };
1463 case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return { "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "" };
1464 case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return { "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "" };
1465 case SPELL_FAILED_NOT_IDLE: return { "SPELL_FAILED_NOT_IDLE", "SPELL_FAILED_NOT_IDLE", "" };
1466 case SPELL_FAILED_NOT_INACTIVE: return { "SPELL_FAILED_NOT_INACTIVE", "SPELL_FAILED_NOT_INACTIVE", "" };
1467 case SPELL_FAILED_PARTIAL_PLAYTIME: return { "SPELL_FAILED_PARTIAL_PLAYTIME", "SPELL_FAILED_PARTIAL_PLAYTIME", "" };
1468 case SPELL_FAILED_NO_PLAYTIME: return { "SPELL_FAILED_NO_PLAYTIME", "SPELL_FAILED_NO_PLAYTIME", "" };
1469 case SPELL_FAILED_NOT_IN_BATTLEGROUND: return { "SPELL_FAILED_NOT_IN_BATTLEGROUND", "SPELL_FAILED_NOT_IN_BATTLEGROUND", "" };
1470 case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return { "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "" };
1471 case SPELL_FAILED_ONLY_IN_ARENA: return { "SPELL_FAILED_ONLY_IN_ARENA", "SPELL_FAILED_ONLY_IN_ARENA", "" };
1472 case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return { "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "" };
1473 case SPELL_FAILED_ON_USE_ENCHANT: return { "SPELL_FAILED_ON_USE_ENCHANT", "SPELL_FAILED_ON_USE_ENCHANT", "" };
1474 case SPELL_FAILED_NOT_ON_GROUND: return { "SPELL_FAILED_NOT_ON_GROUND", "SPELL_FAILED_NOT_ON_GROUND", "" };
1475 case SPELL_FAILED_CUSTOM_ERROR: return { "SPELL_FAILED_CUSTOM_ERROR", "SPELL_FAILED_CUSTOM_ERROR", "" };
1476 case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return { "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "" };
1477 case SPELL_FAILED_TOO_MANY_SOCKETS: return { "SPELL_FAILED_TOO_MANY_SOCKETS", "SPELL_FAILED_TOO_MANY_SOCKETS", "" };
1478 case SPELL_FAILED_INVALID_GLYPH: return { "SPELL_FAILED_INVALID_GLYPH", "SPELL_FAILED_INVALID_GLYPH", "" };
1479 case SPELL_FAILED_UNIQUE_GLYPH: return { "SPELL_FAILED_UNIQUE_GLYPH", "SPELL_FAILED_UNIQUE_GLYPH", "" };
1480 case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return { "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "" };
1481 case SPELL_FAILED_NO_VALID_TARGETS: return { "SPELL_FAILED_NO_VALID_TARGETS", "SPELL_FAILED_NO_VALID_TARGETS", "" };
1482 case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return { "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "" };
1483 case SPELL_FAILED_NOT_IN_BARBERSHOP: return { "SPELL_FAILED_NOT_IN_BARBERSHOP", "SPELL_FAILED_NOT_IN_BARBERSHOP", "" };
1484 case SPELL_FAILED_FISHING_TOO_LOW: return { "SPELL_FAILED_FISHING_TOO_LOW", "SPELL_FAILED_FISHING_TOO_LOW", "" };
1485 case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return { "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "" };
1486 case SPELL_FAILED_SUMMON_PENDING: return { "SPELL_FAILED_SUMMON_PENDING", "SPELL_FAILED_SUMMON_PENDING", "" };
1487 case SPELL_FAILED_MAX_SOCKETS: return { "SPELL_FAILED_MAX_SOCKETS", "SPELL_FAILED_MAX_SOCKETS", "" };
1488 case SPELL_FAILED_PET_CAN_RENAME: return { "SPELL_FAILED_PET_CAN_RENAME", "SPELL_FAILED_PET_CAN_RENAME", "" };
1489 case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return { "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "" };
1490 case SPELL_FAILED_UNKNOWN: return { "SPELL_FAILED_UNKNOWN", "SPELL_FAILED_UNKNOWN", "actually doesn't exist in client" };
1491 case SPELL_CAST_OK: return { "SPELL_CAST_OK", "SPELL_CAST_OK", "custom value, must not be sent to client" };
1492 default: throw std::out_of_range("value");
1493 }
1494}
1495
1496template <>
1498
1499template <>
1501{
1502 switch (index)
1503 {
1504 case 0: return SPELL_FAILED_SUCCESS;
1505 case 1: return SPELL_FAILED_AFFECTING_COMBAT;
1507 case 3: return SPELL_FAILED_ALREADY_AT_FULL_MANA;
1509 case 5: return SPELL_FAILED_ALREADY_BEING_TAMED;
1510 case 6: return SPELL_FAILED_ALREADY_HAVE_CHARM;
1511 case 7: return SPELL_FAILED_ALREADY_HAVE_SUMMON;
1512 case 8: return SPELL_FAILED_ALREADY_OPEN;
1513 case 9: return SPELL_FAILED_AURA_BOUNCED;
1514 case 10: return SPELL_FAILED_AUTOTRACK_INTERRUPTED;
1515 case 11: return SPELL_FAILED_BAD_IMPLICIT_TARGETS;
1516 case 12: return SPELL_FAILED_BAD_TARGETS;
1517 case 13: return SPELL_FAILED_CANT_BE_CHARMED;
1518 case 14: return SPELL_FAILED_CANT_BE_DISENCHANTED;
1520 case 16: return SPELL_FAILED_CANT_BE_MILLED;
1521 case 17: return SPELL_FAILED_CANT_BE_PROSPECTED;
1522 case 18: return SPELL_FAILED_CANT_CAST_ON_TAPPED;
1525 case 21: return SPELL_FAILED_CANT_STEALTH;
1526 case 22: return SPELL_FAILED_CASTER_AURASTATE;
1527 case 23: return SPELL_FAILED_CASTER_DEAD;
1528 case 24: return SPELL_FAILED_CHARMED;
1529 case 25: return SPELL_FAILED_CHEST_IN_USE;
1530 case 26: return SPELL_FAILED_CONFUSED;
1531 case 27: return SPELL_FAILED_DONT_REPORT;
1532 case 28: return SPELL_FAILED_EQUIPPED_ITEM;
1533 case 29: return SPELL_FAILED_EQUIPPED_ITEM_CLASS;
1536 case 32: return SPELL_FAILED_ERROR;
1537 case 33: return SPELL_FAILED_FIZZLE;
1538 case 34: return SPELL_FAILED_FLEEING;
1539 case 35: return SPELL_FAILED_FOOD_LOWLEVEL;
1540 case 36: return SPELL_FAILED_HIGHLEVEL;
1541 case 37: return SPELL_FAILED_HUNGER_SATIATED;
1542 case 38: return SPELL_FAILED_IMMUNE;
1543 case 39: return SPELL_FAILED_INCORRECT_AREA;
1544 case 40: return SPELL_FAILED_INTERRUPTED;
1545 case 41: return SPELL_FAILED_INTERRUPTED_COMBAT;
1547 case 43: return SPELL_FAILED_ITEM_GONE;
1548 case 44: return SPELL_FAILED_ITEM_NOT_FOUND;
1549 case 45: return SPELL_FAILED_ITEM_NOT_READY;
1550 case 46: return SPELL_FAILED_LEVEL_REQUIREMENT;
1551 case 47: return SPELL_FAILED_LINE_OF_SIGHT;
1552 case 48: return SPELL_FAILED_LOWLEVEL;
1553 case 49: return SPELL_FAILED_LOW_CASTLEVEL;
1554 case 50: return SPELL_FAILED_MAINHAND_EMPTY;
1555 case 51: return SPELL_FAILED_MOVING;
1556 case 52: return SPELL_FAILED_NEED_AMMO;
1557 case 53: return SPELL_FAILED_NEED_AMMO_POUCH;
1558 case 54: return SPELL_FAILED_NEED_EXOTIC_AMMO;
1559 case 55: return SPELL_FAILED_NEED_MORE_ITEMS;
1560 case 56: return SPELL_FAILED_NOPATH;
1561 case 57: return SPELL_FAILED_NOT_BEHIND;
1562 case 58: return SPELL_FAILED_NOT_FISHABLE;
1563 case 59: return SPELL_FAILED_NOT_FLYING;
1564 case 60: return SPELL_FAILED_NOT_HERE;
1565 case 61: return SPELL_FAILED_NOT_INFRONT;
1566 case 62: return SPELL_FAILED_NOT_IN_CONTROL;
1567 case 63: return SPELL_FAILED_NOT_KNOWN;
1568 case 64: return SPELL_FAILED_NOT_MOUNTED;
1569 case 65: return SPELL_FAILED_NOT_ON_TAXI;
1570 case 66: return SPELL_FAILED_NOT_ON_TRANSPORT;
1571 case 67: return SPELL_FAILED_NOT_READY;
1572 case 68: return SPELL_FAILED_NOT_SHAPESHIFT;
1573 case 69: return SPELL_FAILED_NOT_STANDING;
1574 case 70: return SPELL_FAILED_NOT_TRADEABLE;
1575 case 71: return SPELL_FAILED_NOT_TRADING;
1576 case 72: return SPELL_FAILED_NOT_UNSHEATHED;
1577 case 73: return SPELL_FAILED_NOT_WHILE_GHOST;
1578 case 74: return SPELL_FAILED_NOT_WHILE_LOOTING;
1579 case 75: return SPELL_FAILED_NO_AMMO;
1580 case 76: return SPELL_FAILED_NO_CHARGES_REMAIN;
1581 case 77: return SPELL_FAILED_NO_CHAMPION;
1582 case 78: return SPELL_FAILED_NO_COMBO_POINTS;
1583 case 79: return SPELL_FAILED_NO_DUELING;
1584 case 80: return SPELL_FAILED_NO_ENDURANCE;
1585 case 81: return SPELL_FAILED_NO_FISH;
1587 case 83: return SPELL_FAILED_NO_MOUNTS_ALLOWED;
1588 case 84: return SPELL_FAILED_NO_PET;
1589 case 85: return SPELL_FAILED_NO_POWER;
1590 case 86: return SPELL_FAILED_NOTHING_TO_DISPEL;
1591 case 87: return SPELL_FAILED_NOTHING_TO_STEAL;
1592 case 88: return SPELL_FAILED_ONLY_ABOVEWATER;
1593 case 89: return SPELL_FAILED_ONLY_DAYTIME;
1594 case 90: return SPELL_FAILED_ONLY_INDOORS;
1595 case 91: return SPELL_FAILED_ONLY_MOUNTED;
1596 case 92: return SPELL_FAILED_ONLY_NIGHTTIME;
1597 case 93: return SPELL_FAILED_ONLY_OUTDOORS;
1598 case 94: return SPELL_FAILED_ONLY_SHAPESHIFT;
1599 case 95: return SPELL_FAILED_ONLY_STEALTHED;
1600 case 96: return SPELL_FAILED_ONLY_UNDERWATER;
1601 case 97: return SPELL_FAILED_OUT_OF_RANGE;
1602 case 98: return SPELL_FAILED_PACIFIED;
1603 case 99: return SPELL_FAILED_POSSESSED;
1604 case 100: return SPELL_FAILED_REAGENTS;
1605 case 101: return SPELL_FAILED_REQUIRES_AREA;
1606 case 102: return SPELL_FAILED_REQUIRES_SPELL_FOCUS;
1607 case 103: return SPELL_FAILED_ROOTED;
1608 case 104: return SPELL_FAILED_SILENCED;
1609 case 105: return SPELL_FAILED_SPELL_IN_PROGRESS;
1610 case 106: return SPELL_FAILED_SPELL_LEARNED;
1611 case 107: return SPELL_FAILED_SPELL_UNAVAILABLE;
1612 case 108: return SPELL_FAILED_STUNNED;
1613 case 109: return SPELL_FAILED_TARGETS_DEAD;
1614 case 110: return SPELL_FAILED_TARGET_AFFECTING_COMBAT;
1615 case 111: return SPELL_FAILED_TARGET_AURASTATE;
1616 case 112: return SPELL_FAILED_TARGET_DUELING;
1617 case 113: return SPELL_FAILED_TARGET_ENEMY;
1618 case 114: return SPELL_FAILED_TARGET_ENRAGED;
1619 case 115: return SPELL_FAILED_TARGET_FRIENDLY;
1620 case 116: return SPELL_FAILED_TARGET_IN_COMBAT;
1621 case 117: return SPELL_FAILED_TARGET_IS_PLAYER;
1623 case 119: return SPELL_FAILED_TARGET_NOT_DEAD;
1624 case 120: return SPELL_FAILED_TARGET_NOT_IN_PARTY;
1625 case 121: return SPELL_FAILED_TARGET_NOT_LOOTED;
1626 case 122: return SPELL_FAILED_TARGET_NOT_PLAYER;
1627 case 123: return SPELL_FAILED_TARGET_NO_POCKETS;
1628 case 124: return SPELL_FAILED_TARGET_NO_WEAPONS;
1630 case 126: return SPELL_FAILED_TARGET_UNSKINNABLE;
1631 case 127: return SPELL_FAILED_THIRST_SATIATED;
1632 case 128: return SPELL_FAILED_TOO_CLOSE;
1633 case 129: return SPELL_FAILED_TOO_MANY_OF_ITEM;
1634 case 130: return SPELL_FAILED_TOTEM_CATEGORY;
1635 case 131: return SPELL_FAILED_TOTEMS;
1636 case 132: return SPELL_FAILED_TRY_AGAIN;
1637 case 133: return SPELL_FAILED_UNIT_NOT_BEHIND;
1638 case 134: return SPELL_FAILED_UNIT_NOT_INFRONT;
1639 case 135: return SPELL_FAILED_WRONG_PET_FOOD;
1640 case 136: return SPELL_FAILED_NOT_WHILE_FATIGUED;
1641 case 137: return SPELL_FAILED_TARGET_NOT_IN_INSTANCE;
1642 case 138: return SPELL_FAILED_NOT_WHILE_TRADING;
1643 case 139: return SPELL_FAILED_TARGET_NOT_IN_RAID;
1644 case 140: return SPELL_FAILED_TARGET_FREEFORALL;
1645 case 141: return SPELL_FAILED_NO_EDIBLE_CORPSES;
1646 case 142: return SPELL_FAILED_ONLY_BATTLEGROUNDS;
1647 case 143: return SPELL_FAILED_TARGET_NOT_GHOST;
1648 case 144: return SPELL_FAILED_TRANSFORM_UNUSABLE;
1649 case 145: return SPELL_FAILED_WRONG_WEATHER;
1650 case 146: return SPELL_FAILED_DAMAGE_IMMUNE;
1651 case 147: return SPELL_FAILED_PREVENTED_BY_MECHANIC;
1652 case 148: return SPELL_FAILED_PLAY_TIME;
1653 case 149: return SPELL_FAILED_REPUTATION;
1654 case 150: return SPELL_FAILED_MIN_SKILL;
1655 case 151: return SPELL_FAILED_NOT_IN_ARENA;
1656 case 152: return SPELL_FAILED_NOT_ON_SHAPESHIFT;
1657 case 153: return SPELL_FAILED_NOT_ON_STEALTHED;
1658 case 154: return SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE;
1659 case 155: return SPELL_FAILED_NOT_ON_MOUNTED;
1660 case 156: return SPELL_FAILED_TOO_SHALLOW;
1661 case 157: return SPELL_FAILED_TARGET_NOT_IN_SANCTUARY;
1662 case 158: return SPELL_FAILED_TARGET_IS_TRIVIAL;
1663 case 159: return SPELL_FAILED_BM_OR_INVISGOD;
1666 case 162: return SPELL_FAILED_NOT_IDLE;
1667 case 163: return SPELL_FAILED_NOT_INACTIVE;
1668 case 164: return SPELL_FAILED_PARTIAL_PLAYTIME;
1669 case 165: return SPELL_FAILED_NO_PLAYTIME;
1670 case 166: return SPELL_FAILED_NOT_IN_BATTLEGROUND;
1671 case 167: return SPELL_FAILED_NOT_IN_RAID_INSTANCE;
1672 case 168: return SPELL_FAILED_ONLY_IN_ARENA;
1674 case 170: return SPELL_FAILED_ON_USE_ENCHANT;
1675 case 171: return SPELL_FAILED_NOT_ON_GROUND;
1676 case 172: return SPELL_FAILED_CUSTOM_ERROR;
1677 case 173: return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
1678 case 174: return SPELL_FAILED_TOO_MANY_SOCKETS;
1679 case 175: return SPELL_FAILED_INVALID_GLYPH;
1680 case 176: return SPELL_FAILED_UNIQUE_GLYPH;
1681 case 177: return SPELL_FAILED_GLYPH_SOCKET_LOCKED;
1682 case 178: return SPELL_FAILED_NO_VALID_TARGETS;
1683 case 179: return SPELL_FAILED_ITEM_AT_MAX_CHARGES;
1684 case 180: return SPELL_FAILED_NOT_IN_BARBERSHOP;
1685 case 181: return SPELL_FAILED_FISHING_TOO_LOW;
1687 case 183: return SPELL_FAILED_SUMMON_PENDING;
1688 case 184: return SPELL_FAILED_MAX_SOCKETS;
1689 case 185: return SPELL_FAILED_PET_CAN_RENAME;
1691 case 187: return SPELL_FAILED_UNKNOWN;
1692 case 188: return SPELL_CAST_OK;
1693 default: throw std::out_of_range("index");
1694 }
1695}
1696
1697template <>
1699{
1700 switch (value)
1701 {
1702 case SPELL_FAILED_SUCCESS: return 0;
1703 case SPELL_FAILED_AFFECTING_COMBAT: return 1;
1705 case SPELL_FAILED_ALREADY_AT_FULL_MANA: return 3;
1707 case SPELL_FAILED_ALREADY_BEING_TAMED: return 5;
1708 case SPELL_FAILED_ALREADY_HAVE_CHARM: return 6;
1709 case SPELL_FAILED_ALREADY_HAVE_SUMMON: return 7;
1710 case SPELL_FAILED_ALREADY_OPEN: return 8;
1711 case SPELL_FAILED_AURA_BOUNCED: return 9;
1712 case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return 10;
1713 case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return 11;
1714 case SPELL_FAILED_BAD_TARGETS: return 12;
1715 case SPELL_FAILED_CANT_BE_CHARMED: return 13;
1716 case SPELL_FAILED_CANT_BE_DISENCHANTED: return 14;
1718 case SPELL_FAILED_CANT_BE_MILLED: return 16;
1719 case SPELL_FAILED_CANT_BE_PROSPECTED: return 17;
1720 case SPELL_FAILED_CANT_CAST_ON_TAPPED: return 18;
1723 case SPELL_FAILED_CANT_STEALTH: return 21;
1724 case SPELL_FAILED_CASTER_AURASTATE: return 22;
1725 case SPELL_FAILED_CASTER_DEAD: return 23;
1726 case SPELL_FAILED_CHARMED: return 24;
1727 case SPELL_FAILED_CHEST_IN_USE: return 25;
1728 case SPELL_FAILED_CONFUSED: return 26;
1729 case SPELL_FAILED_DONT_REPORT: return 27;
1730 case SPELL_FAILED_EQUIPPED_ITEM: return 28;
1731 case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return 29;
1734 case SPELL_FAILED_ERROR: return 32;
1735 case SPELL_FAILED_FIZZLE: return 33;
1736 case SPELL_FAILED_FLEEING: return 34;
1737 case SPELL_FAILED_FOOD_LOWLEVEL: return 35;
1738 case SPELL_FAILED_HIGHLEVEL: return 36;
1739 case SPELL_FAILED_HUNGER_SATIATED: return 37;
1740 case SPELL_FAILED_IMMUNE: return 38;
1741 case SPELL_FAILED_INCORRECT_AREA: return 39;
1742 case SPELL_FAILED_INTERRUPTED: return 40;
1743 case SPELL_FAILED_INTERRUPTED_COMBAT: return 41;
1745 case SPELL_FAILED_ITEM_GONE: return 43;
1746 case SPELL_FAILED_ITEM_NOT_FOUND: return 44;
1747 case SPELL_FAILED_ITEM_NOT_READY: return 45;
1748 case SPELL_FAILED_LEVEL_REQUIREMENT: return 46;
1749 case SPELL_FAILED_LINE_OF_SIGHT: return 47;
1750 case SPELL_FAILED_LOWLEVEL: return 48;
1751 case SPELL_FAILED_LOW_CASTLEVEL: return 49;
1752 case SPELL_FAILED_MAINHAND_EMPTY: return 50;
1753 case SPELL_FAILED_MOVING: return 51;
1754 case SPELL_FAILED_NEED_AMMO: return 52;
1755 case SPELL_FAILED_NEED_AMMO_POUCH: return 53;
1756 case SPELL_FAILED_NEED_EXOTIC_AMMO: return 54;
1757 case SPELL_FAILED_NEED_MORE_ITEMS: return 55;
1758 case SPELL_FAILED_NOPATH: return 56;
1759 case SPELL_FAILED_NOT_BEHIND: return 57;
1760 case SPELL_FAILED_NOT_FISHABLE: return 58;
1761 case SPELL_FAILED_NOT_FLYING: return 59;
1762 case SPELL_FAILED_NOT_HERE: return 60;
1763 case SPELL_FAILED_NOT_INFRONT: return 61;
1764 case SPELL_FAILED_NOT_IN_CONTROL: return 62;
1765 case SPELL_FAILED_NOT_KNOWN: return 63;
1766 case SPELL_FAILED_NOT_MOUNTED: return 64;
1767 case SPELL_FAILED_NOT_ON_TAXI: return 65;
1768 case SPELL_FAILED_NOT_ON_TRANSPORT: return 66;
1769 case SPELL_FAILED_NOT_READY: return 67;
1770 case SPELL_FAILED_NOT_SHAPESHIFT: return 68;
1771 case SPELL_FAILED_NOT_STANDING: return 69;
1772 case SPELL_FAILED_NOT_TRADEABLE: return 70;
1773 case SPELL_FAILED_NOT_TRADING: return 71;
1774 case SPELL_FAILED_NOT_UNSHEATHED: return 72;
1775 case SPELL_FAILED_NOT_WHILE_GHOST: return 73;
1776 case SPELL_FAILED_NOT_WHILE_LOOTING: return 74;
1777 case SPELL_FAILED_NO_AMMO: return 75;
1778 case SPELL_FAILED_NO_CHARGES_REMAIN: return 76;
1779 case SPELL_FAILED_NO_CHAMPION: return 77;
1780 case SPELL_FAILED_NO_COMBO_POINTS: return 78;
1781 case SPELL_FAILED_NO_DUELING: return 79;
1782 case SPELL_FAILED_NO_ENDURANCE: return 80;
1783 case SPELL_FAILED_NO_FISH: return 81;
1785 case SPELL_FAILED_NO_MOUNTS_ALLOWED: return 83;
1786 case SPELL_FAILED_NO_PET: return 84;
1787 case SPELL_FAILED_NO_POWER: return 85;
1788 case SPELL_FAILED_NOTHING_TO_DISPEL: return 86;
1789 case SPELL_FAILED_NOTHING_TO_STEAL: return 87;
1790 case SPELL_FAILED_ONLY_ABOVEWATER: return 88;
1791 case SPELL_FAILED_ONLY_DAYTIME: return 89;
1792 case SPELL_FAILED_ONLY_INDOORS: return 90;
1793 case SPELL_FAILED_ONLY_MOUNTED: return 91;
1794 case SPELL_FAILED_ONLY_NIGHTTIME: return 92;
1795 case SPELL_FAILED_ONLY_OUTDOORS: return 93;
1796 case SPELL_FAILED_ONLY_SHAPESHIFT: return 94;
1797 case SPELL_FAILED_ONLY_STEALTHED: return 95;
1798 case SPELL_FAILED_ONLY_UNDERWATER: return 96;
1799 case SPELL_FAILED_OUT_OF_RANGE: return 97;
1800 case SPELL_FAILED_PACIFIED: return 98;
1801 case SPELL_FAILED_POSSESSED: return 99;
1802 case SPELL_FAILED_REAGENTS: return 100;
1803 case SPELL_FAILED_REQUIRES_AREA: return 101;
1804 case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return 102;
1805 case SPELL_FAILED_ROOTED: return 103;
1806 case SPELL_FAILED_SILENCED: return 104;
1807 case SPELL_FAILED_SPELL_IN_PROGRESS: return 105;
1808 case SPELL_FAILED_SPELL_LEARNED: return 106;
1809 case SPELL_FAILED_SPELL_UNAVAILABLE: return 107;
1810 case SPELL_FAILED_STUNNED: return 108;
1811 case SPELL_FAILED_TARGETS_DEAD: return 109;
1812 case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return 110;
1813 case SPELL_FAILED_TARGET_AURASTATE: return 111;
1814 case SPELL_FAILED_TARGET_DUELING: return 112;
1815 case SPELL_FAILED_TARGET_ENEMY: return 113;
1816 case SPELL_FAILED_TARGET_ENRAGED: return 114;
1817 case SPELL_FAILED_TARGET_FRIENDLY: return 115;
1818 case SPELL_FAILED_TARGET_IN_COMBAT: return 116;
1819 case SPELL_FAILED_TARGET_IS_PLAYER: return 117;
1821 case SPELL_FAILED_TARGET_NOT_DEAD: return 119;
1822 case SPELL_FAILED_TARGET_NOT_IN_PARTY: return 120;
1823 case SPELL_FAILED_TARGET_NOT_LOOTED: return 121;
1824 case SPELL_FAILED_TARGET_NOT_PLAYER: return 122;
1825 case SPELL_FAILED_TARGET_NO_POCKETS: return 123;
1826 case SPELL_FAILED_TARGET_NO_WEAPONS: return 124;
1828 case SPELL_FAILED_TARGET_UNSKINNABLE: return 126;
1829 case SPELL_FAILED_THIRST_SATIATED: return 127;
1830 case SPELL_FAILED_TOO_CLOSE: return 128;
1831 case SPELL_FAILED_TOO_MANY_OF_ITEM: return 129;
1832 case SPELL_FAILED_TOTEM_CATEGORY: return 130;
1833 case SPELL_FAILED_TOTEMS: return 131;
1834 case SPELL_FAILED_TRY_AGAIN: return 132;
1835 case SPELL_FAILED_UNIT_NOT_BEHIND: return 133;
1836 case SPELL_FAILED_UNIT_NOT_INFRONT: return 134;
1837 case SPELL_FAILED_WRONG_PET_FOOD: return 135;
1838 case SPELL_FAILED_NOT_WHILE_FATIGUED: return 136;
1839 case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return 137;
1840 case SPELL_FAILED_NOT_WHILE_TRADING: return 138;
1841 case SPELL_FAILED_TARGET_NOT_IN_RAID: return 139;
1842 case SPELL_FAILED_TARGET_FREEFORALL: return 140;
1843 case SPELL_FAILED_NO_EDIBLE_CORPSES: return 141;
1844 case SPELL_FAILED_ONLY_BATTLEGROUNDS: return 142;
1845 case SPELL_FAILED_TARGET_NOT_GHOST: return 143;
1846 case SPELL_FAILED_TRANSFORM_UNUSABLE: return 144;
1847 case SPELL_FAILED_WRONG_WEATHER: return 145;
1848 case SPELL_FAILED_DAMAGE_IMMUNE: return 146;
1849 case SPELL_FAILED_PREVENTED_BY_MECHANIC: return 147;
1850 case SPELL_FAILED_PLAY_TIME: return 148;
1851 case SPELL_FAILED_REPUTATION: return 149;
1852 case SPELL_FAILED_MIN_SKILL: return 150;
1853 case SPELL_FAILED_NOT_IN_ARENA: return 151;
1854 case SPELL_FAILED_NOT_ON_SHAPESHIFT: return 152;
1855 case SPELL_FAILED_NOT_ON_STEALTHED: return 153;
1856 case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return 154;
1857 case SPELL_FAILED_NOT_ON_MOUNTED: return 155;
1858 case SPELL_FAILED_TOO_SHALLOW: return 156;
1859 case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return 157;
1860 case SPELL_FAILED_TARGET_IS_TRIVIAL: return 158;
1861 case SPELL_FAILED_BM_OR_INVISGOD: return 159;
1864 case SPELL_FAILED_NOT_IDLE: return 162;
1865 case SPELL_FAILED_NOT_INACTIVE: return 163;
1866 case SPELL_FAILED_PARTIAL_PLAYTIME: return 164;
1867 case SPELL_FAILED_NO_PLAYTIME: return 165;
1868 case SPELL_FAILED_NOT_IN_BATTLEGROUND: return 166;
1869 case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return 167;
1870 case SPELL_FAILED_ONLY_IN_ARENA: return 168;
1872 case SPELL_FAILED_ON_USE_ENCHANT: return 170;
1873 case SPELL_FAILED_NOT_ON_GROUND: return 171;
1874 case SPELL_FAILED_CUSTOM_ERROR: return 172;
1875 case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return 173;
1876 case SPELL_FAILED_TOO_MANY_SOCKETS: return 174;
1877 case SPELL_FAILED_INVALID_GLYPH: return 175;
1878 case SPELL_FAILED_UNIQUE_GLYPH: return 176;
1879 case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return 177;
1880 case SPELL_FAILED_NO_VALID_TARGETS: return 178;
1881 case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return 179;
1882 case SPELL_FAILED_NOT_IN_BARBERSHOP: return 180;
1883 case SPELL_FAILED_FISHING_TOO_LOW: return 181;
1885 case SPELL_FAILED_SUMMON_PENDING: return 183;
1886 case SPELL_FAILED_MAX_SOCKETS: return 184;
1887 case SPELL_FAILED_PET_CAN_RENAME: return 185;
1889 case SPELL_FAILED_UNKNOWN: return 187;
1890 case SPELL_CAST_OK: return 188;
1891 default: throw std::out_of_range("value");
1892 }
1893}
1894
1895/*********************************************************************\
1896|* data for enum 'AuraStateType' in 'SharedDefines.h' auto-generated *|
1897\*********************************************************************/
1898template <>
1900{
1901 switch (value)
1902 {
1903 case AURA_STATE_NONE: return { "AURA_STATE_NONE", "AURA_STATE_NONE", "C |" };
1904 case AURA_STATE_DEFENSE: return { "AURA_STATE_DEFENSE", "AURA_STATE_DEFENSE", "C |" };
1905 case AURA_STATE_HEALTHLESS_20_PERCENT: return { "AURA_STATE_HEALTHLESS_20_PERCENT", "AURA_STATE_HEALTHLESS_20_PERCENT", "CcT |" };
1906 case AURA_STATE_BERSERKING: return { "AURA_STATE_BERSERKING", "AURA_STATE_BERSERKING", "C T |" };
1907 case AURA_STATE_FROZEN: return { "AURA_STATE_FROZEN", "AURA_STATE_FROZEN", "c t| frozen target" };
1908 case AURA_STATE_JUDGEMENT: return { "AURA_STATE_JUDGEMENT", "AURA_STATE_JUDGEMENT", "C |" };
1909 case AURA_STATE_HUNTER_PARRY: return { "AURA_STATE_HUNTER_PARRY", "AURA_STATE_HUNTER_PARRY", "C |" };
1910 case AURA_STATE_WARRIOR_VICTORY_RUSH: return { "AURA_STATE_WARRIOR_VICTORY_RUSH", "AURA_STATE_WARRIOR_VICTORY_RUSH", "C | warrior victory rush" };
1911 case AURA_STATE_FAERIE_FIRE: return { "AURA_STATE_FAERIE_FIRE", "AURA_STATE_FAERIE_FIRE", "c t|" };
1912 case AURA_STATE_HEALTHLESS_35_PERCENT: return { "AURA_STATE_HEALTHLESS_35_PERCENT", "AURA_STATE_HEALTHLESS_35_PERCENT", "C T |" };
1913 case AURA_STATE_CONFLAGRATE: return { "AURA_STATE_CONFLAGRATE", "AURA_STATE_CONFLAGRATE", "T |" };
1914 case AURA_STATE_SWIFTMEND: return { "AURA_STATE_SWIFTMEND", "AURA_STATE_SWIFTMEND", "T |" };
1915 case AURA_STATE_DEADLY_POISON: return { "AURA_STATE_DEADLY_POISON", "AURA_STATE_DEADLY_POISON", "T |" };
1916 case AURA_STATE_ENRAGE: return { "AURA_STATE_ENRAGE", "AURA_STATE_ENRAGE", "C |" };
1917 case AURA_STATE_BLEEDING: return { "AURA_STATE_BLEEDING", "AURA_STATE_BLEEDING", "T|" };
1918 case AURA_STATE_UNKNOWN19: return { "AURA_STATE_UNKNOWN19", "AURA_STATE_UNKNOWN19", "|" };
1919 case AURA_STATE_UNKNOWN22: return { "AURA_STATE_UNKNOWN22", "AURA_STATE_UNKNOWN22", "C t| varius spells (63884, 50240)" };
1920 case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return { "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "C |" };
1921 default: throw std::out_of_range("value");
1922 }
1923}
1924
1925template <>
1927
1928template <>
1930{
1931 switch (index)
1932 {
1933 case 0: return AURA_STATE_NONE;
1934 case 1: return AURA_STATE_DEFENSE;
1935 case 2: return AURA_STATE_HEALTHLESS_20_PERCENT;
1936 case 3: return AURA_STATE_BERSERKING;
1937 case 4: return AURA_STATE_FROZEN;
1938 case 5: return AURA_STATE_JUDGEMENT;
1939 case 6: return AURA_STATE_HUNTER_PARRY;
1940 case 7: return AURA_STATE_WARRIOR_VICTORY_RUSH;
1941 case 8: return AURA_STATE_FAERIE_FIRE;
1942 case 9: return AURA_STATE_HEALTHLESS_35_PERCENT;
1943 case 10: return AURA_STATE_CONFLAGRATE;
1944 case 11: return AURA_STATE_SWIFTMEND;
1945 case 12: return AURA_STATE_DEADLY_POISON;
1946 case 13: return AURA_STATE_ENRAGE;
1947 case 14: return AURA_STATE_BLEEDING;
1948 case 15: return AURA_STATE_UNKNOWN19;
1949 case 16: return AURA_STATE_UNKNOWN22;
1950 case 17: return AURA_STATE_HEALTH_ABOVE_75_PERCENT;
1951 default: throw std::out_of_range("index");
1952 }
1953}
1954
1955template <>
1957{
1958 switch (value)
1959 {
1960 case AURA_STATE_NONE: return 0;
1961 case AURA_STATE_DEFENSE: return 1;
1962 case AURA_STATE_HEALTHLESS_20_PERCENT: return 2;
1963 case AURA_STATE_BERSERKING: return 3;
1964 case AURA_STATE_FROZEN: return 4;
1965 case AURA_STATE_JUDGEMENT: return 5;
1966 case AURA_STATE_HUNTER_PARRY: return 6;
1967 case AURA_STATE_WARRIOR_VICTORY_RUSH: return 7;
1968 case AURA_STATE_FAERIE_FIRE: return 8;
1969 case AURA_STATE_HEALTHLESS_35_PERCENT: return 9;
1970 case AURA_STATE_CONFLAGRATE: return 10;
1971 case AURA_STATE_SWIFTMEND: return 11;
1972 case AURA_STATE_DEADLY_POISON: return 12;
1973 case AURA_STATE_ENRAGE: return 13;
1974 case AURA_STATE_BLEEDING: return 14;
1975 case AURA_STATE_UNKNOWN19: return 15;
1976 case AURA_STATE_UNKNOWN22: return 16;
1977 case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return 17;
1978 default: throw std::out_of_range("value");
1979 }
1980}
1981
1982/*****************************************************************\
1983|* data for enum 'Mechanics' in 'SharedDefines.h' auto-generated *|
1984\*****************************************************************/
1985template <>
1987{
1988 switch (value)
1989 {
1990 case MECHANIC_NONE: return { "MECHANIC_NONE", "MECHANIC_NONE", "" };
1991 case MECHANIC_CHARM: return { "MECHANIC_CHARM", "MECHANIC_CHARM", "" };
1992 case MECHANIC_DISORIENTED: return { "MECHANIC_DISORIENTED", "MECHANIC_DISORIENTED", "" };
1993 case MECHANIC_DISARM: return { "MECHANIC_DISARM", "MECHANIC_DISARM", "" };
1994 case MECHANIC_DISTRACT: return { "MECHANIC_DISTRACT", "MECHANIC_DISTRACT", "" };
1995 case MECHANIC_FEAR: return { "MECHANIC_FEAR", "MECHANIC_FEAR", "" };
1996 case MECHANIC_GRIP: return { "MECHANIC_GRIP", "MECHANIC_GRIP", "" };
1997 case MECHANIC_ROOT: return { "MECHANIC_ROOT", "MECHANIC_ROOT", "" };
1998 case MECHANIC_SLOW_ATTACK: return { "MECHANIC_SLOW_ATTACK", "MECHANIC_SLOW_ATTACK", "" };
1999 case MECHANIC_SILENCE: return { "MECHANIC_SILENCE", "MECHANIC_SILENCE", "" };
2000 case MECHANIC_SLEEP: return { "MECHANIC_SLEEP", "MECHANIC_SLEEP", "" };
2001 case MECHANIC_SNARE: return { "MECHANIC_SNARE", "MECHANIC_SNARE", "" };
2002 case MECHANIC_STUN: return { "MECHANIC_STUN", "MECHANIC_STUN", "" };
2003 case MECHANIC_FREEZE: return { "MECHANIC_FREEZE", "MECHANIC_FREEZE", "" };
2004 case MECHANIC_KNOCKOUT: return { "MECHANIC_KNOCKOUT", "MECHANIC_KNOCKOUT", "" };
2005 case MECHANIC_BLEED: return { "MECHANIC_BLEED", "MECHANIC_BLEED", "" };
2006 case MECHANIC_BANDAGE: return { "MECHANIC_BANDAGE", "MECHANIC_BANDAGE", "" };
2007 case MECHANIC_POLYMORPH: return { "MECHANIC_POLYMORPH", "MECHANIC_POLYMORPH", "" };
2008 case MECHANIC_BANISH: return { "MECHANIC_BANISH", "MECHANIC_BANISH", "" };
2009 case MECHANIC_SHIELD: return { "MECHANIC_SHIELD", "MECHANIC_SHIELD", "" };
2010 case MECHANIC_SHACKLE: return { "MECHANIC_SHACKLE", "MECHANIC_SHACKLE", "" };
2011 case MECHANIC_MOUNT: return { "MECHANIC_MOUNT", "MECHANIC_MOUNT", "" };
2012 case MECHANIC_INFECTED: return { "MECHANIC_INFECTED", "MECHANIC_INFECTED", "" };
2013 case MECHANIC_TURN: return { "MECHANIC_TURN", "MECHANIC_TURN", "" };
2014 case MECHANIC_HORROR: return { "MECHANIC_HORROR", "MECHANIC_HORROR", "" };
2015 case MECHANIC_INVULNERABILITY: return { "MECHANIC_INVULNERABILITY", "MECHANIC_INVULNERABILITY", "" };
2016 case MECHANIC_INTERRUPT: return { "MECHANIC_INTERRUPT", "MECHANIC_INTERRUPT", "" };
2017 case MECHANIC_DAZE: return { "MECHANIC_DAZE", "MECHANIC_DAZE", "" };
2018 case MECHANIC_DISCOVERY: return { "MECHANIC_DISCOVERY", "MECHANIC_DISCOVERY", "" };
2019 case MECHANIC_IMMUNE_SHIELD: return { "MECHANIC_IMMUNE_SHIELD", "MECHANIC_IMMUNE_SHIELD", "Divine (Blessing) Shield/Protection and Ice Block" };
2020 case MECHANIC_SAPPED: return { "MECHANIC_SAPPED", "MECHANIC_SAPPED", "" };
2021 case MECHANIC_ENRAGED: return { "MECHANIC_ENRAGED", "MECHANIC_ENRAGED", "" };
2022 default: throw std::out_of_range("value");
2023 }
2024}
2025
2026template <>
2028
2029template <>
2031{
2032 switch (index)
2033 {
2034 case 0: return MECHANIC_NONE;
2035 case 1: return MECHANIC_CHARM;
2036 case 2: return MECHANIC_DISORIENTED;
2037 case 3: return MECHANIC_DISARM;
2038 case 4: return MECHANIC_DISTRACT;
2039 case 5: return MECHANIC_FEAR;
2040 case 6: return MECHANIC_GRIP;
2041 case 7: return MECHANIC_ROOT;
2042 case 8: return MECHANIC_SLOW_ATTACK;
2043 case 9: return MECHANIC_SILENCE;
2044 case 10: return MECHANIC_SLEEP;
2045 case 11: return MECHANIC_SNARE;
2046 case 12: return MECHANIC_STUN;
2047 case 13: return MECHANIC_FREEZE;
2048 case 14: return MECHANIC_KNOCKOUT;
2049 case 15: return MECHANIC_BLEED;
2050 case 16: return MECHANIC_BANDAGE;
2051 case 17: return MECHANIC_POLYMORPH;
2052 case 18: return MECHANIC_BANISH;
2053 case 19: return MECHANIC_SHIELD;
2054 case 20: return MECHANIC_SHACKLE;
2055 case 21: return MECHANIC_MOUNT;
2056 case 22: return MECHANIC_INFECTED;
2057 case 23: return MECHANIC_TURN;
2058 case 24: return MECHANIC_HORROR;
2059 case 25: return MECHANIC_INVULNERABILITY;
2060 case 26: return MECHANIC_INTERRUPT;
2061 case 27: return MECHANIC_DAZE;
2062 case 28: return MECHANIC_DISCOVERY;
2063 case 29: return MECHANIC_IMMUNE_SHIELD;
2064 case 30: return MECHANIC_SAPPED;
2065 case 31: return MECHANIC_ENRAGED;
2066 default: throw std::out_of_range("index");
2067 }
2068}
2069
2070template <>
2072{
2073 switch (value)
2074 {
2075 case MECHANIC_NONE: return 0;
2076 case MECHANIC_CHARM: return 1;
2077 case MECHANIC_DISORIENTED: return 2;
2078 case MECHANIC_DISARM: return 3;
2079 case MECHANIC_DISTRACT: return 4;
2080 case MECHANIC_FEAR: return 5;
2081 case MECHANIC_GRIP: return 6;
2082 case MECHANIC_ROOT: return 7;
2083 case MECHANIC_SLOW_ATTACK: return 8;
2084 case MECHANIC_SILENCE: return 9;
2085 case MECHANIC_SLEEP: return 10;
2086 case MECHANIC_SNARE: return 11;
2087 case MECHANIC_STUN: return 12;
2088 case MECHANIC_FREEZE: return 13;
2089 case MECHANIC_KNOCKOUT: return 14;
2090 case MECHANIC_BLEED: return 15;
2091 case MECHANIC_BANDAGE: return 16;
2092 case MECHANIC_POLYMORPH: return 17;
2093 case MECHANIC_BANISH: return 18;
2094 case MECHANIC_SHIELD: return 19;
2095 case MECHANIC_SHACKLE: return 20;
2096 case MECHANIC_MOUNT: return 21;
2097 case MECHANIC_INFECTED: return 22;
2098 case MECHANIC_TURN: return 23;
2099 case MECHANIC_HORROR: return 24;
2100 case MECHANIC_INVULNERABILITY: return 25;
2101 case MECHANIC_INTERRUPT: return 26;
2102 case MECHANIC_DAZE: return 27;
2103 case MECHANIC_DISCOVERY: return 28;
2104 case MECHANIC_IMMUNE_SHIELD: return 29;
2105 case MECHANIC_SAPPED: return 30;
2106 case MECHANIC_ENRAGED: return 31;
2107 default: throw std::out_of_range("value");
2108 }
2109}
2110
2111/*********************************************************************\
2112|* data for enum 'SpellDmgClass' in 'SharedDefines.h' auto-generated *|
2113\*********************************************************************/
2114template <>
2116{
2117 switch (value)
2118 {
2119 case SPELL_DAMAGE_CLASS_NONE: return { "SPELL_DAMAGE_CLASS_NONE", "None", "" };
2120 case SPELL_DAMAGE_CLASS_MAGIC: return { "SPELL_DAMAGE_CLASS_MAGIC", "Magic", "" };
2121 case SPELL_DAMAGE_CLASS_MELEE: return { "SPELL_DAMAGE_CLASS_MELEE", "Melee", "" };
2122 case SPELL_DAMAGE_CLASS_RANGED: return { "SPELL_DAMAGE_CLASS_RANGED", "Ranged", "" };
2123 default: throw std::out_of_range("value");
2124 }
2125}
2126
2127template <>
2129
2130template <>
2132{
2133 switch (index)
2134 {
2135 case 0: return SPELL_DAMAGE_CLASS_NONE;
2136 case 1: return SPELL_DAMAGE_CLASS_MAGIC;
2137 case 2: return SPELL_DAMAGE_CLASS_MELEE;
2138 case 3: return SPELL_DAMAGE_CLASS_RANGED;
2139 default: throw std::out_of_range("index");
2140 }
2141}
2142
2143template <>
2145{
2146 switch (value)
2147 {
2148 case SPELL_DAMAGE_CLASS_NONE: return 0;
2149 case SPELL_DAMAGE_CLASS_MAGIC: return 1;
2150 case SPELL_DAMAGE_CLASS_MELEE: return 2;
2151 case SPELL_DAMAGE_CLASS_RANGED: return 3;
2152 default: throw std::out_of_range("value");
2153 }
2154}
2155
2156/***************************************************************************\
2157|* data for enum 'SpellPreventionType' in 'SharedDefines.h' auto-generated *|
2158\***************************************************************************/
2159template <>
2161{
2162 switch (value)
2163 {
2164 case SPELL_PREVENTION_TYPE_NONE: return { "SPELL_PREVENTION_TYPE_NONE", "None", "" };
2165 case SPELL_PREVENTION_TYPE_SILENCE: return { "SPELL_PREVENTION_TYPE_SILENCE", "Silence", "" };
2166 case SPELL_PREVENTION_TYPE_PACIFY: return { "SPELL_PREVENTION_TYPE_PACIFY", "Pacify", "" };
2167 default: throw std::out_of_range("value");
2168 }
2169}
2170
2171template <>
2173
2174template <>
2176{
2177 switch (index)
2178 {
2179 case 0: return SPELL_PREVENTION_TYPE_NONE;
2180 case 1: return SPELL_PREVENTION_TYPE_SILENCE;
2181 case 2: return SPELL_PREVENTION_TYPE_PACIFY;
2182 default: throw std::out_of_range("index");
2183 }
2184}
2185
2186template <>
2188{
2189 switch (value)
2190 {
2191 case SPELL_PREVENTION_TYPE_NONE: return 0;
2192 case SPELL_PREVENTION_TYPE_SILENCE: return 1;
2193 case SPELL_PREVENTION_TYPE_PACIFY: return 2;
2194 default: throw std::out_of_range("value");
2195 }
2196}
2197
2198/*************************************************************\
2199|* data for enum 'Emote' in 'SharedDefines.h' auto-generated *|
2200\*************************************************************/
2201template <>
2203{
2204 switch (value)
2205 {
2206 case EMOTE_ONESHOT_TALK: return { "EMOTE_ONESHOT_TALK", "EMOTE_ONESHOT_TALK", "" };
2207 case EMOTE_ONESHOT_BOW: return { "EMOTE_ONESHOT_BOW", "EMOTE_ONESHOT_BOW", "" };
2208 case EMOTE_ONESHOT_WAVE: return { "EMOTE_ONESHOT_WAVE", "EMOTE_ONESHOT_WAVE", "" };
2209 case EMOTE_ONESHOT_CHEER: return { "EMOTE_ONESHOT_CHEER", "EMOTE_ONESHOT_CHEER", "" };
2210 case EMOTE_ONESHOT_EXCLAMATION: return { "EMOTE_ONESHOT_EXCLAMATION", "EMOTE_ONESHOT_EXCLAMATION", "" };
2211 case EMOTE_ONESHOT_QUESTION: return { "EMOTE_ONESHOT_QUESTION", "EMOTE_ONESHOT_QUESTION", "" };
2212 case EMOTE_ONESHOT_EAT: return { "EMOTE_ONESHOT_EAT", "EMOTE_ONESHOT_EAT", "" };
2213 case EMOTE_STATE_DANCE: return { "EMOTE_STATE_DANCE", "EMOTE_STATE_DANCE", "" };
2214 case EMOTE_ONESHOT_LAUGH: return { "EMOTE_ONESHOT_LAUGH", "EMOTE_ONESHOT_LAUGH", "" };
2215 case EMOTE_STATE_SLEEP: return { "EMOTE_STATE_SLEEP", "EMOTE_STATE_SLEEP", "" };
2216 case EMOTE_STATE_SIT: return { "EMOTE_STATE_SIT", "EMOTE_STATE_SIT", "" };
2217 case EMOTE_ONESHOT_RUDE: return { "EMOTE_ONESHOT_RUDE", "EMOTE_ONESHOT_RUDE", "" };
2218 case EMOTE_ONESHOT_ROAR: return { "EMOTE_ONESHOT_ROAR", "EMOTE_ONESHOT_ROAR", "" };
2219 case EMOTE_ONESHOT_KNEEL: return { "EMOTE_ONESHOT_KNEEL", "EMOTE_ONESHOT_KNEEL", "" };
2220 case EMOTE_ONESHOT_KISS: return { "EMOTE_ONESHOT_KISS", "EMOTE_ONESHOT_KISS", "" };
2221 case EMOTE_ONESHOT_CRY: return { "EMOTE_ONESHOT_CRY", "EMOTE_ONESHOT_CRY", "" };
2222 case EMOTE_ONESHOT_CHICKEN: return { "EMOTE_ONESHOT_CHICKEN", "EMOTE_ONESHOT_CHICKEN", "" };
2223 case EMOTE_ONESHOT_BEG: return { "EMOTE_ONESHOT_BEG", "EMOTE_ONESHOT_BEG", "" };
2224 case EMOTE_ONESHOT_APPLAUD: return { "EMOTE_ONESHOT_APPLAUD", "EMOTE_ONESHOT_APPLAUD", "" };
2225 case EMOTE_ONESHOT_SHOUT: return { "EMOTE_ONESHOT_SHOUT", "EMOTE_ONESHOT_SHOUT", "" };
2226 case EMOTE_ONESHOT_FLEX: return { "EMOTE_ONESHOT_FLEX", "EMOTE_ONESHOT_FLEX", "" };
2227 case EMOTE_ONESHOT_SHY: return { "EMOTE_ONESHOT_SHY", "EMOTE_ONESHOT_SHY", "" };
2228 case EMOTE_ONESHOT_POINT: return { "EMOTE_ONESHOT_POINT", "EMOTE_ONESHOT_POINT", "" };
2229 case EMOTE_STATE_STAND: return { "EMOTE_STATE_STAND", "EMOTE_STATE_STAND", "" };
2230 case EMOTE_STATE_READY_UNARMED: return { "EMOTE_STATE_READY_UNARMED", "EMOTE_STATE_READY_UNARMED", "" };
2231 case EMOTE_STATE_WORK_SHEATHED: return { "EMOTE_STATE_WORK_SHEATHED", "EMOTE_STATE_WORK_SHEATHED", "" };
2232 case EMOTE_STATE_POINT: return { "EMOTE_STATE_POINT", "EMOTE_STATE_POINT", "" };
2233 case EMOTE_STATE_NONE: return { "EMOTE_STATE_NONE", "EMOTE_STATE_NONE", "" };
2234 case EMOTE_ONESHOT_WOUND: return { "EMOTE_ONESHOT_WOUND", "EMOTE_ONESHOT_WOUND", "" };
2235 case EMOTE_ONESHOT_WOUND_CRITICAL: return { "EMOTE_ONESHOT_WOUND_CRITICAL", "EMOTE_ONESHOT_WOUND_CRITICAL", "" };
2236 case EMOTE_ONESHOT_ATTACK_UNARMED: return { "EMOTE_ONESHOT_ATTACK_UNARMED", "EMOTE_ONESHOT_ATTACK_UNARMED", "" };
2237 case EMOTE_ONESHOT_ATTACK1H: return { "EMOTE_ONESHOT_ATTACK1H", "EMOTE_ONESHOT_ATTACK1H", "" };
2238 case EMOTE_ONESHOT_ATTACK2HTIGHT: return { "EMOTE_ONESHOT_ATTACK2HTIGHT", "EMOTE_ONESHOT_ATTACK2HTIGHT", "" };
2239 case EMOTE_ONESHOT_ATTACK2H_LOOSE: return { "EMOTE_ONESHOT_ATTACK2H_LOOSE", "EMOTE_ONESHOT_ATTACK2H_LOOSE", "" };
2240 case EMOTE_ONESHOT_PARRY_UNARMED: return { "EMOTE_ONESHOT_PARRY_UNARMED", "EMOTE_ONESHOT_PARRY_UNARMED", "" };
2241 case EMOTE_ONESHOT_PARRY_SHIELD: return { "EMOTE_ONESHOT_PARRY_SHIELD", "EMOTE_ONESHOT_PARRY_SHIELD", "" };
2242 case EMOTE_ONESHOT_READY_UNARMED: return { "EMOTE_ONESHOT_READY_UNARMED", "EMOTE_ONESHOT_READY_UNARMED", "" };
2243 case EMOTE_ONESHOT_READY1H: return { "EMOTE_ONESHOT_READY1H", "EMOTE_ONESHOT_READY1H", "" };
2244 case EMOTE_ONESHOT_READY_BOW: return { "EMOTE_ONESHOT_READY_BOW", "EMOTE_ONESHOT_READY_BOW", "" };
2245 case EMOTE_ONESHOT_SPELL_PRECAST: return { "EMOTE_ONESHOT_SPELL_PRECAST", "EMOTE_ONESHOT_SPELL_PRECAST", "" };
2246 case EMOTE_ONESHOT_SPELL_CAST: return { "EMOTE_ONESHOT_SPELL_CAST", "EMOTE_ONESHOT_SPELL_CAST", "" };
2247 case EMOTE_ONESHOT_BATTLE_ROAR: return { "EMOTE_ONESHOT_BATTLE_ROAR", "EMOTE_ONESHOT_BATTLE_ROAR", "" };
2248 case EMOTE_ONESHOT_SPECIALATTACK1H: return { "EMOTE_ONESHOT_SPECIALATTACK1H", "EMOTE_ONESHOT_SPECIALATTACK1H", "" };
2249 case EMOTE_ONESHOT_KICK: return { "EMOTE_ONESHOT_KICK", "EMOTE_ONESHOT_KICK", "" };
2250 case EMOTE_ONESHOT_ATTACK_THROWN: return { "EMOTE_ONESHOT_ATTACK_THROWN", "EMOTE_ONESHOT_ATTACK_THROWN", "" };
2251 case EMOTE_STATE_STUN: return { "EMOTE_STATE_STUN", "EMOTE_STATE_STUN", "" };
2252 case EMOTE_STATE_DEAD: return { "EMOTE_STATE_DEAD", "EMOTE_STATE_DEAD", "" };
2253 case EMOTE_ONESHOT_SALUTE: return { "EMOTE_ONESHOT_SALUTE", "EMOTE_ONESHOT_SALUTE", "" };
2254 case EMOTE_STATE_KNEEL: return { "EMOTE_STATE_KNEEL", "EMOTE_STATE_KNEEL", "" };
2255 case EMOTE_STATE_USE_STANDING: return { "EMOTE_STATE_USE_STANDING", "EMOTE_STATE_USE_STANDING", "" };
2256 case EMOTE_ONESHOT_WAVE_NO_SHEATHE: return { "EMOTE_ONESHOT_WAVE_NO_SHEATHE", "EMOTE_ONESHOT_WAVE_NO_SHEATHE", "" };
2257 case EMOTE_ONESHOT_CHEER_NO_SHEATHE: return { "EMOTE_ONESHOT_CHEER_NO_SHEATHE", "EMOTE_ONESHOT_CHEER_NO_SHEATHE", "" };
2258 case EMOTE_ONESHOT_EAT_NO_SHEATHE: return { "EMOTE_ONESHOT_EAT_NO_SHEATHE", "EMOTE_ONESHOT_EAT_NO_SHEATHE", "" };
2259 case EMOTE_STATE_STUN_NO_SHEATHE: return { "EMOTE_STATE_STUN_NO_SHEATHE", "EMOTE_STATE_STUN_NO_SHEATHE", "" };
2260 case EMOTE_ONESHOT_DANCE: return { "EMOTE_ONESHOT_DANCE", "EMOTE_ONESHOT_DANCE", "" };
2261 case EMOTE_ONESHOT_SALUTE_NO_SHEATH: return { "EMOTE_ONESHOT_SALUTE_NO_SHEATH", "EMOTE_ONESHOT_SALUTE_NO_SHEATH", "" };
2262 case EMOTE_STATE_USE_STANDING_NO_SHEATHE: return { "EMOTE_STATE_USE_STANDING_NO_SHEATHE", "EMOTE_STATE_USE_STANDING_NO_SHEATHE", "" };
2263 case EMOTE_ONESHOT_LAUGH_NO_SHEATHE: return { "EMOTE_ONESHOT_LAUGH_NO_SHEATHE", "EMOTE_ONESHOT_LAUGH_NO_SHEATHE", "" };
2264 case EMOTE_STATE_WORK: return { "EMOTE_STATE_WORK", "EMOTE_STATE_WORK", "" };
2265 case EMOTE_STATE_SPELL_PRECAST: return { "EMOTE_STATE_SPELL_PRECAST", "EMOTE_STATE_SPELL_PRECAST", "" };
2266 case EMOTE_ONESHOT_READY_RIFLE: return { "EMOTE_ONESHOT_READY_RIFLE", "EMOTE_ONESHOT_READY_RIFLE", "" };
2267 case EMOTE_STATE_READY_RIFLE: return { "EMOTE_STATE_READY_RIFLE", "EMOTE_STATE_READY_RIFLE", "" };
2268 case EMOTE_STATE_WORK_MINING: return { "EMOTE_STATE_WORK_MINING", "EMOTE_STATE_WORK_MINING", "" };
2269 case EMOTE_STATE_WORK_CHOPWOOD: return { "EMOTE_STATE_WORK_CHOPWOOD", "EMOTE_STATE_WORK_CHOPWOOD", "" };
2270 case EMOTE_STATE_APPLAUD: return { "EMOTE_STATE_APPLAUD", "EMOTE_STATE_APPLAUD", "" };
2271 case EMOTE_ONESHOT_LIFTOFF: return { "EMOTE_ONESHOT_LIFTOFF", "EMOTE_ONESHOT_LIFTOFF", "" };
2272 case EMOTE_ONESHOT_YES: return { "EMOTE_ONESHOT_YES", "EMOTE_ONESHOT_YES", "" };
2273 case EMOTE_ONESHOT_NO: return { "EMOTE_ONESHOT_NO", "EMOTE_ONESHOT_NO", "" };
2274 case EMOTE_ONESHOT_TRAIN: return { "EMOTE_ONESHOT_TRAIN", "EMOTE_ONESHOT_TRAIN", "" };
2275 case EMOTE_ONESHOT_LAND: return { "EMOTE_ONESHOT_LAND", "EMOTE_ONESHOT_LAND", "" };
2276 case EMOTE_STATE_AT_EASE: return { "EMOTE_STATE_AT_EASE", "EMOTE_STATE_AT_EASE", "" };
2277 case EMOTE_STATE_READY1H: return { "EMOTE_STATE_READY1H", "EMOTE_STATE_READY1H", "" };
2278 case EMOTE_STATE_SPELL_KNEEL_START: return { "EMOTE_STATE_SPELL_KNEEL_START", "EMOTE_STATE_SPELL_KNEEL_START", "" };
2279 case EMOTE_STATE_SUBMERGED: return { "EMOTE_STATE_SUBMERGED", "EMOTE_STATE_SUBMERGED", "" };
2280 case EMOTE_ONESHOT_SUBMERGE: return { "EMOTE_ONESHOT_SUBMERGE", "EMOTE_ONESHOT_SUBMERGE", "" };
2281 case EMOTE_STATE_READY2H: return { "EMOTE_STATE_READY2H", "EMOTE_STATE_READY2H", "" };
2282 case EMOTE_STATE_READY_BOW: return { "EMOTE_STATE_READY_BOW", "EMOTE_STATE_READY_BOW", "" };
2283 case EMOTE_ONESHOT_MOUNT_SPECIAL: return { "EMOTE_ONESHOT_MOUNT_SPECIAL", "EMOTE_ONESHOT_MOUNT_SPECIAL", "" };
2284 case EMOTE_STATE_TALK: return { "EMOTE_STATE_TALK", "EMOTE_STATE_TALK", "" };
2285 case EMOTE_STATE_FISHING: return { "EMOTE_STATE_FISHING", "EMOTE_STATE_FISHING", "" };
2286 case EMOTE_ONESHOT_FISHING: return { "EMOTE_ONESHOT_FISHING", "EMOTE_ONESHOT_FISHING", "" };
2287 case EMOTE_ONESHOT_LOOT: return { "EMOTE_ONESHOT_LOOT", "EMOTE_ONESHOT_LOOT", "" };
2288 case EMOTE_STATE_WHIRLWIND: return { "EMOTE_STATE_WHIRLWIND", "EMOTE_STATE_WHIRLWIND", "" };
2289 case EMOTE_STATE_DROWNED: return { "EMOTE_STATE_DROWNED", "EMOTE_STATE_DROWNED", "" };
2290 case EMOTE_STATE_HOLD_BOW: return { "EMOTE_STATE_HOLD_BOW", "EMOTE_STATE_HOLD_BOW", "" };
2291 case EMOTE_STATE_HOLD_RIFLE: return { "EMOTE_STATE_HOLD_RIFLE", "EMOTE_STATE_HOLD_RIFLE", "" };
2292 case EMOTE_STATE_HOLD_THROWN: return { "EMOTE_STATE_HOLD_THROWN", "EMOTE_STATE_HOLD_THROWN", "" };
2293 case EMOTE_ONESHOT_DROWN: return { "EMOTE_ONESHOT_DROWN", "EMOTE_ONESHOT_DROWN", "" };
2294 case EMOTE_ONESHOT_STOMP: return { "EMOTE_ONESHOT_STOMP", "EMOTE_ONESHOT_STOMP", "" };
2295 case EMOTE_ONESHOT_ATTACK_OFF: return { "EMOTE_ONESHOT_ATTACK_OFF", "EMOTE_ONESHOT_ATTACK_OFF", "" };
2296 case EMOTE_ONESHOT_ATTACK_OFF_PIERCE: return { "EMOTE_ONESHOT_ATTACK_OFF_PIERCE", "EMOTE_ONESHOT_ATTACK_OFF_PIERCE", "" };
2297 case EMOTE_STATE_ROAR: return { "EMOTE_STATE_ROAR", "EMOTE_STATE_ROAR", "" };
2298 case EMOTE_STATE_LAUGH: return { "EMOTE_STATE_LAUGH", "EMOTE_STATE_LAUGH", "" };
2299 case EMOTE_ONESHOT_CREATURE_SPECIAL: return { "EMOTE_ONESHOT_CREATURE_SPECIAL", "EMOTE_ONESHOT_CREATURE_SPECIAL", "" };
2300 case EMOTE_ONESHOT_JUMPLANDRUN: return { "EMOTE_ONESHOT_JUMPLANDRUN", "EMOTE_ONESHOT_JUMPLANDRUN", "" };
2301 case EMOTE_ONESHOT_JUMPEND: return { "EMOTE_ONESHOT_JUMPEND", "EMOTE_ONESHOT_JUMPEND", "" };
2302 case EMOTE_ONESHOT_TALK_NO_SHEATHE: return { "EMOTE_ONESHOT_TALK_NO_SHEATHE", "EMOTE_ONESHOT_TALK_NO_SHEATHE", "" };
2303 case EMOTE_ONESHOT_POINT_NO_SHEATHE: return { "EMOTE_ONESHOT_POINT_NO_SHEATHE", "EMOTE_ONESHOT_POINT_NO_SHEATHE", "" };
2304 case EMOTE_STATE_CANNIBALIZE: return { "EMOTE_STATE_CANNIBALIZE", "EMOTE_STATE_CANNIBALIZE", "" };
2305 case EMOTE_ONESHOT_JUMPSTART: return { "EMOTE_ONESHOT_JUMPSTART", "EMOTE_ONESHOT_JUMPSTART", "" };
2306 case EMOTE_STATE_DANCESPECIAL: return { "EMOTE_STATE_DANCESPECIAL", "EMOTE_STATE_DANCESPECIAL", "" };
2307 case EMOTE_ONESHOT_DANCESPECIAL: return { "EMOTE_ONESHOT_DANCESPECIAL", "EMOTE_ONESHOT_DANCESPECIAL", "" };
2308 case EMOTE_ONESHOT_CUSTOM_SPELL_01: return { "EMOTE_ONESHOT_CUSTOM_SPELL_01", "EMOTE_ONESHOT_CUSTOM_SPELL_01", "" };
2309 case EMOTE_ONESHOT_CUSTOM_SPELL_02: return { "EMOTE_ONESHOT_CUSTOM_SPELL_02", "EMOTE_ONESHOT_CUSTOM_SPELL_02", "" };
2310 case EMOTE_ONESHOT_CUSTOM_SPELL_03: return { "EMOTE_ONESHOT_CUSTOM_SPELL_03", "EMOTE_ONESHOT_CUSTOM_SPELL_03", "" };
2311 case EMOTE_ONESHOT_CUSTOM_SPELL_04: return { "EMOTE_ONESHOT_CUSTOM_SPELL_04", "EMOTE_ONESHOT_CUSTOM_SPELL_04", "" };
2312 case EMOTE_ONESHOT_CUSTOM_SPELL_05: return { "EMOTE_ONESHOT_CUSTOM_SPELL_05", "EMOTE_ONESHOT_CUSTOM_SPELL_05", "" };
2313 case EMOTE_ONESHOT_CUSTOM_SPELL_06: return { "EMOTE_ONESHOT_CUSTOM_SPELL_06", "EMOTE_ONESHOT_CUSTOM_SPELL_06", "" };
2314 case EMOTE_ONESHOT_CUSTOM_SPELL_07: return { "EMOTE_ONESHOT_CUSTOM_SPELL_07", "EMOTE_ONESHOT_CUSTOM_SPELL_07", "" };
2315 case EMOTE_ONESHOT_CUSTOM_SPELL_08: return { "EMOTE_ONESHOT_CUSTOM_SPELL_08", "EMOTE_ONESHOT_CUSTOM_SPELL_08", "" };
2316 case EMOTE_ONESHOT_CUSTOM_SPELL_09: return { "EMOTE_ONESHOT_CUSTOM_SPELL_09", "EMOTE_ONESHOT_CUSTOM_SPELL_09", "" };
2317 case EMOTE_ONESHOT_CUSTOM_SPELL_10: return { "EMOTE_ONESHOT_CUSTOM_SPELL_10", "EMOTE_ONESHOT_CUSTOM_SPELL_10", "" };
2318 case EMOTE_STATE_EXCLAIM: return { "EMOTE_STATE_EXCLAIM", "EMOTE_STATE_EXCLAIM", "" };
2319 case EMOTE_STATE_DANCE_CUSTOM: return { "EMOTE_STATE_DANCE_CUSTOM", "EMOTE_STATE_DANCE_CUSTOM", "" };
2320 case EMOTE_STATE_SIT_CHAIR_MED: return { "EMOTE_STATE_SIT_CHAIR_MED", "EMOTE_STATE_SIT_CHAIR_MED", "" };
2321 case EMOTE_STATE_CUSTOM_SPELL_01: return { "EMOTE_STATE_CUSTOM_SPELL_01", "EMOTE_STATE_CUSTOM_SPELL_01", "" };
2322 case EMOTE_STATE_CUSTOM_SPELL_02: return { "EMOTE_STATE_CUSTOM_SPELL_02", "EMOTE_STATE_CUSTOM_SPELL_02", "" };
2323 case EMOTE_STATE_EAT: return { "EMOTE_STATE_EAT", "EMOTE_STATE_EAT", "" };
2324 case EMOTE_STATE_CUSTOM_SPELL_04: return { "EMOTE_STATE_CUSTOM_SPELL_04", "EMOTE_STATE_CUSTOM_SPELL_04", "" };
2325 case EMOTE_STATE_CUSTOM_SPELL_03: return { "EMOTE_STATE_CUSTOM_SPELL_03", "EMOTE_STATE_CUSTOM_SPELL_03", "" };
2326 case EMOTE_STATE_CUSTOM_SPELL_05: return { "EMOTE_STATE_CUSTOM_SPELL_05", "EMOTE_STATE_CUSTOM_SPELL_05", "" };
2327 case EMOTE_STATE_SPELLEFFECT_HOLD: return { "EMOTE_STATE_SPELLEFFECT_HOLD", "EMOTE_STATE_SPELLEFFECT_HOLD", "" };
2328 case EMOTE_STATE_EAT_NO_SHEATHE: return { "EMOTE_STATE_EAT_NO_SHEATHE", "EMOTE_STATE_EAT_NO_SHEATHE", "" };
2329 case EMOTE_STATE_MOUNT: return { "EMOTE_STATE_MOUNT", "EMOTE_STATE_MOUNT", "" };
2330 case EMOTE_STATE_READY2HL: return { "EMOTE_STATE_READY2HL", "EMOTE_STATE_READY2HL", "" };
2331 case EMOTE_STATE_SIT_CHAIR_HIGH: return { "EMOTE_STATE_SIT_CHAIR_HIGH", "EMOTE_STATE_SIT_CHAIR_HIGH", "" };
2332 case EMOTE_STATE_FALL: return { "EMOTE_STATE_FALL", "EMOTE_STATE_FALL", "" };
2333 case EMOTE_STATE_LOOT: return { "EMOTE_STATE_LOOT", "EMOTE_STATE_LOOT", "" };
2334 case EMOTE_STATE_SUBMERGED_NEW: return { "EMOTE_STATE_SUBMERGED_NEW", "EMOTE_STATE_SUBMERGED_NEW", "" };
2335 case EMOTE_ONESHOT_COWER: return { "EMOTE_ONESHOT_COWER", "EMOTE_ONESHOT_COWER", "" };
2336 case EMOTE_STATE_COWER: return { "EMOTE_STATE_COWER", "EMOTE_STATE_COWER", "" };
2337 case EMOTE_ONESHOT_USE_STANDING: return { "EMOTE_ONESHOT_USE_STANDING", "EMOTE_ONESHOT_USE_STANDING", "" };
2338 case EMOTE_STATE_STEALTH_STAND: return { "EMOTE_STATE_STEALTH_STAND", "EMOTE_STATE_STEALTH_STAND", "" };
2339 case EMOTE_ONESHOT_OMNICAST_GHOUL: return { "EMOTE_ONESHOT_OMNICAST_GHOUL", "EMOTE_ONESHOT_OMNICAST_GHOUL", "" };
2340 case EMOTE_ONESHOT_ATTACK_BOW: return { "EMOTE_ONESHOT_ATTACK_BOW", "EMOTE_ONESHOT_ATTACK_BOW", "" };
2341 case EMOTE_ONESHOT_ATTACK_RIFLE: return { "EMOTE_ONESHOT_ATTACK_RIFLE", "EMOTE_ONESHOT_ATTACK_RIFLE", "" };
2342 case EMOTE_STATE_SWIM_IDLE: return { "EMOTE_STATE_SWIM_IDLE", "EMOTE_STATE_SWIM_IDLE", "" };
2343 case EMOTE_STATE_ATTACK_UNARMED: return { "EMOTE_STATE_ATTACK_UNARMED", "EMOTE_STATE_ATTACK_UNARMED", "" };
2344 case EMOTE_ONESHOT_SPELL_CAST_W_SOUND: return { "EMOTE_ONESHOT_SPELL_CAST_W_SOUND", "EMOTE_ONESHOT_SPELL_CAST_W_SOUND", "" };
2345 case EMOTE_ONESHOT_DODGE: return { "EMOTE_ONESHOT_DODGE", "EMOTE_ONESHOT_DODGE", "" };
2346 case EMOTE_ONESHOT_PARRY1H: return { "EMOTE_ONESHOT_PARRY1H", "EMOTE_ONESHOT_PARRY1H", "" };
2347 case EMOTE_ONESHOT_PARRY2H: return { "EMOTE_ONESHOT_PARRY2H", "EMOTE_ONESHOT_PARRY2H", "" };
2348 case EMOTE_ONESHOT_PARRY2HL: return { "EMOTE_ONESHOT_PARRY2HL", "EMOTE_ONESHOT_PARRY2HL", "" };
2349 case EMOTE_STATE_FLYFALL: return { "EMOTE_STATE_FLYFALL", "EMOTE_STATE_FLYFALL", "" };
2350 case EMOTE_ONESHOT_FLYDEATH: return { "EMOTE_ONESHOT_FLYDEATH", "EMOTE_ONESHOT_FLYDEATH", "" };
2351 case EMOTE_STATE_FLY_FALL: return { "EMOTE_STATE_FLY_FALL", "EMOTE_STATE_FLY_FALL", "" };
2352 case EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN: return { "EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN", "EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN", "" };
2353 case EMOTE_ONESHOT_FLY_SIT_GROUND_UP: return { "EMOTE_ONESHOT_FLY_SIT_GROUND_UP", "EMOTE_ONESHOT_FLY_SIT_GROUND_UP", "" };
2354 case EMOTE_ONESHOT_EMERGE: return { "EMOTE_ONESHOT_EMERGE", "EMOTE_ONESHOT_EMERGE", "" };
2355 case EMOTE_ONESHOT_DRAGON_SPIT: return { "EMOTE_ONESHOT_DRAGON_SPIT", "EMOTE_ONESHOT_DRAGON_SPIT", "" };
2356 case EMOTE_STATE_SPECIAL_UNARMED: return { "EMOTE_STATE_SPECIAL_UNARMED", "EMOTE_STATE_SPECIAL_UNARMED", "" };
2357 case EMOTE_ONESHOT_FLYGRAB: return { "EMOTE_ONESHOT_FLYGRAB", "EMOTE_ONESHOT_FLYGRAB", "" };
2358 case EMOTE_STATE_FLYGRABCLOSED: return { "EMOTE_STATE_FLYGRABCLOSED", "EMOTE_STATE_FLYGRABCLOSED", "" };
2359 case EMOTE_ONESHOT_FLYGRABTHROWN: return { "EMOTE_ONESHOT_FLYGRABTHROWN", "EMOTE_ONESHOT_FLYGRABTHROWN", "" };
2360 case EMOTE_STATE_FLY_SIT_GROUND: return { "EMOTE_STATE_FLY_SIT_GROUND", "EMOTE_STATE_FLY_SIT_GROUND", "" };
2361 case EMOTE_STATE_WALK_BACKWARDS: return { "EMOTE_STATE_WALK_BACKWARDS", "EMOTE_STATE_WALK_BACKWARDS", "" };
2362 case EMOTE_ONESHOT_FLYTALK: return { "EMOTE_ONESHOT_FLYTALK", "EMOTE_ONESHOT_FLYTALK", "" };
2363 case EMOTE_ONESHOT_FLYATTACK1H: return { "EMOTE_ONESHOT_FLYATTACK1H", "EMOTE_ONESHOT_FLYATTACK1H", "" };
2364 case EMOTE_STATE_CUSTOM_SPELL_08: return { "EMOTE_STATE_CUSTOM_SPELL_08", "EMOTE_STATE_CUSTOM_SPELL_08", "" };
2365 case EMOTE_ONESHOT_FLY_DRAGON_SPIT: return { "EMOTE_ONESHOT_FLY_DRAGON_SPIT", "EMOTE_ONESHOT_FLY_DRAGON_SPIT", "" };
2366 case EMOTE_STATE_SIT_CHAIR_LOW: return { "EMOTE_STATE_SIT_CHAIR_LOW", "EMOTE_STATE_SIT_CHAIR_LOW", "" };
2367 case EMOTE_ONESHOT_STUN: return { "EMOTE_ONESHOT_STUN", "EMOTE_ONESHOT_STUN", "" };
2368 case EMOTE_ONESHOT_SPELL_CAST_OMNI: return { "EMOTE_ONESHOT_SPELL_CAST_OMNI", "EMOTE_ONESHOT_SPELL_CAST_OMNI", "" };
2369 case EMOTE_STATE_READY_THROWN: return { "EMOTE_STATE_READY_THROWN", "EMOTE_STATE_READY_THROWN", "" };
2370 case EMOTE_ONESHOT_WORK_CHOPWOOD: return { "EMOTE_ONESHOT_WORK_CHOPWOOD", "EMOTE_ONESHOT_WORK_CHOPWOOD", "" };
2371 case EMOTE_ONESHOT_WORK_MINING: return { "EMOTE_ONESHOT_WORK_MINING", "EMOTE_ONESHOT_WORK_MINING", "" };
2372 case EMOTE_STATE_SPELL_CHANNEL_OMNI: return { "EMOTE_STATE_SPELL_CHANNEL_OMNI", "EMOTE_STATE_SPELL_CHANNEL_OMNI", "" };
2373 case EMOTE_STATE_SPELL_CHANNEL_DIRECTED: return { "EMOTE_STATE_SPELL_CHANNEL_DIRECTED", "EMOTE_STATE_SPELL_CHANNEL_DIRECTED", "" };
2374 case EMOTE_STAND_STATE_NONE: return { "EMOTE_STAND_STATE_NONE", "EMOTE_STAND_STATE_NONE", "" };
2375 case EMOTE_STATE_READYJOUST: return { "EMOTE_STATE_READYJOUST", "EMOTE_STATE_READYJOUST", "" };
2376 case EMOTE_STATE_STRANGULATE: return { "EMOTE_STATE_STRANGULATE", "EMOTE_STATE_STRANGULATE", "" };
2377 case EMOTE_STATE_READY_SPELL_OMNI: return { "EMOTE_STATE_READY_SPELL_OMNI", "EMOTE_STATE_READY_SPELL_OMNI", "" };
2378 case EMOTE_STATE_HOLD_JOUST: return { "EMOTE_STATE_HOLD_JOUST", "EMOTE_STATE_HOLD_JOUST", "" };
2379 case EMOTE_ONESHOT_CRY_JAINA: return { "EMOTE_ONESHOT_CRY_JAINA", "EMOTE_ONESHOT_CRY_JAINA", "" };
2380 default: throw std::out_of_range("value");
2381 }
2382}
2383
2384template <>
2386
2387template <>
2389{
2390 switch (index)
2391 {
2392 case 0: return EMOTE_ONESHOT_TALK;
2393 case 1: return EMOTE_ONESHOT_BOW;
2394 case 2: return EMOTE_ONESHOT_WAVE;
2395 case 3: return EMOTE_ONESHOT_CHEER;
2396 case 4: return EMOTE_ONESHOT_EXCLAMATION;
2397 case 5: return EMOTE_ONESHOT_QUESTION;
2398 case 6: return EMOTE_ONESHOT_EAT;
2399 case 7: return EMOTE_STATE_DANCE;
2400 case 8: return EMOTE_ONESHOT_LAUGH;
2401 case 9: return EMOTE_STATE_SLEEP;
2402 case 10: return EMOTE_STATE_SIT;
2403 case 11: return EMOTE_ONESHOT_RUDE;
2404 case 12: return EMOTE_ONESHOT_ROAR;
2405 case 13: return EMOTE_ONESHOT_KNEEL;
2406 case 14: return EMOTE_ONESHOT_KISS;
2407 case 15: return EMOTE_ONESHOT_CRY;
2408 case 16: return EMOTE_ONESHOT_CHICKEN;
2409 case 17: return EMOTE_ONESHOT_BEG;
2410 case 18: return EMOTE_ONESHOT_APPLAUD;
2411 case 19: return EMOTE_ONESHOT_SHOUT;
2412 case 20: return EMOTE_ONESHOT_FLEX;
2413 case 21: return EMOTE_ONESHOT_SHY;
2414 case 22: return EMOTE_ONESHOT_POINT;
2415 case 23: return EMOTE_STATE_STAND;
2416 case 24: return EMOTE_STATE_READY_UNARMED;
2417 case 25: return EMOTE_STATE_WORK_SHEATHED;
2418 case 26: return EMOTE_STATE_POINT;
2419 case 27: return EMOTE_STATE_NONE;
2420 case 28: return EMOTE_ONESHOT_WOUND;
2421 case 29: return EMOTE_ONESHOT_WOUND_CRITICAL;
2422 case 30: return EMOTE_ONESHOT_ATTACK_UNARMED;
2423 case 31: return EMOTE_ONESHOT_ATTACK1H;
2424 case 32: return EMOTE_ONESHOT_ATTACK2HTIGHT;
2425 case 33: return EMOTE_ONESHOT_ATTACK2H_LOOSE;
2426 case 34: return EMOTE_ONESHOT_PARRY_UNARMED;
2427 case 35: return EMOTE_ONESHOT_PARRY_SHIELD;
2428 case 36: return EMOTE_ONESHOT_READY_UNARMED;
2429 case 37: return EMOTE_ONESHOT_READY1H;
2430 case 38: return EMOTE_ONESHOT_READY_BOW;
2431 case 39: return EMOTE_ONESHOT_SPELL_PRECAST;
2432 case 40: return EMOTE_ONESHOT_SPELL_CAST;
2433 case 41: return EMOTE_ONESHOT_BATTLE_ROAR;
2434 case 42: return EMOTE_ONESHOT_SPECIALATTACK1H;
2435 case 43: return EMOTE_ONESHOT_KICK;
2436 case 44: return EMOTE_ONESHOT_ATTACK_THROWN;
2437 case 45: return EMOTE_STATE_STUN;
2438 case 46: return EMOTE_STATE_DEAD;
2439 case 47: return EMOTE_ONESHOT_SALUTE;
2440 case 48: return EMOTE_STATE_KNEEL;
2441 case 49: return EMOTE_STATE_USE_STANDING;
2442 case 50: return EMOTE_ONESHOT_WAVE_NO_SHEATHE;
2443 case 51: return EMOTE_ONESHOT_CHEER_NO_SHEATHE;
2444 case 52: return EMOTE_ONESHOT_EAT_NO_SHEATHE;
2445 case 53: return EMOTE_STATE_STUN_NO_SHEATHE;
2446 case 54: return EMOTE_ONESHOT_DANCE;
2447 case 55: return EMOTE_ONESHOT_SALUTE_NO_SHEATH;
2449 case 57: return EMOTE_ONESHOT_LAUGH_NO_SHEATHE;
2450 case 58: return EMOTE_STATE_WORK;
2451 case 59: return EMOTE_STATE_SPELL_PRECAST;
2452 case 60: return EMOTE_ONESHOT_READY_RIFLE;
2453 case 61: return EMOTE_STATE_READY_RIFLE;
2454 case 62: return EMOTE_STATE_WORK_MINING;
2455 case 63: return EMOTE_STATE_WORK_CHOPWOOD;
2456 case 64: return EMOTE_STATE_APPLAUD;
2457 case 65: return EMOTE_ONESHOT_LIFTOFF;
2458 case 66: return EMOTE_ONESHOT_YES;
2459 case 67: return EMOTE_ONESHOT_NO;
2460 case 68: return EMOTE_ONESHOT_TRAIN;
2461 case 69: return EMOTE_ONESHOT_LAND;
2462 case 70: return EMOTE_STATE_AT_EASE;
2463 case 71: return EMOTE_STATE_READY1H;
2464 case 72: return EMOTE_STATE_SPELL_KNEEL_START;
2465 case 73: return EMOTE_STATE_SUBMERGED;
2466 case 74: return EMOTE_ONESHOT_SUBMERGE;
2467 case 75: return EMOTE_STATE_READY2H;
2468 case 76: return EMOTE_STATE_READY_BOW;
2469 case 77: return EMOTE_ONESHOT_MOUNT_SPECIAL;
2470 case 78: return EMOTE_STATE_TALK;
2471 case 79: return EMOTE_STATE_FISHING;
2472 case 80: return EMOTE_ONESHOT_FISHING;
2473 case 81: return EMOTE_ONESHOT_LOOT;
2474 case 82: return EMOTE_STATE_WHIRLWIND;
2475 case 83: return EMOTE_STATE_DROWNED;
2476 case 84: return EMOTE_STATE_HOLD_BOW;
2477 case 85: return EMOTE_STATE_HOLD_RIFLE;
2478 case 86: return EMOTE_STATE_HOLD_THROWN;
2479 case 87: return EMOTE_ONESHOT_DROWN;
2480 case 88: return EMOTE_ONESHOT_STOMP;
2481 case 89: return EMOTE_ONESHOT_ATTACK_OFF;
2482 case 90: return EMOTE_ONESHOT_ATTACK_OFF_PIERCE;
2483 case 91: return EMOTE_STATE_ROAR;
2484 case 92: return EMOTE_STATE_LAUGH;
2485 case 93: return EMOTE_ONESHOT_CREATURE_SPECIAL;
2486 case 94: return EMOTE_ONESHOT_JUMPLANDRUN;
2487 case 95: return EMOTE_ONESHOT_JUMPEND;
2488 case 96: return EMOTE_ONESHOT_TALK_NO_SHEATHE;
2489 case 97: return EMOTE_ONESHOT_POINT_NO_SHEATHE;
2490 case 98: return EMOTE_STATE_CANNIBALIZE;
2491 case 99: return EMOTE_ONESHOT_JUMPSTART;
2492 case 100: return EMOTE_STATE_DANCESPECIAL;
2493 case 101: return EMOTE_ONESHOT_DANCESPECIAL;
2494 case 102: return EMOTE_ONESHOT_CUSTOM_SPELL_01;
2495 case 103: return EMOTE_ONESHOT_CUSTOM_SPELL_02;
2496 case 104: return EMOTE_ONESHOT_CUSTOM_SPELL_03;
2497 case 105: return EMOTE_ONESHOT_CUSTOM_SPELL_04;
2498 case 106: return EMOTE_ONESHOT_CUSTOM_SPELL_05;
2499 case 107: return EMOTE_ONESHOT_CUSTOM_SPELL_06;
2500 case 108: return EMOTE_ONESHOT_CUSTOM_SPELL_07;
2501 case 109: return EMOTE_ONESHOT_CUSTOM_SPELL_08;
2502 case 110: return EMOTE_ONESHOT_CUSTOM_SPELL_09;
2503 case 111: return EMOTE_ONESHOT_CUSTOM_SPELL_10;
2504 case 112: return EMOTE_STATE_EXCLAIM;
2505 case 113: return EMOTE_STATE_DANCE_CUSTOM;
2506 case 114: return EMOTE_STATE_SIT_CHAIR_MED;
2507 case 115: return EMOTE_STATE_CUSTOM_SPELL_01;
2508 case 116: return EMOTE_STATE_CUSTOM_SPELL_02;
2509 case 117: return EMOTE_STATE_EAT;
2510 case 118: return EMOTE_STATE_CUSTOM_SPELL_04;
2511 case 119: return EMOTE_STATE_CUSTOM_SPELL_03;
2512 case 120: return EMOTE_STATE_CUSTOM_SPELL_05;
2513 case 121: return EMOTE_STATE_SPELLEFFECT_HOLD;
2514 case 122: return EMOTE_STATE_EAT_NO_SHEATHE;
2515 case 123: return EMOTE_STATE_MOUNT;
2516 case 124: return EMOTE_STATE_READY2HL;
2517 case 125: return EMOTE_STATE_SIT_CHAIR_HIGH;
2518 case 126: return EMOTE_STATE_FALL;
2519 case 127: return EMOTE_STATE_LOOT;
2520 case 128: return EMOTE_STATE_SUBMERGED_NEW;
2521 case 129: return EMOTE_ONESHOT_COWER;
2522 case 130: return EMOTE_STATE_COWER;
2523 case 131: return EMOTE_ONESHOT_USE_STANDING;
2524 case 132: return EMOTE_STATE_STEALTH_STAND;
2525 case 133: return EMOTE_ONESHOT_OMNICAST_GHOUL;
2526 case 134: return EMOTE_ONESHOT_ATTACK_BOW;
2527 case 135: return EMOTE_ONESHOT_ATTACK_RIFLE;
2528 case 136: return EMOTE_STATE_SWIM_IDLE;
2529 case 137: return EMOTE_STATE_ATTACK_UNARMED;
2530 case 138: return EMOTE_ONESHOT_SPELL_CAST_W_SOUND;
2531 case 139: return EMOTE_ONESHOT_DODGE;
2532 case 140: return EMOTE_ONESHOT_PARRY1H;
2533 case 141: return EMOTE_ONESHOT_PARRY2H;
2534 case 142: return EMOTE_ONESHOT_PARRY2HL;
2535 case 143: return EMOTE_STATE_FLYFALL;
2536 case 144: return EMOTE_ONESHOT_FLYDEATH;
2537 case 145: return EMOTE_STATE_FLY_FALL;
2538 case 146: return EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN;
2539 case 147: return EMOTE_ONESHOT_FLY_SIT_GROUND_UP;
2540 case 148: return EMOTE_ONESHOT_EMERGE;
2541 case 149: return EMOTE_ONESHOT_DRAGON_SPIT;
2542 case 150: return EMOTE_STATE_SPECIAL_UNARMED;
2543 case 151: return EMOTE_ONESHOT_FLYGRAB;
2544 case 152: return EMOTE_STATE_FLYGRABCLOSED;
2545 case 153: return EMOTE_ONESHOT_FLYGRABTHROWN;
2546 case 154: return EMOTE_STATE_FLY_SIT_GROUND;
2547 case 155: return EMOTE_STATE_WALK_BACKWARDS;
2548 case 156: return EMOTE_ONESHOT_FLYTALK;
2549 case 157: return EMOTE_ONESHOT_FLYATTACK1H;
2550 case 158: return EMOTE_STATE_CUSTOM_SPELL_08;
2551 case 159: return EMOTE_ONESHOT_FLY_DRAGON_SPIT;
2552 case 160: return EMOTE_STATE_SIT_CHAIR_LOW;
2553 case 161: return EMOTE_ONESHOT_STUN;
2554 case 162: return EMOTE_ONESHOT_SPELL_CAST_OMNI;
2555 case 163: return EMOTE_STATE_READY_THROWN;
2556 case 164: return EMOTE_ONESHOT_WORK_CHOPWOOD;
2557 case 165: return EMOTE_ONESHOT_WORK_MINING;
2558 case 166: return EMOTE_STATE_SPELL_CHANNEL_OMNI;
2559 case 167: return EMOTE_STATE_SPELL_CHANNEL_DIRECTED;
2560 case 168: return EMOTE_STAND_STATE_NONE;
2561 case 169: return EMOTE_STATE_READYJOUST;
2562 case 170: return EMOTE_STATE_STRANGULATE;
2563 case 171: return EMOTE_STATE_READY_SPELL_OMNI;
2564 case 172: return EMOTE_STATE_HOLD_JOUST;
2565 case 173: return EMOTE_ONESHOT_CRY_JAINA;
2566 default: throw std::out_of_range("index");
2567 }
2568}
2569
2570template <>
2572{
2573 switch (value)
2574 {
2575 case EMOTE_ONESHOT_TALK: return 0;
2576 case EMOTE_ONESHOT_BOW: return 1;
2577 case EMOTE_ONESHOT_WAVE: return 2;
2578 case EMOTE_ONESHOT_CHEER: return 3;
2579 case EMOTE_ONESHOT_EXCLAMATION: return 4;
2580 case EMOTE_ONESHOT_QUESTION: return 5;
2581 case EMOTE_ONESHOT_EAT: return 6;
2582 case EMOTE_STATE_DANCE: return 7;
2583 case EMOTE_ONESHOT_LAUGH: return 8;
2584 case EMOTE_STATE_SLEEP: return 9;
2585 case EMOTE_STATE_SIT: return 10;
2586 case EMOTE_ONESHOT_RUDE: return 11;
2587 case EMOTE_ONESHOT_ROAR: return 12;
2588 case EMOTE_ONESHOT_KNEEL: return 13;
2589 case EMOTE_ONESHOT_KISS: return 14;
2590 case EMOTE_ONESHOT_CRY: return 15;
2591 case EMOTE_ONESHOT_CHICKEN: return 16;
2592 case EMOTE_ONESHOT_BEG: return 17;
2593 case EMOTE_ONESHOT_APPLAUD: return 18;
2594 case EMOTE_ONESHOT_SHOUT: return 19;
2595 case EMOTE_ONESHOT_FLEX: return 20;
2596 case EMOTE_ONESHOT_SHY: return 21;
2597 case EMOTE_ONESHOT_POINT: return 22;
2598 case EMOTE_STATE_STAND: return 23;
2599 case EMOTE_STATE_READY_UNARMED: return 24;
2600 case EMOTE_STATE_WORK_SHEATHED: return 25;
2601 case EMOTE_STATE_POINT: return 26;
2602 case EMOTE_STATE_NONE: return 27;
2603 case EMOTE_ONESHOT_WOUND: return 28;
2604 case EMOTE_ONESHOT_WOUND_CRITICAL: return 29;
2605 case EMOTE_ONESHOT_ATTACK_UNARMED: return 30;
2606 case EMOTE_ONESHOT_ATTACK1H: return 31;
2607 case EMOTE_ONESHOT_ATTACK2HTIGHT: return 32;
2608 case EMOTE_ONESHOT_ATTACK2H_LOOSE: return 33;
2609 case EMOTE_ONESHOT_PARRY_UNARMED: return 34;
2610 case EMOTE_ONESHOT_PARRY_SHIELD: return 35;
2611 case EMOTE_ONESHOT_READY_UNARMED: return 36;
2612 case EMOTE_ONESHOT_READY1H: return 37;
2613 case EMOTE_ONESHOT_READY_BOW: return 38;
2614 case EMOTE_ONESHOT_SPELL_PRECAST: return 39;
2615 case EMOTE_ONESHOT_SPELL_CAST: return 40;
2616 case EMOTE_ONESHOT_BATTLE_ROAR: return 41;
2617 case EMOTE_ONESHOT_SPECIALATTACK1H: return 42;
2618 case EMOTE_ONESHOT_KICK: return 43;
2619 case EMOTE_ONESHOT_ATTACK_THROWN: return 44;
2620 case EMOTE_STATE_STUN: return 45;
2621 case EMOTE_STATE_DEAD: return 46;
2622 case EMOTE_ONESHOT_SALUTE: return 47;
2623 case EMOTE_STATE_KNEEL: return 48;
2624 case EMOTE_STATE_USE_STANDING: return 49;
2625 case EMOTE_ONESHOT_WAVE_NO_SHEATHE: return 50;
2626 case EMOTE_ONESHOT_CHEER_NO_SHEATHE: return 51;
2627 case EMOTE_ONESHOT_EAT_NO_SHEATHE: return 52;
2628 case EMOTE_STATE_STUN_NO_SHEATHE: return 53;
2629 case EMOTE_ONESHOT_DANCE: return 54;
2630 case EMOTE_ONESHOT_SALUTE_NO_SHEATH: return 55;
2632 case EMOTE_ONESHOT_LAUGH_NO_SHEATHE: return 57;
2633 case EMOTE_STATE_WORK: return 58;
2634 case EMOTE_STATE_SPELL_PRECAST: return 59;
2635 case EMOTE_ONESHOT_READY_RIFLE: return 60;
2636 case EMOTE_STATE_READY_RIFLE: return 61;
2637 case EMOTE_STATE_WORK_MINING: return 62;
2638 case EMOTE_STATE_WORK_CHOPWOOD: return 63;
2639 case EMOTE_STATE_APPLAUD: return 64;
2640 case EMOTE_ONESHOT_LIFTOFF: return 65;
2641 case EMOTE_ONESHOT_YES: return 66;
2642 case EMOTE_ONESHOT_NO: return 67;
2643 case EMOTE_ONESHOT_TRAIN: return 68;
2644 case EMOTE_ONESHOT_LAND: return 69;
2645 case EMOTE_STATE_AT_EASE: return 70;
2646 case EMOTE_STATE_READY1H: return 71;
2647 case EMOTE_STATE_SPELL_KNEEL_START: return 72;
2648 case EMOTE_STATE_SUBMERGED: return 73;
2649 case EMOTE_ONESHOT_SUBMERGE: return 74;
2650 case EMOTE_STATE_READY2H: return 75;
2651 case EMOTE_STATE_READY_BOW: return 76;
2652 case EMOTE_ONESHOT_MOUNT_SPECIAL: return 77;
2653 case EMOTE_STATE_TALK: return 78;
2654 case EMOTE_STATE_FISHING: return 79;
2655 case EMOTE_ONESHOT_FISHING: return 80;
2656 case EMOTE_ONESHOT_LOOT: return 81;
2657 case EMOTE_STATE_WHIRLWIND: return 82;
2658 case EMOTE_STATE_DROWNED: return 83;
2659 case EMOTE_STATE_HOLD_BOW: return 84;
2660 case EMOTE_STATE_HOLD_RIFLE: return 85;
2661 case EMOTE_STATE_HOLD_THROWN: return 86;
2662 case EMOTE_ONESHOT_DROWN: return 87;
2663 case EMOTE_ONESHOT_STOMP: return 88;
2664 case EMOTE_ONESHOT_ATTACK_OFF: return 89;
2665 case EMOTE_ONESHOT_ATTACK_OFF_PIERCE: return 90;
2666 case EMOTE_STATE_ROAR: return 91;
2667 case EMOTE_STATE_LAUGH: return 92;
2668 case EMOTE_ONESHOT_CREATURE_SPECIAL: return 93;
2669 case EMOTE_ONESHOT_JUMPLANDRUN: return 94;
2670 case EMOTE_ONESHOT_JUMPEND: return 95;
2671 case EMOTE_ONESHOT_TALK_NO_SHEATHE: return 96;
2672 case EMOTE_ONESHOT_POINT_NO_SHEATHE: return 97;
2673 case EMOTE_STATE_CANNIBALIZE: return 98;
2674 case EMOTE_ONESHOT_JUMPSTART: return 99;
2675 case EMOTE_STATE_DANCESPECIAL: return 100;
2676 case EMOTE_ONESHOT_DANCESPECIAL: return 101;
2677 case EMOTE_ONESHOT_CUSTOM_SPELL_01: return 102;
2678 case EMOTE_ONESHOT_CUSTOM_SPELL_02: return 103;
2679 case EMOTE_ONESHOT_CUSTOM_SPELL_03: return 104;
2680 case EMOTE_ONESHOT_CUSTOM_SPELL_04: return 105;
2681 case EMOTE_ONESHOT_CUSTOM_SPELL_05: return 106;
2682 case EMOTE_ONESHOT_CUSTOM_SPELL_06: return 107;
2683 case EMOTE_ONESHOT_CUSTOM_SPELL_07: return 108;
2684 case EMOTE_ONESHOT_CUSTOM_SPELL_08: return 109;
2685 case EMOTE_ONESHOT_CUSTOM_SPELL_09: return 110;
2686 case EMOTE_ONESHOT_CUSTOM_SPELL_10: return 111;
2687 case EMOTE_STATE_EXCLAIM: return 112;
2688 case EMOTE_STATE_DANCE_CUSTOM: return 113;
2689 case EMOTE_STATE_SIT_CHAIR_MED: return 114;
2690 case EMOTE_STATE_CUSTOM_SPELL_01: return 115;
2691 case EMOTE_STATE_CUSTOM_SPELL_02: return 116;
2692 case EMOTE_STATE_EAT: return 117;
2693 case EMOTE_STATE_CUSTOM_SPELL_04: return 118;
2694 case EMOTE_STATE_CUSTOM_SPELL_03: return 119;
2695 case EMOTE_STATE_CUSTOM_SPELL_05: return 120;
2696 case EMOTE_STATE_SPELLEFFECT_HOLD: return 121;
2697 case EMOTE_STATE_EAT_NO_SHEATHE: return 122;
2698 case EMOTE_STATE_MOUNT: return 123;
2699 case EMOTE_STATE_READY2HL: return 124;
2700 case EMOTE_STATE_SIT_CHAIR_HIGH: return 125;
2701 case EMOTE_STATE_FALL: return 126;
2702 case EMOTE_STATE_LOOT: return 127;
2703 case EMOTE_STATE_SUBMERGED_NEW: return 128;
2704 case EMOTE_ONESHOT_COWER: return 129;
2705 case EMOTE_STATE_COWER: return 130;
2706 case EMOTE_ONESHOT_USE_STANDING: return 131;
2707 case EMOTE_STATE_STEALTH_STAND: return 132;
2708 case EMOTE_ONESHOT_OMNICAST_GHOUL: return 133;
2709 case EMOTE_ONESHOT_ATTACK_BOW: return 134;
2710 case EMOTE_ONESHOT_ATTACK_RIFLE: return 135;
2711 case EMOTE_STATE_SWIM_IDLE: return 136;
2712 case EMOTE_STATE_ATTACK_UNARMED: return 137;
2713 case EMOTE_ONESHOT_SPELL_CAST_W_SOUND: return 138;
2714 case EMOTE_ONESHOT_DODGE: return 139;
2715 case EMOTE_ONESHOT_PARRY1H: return 140;
2716 case EMOTE_ONESHOT_PARRY2H: return 141;
2717 case EMOTE_ONESHOT_PARRY2HL: return 142;
2718 case EMOTE_STATE_FLYFALL: return 143;
2719 case EMOTE_ONESHOT_FLYDEATH: return 144;
2720 case EMOTE_STATE_FLY_FALL: return 145;
2721 case EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN: return 146;
2722 case EMOTE_ONESHOT_FLY_SIT_GROUND_UP: return 147;
2723 case EMOTE_ONESHOT_EMERGE: return 148;
2724 case EMOTE_ONESHOT_DRAGON_SPIT: return 149;
2725 case EMOTE_STATE_SPECIAL_UNARMED: return 150;
2726 case EMOTE_ONESHOT_FLYGRAB: return 151;
2727 case EMOTE_STATE_FLYGRABCLOSED: return 152;
2728 case EMOTE_ONESHOT_FLYGRABTHROWN: return 153;
2729 case EMOTE_STATE_FLY_SIT_GROUND: return 154;
2730 case EMOTE_STATE_WALK_BACKWARDS: return 155;
2731 case EMOTE_ONESHOT_FLYTALK: return 156;
2732 case EMOTE_ONESHOT_FLYATTACK1H: return 157;
2733 case EMOTE_STATE_CUSTOM_SPELL_08: return 158;
2734 case EMOTE_ONESHOT_FLY_DRAGON_SPIT: return 159;
2735 case EMOTE_STATE_SIT_CHAIR_LOW: return 160;
2736 case EMOTE_ONESHOT_STUN: return 161;
2737 case EMOTE_ONESHOT_SPELL_CAST_OMNI: return 162;
2738 case EMOTE_STATE_READY_THROWN: return 163;
2739 case EMOTE_ONESHOT_WORK_CHOPWOOD: return 164;
2740 case EMOTE_ONESHOT_WORK_MINING: return 165;
2741 case EMOTE_STATE_SPELL_CHANNEL_OMNI: return 166;
2742 case EMOTE_STATE_SPELL_CHANNEL_DIRECTED: return 167;
2743 case EMOTE_STAND_STATE_NONE: return 168;
2744 case EMOTE_STATE_READYJOUST: return 169;
2745 case EMOTE_STATE_STRANGULATE: return 170;
2746 case EMOTE_STATE_READY_SPELL_OMNI: return 171;
2747 case EMOTE_STATE_HOLD_JOUST: return 172;
2748 case EMOTE_ONESHOT_CRY_JAINA: return 173;
2749 default: throw std::out_of_range("value");
2750 }
2751}
2752
2753/*******************************************************************\
2754|* data for enum 'WeatherType' in 'SharedDefines.h' auto-generated *|
2755\*******************************************************************/
2756template <>
2758{
2759 switch (value)
2760 {
2761 case WEATHER_TYPE_FINE: return { "WEATHER_TYPE_FINE", "WEATHER_TYPE_FINE", "" };
2762 case WEATHER_TYPE_RAIN: return { "WEATHER_TYPE_RAIN", "WEATHER_TYPE_RAIN", "" };
2763 case WEATHER_TYPE_SNOW: return { "WEATHER_TYPE_SNOW", "WEATHER_TYPE_SNOW", "" };
2764 case WEATHER_TYPE_STORM: return { "WEATHER_TYPE_STORM", "WEATHER_TYPE_STORM", "" };
2765 case WEATHER_TYPE_THUNDERS: return { "WEATHER_TYPE_THUNDERS", "WEATHER_TYPE_THUNDERS", "" };
2766 case WEATHER_TYPE_BLACKRAIN: return { "WEATHER_TYPE_BLACKRAIN", "WEATHER_TYPE_BLACKRAIN", "" };
2767 default: throw std::out_of_range("value");
2768 }
2769}
2770
2771template <>
2773
2774template <>
2776{
2777 switch (index)
2778 {
2779 case 0: return WEATHER_TYPE_FINE;
2780 case 1: return WEATHER_TYPE_RAIN;
2781 case 2: return WEATHER_TYPE_SNOW;
2782 case 3: return WEATHER_TYPE_STORM;
2783 case 4: return WEATHER_TYPE_THUNDERS;
2784 case 5: return WEATHER_TYPE_BLACKRAIN;
2785 default: throw std::out_of_range("index");
2786 }
2787}
2788
2789template <>
2791{
2792 switch (value)
2793 {
2794 case WEATHER_TYPE_FINE: return 0;
2795 case WEATHER_TYPE_RAIN: return 1;
2796 case WEATHER_TYPE_SNOW: return 2;
2797 case WEATHER_TYPE_STORM: return 3;
2798 case WEATHER_TYPE_THUNDERS: return 4;
2799 case WEATHER_TYPE_BLACKRAIN: return 5;
2800 default: throw std::out_of_range("value");
2801 }
2802}
2803
2804/***************************************************************\
2805|* data for enum 'ChatMsg' in 'SharedDefines.h' auto-generated *|
2806\***************************************************************/
2807template <>
2809{
2810 switch (value)
2811 {
2812 case CHAT_MSG_ADDON: return { "CHAT_MSG_ADDON", "CHAT_MSG_ADDON", "-1" };
2813 case CHAT_MSG_SYSTEM: return { "CHAT_MSG_SYSTEM", "CHAT_MSG_SYSTEM", "" };
2814 case CHAT_MSG_SAY: return { "CHAT_MSG_SAY", "CHAT_MSG_SAY", "" };
2815 case CHAT_MSG_PARTY: return { "CHAT_MSG_PARTY", "CHAT_MSG_PARTY", "" };
2816 case CHAT_MSG_RAID: return { "CHAT_MSG_RAID", "CHAT_MSG_RAID", "" };
2817 case CHAT_MSG_GUILD: return { "CHAT_MSG_GUILD", "CHAT_MSG_GUILD", "" };
2818 case CHAT_MSG_OFFICER: return { "CHAT_MSG_OFFICER", "CHAT_MSG_OFFICER", "" };
2819 case CHAT_MSG_YELL: return { "CHAT_MSG_YELL", "CHAT_MSG_YELL", "" };
2820 case CHAT_MSG_WHISPER: return { "CHAT_MSG_WHISPER", "CHAT_MSG_WHISPER", "" };
2821 case CHAT_MSG_WHISPER_FOREIGN: return { "CHAT_MSG_WHISPER_FOREIGN", "CHAT_MSG_WHISPER_FOREIGN", "" };
2822 case CHAT_MSG_WHISPER_INFORM: return { "CHAT_MSG_WHISPER_INFORM", "CHAT_MSG_WHISPER_INFORM", "" };
2823 case CHAT_MSG_EMOTE: return { "CHAT_MSG_EMOTE", "CHAT_MSG_EMOTE", "" };
2824 case CHAT_MSG_TEXT_EMOTE: return { "CHAT_MSG_TEXT_EMOTE", "CHAT_MSG_TEXT_EMOTE", "" };
2825 case CHAT_MSG_MONSTER_SAY: return { "CHAT_MSG_MONSTER_SAY", "CHAT_MSG_MONSTER_SAY", "" };
2826 case CHAT_MSG_MONSTER_PARTY: return { "CHAT_MSG_MONSTER_PARTY", "CHAT_MSG_MONSTER_PARTY", "" };
2827 case CHAT_MSG_MONSTER_YELL: return { "CHAT_MSG_MONSTER_YELL", "CHAT_MSG_MONSTER_YELL", "" };
2828 case CHAT_MSG_MONSTER_WHISPER: return { "CHAT_MSG_MONSTER_WHISPER", "CHAT_MSG_MONSTER_WHISPER", "" };
2829 case CHAT_MSG_MONSTER_EMOTE: return { "CHAT_MSG_MONSTER_EMOTE", "CHAT_MSG_MONSTER_EMOTE", "" };
2830 case CHAT_MSG_CHANNEL: return { "CHAT_MSG_CHANNEL", "CHAT_MSG_CHANNEL", "" };
2831 case CHAT_MSG_CHANNEL_JOIN: return { "CHAT_MSG_CHANNEL_JOIN", "CHAT_MSG_CHANNEL_JOIN", "" };
2832 case CHAT_MSG_CHANNEL_LEAVE: return { "CHAT_MSG_CHANNEL_LEAVE", "CHAT_MSG_CHANNEL_LEAVE", "" };
2833 case CHAT_MSG_CHANNEL_LIST: return { "CHAT_MSG_CHANNEL_LIST", "CHAT_MSG_CHANNEL_LIST", "" };
2834 case CHAT_MSG_CHANNEL_NOTICE: return { "CHAT_MSG_CHANNEL_NOTICE", "CHAT_MSG_CHANNEL_NOTICE", "" };
2835 case CHAT_MSG_CHANNEL_NOTICE_USER: return { "CHAT_MSG_CHANNEL_NOTICE_USER", "CHAT_MSG_CHANNEL_NOTICE_USER", "" };
2836 case CHAT_MSG_AFK: return { "CHAT_MSG_AFK", "CHAT_MSG_AFK", "" };
2837 case CHAT_MSG_DND: return { "CHAT_MSG_DND", "CHAT_MSG_DND", "" };
2838 case CHAT_MSG_IGNORED: return { "CHAT_MSG_IGNORED", "CHAT_MSG_IGNORED", "" };
2839 case CHAT_MSG_SKILL: return { "CHAT_MSG_SKILL", "CHAT_MSG_SKILL", "" };
2840 case CHAT_MSG_LOOT: return { "CHAT_MSG_LOOT", "CHAT_MSG_LOOT", "" };
2841 case CHAT_MSG_MONEY: return { "CHAT_MSG_MONEY", "CHAT_MSG_MONEY", "" };
2842 case CHAT_MSG_OPENING: return { "CHAT_MSG_OPENING", "CHAT_MSG_OPENING", "" };
2843 case CHAT_MSG_TRADESKILLS: return { "CHAT_MSG_TRADESKILLS", "CHAT_MSG_TRADESKILLS", "" };
2844 case CHAT_MSG_PET_INFO: return { "CHAT_MSG_PET_INFO", "CHAT_MSG_PET_INFO", "" };
2845 case CHAT_MSG_COMBAT_MISC_INFO: return { "CHAT_MSG_COMBAT_MISC_INFO", "CHAT_MSG_COMBAT_MISC_INFO", "" };
2846 case CHAT_MSG_COMBAT_XP_GAIN: return { "CHAT_MSG_COMBAT_XP_GAIN", "CHAT_MSG_COMBAT_XP_GAIN", "" };
2847 case CHAT_MSG_COMBAT_HONOR_GAIN: return { "CHAT_MSG_COMBAT_HONOR_GAIN", "CHAT_MSG_COMBAT_HONOR_GAIN", "" };
2848 case CHAT_MSG_COMBAT_FACTION_CHANGE: return { "CHAT_MSG_COMBAT_FACTION_CHANGE", "CHAT_MSG_COMBAT_FACTION_CHANGE", "" };
2849 case CHAT_MSG_BG_SYSTEM_NEUTRAL: return { "CHAT_MSG_BG_SYSTEM_NEUTRAL", "CHAT_MSG_BG_SYSTEM_NEUTRAL", "" };
2850 case CHAT_MSG_BG_SYSTEM_ALLIANCE: return { "CHAT_MSG_BG_SYSTEM_ALLIANCE", "CHAT_MSG_BG_SYSTEM_ALLIANCE", "" };
2851 case CHAT_MSG_BG_SYSTEM_HORDE: return { "CHAT_MSG_BG_SYSTEM_HORDE", "CHAT_MSG_BG_SYSTEM_HORDE", "" };
2852 case CHAT_MSG_RAID_LEADER: return { "CHAT_MSG_RAID_LEADER", "CHAT_MSG_RAID_LEADER", "" };
2853 case CHAT_MSG_RAID_WARNING: return { "CHAT_MSG_RAID_WARNING", "CHAT_MSG_RAID_WARNING", "" };
2854 case CHAT_MSG_RAID_BOSS_EMOTE: return { "CHAT_MSG_RAID_BOSS_EMOTE", "CHAT_MSG_RAID_BOSS_EMOTE", "" };
2855 case CHAT_MSG_RAID_BOSS_WHISPER: return { "CHAT_MSG_RAID_BOSS_WHISPER", "CHAT_MSG_RAID_BOSS_WHISPER", "" };
2856 case CHAT_MSG_FILTERED: return { "CHAT_MSG_FILTERED", "CHAT_MSG_FILTERED", "" };
2857 case CHAT_MSG_BATTLEGROUND: return { "CHAT_MSG_BATTLEGROUND", "CHAT_MSG_BATTLEGROUND", "" };
2858 case CHAT_MSG_BATTLEGROUND_LEADER: return { "CHAT_MSG_BATTLEGROUND_LEADER", "CHAT_MSG_BATTLEGROUND_LEADER", "" };
2859 case CHAT_MSG_RESTRICTED: return { "CHAT_MSG_RESTRICTED", "CHAT_MSG_RESTRICTED", "" };
2860 case CHAT_MSG_BATTLENET: return { "CHAT_MSG_BATTLENET", "CHAT_MSG_BATTLENET", "" };
2861 case CHAT_MSG_ACHIEVEMENT: return { "CHAT_MSG_ACHIEVEMENT", "CHAT_MSG_ACHIEVEMENT", "" };
2862 case CHAT_MSG_GUILD_ACHIEVEMENT: return { "CHAT_MSG_GUILD_ACHIEVEMENT", "CHAT_MSG_GUILD_ACHIEVEMENT", "" };
2863 case CHAT_MSG_ARENA_POINTS: return { "CHAT_MSG_ARENA_POINTS", "CHAT_MSG_ARENA_POINTS", "" };
2864 case CHAT_MSG_PARTY_LEADER: return { "CHAT_MSG_PARTY_LEADER", "CHAT_MSG_PARTY_LEADER", "" };
2865 default: throw std::out_of_range("value");
2866 }
2867}
2868
2869template <>
2871
2872template <>
2874{
2875 switch (index)
2876 {
2877 case 0: return CHAT_MSG_ADDON;
2878 case 1: return CHAT_MSG_SYSTEM;
2879 case 2: return CHAT_MSG_SAY;
2880 case 3: return CHAT_MSG_PARTY;
2881 case 4: return CHAT_MSG_RAID;
2882 case 5: return CHAT_MSG_GUILD;
2883 case 6: return CHAT_MSG_OFFICER;
2884 case 7: return CHAT_MSG_YELL;
2885 case 8: return CHAT_MSG_WHISPER;
2886 case 9: return CHAT_MSG_WHISPER_FOREIGN;
2887 case 10: return CHAT_MSG_WHISPER_INFORM;
2888 case 11: return CHAT_MSG_EMOTE;
2889 case 12: return CHAT_MSG_TEXT_EMOTE;
2890 case 13: return CHAT_MSG_MONSTER_SAY;
2891 case 14: return CHAT_MSG_MONSTER_PARTY;
2892 case 15: return CHAT_MSG_MONSTER_YELL;
2893 case 16: return CHAT_MSG_MONSTER_WHISPER;
2894 case 17: return CHAT_MSG_MONSTER_EMOTE;
2895 case 18: return CHAT_MSG_CHANNEL;
2896 case 19: return CHAT_MSG_CHANNEL_JOIN;
2897 case 20: return CHAT_MSG_CHANNEL_LEAVE;
2898 case 21: return CHAT_MSG_CHANNEL_LIST;
2899 case 22: return CHAT_MSG_CHANNEL_NOTICE;
2900 case 23: return CHAT_MSG_CHANNEL_NOTICE_USER;
2901 case 24: return CHAT_MSG_AFK;
2902 case 25: return CHAT_MSG_DND;
2903 case 26: return CHAT_MSG_IGNORED;
2904 case 27: return CHAT_MSG_SKILL;
2905 case 28: return CHAT_MSG_LOOT;
2906 case 29: return CHAT_MSG_MONEY;
2907 case 30: return CHAT_MSG_OPENING;
2908 case 31: return CHAT_MSG_TRADESKILLS;
2909 case 32: return CHAT_MSG_PET_INFO;
2910 case 33: return CHAT_MSG_COMBAT_MISC_INFO;
2911 case 34: return CHAT_MSG_COMBAT_XP_GAIN;
2912 case 35: return CHAT_MSG_COMBAT_HONOR_GAIN;
2913 case 36: return CHAT_MSG_COMBAT_FACTION_CHANGE;
2914 case 37: return CHAT_MSG_BG_SYSTEM_NEUTRAL;
2915 case 38: return CHAT_MSG_BG_SYSTEM_ALLIANCE;
2916 case 39: return CHAT_MSG_BG_SYSTEM_HORDE;
2917 case 40: return CHAT_MSG_RAID_LEADER;
2918 case 41: return CHAT_MSG_RAID_WARNING;
2919 case 42: return CHAT_MSG_RAID_BOSS_EMOTE;
2920 case 43: return CHAT_MSG_RAID_BOSS_WHISPER;
2921 case 44: return CHAT_MSG_FILTERED;
2922 case 45: return CHAT_MSG_BATTLEGROUND;
2923 case 46: return CHAT_MSG_BATTLEGROUND_LEADER;
2924 case 47: return CHAT_MSG_RESTRICTED;
2925 case 48: return CHAT_MSG_BATTLENET;
2926 case 49: return CHAT_MSG_ACHIEVEMENT;
2927 case 50: return CHAT_MSG_GUILD_ACHIEVEMENT;
2928 case 51: return CHAT_MSG_ARENA_POINTS;
2929 case 52: return CHAT_MSG_PARTY_LEADER;
2930 default: throw std::out_of_range("index");
2931 }
2932}
2933
2934template <>
2936{
2937 switch (value)
2938 {
2939 case CHAT_MSG_ADDON: return 0;
2940 case CHAT_MSG_SYSTEM: return 1;
2941 case CHAT_MSG_SAY: return 2;
2942 case CHAT_MSG_PARTY: return 3;
2943 case CHAT_MSG_RAID: return 4;
2944 case CHAT_MSG_GUILD: return 5;
2945 case CHAT_MSG_OFFICER: return 6;
2946 case CHAT_MSG_YELL: return 7;
2947 case CHAT_MSG_WHISPER: return 8;
2948 case CHAT_MSG_WHISPER_FOREIGN: return 9;
2949 case CHAT_MSG_WHISPER_INFORM: return 10;
2950 case CHAT_MSG_EMOTE: return 11;
2951 case CHAT_MSG_TEXT_EMOTE: return 12;
2952 case CHAT_MSG_MONSTER_SAY: return 13;
2953 case CHAT_MSG_MONSTER_PARTY: return 14;
2954 case CHAT_MSG_MONSTER_YELL: return 15;
2955 case CHAT_MSG_MONSTER_WHISPER: return 16;
2956 case CHAT_MSG_MONSTER_EMOTE: return 17;
2957 case CHAT_MSG_CHANNEL: return 18;
2958 case CHAT_MSG_CHANNEL_JOIN: return 19;
2959 case CHAT_MSG_CHANNEL_LEAVE: return 20;
2960 case CHAT_MSG_CHANNEL_LIST: return 21;
2961 case CHAT_MSG_CHANNEL_NOTICE: return 22;
2962 case CHAT_MSG_CHANNEL_NOTICE_USER: return 23;
2963 case CHAT_MSG_AFK: return 24;
2964 case CHAT_MSG_DND: return 25;
2965 case CHAT_MSG_IGNORED: return 26;
2966 case CHAT_MSG_SKILL: return 27;
2967 case CHAT_MSG_LOOT: return 28;
2968 case CHAT_MSG_MONEY: return 29;
2969 case CHAT_MSG_OPENING: return 30;
2970 case CHAT_MSG_TRADESKILLS: return 31;
2971 case CHAT_MSG_PET_INFO: return 32;
2972 case CHAT_MSG_COMBAT_MISC_INFO: return 33;
2973 case CHAT_MSG_COMBAT_XP_GAIN: return 34;
2974 case CHAT_MSG_COMBAT_HONOR_GAIN: return 35;
2975 case CHAT_MSG_COMBAT_FACTION_CHANGE: return 36;
2976 case CHAT_MSG_BG_SYSTEM_NEUTRAL: return 37;
2977 case CHAT_MSG_BG_SYSTEM_ALLIANCE: return 38;
2978 case CHAT_MSG_BG_SYSTEM_HORDE: return 39;
2979 case CHAT_MSG_RAID_LEADER: return 40;
2980 case CHAT_MSG_RAID_WARNING: return 41;
2981 case CHAT_MSG_RAID_BOSS_EMOTE: return 42;
2982 case CHAT_MSG_RAID_BOSS_WHISPER: return 43;
2983 case CHAT_MSG_FILTERED: return 44;
2984 case CHAT_MSG_BATTLEGROUND: return 45;
2985 case CHAT_MSG_BATTLEGROUND_LEADER: return 46;
2986 case CHAT_MSG_RESTRICTED: return 47;
2987 case CHAT_MSG_BATTLENET: return 48;
2988 case CHAT_MSG_ACHIEVEMENT: return 49;
2989 case CHAT_MSG_GUILD_ACHIEVEMENT: return 50;
2990 case CHAT_MSG_ARENA_POINTS: return 51;
2991 case CHAT_MSG_PARTY_LEADER: return 52;
2992 default: throw std::out_of_range("value");
2993 }
2994}
2995
2996/************************************************************************\
2997|* data for enum 'SpellFamilyNames' in 'SharedDefines.h' auto-generated *|
2998\************************************************************************/
2999template <>
3001{
3002 switch (value)
3003 {
3004 case SPELLFAMILY_GENERIC: return { "SPELLFAMILY_GENERIC", "Generic", "" };
3005 case SPELLFAMILY_UNK1: return { "SPELLFAMILY_UNK1", "Unk1 (events, holidays, ...)", "" };
3006 case SPELLFAMILY_MAGE: return { "SPELLFAMILY_MAGE", "Mage", "" };
3007 case SPELLFAMILY_WARRIOR: return { "SPELLFAMILY_WARRIOR", "Warrior", "" };
3008 case SPELLFAMILY_WARLOCK: return { "SPELLFAMILY_WARLOCK", "Warlock", "" };
3009 case SPELLFAMILY_PRIEST: return { "SPELLFAMILY_PRIEST", "Priest", "" };
3010 case SPELLFAMILY_DRUID: return { "SPELLFAMILY_DRUID", "Druid", "" };
3011 case SPELLFAMILY_ROGUE: return { "SPELLFAMILY_ROGUE", "Rogue", "" };
3012 case SPELLFAMILY_HUNTER: return { "SPELLFAMILY_HUNTER", "Hunter", "" };
3013 case SPELLFAMILY_PALADIN: return { "SPELLFAMILY_PALADIN", "Paladin", "" };
3014 case SPELLFAMILY_SHAMAN: return { "SPELLFAMILY_SHAMAN", "Shaman", "" };
3015 case SPELLFAMILY_UNK2: return { "SPELLFAMILY_UNK2", "Unk2 (Silence resistance?)", "" };
3016 case SPELLFAMILY_POTION: return { "SPELLFAMILY_POTION", "Potion", "" };
3017 case SPELLFAMILY_DEATHKNIGHT: return { "SPELLFAMILY_DEATHKNIGHT", "Death Knight", "" };
3018 case SPELLFAMILY_PET: return { "SPELLFAMILY_PET", "Pet", "" };
3019 default: throw std::out_of_range("value");
3020 }
3021}
3022
3023template <>
3025
3026template <>
3028{
3029 switch (index)
3030 {
3031 case 0: return SPELLFAMILY_GENERIC;
3032 case 1: return SPELLFAMILY_UNK1;
3033 case 2: return SPELLFAMILY_MAGE;
3034 case 3: return SPELLFAMILY_WARRIOR;
3035 case 4: return SPELLFAMILY_WARLOCK;
3036 case 5: return SPELLFAMILY_PRIEST;
3037 case 6: return SPELLFAMILY_DRUID;
3038 case 7: return SPELLFAMILY_ROGUE;
3039 case 8: return SPELLFAMILY_HUNTER;
3040 case 9: return SPELLFAMILY_PALADIN;
3041 case 10: return SPELLFAMILY_SHAMAN;
3042 case 11: return SPELLFAMILY_UNK2;
3043 case 12: return SPELLFAMILY_POTION;
3044 case 13: return SPELLFAMILY_DEATHKNIGHT;
3045 case 14: return SPELLFAMILY_PET;
3046 default: throw std::out_of_range("index");
3047 }
3048}
3049
3050template <>
3052{
3053 switch (value)
3054 {
3055 case SPELLFAMILY_GENERIC: return 0;
3056 case SPELLFAMILY_UNK1: return 1;
3057 case SPELLFAMILY_MAGE: return 2;
3058 case SPELLFAMILY_WARRIOR: return 3;
3059 case SPELLFAMILY_WARLOCK: return 4;
3060 case SPELLFAMILY_PRIEST: return 5;
3061 case SPELLFAMILY_DRUID: return 6;
3062 case SPELLFAMILY_ROGUE: return 7;
3063 case SPELLFAMILY_HUNTER: return 8;
3064 case SPELLFAMILY_PALADIN: return 9;
3065 case SPELLFAMILY_SHAMAN: return 10;
3066 case SPELLFAMILY_UNK2: return 11;
3067 case SPELLFAMILY_POTION: return 12;
3068 case SPELLFAMILY_DEATHKNIGHT: return 13;
3069 case SPELLFAMILY_PET: return 14;
3070 default: throw std::out_of_range("value");
3071 }
3072}
3073}
#define TC_API_EXPORT
Definition Define.h:89
SpellSchools
@ SPELL_SCHOOL_SHADOW
@ SPELL_SCHOOL_NORMAL
@ SPELL_SCHOOL_NATURE
@ SPELL_SCHOOL_FROST
@ SPELL_SCHOOL_ARCANE
@ SPELL_SCHOOL_FIRE
@ SPELL_SCHOOL_HOLY
SpellAttr7
@ SPELL_ATTR7_UNK0
@ SPELL_ATTR7_UNK21
@ SPELL_ATTR7_ALLIANCE_ONLY
@ SPELL_ATTR7_UNK14
@ SPELL_ATTR7_CONSOLIDATED_RAID_BUFF
@ SPELL_ATTR7_UNK17
@ SPELL_ATTR7_UNK30
@ SPELL_ATTR7_UNK7
@ SPELL_ATTR7_IS_CHEAT_SPELL
@ SPELL_ATTR7_BYPASS_NO_RESURRECT_AURA
@ SPELL_ATTR7_ZONE_TELEPORT
@ SPELL_ATTR7_CANT_MISS
@ SPELL_ATTR7_UNK26
@ SPELL_ATTR7_CAN_RESTORE_SECONDARY_POWER
@ SPELL_ATTR7_UNK15
@ SPELL_ATTR7_DISPEL_CHARGES
@ SPELL_ATTR7_UNK20
@ SPELL_ATTR7_IGNORE_COLD_WEATHER_FLYING
@ SPELL_ATTR7_UNK13
@ SPELL_ATTR7_UNK4
@ SPELL_ATTR7_CLIENT_INDICATOR
@ SPELL_ATTR7_INTERRUPT_ONLY_NONPLAYER
@ SPELL_ATTR7_CANT_PARRY
@ SPELL_ATTR7_SUMMON_PLAYER_TOTEM
@ SPELL_ATTR7_HAS_CHARGE_EFFECT
@ SPELL_ATTR7_UNK12
@ SPELL_ATTR7_UNK29
@ SPELL_ATTR7_DISABLE_AURA_WHILE_DEAD
@ SPELL_ATTR7_HORDE_ONLY
@ SPELL_ATTR7_IGNORE_DURATION_MODS
@ SPELL_ATTR7_CANT_DODGE
@ SPELL_ATTR7_NO_PUSHBACK_ON_DAMAGE
SpellPreventionType
@ SPELL_PREVENTION_TYPE_SILENCE
@ SPELL_PREVENTION_TYPE_PACIFY
@ SPELL_PREVENTION_TYPE_NONE
SpellAttr5
@ SPELL_ATTR5_UNK23
@ SPELL_ATTR5_USABLE_WHILE_CONFUSED
@ SPELL_ATTR5_NO_REAGENT_WHILE_PREP
@ SPELL_ATTR5_UNK16
@ SPELL_ATTR5_UNK31
@ SPELL_ATTR5_UNK24
@ SPELL_ATTR5_UNK29
@ SPELL_ATTR5_UNK20
@ SPELL_ATTR5_USABLE_WHILE_FEARED
@ SPELL_ATTR5_DONT_TURN_DURING_CAST
@ SPELL_ATTR5_SKIP_CHECKCAST_LOS_CHECK
@ SPELL_ATTR5_UNK21
@ SPELL_ATTR5_UNK15
@ SPELL_ATTR5_START_PERIODIC_AT_APPLY
@ SPELL_ATTR5_ALLOW_TARGET_OF_TARGET_AS_TARGET
@ SPELL_ATTR5_UNK25
@ SPELL_ATTR5_SINGLE_TARGET_SPELL
@ SPELL_ATTR5_NOT_USABLE_WHILE_CHARMED
@ SPELL_ATTR5_REMOVE_ON_ARENA_ENTER
@ SPELL_ATTR5_CANT_TARGET_PLAYER_CONTROLLED
@ SPELL_ATTR5_UNK22
@ SPELL_ATTR5_HASTE_AFFECT_DURATION
@ SPELL_ATTR5_UNK6
@ SPELL_ATTR5_HIDE_DURATION
@ SPELL_ATTR5_DONT_SHOW_AURA_IF_SELF_CAST
@ SPELL_ATTR5_UNK4
@ SPELL_ATTR5_UNK7
@ SPELL_ATTR5_CAN_CHANNEL_WHEN_MOVING
@ SPELL_ATTR5_USABLE_WHILE_STUNNED
@ SPELL_ATTR5_DONT_SHOW_AURA_IF_NOT_SELF_CAST
@ SPELL_ATTR5_UNK30
@ SPELL_ATTR5_UNK12
@ EMOTE_ONESHOT_PARRY2H
@ EMOTE_ONESHOT_CUSTOM_SPELL_06
@ EMOTE_ONESHOT_CHEER_NO_SHEATHE
@ EMOTE_STATE_HOLD_RIFLE
@ EMOTE_ONESHOT_CUSTOM_SPELL_03
@ EMOTE_ONESHOT_PARRY_UNARMED
@ EMOTE_STATE_SPELL_PRECAST
@ EMOTE_STATE_WORK_SHEATHED
@ EMOTE_STATE_EAT
@ EMOTE_ONESHOT_CRY_JAINA
@ EMOTE_ONESHOT_LAUGH_NO_SHEATHE
@ EMOTE_STATE_READY_SPELL_OMNI
@ EMOTE_STATE_READY_RIFLE
@ EMOTE_STATE_SLEEP
@ EMOTE_ONESHOT_PARRY2HL
@ EMOTE_STATE_READY1H
@ EMOTE_ONESHOT_SPECIALATTACK1H
@ EMOTE_ONESHOT_LOOT
@ EMOTE_ONESHOT_ATTACK_THROWN
@ EMOTE_STATE_SIT_CHAIR_LOW
@ EMOTE_ONESHOT_FLY_SIT_GROUND_UP
@ EMOTE_ONESHOT_KNEEL
@ EMOTE_STATE_CUSTOM_SPELL_03
@ EMOTE_STATE_SIT
@ EMOTE_ONESHOT_KICK
@ EMOTE_ONESHOT_WORK_CHOPWOOD
@ EMOTE_ONESHOT_NO
@ EMOTE_ONESHOT_USE_STANDING
@ EMOTE_STATE_FLY_FALL
@ EMOTE_ONESHOT_POINT
@ EMOTE_ONESHOT_JUMPSTART
@ EMOTE_ONESHOT_ATTACK2HTIGHT
@ EMOTE_ONESHOT_WOUND_CRITICAL
@ EMOTE_ONESHOT_POINT_NO_SHEATHE
@ EMOTE_STATE_STAND
@ EMOTE_ONESHOT_SPELL_PRECAST
@ EMOTE_ONESHOT_YES
@ EMOTE_ONESHOT_EXCLAMATION
@ EMOTE_STATE_FISHING
@ EMOTE_STATE_SIT_CHAIR_MED
@ EMOTE_ONESHOT_SPELL_CAST_OMNI
@ EMOTE_STATE_WORK_MINING
@ EMOTE_STAND_STATE_NONE
@ EMOTE_ONESHOT_ATTACK1H
@ EMOTE_ONESHOT_APPLAUD
@ EMOTE_ONESHOT_JUMPEND
@ EMOTE_STATE_STRANGULATE
@ EMOTE_STATE_READYJOUST
@ EMOTE_ONESHOT_LAND
@ EMOTE_STATE_LAUGH
@ EMOTE_STATE_POINT
@ EMOTE_STATE_SPELL_CHANNEL_DIRECTED
@ EMOTE_ONESHOT_CUSTOM_SPELL_01
@ EMOTE_STATE_STEALTH_STAND
@ EMOTE_STATE_WORK_CHOPWOOD
@ EMOTE_ONESHOT_FLYGRABTHROWN
@ EMOTE_STATE_FLY_SIT_GROUND
@ EMOTE_STATE_TALK
@ EMOTE_ONESHOT_PARRY1H
@ EMOTE_ONESHOT_CREATURE_SPECIAL
@ EMOTE_ONESHOT_QUESTION
@ EMOTE_ONESHOT_ATTACK_RIFLE
@ EMOTE_STATE_SPELLEFFECT_HOLD
@ EMOTE_ONESHOT_CUSTOM_SPELL_02
@ EMOTE_ONESHOT_SPELL_CAST_W_SOUND
@ EMOTE_STATE_DANCE_CUSTOM
@ EMOTE_ONESHOT_OMNICAST_GHOUL
@ EMOTE_ONESHOT_COWER
@ EMOTE_STATE_CUSTOM_SPELL_08
@ EMOTE_ONESHOT_SALUTE_NO_SHEATH
@ EMOTE_ONESHOT_STOMP
@ EMOTE_ONESHOT_SHY
@ EMOTE_STATE_SPELL_CHANNEL_OMNI
@ EMOTE_ONESHOT_READY_BOW
@ EMOTE_ONESHOT_DRAGON_SPIT
@ EMOTE_ONESHOT_CUSTOM_SPELL_09
@ EMOTE_ONESHOT_CUSTOM_SPELL_07
@ EMOTE_ONESHOT_FLYTALK
@ EMOTE_ONESHOT_FLYGRAB
@ EMOTE_ONESHOT_DROWN
@ EMOTE_STATE_LOOT
@ EMOTE_ONESHOT_WOUND
@ EMOTE_ONESHOT_BEG
@ EMOTE_ONESHOT_FLYATTACK1H
@ EMOTE_STATE_COWER
@ EMOTE_STATE_CUSTOM_SPELL_04
@ EMOTE_ONESHOT_FLY_SIT_GROUND_DOWN
@ EMOTE_STATE_DANCESPECIAL
@ EMOTE_STATE_HOLD_JOUST
@ EMOTE_ONESHOT_BATTLE_ROAR
@ EMOTE_STATE_DEAD
@ EMOTE_STATE_READY_UNARMED
@ EMOTE_STATE_READY_BOW
@ EMOTE_STATE_APPLAUD
@ EMOTE_ONESHOT_CUSTOM_SPELL_04
@ EMOTE_STATE_SWIM_IDLE
@ EMOTE_ONESHOT_CUSTOM_SPELL_10
@ EMOTE_STATE_AT_EASE
@ EMOTE_ONESHOT_LAUGH
@ EMOTE_STATE_FLYGRABCLOSED
@ EMOTE_STATE_WHIRLWIND
@ EMOTE_ONESHOT_FLEX
@ EMOTE_ONESHOT_CHEER
@ EMOTE_STATE_STUN_NO_SHEATHE
@ EMOTE_ONESHOT_EAT
@ EMOTE_ONESHOT_WORK_MINING
@ EMOTE_ONESHOT_EMERGE
@ EMOTE_STATE_SIT_CHAIR_HIGH
@ EMOTE_ONESHOT_DODGE
@ EMOTE_ONESHOT_ATTACK2H_LOOSE
@ EMOTE_ONESHOT_ATTACK_UNARMED
@ EMOTE_ONESHOT_READY1H
@ EMOTE_ONESHOT_CHICKEN
@ EMOTE_ONESHOT_ROAR
@ EMOTE_ONESHOT_BOW
@ EMOTE_STATE_HOLD_BOW
@ EMOTE_STATE_CUSTOM_SPELL_05
@ EMOTE_ONESHOT_WAVE_NO_SHEATHE
@ EMOTE_ONESHOT_SUBMERGE
@ EMOTE_ONESHOT_CUSTOM_SPELL_05
@ EMOTE_ONESHOT_FLY_DRAGON_SPIT
@ EMOTE_STATE_STUN
@ EMOTE_STATE_READY_THROWN
@ EMOTE_STATE_READY2HL
@ EMOTE_ONESHOT_FLYDEATH
@ EMOTE_ONESHOT_RUDE
@ EMOTE_STATE_SPECIAL_UNARMED
@ EMOTE_ONESHOT_CRY
@ EMOTE_ONESHOT_SALUTE
@ EMOTE_STATE_KNEEL
@ EMOTE_STATE_DANCE
@ EMOTE_ONESHOT_ATTACK_OFF
@ EMOTE_STATE_ROAR
@ EMOTE_STATE_NONE
@ EMOTE_ONESHOT_CUSTOM_SPELL_08
@ EMOTE_STATE_EAT_NO_SHEATHE
@ EMOTE_ONESHOT_DANCE
@ EMOTE_ONESHOT_READY_RIFLE
@ EMOTE_STATE_READY2H
@ EMOTE_STATE_MOUNT
@ EMOTE_ONESHOT_READY_UNARMED
@ EMOTE_ONESHOT_STUN
@ EMOTE_ONESHOT_EAT_NO_SHEATHE
@ EMOTE_ONESHOT_JUMPLANDRUN
@ EMOTE_STATE_HOLD_THROWN
@ EMOTE_STATE_FALL
@ EMOTE_ONESHOT_MOUNT_SPECIAL
@ EMOTE_ONESHOT_TRAIN
@ EMOTE_ONESHOT_PARRY_SHIELD
@ EMOTE_STATE_ATTACK_UNARMED
@ EMOTE_ONESHOT_ATTACK_OFF_PIERCE
@ EMOTE_STATE_EXCLAIM
@ EMOTE_STATE_WORK
@ EMOTE_ONESHOT_LIFTOFF
@ EMOTE_ONESHOT_FISHING
@ EMOTE_STATE_SUBMERGED_NEW
@ EMOTE_ONESHOT_KISS
@ EMOTE_ONESHOT_ATTACK_BOW
@ EMOTE_STATE_WALK_BACKWARDS
@ EMOTE_STATE_FLYFALL
@ EMOTE_STATE_CANNIBALIZE
@ EMOTE_ONESHOT_TALK_NO_SHEATHE
@ EMOTE_ONESHOT_SHOUT
@ EMOTE_ONESHOT_SPELL_CAST
@ EMOTE_ONESHOT_WAVE
@ EMOTE_STATE_DROWNED
@ EMOTE_ONESHOT_DANCESPECIAL
@ EMOTE_STATE_SPELL_KNEEL_START
@ EMOTE_STATE_CUSTOM_SPELL_01
@ EMOTE_STATE_SUBMERGED
@ EMOTE_ONESHOT_TALK
@ EMOTE_STATE_USE_STANDING
@ EMOTE_STATE_USE_STANDING_NO_SHEATHE
@ EMOTE_STATE_CUSTOM_SPELL_02
SpellAttr2
@ SPELL_ATTR2_CANT_TARGET_TAPPED
@ SPELL_ATTR2_AUTOREPEAT_FLAG
@ SPELL_ATTR2_CAN_TARGET_DEAD
@ SPELL_ATTR2_UNK24
@ SPELL_ATTR2_PRESERVE_ENCHANT_IN_ARENA
@ SPELL_ATTR2_REQ_DEAD_PET
@ SPELL_ATTR2_CANT_CRIT
@ SPELL_ATTR2_UNK14
@ SPELL_ATTR2_UNK22
@ SPELL_ATTR2_CAN_TARGET_NOT_IN_LOS
@ SPELL_ATTR2_UNK9
@ SPELL_ATTR2_NOT_RESET_AUTO_ACTIONS
@ SPELL_ATTR2_UNK8
@ SPELL_ATTR2_UNK1
@ SPELL_ATTR2_FOOD_BUFF
@ SPELL_ATTR2_UNK12
@ SPELL_ATTR2_NOT_NEED_SHAPESHIFT
@ SPELL_ATTR2_UNK28
@ SPELL_ATTR2_HEALTH_FUNNEL
@ SPELL_ATTR2_UNK10
@ SPELL_ATTR2_UNAFFECTED_BY_AURA_SCHOOL_IMMUNE
@ SPELL_ATTR2_ACTIVE_THREAT
@ SPELL_ATTR2_ALLOW_LOW_LEVEL_BUFF
@ SPELL_ATTR2_IS_ARCANE_CONCENTRATION
@ SPELL_ATTR2_UNK25
@ SPELL_ATTR2_DISPLAY_IN_STANCE_BAR
@ SPELL_ATTR2_UNK7
@ SPELL_ATTR2_UNK15
@ SPELL_ATTR2_UNK20
@ SPELL_ATTR2_FAIL_ON_ALL_TARGETS_IMMUNE
@ SPELL_ATTR2_UNK27
@ SPELL_ATTR2_TAME_BEAST
SpellAttr1
@ SPELL_ATTR1_PREVENTS_ANIM
@ SPELL_ATTR1_NO_THREAT
@ SPELL_ATTR1_DISPEL_AURAS_ON_IMMUNITY
@ SPELL_ATTR1_UNAFFECTED_BY_SCHOOL_IMMUNE
@ SPELL_ATTR1_FARSIGHT
@ SPELL_ATTR1_REQUIRE_ALL_TARGETS
@ SPELL_ATTR1_CANT_BE_REDIRECTED
@ SPELL_ATTR1_UNK23
@ SPELL_ATTR1_DRAIN_ALL_POWER
@ SPELL_ATTR1_CANT_BE_REFLECTED
@ SPELL_ATTR1_NOT_BREAK_STEALTH
@ SPELL_ATTR1_UNAUTOCASTABLE_BY_PET
@ SPELL_ATTR1_DONT_REFRESH_DURATION_ON_RECAST
@ SPELL_ATTR1_UNK4
@ SPELL_ATTR1_CHANNEL_TRACK_TARGET
@ SPELL_ATTR1_DONT_DISPLAY_IN_AURA_BAR
@ SPELL_ATTR1_CHANNELED_1
@ SPELL_ATTR1_CHANNEL_DISPLAY_SPELL_NAME
@ SPELL_ATTR1_DISMISS_PET
@ SPELL_ATTR1_MELEE_COMBAT_START
@ SPELL_ATTR1_CHANNELED_2
@ SPELL_ATTR1_IS_FISHING
@ SPELL_ATTR1_REQ_COMBO_POINTS2
@ SPELL_ATTR1_UNK21
@ SPELL_ATTR1_UNK31
@ SPELL_ATTR1_ENABLE_AT_DODGE
@ SPELL_ATTR1_UNK27
@ SPELL_ATTR1_UNK25
@ SPELL_ATTR1_IS_PICKPOCKET
@ SPELL_ATTR1_REQ_COMBO_POINTS1
@ SPELL_ATTR1_CANT_TARGET_SELF
@ SPELL_ATTR1_CANT_TARGET_IN_COMBAT
SpellAttr3
@ SPELL_ATTR3_TREAT_AS_PERIODIC
@ SPELL_ATTR3_UNK5
@ SPELL_ATTR3_NOT_A_PROC
@ SPELL_ATTR3_STACK_FOR_DIFF_CASTERS
@ SPELL_ATTR3_UNK6
@ SPELL_ATTR3_DEATH_PERSISTENT
@ SPELL_ATTR3_UNK31
@ SPELL_ATTR3_UNK0
@ SPELL_ATTR3_DONT_DISPLAY_CHANNEL_BAR
@ SPELL_ATTR3_NO_DONE_BONUS
@ SPELL_ATTR3_MAIN_HAND
@ SPELL_ATTR3_ONLY_TARGET_PLAYERS
@ SPELL_ATTR3_DRAIN_SOUL
@ SPELL_ATTR3_ONLY_TARGET_GHOSTS
@ SPELL_ATTR3_NO_INITIAL_AGGRO
@ SPELL_ATTR3_IGNORE_RESURRECTION_TIMER
@ SPELL_ATTR3_IS_HONORLESS_TARGET
@ SPELL_ATTR3_BATTLEGROUND
@ SPELL_ATTR3_UNK21
@ SPELL_ATTR3_CAN_PROC_FROM_PROCS
@ SPELL_ATTR3_DISABLE_PROC
@ SPELL_ATTR3_UNK28
@ SPELL_ATTR3_CANT_TRIGGER_PROC
@ SPELL_ATTR3_UNK15
@ SPELL_ATTR3_REQ_OFFHAND
@ SPELL_ATTR3_DONT_DISPLAY_RANGE
@ SPELL_ATTR3_IGNORE_PROC_SUBCLASS_MASK
@ SPELL_ATTR3_UNK2
@ SPELL_ATTR3_IGNORE_HIT_RESULT
@ SPELL_ATTR3_UNK23
@ SPELL_ATTR3_COMPLETELY_BLOCKED
@ SPELL_ATTR3_REQ_WAND
SpellDmgClass
@ SPELL_DAMAGE_CLASS_RANGED
@ SPELL_DAMAGE_CLASS_MAGIC
@ SPELL_DAMAGE_CLASS_NONE
@ SPELL_DAMAGE_CLASS_MELEE
Classes
@ CLASS_HUNTER
@ CLASS_DRUID
@ CLASS_SHAMAN
@ CLASS_PRIEST
@ CLASS_WARRIOR
@ CLASS_WARLOCK
@ CLASS_MAGE
@ CLASS_DEATH_KNIGHT
@ CLASS_PALADIN
@ CLASS_ROGUE
Mechanics
@ MECHANIC_SLOW_ATTACK
@ MECHANIC_DISARM
@ MECHANIC_NONE
@ MECHANIC_ENRAGED
@ MECHANIC_MOUNT
@ MECHANIC_FEAR
@ MECHANIC_INVULNERABILITY
@ MECHANIC_DISORIENTED
@ MECHANIC_KNOCKOUT
@ MECHANIC_CHARM
@ MECHANIC_TURN
@ MECHANIC_STUN
@ MECHANIC_FREEZE
@ MECHANIC_INTERRUPT
@ MECHANIC_ROOT
@ MECHANIC_BANDAGE
@ MECHANIC_GRIP
@ MECHANIC_SLEEP
@ MECHANIC_BLEED
@ MECHANIC_POLYMORPH
@ MECHANIC_BANISH
@ MECHANIC_DAZE
@ MECHANIC_IMMUNE_SHIELD
@ MECHANIC_SNARE
@ MECHANIC_SILENCE
@ MECHANIC_SHACKLE
@ MECHANIC_SAPPED
@ MECHANIC_DISTRACT
@ MECHANIC_DISCOVERY
@ MECHANIC_SHIELD
@ MECHANIC_HORROR
@ MECHANIC_INFECTED
SpellFamilyNames
@ SPELLFAMILY_PRIEST
@ SPELLFAMILY_WARLOCK
@ SPELLFAMILY_MAGE
@ SPELLFAMILY_GENERIC
@ SPELLFAMILY_UNK2
@ SPELLFAMILY_WARRIOR
@ SPELLFAMILY_PALADIN
@ SPELLFAMILY_HUNTER
@ SPELLFAMILY_POTION
@ SPELLFAMILY_ROGUE
@ SPELLFAMILY_SHAMAN
@ SPELLFAMILY_DRUID
@ SPELLFAMILY_PET
@ SPELLFAMILY_DEATHKNIGHT
@ SPELLFAMILY_UNK1
Powers
@ POWER_RAGE
@ POWER_HEALTH
@ POWER_RUNIC_POWER
@ POWER_HAPPINESS
@ POWER_ENERGY
@ POWER_MANA
@ POWER_RUNE
@ POWER_FOCUS
SpellAttr0
@ SPELL_ATTR0_IMPOSSIBLE_DODGE_PARRY_BLOCK
@ SPELL_ATTR0_ON_NEXT_SWING
@ SPELL_ATTR0_CASTABLE_WHILE_SITTING
@ SPELL_ATTR0_STOP_ATTACK_TARGET
@ SPELL_ATTR0_UNAFFECTED_BY_INVULNERABILITY
@ SPELL_ATTR0_DISABLED_WHILE_ACTIVE
@ SPELL_ATTR0_NEGATIVE_1
@ SPELL_ATTR0_PASSIVE
@ SPELL_ATTR0_CAST_TRACK_TARGET
@ SPELL_ATTR0_UNK11
@ SPELL_ATTR0_CASTABLE_WHILE_DEAD
@ SPELL_ATTR0_CANT_CANCEL
@ SPELL_ATTR0_TRADESPELL
@ SPELL_ATTR0_DONT_AFFECT_SHEATH_STATE
@ SPELL_ATTR0_HIDDEN_CLIENTSIDE
@ SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION
@ SPELL_ATTR0_HIDE_IN_COMBAT_LOG
@ SPELL_ATTR0_TARGET_MAINHAND_ITEM
@ SPELL_ATTR0_ABILITY
@ SPELL_ATTR0_REQ_AMMO
@ SPELL_ATTR0_HEARTBEAT_RESIST_CHECK
@ SPELL_ATTR0_OUTDOORS_ONLY
@ SPELL_ATTR0_ON_NEXT_SWING_2
@ SPELL_ATTR0_DAYTIME_ONLY
@ SPELL_ATTR0_ONLY_STEALTHED
@ SPELL_ATTR0_IS_REPLENISHMENT
@ SPELL_ATTR0_INDOORS_ONLY
@ SPELL_ATTR0_NOT_SHAPESHIFT
@ SPELL_ATTR0_NIGHT_ONLY
@ SPELL_ATTR0_UNK0
@ SPELL_ATTR0_CASTABLE_WHILE_MOUNTED
@ SPELL_ATTR0_CANT_USED_IN_COMBAT
ChatMsg
@ CHAT_MSG_RAID_WARNING
@ CHAT_MSG_IGNORED
@ CHAT_MSG_RAID
@ CHAT_MSG_MONSTER_WHISPER
@ CHAT_MSG_TRADESKILLS
@ CHAT_MSG_TEXT_EMOTE
@ CHAT_MSG_SAY
@ CHAT_MSG_RAID_BOSS_WHISPER
@ CHAT_MSG_COMBAT_XP_GAIN
@ CHAT_MSG_WHISPER_FOREIGN
@ CHAT_MSG_GUILD_ACHIEVEMENT
@ CHAT_MSG_BG_SYSTEM_ALLIANCE
@ CHAT_MSG_PARTY_LEADER
@ CHAT_MSG_RAID_LEADER
@ CHAT_MSG_DND
@ CHAT_MSG_CHANNEL_LEAVE
@ CHAT_MSG_CHANNEL_NOTICE
@ CHAT_MSG_WHISPER_INFORM
@ CHAT_MSG_YELL
@ CHAT_MSG_PET_INFO
@ CHAT_MSG_ARENA_POINTS
@ CHAT_MSG_PARTY
@ CHAT_MSG_WHISPER
@ CHAT_MSG_EMOTE
@ CHAT_MSG_OPENING
@ CHAT_MSG_GUILD
@ CHAT_MSG_MONSTER_PARTY
@ CHAT_MSG_SYSTEM
@ CHAT_MSG_FILTERED
@ CHAT_MSG_CHANNEL_LIST
@ CHAT_MSG_OFFICER
@ CHAT_MSG_ACHIEVEMENT
@ CHAT_MSG_RAID_BOSS_EMOTE
@ CHAT_MSG_RESTRICTED
@ CHAT_MSG_BATTLENET
@ CHAT_MSG_MONSTER_EMOTE
@ CHAT_MSG_CHANNEL_JOIN
@ CHAT_MSG_COMBAT_HONOR_GAIN
@ CHAT_MSG_AFK
@ CHAT_MSG_ADDON
@ CHAT_MSG_BATTLEGROUND
@ CHAT_MSG_BATTLEGROUND_LEADER
@ CHAT_MSG_MONSTER_SAY
@ CHAT_MSG_MONSTER_YELL
@ CHAT_MSG_BG_SYSTEM_HORDE
@ CHAT_MSG_COMBAT_FACTION_CHANGE
@ CHAT_MSG_SKILL
@ CHAT_MSG_CHANNEL_NOTICE_USER
@ CHAT_MSG_LOOT
@ CHAT_MSG_MONEY
@ CHAT_MSG_BG_SYSTEM_NEUTRAL
@ CHAT_MSG_CHANNEL
@ CHAT_MSG_COMBAT_MISC_INFO
WeatherType
@ WEATHER_TYPE_RAIN
@ WEATHER_TYPE_STORM
@ WEATHER_TYPE_FINE
@ WEATHER_TYPE_SNOW
@ WEATHER_TYPE_THUNDERS
@ WEATHER_TYPE_BLACKRAIN
Races
@ RACE_TROLL
@ RACE_UNDEAD_PLAYER
@ RACE_ORC
@ RACE_DRAENEI
@ RACE_NIGHTELF
@ RACE_BLOODELF
@ RACE_DWARF
@ RACE_GNOME
@ RACE_HUMAN
@ RACE_TAUREN
AuraStateType
@ AURA_STATE_DEFENSE
@ AURA_STATE_NONE
@ AURA_STATE_FROZEN
@ AURA_STATE_BERSERKING
@ AURA_STATE_UNKNOWN19
@ AURA_STATE_DEADLY_POISON
@ AURA_STATE_BLEEDING
@ AURA_STATE_FAERIE_FIRE
@ AURA_STATE_ENRAGE
@ AURA_STATE_WARRIOR_VICTORY_RUSH
@ AURA_STATE_UNKNOWN22
@ AURA_STATE_JUDGEMENT
@ AURA_STATE_HEALTHLESS_35_PERCENT
@ AURA_STATE_SWIFTMEND
@ AURA_STATE_HEALTH_ABOVE_75_PERCENT
@ AURA_STATE_HEALTHLESS_20_PERCENT
@ AURA_STATE_CONFLAGRATE
@ AURA_STATE_HUNTER_PARRY
SpellCastResult
@ SPELL_FAILED_TARGET_NOT_LOOTED
@ SPELL_FAILED_HUNGER_SATIATED
@ SPELL_FAILED_UNIT_NOT_INFRONT
@ SPELL_FAILED_TRANSFORM_UNUSABLE
@ SPELL_FAILED_NEED_EXOTIC_AMMO
@ SPELL_FAILED_NOT_INFRONT
@ SPELL_FAILED_MOVING
@ SPELL_FAILED_LEVEL_REQUIREMENT
@ SPELL_FAILED_STUNNED
@ SPELL_FAILED_ALREADY_BEING_TAMED
@ SPELL_FAILED_FISHING_TOO_LOW
@ SPELL_FAILED_CANT_BE_MILLED
@ SPELL_FAILED_NOT_MOUNTED
@ SPELL_FAILED_NOT_ON_STEALTHED
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND
@ SPELL_FAILED_AFFECTING_COMBAT
@ SPELL_FAILED_CASTER_AURASTATE
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS
@ SPELL_FAILED_TOO_CLOSE
@ SPELL_FAILED_ITEM_AT_MAX_CHARGES
@ SPELL_FAILED_TARGET_NOT_PLAYER
@ SPELL_FAILED_MIN_SKILL
@ SPELL_FAILED_NOTHING_TO_DISPEL
@ SPELL_FAILED_INTERRUPTED_COMBAT
@ SPELL_FAILED_NO_POWER
@ SPELL_FAILED_NOT_KNOWN
@ SPELL_FAILED_NOT_UNSHEATHED
@ SPELL_FAILED_FOOD_LOWLEVEL
@ SPELL_FAILED_NO_CHAMPION
@ SPELL_FAILED_NOT_HERE
@ SPELL_FAILED_NO_FISH
@ SPELL_FAILED_NOT_STANDING
@ SPELL_FAILED_ROOTED
@ SPELL_FAILED_TARGET_NOT_DEAD
@ SPELL_FAILED_CHEST_IN_USE
@ SPELL_FAILED_TARGET_IN_COMBAT
@ SPELL_FAILED_WRONG_PET_FOOD
@ SPELL_FAILED_CUSTOM_ERROR
@ SPELL_FAILED_SUMMON_PENDING
@ SPELL_FAILED_ONLY_DAYTIME
@ SPELL_FAILED_NOT_FLYING
@ SPELL_FAILED_TARGET_FREEFORALL
@ SPELL_FAILED_UNKNOWN
@ SPELL_FAILED_DAMAGE_IMMUNE
@ SPELL_FAILED_BAD_IMPLICIT_TARGETS
@ SPELL_FAILED_TARGET_IS_TRIVIAL
@ SPELL_FAILED_TRY_AGAIN
@ SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED
@ SPELL_FAILED_NO_COMBO_POINTS
@ SPELL_FAILED_ALREADY_HAVE_SUMMON
@ SPELL_FAILED_ALREADY_AT_FULL_POWER
@ SPELL_FAILED_NOT_TRADEABLE
@ SPELL_FAILED_ALREADY_OPEN
@ SPELL_FAILED_ITEM_NOT_READY
@ SPELL_FAILED_WRONG_WEATHER
@ SPELL_FAILED_TOO_SHALLOW
@ SPELL_FAILED_NOT_TRADING
@ SPELL_FAILED_NO_CHARGES_REMAIN
@ SPELL_FAILED_ITEM_GONE
@ SPELL_FAILED_TARGET_NO_POCKETS
@ SPELL_FAILED_NOTHING_TO_STEAL
@ SPELL_FAILED_NEED_AMMO
@ SPELL_FAILED_NO_AMMO
@ SPELL_FAILED_INCORRECT_AREA
@ SPELL_FAILED_PLAY_TIME
@ SPELL_FAILED_NO_MOUNTS_ALLOWED
@ SPELL_FAILED_ITEM_NOT_FOUND
@ SPELL_FAILED_GLYPH_SOCKET_LOCKED
@ SPELL_FAILED_TARGET_IS_PLAYER
@ SPELL_FAILED_OUT_OF_RANGE
@ SPELL_FAILED_NOT_IN_BATTLEGROUND
@ SPELL_FAILED_NOT_IN_BARBERSHOP
@ SPELL_FAILED_NOT_ON_SHAPESHIFT
@ SPELL_FAILED_NOT_FISHABLE
@ SPELL_FAILED_IMMUNE
@ SPELL_FAILED_EQUIPPED_ITEM
@ SPELL_FAILED_TARGET_DUELING
@ SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED
@ SPELL_FAILED_NOT_BEHIND
@ SPELL_FAILED_ALREADY_AT_FULL_HEALTH
@ SPELL_FAILED_PREVENTED_BY_MECHANIC
@ SPELL_FAILED_SPELL_LEARNED
@ SPELL_FAILED_NOT_ON_GROUND
@ SPELL_FAILED_ALREADY_HAVE_CHARM
@ SPELL_FAILED_TARGET_NOT_IN_INSTANCE
@ SPELL_FAILED_TARGET_ENEMY
@ SPELL_FAILED_HIGHLEVEL
@ SPELL_FAILED_DONT_REPORT
@ SPELL_FAILED_THIRST_SATIATED
@ SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE
@ SPELL_FAILED_CANT_CAST_ON_TAPPED
@ SPELL_FAILED_ON_USE_ENCHANT
@ SPELL_FAILED_PET_CAN_RENAME
@ SPELL_FAILED_NOT_WHILE_LOOTING
@ SPELL_FAILED_TARGET_AURASTATE
@ SPELL_FAILED_TOTEMS
@ SPELL_FAILED_NOT_IN_RAID_INSTANCE
@ SPELL_FAILED_ERROR
@ SPELL_FAILED_TARGET_NOT_IN_RAID
@ SPELL_FAILED_SUCCESS
@ SPELL_FAILED_LOWLEVEL
@ SPELL_FAILED_NOT_READY
@ SPELL_FAILED_ONLY_BATTLEGROUNDS
@ SPELL_FAILED_NO_ENDURANCE
@ SPELL_FAILED_NOT_IN_ARENA
@ SPELL_FAILED_NEED_AMMO_POUCH
@ SPELL_FAILED_ITEM_ALREADY_ENCHANTED
@ SPELL_FAILED_ONLY_IN_ARENA
@ SPELL_FAILED_ONLY_STEALTHED
@ SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL
@ SPELL_FAILED_BM_OR_INVISGOD
@ SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ SPELL_FAILED_ONLY_SHAPESHIFT
@ SPELL_FAILED_NOT_WHILE_FATIGUED
@ SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED
@ SPELL_FAILED_REAGENTS
@ SPELL_FAILED_ONLY_ABOVEWATER
@ SPELL_FAILED_TARGETS_DEAD
@ SPELL_FAILED_AURA_BOUNCED
@ SPELL_FAILED_UNIT_NOT_BEHIND
@ SPELL_FAILED_CANT_BE_CHARMED
@ SPELL_FAILED_MAX_SOCKETS
@ SPELL_FAILED_TARGET_NOT_GHOST
@ SPELL_FAILED_CASTER_DEAD
@ SPELL_FAILED_NOT_ON_MOUNTED
@ SPELL_FAILED_NO_DUELING
@ SPELL_FAILED_ONLY_UNDERWATER
@ SPELL_FAILED_BAD_TARGETS
@ SPELL_FAILED_CANT_BE_DISENCHANTED
@ SPELL_FAILED_TARGET_ENRAGED
@ SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW
@ SPELL_FAILED_ONLY_NIGHTTIME
@ SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED
@ SPELL_FAILED_TOO_MANY_OF_ITEM
@ SPELL_FAILED_FIZZLE
@ SPELL_FAILED_CONFUSED
@ SPELL_FAILED_REPUTATION
@ SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT
@ SPELL_FAILED_TARGET_UNSKINNABLE
@ SPELL_FAILED_SILENCED
@ SPELL_FAILED_NOT_SHAPESHIFT
@ SPELL_FAILED_AUTOTRACK_INTERRUPTED
@ SPELL_FAILED_NOT_WHILE_TRADING
@ SPELL_FAILED_NO_PLAYTIME
@ SPELL_FAILED_UNIQUE_GLYPH
@ SPELL_FAILED_POSSESSED
@ SPELL_FAILED_NEED_MORE_ITEMS
@ SPELL_FAILED_TARGET_NO_WEAPONS
@ SPELL_FAILED_ONLY_OUTDOORS
@ SPELL_CAST_OK
@ SPELL_FAILED_NO_VALID_TARGETS
@ SPELL_FAILED_CHARMED
@ SPELL_FAILED_INVALID_GLYPH
@ SPELL_FAILED_PARTIAL_PLAYTIME
@ SPELL_FAILED_LOW_CASTLEVEL
@ SPELL_FAILED_TARGET_NO_RANGED_WEAPONS
@ SPELL_FAILED_CANT_BE_PROSPECTED
@ SPELL_FAILED_ONLY_MOUNTED
@ SPELL_FAILED_NOT_ON_TRANSPORT
@ SPELL_FAILED_LINE_OF_SIGHT
@ SPELL_FAILED_NOT_IN_CONTROL
@ SPELL_FAILED_FLEEING
@ SPELL_FAILED_PACIFIED
@ SPELL_FAILED_CANT_STEALTH
@ SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND
@ SPELL_FAILED_SPELL_IN_PROGRESS
@ SPELL_FAILED_NO_PET
@ SPELL_FAILED_MAINHAND_EMPTY
@ SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE
@ SPELL_FAILED_EXPERT_RIDING_REQUIREMENT
@ SPELL_FAILED_ALREADY_AT_FULL_MANA
@ SPELL_FAILED_REQUIRES_SPELL_FOCUS
@ SPELL_FAILED_NOPATH
@ SPELL_FAILED_TOTEM_CATEGORY
@ SPELL_FAILED_NOT_IDLE
@ SPELL_FAILED_SPELL_UNAVAILABLE
@ SPELL_FAILED_REQUIRES_AREA
@ SPELL_FAILED_TARGET_NOT_IN_SANCTUARY
@ SPELL_FAILED_NOT_INACTIVE
@ SPELL_FAILED_NOT_WHILE_GHOST
@ SPELL_FAILED_TOO_MANY_SOCKETS
@ SPELL_FAILED_NO_EDIBLE_CORPSES
@ SPELL_FAILED_INTERRUPTED
@ SPELL_FAILED_TARGET_NOT_IN_PARTY
@ SPELL_FAILED_TARGET_AFFECTING_COMBAT
@ SPELL_FAILED_ONLY_INDOORS
@ SPELL_FAILED_NOT_ON_TAXI
@ SPELL_FAILED_TARGET_FRIENDLY
SpellAttr4
@ SPELL_ATTR4_CAN_CAST_WHILE_CASTING
@ SPELL_ATTR4_FORCE_DISPLAY_CASTBAR
@ SPELL_ATTR4_DONT_REMOVE_IN_ARENA
@ SPELL_ATTR4_UNK11
@ SPELL_ATTR4_UNK31
@ SPELL_ATTR4_IGNORE_RESISTANCES
@ SPELL_ATTR4_TRIGGER_ACTIVATE
@ SPELL_ATTR4_UNK24
@ SPELL_ATTR4_FADES_WHILE_LOGGED_OUT
@ SPELL_ATTR4_AREA_TARGET_CHAIN
@ SPELL_ATTR4_SPELL_VS_EXTEND_COST
@ SPELL_ATTR4_USABLE_IN_ARENA
@ SPELL_ATTR4_IS_PET_SCALING
@ SPELL_ATTR4_UNK5
@ SPELL_ATTR4_UNK4
@ SPELL_ATTR4_FIXED_DAMAGE
@ SPELL_ATTR4_NOT_CHECK_SELFCAST_POWER
@ SPELL_ATTR4_PROC_ONLY_ON_CASTER
@ SPELL_ATTR4_UNK13
@ SPELL_ATTR4_UNK19
@ SPELL_ATTR4_UNK15
@ SPELL_ATTR4_NOT_USABLE_IN_ARENA
@ SPELL_ATTR4_UNK3
@ SPELL_ATTR4_UNK12
@ SPELL_ATTR4_UNK30
@ SPELL_ATTR4_UNK29
@ SPELL_ATTR4_DAMAGE_DOESNT_BREAK_AURAS
@ SPELL_ATTR4_UNK22
@ SPELL_ATTR4_CANT_TRIGGER_ITEM_SPELLS
@ SPELL_ATTR4_CAST_ONLY_IN_OUTLAND
@ SPELL_ATTR4_UNK28
@ SPELL_ATTR4_NOT_STEALABLE
SpellAttr6
@ SPELL_ATTR6_ONLY_VISIBLE_TO_CASTER
@ SPELL_ATTR6_CAN_TARGET_INVISIBLE
@ SPELL_ATTR6_UNK4
@ SPELL_ATTR6_UNK30
@ SPELL_ATTR6_DONT_DISPLAY_COOLDOWN
@ SPELL_ATTR6_CAN_TARGET_POSSESSED_FRIENDS
@ SPELL_ATTR6_UNK19
@ SPELL_ATTR6_NOT_IN_RAID_INSTANCE
@ SPELL_ATTR6_UNK14
@ SPELL_ATTR6_CANT_TARGET_CROWD_CONTROLLED
@ SPELL_ATTR6_LIMIT_PCT_DAMAGE_MODS
@ SPELL_ATTR6_UNK16
@ SPELL_ATTR6_ASSIST_IGNORE_IMMUNE_FLAG
@ SPELL_ATTR6_UNK7
@ SPELL_ATTR6_CAN_TARGET_UNTARGETABLE
@ SPELL_ATTR6_NOT_RESET_SWING_IF_INSTANT
@ SPELL_ATTR6_LIMIT_PCT_HEALING_MODS
@ SPELL_ATTR6_IGNORE_CASTER_AURAS
@ SPELL_ATTR6_CLIENT_UI_TARGET_EFFECTS
@ SPELL_ATTR6_UNK9
@ SPELL_ATTR6_CAST_BY_CHARMER
@ SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE
@ SPELL_ATTR6_UNK15
@ SPELL_ATTR6_ONLY_IN_ARENA
@ SPELL_ATTR6_UNK23
@ SPELL_ATTR6_UNK28
@ SPELL_ATTR6_USE_SPELL_CAST_EVENT
@ SPELL_ATTR6_UNK17
@ SPELL_ATTR6_UNK26
@ SPELL_ATTR6_IGNORE_CATEGORY_COOLDOWN_MODS
@ SPELL_ATTR6_UNK22
@ SPELL_ATTR6_DONT_CONSUME_PROC_CHARGES
static size_t ToIndex(Enum index)
static EnumText ToString(Enum value)
static Enum FromIndex(size_t index)