diff --git a/data/sql/updates/pending_db_world/rev_1636091637254613269.sql b/data/sql/updates/pending_db_world/rev_1636091637254613269.sql new file mode 100644 index 000000000..bdd722921 --- /dev/null +++ b/data/sql/updates/pending_db_world/rev_1636091637254613269.sql @@ -0,0 +1,4 @@ +INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1636091637254613269'); + +INSERT INTO `command` (`name`, `security`, `help`) VALUES +('debug play music', 3, 'Syntax: .debug play music \nPlay music with .\nMusic will be played only for you. Other players will not hear this.'); diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 94babb7ca..6b2c480ec 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -56,7 +56,8 @@ public: { { "cinematic", HandleDebugPlayCinematicCommand, SEC_ADMINISTRATOR, Console::No }, { "movie", HandleDebugPlayMovieCommand, SEC_ADMINISTRATOR, Console::No }, - { "sound", HandleDebugPlaySoundCommand, SEC_ADMINISTRATOR, Console::No } + { "sound", HandleDebugPlaySoundCommand, SEC_ADMINISTRATOR, Console::No }, + { "music", HandleDebugPlayMusicCommand, SEC_ADMINISTRATOR, Console::No } }; static ChatCommandTable debugSendCommandTable = { @@ -184,7 +185,25 @@ public: return true; } - static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, uint8 result, Optional failArg1, Optional failArg2) + // musicId - ID from SoundEntries.dbc + static bool HandleDebugPlayMusicCommand(ChatHandler* handler, uint32 musicId) + { + if (!sSoundEntriesStore.LookupEntry(musicId)) + { + handler->PSendSysMessage(LANG_SOUND_NOT_EXIST, musicId); + handler->SetSentErrorMessage(true); + return false; + } + + Player* player = handler->GetPlayer(); + + player->PlayDirectMusic(musicId, player); + + handler->PSendSysMessage(LANG_YOU_HEAR_SOUND, musicId); + return true; + } + + static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, SpellCastResult result, Optional failArg1, Optional failArg2) { WorldPacket data(SMSG_CAST_FAILED, 5); data << uint8(0); @@ -205,19 +224,19 @@ public: return true; } - static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, uint16 error) + static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, InventoryResult error) { handler->GetPlayer()->SendEquipError(InventoryResult(error), nullptr, nullptr); return true; } - static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, uint32 error) + static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, SellResult error) { handler->GetPlayer()->SendSellError(SellResult(error), nullptr, ObjectGuid::Empty, 0); return true; } - static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, uint16 error) + static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, BuyResult error) { handler->GetPlayer()->SendBuyError(BuyResult(error), nullptr, 0, 0); return true; @@ -432,7 +451,7 @@ public: return true; } - static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, uint8 type) + static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, ChatNotify type) { WorldPacket data(SMSG_CHANNEL_NOTIFY, (1 + 10)); data << type; @@ -443,15 +462,15 @@ public: return true; } - static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, uint8 type) + static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, ChatMsg type) { WorldPacket data; - ChatHandler::BuildChatPacket(data, ChatMsg(type), LANG_UNIVERSAL, handler->GetPlayer(), handler->GetPlayer(), "testtest", 0, "chan"); + ChatHandler::BuildChatPacket(data, type, LANG_UNIVERSAL, handler->GetPlayer(), handler->GetPlayer(), "testtest", 0, "chan"); handler->GetSession()->SendPacket(&data); return true; } - static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, uint32 msg) + static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, QuestShareMessages msg) { handler->GetPlayer()->SendPushToPartyResponse(handler->GetPlayer(), msg); return true; @@ -469,7 +488,7 @@ public: return true; } - static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, uint32 msg) + static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, QuestFailedReason msg) { handler->GetPlayer()->SendCanTakeQuestResponse(msg); return true; @@ -965,12 +984,12 @@ public: } // Play emote animation - static bool HandleDebugAnimCommand(ChatHandler* handler, uint32 emote) + static bool HandleDebugAnimCommand(ChatHandler* handler, Emote emote) { if (Unit* unit = handler->getSelectedUnit()) unit->HandleEmoteCommand(emote); - handler->PSendSysMessage("Playing emote %s", emote); + handler->PSendSysMessage("Playing emote %s", EnumUtils::ToConstant(emote)); return true; } @@ -990,7 +1009,7 @@ public: return false; } - static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, int32 state) + static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, Optional state, bool apply) { Unit* unit = handler->getSelectedUnit(); if (!unit) @@ -1003,12 +1022,12 @@ public: if (!state) { // reset all states - for (int i = 1; i <= 32; ++i) - unit->ModifyAuraState(AuraStateType(i), false); + for (AuraStateType s : EnumUtils::Iterate()) + unit->ModifyAuraState(s, false); return true; } - unit->ModifyAuraState(AuraStateType(abs(state)), state > 0); + unit->ModifyAuraState(*state, apply); return true; } diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index d6916d071..56a525bff 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -915,7 +915,8 @@ enum SpellEffects TOTAL_SPELL_EFFECTS = 165 }; -enum SpellCastResult +// EnumUtils: DESCRIBE THIS +enum SpellCastResult : uint8 { SPELL_FAILED_SUCCESS = 0, SPELL_FAILED_AFFECTING_COMBAT = 1, @@ -1254,6 +1255,7 @@ enum GhostVisibilityType }; // Spell aura states +// EnumUtils: DESCRIBE THIS enum AuraStateType { // (C) used in caster aura state (T) used in target aura state diff --git a/src/server/shared/enuminfo_SharedDefines.cpp b/src/server/shared/enuminfo_SharedDefines.cpp index 01b1c2a20..06ea37987 100644 --- a/src/server/shared/enuminfo_SharedDefines.cpp +++ b/src/server/shared/enuminfo_SharedDefines.cpp @@ -1181,6 +1181,693 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(SpellAttr7 value) } } +/***********************************************************************\ +|* data for enum 'SpellCastResult' in 'SharedDefines.h' auto-generated *| +\***********************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(SpellCastResult value) +{ + switch (value) + { + case SPELL_FAILED_SUCCESS: return { "SPELL_FAILED_SUCCESS", "SPELL_FAILED_SUCCESS", "" }; + case SPELL_FAILED_AFFECTING_COMBAT: return { "SPELL_FAILED_AFFECTING_COMBAT", "SPELL_FAILED_AFFECTING_COMBAT", "" }; + case SPELL_FAILED_ALREADY_AT_FULL_HEALTH: return { "SPELL_FAILED_ALREADY_AT_FULL_HEALTH", "SPELL_FAILED_ALREADY_AT_FULL_HEALTH", "" }; + case SPELL_FAILED_ALREADY_AT_FULL_MANA: return { "SPELL_FAILED_ALREADY_AT_FULL_MANA", "SPELL_FAILED_ALREADY_AT_FULL_MANA", "" }; + case SPELL_FAILED_ALREADY_AT_FULL_POWER: return { "SPELL_FAILED_ALREADY_AT_FULL_POWER", "SPELL_FAILED_ALREADY_AT_FULL_POWER", "" }; + case SPELL_FAILED_ALREADY_BEING_TAMED: return { "SPELL_FAILED_ALREADY_BEING_TAMED", "SPELL_FAILED_ALREADY_BEING_TAMED", "" }; + case SPELL_FAILED_ALREADY_HAVE_CHARM: return { "SPELL_FAILED_ALREADY_HAVE_CHARM", "SPELL_FAILED_ALREADY_HAVE_CHARM", "" }; + case SPELL_FAILED_ALREADY_HAVE_SUMMON: return { "SPELL_FAILED_ALREADY_HAVE_SUMMON", "SPELL_FAILED_ALREADY_HAVE_SUMMON", "" }; + case SPELL_FAILED_ALREADY_OPEN: return { "SPELL_FAILED_ALREADY_OPEN", "SPELL_FAILED_ALREADY_OPEN", "" }; + case SPELL_FAILED_AURA_BOUNCED: return { "SPELL_FAILED_AURA_BOUNCED", "SPELL_FAILED_AURA_BOUNCED", "" }; + case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return { "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "" }; + case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return { "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "" }; + case SPELL_FAILED_BAD_TARGETS: return { "SPELL_FAILED_BAD_TARGETS", "SPELL_FAILED_BAD_TARGETS", "" }; + case SPELL_FAILED_CANT_BE_CHARMED: return { "SPELL_FAILED_CANT_BE_CHARMED", "SPELL_FAILED_CANT_BE_CHARMED", "" }; + case SPELL_FAILED_CANT_BE_DISENCHANTED: return { "SPELL_FAILED_CANT_BE_DISENCHANTED", "SPELL_FAILED_CANT_BE_DISENCHANTED", "" }; + case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return { "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "" }; + case SPELL_FAILED_CANT_BE_MILLED: return { "SPELL_FAILED_CANT_BE_MILLED", "SPELL_FAILED_CANT_BE_MILLED", "" }; + case SPELL_FAILED_CANT_BE_PROSPECTED: return { "SPELL_FAILED_CANT_BE_PROSPECTED", "SPELL_FAILED_CANT_BE_PROSPECTED", "" }; + case SPELL_FAILED_CANT_CAST_ON_TAPPED: return { "SPELL_FAILED_CANT_CAST_ON_TAPPED", "SPELL_FAILED_CANT_CAST_ON_TAPPED", "" }; + case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return { "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "" }; + case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return { "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "" }; + case SPELL_FAILED_CANT_STEALTH: return { "SPELL_FAILED_CANT_STEALTH", "SPELL_FAILED_CANT_STEALTH", "" }; + case SPELL_FAILED_CASTER_AURASTATE: return { "SPELL_FAILED_CASTER_AURASTATE", "SPELL_FAILED_CASTER_AURASTATE", "" }; + case SPELL_FAILED_CASTER_DEAD: return { "SPELL_FAILED_CASTER_DEAD", "SPELL_FAILED_CASTER_DEAD", "" }; + case SPELL_FAILED_CHARMED: return { "SPELL_FAILED_CHARMED", "SPELL_FAILED_CHARMED", "" }; + case SPELL_FAILED_CHEST_IN_USE: return { "SPELL_FAILED_CHEST_IN_USE", "SPELL_FAILED_CHEST_IN_USE", "" }; + case SPELL_FAILED_CONFUSED: return { "SPELL_FAILED_CONFUSED", "SPELL_FAILED_CONFUSED", "" }; + case SPELL_FAILED_DONT_REPORT: return { "SPELL_FAILED_DONT_REPORT", "SPELL_FAILED_DONT_REPORT", "" }; + case SPELL_FAILED_EQUIPPED_ITEM: return { "SPELL_FAILED_EQUIPPED_ITEM", "SPELL_FAILED_EQUIPPED_ITEM", "" }; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "" }; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "" }; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "" }; + case SPELL_FAILED_ERROR: return { "SPELL_FAILED_ERROR", "SPELL_FAILED_ERROR", "" }; + case SPELL_FAILED_FIZZLE: return { "SPELL_FAILED_FIZZLE", "SPELL_FAILED_FIZZLE", "" }; + case SPELL_FAILED_FLEEING: return { "SPELL_FAILED_FLEEING", "SPELL_FAILED_FLEEING", "" }; + case SPELL_FAILED_FOOD_LOWLEVEL: return { "SPELL_FAILED_FOOD_LOWLEVEL", "SPELL_FAILED_FOOD_LOWLEVEL", "" }; + case SPELL_FAILED_HIGHLEVEL: return { "SPELL_FAILED_HIGHLEVEL", "SPELL_FAILED_HIGHLEVEL", "" }; + case SPELL_FAILED_HUNGER_SATIATED: return { "SPELL_FAILED_HUNGER_SATIATED", "SPELL_FAILED_HUNGER_SATIATED", "" }; + case SPELL_FAILED_IMMUNE: return { "SPELL_FAILED_IMMUNE", "SPELL_FAILED_IMMUNE", "" }; + case SPELL_FAILED_INCORRECT_AREA: return { "SPELL_FAILED_INCORRECT_AREA", "SPELL_FAILED_INCORRECT_AREA", "" }; + case SPELL_FAILED_INTERRUPTED: return { "SPELL_FAILED_INTERRUPTED", "SPELL_FAILED_INTERRUPTED", "" }; + case SPELL_FAILED_INTERRUPTED_COMBAT: return { "SPELL_FAILED_INTERRUPTED_COMBAT", "SPELL_FAILED_INTERRUPTED_COMBAT", "" }; + case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return { "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "" }; + case SPELL_FAILED_ITEM_GONE: return { "SPELL_FAILED_ITEM_GONE", "SPELL_FAILED_ITEM_GONE", "" }; + case SPELL_FAILED_ITEM_NOT_FOUND: return { "SPELL_FAILED_ITEM_NOT_FOUND", "SPELL_FAILED_ITEM_NOT_FOUND", "" }; + case SPELL_FAILED_ITEM_NOT_READY: return { "SPELL_FAILED_ITEM_NOT_READY", "SPELL_FAILED_ITEM_NOT_READY", "" }; + case SPELL_FAILED_LEVEL_REQUIREMENT: return { "SPELL_FAILED_LEVEL_REQUIREMENT", "SPELL_FAILED_LEVEL_REQUIREMENT", "" }; + case SPELL_FAILED_LINE_OF_SIGHT: return { "SPELL_FAILED_LINE_OF_SIGHT", "SPELL_FAILED_LINE_OF_SIGHT", "" }; + case SPELL_FAILED_LOWLEVEL: return { "SPELL_FAILED_LOWLEVEL", "SPELL_FAILED_LOWLEVEL", "" }; + case SPELL_FAILED_LOW_CASTLEVEL: return { "SPELL_FAILED_LOW_CASTLEVEL", "SPELL_FAILED_LOW_CASTLEVEL", "" }; + case SPELL_FAILED_MAINHAND_EMPTY: return { "SPELL_FAILED_MAINHAND_EMPTY", "SPELL_FAILED_MAINHAND_EMPTY", "" }; + case SPELL_FAILED_MOVING: return { "SPELL_FAILED_MOVING", "SPELL_FAILED_MOVING", "" }; + case SPELL_FAILED_NEED_AMMO: return { "SPELL_FAILED_NEED_AMMO", "SPELL_FAILED_NEED_AMMO", "" }; + case SPELL_FAILED_NEED_AMMO_POUCH: return { "SPELL_FAILED_NEED_AMMO_POUCH", "SPELL_FAILED_NEED_AMMO_POUCH", "" }; + case SPELL_FAILED_NEED_EXOTIC_AMMO: return { "SPELL_FAILED_NEED_EXOTIC_AMMO", "SPELL_FAILED_NEED_EXOTIC_AMMO", "" }; + case SPELL_FAILED_NEED_MORE_ITEMS: return { "SPELL_FAILED_NEED_MORE_ITEMS", "SPELL_FAILED_NEED_MORE_ITEMS", "" }; + case SPELL_FAILED_NOPATH: return { "SPELL_FAILED_NOPATH", "SPELL_FAILED_NOPATH", "" }; + case SPELL_FAILED_NOT_BEHIND: return { "SPELL_FAILED_NOT_BEHIND", "SPELL_FAILED_NOT_BEHIND", "" }; + case SPELL_FAILED_NOT_FISHABLE: return { "SPELL_FAILED_NOT_FISHABLE", "SPELL_FAILED_NOT_FISHABLE", "" }; + case SPELL_FAILED_NOT_FLYING: return { "SPELL_FAILED_NOT_FLYING", "SPELL_FAILED_NOT_FLYING", "" }; + case SPELL_FAILED_NOT_HERE: return { "SPELL_FAILED_NOT_HERE", "SPELL_FAILED_NOT_HERE", "" }; + case SPELL_FAILED_NOT_INFRONT: return { "SPELL_FAILED_NOT_INFRONT", "SPELL_FAILED_NOT_INFRONT", "" }; + case SPELL_FAILED_NOT_IN_CONTROL: return { "SPELL_FAILED_NOT_IN_CONTROL", "SPELL_FAILED_NOT_IN_CONTROL", "" }; + case SPELL_FAILED_NOT_KNOWN: return { "SPELL_FAILED_NOT_KNOWN", "SPELL_FAILED_NOT_KNOWN", "" }; + case SPELL_FAILED_NOT_MOUNTED: return { "SPELL_FAILED_NOT_MOUNTED", "SPELL_FAILED_NOT_MOUNTED", "" }; + case SPELL_FAILED_NOT_ON_TAXI: return { "SPELL_FAILED_NOT_ON_TAXI", "SPELL_FAILED_NOT_ON_TAXI", "" }; + case SPELL_FAILED_NOT_ON_TRANSPORT: return { "SPELL_FAILED_NOT_ON_TRANSPORT", "SPELL_FAILED_NOT_ON_TRANSPORT", "" }; + case SPELL_FAILED_NOT_READY: return { "SPELL_FAILED_NOT_READY", "SPELL_FAILED_NOT_READY", "" }; + case SPELL_FAILED_NOT_SHAPESHIFT: return { "SPELL_FAILED_NOT_SHAPESHIFT", "SPELL_FAILED_NOT_SHAPESHIFT", "" }; + case SPELL_FAILED_NOT_STANDING: return { "SPELL_FAILED_NOT_STANDING", "SPELL_FAILED_NOT_STANDING", "" }; + case SPELL_FAILED_NOT_TRADEABLE: return { "SPELL_FAILED_NOT_TRADEABLE", "SPELL_FAILED_NOT_TRADEABLE", "" }; + case SPELL_FAILED_NOT_TRADING: return { "SPELL_FAILED_NOT_TRADING", "SPELL_FAILED_NOT_TRADING", "" }; + case SPELL_FAILED_NOT_UNSHEATHED: return { "SPELL_FAILED_NOT_UNSHEATHED", "SPELL_FAILED_NOT_UNSHEATHED", "" }; + case SPELL_FAILED_NOT_WHILE_GHOST: return { "SPELL_FAILED_NOT_WHILE_GHOST", "SPELL_FAILED_NOT_WHILE_GHOST", "" }; + case SPELL_FAILED_NOT_WHILE_LOOTING: return { "SPELL_FAILED_NOT_WHILE_LOOTING", "SPELL_FAILED_NOT_WHILE_LOOTING", "" }; + case SPELL_FAILED_NO_AMMO: return { "SPELL_FAILED_NO_AMMO", "SPELL_FAILED_NO_AMMO", "" }; + case SPELL_FAILED_NO_CHARGES_REMAIN: return { "SPELL_FAILED_NO_CHARGES_REMAIN", "SPELL_FAILED_NO_CHARGES_REMAIN", "" }; + case SPELL_FAILED_NO_CHAMPION: return { "SPELL_FAILED_NO_CHAMPION", "SPELL_FAILED_NO_CHAMPION", "" }; + case SPELL_FAILED_NO_COMBO_POINTS: return { "SPELL_FAILED_NO_COMBO_POINTS", "SPELL_FAILED_NO_COMBO_POINTS", "" }; + case SPELL_FAILED_NO_DUELING: return { "SPELL_FAILED_NO_DUELING", "SPELL_FAILED_NO_DUELING", "" }; + case SPELL_FAILED_NO_ENDURANCE: return { "SPELL_FAILED_NO_ENDURANCE", "SPELL_FAILED_NO_ENDURANCE", "" }; + case SPELL_FAILED_NO_FISH: return { "SPELL_FAILED_NO_FISH", "SPELL_FAILED_NO_FISH", "" }; + case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return { "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "" }; + case SPELL_FAILED_NO_MOUNTS_ALLOWED: return { "SPELL_FAILED_NO_MOUNTS_ALLOWED", "SPELL_FAILED_NO_MOUNTS_ALLOWED", "" }; + case SPELL_FAILED_NO_PET: return { "SPELL_FAILED_NO_PET", "SPELL_FAILED_NO_PET", "" }; + case SPELL_FAILED_NO_POWER: return { "SPELL_FAILED_NO_POWER", "SPELL_FAILED_NO_POWER", "" }; + case SPELL_FAILED_NOTHING_TO_DISPEL: return { "SPELL_FAILED_NOTHING_TO_DISPEL", "SPELL_FAILED_NOTHING_TO_DISPEL", "" }; + case SPELL_FAILED_NOTHING_TO_STEAL: return { "SPELL_FAILED_NOTHING_TO_STEAL", "SPELL_FAILED_NOTHING_TO_STEAL", "" }; + case SPELL_FAILED_ONLY_ABOVEWATER: return { "SPELL_FAILED_ONLY_ABOVEWATER", "SPELL_FAILED_ONLY_ABOVEWATER", "" }; + case SPELL_FAILED_ONLY_DAYTIME: return { "SPELL_FAILED_ONLY_DAYTIME", "SPELL_FAILED_ONLY_DAYTIME", "" }; + case SPELL_FAILED_ONLY_INDOORS: return { "SPELL_FAILED_ONLY_INDOORS", "SPELL_FAILED_ONLY_INDOORS", "" }; + case SPELL_FAILED_ONLY_MOUNTED: return { "SPELL_FAILED_ONLY_MOUNTED", "SPELL_FAILED_ONLY_MOUNTED", "" }; + case SPELL_FAILED_ONLY_NIGHTTIME: return { "SPELL_FAILED_ONLY_NIGHTTIME", "SPELL_FAILED_ONLY_NIGHTTIME", "" }; + case SPELL_FAILED_ONLY_OUTDOORS: return { "SPELL_FAILED_ONLY_OUTDOORS", "SPELL_FAILED_ONLY_OUTDOORS", "" }; + case SPELL_FAILED_ONLY_SHAPESHIFT: return { "SPELL_FAILED_ONLY_SHAPESHIFT", "SPELL_FAILED_ONLY_SHAPESHIFT", "" }; + case SPELL_FAILED_ONLY_STEALTHED: return { "SPELL_FAILED_ONLY_STEALTHED", "SPELL_FAILED_ONLY_STEALTHED", "" }; + case SPELL_FAILED_ONLY_UNDERWATER: return { "SPELL_FAILED_ONLY_UNDERWATER", "SPELL_FAILED_ONLY_UNDERWATER", "" }; + case SPELL_FAILED_OUT_OF_RANGE: return { "SPELL_FAILED_OUT_OF_RANGE", "SPELL_FAILED_OUT_OF_RANGE", "" }; + case SPELL_FAILED_PACIFIED: return { "SPELL_FAILED_PACIFIED", "SPELL_FAILED_PACIFIED", "" }; + case SPELL_FAILED_POSSESSED: return { "SPELL_FAILED_POSSESSED", "SPELL_FAILED_POSSESSED", "" }; + case SPELL_FAILED_REAGENTS: return { "SPELL_FAILED_REAGENTS", "SPELL_FAILED_REAGENTS", "" }; + case SPELL_FAILED_REQUIRES_AREA: return { "SPELL_FAILED_REQUIRES_AREA", "SPELL_FAILED_REQUIRES_AREA", "" }; + case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return { "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "" }; + case SPELL_FAILED_ROOTED: return { "SPELL_FAILED_ROOTED", "SPELL_FAILED_ROOTED", "" }; + case SPELL_FAILED_SILENCED: return { "SPELL_FAILED_SILENCED", "SPELL_FAILED_SILENCED", "" }; + case SPELL_FAILED_SPELL_IN_PROGRESS: return { "SPELL_FAILED_SPELL_IN_PROGRESS", "SPELL_FAILED_SPELL_IN_PROGRESS", "" }; + case SPELL_FAILED_SPELL_LEARNED: return { "SPELL_FAILED_SPELL_LEARNED", "SPELL_FAILED_SPELL_LEARNED", "" }; + case SPELL_FAILED_SPELL_UNAVAILABLE: return { "SPELL_FAILED_SPELL_UNAVAILABLE", "SPELL_FAILED_SPELL_UNAVAILABLE", "" }; + case SPELL_FAILED_STUNNED: return { "SPELL_FAILED_STUNNED", "SPELL_FAILED_STUNNED", "" }; + case SPELL_FAILED_TARGETS_DEAD: return { "SPELL_FAILED_TARGETS_DEAD", "SPELL_FAILED_TARGETS_DEAD", "" }; + case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return { "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "" }; + case SPELL_FAILED_TARGET_AURASTATE: return { "SPELL_FAILED_TARGET_AURASTATE", "SPELL_FAILED_TARGET_AURASTATE", "" }; + case SPELL_FAILED_TARGET_DUELING: return { "SPELL_FAILED_TARGET_DUELING", "SPELL_FAILED_TARGET_DUELING", "" }; + case SPELL_FAILED_TARGET_ENEMY: return { "SPELL_FAILED_TARGET_ENEMY", "SPELL_FAILED_TARGET_ENEMY", "" }; + case SPELL_FAILED_TARGET_ENRAGED: return { "SPELL_FAILED_TARGET_ENRAGED", "SPELL_FAILED_TARGET_ENRAGED", "" }; + case SPELL_FAILED_TARGET_FRIENDLY: return { "SPELL_FAILED_TARGET_FRIENDLY", "SPELL_FAILED_TARGET_FRIENDLY", "" }; + case SPELL_FAILED_TARGET_IN_COMBAT: return { "SPELL_FAILED_TARGET_IN_COMBAT", "SPELL_FAILED_TARGET_IN_COMBAT", "" }; + case SPELL_FAILED_TARGET_IS_PLAYER: return { "SPELL_FAILED_TARGET_IS_PLAYER", "SPELL_FAILED_TARGET_IS_PLAYER", "" }; + case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return { "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "" }; + case SPELL_FAILED_TARGET_NOT_DEAD: return { "SPELL_FAILED_TARGET_NOT_DEAD", "SPELL_FAILED_TARGET_NOT_DEAD", "" }; + case SPELL_FAILED_TARGET_NOT_IN_PARTY: return { "SPELL_FAILED_TARGET_NOT_IN_PARTY", "SPELL_FAILED_TARGET_NOT_IN_PARTY", "" }; + case SPELL_FAILED_TARGET_NOT_LOOTED: return { "SPELL_FAILED_TARGET_NOT_LOOTED", "SPELL_FAILED_TARGET_NOT_LOOTED", "" }; + case SPELL_FAILED_TARGET_NOT_PLAYER: return { "SPELL_FAILED_TARGET_NOT_PLAYER", "SPELL_FAILED_TARGET_NOT_PLAYER", "" }; + case SPELL_FAILED_TARGET_NO_POCKETS: return { "SPELL_FAILED_TARGET_NO_POCKETS", "SPELL_FAILED_TARGET_NO_POCKETS", "" }; + case SPELL_FAILED_TARGET_NO_WEAPONS: return { "SPELL_FAILED_TARGET_NO_WEAPONS", "SPELL_FAILED_TARGET_NO_WEAPONS", "" }; + case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return { "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "" }; + case SPELL_FAILED_TARGET_UNSKINNABLE: return { "SPELL_FAILED_TARGET_UNSKINNABLE", "SPELL_FAILED_TARGET_UNSKINNABLE", "" }; + case SPELL_FAILED_THIRST_SATIATED: return { "SPELL_FAILED_THIRST_SATIATED", "SPELL_FAILED_THIRST_SATIATED", "" }; + case SPELL_FAILED_TOO_CLOSE: return { "SPELL_FAILED_TOO_CLOSE", "SPELL_FAILED_TOO_CLOSE", "" }; + case SPELL_FAILED_TOO_MANY_OF_ITEM: return { "SPELL_FAILED_TOO_MANY_OF_ITEM", "SPELL_FAILED_TOO_MANY_OF_ITEM", "" }; + case SPELL_FAILED_TOTEM_CATEGORY: return { "SPELL_FAILED_TOTEM_CATEGORY", "SPELL_FAILED_TOTEM_CATEGORY", "" }; + case SPELL_FAILED_TOTEMS: return { "SPELL_FAILED_TOTEMS", "SPELL_FAILED_TOTEMS", "" }; + case SPELL_FAILED_TRY_AGAIN: return { "SPELL_FAILED_TRY_AGAIN", "SPELL_FAILED_TRY_AGAIN", "" }; + case SPELL_FAILED_UNIT_NOT_BEHIND: return { "SPELL_FAILED_UNIT_NOT_BEHIND", "SPELL_FAILED_UNIT_NOT_BEHIND", "" }; + case SPELL_FAILED_UNIT_NOT_INFRONT: return { "SPELL_FAILED_UNIT_NOT_INFRONT", "SPELL_FAILED_UNIT_NOT_INFRONT", "" }; + case SPELL_FAILED_WRONG_PET_FOOD: return { "SPELL_FAILED_WRONG_PET_FOOD", "SPELL_FAILED_WRONG_PET_FOOD", "" }; + case SPELL_FAILED_NOT_WHILE_FATIGUED: return { "SPELL_FAILED_NOT_WHILE_FATIGUED", "SPELL_FAILED_NOT_WHILE_FATIGUED", "" }; + case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return { "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "" }; + case SPELL_FAILED_NOT_WHILE_TRADING: return { "SPELL_FAILED_NOT_WHILE_TRADING", "SPELL_FAILED_NOT_WHILE_TRADING", "" }; + case SPELL_FAILED_TARGET_NOT_IN_RAID: return { "SPELL_FAILED_TARGET_NOT_IN_RAID", "SPELL_FAILED_TARGET_NOT_IN_RAID", "" }; + case SPELL_FAILED_TARGET_FREEFORALL: return { "SPELL_FAILED_TARGET_FREEFORALL", "SPELL_FAILED_TARGET_FREEFORALL", "" }; + case SPELL_FAILED_NO_EDIBLE_CORPSES: return { "SPELL_FAILED_NO_EDIBLE_CORPSES", "SPELL_FAILED_NO_EDIBLE_CORPSES", "" }; + case SPELL_FAILED_ONLY_BATTLEGROUNDS: return { "SPELL_FAILED_ONLY_BATTLEGROUNDS", "SPELL_FAILED_ONLY_BATTLEGROUNDS", "" }; + case SPELL_FAILED_TARGET_NOT_GHOST: return { "SPELL_FAILED_TARGET_NOT_GHOST", "SPELL_FAILED_TARGET_NOT_GHOST", "" }; + case SPELL_FAILED_TRANSFORM_UNUSABLE: return { "SPELL_FAILED_TRANSFORM_UNUSABLE", "SPELL_FAILED_TRANSFORM_UNUSABLE", "" }; + case SPELL_FAILED_WRONG_WEATHER: return { "SPELL_FAILED_WRONG_WEATHER", "SPELL_FAILED_WRONG_WEATHER", "" }; + case SPELL_FAILED_DAMAGE_IMMUNE: return { "SPELL_FAILED_DAMAGE_IMMUNE", "SPELL_FAILED_DAMAGE_IMMUNE", "" }; + case SPELL_FAILED_PREVENTED_BY_MECHANIC: return { "SPELL_FAILED_PREVENTED_BY_MECHANIC", "SPELL_FAILED_PREVENTED_BY_MECHANIC", "" }; + case SPELL_FAILED_PLAY_TIME: return { "SPELL_FAILED_PLAY_TIME", "SPELL_FAILED_PLAY_TIME", "" }; + case SPELL_FAILED_REPUTATION: return { "SPELL_FAILED_REPUTATION", "SPELL_FAILED_REPUTATION", "" }; + case SPELL_FAILED_MIN_SKILL: return { "SPELL_FAILED_MIN_SKILL", "SPELL_FAILED_MIN_SKILL", "" }; + case SPELL_FAILED_NOT_IN_ARENA: return { "SPELL_FAILED_NOT_IN_ARENA", "SPELL_FAILED_NOT_IN_ARENA", "" }; + case SPELL_FAILED_NOT_ON_SHAPESHIFT: return { "SPELL_FAILED_NOT_ON_SHAPESHIFT", "SPELL_FAILED_NOT_ON_SHAPESHIFT", "" }; + case SPELL_FAILED_NOT_ON_STEALTHED: return { "SPELL_FAILED_NOT_ON_STEALTHED", "SPELL_FAILED_NOT_ON_STEALTHED", "" }; + case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return { "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "" }; + case SPELL_FAILED_NOT_ON_MOUNTED: return { "SPELL_FAILED_NOT_ON_MOUNTED", "SPELL_FAILED_NOT_ON_MOUNTED", "" }; + case SPELL_FAILED_TOO_SHALLOW: return { "SPELL_FAILED_TOO_SHALLOW", "SPELL_FAILED_TOO_SHALLOW", "" }; + case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return { "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "" }; + case SPELL_FAILED_TARGET_IS_TRIVIAL: return { "SPELL_FAILED_TARGET_IS_TRIVIAL", "SPELL_FAILED_TARGET_IS_TRIVIAL", "" }; + case SPELL_FAILED_BM_OR_INVISGOD: return { "SPELL_FAILED_BM_OR_INVISGOD", "SPELL_FAILED_BM_OR_INVISGOD", "" }; + case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return { "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "" }; + case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return { "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "" }; + case SPELL_FAILED_NOT_IDLE: return { "SPELL_FAILED_NOT_IDLE", "SPELL_FAILED_NOT_IDLE", "" }; + case SPELL_FAILED_NOT_INACTIVE: return { "SPELL_FAILED_NOT_INACTIVE", "SPELL_FAILED_NOT_INACTIVE", "" }; + case SPELL_FAILED_PARTIAL_PLAYTIME: return { "SPELL_FAILED_PARTIAL_PLAYTIME", "SPELL_FAILED_PARTIAL_PLAYTIME", "" }; + case SPELL_FAILED_NO_PLAYTIME: return { "SPELL_FAILED_NO_PLAYTIME", "SPELL_FAILED_NO_PLAYTIME", "" }; + case SPELL_FAILED_NOT_IN_BATTLEGROUND: return { "SPELL_FAILED_NOT_IN_BATTLEGROUND", "SPELL_FAILED_NOT_IN_BATTLEGROUND", "" }; + case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return { "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "" }; + case SPELL_FAILED_ONLY_IN_ARENA: return { "SPELL_FAILED_ONLY_IN_ARENA", "SPELL_FAILED_ONLY_IN_ARENA", "" }; + case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return { "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "" }; + case SPELL_FAILED_ON_USE_ENCHANT: return { "SPELL_FAILED_ON_USE_ENCHANT", "SPELL_FAILED_ON_USE_ENCHANT", "" }; + case SPELL_FAILED_NOT_ON_GROUND: return { "SPELL_FAILED_NOT_ON_GROUND", "SPELL_FAILED_NOT_ON_GROUND", "" }; + case SPELL_FAILED_CUSTOM_ERROR: return { "SPELL_FAILED_CUSTOM_ERROR", "SPELL_FAILED_CUSTOM_ERROR", "" }; + case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return { "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "" }; + case SPELL_FAILED_TOO_MANY_SOCKETS: return { "SPELL_FAILED_TOO_MANY_SOCKETS", "SPELL_FAILED_TOO_MANY_SOCKETS", "" }; + case SPELL_FAILED_INVALID_GLYPH: return { "SPELL_FAILED_INVALID_GLYPH", "SPELL_FAILED_INVALID_GLYPH", "" }; + case SPELL_FAILED_UNIQUE_GLYPH: return { "SPELL_FAILED_UNIQUE_GLYPH", "SPELL_FAILED_UNIQUE_GLYPH", "" }; + case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return { "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "" }; + case SPELL_FAILED_NO_VALID_TARGETS: return { "SPELL_FAILED_NO_VALID_TARGETS", "SPELL_FAILED_NO_VALID_TARGETS", "" }; + case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return { "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "" }; + case SPELL_FAILED_NOT_IN_BARBERSHOP: return { "SPELL_FAILED_NOT_IN_BARBERSHOP", "SPELL_FAILED_NOT_IN_BARBERSHOP", "" }; + case SPELL_FAILED_FISHING_TOO_LOW: return { "SPELL_FAILED_FISHING_TOO_LOW", "SPELL_FAILED_FISHING_TOO_LOW", "" }; + case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return { "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "" }; + case SPELL_FAILED_SUMMON_PENDING: return { "SPELL_FAILED_SUMMON_PENDING", "SPELL_FAILED_SUMMON_PENDING", "" }; + case SPELL_FAILED_MAX_SOCKETS: return { "SPELL_FAILED_MAX_SOCKETS", "SPELL_FAILED_MAX_SOCKETS", "" }; + case SPELL_FAILED_PET_CAN_RENAME: return { "SPELL_FAILED_PET_CAN_RENAME", "SPELL_FAILED_PET_CAN_RENAME", "" }; + case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return { "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "" }; + case SPELL_FAILED_UNKNOWN: return { "SPELL_FAILED_UNKNOWN", "SPELL_FAILED_UNKNOWN", "actually doesn't exist in client" }; + case SPELL_CAST_OK: return { "SPELL_CAST_OK", "SPELL_CAST_OK", "custom value, must not be sent to client" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 189; } + +template <> +AC_API_EXPORT SpellCastResult EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return SPELL_FAILED_SUCCESS; + case 1: return SPELL_FAILED_AFFECTING_COMBAT; + case 2: return SPELL_FAILED_ALREADY_AT_FULL_HEALTH; + case 3: return SPELL_FAILED_ALREADY_AT_FULL_MANA; + case 4: return SPELL_FAILED_ALREADY_AT_FULL_POWER; + case 5: return SPELL_FAILED_ALREADY_BEING_TAMED; + case 6: return SPELL_FAILED_ALREADY_HAVE_CHARM; + case 7: return SPELL_FAILED_ALREADY_HAVE_SUMMON; + case 8: return SPELL_FAILED_ALREADY_OPEN; + case 9: return SPELL_FAILED_AURA_BOUNCED; + case 10: return SPELL_FAILED_AUTOTRACK_INTERRUPTED; + case 11: return SPELL_FAILED_BAD_IMPLICIT_TARGETS; + case 12: return SPELL_FAILED_BAD_TARGETS; + case 13: return SPELL_FAILED_CANT_BE_CHARMED; + case 14: return SPELL_FAILED_CANT_BE_DISENCHANTED; + case 15: return SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL; + case 16: return SPELL_FAILED_CANT_BE_MILLED; + case 17: return SPELL_FAILED_CANT_BE_PROSPECTED; + case 18: return SPELL_FAILED_CANT_CAST_ON_TAPPED; + case 19: return SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE; + case 20: return SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED; + case 21: return SPELL_FAILED_CANT_STEALTH; + case 22: return SPELL_FAILED_CASTER_AURASTATE; + case 23: return SPELL_FAILED_CASTER_DEAD; + case 24: return SPELL_FAILED_CHARMED; + case 25: return SPELL_FAILED_CHEST_IN_USE; + case 26: return SPELL_FAILED_CONFUSED; + case 27: return SPELL_FAILED_DONT_REPORT; + case 28: return SPELL_FAILED_EQUIPPED_ITEM; + case 29: return SPELL_FAILED_EQUIPPED_ITEM_CLASS; + case 30: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND; + case 31: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND; + case 32: return SPELL_FAILED_ERROR; + case 33: return SPELL_FAILED_FIZZLE; + case 34: return SPELL_FAILED_FLEEING; + case 35: return SPELL_FAILED_FOOD_LOWLEVEL; + case 36: return SPELL_FAILED_HIGHLEVEL; + case 37: return SPELL_FAILED_HUNGER_SATIATED; + case 38: return SPELL_FAILED_IMMUNE; + case 39: return SPELL_FAILED_INCORRECT_AREA; + case 40: return SPELL_FAILED_INTERRUPTED; + case 41: return SPELL_FAILED_INTERRUPTED_COMBAT; + case 42: return SPELL_FAILED_ITEM_ALREADY_ENCHANTED; + case 43: return SPELL_FAILED_ITEM_GONE; + case 44: return SPELL_FAILED_ITEM_NOT_FOUND; + case 45: return SPELL_FAILED_ITEM_NOT_READY; + case 46: return SPELL_FAILED_LEVEL_REQUIREMENT; + case 47: return SPELL_FAILED_LINE_OF_SIGHT; + case 48: return SPELL_FAILED_LOWLEVEL; + case 49: return SPELL_FAILED_LOW_CASTLEVEL; + case 50: return SPELL_FAILED_MAINHAND_EMPTY; + case 51: return SPELL_FAILED_MOVING; + case 52: return SPELL_FAILED_NEED_AMMO; + case 53: return SPELL_FAILED_NEED_AMMO_POUCH; + case 54: return SPELL_FAILED_NEED_EXOTIC_AMMO; + case 55: return SPELL_FAILED_NEED_MORE_ITEMS; + case 56: return SPELL_FAILED_NOPATH; + case 57: return SPELL_FAILED_NOT_BEHIND; + case 58: return SPELL_FAILED_NOT_FISHABLE; + case 59: return SPELL_FAILED_NOT_FLYING; + case 60: return SPELL_FAILED_NOT_HERE; + case 61: return SPELL_FAILED_NOT_INFRONT; + case 62: return SPELL_FAILED_NOT_IN_CONTROL; + case 63: return SPELL_FAILED_NOT_KNOWN; + case 64: return SPELL_FAILED_NOT_MOUNTED; + case 65: return SPELL_FAILED_NOT_ON_TAXI; + case 66: return SPELL_FAILED_NOT_ON_TRANSPORT; + case 67: return SPELL_FAILED_NOT_READY; + case 68: return SPELL_FAILED_NOT_SHAPESHIFT; + case 69: return SPELL_FAILED_NOT_STANDING; + case 70: return SPELL_FAILED_NOT_TRADEABLE; + case 71: return SPELL_FAILED_NOT_TRADING; + case 72: return SPELL_FAILED_NOT_UNSHEATHED; + case 73: return SPELL_FAILED_NOT_WHILE_GHOST; + case 74: return SPELL_FAILED_NOT_WHILE_LOOTING; + case 75: return SPELL_FAILED_NO_AMMO; + case 76: return SPELL_FAILED_NO_CHARGES_REMAIN; + case 77: return SPELL_FAILED_NO_CHAMPION; + case 78: return SPELL_FAILED_NO_COMBO_POINTS; + case 79: return SPELL_FAILED_NO_DUELING; + case 80: return SPELL_FAILED_NO_ENDURANCE; + case 81: return SPELL_FAILED_NO_FISH; + case 82: return SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED; + case 83: return SPELL_FAILED_NO_MOUNTS_ALLOWED; + case 84: return SPELL_FAILED_NO_PET; + case 85: return SPELL_FAILED_NO_POWER; + case 86: return SPELL_FAILED_NOTHING_TO_DISPEL; + case 87: return SPELL_FAILED_NOTHING_TO_STEAL; + case 88: return SPELL_FAILED_ONLY_ABOVEWATER; + case 89: return SPELL_FAILED_ONLY_DAYTIME; + case 90: return SPELL_FAILED_ONLY_INDOORS; + case 91: return SPELL_FAILED_ONLY_MOUNTED; + case 92: return SPELL_FAILED_ONLY_NIGHTTIME; + case 93: return SPELL_FAILED_ONLY_OUTDOORS; + case 94: return SPELL_FAILED_ONLY_SHAPESHIFT; + case 95: return SPELL_FAILED_ONLY_STEALTHED; + case 96: return SPELL_FAILED_ONLY_UNDERWATER; + case 97: return SPELL_FAILED_OUT_OF_RANGE; + case 98: return SPELL_FAILED_PACIFIED; + case 99: return SPELL_FAILED_POSSESSED; + case 100: return SPELL_FAILED_REAGENTS; + case 101: return SPELL_FAILED_REQUIRES_AREA; + case 102: return SPELL_FAILED_REQUIRES_SPELL_FOCUS; + case 103: return SPELL_FAILED_ROOTED; + case 104: return SPELL_FAILED_SILENCED; + case 105: return SPELL_FAILED_SPELL_IN_PROGRESS; + case 106: return SPELL_FAILED_SPELL_LEARNED; + case 107: return SPELL_FAILED_SPELL_UNAVAILABLE; + case 108: return SPELL_FAILED_STUNNED; + case 109: return SPELL_FAILED_TARGETS_DEAD; + case 110: return SPELL_FAILED_TARGET_AFFECTING_COMBAT; + case 111: return SPELL_FAILED_TARGET_AURASTATE; + case 112: return SPELL_FAILED_TARGET_DUELING; + case 113: return SPELL_FAILED_TARGET_ENEMY; + case 114: return SPELL_FAILED_TARGET_ENRAGED; + case 115: return SPELL_FAILED_TARGET_FRIENDLY; + case 116: return SPELL_FAILED_TARGET_IN_COMBAT; + case 117: return SPELL_FAILED_TARGET_IS_PLAYER; + case 118: return SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED; + case 119: return SPELL_FAILED_TARGET_NOT_DEAD; + case 120: return SPELL_FAILED_TARGET_NOT_IN_PARTY; + case 121: return SPELL_FAILED_TARGET_NOT_LOOTED; + case 122: return SPELL_FAILED_TARGET_NOT_PLAYER; + case 123: return SPELL_FAILED_TARGET_NO_POCKETS; + case 124: return SPELL_FAILED_TARGET_NO_WEAPONS; + case 125: return SPELL_FAILED_TARGET_NO_RANGED_WEAPONS; + case 126: return SPELL_FAILED_TARGET_UNSKINNABLE; + case 127: return SPELL_FAILED_THIRST_SATIATED; + case 128: return SPELL_FAILED_TOO_CLOSE; + case 129: return SPELL_FAILED_TOO_MANY_OF_ITEM; + case 130: return SPELL_FAILED_TOTEM_CATEGORY; + case 131: return SPELL_FAILED_TOTEMS; + case 132: return SPELL_FAILED_TRY_AGAIN; + case 133: return SPELL_FAILED_UNIT_NOT_BEHIND; + case 134: return SPELL_FAILED_UNIT_NOT_INFRONT; + case 135: return SPELL_FAILED_WRONG_PET_FOOD; + case 136: return SPELL_FAILED_NOT_WHILE_FATIGUED; + case 137: return SPELL_FAILED_TARGET_NOT_IN_INSTANCE; + case 138: return SPELL_FAILED_NOT_WHILE_TRADING; + case 139: return SPELL_FAILED_TARGET_NOT_IN_RAID; + case 140: return SPELL_FAILED_TARGET_FREEFORALL; + case 141: return SPELL_FAILED_NO_EDIBLE_CORPSES; + case 142: return SPELL_FAILED_ONLY_BATTLEGROUNDS; + case 143: return SPELL_FAILED_TARGET_NOT_GHOST; + case 144: return SPELL_FAILED_TRANSFORM_UNUSABLE; + case 145: return SPELL_FAILED_WRONG_WEATHER; + case 146: return SPELL_FAILED_DAMAGE_IMMUNE; + case 147: return SPELL_FAILED_PREVENTED_BY_MECHANIC; + case 148: return SPELL_FAILED_PLAY_TIME; + case 149: return SPELL_FAILED_REPUTATION; + case 150: return SPELL_FAILED_MIN_SKILL; + case 151: return SPELL_FAILED_NOT_IN_ARENA; + case 152: return SPELL_FAILED_NOT_ON_SHAPESHIFT; + case 153: return SPELL_FAILED_NOT_ON_STEALTHED; + case 154: return SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE; + case 155: return SPELL_FAILED_NOT_ON_MOUNTED; + case 156: return SPELL_FAILED_TOO_SHALLOW; + case 157: return SPELL_FAILED_TARGET_NOT_IN_SANCTUARY; + case 158: return SPELL_FAILED_TARGET_IS_TRIVIAL; + case 159: return SPELL_FAILED_BM_OR_INVISGOD; + case 160: return SPELL_FAILED_EXPERT_RIDING_REQUIREMENT; + case 161: return SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT; + case 162: return SPELL_FAILED_NOT_IDLE; + case 163: return SPELL_FAILED_NOT_INACTIVE; + case 164: return SPELL_FAILED_PARTIAL_PLAYTIME; + case 165: return SPELL_FAILED_NO_PLAYTIME; + case 166: return SPELL_FAILED_NOT_IN_BATTLEGROUND; + case 167: return SPELL_FAILED_NOT_IN_RAID_INSTANCE; + case 168: return SPELL_FAILED_ONLY_IN_ARENA; + case 169: return SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE; + case 170: return SPELL_FAILED_ON_USE_ENCHANT; + case 171: return SPELL_FAILED_NOT_ON_GROUND; + case 172: return SPELL_FAILED_CUSTOM_ERROR; + case 173: return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW; + case 174: return SPELL_FAILED_TOO_MANY_SOCKETS; + case 175: return SPELL_FAILED_INVALID_GLYPH; + case 176: return SPELL_FAILED_UNIQUE_GLYPH; + case 177: return SPELL_FAILED_GLYPH_SOCKET_LOCKED; + case 178: return SPELL_FAILED_NO_VALID_TARGETS; + case 179: return SPELL_FAILED_ITEM_AT_MAX_CHARGES; + case 180: return SPELL_FAILED_NOT_IN_BARBERSHOP; + case 181: return SPELL_FAILED_FISHING_TOO_LOW; + case 182: return SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW; + case 183: return SPELL_FAILED_SUMMON_PENDING; + case 184: return SPELL_FAILED_MAX_SOCKETS; + case 185: return SPELL_FAILED_PET_CAN_RENAME; + case 186: return SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED; + case 187: return SPELL_FAILED_UNKNOWN; + case 188: return SPELL_CAST_OK; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(SpellCastResult value) +{ + switch (value) + { + case SPELL_FAILED_SUCCESS: return 0; + case SPELL_FAILED_AFFECTING_COMBAT: return 1; + case SPELL_FAILED_ALREADY_AT_FULL_HEALTH: return 2; + case SPELL_FAILED_ALREADY_AT_FULL_MANA: return 3; + case SPELL_FAILED_ALREADY_AT_FULL_POWER: return 4; + case SPELL_FAILED_ALREADY_BEING_TAMED: return 5; + case SPELL_FAILED_ALREADY_HAVE_CHARM: return 6; + case SPELL_FAILED_ALREADY_HAVE_SUMMON: return 7; + case SPELL_FAILED_ALREADY_OPEN: return 8; + case SPELL_FAILED_AURA_BOUNCED: return 9; + case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return 10; + case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return 11; + case SPELL_FAILED_BAD_TARGETS: return 12; + case SPELL_FAILED_CANT_BE_CHARMED: return 13; + case SPELL_FAILED_CANT_BE_DISENCHANTED: return 14; + case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return 15; + case SPELL_FAILED_CANT_BE_MILLED: return 16; + case SPELL_FAILED_CANT_BE_PROSPECTED: return 17; + case SPELL_FAILED_CANT_CAST_ON_TAPPED: return 18; + case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return 19; + case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return 20; + case SPELL_FAILED_CANT_STEALTH: return 21; + case SPELL_FAILED_CASTER_AURASTATE: return 22; + case SPELL_FAILED_CASTER_DEAD: return 23; + case SPELL_FAILED_CHARMED: return 24; + case SPELL_FAILED_CHEST_IN_USE: return 25; + case SPELL_FAILED_CONFUSED: return 26; + case SPELL_FAILED_DONT_REPORT: return 27; + case SPELL_FAILED_EQUIPPED_ITEM: return 28; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return 29; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return 30; + case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return 31; + case SPELL_FAILED_ERROR: return 32; + case SPELL_FAILED_FIZZLE: return 33; + case SPELL_FAILED_FLEEING: return 34; + case SPELL_FAILED_FOOD_LOWLEVEL: return 35; + case SPELL_FAILED_HIGHLEVEL: return 36; + case SPELL_FAILED_HUNGER_SATIATED: return 37; + case SPELL_FAILED_IMMUNE: return 38; + case SPELL_FAILED_INCORRECT_AREA: return 39; + case SPELL_FAILED_INTERRUPTED: return 40; + case SPELL_FAILED_INTERRUPTED_COMBAT: return 41; + case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return 42; + case SPELL_FAILED_ITEM_GONE: return 43; + case SPELL_FAILED_ITEM_NOT_FOUND: return 44; + case SPELL_FAILED_ITEM_NOT_READY: return 45; + case SPELL_FAILED_LEVEL_REQUIREMENT: return 46; + case SPELL_FAILED_LINE_OF_SIGHT: return 47; + case SPELL_FAILED_LOWLEVEL: return 48; + case SPELL_FAILED_LOW_CASTLEVEL: return 49; + case SPELL_FAILED_MAINHAND_EMPTY: return 50; + case SPELL_FAILED_MOVING: return 51; + case SPELL_FAILED_NEED_AMMO: return 52; + case SPELL_FAILED_NEED_AMMO_POUCH: return 53; + case SPELL_FAILED_NEED_EXOTIC_AMMO: return 54; + case SPELL_FAILED_NEED_MORE_ITEMS: return 55; + case SPELL_FAILED_NOPATH: return 56; + case SPELL_FAILED_NOT_BEHIND: return 57; + case SPELL_FAILED_NOT_FISHABLE: return 58; + case SPELL_FAILED_NOT_FLYING: return 59; + case SPELL_FAILED_NOT_HERE: return 60; + case SPELL_FAILED_NOT_INFRONT: return 61; + case SPELL_FAILED_NOT_IN_CONTROL: return 62; + case SPELL_FAILED_NOT_KNOWN: return 63; + case SPELL_FAILED_NOT_MOUNTED: return 64; + case SPELL_FAILED_NOT_ON_TAXI: return 65; + case SPELL_FAILED_NOT_ON_TRANSPORT: return 66; + case SPELL_FAILED_NOT_READY: return 67; + case SPELL_FAILED_NOT_SHAPESHIFT: return 68; + case SPELL_FAILED_NOT_STANDING: return 69; + case SPELL_FAILED_NOT_TRADEABLE: return 70; + case SPELL_FAILED_NOT_TRADING: return 71; + case SPELL_FAILED_NOT_UNSHEATHED: return 72; + case SPELL_FAILED_NOT_WHILE_GHOST: return 73; + case SPELL_FAILED_NOT_WHILE_LOOTING: return 74; + case SPELL_FAILED_NO_AMMO: return 75; + case SPELL_FAILED_NO_CHARGES_REMAIN: return 76; + case SPELL_FAILED_NO_CHAMPION: return 77; + case SPELL_FAILED_NO_COMBO_POINTS: return 78; + case SPELL_FAILED_NO_DUELING: return 79; + case SPELL_FAILED_NO_ENDURANCE: return 80; + case SPELL_FAILED_NO_FISH: return 81; + case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return 82; + case SPELL_FAILED_NO_MOUNTS_ALLOWED: return 83; + case SPELL_FAILED_NO_PET: return 84; + case SPELL_FAILED_NO_POWER: return 85; + case SPELL_FAILED_NOTHING_TO_DISPEL: return 86; + case SPELL_FAILED_NOTHING_TO_STEAL: return 87; + case SPELL_FAILED_ONLY_ABOVEWATER: return 88; + case SPELL_FAILED_ONLY_DAYTIME: return 89; + case SPELL_FAILED_ONLY_INDOORS: return 90; + case SPELL_FAILED_ONLY_MOUNTED: return 91; + case SPELL_FAILED_ONLY_NIGHTTIME: return 92; + case SPELL_FAILED_ONLY_OUTDOORS: return 93; + case SPELL_FAILED_ONLY_SHAPESHIFT: return 94; + case SPELL_FAILED_ONLY_STEALTHED: return 95; + case SPELL_FAILED_ONLY_UNDERWATER: return 96; + case SPELL_FAILED_OUT_OF_RANGE: return 97; + case SPELL_FAILED_PACIFIED: return 98; + case SPELL_FAILED_POSSESSED: return 99; + case SPELL_FAILED_REAGENTS: return 100; + case SPELL_FAILED_REQUIRES_AREA: return 101; + case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return 102; + case SPELL_FAILED_ROOTED: return 103; + case SPELL_FAILED_SILENCED: return 104; + case SPELL_FAILED_SPELL_IN_PROGRESS: return 105; + case SPELL_FAILED_SPELL_LEARNED: return 106; + case SPELL_FAILED_SPELL_UNAVAILABLE: return 107; + case SPELL_FAILED_STUNNED: return 108; + case SPELL_FAILED_TARGETS_DEAD: return 109; + case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return 110; + case SPELL_FAILED_TARGET_AURASTATE: return 111; + case SPELL_FAILED_TARGET_DUELING: return 112; + case SPELL_FAILED_TARGET_ENEMY: return 113; + case SPELL_FAILED_TARGET_ENRAGED: return 114; + case SPELL_FAILED_TARGET_FRIENDLY: return 115; + case SPELL_FAILED_TARGET_IN_COMBAT: return 116; + case SPELL_FAILED_TARGET_IS_PLAYER: return 117; + case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return 118; + case SPELL_FAILED_TARGET_NOT_DEAD: return 119; + case SPELL_FAILED_TARGET_NOT_IN_PARTY: return 120; + case SPELL_FAILED_TARGET_NOT_LOOTED: return 121; + case SPELL_FAILED_TARGET_NOT_PLAYER: return 122; + case SPELL_FAILED_TARGET_NO_POCKETS: return 123; + case SPELL_FAILED_TARGET_NO_WEAPONS: return 124; + case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return 125; + case SPELL_FAILED_TARGET_UNSKINNABLE: return 126; + case SPELL_FAILED_THIRST_SATIATED: return 127; + case SPELL_FAILED_TOO_CLOSE: return 128; + case SPELL_FAILED_TOO_MANY_OF_ITEM: return 129; + case SPELL_FAILED_TOTEM_CATEGORY: return 130; + case SPELL_FAILED_TOTEMS: return 131; + case SPELL_FAILED_TRY_AGAIN: return 132; + case SPELL_FAILED_UNIT_NOT_BEHIND: return 133; + case SPELL_FAILED_UNIT_NOT_INFRONT: return 134; + case SPELL_FAILED_WRONG_PET_FOOD: return 135; + case SPELL_FAILED_NOT_WHILE_FATIGUED: return 136; + case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return 137; + case SPELL_FAILED_NOT_WHILE_TRADING: return 138; + case SPELL_FAILED_TARGET_NOT_IN_RAID: return 139; + case SPELL_FAILED_TARGET_FREEFORALL: return 140; + case SPELL_FAILED_NO_EDIBLE_CORPSES: return 141; + case SPELL_FAILED_ONLY_BATTLEGROUNDS: return 142; + case SPELL_FAILED_TARGET_NOT_GHOST: return 143; + case SPELL_FAILED_TRANSFORM_UNUSABLE: return 144; + case SPELL_FAILED_WRONG_WEATHER: return 145; + case SPELL_FAILED_DAMAGE_IMMUNE: return 146; + case SPELL_FAILED_PREVENTED_BY_MECHANIC: return 147; + case SPELL_FAILED_PLAY_TIME: return 148; + case SPELL_FAILED_REPUTATION: return 149; + case SPELL_FAILED_MIN_SKILL: return 150; + case SPELL_FAILED_NOT_IN_ARENA: return 151; + case SPELL_FAILED_NOT_ON_SHAPESHIFT: return 152; + case SPELL_FAILED_NOT_ON_STEALTHED: return 153; + case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return 154; + case SPELL_FAILED_NOT_ON_MOUNTED: return 155; + case SPELL_FAILED_TOO_SHALLOW: return 156; + case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return 157; + case SPELL_FAILED_TARGET_IS_TRIVIAL: return 158; + case SPELL_FAILED_BM_OR_INVISGOD: return 159; + case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return 160; + case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return 161; + case SPELL_FAILED_NOT_IDLE: return 162; + case SPELL_FAILED_NOT_INACTIVE: return 163; + case SPELL_FAILED_PARTIAL_PLAYTIME: return 164; + case SPELL_FAILED_NO_PLAYTIME: return 165; + case SPELL_FAILED_NOT_IN_BATTLEGROUND: return 166; + case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return 167; + case SPELL_FAILED_ONLY_IN_ARENA: return 168; + case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return 169; + case SPELL_FAILED_ON_USE_ENCHANT: return 170; + case SPELL_FAILED_NOT_ON_GROUND: return 171; + case SPELL_FAILED_CUSTOM_ERROR: return 172; + case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return 173; + case SPELL_FAILED_TOO_MANY_SOCKETS: return 174; + case SPELL_FAILED_INVALID_GLYPH: return 175; + case SPELL_FAILED_UNIQUE_GLYPH: return 176; + case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return 177; + case SPELL_FAILED_NO_VALID_TARGETS: return 178; + case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return 179; + case SPELL_FAILED_NOT_IN_BARBERSHOP: return 180; + case SPELL_FAILED_FISHING_TOO_LOW: return 181; + case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return 182; + case SPELL_FAILED_SUMMON_PENDING: return 183; + case SPELL_FAILED_MAX_SOCKETS: return 184; + case SPELL_FAILED_PET_CAN_RENAME: return 185; + case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return 186; + case SPELL_FAILED_UNKNOWN: return 187; + case SPELL_CAST_OK: return 188; + default: throw std::out_of_range("value"); + } +} + +/*********************************************************************\ +|* data for enum 'AuraStateType' in 'SharedDefines.h' auto-generated *| +\*********************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(AuraStateType value) +{ + switch (value) + { + case AURA_STATE_NONE: return { "AURA_STATE_NONE", "AURA_STATE_NONE", "C |" }; + case AURA_STATE_DEFENSE: return { "AURA_STATE_DEFENSE", "AURA_STATE_DEFENSE", "C |" }; + case AURA_STATE_HEALTHLESS_20_PERCENT: return { "AURA_STATE_HEALTHLESS_20_PERCENT", "AURA_STATE_HEALTHLESS_20_PERCENT", "CcT |" }; + case AURA_STATE_BERSERKING: return { "AURA_STATE_BERSERKING", "AURA_STATE_BERSERKING", "C T |" }; + case AURA_STATE_FROZEN: return { "AURA_STATE_FROZEN", "AURA_STATE_FROZEN", "c t| frozen target" }; + case AURA_STATE_JUDGEMENT: return { "AURA_STATE_JUDGEMENT", "AURA_STATE_JUDGEMENT", "C |" }; + case AURA_STATE_HUNTER_PARRY: return { "AURA_STATE_HUNTER_PARRY", "AURA_STATE_HUNTER_PARRY", "C |" }; + case AURA_STATE_WARRIOR_VICTORY_RUSH: return { "AURA_STATE_WARRIOR_VICTORY_RUSH", "AURA_STATE_WARRIOR_VICTORY_RUSH", "C | warrior victory rush" }; + case AURA_STATE_FAERIE_FIRE: return { "AURA_STATE_FAERIE_FIRE", "AURA_STATE_FAERIE_FIRE", "c t|" }; + case AURA_STATE_HEALTHLESS_35_PERCENT: return { "AURA_STATE_HEALTHLESS_35_PERCENT", "AURA_STATE_HEALTHLESS_35_PERCENT", "C T |" }; + case AURA_STATE_CONFLAGRATE: return { "AURA_STATE_CONFLAGRATE", "AURA_STATE_CONFLAGRATE", "T |" }; + case AURA_STATE_SWIFTMEND: return { "AURA_STATE_SWIFTMEND", "AURA_STATE_SWIFTMEND", "T |" }; + case AURA_STATE_DEADLY_POISON: return { "AURA_STATE_DEADLY_POISON", "AURA_STATE_DEADLY_POISON", "T |" }; + case AURA_STATE_ENRAGE: return { "AURA_STATE_ENRAGE", "AURA_STATE_ENRAGE", "C |" }; + case AURA_STATE_BLEEDING: return { "AURA_STATE_BLEEDING", "AURA_STATE_BLEEDING", "T|" }; + case AURA_STATE_UNKNOWN19: return { "AURA_STATE_UNKNOWN19", "AURA_STATE_UNKNOWN19", "|" }; + case AURA_STATE_UNKNOWN22: return { "AURA_STATE_UNKNOWN22", "AURA_STATE_UNKNOWN22", "C t| varius spells (63884, 50240)" }; + case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return { "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "C |" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 18; } + +template <> +AC_API_EXPORT AuraStateType EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return AURA_STATE_NONE; + case 1: return AURA_STATE_DEFENSE; + case 2: return AURA_STATE_HEALTHLESS_20_PERCENT; + case 3: return AURA_STATE_BERSERKING; + case 4: return AURA_STATE_FROZEN; + case 5: return AURA_STATE_JUDGEMENT; + case 6: return AURA_STATE_HUNTER_PARRY; + case 7: return AURA_STATE_WARRIOR_VICTORY_RUSH; + case 8: return AURA_STATE_FAERIE_FIRE; + case 9: return AURA_STATE_HEALTHLESS_35_PERCENT; + case 10: return AURA_STATE_CONFLAGRATE; + case 11: return AURA_STATE_SWIFTMEND; + case 12: return AURA_STATE_DEADLY_POISON; + case 13: return AURA_STATE_ENRAGE; + case 14: return AURA_STATE_BLEEDING; + case 15: return AURA_STATE_UNKNOWN19; + case 16: return AURA_STATE_UNKNOWN22; + case 17: return AURA_STATE_HEALTH_ABOVE_75_PERCENT; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(AuraStateType value) +{ + switch (value) + { + case AURA_STATE_NONE: return 0; + case AURA_STATE_DEFENSE: return 1; + case AURA_STATE_HEALTHLESS_20_PERCENT: return 2; + case AURA_STATE_BERSERKING: return 3; + case AURA_STATE_FROZEN: return 4; + case AURA_STATE_JUDGEMENT: return 5; + case AURA_STATE_HUNTER_PARRY: return 6; + case AURA_STATE_WARRIOR_VICTORY_RUSH: return 7; + case AURA_STATE_FAERIE_FIRE: return 8; + case AURA_STATE_HEALTHLESS_35_PERCENT: return 9; + case AURA_STATE_CONFLAGRATE: return 10; + case AURA_STATE_SWIFTMEND: return 11; + case AURA_STATE_DEADLY_POISON: return 12; + case AURA_STATE_ENRAGE: return 13; + case AURA_STATE_BLEEDING: return 14; + case AURA_STATE_UNKNOWN19: return 15; + case AURA_STATE_UNKNOWN22: return 16; + case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return 17; + default: throw std::out_of_range("value"); + } +} + /*****************************************************************\ |* data for enum 'Mechanics' in 'SharedDefines.h' auto-generated *| \*****************************************************************/