aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/world/master/2022_02_05_13_world_2020_09_10_00_world.sql1
-rw-r--r--src/server/game/Chat/Channels/Channel.h7
-rw-r--r--src/server/game/Chat/Channels/enuminfo_Channel.cpp172
-rw-r--r--src/server/game/Entities/Item/ItemDefines.h17
-rw-r--r--src/server/game/Entities/Item/enuminfo_ItemDefines.cpp508
-rw-r--r--src/server/game/Entities/Player/Player.cpp12
-rw-r--r--src/server/game/Entities/Player/Player.h4
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h5
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp1326
-rw-r--r--src/server/game/Quests/QuestDef.h30
-rw-r--r--src/server/game/Quests/enuminfo_QuestDef.cpp259
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp254
12 files changed, 2378 insertions, 217 deletions
diff --git a/sql/updates/world/master/2022_02_05_13_world_2020_09_10_00_world.sql b/sql/updates/world/master/2022_02_05_13_world_2020_09_10_00_world.sql
new file mode 100644
index 00000000000..a2e9d6b964a
--- /dev/null
+++ b/sql/updates/world/master/2022_02_05_13_world_2020_09_10_00_world.sql
@@ -0,0 +1 @@
+DELETE FROM `command` WHERE name='debug setvid';
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index 61f6f0c7cf2..4465acd85ed 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -35,7 +35,8 @@ namespace WorldPackets
}
}
-enum ChatNotify
+// EnumUtils: DESCRIBE THIS
+enum ChatNotify : uint8
{
CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel.";
CHAT_LEFT_NOTICE = 0x01, //+ "%s left channel.";
@@ -75,8 +76,8 @@ enum ChatNotify
CHAT_NOT_IN_LFG_NOTICE = 0x21, //+ "[%s] You must be queued in looking for group before joining this channel."; -- The user must be in the looking for group system to join LFG chat channels.
CHAT_VOICE_ON_NOTICE = 0x22, //+ "[%s] Channel voice enabled by %s.";
CHAT_VOICE_OFF_NOTICE = 0x23, //+ "[%s] Channel voice disabled by %s.";
- CHAT_TRIAL_RESTRICTED = 0x24,
- CHAT_NOT_ALLOWED_IN_CHANNEL = 0x25
+ CHAT_TRIAL_RESTRICTED = 0x24, //+ "[%s] Free Trial accounts cannot send messages to this channel. |cffffd000|Hstorecategory:gametime|h[Click To Upgrade]|h|r"
+ CHAT_NOT_ALLOWED_IN_CHANNEL = 0x25 //+ "That operation is not permitted in this channel."
};
enum ChannelFlags
diff --git a/src/server/game/Chat/Channels/enuminfo_Channel.cpp b/src/server/game/Chat/Channels/enuminfo_Channel.cpp
new file mode 100644
index 00000000000..7a8b7d3249e
--- /dev/null
+++ b/src/server/game/Chat/Channels/enuminfo_Channel.cpp
@@ -0,0 +1,172 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "Channel.h"
+#include "Define.h"
+#include "SmartEnum.h"
+#include <stdexcept>
+
+namespace Trinity::Impl::EnumUtilsImpl
+{
+
+/************************************************************\
+|* data for enum 'ChatNotify' in 'Channel.h' auto-generated *|
+\************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<ChatNotify>::ToString(ChatNotify value)
+{
+ switch (value)
+ {
+ case CHAT_JOINED_NOTICE: return { "CHAT_JOINED_NOTICE", "CHAT_JOINED_NOTICE", "+ \042%s joined channel.\042;" };
+ case CHAT_LEFT_NOTICE: return { "CHAT_LEFT_NOTICE", "CHAT_LEFT_NOTICE", "+ \042%s left channel.\042;" };
+ case CHAT_YOU_JOINED_NOTICE: return { "CHAT_YOU_JOINED_NOTICE", "CHAT_YOU_JOINED_NOTICE", "+ \042Joined Channel: [%s]\042; -- You joined" };
+ case CHAT_YOU_LEFT_NOTICE: return { "CHAT_YOU_LEFT_NOTICE", "CHAT_YOU_LEFT_NOTICE", "+ \042Left Channel: [%s]\042; -- You left" };
+ case CHAT_WRONG_PASSWORD_NOTICE: return { "CHAT_WRONG_PASSWORD_NOTICE", "CHAT_WRONG_PASSWORD_NOTICE", "+ \042Wrong password for %s.\042;" };
+ case CHAT_NOT_MEMBER_NOTICE: return { "CHAT_NOT_MEMBER_NOTICE", "CHAT_NOT_MEMBER_NOTICE", "+ \042Not on channel %s.\042;" };
+ case CHAT_NOT_MODERATOR_NOTICE: return { "CHAT_NOT_MODERATOR_NOTICE", "CHAT_NOT_MODERATOR_NOTICE", "+ \042Not a moderator of %s.\042;" };
+ case CHAT_PASSWORD_CHANGED_NOTICE: return { "CHAT_PASSWORD_CHANGED_NOTICE", "CHAT_PASSWORD_CHANGED_NOTICE", "+ \042[%s] Password changed by %s.\042;" };
+ case CHAT_OWNER_CHANGED_NOTICE: return { "CHAT_OWNER_CHANGED_NOTICE", "CHAT_OWNER_CHANGED_NOTICE", "+ \042[%s] Owner changed to %s.\042;" };
+ case CHAT_PLAYER_NOT_FOUND_NOTICE: return { "CHAT_PLAYER_NOT_FOUND_NOTICE", "CHAT_PLAYER_NOT_FOUND_NOTICE", "+ \042[%s] Player %s was not found.\042;" };
+ case CHAT_NOT_OWNER_NOTICE: return { "CHAT_NOT_OWNER_NOTICE", "CHAT_NOT_OWNER_NOTICE", "+ \042[%s] You are not the channel owner.\042;" };
+ case CHAT_CHANNEL_OWNER_NOTICE: return { "CHAT_CHANNEL_OWNER_NOTICE", "CHAT_CHANNEL_OWNER_NOTICE", "+ \042[%s] Channel owner is %s.\042;" };
+ case CHAT_MODE_CHANGE_NOTICE: return { "CHAT_MODE_CHANGE_NOTICE", "CHAT_MODE_CHANGE_NOTICE", "?" };
+ case CHAT_ANNOUNCEMENTS_ON_NOTICE: return { "CHAT_ANNOUNCEMENTS_ON_NOTICE", "CHAT_ANNOUNCEMENTS_ON_NOTICE", "+ \042[%s] Channel announcements enabled by %s.\042;" };
+ case CHAT_ANNOUNCEMENTS_OFF_NOTICE: return { "CHAT_ANNOUNCEMENTS_OFF_NOTICE", "CHAT_ANNOUNCEMENTS_OFF_NOTICE", "+ \042[%s] Channel announcements disabled by %s.\042;" };
+ case CHAT_MODERATION_ON_NOTICE: return { "CHAT_MODERATION_ON_NOTICE", "CHAT_MODERATION_ON_NOTICE", "+ \042[%s] Channel moderation enabled by %s.\042;" };
+ case CHAT_MODERATION_OFF_NOTICE: return { "CHAT_MODERATION_OFF_NOTICE", "CHAT_MODERATION_OFF_NOTICE", "+ \042[%s] Channel moderation disabled by %s.\042;" };
+ case CHAT_MUTED_NOTICE: return { "CHAT_MUTED_NOTICE", "CHAT_MUTED_NOTICE", "+ \042[%s] You do not have permission to speak.\042;" };
+ case CHAT_PLAYER_KICKED_NOTICE: return { "CHAT_PLAYER_KICKED_NOTICE", "CHAT_PLAYER_KICKED_NOTICE", "? \042[%s] Player %s kicked by %s.\042;" };
+ case CHAT_BANNED_NOTICE: return { "CHAT_BANNED_NOTICE", "CHAT_BANNED_NOTICE", "+ \042[%s] You are banned from that channel.\042;" };
+ case CHAT_PLAYER_BANNED_NOTICE: return { "CHAT_PLAYER_BANNED_NOTICE", "CHAT_PLAYER_BANNED_NOTICE", "? \042[%s] Player %s banned by %s.\042;" };
+ case CHAT_PLAYER_UNBANNED_NOTICE: return { "CHAT_PLAYER_UNBANNED_NOTICE", "CHAT_PLAYER_UNBANNED_NOTICE", "? \042[%s] Player %s unbanned by %s.\042;" };
+ case CHAT_PLAYER_NOT_BANNED_NOTICE: return { "CHAT_PLAYER_NOT_BANNED_NOTICE", "CHAT_PLAYER_NOT_BANNED_NOTICE", "+ \042[%s] Player %s is not banned.\042;" };
+ case CHAT_PLAYER_ALREADY_MEMBER_NOTICE: return { "CHAT_PLAYER_ALREADY_MEMBER_NOTICE", "CHAT_PLAYER_ALREADY_MEMBER_NOTICE", "+ \042[%s] Player %s is already on the channel.\042;" };
+ case CHAT_INVITE_NOTICE: return { "CHAT_INVITE_NOTICE", "CHAT_INVITE_NOTICE", "+ \042%2$s has invited you to join the channel '%1$s'.\042;" };
+ case CHAT_INVITE_WRONG_FACTION_NOTICE: return { "CHAT_INVITE_WRONG_FACTION_NOTICE", "CHAT_INVITE_WRONG_FACTION_NOTICE", "+ \042Target is in the wrong alliance for %s.\042;" };
+ case CHAT_WRONG_FACTION_NOTICE: return { "CHAT_WRONG_FACTION_NOTICE", "CHAT_WRONG_FACTION_NOTICE", "+ \042Wrong alliance for %s.\042;" };
+ case CHAT_INVALID_NAME_NOTICE: return { "CHAT_INVALID_NAME_NOTICE", "CHAT_INVALID_NAME_NOTICE", "+ \042Invalid channel name\042;" };
+ case CHAT_NOT_MODERATED_NOTICE: return { "CHAT_NOT_MODERATED_NOTICE", "CHAT_NOT_MODERATED_NOTICE", "+ \042%s is not moderated\042;" };
+ case CHAT_PLAYER_INVITED_NOTICE: return { "CHAT_PLAYER_INVITED_NOTICE", "CHAT_PLAYER_INVITED_NOTICE", "+ \042[%s] You invited %s to join the channel\042;" };
+ case CHAT_PLAYER_INVITE_BANNED_NOTICE: return { "CHAT_PLAYER_INVITE_BANNED_NOTICE", "CHAT_PLAYER_INVITE_BANNED_NOTICE", "+ \042[%s] %s has been banned.\042;" };
+ case CHAT_THROTTLED_NOTICE: return { "CHAT_THROTTLED_NOTICE", "CHAT_THROTTLED_NOTICE", "+ \042[%s] The number of messages that can be sent to this channel is limited, please wait to send another message.\042;" };
+ case CHAT_NOT_IN_AREA_NOTICE: return { "CHAT_NOT_IN_AREA_NOTICE", "CHAT_NOT_IN_AREA_NOTICE", "+ \042[%s] You are not in the correct area for this channel.\042; -- The user is trying to send a chat to a zone specific channel, and they're not physically in that zone." };
+ case CHAT_NOT_IN_LFG_NOTICE: return { "CHAT_NOT_IN_LFG_NOTICE", "CHAT_NOT_IN_LFG_NOTICE", "+ \042[%s] You must be queued in looking for group before joining this channel.\042; -- The user must be in the looking for group system to join LFG chat channels." };
+ case CHAT_VOICE_ON_NOTICE: return { "CHAT_VOICE_ON_NOTICE", "CHAT_VOICE_ON_NOTICE", "+ \042[%s] Channel voice enabled by %s.\042;" };
+ case CHAT_VOICE_OFF_NOTICE: return { "CHAT_VOICE_OFF_NOTICE", "CHAT_VOICE_OFF_NOTICE", "+ \042[%s] Channel voice disabled by %s.\042;" };
+ case CHAT_TRIAL_RESTRICTED: return { "CHAT_TRIAL_RESTRICTED", "CHAT_TRIAL_RESTRICTED", "+ \042[%s] Free Trial accounts cannot send messages to this channel. |cffffd000|Hstorecategory:gametime|h[Click To Upgrade]|h|r\042" };
+ case CHAT_NOT_ALLOWED_IN_CHANNEL: return { "CHAT_NOT_ALLOWED_IN_CHANNEL", "CHAT_NOT_ALLOWED_IN_CHANNEL", "+ \042That operation is not permitted in this channel.\042" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatNotify>::Count() { return 38; }
+
+template <>
+TC_API_EXPORT ChatNotify EnumUtils<ChatNotify>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return CHAT_JOINED_NOTICE;
+ case 1: return CHAT_LEFT_NOTICE;
+ case 2: return CHAT_YOU_JOINED_NOTICE;
+ case 3: return CHAT_YOU_LEFT_NOTICE;
+ case 4: return CHAT_WRONG_PASSWORD_NOTICE;
+ case 5: return CHAT_NOT_MEMBER_NOTICE;
+ case 6: return CHAT_NOT_MODERATOR_NOTICE;
+ case 7: return CHAT_PASSWORD_CHANGED_NOTICE;
+ case 8: return CHAT_OWNER_CHANGED_NOTICE;
+ case 9: return CHAT_PLAYER_NOT_FOUND_NOTICE;
+ case 10: return CHAT_NOT_OWNER_NOTICE;
+ case 11: return CHAT_CHANNEL_OWNER_NOTICE;
+ case 12: return CHAT_MODE_CHANGE_NOTICE;
+ case 13: return CHAT_ANNOUNCEMENTS_ON_NOTICE;
+ case 14: return CHAT_ANNOUNCEMENTS_OFF_NOTICE;
+ case 15: return CHAT_MODERATION_ON_NOTICE;
+ case 16: return CHAT_MODERATION_OFF_NOTICE;
+ case 17: return CHAT_MUTED_NOTICE;
+ case 18: return CHAT_PLAYER_KICKED_NOTICE;
+ case 19: return CHAT_BANNED_NOTICE;
+ case 20: return CHAT_PLAYER_BANNED_NOTICE;
+ case 21: return CHAT_PLAYER_UNBANNED_NOTICE;
+ case 22: return CHAT_PLAYER_NOT_BANNED_NOTICE;
+ case 23: return CHAT_PLAYER_ALREADY_MEMBER_NOTICE;
+ case 24: return CHAT_INVITE_NOTICE;
+ case 25: return CHAT_INVITE_WRONG_FACTION_NOTICE;
+ case 26: return CHAT_WRONG_FACTION_NOTICE;
+ case 27: return CHAT_INVALID_NAME_NOTICE;
+ case 28: return CHAT_NOT_MODERATED_NOTICE;
+ case 29: return CHAT_PLAYER_INVITED_NOTICE;
+ case 30: return CHAT_PLAYER_INVITE_BANNED_NOTICE;
+ case 31: return CHAT_THROTTLED_NOTICE;
+ case 32: return CHAT_NOT_IN_AREA_NOTICE;
+ case 33: return CHAT_NOT_IN_LFG_NOTICE;
+ case 34: return CHAT_VOICE_ON_NOTICE;
+ case 35: return CHAT_VOICE_OFF_NOTICE;
+ case 36: return CHAT_TRIAL_RESTRICTED;
+ case 37: return CHAT_NOT_ALLOWED_IN_CHANNEL;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatNotify>::ToIndex(ChatNotify value)
+{
+ switch (value)
+ {
+ case CHAT_JOINED_NOTICE: return 0;
+ case CHAT_LEFT_NOTICE: return 1;
+ case CHAT_YOU_JOINED_NOTICE: return 2;
+ case CHAT_YOU_LEFT_NOTICE: return 3;
+ case CHAT_WRONG_PASSWORD_NOTICE: return 4;
+ case CHAT_NOT_MEMBER_NOTICE: return 5;
+ case CHAT_NOT_MODERATOR_NOTICE: return 6;
+ case CHAT_PASSWORD_CHANGED_NOTICE: return 7;
+ case CHAT_OWNER_CHANGED_NOTICE: return 8;
+ case CHAT_PLAYER_NOT_FOUND_NOTICE: return 9;
+ case CHAT_NOT_OWNER_NOTICE: return 10;
+ case CHAT_CHANNEL_OWNER_NOTICE: return 11;
+ case CHAT_MODE_CHANGE_NOTICE: return 12;
+ case CHAT_ANNOUNCEMENTS_ON_NOTICE: return 13;
+ case CHAT_ANNOUNCEMENTS_OFF_NOTICE: return 14;
+ case CHAT_MODERATION_ON_NOTICE: return 15;
+ case CHAT_MODERATION_OFF_NOTICE: return 16;
+ case CHAT_MUTED_NOTICE: return 17;
+ case CHAT_PLAYER_KICKED_NOTICE: return 18;
+ case CHAT_BANNED_NOTICE: return 19;
+ case CHAT_PLAYER_BANNED_NOTICE: return 20;
+ case CHAT_PLAYER_UNBANNED_NOTICE: return 21;
+ case CHAT_PLAYER_NOT_BANNED_NOTICE: return 22;
+ case CHAT_PLAYER_ALREADY_MEMBER_NOTICE: return 23;
+ case CHAT_INVITE_NOTICE: return 24;
+ case CHAT_INVITE_WRONG_FACTION_NOTICE: return 25;
+ case CHAT_WRONG_FACTION_NOTICE: return 26;
+ case CHAT_INVALID_NAME_NOTICE: return 27;
+ case CHAT_NOT_MODERATED_NOTICE: return 28;
+ case CHAT_PLAYER_INVITED_NOTICE: return 29;
+ case CHAT_PLAYER_INVITE_BANNED_NOTICE: return 30;
+ case CHAT_THROTTLED_NOTICE: return 31;
+ case CHAT_NOT_IN_AREA_NOTICE: return 32;
+ case CHAT_NOT_IN_LFG_NOTICE: return 33;
+ case CHAT_VOICE_ON_NOTICE: return 34;
+ case CHAT_VOICE_OFF_NOTICE: return 35;
+ case CHAT_TRIAL_RESTRICTED: return 36;
+ case CHAT_NOT_ALLOWED_IN_CHANNEL: return 37;
+ default: throw std::out_of_range("value");
+ }
+}
+}
diff --git a/src/server/game/Entities/Item/ItemDefines.h b/src/server/game/Entities/Item/ItemDefines.h
index 99ae41d95c7..6f6322c0e15 100644
--- a/src/server/game/Entities/Item/ItemDefines.h
+++ b/src/server/game/Entities/Item/ItemDefines.h
@@ -20,6 +20,7 @@
#include "Define.h"
+// EnumUtils: DESCRIBE THIS
enum InventoryResult : uint8
{
EQUIP_ERR_OK = 0,
@@ -136,6 +137,7 @@ enum InventoryResult : uint8
EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND = 111,// You can't do that in a rated battleground.
};
+// EnumUtils: DESCRIBE THIS
enum BuyResult
{
BUY_ERR_CANT_FIND_ITEM = 0,
@@ -149,15 +151,16 @@ enum BuyResult
BUY_ERR_REPUTATION_REQUIRE = 12
};
+// EnumUtils: DESCRIBE THIS
enum SellResult
{
- SELL_ERR_CANT_FIND_ITEM = 1, // The item was not found.
- SELL_ERR_CANT_SELL_ITEM = 2, // The merchant doesn't want that item.
- SELL_ERR_CANT_FIND_VENDOR = 3, // The merchant doesn't like you.
- SELL_ERR_YOU_DONT_OWN_THAT_ITEM = 4, // You don't own that item.
- SELL_ERR_UNK = 5, // nothing appears...
- SELL_ERR_ONLY_EMPTY_BAG = 6, // You can only do that with empty bags.
- SELL_ERR_CANT_SELL_TO_THIS_MERCHANT = 7 // You cannot sell items to this merchant.
+ SELL_ERR_CANT_FIND_ITEM = 1, // DESCRIPTION The item was not found.
+ SELL_ERR_CANT_SELL_ITEM = 2, // DESCRIPTION The merchant doesn't want that item.
+ SELL_ERR_CANT_FIND_VENDOR = 3, // DESCRIPTION The merchant doesn't like you.
+ SELL_ERR_YOU_DONT_OWN_THAT_ITEM = 4, // DESCRIPTION You don't own that item.
+ SELL_ERR_UNK = 5, // DESCRIPTION nothing appears...
+ SELL_ERR_ONLY_EMPTY_BAG = 6, // DESCRIPTION You can only do that with empty bags.
+ SELL_ERR_CANT_SELL_TO_THIS_MERCHANT = 7 // DESCRIPTION You cannot sell items to this merchant.
};
// -1 from client enchantment slot number
diff --git a/src/server/game/Entities/Item/enuminfo_ItemDefines.cpp b/src/server/game/Entities/Item/enuminfo_ItemDefines.cpp
new file mode 100644
index 00000000000..3511e67eb79
--- /dev/null
+++ b/src/server/game/Entities/Item/enuminfo_ItemDefines.cpp
@@ -0,0 +1,508 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "ItemDefines.h"
+#include "Define.h"
+#include "SmartEnum.h"
+#include <stdexcept>
+
+namespace Trinity::Impl::EnumUtilsImpl
+{
+
+/*********************************************************************\
+|* data for enum 'InventoryResult' in 'ItemDefines.h' auto-generated *|
+\*********************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<InventoryResult>::ToString(InventoryResult value)
+{
+ switch (value)
+ {
+ case EQUIP_ERR_OK: return { "EQUIP_ERR_OK", "EQUIP_ERR_OK", "" };
+ case EQUIP_ERR_CANT_EQUIP_LEVEL_I: return { "EQUIP_ERR_CANT_EQUIP_LEVEL_I", "EQUIP_ERR_CANT_EQUIP_LEVEL_I", "You must reach level %d to use that item." };
+ case EQUIP_ERR_CANT_EQUIP_SKILL: return { "EQUIP_ERR_CANT_EQUIP_SKILL", "EQUIP_ERR_CANT_EQUIP_SKILL", "You aren't skilled enough to use that item." };
+ case EQUIP_ERR_WRONG_SLOT: return { "EQUIP_ERR_WRONG_SLOT", "EQUIP_ERR_WRONG_SLOT", "That item does not go in that slot." };
+ case EQUIP_ERR_BAG_FULL: return { "EQUIP_ERR_BAG_FULL", "EQUIP_ERR_BAG_FULL", "That bag is full." };
+ case EQUIP_ERR_BAG_IN_BAG: return { "EQUIP_ERR_BAG_IN_BAG", "EQUIP_ERR_BAG_IN_BAG", "Can't put non-empty bags in other bags." };
+ case EQUIP_ERR_TRADE_EQUIPPED_BAG: return { "EQUIP_ERR_TRADE_EQUIPPED_BAG", "EQUIP_ERR_TRADE_EQUIPPED_BAG", "You can't trade equipped bags." };
+ case EQUIP_ERR_AMMO_ONLY: return { "EQUIP_ERR_AMMO_ONLY", "EQUIP_ERR_AMMO_ONLY", "Only ammo can go there." };
+ case EQUIP_ERR_PROFICIENCY_NEEDED: return { "EQUIP_ERR_PROFICIENCY_NEEDED", "EQUIP_ERR_PROFICIENCY_NEEDED", "You do not have the required proficiency for that item." };
+ case EQUIP_ERR_NO_SLOT_AVAILABLE: return { "EQUIP_ERR_NO_SLOT_AVAILABLE", "EQUIP_ERR_NO_SLOT_AVAILABLE", "No equipment slot is available for that item." };
+ case EQUIP_ERR_CANT_EQUIP_EVER: return { "EQUIP_ERR_CANT_EQUIP_EVER", "EQUIP_ERR_CANT_EQUIP_EVER", "You can never use that item." };
+ case EQUIP_ERR_CANT_EQUIP_EVER_2: return { "EQUIP_ERR_CANT_EQUIP_EVER_2", "EQUIP_ERR_CANT_EQUIP_EVER_2", "You can never use that item." };
+ case EQUIP_ERR_NO_SLOT_AVAILABLE_2: return { "EQUIP_ERR_NO_SLOT_AVAILABLE_2", "EQUIP_ERR_NO_SLOT_AVAILABLE_2", "No equipment slot is available for that item." };
+ case EQUIP_ERR_2HANDED_EQUIPPED: return { "EQUIP_ERR_2HANDED_EQUIPPED", "EQUIP_ERR_2HANDED_EQUIPPED", "Cannot equip that with a two-handed weapon." };
+ case EQUIP_ERR_2HSKILLNOTFOUND: return { "EQUIP_ERR_2HSKILLNOTFOUND", "EQUIP_ERR_2HSKILLNOTFOUND", "You cannot dual-wield" };
+ case EQUIP_ERR_WRONG_BAG_TYPE: return { "EQUIP_ERR_WRONG_BAG_TYPE", "EQUIP_ERR_WRONG_BAG_TYPE", "That item doesn't go in that container." };
+ case EQUIP_ERR_WRONG_BAG_TYPE_2: return { "EQUIP_ERR_WRONG_BAG_TYPE_2", "EQUIP_ERR_WRONG_BAG_TYPE_2", "That item doesn't go in that container." };
+ case EQUIP_ERR_ITEM_MAX_COUNT: return { "EQUIP_ERR_ITEM_MAX_COUNT", "EQUIP_ERR_ITEM_MAX_COUNT", "You can't carry any more of those items." };
+ case EQUIP_ERR_NO_SLOT_AVAILABLE_3: return { "EQUIP_ERR_NO_SLOT_AVAILABLE_3", "EQUIP_ERR_NO_SLOT_AVAILABLE_3", "No equipment slot is available for that item." };
+ case EQUIP_ERR_CANT_STACK: return { "EQUIP_ERR_CANT_STACK", "EQUIP_ERR_CANT_STACK", "This item cannot stack." };
+ case EQUIP_ERR_NOT_EQUIPPABLE: return { "EQUIP_ERR_NOT_EQUIPPABLE", "EQUIP_ERR_NOT_EQUIPPABLE", "This item cannot be equipped." };
+ case EQUIP_ERR_CANT_SWAP: return { "EQUIP_ERR_CANT_SWAP", "EQUIP_ERR_CANT_SWAP", "These items can't be swapped." };
+ case EQUIP_ERR_SLOT_EMPTY: return { "EQUIP_ERR_SLOT_EMPTY", "EQUIP_ERR_SLOT_EMPTY", "That slot is empty." };
+ case EQUIP_ERR_ITEM_NOT_FOUND: return { "EQUIP_ERR_ITEM_NOT_FOUND", "EQUIP_ERR_ITEM_NOT_FOUND", "The item was not found." };
+ case EQUIP_ERR_DROP_BOUND_ITEM: return { "EQUIP_ERR_DROP_BOUND_ITEM", "EQUIP_ERR_DROP_BOUND_ITEM", "You can't drop a soulbound item." };
+ case EQUIP_ERR_OUT_OF_RANGE: return { "EQUIP_ERR_OUT_OF_RANGE", "EQUIP_ERR_OUT_OF_RANGE", "Out of range." };
+ case EQUIP_ERR_TOO_FEW_TO_SPLIT: return { "EQUIP_ERR_TOO_FEW_TO_SPLIT", "EQUIP_ERR_TOO_FEW_TO_SPLIT", "Tried to split more than number in stack." };
+ case EQUIP_ERR_SPLIT_FAILED: return { "EQUIP_ERR_SPLIT_FAILED", "EQUIP_ERR_SPLIT_FAILED", "Couldn't split those items." };
+ case EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC: return { "EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC", "EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC", "Missing reagent" };
+ case EQUIP_ERR_CANT_TRADE_GOLD: return { "EQUIP_ERR_CANT_TRADE_GOLD", "EQUIP_ERR_CANT_TRADE_GOLD", "Gold may only be offered by one trader." };
+ case EQUIP_ERR_NOT_ENOUGH_MONEY: return { "EQUIP_ERR_NOT_ENOUGH_MONEY", "EQUIP_ERR_NOT_ENOUGH_MONEY", "You don't have enough money." };
+ case EQUIP_ERR_NOT_A_BAG: return { "EQUIP_ERR_NOT_A_BAG", "EQUIP_ERR_NOT_A_BAG", "Not a bag." };
+ case EQUIP_ERR_DESTROY_NONEMPTY_BAG: return { "EQUIP_ERR_DESTROY_NONEMPTY_BAG", "EQUIP_ERR_DESTROY_NONEMPTY_BAG", "You can only do that with empty bags." };
+ case EQUIP_ERR_NOT_OWNER: return { "EQUIP_ERR_NOT_OWNER", "EQUIP_ERR_NOT_OWNER", "You don't own that item." };
+ case EQUIP_ERR_ONLY_ONE_QUIVER: return { "EQUIP_ERR_ONLY_ONE_QUIVER", "EQUIP_ERR_ONLY_ONE_QUIVER", "You can only equip one quiver." };
+ case EQUIP_ERR_NO_BANK_SLOT: return { "EQUIP_ERR_NO_BANK_SLOT", "EQUIP_ERR_NO_BANK_SLOT", "You must purchase that bag slot first" };
+ case EQUIP_ERR_NO_BANK_HERE: return { "EQUIP_ERR_NO_BANK_HERE", "EQUIP_ERR_NO_BANK_HERE", "You are too far away from a bank." };
+ case EQUIP_ERR_ITEM_LOCKED: return { "EQUIP_ERR_ITEM_LOCKED", "EQUIP_ERR_ITEM_LOCKED", "Item is locked." };
+ case EQUIP_ERR_GENERIC_STUNNED: return { "EQUIP_ERR_GENERIC_STUNNED", "EQUIP_ERR_GENERIC_STUNNED", "You are stunned" };
+ case EQUIP_ERR_PLAYER_DEAD: return { "EQUIP_ERR_PLAYER_DEAD", "EQUIP_ERR_PLAYER_DEAD", "You can't do that when you're dead." };
+ case EQUIP_ERR_CLIENT_LOCKED_OUT: return { "EQUIP_ERR_CLIENT_LOCKED_OUT", "EQUIP_ERR_CLIENT_LOCKED_OUT", "You can't do that right now." };
+ case EQUIP_ERR_INTERNAL_BAG_ERROR: return { "EQUIP_ERR_INTERNAL_BAG_ERROR", "EQUIP_ERR_INTERNAL_BAG_ERROR", "Internal Bag Error" };
+ case EQUIP_ERR_ONLY_ONE_BOLT: return { "EQUIP_ERR_ONLY_ONE_BOLT", "EQUIP_ERR_ONLY_ONE_BOLT", "You can only equip one quiver." };
+ case EQUIP_ERR_ONLY_ONE_AMMO: return { "EQUIP_ERR_ONLY_ONE_AMMO", "EQUIP_ERR_ONLY_ONE_AMMO", "You can only equip one ammo pouch." };
+ case EQUIP_ERR_CANT_WRAP_STACKABLE: return { "EQUIP_ERR_CANT_WRAP_STACKABLE", "EQUIP_ERR_CANT_WRAP_STACKABLE", "Stackable items can't be wrapped." };
+ case EQUIP_ERR_CANT_WRAP_EQUIPPED: return { "EQUIP_ERR_CANT_WRAP_EQUIPPED", "EQUIP_ERR_CANT_WRAP_EQUIPPED", "Equipped items can't be wrapped." };
+ case EQUIP_ERR_CANT_WRAP_WRAPPED: return { "EQUIP_ERR_CANT_WRAP_WRAPPED", "EQUIP_ERR_CANT_WRAP_WRAPPED", "Wrapped items can't be wrapped." };
+ case EQUIP_ERR_CANT_WRAP_BOUND: return { "EQUIP_ERR_CANT_WRAP_BOUND", "EQUIP_ERR_CANT_WRAP_BOUND", "Bound items can't be wrapped." };
+ case EQUIP_ERR_CANT_WRAP_UNIQUE: return { "EQUIP_ERR_CANT_WRAP_UNIQUE", "EQUIP_ERR_CANT_WRAP_UNIQUE", "Unique items can't be wrapped." };
+ case EQUIP_ERR_CANT_WRAP_BAGS: return { "EQUIP_ERR_CANT_WRAP_BAGS", "EQUIP_ERR_CANT_WRAP_BAGS", "Bags can't be wrapped." };
+ case EQUIP_ERR_LOOT_GONE: return { "EQUIP_ERR_LOOT_GONE", "EQUIP_ERR_LOOT_GONE", "Already looted" };
+ case EQUIP_ERR_INV_FULL: return { "EQUIP_ERR_INV_FULL", "EQUIP_ERR_INV_FULL", "Inventory is full." };
+ case EQUIP_ERR_BANK_FULL: return { "EQUIP_ERR_BANK_FULL", "EQUIP_ERR_BANK_FULL", "Your bank is full" };
+ case EQUIP_ERR_VENDOR_SOLD_OUT: return { "EQUIP_ERR_VENDOR_SOLD_OUT", "EQUIP_ERR_VENDOR_SOLD_OUT", "That item is currently sold out." };
+ case EQUIP_ERR_BAG_FULL_2: return { "EQUIP_ERR_BAG_FULL_2", "EQUIP_ERR_BAG_FULL_2", "That bag is full." };
+ case EQUIP_ERR_ITEM_NOT_FOUND_2: return { "EQUIP_ERR_ITEM_NOT_FOUND_2", "EQUIP_ERR_ITEM_NOT_FOUND_2", "The item was not found." };
+ case EQUIP_ERR_CANT_STACK_2: return { "EQUIP_ERR_CANT_STACK_2", "EQUIP_ERR_CANT_STACK_2", "This item cannot stack." };
+ case EQUIP_ERR_BAG_FULL_3: return { "EQUIP_ERR_BAG_FULL_3", "EQUIP_ERR_BAG_FULL_3", "That bag is full." };
+ case EQUIP_ERR_VENDOR_SOLD_OUT_2: return { "EQUIP_ERR_VENDOR_SOLD_OUT_2", "EQUIP_ERR_VENDOR_SOLD_OUT_2", "That item is currently sold out." };
+ case EQUIP_ERR_OBJECT_IS_BUSY: return { "EQUIP_ERR_OBJECT_IS_BUSY", "EQUIP_ERR_OBJECT_IS_BUSY", "That object is busy." };
+ case EQUIP_ERR_CANT_BE_DISENCHANTED: return { "EQUIP_ERR_CANT_BE_DISENCHANTED", "EQUIP_ERR_CANT_BE_DISENCHANTED", "Item cannot be disenchanted" };
+ case EQUIP_ERR_NOT_IN_COMBAT: return { "EQUIP_ERR_NOT_IN_COMBAT", "EQUIP_ERR_NOT_IN_COMBAT", "You can't do that while in combat" };
+ case EQUIP_ERR_NOT_WHILE_DISARMED: return { "EQUIP_ERR_NOT_WHILE_DISARMED", "EQUIP_ERR_NOT_WHILE_DISARMED", "You can't do that while disarmed" };
+ case EQUIP_ERR_BAG_FULL_4: return { "EQUIP_ERR_BAG_FULL_4", "EQUIP_ERR_BAG_FULL_4", "That bag is full." };
+ case EQUIP_ERR_CANT_EQUIP_RANK: return { "EQUIP_ERR_CANT_EQUIP_RANK", "EQUIP_ERR_CANT_EQUIP_RANK", "You don't have the required rank for that item" };
+ case EQUIP_ERR_CANT_EQUIP_REPUTATION: return { "EQUIP_ERR_CANT_EQUIP_REPUTATION", "EQUIP_ERR_CANT_EQUIP_REPUTATION", "You don't have the required reputation for that item" };
+ case EQUIP_ERR_TOO_MANY_SPECIAL_BAGS: return { "EQUIP_ERR_TOO_MANY_SPECIAL_BAGS", "EQUIP_ERR_TOO_MANY_SPECIAL_BAGS", "You cannot equip another bag of that type" };
+ case EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW: return { "EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW", "EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW", "You can't loot that item now." };
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE: return { "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE", "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE", "You cannot equip more than one of those." };
+ case EQUIP_ERR_VENDOR_MISSING_TURNINS: return { "EQUIP_ERR_VENDOR_MISSING_TURNINS", "EQUIP_ERR_VENDOR_MISSING_TURNINS", "You do not have the required items for that purchase" };
+ case EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS: return { "EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS", "EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS", "You don't have enough honor points" };
+ case EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS: return { "EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS", "EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS", "You don't have enough arena points" };
+ case EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED: return { "EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED", "EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED", "You have the maximum number of those gems in your inventory or socketed into items." };
+ case EQUIP_ERR_MAIL_BOUND_ITEM: return { "EQUIP_ERR_MAIL_BOUND_ITEM", "EQUIP_ERR_MAIL_BOUND_ITEM", "You can't mail soulbound items." };
+ case EQUIP_ERR_INTERNAL_BAG_ERROR_2: return { "EQUIP_ERR_INTERNAL_BAG_ERROR_2", "EQUIP_ERR_INTERNAL_BAG_ERROR_2", "Internal Bag Error" };
+ case EQUIP_ERR_BAG_FULL_5: return { "EQUIP_ERR_BAG_FULL_5", "EQUIP_ERR_BAG_FULL_5", "That bag is full." };
+ case EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED: return { "EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED", "EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED", "You have the maximum number of those gems socketed into equipped items." };
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED: return { "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED", "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED", "You cannot socket more than one of those gems into a single item." };
+ case EQUIP_ERR_TOO_MUCH_GOLD: return { "EQUIP_ERR_TOO_MUCH_GOLD", "EQUIP_ERR_TOO_MUCH_GOLD", "At gold limit" };
+ case EQUIP_ERR_NOT_DURING_ARENA_MATCH: return { "EQUIP_ERR_NOT_DURING_ARENA_MATCH", "EQUIP_ERR_NOT_DURING_ARENA_MATCH", "You can't do that while in an arena match" };
+ case EQUIP_ERR_TRADE_BOUND_ITEM: return { "EQUIP_ERR_TRADE_BOUND_ITEM", "EQUIP_ERR_TRADE_BOUND_ITEM", "You can't trade a soulbound item." };
+ case EQUIP_ERR_CANT_EQUIP_RATING: return { "EQUIP_ERR_CANT_EQUIP_RATING", "EQUIP_ERR_CANT_EQUIP_RATING", "You don't have the personal, team, or battleground rating required to buy that item" };
+ case EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM: return { "EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM", "EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM", "" };
+ case EQUIP_ERR_NOT_SAME_ACCOUNT: return { "EQUIP_ERR_NOT_SAME_ACCOUNT", "EQUIP_ERR_NOT_SAME_ACCOUNT", "Account-bound items can only be given to your own characters." };
+ case EQUIP_NONE_3: return { "EQUIP_NONE_3", "EQUIP_NONE_3", "" };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS", "You can only carry %d %s" };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS", "You can only equip %d |4item:items in the %s category" };
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED: return { "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED", "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED", "Your level is too high to use that item" };
+ case EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW: return { "EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW", "EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW", "You must reach level %d to purchase that item." };
+ case EQUIP_ERR_CANT_EQUIP_NEED_TALENT: return { "EQUIP_ERR_CANT_EQUIP_NEED_TALENT", "EQUIP_ERR_CANT_EQUIP_NEED_TALENT", "You do not have the required talent to equip that." };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS", "You can only equip %d |4item:items in the %s category" };
+ case EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP: return { "EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP", "EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP", "Cannot equip item in this form" };
+ case EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL: return { "EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL", "EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL", "Your inventory is full. Your satchel has been delivered to your mailbox." };
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW: return { "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW", "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW", "Your level is too low to use that item" };
+ case EQUIP_ERR_CANT_BUY_QUANTITY: return { "EQUIP_ERR_CANT_BUY_QUANTITY", "EQUIP_ERR_CANT_BUY_QUANTITY", "You can't buy the specified quantity of that item." };
+ case EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED: return { "EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED", "EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED", "Your purchased item is still waiting to be unlocked" };
+ case EQUIP_ERR_REAGENT_BANK_FULL: return { "EQUIP_ERR_REAGENT_BANK_FULL", "EQUIP_ERR_REAGENT_BANK_FULL", "Your reagent bank is full" };
+ case EQUIP_ERR_REAGENT_BANK_LOCKED: return { "EQUIP_ERR_REAGENT_BANK_LOCKED", "EQUIP_ERR_REAGENT_BANK_LOCKED", "" };
+ case EQUIP_ERR_WRONG_BAG_TYPE_3: return { "EQUIP_ERR_WRONG_BAG_TYPE_3", "EQUIP_ERR_WRONG_BAG_TYPE_3", "That item doesn't go in that container." };
+ case EQUIP_ERR_CANT_USE_ITEM: return { "EQUIP_ERR_CANT_USE_ITEM", "EQUIP_ERR_CANT_USE_ITEM", "You can't use that item." };
+ case EQUIP_ERR_CANT_BE_OBLITERATED: return { "EQUIP_ERR_CANT_BE_OBLITERATED", "EQUIP_ERR_CANT_BE_OBLITERATED", "You can't obliterate that item" };
+ case EQUIP_ERR_GUILD_BANK_CONJURED_ITEM: return { "EQUIP_ERR_GUILD_BANK_CONJURED_ITEM", "EQUIP_ERR_GUILD_BANK_CONJURED_ITEM", "You cannot store conjured items in the guild bank" };
+ case EQUIP_ERR_BAG_FULL_6: return { "EQUIP_ERR_BAG_FULL_6", "EQUIP_ERR_BAG_FULL_6", "That bag is full." };
+ case EQUIP_ERR_CANT_BE_SCRAPPED: return { "EQUIP_ERR_CANT_BE_SCRAPPED", "EQUIP_ERR_CANT_BE_SCRAPPED", "You can't scrap that item" };
+ case EQUIP_ERR_BAG_FULL_7: return { "EQUIP_ERR_BAG_FULL_7", "EQUIP_ERR_BAG_FULL_7", "That bag is full." };
+ case EQUIP_ERR_NOT_IN_PET_BATTLE: return { "EQUIP_ERR_NOT_IN_PET_BATTLE", "EQUIP_ERR_NOT_IN_PET_BATTLE", "You cannot do that while in a pet battle" };
+ case EQUIP_ERR_BAG_FULL_8: return { "EQUIP_ERR_BAG_FULL_8", "EQUIP_ERR_BAG_FULL_8", "That bag is full." };
+ case EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW: return { "EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW", "EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW", "You can't do that right now." };
+ case EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW_2: return { "EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW_2", "EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW_2", "You can't do that right now." };
+ case EQUIP_ERR_NOT_IN_NPE: return { "EQUIP_ERR_NOT_IN_NPE", "EQUIP_ERR_NOT_IN_NPE", "Not available during the tutorial" };
+ case EQUIP_ERR_ITEM_COOLDOWN: return { "EQUIP_ERR_ITEM_COOLDOWN", "EQUIP_ERR_ITEM_COOLDOWN", "Item is not ready yet." };
+ case EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND: return { "EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND", "EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND", "You can't do that in a rated battleground." };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<InventoryResult>::Count() { return 112; }
+
+template <>
+TC_API_EXPORT InventoryResult EnumUtils<InventoryResult>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return EQUIP_ERR_OK;
+ case 1: return EQUIP_ERR_CANT_EQUIP_LEVEL_I;
+ case 2: return EQUIP_ERR_CANT_EQUIP_SKILL;
+ case 3: return EQUIP_ERR_WRONG_SLOT;
+ case 4: return EQUIP_ERR_BAG_FULL;
+ case 5: return EQUIP_ERR_BAG_IN_BAG;
+ case 6: return EQUIP_ERR_TRADE_EQUIPPED_BAG;
+ case 7: return EQUIP_ERR_AMMO_ONLY;
+ case 8: return EQUIP_ERR_PROFICIENCY_NEEDED;
+ case 9: return EQUIP_ERR_NO_SLOT_AVAILABLE;
+ case 10: return EQUIP_ERR_CANT_EQUIP_EVER;
+ case 11: return EQUIP_ERR_CANT_EQUIP_EVER_2;
+ case 12: return EQUIP_ERR_NO_SLOT_AVAILABLE_2;
+ case 13: return EQUIP_ERR_2HANDED_EQUIPPED;
+ case 14: return EQUIP_ERR_2HSKILLNOTFOUND;
+ case 15: return EQUIP_ERR_WRONG_BAG_TYPE;
+ case 16: return EQUIP_ERR_WRONG_BAG_TYPE_2;
+ case 17: return EQUIP_ERR_ITEM_MAX_COUNT;
+ case 18: return EQUIP_ERR_NO_SLOT_AVAILABLE_3;
+ case 19: return EQUIP_ERR_CANT_STACK;
+ case 20: return EQUIP_ERR_NOT_EQUIPPABLE;
+ case 21: return EQUIP_ERR_CANT_SWAP;
+ case 22: return EQUIP_ERR_SLOT_EMPTY;
+ case 23: return EQUIP_ERR_ITEM_NOT_FOUND;
+ case 24: return EQUIP_ERR_DROP_BOUND_ITEM;
+ case 25: return EQUIP_ERR_OUT_OF_RANGE;
+ case 26: return EQUIP_ERR_TOO_FEW_TO_SPLIT;
+ case 27: return EQUIP_ERR_SPLIT_FAILED;
+ case 28: return EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC;
+ case 29: return EQUIP_ERR_CANT_TRADE_GOLD;
+ case 30: return EQUIP_ERR_NOT_ENOUGH_MONEY;
+ case 31: return EQUIP_ERR_NOT_A_BAG;
+ case 32: return EQUIP_ERR_DESTROY_NONEMPTY_BAG;
+ case 33: return EQUIP_ERR_NOT_OWNER;
+ case 34: return EQUIP_ERR_ONLY_ONE_QUIVER;
+ case 35: return EQUIP_ERR_NO_BANK_SLOT;
+ case 36: return EQUIP_ERR_NO_BANK_HERE;
+ case 37: return EQUIP_ERR_ITEM_LOCKED;
+ case 38: return EQUIP_ERR_GENERIC_STUNNED;
+ case 39: return EQUIP_ERR_PLAYER_DEAD;
+ case 40: return EQUIP_ERR_CLIENT_LOCKED_OUT;
+ case 41: return EQUIP_ERR_INTERNAL_BAG_ERROR;
+ case 42: return EQUIP_ERR_ONLY_ONE_BOLT;
+ case 43: return EQUIP_ERR_ONLY_ONE_AMMO;
+ case 44: return EQUIP_ERR_CANT_WRAP_STACKABLE;
+ case 45: return EQUIP_ERR_CANT_WRAP_EQUIPPED;
+ case 46: return EQUIP_ERR_CANT_WRAP_WRAPPED;
+ case 47: return EQUIP_ERR_CANT_WRAP_BOUND;
+ case 48: return EQUIP_ERR_CANT_WRAP_UNIQUE;
+ case 49: return EQUIP_ERR_CANT_WRAP_BAGS;
+ case 50: return EQUIP_ERR_LOOT_GONE;
+ case 51: return EQUIP_ERR_INV_FULL;
+ case 52: return EQUIP_ERR_BANK_FULL;
+ case 53: return EQUIP_ERR_VENDOR_SOLD_OUT;
+ case 54: return EQUIP_ERR_BAG_FULL_2;
+ case 55: return EQUIP_ERR_ITEM_NOT_FOUND_2;
+ case 56: return EQUIP_ERR_CANT_STACK_2;
+ case 57: return EQUIP_ERR_BAG_FULL_3;
+ case 58: return EQUIP_ERR_VENDOR_SOLD_OUT_2;
+ case 59: return EQUIP_ERR_OBJECT_IS_BUSY;
+ case 60: return EQUIP_ERR_CANT_BE_DISENCHANTED;
+ case 61: return EQUIP_ERR_NOT_IN_COMBAT;
+ case 62: return EQUIP_ERR_NOT_WHILE_DISARMED;
+ case 63: return EQUIP_ERR_BAG_FULL_4;
+ case 64: return EQUIP_ERR_CANT_EQUIP_RANK;
+ case 65: return EQUIP_ERR_CANT_EQUIP_REPUTATION;
+ case 66: return EQUIP_ERR_TOO_MANY_SPECIAL_BAGS;
+ case 67: return EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW;
+ case 68: return EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE;
+ case 69: return EQUIP_ERR_VENDOR_MISSING_TURNINS;
+ case 70: return EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS;
+ case 71: return EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS;
+ case 72: return EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED;
+ case 73: return EQUIP_ERR_MAIL_BOUND_ITEM;
+ case 74: return EQUIP_ERR_INTERNAL_BAG_ERROR_2;
+ case 75: return EQUIP_ERR_BAG_FULL_5;
+ case 76: return EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED;
+ case 77: return EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED;
+ case 78: return EQUIP_ERR_TOO_MUCH_GOLD;
+ case 79: return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
+ case 80: return EQUIP_ERR_TRADE_BOUND_ITEM;
+ case 81: return EQUIP_ERR_CANT_EQUIP_RATING;
+ case 82: return EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM;
+ case 83: return EQUIP_ERR_NOT_SAME_ACCOUNT;
+ case 84: return EQUIP_NONE_3;
+ case 85: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS;
+ case 86: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS;
+ case 87: return EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED;
+ case 88: return EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW;
+ case 89: return EQUIP_ERR_CANT_EQUIP_NEED_TALENT;
+ case 90: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS;
+ case 91: return EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP;
+ case 92: return EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL;
+ case 93: return EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW;
+ case 94: return EQUIP_ERR_CANT_BUY_QUANTITY;
+ case 95: return EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED;
+ case 96: return EQUIP_ERR_REAGENT_BANK_FULL;
+ case 97: return EQUIP_ERR_REAGENT_BANK_LOCKED;
+ case 98: return EQUIP_ERR_WRONG_BAG_TYPE_3;
+ case 99: return EQUIP_ERR_CANT_USE_ITEM;
+ case 100: return EQUIP_ERR_CANT_BE_OBLITERATED;
+ case 101: return EQUIP_ERR_GUILD_BANK_CONJURED_ITEM;
+ case 102: return EQUIP_ERR_BAG_FULL_6;
+ case 103: return EQUIP_ERR_CANT_BE_SCRAPPED;
+ case 104: return EQUIP_ERR_BAG_FULL_7;
+ case 105: return EQUIP_ERR_NOT_IN_PET_BATTLE;
+ case 106: return EQUIP_ERR_BAG_FULL_8;
+ case 107: return EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW;
+ case 108: return EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW_2;
+ case 109: return EQUIP_ERR_NOT_IN_NPE;
+ case 110: return EQUIP_ERR_ITEM_COOLDOWN;
+ case 111: return EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<InventoryResult>::ToIndex(InventoryResult value)
+{
+ switch (value)
+ {
+ case EQUIP_ERR_OK: return 0;
+ case EQUIP_ERR_CANT_EQUIP_LEVEL_I: return 1;
+ case EQUIP_ERR_CANT_EQUIP_SKILL: return 2;
+ case EQUIP_ERR_WRONG_SLOT: return 3;
+ case EQUIP_ERR_BAG_FULL: return 4;
+ case EQUIP_ERR_BAG_IN_BAG: return 5;
+ case EQUIP_ERR_TRADE_EQUIPPED_BAG: return 6;
+ case EQUIP_ERR_AMMO_ONLY: return 7;
+ case EQUIP_ERR_PROFICIENCY_NEEDED: return 8;
+ case EQUIP_ERR_NO_SLOT_AVAILABLE: return 9;
+ case EQUIP_ERR_CANT_EQUIP_EVER: return 10;
+ case EQUIP_ERR_CANT_EQUIP_EVER_2: return 11;
+ case EQUIP_ERR_NO_SLOT_AVAILABLE_2: return 12;
+ case EQUIP_ERR_2HANDED_EQUIPPED: return 13;
+ case EQUIP_ERR_2HSKILLNOTFOUND: return 14;
+ case EQUIP_ERR_WRONG_BAG_TYPE: return 15;
+ case EQUIP_ERR_WRONG_BAG_TYPE_2: return 16;
+ case EQUIP_ERR_ITEM_MAX_COUNT: return 17;
+ case EQUIP_ERR_NO_SLOT_AVAILABLE_3: return 18;
+ case EQUIP_ERR_CANT_STACK: return 19;
+ case EQUIP_ERR_NOT_EQUIPPABLE: return 20;
+ case EQUIP_ERR_CANT_SWAP: return 21;
+ case EQUIP_ERR_SLOT_EMPTY: return 22;
+ case EQUIP_ERR_ITEM_NOT_FOUND: return 23;
+ case EQUIP_ERR_DROP_BOUND_ITEM: return 24;
+ case EQUIP_ERR_OUT_OF_RANGE: return 25;
+ case EQUIP_ERR_TOO_FEW_TO_SPLIT: return 26;
+ case EQUIP_ERR_SPLIT_FAILED: return 27;
+ case EQUIP_ERR_SPELL_FAILED_REAGENTS_GENERIC: return 28;
+ case EQUIP_ERR_CANT_TRADE_GOLD: return 29;
+ case EQUIP_ERR_NOT_ENOUGH_MONEY: return 30;
+ case EQUIP_ERR_NOT_A_BAG: return 31;
+ case EQUIP_ERR_DESTROY_NONEMPTY_BAG: return 32;
+ case EQUIP_ERR_NOT_OWNER: return 33;
+ case EQUIP_ERR_ONLY_ONE_QUIVER: return 34;
+ case EQUIP_ERR_NO_BANK_SLOT: return 35;
+ case EQUIP_ERR_NO_BANK_HERE: return 36;
+ case EQUIP_ERR_ITEM_LOCKED: return 37;
+ case EQUIP_ERR_GENERIC_STUNNED: return 38;
+ case EQUIP_ERR_PLAYER_DEAD: return 39;
+ case EQUIP_ERR_CLIENT_LOCKED_OUT: return 40;
+ case EQUIP_ERR_INTERNAL_BAG_ERROR: return 41;
+ case EQUIP_ERR_ONLY_ONE_BOLT: return 42;
+ case EQUIP_ERR_ONLY_ONE_AMMO: return 43;
+ case EQUIP_ERR_CANT_WRAP_STACKABLE: return 44;
+ case EQUIP_ERR_CANT_WRAP_EQUIPPED: return 45;
+ case EQUIP_ERR_CANT_WRAP_WRAPPED: return 46;
+ case EQUIP_ERR_CANT_WRAP_BOUND: return 47;
+ case EQUIP_ERR_CANT_WRAP_UNIQUE: return 48;
+ case EQUIP_ERR_CANT_WRAP_BAGS: return 49;
+ case EQUIP_ERR_LOOT_GONE: return 50;
+ case EQUIP_ERR_INV_FULL: return 51;
+ case EQUIP_ERR_BANK_FULL: return 52;
+ case EQUIP_ERR_VENDOR_SOLD_OUT: return 53;
+ case EQUIP_ERR_BAG_FULL_2: return 54;
+ case EQUIP_ERR_ITEM_NOT_FOUND_2: return 55;
+ case EQUIP_ERR_CANT_STACK_2: return 56;
+ case EQUIP_ERR_BAG_FULL_3: return 57;
+ case EQUIP_ERR_VENDOR_SOLD_OUT_2: return 58;
+ case EQUIP_ERR_OBJECT_IS_BUSY: return 59;
+ case EQUIP_ERR_CANT_BE_DISENCHANTED: return 60;
+ case EQUIP_ERR_NOT_IN_COMBAT: return 61;
+ case EQUIP_ERR_NOT_WHILE_DISARMED: return 62;
+ case EQUIP_ERR_BAG_FULL_4: return 63;
+ case EQUIP_ERR_CANT_EQUIP_RANK: return 64;
+ case EQUIP_ERR_CANT_EQUIP_REPUTATION: return 65;
+ case EQUIP_ERR_TOO_MANY_SPECIAL_BAGS: return 66;
+ case EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW: return 67;
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE: return 68;
+ case EQUIP_ERR_VENDOR_MISSING_TURNINS: return 69;
+ case EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS: return 70;
+ case EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS: return 71;
+ case EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED: return 72;
+ case EQUIP_ERR_MAIL_BOUND_ITEM: return 73;
+ case EQUIP_ERR_INTERNAL_BAG_ERROR_2: return 74;
+ case EQUIP_ERR_BAG_FULL_5: return 75;
+ case EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED: return 76;
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED: return 77;
+ case EQUIP_ERR_TOO_MUCH_GOLD: return 78;
+ case EQUIP_ERR_NOT_DURING_ARENA_MATCH: return 79;
+ case EQUIP_ERR_TRADE_BOUND_ITEM: return 80;
+ case EQUIP_ERR_CANT_EQUIP_RATING: return 81;
+ case EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM: return 82;
+ case EQUIP_ERR_NOT_SAME_ACCOUNT: return 83;
+ case EQUIP_NONE_3: return 84;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED_IS: return 85;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED_IS: return 86;
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED: return 87;
+ case EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW: return 88;
+ case EQUIP_ERR_CANT_EQUIP_NEED_TALENT: return 89;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED_IS: return 90;
+ case EQUIP_ERR_SHAPESHIFT_FORM_CANNOT_EQUIP: return 91;
+ case EQUIP_ERR_ITEM_INVENTORY_FULL_SATCHEL: return 92;
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_TOO_LOW: return 93;
+ case EQUIP_ERR_CANT_BUY_QUANTITY: return 94;
+ case EQUIP_ERR_ITEM_IS_BATTLE_PAY_LOCKED: return 95;
+ case EQUIP_ERR_REAGENT_BANK_FULL: return 96;
+ case EQUIP_ERR_REAGENT_BANK_LOCKED: return 97;
+ case EQUIP_ERR_WRONG_BAG_TYPE_3: return 98;
+ case EQUIP_ERR_CANT_USE_ITEM: return 99;
+ case EQUIP_ERR_CANT_BE_OBLITERATED: return 100;
+ case EQUIP_ERR_GUILD_BANK_CONJURED_ITEM: return 101;
+ case EQUIP_ERR_BAG_FULL_6: return 102;
+ case EQUIP_ERR_CANT_BE_SCRAPPED: return 103;
+ case EQUIP_ERR_BAG_FULL_7: return 104;
+ case EQUIP_ERR_NOT_IN_PET_BATTLE: return 105;
+ case EQUIP_ERR_BAG_FULL_8: return 106;
+ case EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW: return 107;
+ case EQUIP_ERR_CANT_DO_THAT_RIGHT_NOW_2: return 108;
+ case EQUIP_ERR_NOT_IN_NPE: return 109;
+ case EQUIP_ERR_ITEM_COOLDOWN: return 110;
+ case EQUIP_ERR_NOT_IN_RATED_BATTLEGROUND: return 111;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/***************************************************************\
+|* data for enum 'BuyResult' in 'ItemDefines.h' auto-generated *|
+\***************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<BuyResult>::ToString(BuyResult value)
+{
+ switch (value)
+ {
+ case BUY_ERR_CANT_FIND_ITEM: return { "BUY_ERR_CANT_FIND_ITEM", "BUY_ERR_CANT_FIND_ITEM", "" };
+ case BUY_ERR_ITEM_ALREADY_SOLD: return { "BUY_ERR_ITEM_ALREADY_SOLD", "BUY_ERR_ITEM_ALREADY_SOLD", "" };
+ case BUY_ERR_NOT_ENOUGHT_MONEY: return { "BUY_ERR_NOT_ENOUGHT_MONEY", "BUY_ERR_NOT_ENOUGHT_MONEY", "" };
+ case BUY_ERR_SELLER_DONT_LIKE_YOU: return { "BUY_ERR_SELLER_DONT_LIKE_YOU", "BUY_ERR_SELLER_DONT_LIKE_YOU", "" };
+ case BUY_ERR_DISTANCE_TOO_FAR: return { "BUY_ERR_DISTANCE_TOO_FAR", "BUY_ERR_DISTANCE_TOO_FAR", "" };
+ case BUY_ERR_ITEM_SOLD_OUT: return { "BUY_ERR_ITEM_SOLD_OUT", "BUY_ERR_ITEM_SOLD_OUT", "" };
+ case BUY_ERR_CANT_CARRY_MORE: return { "BUY_ERR_CANT_CARRY_MORE", "BUY_ERR_CANT_CARRY_MORE", "" };
+ case BUY_ERR_RANK_REQUIRE: return { "BUY_ERR_RANK_REQUIRE", "BUY_ERR_RANK_REQUIRE", "" };
+ case BUY_ERR_REPUTATION_REQUIRE: return { "BUY_ERR_REPUTATION_REQUIRE", "BUY_ERR_REPUTATION_REQUIRE", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<BuyResult>::Count() { return 9; }
+
+template <>
+TC_API_EXPORT BuyResult EnumUtils<BuyResult>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return BUY_ERR_CANT_FIND_ITEM;
+ case 1: return BUY_ERR_ITEM_ALREADY_SOLD;
+ case 2: return BUY_ERR_NOT_ENOUGHT_MONEY;
+ case 3: return BUY_ERR_SELLER_DONT_LIKE_YOU;
+ case 4: return BUY_ERR_DISTANCE_TOO_FAR;
+ case 5: return BUY_ERR_ITEM_SOLD_OUT;
+ case 6: return BUY_ERR_CANT_CARRY_MORE;
+ case 7: return BUY_ERR_RANK_REQUIRE;
+ case 8: return BUY_ERR_REPUTATION_REQUIRE;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<BuyResult>::ToIndex(BuyResult value)
+{
+ switch (value)
+ {
+ case BUY_ERR_CANT_FIND_ITEM: return 0;
+ case BUY_ERR_ITEM_ALREADY_SOLD: return 1;
+ case BUY_ERR_NOT_ENOUGHT_MONEY: return 2;
+ case BUY_ERR_SELLER_DONT_LIKE_YOU: return 3;
+ case BUY_ERR_DISTANCE_TOO_FAR: return 4;
+ case BUY_ERR_ITEM_SOLD_OUT: return 5;
+ case BUY_ERR_CANT_CARRY_MORE: return 6;
+ case BUY_ERR_RANK_REQUIRE: return 7;
+ case BUY_ERR_REPUTATION_REQUIRE: return 8;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/****************************************************************\
+|* data for enum 'SellResult' in 'ItemDefines.h' auto-generated *|
+\****************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<SellResult>::ToString(SellResult value)
+{
+ switch (value)
+ {
+ case SELL_ERR_CANT_FIND_ITEM: return { "SELL_ERR_CANT_FIND_ITEM", "SELL_ERR_CANT_FIND_ITEM", "The item was not found." };
+ case SELL_ERR_CANT_SELL_ITEM: return { "SELL_ERR_CANT_SELL_ITEM", "SELL_ERR_CANT_SELL_ITEM", "The merchant doesn't want that item." };
+ case SELL_ERR_CANT_FIND_VENDOR: return { "SELL_ERR_CANT_FIND_VENDOR", "SELL_ERR_CANT_FIND_VENDOR", "The merchant doesn't like you." };
+ case SELL_ERR_YOU_DONT_OWN_THAT_ITEM: return { "SELL_ERR_YOU_DONT_OWN_THAT_ITEM", "SELL_ERR_YOU_DONT_OWN_THAT_ITEM", "You don't own that item." };
+ case SELL_ERR_UNK: return { "SELL_ERR_UNK", "SELL_ERR_UNK", "nothing appears..." };
+ case SELL_ERR_ONLY_EMPTY_BAG: return { "SELL_ERR_ONLY_EMPTY_BAG", "SELL_ERR_ONLY_EMPTY_BAG", "You can only do that with empty bags." };
+ case SELL_ERR_CANT_SELL_TO_THIS_MERCHANT: return { "SELL_ERR_CANT_SELL_TO_THIS_MERCHANT", "SELL_ERR_CANT_SELL_TO_THIS_MERCHANT", "You cannot sell items to this merchant." };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<SellResult>::Count() { return 7; }
+
+template <>
+TC_API_EXPORT SellResult EnumUtils<SellResult>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return SELL_ERR_CANT_FIND_ITEM;
+ case 1: return SELL_ERR_CANT_SELL_ITEM;
+ case 2: return SELL_ERR_CANT_FIND_VENDOR;
+ case 3: return SELL_ERR_YOU_DONT_OWN_THAT_ITEM;
+ case 4: return SELL_ERR_UNK;
+ case 5: return SELL_ERR_ONLY_EMPTY_BAG;
+ case 6: return SELL_ERR_CANT_SELL_TO_THIS_MERCHANT;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<SellResult>::ToIndex(SellResult value)
+{
+ switch (value)
+ {
+ case SELL_ERR_CANT_FIND_ITEM: return 0;
+ case SELL_ERR_CANT_SELL_ITEM: return 1;
+ case SELL_ERR_CANT_FIND_VENDOR: return 2;
+ case SELL_ERR_YOU_DONT_OWN_THAT_ITEM: return 3;
+ case SELL_ERR_UNK: return 4;
+ case SELL_ERR_ONLY_EMPTY_BAG: return 5;
+ case SELL_ERR_CANT_SELL_TO_THIS_MERCHANT: return 6;
+ default: throw std::out_of_range("value");
+ }
+}
+}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f2171820d40..95d5553461f 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -17417,23 +17417,23 @@ void Player::SendQuestReward(Quest const* quest, Creature const* questGiver, uin
SendDirectMessage(packet.Write());
}
-void Player::SendQuestFailed(uint32 questID, InventoryResult reason) const
+void Player::SendQuestFailed(uint32 questId, InventoryResult reason) const
{
- if (questID)
+ if (questId)
{
WorldPackets::Quest::QuestGiverQuestFailed questGiverQuestFailed;
- questGiverQuestFailed.QuestID = questID;
+ questGiverQuestFailed.QuestID = questId;
questGiverQuestFailed.Reason = reason; // failed reason (valid reasons: 4, 16, 50, 17, other values show default message)
SendDirectMessage(questGiverQuestFailed.Write());
}
}
-void Player::SendQuestTimerFailed(uint32 questID) const
+void Player::SendQuestTimerFailed(uint32 questId) const
{
- if (questID)
+ if (questId)
{
WorldPackets::Quest::QuestUpdateFailedTimer questUpdateFailedTimer;
- questUpdateFailedTimer.QuestID = questID;
+ questUpdateFailedTimer.QuestID = questId;
SendDirectMessage(questUpdateFailedTimer.Write());
}
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 313a35889a7..b81594e6e32 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1622,8 +1622,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool IsQuestObjectiveProgressBarComplete(uint16 slot, Quest const* quest) const;
void SendQuestComplete(uint32 questId) const;
void SendQuestReward(Quest const* quest, Creature const* questGiver, uint32 xp, bool hideChatMessage) const;
- void SendQuestFailed(uint32 questID, InventoryResult reason = EQUIP_ERR_OK) const;
- void SendQuestTimerFailed(uint32 questID) const;
+ void SendQuestFailed(uint32 questId, InventoryResult reason = EQUIP_ERR_OK) const;
+ void SendQuestTimerFailed(uint32 questId) const;
void SendCanTakeQuestResponse(QuestFailedReason reason, bool sendErrorMessage = true, std::string reasonText = "") const;
void SendQuestConfirmAccept(Quest const* quest, Player* receiver) const;
void SendPushToPartyResponse(Player const* player, QuestPushReason reason, Quest const* quest = nullptr) const;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 07a36c73aaf..1c06f20008d 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -1422,6 +1422,7 @@ enum SpellEffectName
TOTAL_SPELL_EFFECTS
};
+// EnumUtils: DESCRIBE THIS
enum SpellCastResult
{
SPELL_FAILED_SUCCESS = 0,
@@ -1740,7 +1741,7 @@ enum SpellCastResult
SPELL_FAILED_UNKNOWN = 313,
// ok cast value - here in case a future version removes SPELL_FAILED_SUCCESS and we need to use a custom value (not sent to client either way)
- SPELL_CAST_OK = SPELL_FAILED_SUCCESS
+ SPELL_CAST_OK = SPELL_FAILED_SUCCESS // SKIP
};
enum SpellCustomErrors
@@ -2381,6 +2382,7 @@ enum GhostVisibilityType
};
// Spell aura states
+// EnumUtils: DESCRIBE THIS
enum AuraStateType
{ // (C) used in caster aura state (T) used in target aura state
// (c) used in caster aura state-not (t) used in target aura state-not
@@ -5643,6 +5645,7 @@ enum WeatherType
#define MAX_WEATHER_TYPE 4
+// EnumUtils: DESCRIBE THIS
enum ChatMsg : int32
{
CHAT_MSG_ADDON = -1,
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index 6a233d278e9..33739ee5288 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -2174,6 +2174,1089 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr14>::ToIndex(SpellAttr14 value)
}
}
+/***********************************************************************\
+|* data for enum 'SpellCastResult' in 'SharedDefines.h' auto-generated *|
+\***********************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<SpellCastResult>::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_HAVE_PET: return { "SPELL_FAILED_ALREADY_HAVE_PET", "SPELL_FAILED_ALREADY_HAVE_PET", "" };
+ 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_PVP_TARGET_WHILE_UNFLAGGED: return { "SPELL_FAILED_PVP_TARGET_WHILE_UNFLAGGED", "SPELL_FAILED_PVP_TARGET_WHILE_UNFLAGGED", "" };
+ 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_ENCHANTED: return { "SPELL_FAILED_CANT_BE_ENCHANTED", "SPELL_FAILED_CANT_BE_ENCHANTED", "" };
+ 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_CANT_UNTALENT: return { "SPELL_FAILED_CANT_UNTALENT", "SPELL_FAILED_CANT_UNTALENT", "" };
+ 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_DISABLED_BY_POWER_SCALING: return { "SPELL_FAILED_DISABLED_BY_POWER_SCALING", "SPELL_FAILED_DISABLED_BY_POWER_SCALING", "" };
+ 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_FALLING: return { "SPELL_FAILED_FALLING", "SPELL_FAILED_FALLING", "" };
+ 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_GARRISON_NOT_OWNED: return { "SPELL_FAILED_GARRISON_NOT_OWNED", "SPELL_FAILED_GARRISON_NOT_OWNED", "" };
+ case SPELL_FAILED_GARRISON_OWNED: return { "SPELL_FAILED_GARRISON_OWNED", "SPELL_FAILED_GARRISON_OWNED", "" };
+ case SPELL_FAILED_GARRISON_MAX_LEVEL: return { "SPELL_FAILED_GARRISON_MAX_LEVEL", "SPELL_FAILED_GARRISON_MAX_LEVEL", "" };
+ case SPELL_FAILED_GARRISON_NOT_UPGRADEABLE: return { "SPELL_FAILED_GARRISON_NOT_UPGRADEABLE", "SPELL_FAILED_GARRISON_NOT_UPGRADEABLE", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION: return { "SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION", "SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING: return { "SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING", "SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL: return { "SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL", "SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_MIN_ITEM_LEVEL: return { "SPELL_FAILED_GARRISON_FOLLOWER_MIN_ITEM_LEVEL", "SPELL_FAILED_GARRISON_FOLLOWER_MIN_ITEM_LEVEL", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL: return { "SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL", "SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY: return { "SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY", "SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL: return { "SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL", "SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY: return { "SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY", "SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_HAS_SINGLE_MISSION_ABILITY: return { "SPELL_FAILED_GARRISON_FOLLOWER_HAS_SINGLE_MISSION_ABILITY", "SPELL_FAILED_GARRISON_FOLLOWER_HAS_SINGLE_MISSION_ABILITY", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_REQUIRES_EPIC: return { "SPELL_FAILED_GARRISON_FOLLOWER_REQUIRES_EPIC", "SPELL_FAILED_GARRISON_FOLLOWER_REQUIRES_EPIC", "" };
+ case SPELL_FAILED_GARRISON_MISSION_NOT_IN_PROGRESS: return { "SPELL_FAILED_GARRISON_MISSION_NOT_IN_PROGRESS", "SPELL_FAILED_GARRISON_MISSION_NOT_IN_PROGRESS", "" };
+ case SPELL_FAILED_GARRISON_MISSION_COMPLETE: return { "SPELL_FAILED_GARRISON_MISSION_COMPLETE", "SPELL_FAILED_GARRISON_MISSION_COMPLETE", "" };
+ case SPELL_FAILED_GARRISON_NO_MISSIONS_AVAILABLE: return { "SPELL_FAILED_GARRISON_NO_MISSIONS_AVAILABLE", "SPELL_FAILED_GARRISON_NO_MISSIONS_AVAILABLE", "" };
+ 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_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_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_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_IN_PET_BATTLE: return { "SPELL_FAILED_TARGET_IN_PET_BATTLE", "SPELL_FAILED_TARGET_IN_PET_BATTLE", "" };
+ 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_VISION_OBSCURED: return { "SPELL_FAILED_VISION_OBSCURED", "SPELL_FAILED_VISION_OBSCURED", "" };
+ 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_RATED_BATTLEGROUND: return { "SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND", "SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND", "" };
+ 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_GROUND_MOUNT_NOT_ALLOWED: return { "SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED", "SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED", "" };
+ case SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED: return { "SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED", "SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED", "" };
+ case SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED: return { "SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED", "SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED", "" };
+ case SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED: return { "SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED", "SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED", "" };
+ case SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT: return { "SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT", "SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT: return { "SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT", "SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT", "" };
+ 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_MASTER_RIDING_REQUIREMENT: return { "SPELL_FAILED_MASTER_RIDING_REQUIREMENT", "SPELL_FAILED_MASTER_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_COLD_RIDING_REQUIREMENT: return { "SPELL_FAILED_COLD_RIDING_REQUIREMENT", "SPELL_FAILED_COLD_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT: return { "SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT", "SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_CS_RIDING_REQUIREMENT: return { "SPELL_FAILED_CS_RIDING_REQUIREMENT", "SPELL_FAILED_CS_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_PANDA_RIDING_REQUIREMENT: return { "SPELL_FAILED_PANDA_RIDING_REQUIREMENT", "SPELL_FAILED_PANDA_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT: return { "SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT", "SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_BROKEN_ISLES_RIDING_REQUIREMENT: return { "SPELL_FAILED_BROKEN_ISLES_RIDING_REQUIREMENT", "SPELL_FAILED_BROKEN_ISLES_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_MOUNT_NO_FLOAT_HERE: return { "SPELL_FAILED_MOUNT_NO_FLOAT_HERE", "SPELL_FAILED_MOUNT_NO_FLOAT_HERE", "" };
+ case SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE: return { "SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE", "SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE", "" };
+ case SPELL_FAILED_MOUNT_ABOVE_WATER_HERE: return { "SPELL_FAILED_MOUNT_ABOVE_WATER_HERE", "SPELL_FAILED_MOUNT_ABOVE_WATER_HERE", "" };
+ case SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR: return { "SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR", "SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR", "" };
+ 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_GLYPH_EXCLUSIVE_CATEGORY: return { "SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY", "SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY", "" };
+ case SPELL_FAILED_GLYPH_INVALID_SPEC: return { "SPELL_FAILED_GLYPH_INVALID_SPEC", "SPELL_FAILED_GLYPH_INVALID_SPEC", "" };
+ case SPELL_FAILED_GLYPH_NO_SPEC: return { "SPELL_FAILED_GLYPH_NO_SPEC", "SPELL_FAILED_GLYPH_NO_SPEC", "" };
+ case SPELL_FAILED_NO_ACTIVE_GLYPHS: return { "SPELL_FAILED_NO_ACTIVE_GLYPHS", "SPELL_FAILED_NO_ACTIVE_GLYPHS", "" };
+ 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_TARGET_HAS_RESURRECT_PENDING: return { "SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING", "SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING", "" };
+ case SPELL_FAILED_NO_ACTIONS: return { "SPELL_FAILED_NO_ACTIONS", "SPELL_FAILED_NO_ACTIONS", "" };
+ case SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH: return { "SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH", "SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH", "" };
+ case SPELL_FAILED_WEIGHT_NOT_ENOUGH: return { "SPELL_FAILED_WEIGHT_NOT_ENOUGH", "SPELL_FAILED_WEIGHT_NOT_ENOUGH", "" };
+ case SPELL_FAILED_WEIGHT_TOO_MUCH: return { "SPELL_FAILED_WEIGHT_TOO_MUCH", "SPELL_FAILED_WEIGHT_TOO_MUCH", "" };
+ case SPELL_FAILED_NO_VACANT_SEAT: return { "SPELL_FAILED_NO_VACANT_SEAT", "SPELL_FAILED_NO_VACANT_SEAT", "" };
+ case SPELL_FAILED_NO_LIQUID: return { "SPELL_FAILED_NO_LIQUID", "SPELL_FAILED_NO_LIQUID", "" };
+ case SPELL_FAILED_ONLY_NOT_SWIMMING: return { "SPELL_FAILED_ONLY_NOT_SWIMMING", "SPELL_FAILED_ONLY_NOT_SWIMMING", "" };
+ case SPELL_FAILED_BY_NOT_MOVING: return { "SPELL_FAILED_BY_NOT_MOVING", "SPELL_FAILED_BY_NOT_MOVING", "" };
+ case SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED: return { "SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED", "SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED", "" };
+ case SPELL_FAILED_NOT_IN_ARENA: return { "SPELL_FAILED_NOT_IN_ARENA", "SPELL_FAILED_NOT_IN_ARENA", "" };
+ case SPELL_FAILED_TARGET_NOT_GROUNDED: return { "SPELL_FAILED_TARGET_NOT_GROUNDED", "SPELL_FAILED_TARGET_NOT_GROUNDED", "" };
+ case SPELL_FAILED_EXCEEDED_WEEKLY_USAGE: return { "SPELL_FAILED_EXCEEDED_WEEKLY_USAGE", "SPELL_FAILED_EXCEEDED_WEEKLY_USAGE", "" };
+ case SPELL_FAILED_NOT_IN_LFG_DUNGEON: return { "SPELL_FAILED_NOT_IN_LFG_DUNGEON", "SPELL_FAILED_NOT_IN_LFG_DUNGEON", "" };
+ case SPELL_FAILED_BAD_TARGET_FILTER: return { "SPELL_FAILED_BAD_TARGET_FILTER", "SPELL_FAILED_BAD_TARGET_FILTER", "" };
+ case SPELL_FAILED_NOT_ENOUGH_TARGETS: return { "SPELL_FAILED_NOT_ENOUGH_TARGETS", "SPELL_FAILED_NOT_ENOUGH_TARGETS", "" };
+ case SPELL_FAILED_NO_SPEC: return { "SPELL_FAILED_NO_SPEC", "SPELL_FAILED_NO_SPEC", "" };
+ case SPELL_FAILED_CANT_ADD_BATTLE_PET: return { "SPELL_FAILED_CANT_ADD_BATTLE_PET", "SPELL_FAILED_CANT_ADD_BATTLE_PET", "" };
+ case SPELL_FAILED_CANT_UPGRADE_BATTLE_PET: return { "SPELL_FAILED_CANT_UPGRADE_BATTLE_PET", "SPELL_FAILED_CANT_UPGRADE_BATTLE_PET", "" };
+ case SPELL_FAILED_WRONG_BATTLE_PET_TYPE: return { "SPELL_FAILED_WRONG_BATTLE_PET_TYPE", "SPELL_FAILED_WRONG_BATTLE_PET_TYPE", "" };
+ case SPELL_FAILED_NO_DUNGEON_ENCOUNTER: return { "SPELL_FAILED_NO_DUNGEON_ENCOUNTER", "SPELL_FAILED_NO_DUNGEON_ENCOUNTER", "" };
+ case SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON: return { "SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON", "SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON", "" };
+ case SPELL_FAILED_MAX_LEVEL_TOO_LOW: return { "SPELL_FAILED_MAX_LEVEL_TOO_LOW", "SPELL_FAILED_MAX_LEVEL_TOO_LOW", "" };
+ case SPELL_FAILED_CANT_REPLACE_ITEM_BONUS: return { "SPELL_FAILED_CANT_REPLACE_ITEM_BONUS", "SPELL_FAILED_CANT_REPLACE_ITEM_BONUS", "" };
+ case GRANT_PET_LEVEL_FAIL: return { "GRANT_PET_LEVEL_FAIL", "GRANT_PET_LEVEL_FAIL", "" };
+ case SPELL_FAILED_SKILL_LINE_NOT_KNOWN: return { "SPELL_FAILED_SKILL_LINE_NOT_KNOWN", "SPELL_FAILED_SKILL_LINE_NOT_KNOWN", "" };
+ case SPELL_FAILED_BLUEPRINT_KNOWN: return { "SPELL_FAILED_BLUEPRINT_KNOWN", "SPELL_FAILED_BLUEPRINT_KNOWN", "" };
+ case SPELL_FAILED_FOLLOWER_KNOWN: return { "SPELL_FAILED_FOLLOWER_KNOWN", "SPELL_FAILED_FOLLOWER_KNOWN", "" };
+ case SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL: return { "SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL", "SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL", "" };
+ case SPELL_FAILED_ITEM_NOT_A_WEAPON: return { "SPELL_FAILED_ITEM_NOT_A_WEAPON", "SPELL_FAILED_ITEM_NOT_A_WEAPON", "" };
+ case SPELL_FAILED_SAME_ENCHANT_VISUAL: return { "SPELL_FAILED_SAME_ENCHANT_VISUAL", "SPELL_FAILED_SAME_ENCHANT_VISUAL", "" };
+ case SPELL_FAILED_TOY_USE_LIMIT_REACHED: return { "SPELL_FAILED_TOY_USE_LIMIT_REACHED", "SPELL_FAILED_TOY_USE_LIMIT_REACHED", "" };
+ case SPELL_FAILED_TOY_ALREADY_KNOWN: return { "SPELL_FAILED_TOY_ALREADY_KNOWN", "SPELL_FAILED_TOY_ALREADY_KNOWN", "" };
+ case SPELL_FAILED_SHIPMENTS_FULL: return { "SPELL_FAILED_SHIPMENTS_FULL", "SPELL_FAILED_SHIPMENTS_FULL", "" };
+ case SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER: return { "SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER", "SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER", "" };
+ case SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT: return { "SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT", "SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT", "" };
+ case SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER: return { "SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER", "SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER", "" };
+ case SPELL_FAILED_HAS_MISSION: return { "SPELL_FAILED_HAS_MISSION", "SPELL_FAILED_HAS_MISSION", "" };
+ case SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY: return { "SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY", "SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY", "" };
+ case SPELL_FAILED_NOT_SOULBOUND: return { "SPELL_FAILED_NOT_SOULBOUND", "SPELL_FAILED_NOT_SOULBOUND", "" };
+ case SPELL_FAILED_RIDING_VEHICLE: return { "SPELL_FAILED_RIDING_VEHICLE", "SPELL_FAILED_RIDING_VEHICLE", "" };
+ case SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX: return { "SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX", "SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX", "" };
+ case SPELL_FAILED_NOT_WHILE_MERCENARY: return { "SPELL_FAILED_NOT_WHILE_MERCENARY", "SPELL_FAILED_NOT_WHILE_MERCENARY", "" };
+ case SPELL_FAILED_SPEC_DISABLED: return { "SPELL_FAILED_SPEC_DISABLED", "SPELL_FAILED_SPEC_DISABLED", "" };
+ case SPELL_FAILED_CANT_BE_OBLITERATED: return { "SPELL_FAILED_CANT_BE_OBLITERATED", "SPELL_FAILED_CANT_BE_OBLITERATED", "" };
+ case SPELL_FAILED_CANT_BE_SCRAPPED: return { "SPELL_FAILED_CANT_BE_SCRAPPED", "SPELL_FAILED_CANT_BE_SCRAPPED", "" };
+ case SPELL_FAILED_FOLLOWER_CLASS_SPEC_CAP: return { "SPELL_FAILED_FOLLOWER_CLASS_SPEC_CAP", "SPELL_FAILED_FOLLOWER_CLASS_SPEC_CAP", "" };
+ case SPELL_FAILED_TRANSPORT_NOT_READY: return { "SPELL_FAILED_TRANSPORT_NOT_READY", "SPELL_FAILED_TRANSPORT_NOT_READY", "" };
+ case SPELL_FAILED_TRANSMOG_SET_ALREADY_KNOWN: return { "SPELL_FAILED_TRANSMOG_SET_ALREADY_KNOWN", "SPELL_FAILED_TRANSMOG_SET_ALREADY_KNOWN", "" };
+ case SPELL_FAILED_DISABLED_BY_AURA_LABEL: return { "SPELL_FAILED_DISABLED_BY_AURA_LABEL", "SPELL_FAILED_DISABLED_BY_AURA_LABEL", "" };
+ case SPELL_FAILED_DISABLED_BY_MAX_USABLE_LEVEL: return { "SPELL_FAILED_DISABLED_BY_MAX_USABLE_LEVEL", "SPELL_FAILED_DISABLED_BY_MAX_USABLE_LEVEL", "" };
+ case SPELL_FAILED_SPELL_ALREADY_KNOWN: return { "SPELL_FAILED_SPELL_ALREADY_KNOWN", "SPELL_FAILED_SPELL_ALREADY_KNOWN", "" };
+ case SPELL_FAILED_MUST_KNOW_SUPERCEDING_SPELL: return { "SPELL_FAILED_MUST_KNOW_SUPERCEDING_SPELL", "SPELL_FAILED_MUST_KNOW_SUPERCEDING_SPELL", "" };
+ case SPELL_FAILED_YOU_CANNOT_USE_THAT_IN_PVP_INSTANCE: return { "SPELL_FAILED_YOU_CANNOT_USE_THAT_IN_PVP_INSTANCE", "SPELL_FAILED_YOU_CANNOT_USE_THAT_IN_PVP_INSTANCE", "" };
+ case SPELL_FAILED_NO_ARTIFACT_EQUIPPED: return { "SPELL_FAILED_NO_ARTIFACT_EQUIPPED", "SPELL_FAILED_NO_ARTIFACT_EQUIPPED", "" };
+ case SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED: return { "SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED", "SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED", "" };
+ case SPELL_FAILED_TARGET_IS_UNTARGETABLE_BY_ANYONE: return { "SPELL_FAILED_TARGET_IS_UNTARGETABLE_BY_ANYONE", "SPELL_FAILED_TARGET_IS_UNTARGETABLE_BY_ANYONE", "" };
+ case SPELL_FAILED_SPELL_EFFECT_FAILED: return { "SPELL_FAILED_SPELL_EFFECT_FAILED", "SPELL_FAILED_SPELL_EFFECT_FAILED", "" };
+ case SPELL_FAILED_NEED_ALL_PARTY_MEMBERS: return { "SPELL_FAILED_NEED_ALL_PARTY_MEMBERS", "SPELL_FAILED_NEED_ALL_PARTY_MEMBERS", "" };
+ case SPELL_FAILED_ARTIFACT_AT_FULL_POWER: return { "SPELL_FAILED_ARTIFACT_AT_FULL_POWER", "SPELL_FAILED_ARTIFACT_AT_FULL_POWER", "" };
+ case SPELL_FAILED_AP_ITEM_FROM_PREVIOUS_TIER: return { "SPELL_FAILED_AP_ITEM_FROM_PREVIOUS_TIER", "SPELL_FAILED_AP_ITEM_FROM_PREVIOUS_TIER", "" };
+ case SPELL_FAILED_AREA_TRIGGER_CREATION: return { "SPELL_FAILED_AREA_TRIGGER_CREATION", "SPELL_FAILED_AREA_TRIGGER_CREATION", "" };
+ case SPELL_FAILED_AZERITE_EMPOWERED_ONLY: return { "SPELL_FAILED_AZERITE_EMPOWERED_ONLY", "SPELL_FAILED_AZERITE_EMPOWERED_ONLY", "" };
+ case SPELL_FAILED_AZERITE_EMPOWERED_NO_CHOICES_TO_UNDO: return { "SPELL_FAILED_AZERITE_EMPOWERED_NO_CHOICES_TO_UNDO", "SPELL_FAILED_AZERITE_EMPOWERED_NO_CHOICES_TO_UNDO", "" };
+ case SPELL_FAILED_WRONG_FACTION: return { "SPELL_FAILED_WRONG_FACTION", "SPELL_FAILED_WRONG_FACTION", "" };
+ case SPELL_FAILED_NOT_ENOUGH_CURRENCY: return { "SPELL_FAILED_NOT_ENOUGH_CURRENCY", "SPELL_FAILED_NOT_ENOUGH_CURRENCY", "" };
+ case SPELL_FAILED_BATTLE_FOR_AZEROTH_RIDING_REQUIREMENT: return { "SPELL_FAILED_BATTLE_FOR_AZEROTH_RIDING_REQUIREMENT", "SPELL_FAILED_BATTLE_FOR_AZEROTH_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_MOUNT_EQUIPMENT_ERROR: return { "SPELL_FAILED_MOUNT_EQUIPMENT_ERROR", "SPELL_FAILED_MOUNT_EQUIPMENT_ERROR", "" };
+ case SPELL_FAILED_NOT_WHILE_LEVEL_LINKED: return { "SPELL_FAILED_NOT_WHILE_LEVEL_LINKED", "SPELL_FAILED_NOT_WHILE_LEVEL_LINKED", "" };
+ case SPELL_FAILED_LEVEL_LINKED_LOW_LEVEL: return { "SPELL_FAILED_LEVEL_LINKED_LOW_LEVEL", "SPELL_FAILED_LEVEL_LINKED_LOW_LEVEL", "" };
+ case SPELL_FAILED_SUMMON_MAP_CONDITION: return { "SPELL_FAILED_SUMMON_MAP_CONDITION", "SPELL_FAILED_SUMMON_MAP_CONDITION", "" };
+ case SPELL_FAILED_SET_COVENANT_ERROR: return { "SPELL_FAILED_SET_COVENANT_ERROR", "SPELL_FAILED_SET_COVENANT_ERROR", "" };
+ case SPELL_FAILED_RUNEFORGE_LEGENDARY_UPGRADE: return { "SPELL_FAILED_RUNEFORGE_LEGENDARY_UPGRADE", "SPELL_FAILED_RUNEFORGE_LEGENDARY_UPGRADE", "" };
+ case SPELL_FAILED_SET_CHROMIE_TIME_ERROR: return { "SPELL_FAILED_SET_CHROMIE_TIME_ERROR", "SPELL_FAILED_SET_CHROMIE_TIME_ERROR", "" };
+ case SPELL_FAILED_INELIGIBLE_WEAPON_APPEARANCE: return { "SPELL_FAILED_INELIGIBLE_WEAPON_APPEARANCE", "SPELL_FAILED_INELIGIBLE_WEAPON_APPEARANCE", "" };
+ case SPELL_FAILED_PLAYER_CONDITION: return { "SPELL_FAILED_PLAYER_CONDITION", "SPELL_FAILED_PLAYER_CONDITION", "" };
+ case SPELL_FAILED_NOT_WHILE_CHROMIE_TIMED: return { "SPELL_FAILED_NOT_WHILE_CHROMIE_TIMED", "SPELL_FAILED_NOT_WHILE_CHROMIE_TIMED", "" };
+ case SPELL_FAILED_OPTIONAL_REAGENTS: return { "SPELL_FAILED_OPTIONAL_REAGENTS", "SPELL_FAILED_OPTIONAL_REAGENTS", "" };
+ case SPELL_FAILED_SPECTATOR_OR_COMMENTATOR: return { "SPELL_FAILED_SPECTATOR_OR_COMMENTATOR", "SPELL_FAILED_SPECTATOR_OR_COMMENTATOR", "" };
+ case SPELL_FAILED_SOULBIND_CONDUIT_LEARN_FAILED_INVALID_COVENANT: return { "SPELL_FAILED_SOULBIND_CONDUIT_LEARN_FAILED_INVALID_COVENANT", "SPELL_FAILED_SOULBIND_CONDUIT_LEARN_FAILED_INVALID_COVENANT", "" };
+ case SPELL_FAILED_SHADOWLANDS_RIDING_REQUIREMENT: return { "SPELL_FAILED_SHADOWLANDS_RIDING_REQUIREMENT", "SPELL_FAILED_SHADOWLANDS_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_NOT_IN_MAGE_TOWER: return { "SPELL_FAILED_NOT_IN_MAGE_TOWER", "SPELL_FAILED_NOT_IN_MAGE_TOWER", "" };
+ case SPELL_FAILED_GARRISON_FOLLOWER_AT_MIN_LEVEL: return { "SPELL_FAILED_GARRISON_FOLLOWER_AT_MIN_LEVEL", "SPELL_FAILED_GARRISON_FOLLOWER_AT_MIN_LEVEL", "" };
+ case SPELL_FAILED_UNKNOWN: return { "SPELL_FAILED_UNKNOWN", "SPELL_FAILED_UNKNOWN", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<SpellCastResult>::Count() { return 314; }
+
+template <>
+TC_API_EXPORT SpellCastResult EnumUtils<SpellCastResult>::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_HAVE_PET;
+ case 9: return SPELL_FAILED_ALREADY_OPEN;
+ case 10: return SPELL_FAILED_AURA_BOUNCED;
+ case 11: return SPELL_FAILED_AUTOTRACK_INTERRUPTED;
+ case 12: return SPELL_FAILED_BAD_IMPLICIT_TARGETS;
+ case 13: return SPELL_FAILED_BAD_TARGETS;
+ case 14: return SPELL_FAILED_PVP_TARGET_WHILE_UNFLAGGED;
+ case 15: return SPELL_FAILED_CANT_BE_CHARMED;
+ case 16: return SPELL_FAILED_CANT_BE_DISENCHANTED;
+ case 17: return SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL;
+ case 18: return SPELL_FAILED_CANT_BE_ENCHANTED;
+ case 19: return SPELL_FAILED_CANT_BE_MILLED;
+ case 20: return SPELL_FAILED_CANT_BE_PROSPECTED;
+ case 21: return SPELL_FAILED_CANT_CAST_ON_TAPPED;
+ case 22: return SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE;
+ case 23: return SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED;
+ case 24: return SPELL_FAILED_CANT_STEALTH;
+ case 25: return SPELL_FAILED_CANT_UNTALENT;
+ case 26: return SPELL_FAILED_CASTER_AURASTATE;
+ case 27: return SPELL_FAILED_CASTER_DEAD;
+ case 28: return SPELL_FAILED_CHARMED;
+ case 29: return SPELL_FAILED_CHEST_IN_USE;
+ case 30: return SPELL_FAILED_CONFUSED;
+ case 31: return SPELL_FAILED_DISABLED_BY_POWER_SCALING;
+ case 32: return SPELL_FAILED_DONT_REPORT;
+ case 33: return SPELL_FAILED_EQUIPPED_ITEM;
+ case 34: return SPELL_FAILED_EQUIPPED_ITEM_CLASS;
+ case 35: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND;
+ case 36: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND;
+ case 37: return SPELL_FAILED_ERROR;
+ case 38: return SPELL_FAILED_FALLING;
+ case 39: return SPELL_FAILED_FIZZLE;
+ case 40: return SPELL_FAILED_FLEEING;
+ case 41: return SPELL_FAILED_FOOD_LOWLEVEL;
+ case 42: return SPELL_FAILED_GARRISON_NOT_OWNED;
+ case 43: return SPELL_FAILED_GARRISON_OWNED;
+ case 44: return SPELL_FAILED_GARRISON_MAX_LEVEL;
+ case 45: return SPELL_FAILED_GARRISON_NOT_UPGRADEABLE;
+ case 46: return SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION;
+ case 47: return SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING;
+ case 48: return SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL;
+ case 49: return SPELL_FAILED_GARRISON_FOLLOWER_MIN_ITEM_LEVEL;
+ case 50: return SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL;
+ case 51: return SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY;
+ case 52: return SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL;
+ case 53: return SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY;
+ case 54: return SPELL_FAILED_GARRISON_FOLLOWER_HAS_SINGLE_MISSION_ABILITY;
+ case 55: return SPELL_FAILED_GARRISON_FOLLOWER_REQUIRES_EPIC;
+ case 56: return SPELL_FAILED_GARRISON_MISSION_NOT_IN_PROGRESS;
+ case 57: return SPELL_FAILED_GARRISON_MISSION_COMPLETE;
+ case 58: return SPELL_FAILED_GARRISON_NO_MISSIONS_AVAILABLE;
+ case 59: return SPELL_FAILED_HIGHLEVEL;
+ case 60: return SPELL_FAILED_HUNGER_SATIATED;
+ case 61: return SPELL_FAILED_IMMUNE;
+ case 62: return SPELL_FAILED_INCORRECT_AREA;
+ case 63: return SPELL_FAILED_INTERRUPTED;
+ case 64: return SPELL_FAILED_INTERRUPTED_COMBAT;
+ case 65: return SPELL_FAILED_ITEM_ALREADY_ENCHANTED;
+ case 66: return SPELL_FAILED_ITEM_GONE;
+ case 67: return SPELL_FAILED_ITEM_NOT_FOUND;
+ case 68: return SPELL_FAILED_ITEM_NOT_READY;
+ case 69: return SPELL_FAILED_LEVEL_REQUIREMENT;
+ case 70: return SPELL_FAILED_LINE_OF_SIGHT;
+ case 71: return SPELL_FAILED_LOWLEVEL;
+ case 72: return SPELL_FAILED_LOW_CASTLEVEL;
+ case 73: return SPELL_FAILED_MAINHAND_EMPTY;
+ case 74: return SPELL_FAILED_MOVING;
+ case 75: return SPELL_FAILED_NEED_AMMO;
+ case 76: return SPELL_FAILED_NEED_AMMO_POUCH;
+ case 77: return SPELL_FAILED_NEED_EXOTIC_AMMO;
+ case 78: return SPELL_FAILED_NEED_MORE_ITEMS;
+ case 79: return SPELL_FAILED_NOPATH;
+ case 80: return SPELL_FAILED_NOT_BEHIND;
+ case 81: return SPELL_FAILED_NOT_FISHABLE;
+ case 82: return SPELL_FAILED_NOT_FLYING;
+ case 83: return SPELL_FAILED_NOT_HERE;
+ case 84: return SPELL_FAILED_NOT_INFRONT;
+ case 85: return SPELL_FAILED_NOT_IN_CONTROL;
+ case 86: return SPELL_FAILED_NOT_KNOWN;
+ case 87: return SPELL_FAILED_NOT_MOUNTED;
+ case 88: return SPELL_FAILED_NOT_ON_TAXI;
+ case 89: return SPELL_FAILED_NOT_ON_TRANSPORT;
+ case 90: return SPELL_FAILED_NOT_READY;
+ case 91: return SPELL_FAILED_NOT_SHAPESHIFT;
+ case 92: return SPELL_FAILED_NOT_STANDING;
+ case 93: return SPELL_FAILED_NOT_TRADEABLE;
+ case 94: return SPELL_FAILED_NOT_TRADING;
+ case 95: return SPELL_FAILED_NOT_UNSHEATHED;
+ case 96: return SPELL_FAILED_NOT_WHILE_GHOST;
+ case 97: return SPELL_FAILED_NOT_WHILE_LOOTING;
+ case 98: return SPELL_FAILED_NO_AMMO;
+ case 99: return SPELL_FAILED_NO_CHARGES_REMAIN;
+ case 100: return SPELL_FAILED_NO_COMBO_POINTS;
+ case 101: return SPELL_FAILED_NO_DUELING;
+ case 102: return SPELL_FAILED_NO_ENDURANCE;
+ case 103: return SPELL_FAILED_NO_FISH;
+ case 104: return SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED;
+ case 105: return SPELL_FAILED_NO_MOUNTS_ALLOWED;
+ case 106: return SPELL_FAILED_NO_PET;
+ case 107: return SPELL_FAILED_NO_POWER;
+ case 108: return SPELL_FAILED_NOTHING_TO_DISPEL;
+ case 109: return SPELL_FAILED_NOTHING_TO_STEAL;
+ case 110: return SPELL_FAILED_ONLY_ABOVEWATER;
+ case 111: return SPELL_FAILED_ONLY_INDOORS;
+ case 112: return SPELL_FAILED_ONLY_MOUNTED;
+ case 113: return SPELL_FAILED_ONLY_OUTDOORS;
+ case 114: return SPELL_FAILED_ONLY_SHAPESHIFT;
+ case 115: return SPELL_FAILED_ONLY_STEALTHED;
+ case 116: return SPELL_FAILED_ONLY_UNDERWATER;
+ case 117: return SPELL_FAILED_OUT_OF_RANGE;
+ case 118: return SPELL_FAILED_PACIFIED;
+ case 119: return SPELL_FAILED_POSSESSED;
+ case 120: return SPELL_FAILED_REAGENTS;
+ case 121: return SPELL_FAILED_REQUIRES_AREA;
+ case 122: return SPELL_FAILED_REQUIRES_SPELL_FOCUS;
+ case 123: return SPELL_FAILED_ROOTED;
+ case 124: return SPELL_FAILED_SILENCED;
+ case 125: return SPELL_FAILED_SPELL_IN_PROGRESS;
+ case 126: return SPELL_FAILED_SPELL_LEARNED;
+ case 127: return SPELL_FAILED_SPELL_UNAVAILABLE;
+ case 128: return SPELL_FAILED_STUNNED;
+ case 129: return SPELL_FAILED_TARGETS_DEAD;
+ case 130: return SPELL_FAILED_TARGET_AFFECTING_COMBAT;
+ case 131: return SPELL_FAILED_TARGET_AURASTATE;
+ case 132: return SPELL_FAILED_TARGET_DUELING;
+ case 133: return SPELL_FAILED_TARGET_ENEMY;
+ case 134: return SPELL_FAILED_TARGET_ENRAGED;
+ case 135: return SPELL_FAILED_TARGET_FRIENDLY;
+ case 136: return SPELL_FAILED_TARGET_IN_COMBAT;
+ case 137: return SPELL_FAILED_TARGET_IN_PET_BATTLE;
+ case 138: return SPELL_FAILED_TARGET_IS_PLAYER;
+ case 139: return SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED;
+ case 140: return SPELL_FAILED_TARGET_NOT_DEAD;
+ case 141: return SPELL_FAILED_TARGET_NOT_IN_PARTY;
+ case 142: return SPELL_FAILED_TARGET_NOT_LOOTED;
+ case 143: return SPELL_FAILED_TARGET_NOT_PLAYER;
+ case 144: return SPELL_FAILED_TARGET_NO_POCKETS;
+ case 145: return SPELL_FAILED_TARGET_NO_WEAPONS;
+ case 146: return SPELL_FAILED_TARGET_NO_RANGED_WEAPONS;
+ case 147: return SPELL_FAILED_TARGET_UNSKINNABLE;
+ case 148: return SPELL_FAILED_THIRST_SATIATED;
+ case 149: return SPELL_FAILED_TOO_CLOSE;
+ case 150: return SPELL_FAILED_TOO_MANY_OF_ITEM;
+ case 151: return SPELL_FAILED_TOTEM_CATEGORY;
+ case 152: return SPELL_FAILED_TOTEMS;
+ case 153: return SPELL_FAILED_TRY_AGAIN;
+ case 154: return SPELL_FAILED_UNIT_NOT_BEHIND;
+ case 155: return SPELL_FAILED_UNIT_NOT_INFRONT;
+ case 156: return SPELL_FAILED_VISION_OBSCURED;
+ case 157: return SPELL_FAILED_WRONG_PET_FOOD;
+ case 158: return SPELL_FAILED_NOT_WHILE_FATIGUED;
+ case 159: return SPELL_FAILED_TARGET_NOT_IN_INSTANCE;
+ case 160: return SPELL_FAILED_NOT_WHILE_TRADING;
+ case 161: return SPELL_FAILED_TARGET_NOT_IN_RAID;
+ case 162: return SPELL_FAILED_TARGET_FREEFORALL;
+ case 163: return SPELL_FAILED_NO_EDIBLE_CORPSES;
+ case 164: return SPELL_FAILED_ONLY_BATTLEGROUNDS;
+ case 165: return SPELL_FAILED_TARGET_NOT_GHOST;
+ case 166: return SPELL_FAILED_TRANSFORM_UNUSABLE;
+ case 167: return SPELL_FAILED_WRONG_WEATHER;
+ case 168: return SPELL_FAILED_DAMAGE_IMMUNE;
+ case 169: return SPELL_FAILED_PREVENTED_BY_MECHANIC;
+ case 170: return SPELL_FAILED_PLAY_TIME;
+ case 171: return SPELL_FAILED_REPUTATION;
+ case 172: return SPELL_FAILED_MIN_SKILL;
+ case 173: return SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND;
+ case 174: return SPELL_FAILED_NOT_ON_SHAPESHIFT;
+ case 175: return SPELL_FAILED_NOT_ON_STEALTHED;
+ case 176: return SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE;
+ case 177: return SPELL_FAILED_NOT_ON_MOUNTED;
+ case 178: return SPELL_FAILED_TOO_SHALLOW;
+ case 179: return SPELL_FAILED_TARGET_NOT_IN_SANCTUARY;
+ case 180: return SPELL_FAILED_TARGET_IS_TRIVIAL;
+ case 181: return SPELL_FAILED_BM_OR_INVISGOD;
+ case 182: return SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED;
+ case 183: return SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED;
+ case 184: return SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED;
+ case 185: return SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED;
+ case 186: return SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT;
+ case 187: return SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT;
+ case 188: return SPELL_FAILED_EXPERT_RIDING_REQUIREMENT;
+ case 189: return SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT;
+ case 190: return SPELL_FAILED_MASTER_RIDING_REQUIREMENT;
+ case 191: return SPELL_FAILED_COLD_RIDING_REQUIREMENT;
+ case 192: return SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT;
+ case 193: return SPELL_FAILED_CS_RIDING_REQUIREMENT;
+ case 194: return SPELL_FAILED_PANDA_RIDING_REQUIREMENT;
+ case 195: return SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT;
+ case 196: return SPELL_FAILED_BROKEN_ISLES_RIDING_REQUIREMENT;
+ case 197: return SPELL_FAILED_MOUNT_NO_FLOAT_HERE;
+ case 198: return SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE;
+ case 199: return SPELL_FAILED_MOUNT_ABOVE_WATER_HERE;
+ case 200: return SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR;
+ case 201: return SPELL_FAILED_NOT_IDLE;
+ case 202: return SPELL_FAILED_NOT_INACTIVE;
+ case 203: return SPELL_FAILED_PARTIAL_PLAYTIME;
+ case 204: return SPELL_FAILED_NO_PLAYTIME;
+ case 205: return SPELL_FAILED_NOT_IN_BATTLEGROUND;
+ case 206: return SPELL_FAILED_NOT_IN_RAID_INSTANCE;
+ case 207: return SPELL_FAILED_ONLY_IN_ARENA;
+ case 208: return SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE;
+ case 209: return SPELL_FAILED_ON_USE_ENCHANT;
+ case 210: return SPELL_FAILED_NOT_ON_GROUND;
+ case 211: return SPELL_FAILED_CUSTOM_ERROR;
+ case 212: return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
+ case 213: return SPELL_FAILED_TOO_MANY_SOCKETS;
+ case 214: return SPELL_FAILED_INVALID_GLYPH;
+ case 215: return SPELL_FAILED_UNIQUE_GLYPH;
+ case 216: return SPELL_FAILED_GLYPH_SOCKET_LOCKED;
+ case 217: return SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY;
+ case 218: return SPELL_FAILED_GLYPH_INVALID_SPEC;
+ case 219: return SPELL_FAILED_GLYPH_NO_SPEC;
+ case 220: return SPELL_FAILED_NO_ACTIVE_GLYPHS;
+ case 221: return SPELL_FAILED_NO_VALID_TARGETS;
+ case 222: return SPELL_FAILED_ITEM_AT_MAX_CHARGES;
+ case 223: return SPELL_FAILED_NOT_IN_BARBERSHOP;
+ case 224: return SPELL_FAILED_FISHING_TOO_LOW;
+ case 225: return SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW;
+ case 226: return SPELL_FAILED_SUMMON_PENDING;
+ case 227: return SPELL_FAILED_MAX_SOCKETS;
+ case 228: return SPELL_FAILED_PET_CAN_RENAME;
+ case 229: return SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED;
+ case 230: return SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING;
+ case 231: return SPELL_FAILED_NO_ACTIONS;
+ case 232: return SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH;
+ case 233: return SPELL_FAILED_WEIGHT_NOT_ENOUGH;
+ case 234: return SPELL_FAILED_WEIGHT_TOO_MUCH;
+ case 235: return SPELL_FAILED_NO_VACANT_SEAT;
+ case 236: return SPELL_FAILED_NO_LIQUID;
+ case 237: return SPELL_FAILED_ONLY_NOT_SWIMMING;
+ case 238: return SPELL_FAILED_BY_NOT_MOVING;
+ case 239: return SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED;
+ case 240: return SPELL_FAILED_NOT_IN_ARENA;
+ case 241: return SPELL_FAILED_TARGET_NOT_GROUNDED;
+ case 242: return SPELL_FAILED_EXCEEDED_WEEKLY_USAGE;
+ case 243: return SPELL_FAILED_NOT_IN_LFG_DUNGEON;
+ case 244: return SPELL_FAILED_BAD_TARGET_FILTER;
+ case 245: return SPELL_FAILED_NOT_ENOUGH_TARGETS;
+ case 246: return SPELL_FAILED_NO_SPEC;
+ case 247: return SPELL_FAILED_CANT_ADD_BATTLE_PET;
+ case 248: return SPELL_FAILED_CANT_UPGRADE_BATTLE_PET;
+ case 249: return SPELL_FAILED_WRONG_BATTLE_PET_TYPE;
+ case 250: return SPELL_FAILED_NO_DUNGEON_ENCOUNTER;
+ case 251: return SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON;
+ case 252: return SPELL_FAILED_MAX_LEVEL_TOO_LOW;
+ case 253: return SPELL_FAILED_CANT_REPLACE_ITEM_BONUS;
+ case 254: return GRANT_PET_LEVEL_FAIL;
+ case 255: return SPELL_FAILED_SKILL_LINE_NOT_KNOWN;
+ case 256: return SPELL_FAILED_BLUEPRINT_KNOWN;
+ case 257: return SPELL_FAILED_FOLLOWER_KNOWN;
+ case 258: return SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL;
+ case 259: return SPELL_FAILED_ITEM_NOT_A_WEAPON;
+ case 260: return SPELL_FAILED_SAME_ENCHANT_VISUAL;
+ case 261: return SPELL_FAILED_TOY_USE_LIMIT_REACHED;
+ case 262: return SPELL_FAILED_TOY_ALREADY_KNOWN;
+ case 263: return SPELL_FAILED_SHIPMENTS_FULL;
+ case 264: return SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER;
+ case 265: return SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT;
+ case 266: return SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER;
+ case 267: return SPELL_FAILED_HAS_MISSION;
+ case 268: return SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY;
+ case 269: return SPELL_FAILED_NOT_SOULBOUND;
+ case 270: return SPELL_FAILED_RIDING_VEHICLE;
+ case 271: return SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX;
+ case 272: return SPELL_FAILED_NOT_WHILE_MERCENARY;
+ case 273: return SPELL_FAILED_SPEC_DISABLED;
+ case 274: return SPELL_FAILED_CANT_BE_OBLITERATED;
+ case 275: return SPELL_FAILED_CANT_BE_SCRAPPED;
+ case 276: return SPELL_FAILED_FOLLOWER_CLASS_SPEC_CAP;
+ case 277: return SPELL_FAILED_TRANSPORT_NOT_READY;
+ case 278: return SPELL_FAILED_TRANSMOG_SET_ALREADY_KNOWN;
+ case 279: return SPELL_FAILED_DISABLED_BY_AURA_LABEL;
+ case 280: return SPELL_FAILED_DISABLED_BY_MAX_USABLE_LEVEL;
+ case 281: return SPELL_FAILED_SPELL_ALREADY_KNOWN;
+ case 282: return SPELL_FAILED_MUST_KNOW_SUPERCEDING_SPELL;
+ case 283: return SPELL_FAILED_YOU_CANNOT_USE_THAT_IN_PVP_INSTANCE;
+ case 284: return SPELL_FAILED_NO_ARTIFACT_EQUIPPED;
+ case 285: return SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED;
+ case 286: return SPELL_FAILED_TARGET_IS_UNTARGETABLE_BY_ANYONE;
+ case 287: return SPELL_FAILED_SPELL_EFFECT_FAILED;
+ case 288: return SPELL_FAILED_NEED_ALL_PARTY_MEMBERS;
+ case 289: return SPELL_FAILED_ARTIFACT_AT_FULL_POWER;
+ case 290: return SPELL_FAILED_AP_ITEM_FROM_PREVIOUS_TIER;
+ case 291: return SPELL_FAILED_AREA_TRIGGER_CREATION;
+ case 292: return SPELL_FAILED_AZERITE_EMPOWERED_ONLY;
+ case 293: return SPELL_FAILED_AZERITE_EMPOWERED_NO_CHOICES_TO_UNDO;
+ case 294: return SPELL_FAILED_WRONG_FACTION;
+ case 295: return SPELL_FAILED_NOT_ENOUGH_CURRENCY;
+ case 296: return SPELL_FAILED_BATTLE_FOR_AZEROTH_RIDING_REQUIREMENT;
+ case 297: return SPELL_FAILED_MOUNT_EQUIPMENT_ERROR;
+ case 298: return SPELL_FAILED_NOT_WHILE_LEVEL_LINKED;
+ case 299: return SPELL_FAILED_LEVEL_LINKED_LOW_LEVEL;
+ case 300: return SPELL_FAILED_SUMMON_MAP_CONDITION;
+ case 301: return SPELL_FAILED_SET_COVENANT_ERROR;
+ case 302: return SPELL_FAILED_RUNEFORGE_LEGENDARY_UPGRADE;
+ case 303: return SPELL_FAILED_SET_CHROMIE_TIME_ERROR;
+ case 304: return SPELL_FAILED_INELIGIBLE_WEAPON_APPEARANCE;
+ case 305: return SPELL_FAILED_PLAYER_CONDITION;
+ case 306: return SPELL_FAILED_NOT_WHILE_CHROMIE_TIMED;
+ case 307: return SPELL_FAILED_OPTIONAL_REAGENTS;
+ case 308: return SPELL_FAILED_SPECTATOR_OR_COMMENTATOR;
+ case 309: return SPELL_FAILED_SOULBIND_CONDUIT_LEARN_FAILED_INVALID_COVENANT;
+ case 310: return SPELL_FAILED_SHADOWLANDS_RIDING_REQUIREMENT;
+ case 311: return SPELL_FAILED_NOT_IN_MAGE_TOWER;
+ case 312: return SPELL_FAILED_GARRISON_FOLLOWER_AT_MIN_LEVEL;
+ case 313: return SPELL_FAILED_UNKNOWN;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<SpellCastResult>::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_HAVE_PET: return 8;
+ case SPELL_FAILED_ALREADY_OPEN: return 9;
+ case SPELL_FAILED_AURA_BOUNCED: return 10;
+ case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return 11;
+ case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return 12;
+ case SPELL_FAILED_BAD_TARGETS: return 13;
+ case SPELL_FAILED_PVP_TARGET_WHILE_UNFLAGGED: return 14;
+ case SPELL_FAILED_CANT_BE_CHARMED: return 15;
+ case SPELL_FAILED_CANT_BE_DISENCHANTED: return 16;
+ case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return 17;
+ case SPELL_FAILED_CANT_BE_ENCHANTED: return 18;
+ case SPELL_FAILED_CANT_BE_MILLED: return 19;
+ case SPELL_FAILED_CANT_BE_PROSPECTED: return 20;
+ case SPELL_FAILED_CANT_CAST_ON_TAPPED: return 21;
+ case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return 22;
+ case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return 23;
+ case SPELL_FAILED_CANT_STEALTH: return 24;
+ case SPELL_FAILED_CANT_UNTALENT: return 25;
+ case SPELL_FAILED_CASTER_AURASTATE: return 26;
+ case SPELL_FAILED_CASTER_DEAD: return 27;
+ case SPELL_FAILED_CHARMED: return 28;
+ case SPELL_FAILED_CHEST_IN_USE: return 29;
+ case SPELL_FAILED_CONFUSED: return 30;
+ case SPELL_FAILED_DISABLED_BY_POWER_SCALING: return 31;
+ case SPELL_FAILED_DONT_REPORT: return 32;
+ case SPELL_FAILED_EQUIPPED_ITEM: return 33;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return 34;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return 35;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return 36;
+ case SPELL_FAILED_ERROR: return 37;
+ case SPELL_FAILED_FALLING: return 38;
+ case SPELL_FAILED_FIZZLE: return 39;
+ case SPELL_FAILED_FLEEING: return 40;
+ case SPELL_FAILED_FOOD_LOWLEVEL: return 41;
+ case SPELL_FAILED_GARRISON_NOT_OWNED: return 42;
+ case SPELL_FAILED_GARRISON_OWNED: return 43;
+ case SPELL_FAILED_GARRISON_MAX_LEVEL: return 44;
+ case SPELL_FAILED_GARRISON_NOT_UPGRADEABLE: return 45;
+ case SPELL_FAILED_GARRISON_FOLLOWER_ON_MISSION: return 46;
+ case SPELL_FAILED_GARRISON_FOLLOWER_IN_BUILDING: return 47;
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_LEVEL: return 48;
+ case SPELL_FAILED_GARRISON_FOLLOWER_MIN_ITEM_LEVEL: return 49;
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_ITEM_LEVEL: return 50;
+ case SPELL_FAILED_GARRISON_FOLLOWER_MAX_QUALITY: return 51;
+ case SPELL_FAILED_GARRISON_FOLLOWER_NOT_MAX_LEVEL: return 52;
+ case SPELL_FAILED_GARRISON_FOLLOWER_HAS_ABILITY: return 53;
+ case SPELL_FAILED_GARRISON_FOLLOWER_HAS_SINGLE_MISSION_ABILITY: return 54;
+ case SPELL_FAILED_GARRISON_FOLLOWER_REQUIRES_EPIC: return 55;
+ case SPELL_FAILED_GARRISON_MISSION_NOT_IN_PROGRESS: return 56;
+ case SPELL_FAILED_GARRISON_MISSION_COMPLETE: return 57;
+ case SPELL_FAILED_GARRISON_NO_MISSIONS_AVAILABLE: return 58;
+ case SPELL_FAILED_HIGHLEVEL: return 59;
+ case SPELL_FAILED_HUNGER_SATIATED: return 60;
+ case SPELL_FAILED_IMMUNE: return 61;
+ case SPELL_FAILED_INCORRECT_AREA: return 62;
+ case SPELL_FAILED_INTERRUPTED: return 63;
+ case SPELL_FAILED_INTERRUPTED_COMBAT: return 64;
+ case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return 65;
+ case SPELL_FAILED_ITEM_GONE: return 66;
+ case SPELL_FAILED_ITEM_NOT_FOUND: return 67;
+ case SPELL_FAILED_ITEM_NOT_READY: return 68;
+ case SPELL_FAILED_LEVEL_REQUIREMENT: return 69;
+ case SPELL_FAILED_LINE_OF_SIGHT: return 70;
+ case SPELL_FAILED_LOWLEVEL: return 71;
+ case SPELL_FAILED_LOW_CASTLEVEL: return 72;
+ case SPELL_FAILED_MAINHAND_EMPTY: return 73;
+ case SPELL_FAILED_MOVING: return 74;
+ case SPELL_FAILED_NEED_AMMO: return 75;
+ case SPELL_FAILED_NEED_AMMO_POUCH: return 76;
+ case SPELL_FAILED_NEED_EXOTIC_AMMO: return 77;
+ case SPELL_FAILED_NEED_MORE_ITEMS: return 78;
+ case SPELL_FAILED_NOPATH: return 79;
+ case SPELL_FAILED_NOT_BEHIND: return 80;
+ case SPELL_FAILED_NOT_FISHABLE: return 81;
+ case SPELL_FAILED_NOT_FLYING: return 82;
+ case SPELL_FAILED_NOT_HERE: return 83;
+ case SPELL_FAILED_NOT_INFRONT: return 84;
+ case SPELL_FAILED_NOT_IN_CONTROL: return 85;
+ case SPELL_FAILED_NOT_KNOWN: return 86;
+ case SPELL_FAILED_NOT_MOUNTED: return 87;
+ case SPELL_FAILED_NOT_ON_TAXI: return 88;
+ case SPELL_FAILED_NOT_ON_TRANSPORT: return 89;
+ case SPELL_FAILED_NOT_READY: return 90;
+ case SPELL_FAILED_NOT_SHAPESHIFT: return 91;
+ case SPELL_FAILED_NOT_STANDING: return 92;
+ case SPELL_FAILED_NOT_TRADEABLE: return 93;
+ case SPELL_FAILED_NOT_TRADING: return 94;
+ case SPELL_FAILED_NOT_UNSHEATHED: return 95;
+ case SPELL_FAILED_NOT_WHILE_GHOST: return 96;
+ case SPELL_FAILED_NOT_WHILE_LOOTING: return 97;
+ case SPELL_FAILED_NO_AMMO: return 98;
+ case SPELL_FAILED_NO_CHARGES_REMAIN: return 99;
+ case SPELL_FAILED_NO_COMBO_POINTS: return 100;
+ case SPELL_FAILED_NO_DUELING: return 101;
+ case SPELL_FAILED_NO_ENDURANCE: return 102;
+ case SPELL_FAILED_NO_FISH: return 103;
+ case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return 104;
+ case SPELL_FAILED_NO_MOUNTS_ALLOWED: return 105;
+ case SPELL_FAILED_NO_PET: return 106;
+ case SPELL_FAILED_NO_POWER: return 107;
+ case SPELL_FAILED_NOTHING_TO_DISPEL: return 108;
+ case SPELL_FAILED_NOTHING_TO_STEAL: return 109;
+ case SPELL_FAILED_ONLY_ABOVEWATER: return 110;
+ case SPELL_FAILED_ONLY_INDOORS: return 111;
+ case SPELL_FAILED_ONLY_MOUNTED: return 112;
+ case SPELL_FAILED_ONLY_OUTDOORS: return 113;
+ case SPELL_FAILED_ONLY_SHAPESHIFT: return 114;
+ case SPELL_FAILED_ONLY_STEALTHED: return 115;
+ case SPELL_FAILED_ONLY_UNDERWATER: return 116;
+ case SPELL_FAILED_OUT_OF_RANGE: return 117;
+ case SPELL_FAILED_PACIFIED: return 118;
+ case SPELL_FAILED_POSSESSED: return 119;
+ case SPELL_FAILED_REAGENTS: return 120;
+ case SPELL_FAILED_REQUIRES_AREA: return 121;
+ case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return 122;
+ case SPELL_FAILED_ROOTED: return 123;
+ case SPELL_FAILED_SILENCED: return 124;
+ case SPELL_FAILED_SPELL_IN_PROGRESS: return 125;
+ case SPELL_FAILED_SPELL_LEARNED: return 126;
+ case SPELL_FAILED_SPELL_UNAVAILABLE: return 127;
+ case SPELL_FAILED_STUNNED: return 128;
+ case SPELL_FAILED_TARGETS_DEAD: return 129;
+ case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return 130;
+ case SPELL_FAILED_TARGET_AURASTATE: return 131;
+ case SPELL_FAILED_TARGET_DUELING: return 132;
+ case SPELL_FAILED_TARGET_ENEMY: return 133;
+ case SPELL_FAILED_TARGET_ENRAGED: return 134;
+ case SPELL_FAILED_TARGET_FRIENDLY: return 135;
+ case SPELL_FAILED_TARGET_IN_COMBAT: return 136;
+ case SPELL_FAILED_TARGET_IN_PET_BATTLE: return 137;
+ case SPELL_FAILED_TARGET_IS_PLAYER: return 138;
+ case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return 139;
+ case SPELL_FAILED_TARGET_NOT_DEAD: return 140;
+ case SPELL_FAILED_TARGET_NOT_IN_PARTY: return 141;
+ case SPELL_FAILED_TARGET_NOT_LOOTED: return 142;
+ case SPELL_FAILED_TARGET_NOT_PLAYER: return 143;
+ case SPELL_FAILED_TARGET_NO_POCKETS: return 144;
+ case SPELL_FAILED_TARGET_NO_WEAPONS: return 145;
+ case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return 146;
+ case SPELL_FAILED_TARGET_UNSKINNABLE: return 147;
+ case SPELL_FAILED_THIRST_SATIATED: return 148;
+ case SPELL_FAILED_TOO_CLOSE: return 149;
+ case SPELL_FAILED_TOO_MANY_OF_ITEM: return 150;
+ case SPELL_FAILED_TOTEM_CATEGORY: return 151;
+ case SPELL_FAILED_TOTEMS: return 152;
+ case SPELL_FAILED_TRY_AGAIN: return 153;
+ case SPELL_FAILED_UNIT_NOT_BEHIND: return 154;
+ case SPELL_FAILED_UNIT_NOT_INFRONT: return 155;
+ case SPELL_FAILED_VISION_OBSCURED: return 156;
+ case SPELL_FAILED_WRONG_PET_FOOD: return 157;
+ case SPELL_FAILED_NOT_WHILE_FATIGUED: return 158;
+ case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return 159;
+ case SPELL_FAILED_NOT_WHILE_TRADING: return 160;
+ case SPELL_FAILED_TARGET_NOT_IN_RAID: return 161;
+ case SPELL_FAILED_TARGET_FREEFORALL: return 162;
+ case SPELL_FAILED_NO_EDIBLE_CORPSES: return 163;
+ case SPELL_FAILED_ONLY_BATTLEGROUNDS: return 164;
+ case SPELL_FAILED_TARGET_NOT_GHOST: return 165;
+ case SPELL_FAILED_TRANSFORM_UNUSABLE: return 166;
+ case SPELL_FAILED_WRONG_WEATHER: return 167;
+ case SPELL_FAILED_DAMAGE_IMMUNE: return 168;
+ case SPELL_FAILED_PREVENTED_BY_MECHANIC: return 169;
+ case SPELL_FAILED_PLAY_TIME: return 170;
+ case SPELL_FAILED_REPUTATION: return 171;
+ case SPELL_FAILED_MIN_SKILL: return 172;
+ case SPELL_FAILED_NOT_IN_RATED_BATTLEGROUND: return 173;
+ case SPELL_FAILED_NOT_ON_SHAPESHIFT: return 174;
+ case SPELL_FAILED_NOT_ON_STEALTHED: return 175;
+ case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return 176;
+ case SPELL_FAILED_NOT_ON_MOUNTED: return 177;
+ case SPELL_FAILED_TOO_SHALLOW: return 178;
+ case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return 179;
+ case SPELL_FAILED_TARGET_IS_TRIVIAL: return 180;
+ case SPELL_FAILED_BM_OR_INVISGOD: return 181;
+ case SPELL_FAILED_GROUND_MOUNT_NOT_ALLOWED: return 182;
+ case SPELL_FAILED_FLOATING_MOUNT_NOT_ALLOWED: return 183;
+ case SPELL_FAILED_UNDERWATER_MOUNT_NOT_ALLOWED: return 184;
+ case SPELL_FAILED_FLYING_MOUNT_NOT_ALLOWED: return 185;
+ case SPELL_FAILED_APPRENTICE_RIDING_REQUIREMENT: return 186;
+ case SPELL_FAILED_JOURNEYMAN_RIDING_REQUIREMENT: return 187;
+ case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return 188;
+ case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return 189;
+ case SPELL_FAILED_MASTER_RIDING_REQUIREMENT: return 190;
+ case SPELL_FAILED_COLD_RIDING_REQUIREMENT: return 191;
+ case SPELL_FAILED_FLIGHT_MASTER_RIDING_REQUIREMENT: return 192;
+ case SPELL_FAILED_CS_RIDING_REQUIREMENT: return 193;
+ case SPELL_FAILED_PANDA_RIDING_REQUIREMENT: return 194;
+ case SPELL_FAILED_DRAENOR_RIDING_REQUIREMENT: return 195;
+ case SPELL_FAILED_BROKEN_ISLES_RIDING_REQUIREMENT: return 196;
+ case SPELL_FAILED_MOUNT_NO_FLOAT_HERE: return 197;
+ case SPELL_FAILED_MOUNT_NO_UNDERWATER_HERE: return 198;
+ case SPELL_FAILED_MOUNT_ABOVE_WATER_HERE: return 199;
+ case SPELL_FAILED_MOUNT_COLLECTED_ON_OTHER_CHAR: return 200;
+ case SPELL_FAILED_NOT_IDLE: return 201;
+ case SPELL_FAILED_NOT_INACTIVE: return 202;
+ case SPELL_FAILED_PARTIAL_PLAYTIME: return 203;
+ case SPELL_FAILED_NO_PLAYTIME: return 204;
+ case SPELL_FAILED_NOT_IN_BATTLEGROUND: return 205;
+ case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return 206;
+ case SPELL_FAILED_ONLY_IN_ARENA: return 207;
+ case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return 208;
+ case SPELL_FAILED_ON_USE_ENCHANT: return 209;
+ case SPELL_FAILED_NOT_ON_GROUND: return 210;
+ case SPELL_FAILED_CUSTOM_ERROR: return 211;
+ case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return 212;
+ case SPELL_FAILED_TOO_MANY_SOCKETS: return 213;
+ case SPELL_FAILED_INVALID_GLYPH: return 214;
+ case SPELL_FAILED_UNIQUE_GLYPH: return 215;
+ case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return 216;
+ case SPELL_FAILED_GLYPH_EXCLUSIVE_CATEGORY: return 217;
+ case SPELL_FAILED_GLYPH_INVALID_SPEC: return 218;
+ case SPELL_FAILED_GLYPH_NO_SPEC: return 219;
+ case SPELL_FAILED_NO_ACTIVE_GLYPHS: return 220;
+ case SPELL_FAILED_NO_VALID_TARGETS: return 221;
+ case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return 222;
+ case SPELL_FAILED_NOT_IN_BARBERSHOP: return 223;
+ case SPELL_FAILED_FISHING_TOO_LOW: return 224;
+ case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return 225;
+ case SPELL_FAILED_SUMMON_PENDING: return 226;
+ case SPELL_FAILED_MAX_SOCKETS: return 227;
+ case SPELL_FAILED_PET_CAN_RENAME: return 228;
+ case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return 229;
+ case SPELL_FAILED_TARGET_HAS_RESURRECT_PENDING: return 230;
+ case SPELL_FAILED_NO_ACTIONS: return 231;
+ case SPELL_FAILED_CURRENCY_WEIGHT_MISMATCH: return 232;
+ case SPELL_FAILED_WEIGHT_NOT_ENOUGH: return 233;
+ case SPELL_FAILED_WEIGHT_TOO_MUCH: return 234;
+ case SPELL_FAILED_NO_VACANT_SEAT: return 235;
+ case SPELL_FAILED_NO_LIQUID: return 236;
+ case SPELL_FAILED_ONLY_NOT_SWIMMING: return 237;
+ case SPELL_FAILED_BY_NOT_MOVING: return 238;
+ case SPELL_FAILED_IN_COMBAT_RES_LIMIT_REACHED: return 239;
+ case SPELL_FAILED_NOT_IN_ARENA: return 240;
+ case SPELL_FAILED_TARGET_NOT_GROUNDED: return 241;
+ case SPELL_FAILED_EXCEEDED_WEEKLY_USAGE: return 242;
+ case SPELL_FAILED_NOT_IN_LFG_DUNGEON: return 243;
+ case SPELL_FAILED_BAD_TARGET_FILTER: return 244;
+ case SPELL_FAILED_NOT_ENOUGH_TARGETS: return 245;
+ case SPELL_FAILED_NO_SPEC: return 246;
+ case SPELL_FAILED_CANT_ADD_BATTLE_PET: return 247;
+ case SPELL_FAILED_CANT_UPGRADE_BATTLE_PET: return 248;
+ case SPELL_FAILED_WRONG_BATTLE_PET_TYPE: return 249;
+ case SPELL_FAILED_NO_DUNGEON_ENCOUNTER: return 250;
+ case SPELL_FAILED_NO_TELEPORT_FROM_DUNGEON: return 251;
+ case SPELL_FAILED_MAX_LEVEL_TOO_LOW: return 252;
+ case SPELL_FAILED_CANT_REPLACE_ITEM_BONUS: return 253;
+ case GRANT_PET_LEVEL_FAIL: return 254;
+ case SPELL_FAILED_SKILL_LINE_NOT_KNOWN: return 255;
+ case SPELL_FAILED_BLUEPRINT_KNOWN: return 256;
+ case SPELL_FAILED_FOLLOWER_KNOWN: return 257;
+ case SPELL_FAILED_CANT_OVERRIDE_ENCHANT_VISUAL: return 258;
+ case SPELL_FAILED_ITEM_NOT_A_WEAPON: return 259;
+ case SPELL_FAILED_SAME_ENCHANT_VISUAL: return 260;
+ case SPELL_FAILED_TOY_USE_LIMIT_REACHED: return 261;
+ case SPELL_FAILED_TOY_ALREADY_KNOWN: return 262;
+ case SPELL_FAILED_SHIPMENTS_FULL: return 263;
+ case SPELL_FAILED_NO_SHIPMENTS_FOR_CONTAINER: return 264;
+ case SPELL_FAILED_NO_BUILDING_FOR_SHIPMENT: return 265;
+ case SPELL_FAILED_NOT_ENOUGH_SHIPMENTS_FOR_CONTAINER: return 266;
+ case SPELL_FAILED_HAS_MISSION: return 267;
+ case SPELL_FAILED_BUILDING_ACTIVATE_NOT_READY: return 268;
+ case SPELL_FAILED_NOT_SOULBOUND: return 269;
+ case SPELL_FAILED_RIDING_VEHICLE: return 270;
+ case SPELL_FAILED_VETERAN_TRIAL_ABOVE_SKILL_RANK_MAX: return 271;
+ case SPELL_FAILED_NOT_WHILE_MERCENARY: return 272;
+ case SPELL_FAILED_SPEC_DISABLED: return 273;
+ case SPELL_FAILED_CANT_BE_OBLITERATED: return 274;
+ case SPELL_FAILED_CANT_BE_SCRAPPED: return 275;
+ case SPELL_FAILED_FOLLOWER_CLASS_SPEC_CAP: return 276;
+ case SPELL_FAILED_TRANSPORT_NOT_READY: return 277;
+ case SPELL_FAILED_TRANSMOG_SET_ALREADY_KNOWN: return 278;
+ case SPELL_FAILED_DISABLED_BY_AURA_LABEL: return 279;
+ case SPELL_FAILED_DISABLED_BY_MAX_USABLE_LEVEL: return 280;
+ case SPELL_FAILED_SPELL_ALREADY_KNOWN: return 281;
+ case SPELL_FAILED_MUST_KNOW_SUPERCEDING_SPELL: return 282;
+ case SPELL_FAILED_YOU_CANNOT_USE_THAT_IN_PVP_INSTANCE: return 283;
+ case SPELL_FAILED_NO_ARTIFACT_EQUIPPED: return 284;
+ case SPELL_FAILED_WRONG_ARTIFACT_EQUIPPED: return 285;
+ case SPELL_FAILED_TARGET_IS_UNTARGETABLE_BY_ANYONE: return 286;
+ case SPELL_FAILED_SPELL_EFFECT_FAILED: return 287;
+ case SPELL_FAILED_NEED_ALL_PARTY_MEMBERS: return 288;
+ case SPELL_FAILED_ARTIFACT_AT_FULL_POWER: return 289;
+ case SPELL_FAILED_AP_ITEM_FROM_PREVIOUS_TIER: return 290;
+ case SPELL_FAILED_AREA_TRIGGER_CREATION: return 291;
+ case SPELL_FAILED_AZERITE_EMPOWERED_ONLY: return 292;
+ case SPELL_FAILED_AZERITE_EMPOWERED_NO_CHOICES_TO_UNDO: return 293;
+ case SPELL_FAILED_WRONG_FACTION: return 294;
+ case SPELL_FAILED_NOT_ENOUGH_CURRENCY: return 295;
+ case SPELL_FAILED_BATTLE_FOR_AZEROTH_RIDING_REQUIREMENT: return 296;
+ case SPELL_FAILED_MOUNT_EQUIPMENT_ERROR: return 297;
+ case SPELL_FAILED_NOT_WHILE_LEVEL_LINKED: return 298;
+ case SPELL_FAILED_LEVEL_LINKED_LOW_LEVEL: return 299;
+ case SPELL_FAILED_SUMMON_MAP_CONDITION: return 300;
+ case SPELL_FAILED_SET_COVENANT_ERROR: return 301;
+ case SPELL_FAILED_RUNEFORGE_LEGENDARY_UPGRADE: return 302;
+ case SPELL_FAILED_SET_CHROMIE_TIME_ERROR: return 303;
+ case SPELL_FAILED_INELIGIBLE_WEAPON_APPEARANCE: return 304;
+ case SPELL_FAILED_PLAYER_CONDITION: return 305;
+ case SPELL_FAILED_NOT_WHILE_CHROMIE_TIMED: return 306;
+ case SPELL_FAILED_OPTIONAL_REAGENTS: return 307;
+ case SPELL_FAILED_SPECTATOR_OR_COMMENTATOR: return 308;
+ case SPELL_FAILED_SOULBIND_CONDUIT_LEARN_FAILED_INVALID_COVENANT: return 309;
+ case SPELL_FAILED_SHADOWLANDS_RIDING_REQUIREMENT: return 310;
+ case SPELL_FAILED_NOT_IN_MAGE_TOWER: return 311;
+ case SPELL_FAILED_GARRISON_FOLLOWER_AT_MIN_LEVEL: return 312;
+ case SPELL_FAILED_UNKNOWN: return 313;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/*********************************************************************\
+|* data for enum 'AuraStateType' in 'SharedDefines.h' auto-generated *|
+\*********************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<AuraStateType>::ToString(AuraStateType value)
+{
+ switch (value)
+ {
+ case AURA_STATE_NONE: return { "AURA_STATE_NONE", "AURA_STATE_NONE", "C |" };
+ case AURA_STATE_DEFENSIVE: return { "AURA_STATE_DEFENSIVE", "AURA_STATE_DEFENSIVE", "CcTt|" };
+ case AURA_STATE_WOUNDED_20_PERCENT: return { "AURA_STATE_WOUNDED_20_PERCENT", "AURA_STATE_WOUNDED_20_PERCENT", "CcT |" };
+ case AURA_STATE_UNBALANCED: return { "AURA_STATE_UNBALANCED", "AURA_STATE_UNBALANCED", "CcT | NYI" };
+ case AURA_STATE_FROZEN: return { "AURA_STATE_FROZEN", "AURA_STATE_FROZEN", "c t|" };
+ case AURA_STATE_MARKED: return { "AURA_STATE_MARKED", "AURA_STATE_MARKED", "C t| NYI" };
+ case AURA_STATE_WOUNDED_25_PERCENT: return { "AURA_STATE_WOUNDED_25_PERCENT", "AURA_STATE_WOUNDED_25_PERCENT", "T |" };
+ case AURA_STATE_DEFENSIVE_2: return { "AURA_STATE_DEFENSIVE_2", "AURA_STATE_DEFENSIVE_2", "Cc | NYI" };
+ case AURA_STATE_BANISHED: return { "AURA_STATE_BANISHED", "AURA_STATE_BANISHED", "c | NYI" };
+ case AURA_STATE_DAZED: return { "AURA_STATE_DAZED", "AURA_STATE_DAZED", "t|" };
+ case AURA_STATE_VICTORIOUS: return { "AURA_STATE_VICTORIOUS", "AURA_STATE_VICTORIOUS", "C |" };
+ case AURA_STATE_RAMPAGE: return { "AURA_STATE_RAMPAGE", "AURA_STATE_RAMPAGE", "| NYI" };
+ case AURA_STATE_FAERIE_FIRE: return { "AURA_STATE_FAERIE_FIRE", "AURA_STATE_FAERIE_FIRE", "c t|" };
+ case AURA_STATE_WOUNDED_35_PERCENT: return { "AURA_STATE_WOUNDED_35_PERCENT", "AURA_STATE_WOUNDED_35_PERCENT", "CcT |" };
+ case AURA_STATE_RAID_ENCOUNTER_2: return { "AURA_STATE_RAID_ENCOUNTER_2", "AURA_STATE_RAID_ENCOUNTER_2", "cT |" };
+ case AURA_STATE_DRUID_PERIODIC_HEAL: return { "AURA_STATE_DRUID_PERIODIC_HEAL", "AURA_STATE_DRUID_PERIODIC_HEAL", "T |" };
+ case AURA_STATE_ROGUE_POISONED: return { "AURA_STATE_ROGUE_POISONED", "AURA_STATE_ROGUE_POISONED", "|" };
+ case AURA_STATE_ENRAGED: return { "AURA_STATE_ENRAGED", "AURA_STATE_ENRAGED", "C |" };
+ case AURA_STATE_BLEED: return { "AURA_STATE_BLEED", "AURA_STATE_BLEED", "T |" };
+ case AURA_STATE_VULNERABLE: return { "AURA_STATE_VULNERABLE", "AURA_STATE_VULNERABLE", "| NYI" };
+ case AURA_STATE_ARENA_PREPARATION: return { "AURA_STATE_ARENA_PREPARATION", "AURA_STATE_ARENA_PREPARATION", "c |" };
+ case AURA_STATE_WOUND_HEALTH_20_80: return { "AURA_STATE_WOUND_HEALTH_20_80", "AURA_STATE_WOUND_HEALTH_20_80", "T |" };
+ case AURA_STATE_RAID_ENCOUNTER: return { "AURA_STATE_RAID_ENCOUNTER", "AURA_STATE_RAID_ENCOUNTER", "CcTt|" };
+ case AURA_STATE_HEALTHY_75_PERCENT: return { "AURA_STATE_HEALTHY_75_PERCENT", "AURA_STATE_HEALTHY_75_PERCENT", "C |" };
+ case AURA_STATE_WOUND_HEALTH_35_80: return { "AURA_STATE_WOUND_HEALTH_35_80", "AURA_STATE_WOUND_HEALTH_35_80", "T |" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<AuraStateType>::Count() { return 25; }
+
+template <>
+TC_API_EXPORT AuraStateType EnumUtils<AuraStateType>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return AURA_STATE_NONE;
+ case 1: return AURA_STATE_DEFENSIVE;
+ case 2: return AURA_STATE_WOUNDED_20_PERCENT;
+ case 3: return AURA_STATE_UNBALANCED;
+ case 4: return AURA_STATE_FROZEN;
+ case 5: return AURA_STATE_MARKED;
+ case 6: return AURA_STATE_WOUNDED_25_PERCENT;
+ case 7: return AURA_STATE_DEFENSIVE_2;
+ case 8: return AURA_STATE_BANISHED;
+ case 9: return AURA_STATE_DAZED;
+ case 10: return AURA_STATE_VICTORIOUS;
+ case 11: return AURA_STATE_RAMPAGE;
+ case 12: return AURA_STATE_FAERIE_FIRE;
+ case 13: return AURA_STATE_WOUNDED_35_PERCENT;
+ case 14: return AURA_STATE_RAID_ENCOUNTER_2;
+ case 15: return AURA_STATE_DRUID_PERIODIC_HEAL;
+ case 16: return AURA_STATE_ROGUE_POISONED;
+ case 17: return AURA_STATE_ENRAGED;
+ case 18: return AURA_STATE_BLEED;
+ case 19: return AURA_STATE_VULNERABLE;
+ case 20: return AURA_STATE_ARENA_PREPARATION;
+ case 21: return AURA_STATE_WOUND_HEALTH_20_80;
+ case 22: return AURA_STATE_RAID_ENCOUNTER;
+ case 23: return AURA_STATE_HEALTHY_75_PERCENT;
+ case 24: return AURA_STATE_WOUND_HEALTH_35_80;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<AuraStateType>::ToIndex(AuraStateType value)
+{
+ switch (value)
+ {
+ case AURA_STATE_NONE: return 0;
+ case AURA_STATE_DEFENSIVE: return 1;
+ case AURA_STATE_WOUNDED_20_PERCENT: return 2;
+ case AURA_STATE_UNBALANCED: return 3;
+ case AURA_STATE_FROZEN: return 4;
+ case AURA_STATE_MARKED: return 5;
+ case AURA_STATE_WOUNDED_25_PERCENT: return 6;
+ case AURA_STATE_DEFENSIVE_2: return 7;
+ case AURA_STATE_BANISHED: return 8;
+ case AURA_STATE_DAZED: return 9;
+ case AURA_STATE_VICTORIOUS: return 10;
+ case AURA_STATE_RAMPAGE: return 11;
+ case AURA_STATE_FAERIE_FIRE: return 12;
+ case AURA_STATE_WOUNDED_35_PERCENT: return 13;
+ case AURA_STATE_RAID_ENCOUNTER_2: return 14;
+ case AURA_STATE_DRUID_PERIODIC_HEAL: return 15;
+ case AURA_STATE_ROGUE_POISONED: return 16;
+ case AURA_STATE_ENRAGED: return 17;
+ case AURA_STATE_BLEED: return 18;
+ case AURA_STATE_VULNERABLE: return 19;
+ case AURA_STATE_ARENA_PREPARATION: return 20;
+ case AURA_STATE_WOUND_HEALTH_20_80: return 21;
+ case AURA_STATE_RAID_ENCOUNTER: return 22;
+ case AURA_STATE_HEALTHY_75_PERCENT: return 23;
+ case AURA_STATE_WOUND_HEALTH_35_80: return 24;
+ default: throw std::out_of_range("value");
+ }
+}
+
/*****************************************************************\
|* data for enum 'Mechanics' in 'SharedDefines.h' auto-generated *|
\*****************************************************************/
@@ -3692,6 +4775,249 @@ TC_API_EXPORT size_t EnumUtils<WeatherType>::ToIndex(WeatherType value)
}
}
+/***************************************************************\
+|* data for enum 'ChatMsg' in 'SharedDefines.h' auto-generated *|
+\***************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<ChatMsg>::ToString(ChatMsg value)
+{
+ switch (value)
+ {
+ case CHAT_MSG_ADDON: return { "CHAT_MSG_ADDON", "CHAT_MSG_ADDON", "" };
+ case CHAT_MSG_SYSTEM: return { "CHAT_MSG_SYSTEM", "CHAT_MSG_SYSTEM", "" };
+ case CHAT_MSG_SAY: return { "CHAT_MSG_SAY", "CHAT_MSG_SAY", "" };
+ case CHAT_MSG_PARTY: return { "CHAT_MSG_PARTY", "CHAT_MSG_PARTY", "" };
+ case CHAT_MSG_RAID: return { "CHAT_MSG_RAID", "CHAT_MSG_RAID", "" };
+ case CHAT_MSG_GUILD: return { "CHAT_MSG_GUILD", "CHAT_MSG_GUILD", "" };
+ case CHAT_MSG_OFFICER: return { "CHAT_MSG_OFFICER", "CHAT_MSG_OFFICER", "" };
+ case CHAT_MSG_YELL: return { "CHAT_MSG_YELL", "CHAT_MSG_YELL", "" };
+ case CHAT_MSG_WHISPER: return { "CHAT_MSG_WHISPER", "CHAT_MSG_WHISPER", "" };
+ case CHAT_MSG_WHISPER_FOREIGN: return { "CHAT_MSG_WHISPER_FOREIGN", "CHAT_MSG_WHISPER_FOREIGN", "" };
+ case CHAT_MSG_WHISPER_INFORM: return { "CHAT_MSG_WHISPER_INFORM", "CHAT_MSG_WHISPER_INFORM", "" };
+ case CHAT_MSG_EMOTE: return { "CHAT_MSG_EMOTE", "CHAT_MSG_EMOTE", "" };
+ case CHAT_MSG_TEXT_EMOTE: return { "CHAT_MSG_TEXT_EMOTE", "CHAT_MSG_TEXT_EMOTE", "" };
+ case CHAT_MSG_MONSTER_SAY: return { "CHAT_MSG_MONSTER_SAY", "CHAT_MSG_MONSTER_SAY", "" };
+ case CHAT_MSG_MONSTER_PARTY: return { "CHAT_MSG_MONSTER_PARTY", "CHAT_MSG_MONSTER_PARTY", "" };
+ case CHAT_MSG_MONSTER_YELL: return { "CHAT_MSG_MONSTER_YELL", "CHAT_MSG_MONSTER_YELL", "" };
+ case CHAT_MSG_MONSTER_WHISPER: return { "CHAT_MSG_MONSTER_WHISPER", "CHAT_MSG_MONSTER_WHISPER", "" };
+ case CHAT_MSG_MONSTER_EMOTE: return { "CHAT_MSG_MONSTER_EMOTE", "CHAT_MSG_MONSTER_EMOTE", "" };
+ case CHAT_MSG_CHANNEL: return { "CHAT_MSG_CHANNEL", "CHAT_MSG_CHANNEL", "" };
+ case CHAT_MSG_CHANNEL_JOIN: return { "CHAT_MSG_CHANNEL_JOIN", "CHAT_MSG_CHANNEL_JOIN", "" };
+ case CHAT_MSG_CHANNEL_LEAVE: return { "CHAT_MSG_CHANNEL_LEAVE", "CHAT_MSG_CHANNEL_LEAVE", "" };
+ case CHAT_MSG_CHANNEL_LIST: return { "CHAT_MSG_CHANNEL_LIST", "CHAT_MSG_CHANNEL_LIST", "" };
+ case CHAT_MSG_CHANNEL_NOTICE: return { "CHAT_MSG_CHANNEL_NOTICE", "CHAT_MSG_CHANNEL_NOTICE", "" };
+ case CHAT_MSG_CHANNEL_NOTICE_USER: return { "CHAT_MSG_CHANNEL_NOTICE_USER", "CHAT_MSG_CHANNEL_NOTICE_USER", "" };
+ case CHAT_MSG_AFK: return { "CHAT_MSG_AFK", "CHAT_MSG_AFK", "" };
+ case CHAT_MSG_DND: return { "CHAT_MSG_DND", "CHAT_MSG_DND", "" };
+ case CHAT_MSG_IGNORED: return { "CHAT_MSG_IGNORED", "CHAT_MSG_IGNORED", "" };
+ case CHAT_MSG_SKILL: return { "CHAT_MSG_SKILL", "CHAT_MSG_SKILL", "" };
+ case CHAT_MSG_LOOT: return { "CHAT_MSG_LOOT", "CHAT_MSG_LOOT", "" };
+ case CHAT_MSG_MONEY: return { "CHAT_MSG_MONEY", "CHAT_MSG_MONEY", "" };
+ case CHAT_MSG_OPENING: return { "CHAT_MSG_OPENING", "CHAT_MSG_OPENING", "" };
+ case CHAT_MSG_TRADESKILLS: return { "CHAT_MSG_TRADESKILLS", "CHAT_MSG_TRADESKILLS", "" };
+ case CHAT_MSG_PET_INFO: return { "CHAT_MSG_PET_INFO", "CHAT_MSG_PET_INFO", "" };
+ case CHAT_MSG_COMBAT_MISC_INFO: return { "CHAT_MSG_COMBAT_MISC_INFO", "CHAT_MSG_COMBAT_MISC_INFO", "" };
+ case CHAT_MSG_COMBAT_XP_GAIN: return { "CHAT_MSG_COMBAT_XP_GAIN", "CHAT_MSG_COMBAT_XP_GAIN", "" };
+ case CHAT_MSG_COMBAT_HONOR_GAIN: return { "CHAT_MSG_COMBAT_HONOR_GAIN", "CHAT_MSG_COMBAT_HONOR_GAIN", "" };
+ case CHAT_MSG_COMBAT_FACTION_CHANGE: return { "CHAT_MSG_COMBAT_FACTION_CHANGE", "CHAT_MSG_COMBAT_FACTION_CHANGE", "" };
+ case CHAT_MSG_BG_SYSTEM_NEUTRAL: return { "CHAT_MSG_BG_SYSTEM_NEUTRAL", "CHAT_MSG_BG_SYSTEM_NEUTRAL", "" };
+ case CHAT_MSG_BG_SYSTEM_ALLIANCE: return { "CHAT_MSG_BG_SYSTEM_ALLIANCE", "CHAT_MSG_BG_SYSTEM_ALLIANCE", "" };
+ case CHAT_MSG_BG_SYSTEM_HORDE: return { "CHAT_MSG_BG_SYSTEM_HORDE", "CHAT_MSG_BG_SYSTEM_HORDE", "" };
+ case CHAT_MSG_RAID_LEADER: return { "CHAT_MSG_RAID_LEADER", "CHAT_MSG_RAID_LEADER", "" };
+ case CHAT_MSG_RAID_WARNING: return { "CHAT_MSG_RAID_WARNING", "CHAT_MSG_RAID_WARNING", "" };
+ case CHAT_MSG_RAID_BOSS_EMOTE: return { "CHAT_MSG_RAID_BOSS_EMOTE", "CHAT_MSG_RAID_BOSS_EMOTE", "" };
+ case CHAT_MSG_RAID_BOSS_WHISPER: return { "CHAT_MSG_RAID_BOSS_WHISPER", "CHAT_MSG_RAID_BOSS_WHISPER", "" };
+ case CHAT_MSG_FILTERED: return { "CHAT_MSG_FILTERED", "CHAT_MSG_FILTERED", "" };
+ case CHAT_MSG_RESTRICTED: return { "CHAT_MSG_RESTRICTED", "CHAT_MSG_RESTRICTED", "" };
+ case CHAT_MSG_BATTLENET: return { "CHAT_MSG_BATTLENET", "CHAT_MSG_BATTLENET", "" };
+ case CHAT_MSG_ACHIEVEMENT: return { "CHAT_MSG_ACHIEVEMENT", "CHAT_MSG_ACHIEVEMENT", "" };
+ case CHAT_MSG_GUILD_ACHIEVEMENT: return { "CHAT_MSG_GUILD_ACHIEVEMENT", "CHAT_MSG_GUILD_ACHIEVEMENT", "" };
+ case CHAT_MSG_ARENA_POINTS: return { "CHAT_MSG_ARENA_POINTS", "CHAT_MSG_ARENA_POINTS", "" };
+ case CHAT_MSG_PARTY_LEADER: return { "CHAT_MSG_PARTY_LEADER", "CHAT_MSG_PARTY_LEADER", "" };
+ case CHAT_MSG_TARGETICONS: return { "CHAT_MSG_TARGETICONS", "CHAT_MSG_TARGETICONS", "" };
+ case CHAT_MSG_BN_WHISPER: return { "CHAT_MSG_BN_WHISPER", "CHAT_MSG_BN_WHISPER", "" };
+ case CHAT_MSG_BN_WHISPER_INFORM: return { "CHAT_MSG_BN_WHISPER_INFORM", "CHAT_MSG_BN_WHISPER_INFORM", "" };
+ case CHAT_MSG_BN_CONVERSATION: return { "CHAT_MSG_BN_CONVERSATION", "CHAT_MSG_BN_CONVERSATION", "" };
+ case CHAT_MSG_BN_CONVERSATION_NOTICE: return { "CHAT_MSG_BN_CONVERSATION_NOTICE", "CHAT_MSG_BN_CONVERSATION_NOTICE", "" };
+ case CHAT_MSG_BN_CONVERSATION_LIST: return { "CHAT_MSG_BN_CONVERSATION_LIST", "CHAT_MSG_BN_CONVERSATION_LIST", "" };
+ case CHAT_MSG_BN_INLINE_TOAST_ALERT: return { "CHAT_MSG_BN_INLINE_TOAST_ALERT", "CHAT_MSG_BN_INLINE_TOAST_ALERT", "" };
+ case CHAT_MSG_BN_INLINE_TOAST_BROADCAST: return { "CHAT_MSG_BN_INLINE_TOAST_BROADCAST", "CHAT_MSG_BN_INLINE_TOAST_BROADCAST", "" };
+ case CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM: return { "CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM", "CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM", "" };
+ case CHAT_MSG_BN_INLINE_TOAST_CONVERSATION: return { "CHAT_MSG_BN_INLINE_TOAST_CONVERSATION", "CHAT_MSG_BN_INLINE_TOAST_CONVERSATION", "" };
+ case CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE: return { "CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE", "CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE", "" };
+ case CHAT_MSG_COMBAT_GUILD_XP_GAIN: return { "CHAT_MSG_COMBAT_GUILD_XP_GAIN", "CHAT_MSG_COMBAT_GUILD_XP_GAIN", "" };
+ case CHAT_MSG_CURRENCY: return { "CHAT_MSG_CURRENCY", "CHAT_MSG_CURRENCY", "" };
+ case CHAT_MSG_QUEST_BOSS_EMOTE: return { "CHAT_MSG_QUEST_BOSS_EMOTE", "CHAT_MSG_QUEST_BOSS_EMOTE", "" };
+ case CHAT_MSG_PET_BATTLE_COMBAT_LOG: return { "CHAT_MSG_PET_BATTLE_COMBAT_LOG", "CHAT_MSG_PET_BATTLE_COMBAT_LOG", "" };
+ case CHAT_MSG_PET_BATTLE_INFO: return { "CHAT_MSG_PET_BATTLE_INFO", "CHAT_MSG_PET_BATTLE_INFO", "" };
+ case CHAT_MSG_INSTANCE_CHAT: return { "CHAT_MSG_INSTANCE_CHAT", "CHAT_MSG_INSTANCE_CHAT", "" };
+ case CHAT_MSG_INSTANCE_CHAT_LEADER: return { "CHAT_MSG_INSTANCE_CHAT_LEADER", "CHAT_MSG_INSTANCE_CHAT_LEADER", "" };
+ case MAX_CHAT_MSG_TYPE: return { "MAX_CHAT_MSG_TYPE", "MAX_CHAT_MSG_TYPE", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatMsg>::Count() { return 70; }
+
+template <>
+TC_API_EXPORT ChatMsg EnumUtils<ChatMsg>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return CHAT_MSG_ADDON;
+ case 1: return CHAT_MSG_SYSTEM;
+ case 2: return CHAT_MSG_SAY;
+ case 3: return CHAT_MSG_PARTY;
+ case 4: return CHAT_MSG_RAID;
+ case 5: return CHAT_MSG_GUILD;
+ case 6: return CHAT_MSG_OFFICER;
+ case 7: return CHAT_MSG_YELL;
+ case 8: return CHAT_MSG_WHISPER;
+ case 9: return CHAT_MSG_WHISPER_FOREIGN;
+ case 10: return CHAT_MSG_WHISPER_INFORM;
+ case 11: return CHAT_MSG_EMOTE;
+ case 12: return CHAT_MSG_TEXT_EMOTE;
+ case 13: return CHAT_MSG_MONSTER_SAY;
+ case 14: return CHAT_MSG_MONSTER_PARTY;
+ case 15: return CHAT_MSG_MONSTER_YELL;
+ case 16: return CHAT_MSG_MONSTER_WHISPER;
+ case 17: return CHAT_MSG_MONSTER_EMOTE;
+ case 18: return CHAT_MSG_CHANNEL;
+ case 19: return CHAT_MSG_CHANNEL_JOIN;
+ case 20: return CHAT_MSG_CHANNEL_LEAVE;
+ case 21: return CHAT_MSG_CHANNEL_LIST;
+ case 22: return CHAT_MSG_CHANNEL_NOTICE;
+ case 23: return CHAT_MSG_CHANNEL_NOTICE_USER;
+ case 24: return CHAT_MSG_AFK;
+ case 25: return CHAT_MSG_DND;
+ case 26: return CHAT_MSG_IGNORED;
+ case 27: return CHAT_MSG_SKILL;
+ case 28: return CHAT_MSG_LOOT;
+ case 29: return CHAT_MSG_MONEY;
+ case 30: return CHAT_MSG_OPENING;
+ case 31: return CHAT_MSG_TRADESKILLS;
+ case 32: return CHAT_MSG_PET_INFO;
+ case 33: return CHAT_MSG_COMBAT_MISC_INFO;
+ case 34: return CHAT_MSG_COMBAT_XP_GAIN;
+ case 35: return CHAT_MSG_COMBAT_HONOR_GAIN;
+ case 36: return CHAT_MSG_COMBAT_FACTION_CHANGE;
+ case 37: return CHAT_MSG_BG_SYSTEM_NEUTRAL;
+ case 38: return CHAT_MSG_BG_SYSTEM_ALLIANCE;
+ case 39: return CHAT_MSG_BG_SYSTEM_HORDE;
+ case 40: return CHAT_MSG_RAID_LEADER;
+ case 41: return CHAT_MSG_RAID_WARNING;
+ case 42: return CHAT_MSG_RAID_BOSS_EMOTE;
+ case 43: return CHAT_MSG_RAID_BOSS_WHISPER;
+ case 44: return CHAT_MSG_FILTERED;
+ case 45: return CHAT_MSG_RESTRICTED;
+ case 46: return CHAT_MSG_BATTLENET;
+ case 47: return CHAT_MSG_ACHIEVEMENT;
+ case 48: return CHAT_MSG_GUILD_ACHIEVEMENT;
+ case 49: return CHAT_MSG_ARENA_POINTS;
+ case 50: return CHAT_MSG_PARTY_LEADER;
+ case 51: return CHAT_MSG_TARGETICONS;
+ case 52: return CHAT_MSG_BN_WHISPER;
+ case 53: return CHAT_MSG_BN_WHISPER_INFORM;
+ case 54: return CHAT_MSG_BN_CONVERSATION;
+ case 55: return CHAT_MSG_BN_CONVERSATION_NOTICE;
+ case 56: return CHAT_MSG_BN_CONVERSATION_LIST;
+ case 57: return CHAT_MSG_BN_INLINE_TOAST_ALERT;
+ case 58: return CHAT_MSG_BN_INLINE_TOAST_BROADCAST;
+ case 59: return CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM;
+ case 60: return CHAT_MSG_BN_INLINE_TOAST_CONVERSATION;
+ case 61: return CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE;
+ case 62: return CHAT_MSG_COMBAT_GUILD_XP_GAIN;
+ case 63: return CHAT_MSG_CURRENCY;
+ case 64: return CHAT_MSG_QUEST_BOSS_EMOTE;
+ case 65: return CHAT_MSG_PET_BATTLE_COMBAT_LOG;
+ case 66: return CHAT_MSG_PET_BATTLE_INFO;
+ case 67: return CHAT_MSG_INSTANCE_CHAT;
+ case 68: return CHAT_MSG_INSTANCE_CHAT_LEADER;
+ case 69: return MAX_CHAT_MSG_TYPE;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatMsg>::ToIndex(ChatMsg value)
+{
+ switch (value)
+ {
+ case CHAT_MSG_ADDON: return 0;
+ case CHAT_MSG_SYSTEM: return 1;
+ case CHAT_MSG_SAY: return 2;
+ case CHAT_MSG_PARTY: return 3;
+ case CHAT_MSG_RAID: return 4;
+ case CHAT_MSG_GUILD: return 5;
+ case CHAT_MSG_OFFICER: return 6;
+ case CHAT_MSG_YELL: return 7;
+ case CHAT_MSG_WHISPER: return 8;
+ case CHAT_MSG_WHISPER_FOREIGN: return 9;
+ case CHAT_MSG_WHISPER_INFORM: return 10;
+ case CHAT_MSG_EMOTE: return 11;
+ case CHAT_MSG_TEXT_EMOTE: return 12;
+ case CHAT_MSG_MONSTER_SAY: return 13;
+ case CHAT_MSG_MONSTER_PARTY: return 14;
+ case CHAT_MSG_MONSTER_YELL: return 15;
+ case CHAT_MSG_MONSTER_WHISPER: return 16;
+ case CHAT_MSG_MONSTER_EMOTE: return 17;
+ case CHAT_MSG_CHANNEL: return 18;
+ case CHAT_MSG_CHANNEL_JOIN: return 19;
+ case CHAT_MSG_CHANNEL_LEAVE: return 20;
+ case CHAT_MSG_CHANNEL_LIST: return 21;
+ case CHAT_MSG_CHANNEL_NOTICE: return 22;
+ case CHAT_MSG_CHANNEL_NOTICE_USER: return 23;
+ case CHAT_MSG_AFK: return 24;
+ case CHAT_MSG_DND: return 25;
+ case CHAT_MSG_IGNORED: return 26;
+ case CHAT_MSG_SKILL: return 27;
+ case CHAT_MSG_LOOT: return 28;
+ case CHAT_MSG_MONEY: return 29;
+ case CHAT_MSG_OPENING: return 30;
+ case CHAT_MSG_TRADESKILLS: return 31;
+ case CHAT_MSG_PET_INFO: return 32;
+ case CHAT_MSG_COMBAT_MISC_INFO: return 33;
+ case CHAT_MSG_COMBAT_XP_GAIN: return 34;
+ case CHAT_MSG_COMBAT_HONOR_GAIN: return 35;
+ case CHAT_MSG_COMBAT_FACTION_CHANGE: return 36;
+ case CHAT_MSG_BG_SYSTEM_NEUTRAL: return 37;
+ case CHAT_MSG_BG_SYSTEM_ALLIANCE: return 38;
+ case CHAT_MSG_BG_SYSTEM_HORDE: return 39;
+ case CHAT_MSG_RAID_LEADER: return 40;
+ case CHAT_MSG_RAID_WARNING: return 41;
+ case CHAT_MSG_RAID_BOSS_EMOTE: return 42;
+ case CHAT_MSG_RAID_BOSS_WHISPER: return 43;
+ case CHAT_MSG_FILTERED: return 44;
+ case CHAT_MSG_RESTRICTED: return 45;
+ case CHAT_MSG_BATTLENET: return 46;
+ case CHAT_MSG_ACHIEVEMENT: return 47;
+ case CHAT_MSG_GUILD_ACHIEVEMENT: return 48;
+ case CHAT_MSG_ARENA_POINTS: return 49;
+ case CHAT_MSG_PARTY_LEADER: return 50;
+ case CHAT_MSG_TARGETICONS: return 51;
+ case CHAT_MSG_BN_WHISPER: return 52;
+ case CHAT_MSG_BN_WHISPER_INFORM: return 53;
+ case CHAT_MSG_BN_CONVERSATION: return 54;
+ case CHAT_MSG_BN_CONVERSATION_NOTICE: return 55;
+ case CHAT_MSG_BN_CONVERSATION_LIST: return 56;
+ case CHAT_MSG_BN_INLINE_TOAST_ALERT: return 57;
+ case CHAT_MSG_BN_INLINE_TOAST_BROADCAST: return 58;
+ case CHAT_MSG_BN_INLINE_TOAST_BROADCAST_INFORM: return 59;
+ case CHAT_MSG_BN_INLINE_TOAST_CONVERSATION: return 60;
+ case CHAT_MSG_BN_WHISPER_PLAYER_OFFLINE: return 61;
+ case CHAT_MSG_COMBAT_GUILD_XP_GAIN: return 62;
+ case CHAT_MSG_CURRENCY: return 63;
+ case CHAT_MSG_QUEST_BOSS_EMOTE: return 64;
+ case CHAT_MSG_PET_BATTLE_COMBAT_LOG: return 65;
+ case CHAT_MSG_PET_BATTLE_INFO: return 66;
+ case CHAT_MSG_INSTANCE_CHAT: return 67;
+ case CHAT_MSG_INSTANCE_CHAT_LEADER: return 68;
+ case MAX_CHAT_MSG_TYPE: return 69;
+ default: throw std::out_of_range("value");
+ }
+}
+
/************************************************************************\
|* data for enum 'SpellFamilyNames' in 'SharedDefines.h' auto-generated *|
\************************************************************************/
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 014cdf78902..e4aadb391fd 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -50,24 +50,26 @@ namespace WorldPackets
#define QUEST_REWARD_CURRENCY_COUNT 4
#define QUEST_REWARD_DISPLAY_SPELL_COUNT 3
-enum QuestFailedReason
+// EnumUtils: DESCRIBE THIS
+enum QuestFailedReason : uint32
{
QUEST_ERR_NONE = 0,
- QUEST_ERR_FAILED_LOW_LEVEL = 1, // "You are not high enough level for that quest.""
- QUEST_ERR_FAILED_WRONG_RACE = 6, // "That quest is not available to your race."
- QUEST_ERR_ALREADY_DONE = 7, // "You have completed that daily quest today."
- QUEST_ERR_ONLY_ONE_TIMED = 12, // "You can only be on one timed quest at a time"
- QUEST_ERR_ALREADY_ON1 = 13, // "You are already on that quest"
- QUEST_ERR_FAILED_EXPANSION = 16, // "This quest requires an expansion enabled account."
- QUEST_ERR_ALREADY_ON2 = 18, // "You are already on that quest"
- QUEST_ERR_FAILED_MISSING_ITEMS = 21, // "You don't have the required items with you. Check storage."
- QUEST_ERR_FAILED_NOT_ENOUGH_MONEY = 23, // "You don't have enough money for that quest"
- QUEST_ERR_FAILED_CAIS = 24, // "You cannot complete quests once you have reached tired time"
- QUEST_ERR_ALREADY_DONE_DAILY = 26, // "You have completed that daily quest today."
- QUEST_ERR_FAILED_SPELL = 28, // "You haven't learned the required spell."
- QUEST_ERR_HAS_IN_PROGRESS = 30 // "Progress Bar objective not completed"
+ QUEST_ERR_FAILED_LOW_LEVEL = 1, // DESCRIPTION "You are not high enough level for that quest.""
+ QUEST_ERR_FAILED_WRONG_RACE = 6, // DESCRIPTION "That quest is not available to your race."
+ QUEST_ERR_ALREADY_DONE = 7, // DESCRIPTION "You have completed that daily quest today."
+ QUEST_ERR_ONLY_ONE_TIMED = 12, // DESCRIPTION "You can only be on one timed quest at a time"
+ QUEST_ERR_ALREADY_ON1 = 13, // DESCRIPTION "You are already on that quest"
+ QUEST_ERR_FAILED_EXPANSION = 16, // DESCRIPTION "This quest requires an expansion enabled account."
+ QUEST_ERR_ALREADY_ON2 = 18, // DESCRIPTION "You are already on that quest"
+ QUEST_ERR_FAILED_MISSING_ITEMS = 21, // DESCRIPTION "You don't have the required items with you. Check storage."
+ QUEST_ERR_FAILED_NOT_ENOUGH_MONEY = 23, // DESCRIPTION "You don't have enough money for that quest"
+ QUEST_ERR_FAILED_CAIS = 24, // DESCRIPTION "You cannot complete quests once you have reached tired time"
+ QUEST_ERR_ALREADY_DONE_DAILY = 26, // DESCRIPTION "You have completed that daily quest today."
+ QUEST_ERR_FAILED_SPELL = 28, // DESCRIPTION "You haven't learned the required spell."
+ QUEST_ERR_HAS_IN_PROGRESS = 30 // DESCRIPTION "Progress Bar objective not completed"
};
+// EnumUtils: DESCRIBE THIS
enum class QuestPushReason : uint8
{
Success = 0, // "Sharing quest with %s..."
diff --git a/src/server/game/Quests/enuminfo_QuestDef.cpp b/src/server/game/Quests/enuminfo_QuestDef.cpp
new file mode 100644
index 00000000000..594b5e7730e
--- /dev/null
+++ b/src/server/game/Quests/enuminfo_QuestDef.cpp
@@ -0,0 +1,259 @@
+/*
+ * This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "QuestDef.h"
+#include "Define.h"
+#include "SmartEnum.h"
+#include <stdexcept>
+
+namespace Trinity::Impl::EnumUtilsImpl
+{
+
+/********************************************************************\
+|* data for enum 'QuestFailedReason' in 'QuestDef.h' auto-generated *|
+\********************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<QuestFailedReason>::ToString(QuestFailedReason value)
+{
+ switch (value)
+ {
+ case QUEST_ERR_NONE: return { "QUEST_ERR_NONE", "QUEST_ERR_NONE", "" };
+ case QUEST_ERR_FAILED_LOW_LEVEL: return { "QUEST_ERR_FAILED_LOW_LEVEL", "QUEST_ERR_FAILED_LOW_LEVEL", "\042You are not high enough level for that quest.\042\042" };
+ case QUEST_ERR_FAILED_WRONG_RACE: return { "QUEST_ERR_FAILED_WRONG_RACE", "QUEST_ERR_FAILED_WRONG_RACE", "\042That quest is not available to your race.\042" };
+ case QUEST_ERR_ALREADY_DONE: return { "QUEST_ERR_ALREADY_DONE", "QUEST_ERR_ALREADY_DONE", "\042You have completed that daily quest today.\042" };
+ case QUEST_ERR_ONLY_ONE_TIMED: return { "QUEST_ERR_ONLY_ONE_TIMED", "QUEST_ERR_ONLY_ONE_TIMED", "\042You can only be on one timed quest at a time\042" };
+ case QUEST_ERR_ALREADY_ON1: return { "QUEST_ERR_ALREADY_ON1", "QUEST_ERR_ALREADY_ON1", "\042You are already on that quest\042" };
+ case QUEST_ERR_FAILED_EXPANSION: return { "QUEST_ERR_FAILED_EXPANSION", "QUEST_ERR_FAILED_EXPANSION", "\042This quest requires an expansion enabled account.\042" };
+ case QUEST_ERR_ALREADY_ON2: return { "QUEST_ERR_ALREADY_ON2", "QUEST_ERR_ALREADY_ON2", "\042You are already on that quest\042" };
+ case QUEST_ERR_FAILED_MISSING_ITEMS: return { "QUEST_ERR_FAILED_MISSING_ITEMS", "QUEST_ERR_FAILED_MISSING_ITEMS", "\042You don't have the required items with you. Check storage.\042" };
+ case QUEST_ERR_FAILED_NOT_ENOUGH_MONEY: return { "QUEST_ERR_FAILED_NOT_ENOUGH_MONEY", "QUEST_ERR_FAILED_NOT_ENOUGH_MONEY", "\042You don't have enough money for that quest\042" };
+ case QUEST_ERR_FAILED_CAIS: return { "QUEST_ERR_FAILED_CAIS", "QUEST_ERR_FAILED_CAIS", "\042You cannot complete quests once you have reached tired time\042" };
+ case QUEST_ERR_ALREADY_DONE_DAILY: return { "QUEST_ERR_ALREADY_DONE_DAILY", "QUEST_ERR_ALREADY_DONE_DAILY", "\042You have completed that daily quest today.\042" };
+ case QUEST_ERR_FAILED_SPELL: return { "QUEST_ERR_FAILED_SPELL", "QUEST_ERR_FAILED_SPELL", "\042You haven't learned the required spell.\042" };
+ case QUEST_ERR_HAS_IN_PROGRESS: return { "QUEST_ERR_HAS_IN_PROGRESS", "QUEST_ERR_HAS_IN_PROGRESS", "\042Progress Bar objective not completed\042" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestFailedReason>::Count() { return 14; }
+
+template <>
+TC_API_EXPORT QuestFailedReason EnumUtils<QuestFailedReason>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return QUEST_ERR_NONE;
+ case 1: return QUEST_ERR_FAILED_LOW_LEVEL;
+ case 2: return QUEST_ERR_FAILED_WRONG_RACE;
+ case 3: return QUEST_ERR_ALREADY_DONE;
+ case 4: return QUEST_ERR_ONLY_ONE_TIMED;
+ case 5: return QUEST_ERR_ALREADY_ON1;
+ case 6: return QUEST_ERR_FAILED_EXPANSION;
+ case 7: return QUEST_ERR_ALREADY_ON2;
+ case 8: return QUEST_ERR_FAILED_MISSING_ITEMS;
+ case 9: return QUEST_ERR_FAILED_NOT_ENOUGH_MONEY;
+ case 10: return QUEST_ERR_FAILED_CAIS;
+ case 11: return QUEST_ERR_ALREADY_DONE_DAILY;
+ case 12: return QUEST_ERR_FAILED_SPELL;
+ case 13: return QUEST_ERR_HAS_IN_PROGRESS;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestFailedReason>::ToIndex(QuestFailedReason value)
+{
+ switch (value)
+ {
+ case QUEST_ERR_NONE: return 0;
+ case QUEST_ERR_FAILED_LOW_LEVEL: return 1;
+ case QUEST_ERR_FAILED_WRONG_RACE: return 2;
+ case QUEST_ERR_ALREADY_DONE: return 3;
+ case QUEST_ERR_ONLY_ONE_TIMED: return 4;
+ case QUEST_ERR_ALREADY_ON1: return 5;
+ case QUEST_ERR_FAILED_EXPANSION: return 6;
+ case QUEST_ERR_ALREADY_ON2: return 7;
+ case QUEST_ERR_FAILED_MISSING_ITEMS: return 8;
+ case QUEST_ERR_FAILED_NOT_ENOUGH_MONEY: return 9;
+ case QUEST_ERR_FAILED_CAIS: return 10;
+ case QUEST_ERR_ALREADY_DONE_DAILY: return 11;
+ case QUEST_ERR_FAILED_SPELL: return 12;
+ case QUEST_ERR_HAS_IN_PROGRESS: return 13;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/******************************************************************\
+|* data for enum 'QuestPushReason' in 'QuestDef.h' auto-generated *|
+\******************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<QuestPushReason>::ToString(QuestPushReason value)
+{
+ switch (value)
+ {
+ case QuestPushReason::Success: return { "Success", "Success", "\042Sharing quest with %s...\042" };
+ case QuestPushReason::Invalid: return { "Invalid", "Invalid", "\042%s is not eligible for that quest\042" };
+ case QuestPushReason::InvalidToRecipient: return { "InvalidToRecipient", "InvalidToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are not eligible for that quest.\042" };
+ case QuestPushReason::Accepted: return { "Accepted", "Accepted", "\042%s has accepted your quest\042" };
+ case QuestPushReason::Declined: return { "Declined", "Declined", "\042%s has declined your quest\042" };
+ case QuestPushReason::Busy: return { "Busy", "Busy", "\042%s is busy\042" };
+ case QuestPushReason::Dead: return { "Dead", "Dead", "\042%s is dead.\042" };
+ case QuestPushReason::DeadToRecipient: return { "DeadToRecipient", "DeadToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are dead.\042" };
+ case QuestPushReason::LogFull: return { "LogFull", "LogFull", "\042%s's quest log is full\042" };
+ case QuestPushReason::LogFullToRecipient: return { "LogFullToRecipient", "LogFullToRecipient", "\042%s's attempt to share quest \042%s\042 failed. Your quest log is full.\042" };
+ case QuestPushReason::OnQuest: return { "OnQuest", "OnQuest", "\042%s is already on that quest\042" };
+ case QuestPushReason::OnQuestToRecipient: return { "OnQuestToRecipient", "OnQuestToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are already on that quest.\042" };
+ case QuestPushReason::AlreadyDone: return { "AlreadyDone", "AlreadyDone", "\042%s has completed that quest\042" };
+ case QuestPushReason::AlreadyDoneToRecipient: return { "AlreadyDoneToRecipient", "AlreadyDoneToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You have completed that quest.\042" };
+ case QuestPushReason::NotDaily: return { "NotDaily", "NotDaily", "\042That quest cannot be shared today\042" };
+ case QuestPushReason::TimerExpired: return { "TimerExpired", "TimerExpired", "\042Quest sharing timer has expired\042" };
+ case QuestPushReason::NotInParty: return { "NotInParty", "NotInParty", "\042You are not in a party\042" };
+ case QuestPushReason::DifferentServerDaily: return { "DifferentServerDaily", "DifferentServerDaily", "\042%s is not eligible for that quest today\042" };
+ case QuestPushReason::DifferentServerDailyToRecipient: return { "DifferentServerDailyToRecipient", "DifferentServerDailyToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are not eligible for that quest today.\042" };
+ case QuestPushReason::NotAllowed: return { "NotAllowed", "NotAllowed", "\042That quest cannot be shared\042" };
+ case QuestPushReason::Prerequisite: return { "Prerequisite", "Prerequisite", "\042%s hasn't completed all of the prerequisite quests required for that quest.\042" };
+ case QuestPushReason::PrerequisiteToRecipient: return { "PrerequisiteToRecipient", "PrerequisiteToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You must complete all of the prerequisite quests first.\042" };
+ case QuestPushReason::LowLevel: return { "LowLevel", "LowLevel", "\042%s is too low level for that quest.\042" };
+ case QuestPushReason::LowLevelToRecipient: return { "LowLevelToRecipient", "LowLevelToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are too low level for that quest.\042" };
+ case QuestPushReason::HighLevel: return { "HighLevel", "HighLevel", "\042%s is too high level for that quest.\042" };
+ case QuestPushReason::HighLevelToRecipient: return { "HighLevelToRecipient", "HighLevelToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are too high level for that quest.\042" };
+ case QuestPushReason::Class: return { "Class", "Class", "\042%s is the wrong class for that quest.\042" };
+ case QuestPushReason::ClassToRecipient: return { "ClassToRecipient", "ClassToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are the wrong class for that quest.\042" };
+ case QuestPushReason::Race: return { "Race", "Race", "\042%s is the wrong race for that quest.\042" };
+ case QuestPushReason::RaceToRecipient: return { "RaceToRecipient", "RaceToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are the wrong race for that quest.\042" };
+ case QuestPushReason::LowFaction: return { "LowFaction", "LowFaction", "\042%s's reputation is too low for that quest.\042" };
+ case QuestPushReason::LowFactionToRecipient: return { "LowFactionToRecipient", "LowFactionToRecipient", "\042%s's attempt to share quest \042%s\042 failed. Your reputation is too low for that quest.\042" };
+ case QuestPushReason::Expansion: return { "Expansion", "Expansion", "\042%s doesn't own the required expansion for that quest.\042" };
+ case QuestPushReason::ExpansionToRecipient: return { "ExpansionToRecipient", "ExpansionToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You do not own the required expansion for that quest.\042" };
+ case QuestPushReason::NotGarrisonOwner: return { "NotGarrisonOwner", "NotGarrisonOwner", "\042%s must own a garrison to accept that quest.\042" };
+ case QuestPushReason::NotGarrisonOwnerToRecipient: return { "NotGarrisonOwnerToRecipient", "NotGarrisonOwnerToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You must own a garrison to accept that quest.\042" };
+ case QuestPushReason::WrongCovenant: return { "WrongCovenant", "WrongCovenant", "\042%s is in the wrong covenant for that quest.\042" };
+ case QuestPushReason::WrongCovenantToRecipient: return { "WrongCovenantToRecipient", "WrongCovenantToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are in the wrong covenant for that quest.\042" };
+ case QuestPushReason::NewPlayerExperience: return { "NewPlayerExperience", "NewPlayerExperience", "\042%s must complete Exile's Reach to accept that quest.\042" };
+ case QuestPushReason::NewPlayerExperienceToRecipient: return { "NewPlayerExperienceToRecipient", "NewPlayerExperienceToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You must complete Exile's Reach to accept that quest.\042" };
+ case QuestPushReason::WrongFaction: return { "WrongFaction", "WrongFaction", "\042%s is the wrong faction for that quest.\042" };
+ case QuestPushReason::WrongFactionToRecipient: return { "WrongFactionToRecipient", "WrongFactionToRecipient", "\042%s's attempt to share quest \042%s\042 failed. You are the wrong faction for that quest.\042" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestPushReason>::Count() { return 42; }
+
+template <>
+TC_API_EXPORT QuestPushReason EnumUtils<QuestPushReason>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return QuestPushReason::Success;
+ case 1: return QuestPushReason::Invalid;
+ case 2: return QuestPushReason::InvalidToRecipient;
+ case 3: return QuestPushReason::Accepted;
+ case 4: return QuestPushReason::Declined;
+ case 5: return QuestPushReason::Busy;
+ case 6: return QuestPushReason::Dead;
+ case 7: return QuestPushReason::DeadToRecipient;
+ case 8: return QuestPushReason::LogFull;
+ case 9: return QuestPushReason::LogFullToRecipient;
+ case 10: return QuestPushReason::OnQuest;
+ case 11: return QuestPushReason::OnQuestToRecipient;
+ case 12: return QuestPushReason::AlreadyDone;
+ case 13: return QuestPushReason::AlreadyDoneToRecipient;
+ case 14: return QuestPushReason::NotDaily;
+ case 15: return QuestPushReason::TimerExpired;
+ case 16: return QuestPushReason::NotInParty;
+ case 17: return QuestPushReason::DifferentServerDaily;
+ case 18: return QuestPushReason::DifferentServerDailyToRecipient;
+ case 19: return QuestPushReason::NotAllowed;
+ case 20: return QuestPushReason::Prerequisite;
+ case 21: return QuestPushReason::PrerequisiteToRecipient;
+ case 22: return QuestPushReason::LowLevel;
+ case 23: return QuestPushReason::LowLevelToRecipient;
+ case 24: return QuestPushReason::HighLevel;
+ case 25: return QuestPushReason::HighLevelToRecipient;
+ case 26: return QuestPushReason::Class;
+ case 27: return QuestPushReason::ClassToRecipient;
+ case 28: return QuestPushReason::Race;
+ case 29: return QuestPushReason::RaceToRecipient;
+ case 30: return QuestPushReason::LowFaction;
+ case 31: return QuestPushReason::LowFactionToRecipient;
+ case 32: return QuestPushReason::Expansion;
+ case 33: return QuestPushReason::ExpansionToRecipient;
+ case 34: return QuestPushReason::NotGarrisonOwner;
+ case 35: return QuestPushReason::NotGarrisonOwnerToRecipient;
+ case 36: return QuestPushReason::WrongCovenant;
+ case 37: return QuestPushReason::WrongCovenantToRecipient;
+ case 38: return QuestPushReason::NewPlayerExperience;
+ case 39: return QuestPushReason::NewPlayerExperienceToRecipient;
+ case 40: return QuestPushReason::WrongFaction;
+ case 41: return QuestPushReason::WrongFactionToRecipient;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestPushReason>::ToIndex(QuestPushReason value)
+{
+ switch (value)
+ {
+ case QuestPushReason::Success: return 0;
+ case QuestPushReason::Invalid: return 1;
+ case QuestPushReason::InvalidToRecipient: return 2;
+ case QuestPushReason::Accepted: return 3;
+ case QuestPushReason::Declined: return 4;
+ case QuestPushReason::Busy: return 5;
+ case QuestPushReason::Dead: return 6;
+ case QuestPushReason::DeadToRecipient: return 7;
+ case QuestPushReason::LogFull: return 8;
+ case QuestPushReason::LogFullToRecipient: return 9;
+ case QuestPushReason::OnQuest: return 10;
+ case QuestPushReason::OnQuestToRecipient: return 11;
+ case QuestPushReason::AlreadyDone: return 12;
+ case QuestPushReason::AlreadyDoneToRecipient: return 13;
+ case QuestPushReason::NotDaily: return 14;
+ case QuestPushReason::TimerExpired: return 15;
+ case QuestPushReason::NotInParty: return 16;
+ case QuestPushReason::DifferentServerDaily: return 17;
+ case QuestPushReason::DifferentServerDailyToRecipient: return 18;
+ case QuestPushReason::NotAllowed: return 19;
+ case QuestPushReason::Prerequisite: return 20;
+ case QuestPushReason::PrerequisiteToRecipient: return 21;
+ case QuestPushReason::LowLevel: return 22;
+ case QuestPushReason::LowLevelToRecipient: return 23;
+ case QuestPushReason::HighLevel: return 24;
+ case QuestPushReason::HighLevelToRecipient: return 25;
+ case QuestPushReason::Class: return 26;
+ case QuestPushReason::ClassToRecipient: return 27;
+ case QuestPushReason::Race: return 28;
+ case QuestPushReason::RaceToRecipient: return 29;
+ case QuestPushReason::LowFaction: return 30;
+ case QuestPushReason::LowFactionToRecipient: return 31;
+ case QuestPushReason::Expansion: return 32;
+ case QuestPushReason::ExpansionToRecipient: return 33;
+ case QuestPushReason::NotGarrisonOwner: return 34;
+ case QuestPushReason::NotGarrisonOwnerToRecipient: return 35;
+ case QuestPushReason::WrongCovenant: return 36;
+ case QuestPushReason::WrongCovenantToRecipient: return 37;
+ case QuestPushReason::NewPlayerExperience: return 38;
+ case QuestPushReason::NewPlayerExperienceToRecipient: return 39;
+ case QuestPushReason::WrongFaction: return 40;
+ case QuestPushReason::WrongFactionToRecipient: return 41;
+ default: throw std::out_of_range("value");
+ }
+}
+}
diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp
index ce9d0952f73..0ab2286f3b5 100644
--- a/src/server/scripts/Commands/cs_debug.cpp
+++ b/src/server/scripts/Commands/cs_debug.cpp
@@ -27,6 +27,7 @@ EndScriptData */
#include "BattlefieldMgr.h"
#include "BattlegroundMgr.h"
#include "CellImpl.h"
+#include "Channel.h"
#include "ChannelPackets.h"
#include "Chat.h"
#include "ChatPackets.h"
@@ -116,7 +117,6 @@ public:
{ "send", rbac::RBAC_PERM_COMMAND_DEBUG_SEND, false, nullptr, "", debugSendCommandTable },
{ "setaurastate", rbac::RBAC_PERM_COMMAND_DEBUG_SETAURASTATE, false, &HandleDebugSetAuraStateCommand, "" },
{ "spawnvehicle", rbac::RBAC_PERM_COMMAND_DEBUG_SPAWNVEHICLE, false, &HandleDebugSpawnVehicleCommand, "" },
- { "setvid", rbac::RBAC_PERM_COMMAND_DEBUG_SETVID, false, &HandleDebugSetVehicleIdCommand, "" },
{ "entervehicle", rbac::RBAC_PERM_COMMAND_DEBUG_ENTERVEHICLE, false, &HandleDebugEnterVehicleCommand, "" },
{ "worldstate", rbac::RBAC_PERM_COMMAND_DEBUG_WORLDSTATE, false, &HandleDebugUpdateWorldStateCommand, "" },
{ "itemexpire", rbac::RBAC_PERM_COMMAND_DEBUG_ITEMEXPIRE, false, &HandleDebugItemExpireCommand, "" },
@@ -218,7 +218,7 @@ public:
handler->PSendSysMessage(SZFMTD " waypoints dumped", flyByCameras->size());
}
- handler->GetSession()->GetPlayer()->SendCinematicStart(cinematicId);
+ handler->GetPlayer()->SendCinematicStart(cinematicId);
return true;
}
@@ -233,7 +233,7 @@ public:
return false;
}
- handler->GetSession()->GetPlayer()->SendMovieStart(movieId);
+ handler->GetPlayer()->SendMovieStart(movieId);
return true;
}
@@ -247,7 +247,7 @@ public:
return false;
}
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
Unit* unit = handler->getSelectedUnit();
if (!unit)
@@ -276,7 +276,7 @@ public:
return false;
}
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
player->PlayDirectMusic(musicId, player);
@@ -284,74 +284,41 @@ public:
return true;
}
- static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, SpellCastResult result, Optional<int32> failArg1, Optional<int32> failArg2)
{
- if (!*args)
- return false;
-
- char* result = strtok((char*)args, " ");
- if (!result)
- return false;
-
- uint8 failNum = (uint8)atoi(result);
- if (failNum == 0 && *result != '0')
- return false;
-
- char* fail1 = strtok(nullptr, " ");
- uint8 failArg1 = fail1 ? (uint8)atoi(fail1) : 0;
-
- char* fail2 = strtok(nullptr, " ");
- uint8 failArg2 = fail2 ? (uint8)atoi(fail2) : 0;
-
WorldPackets::Spells::CastFailed castFailed;
castFailed.CastID = ObjectGuid::Empty;
castFailed.SpellID = 133;
- castFailed.Reason = failNum;
- castFailed.FailedArg1 = failArg1;
- castFailed.FailedArg2 = failArg2;
+ castFailed.Reason = result;
+ castFailed.FailedArg1 = failArg1.value_or(-1);
+ castFailed.FailedArg2 = failArg2.value_or(-1);
handler->GetSession()->SendPacket(castFailed.Write());
return true;
}
- static bool HandleDebugSendPlayerChoiceCommand(ChatHandler* handler, char const* args)
- {
- if (!*args)
- return false;
-
- int32 choiceId = atoi(args);
- Player* player = handler->GetSession()->GetPlayer();
+ static bool HandleDebugSendPlayerChoiceCommand(ChatHandler* handler, int32 choiceId)
+ {
+ Player* player = handler->GetPlayer();
player->SendPlayerChoice(player->GetGUID(), choiceId);
return true;
}
- static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendEquipErrorCommand(ChatHandler* handler, InventoryResult error)
{
- if (!*args)
- return false;
-
- InventoryResult msg = InventoryResult(atoi(args));
- handler->GetSession()->GetPlayer()->SendEquipError(msg, nullptr, nullptr);
+ handler->GetPlayer()->SendEquipError(error, nullptr, nullptr);
return true;
}
- static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendSellErrorCommand(ChatHandler* handler, SellResult error)
{
- if (!*args)
- return false;
-
- SellResult msg = SellResult(atoi(args));
- handler->GetSession()->GetPlayer()->SendSellError(msg, nullptr, ObjectGuid::Empty);
+ handler->GetPlayer()->SendSellError(error, nullptr, ObjectGuid::Empty);
return true;
}
- static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendBuyErrorCommand(ChatHandler* handler, BuyResult error)
{
- if (!*args)
- return false;
-
- BuyResult msg = BuyResult(atoi(args));
- handler->GetSession()->GetPlayer()->SendBuyError(msg, nullptr, 0, 0);
+ handler->GetPlayer()->SendBuyError(error, nullptr, 0, 0);
return true;
}
@@ -360,7 +327,7 @@ public:
Unit* unit = handler->getSelectedUnit();
Player* player = nullptr;
if (!unit || (unit->GetTypeId() != TYPEID_PLAYER))
- player = handler->GetSession()->GetPlayer();
+ player = handler->GetPlayer();
else
player = unit->ToPlayer();
@@ -508,13 +475,13 @@ public:
static bool HandleDebugUpdateWorldStateCommand(ChatHandler* handler, uint32 variable, uint32 value)
{
- handler->GetSession()->GetPlayer()->SendUpdateWorldState(variable, value);
+ handler->GetPlayer()->SendUpdateWorldState(variable, value);
return true;
}
static bool HandleDebugAreaTriggersCommand(ChatHandler* handler)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
if (!player->isDebugAreaTriggers)
{
handler->PSendSysMessage(LANG_DEBUG_AREATRIGGER_ON);
@@ -528,38 +495,26 @@ public:
return true;
}
- static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendChannelNotifyCommand(ChatHandler* handler, ChatNotify type)
{
- if (!*args)
- return false;
-
- char const* name = "test";
- uint8 code = atoi(args);
-
WorldPackets::Channel::ChannelNotify channelNotify;
- channelNotify.Type = code;
- channelNotify._Channel = name;
+ channelNotify.Type = type;
+ channelNotify._Channel = "test";
handler->GetSession()->SendPacket(channelNotify.Write());
return true;
}
- static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendChatMsgCommand(ChatHandler* handler, ChatMsg type)
{
- if (!*args)
- return false;
-
- char const* msg = "testtest";
- uint8 type = atoi(args);
WorldPackets::Chat::Chat packet;
- packet.Initialize(ChatMsg(type), LANG_UNIVERSAL, handler->GetSession()->GetPlayer(), handler->GetSession()->GetPlayer(), msg, 0, "chan");
+ packet.Initialize(type, LANG_UNIVERSAL, handler->GetPlayer(), handler->GetPlayer(), "testtest", 0, "chan");
handler->GetSession()->SendPacket(packet.Write());
return true;
}
- static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, QuestPushReason msg)
{
- uint32 msg = atoul(args);
- handler->GetSession()->GetPlayer()->SendPushToPartyResponse(handler->GetSession()->GetPlayer(), static_cast<QuestPushReason>(msg));
+ handler->GetSession()->GetPlayer()->SendPushToPartyResponse(handler->GetPlayer(), msg);
return true;
}
@@ -575,10 +530,9 @@ public:
return true;
}
- static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendQuestInvalidMsgCommand(ChatHandler* handler, QuestFailedReason msg)
{
- QuestFailedReason msg = static_cast<QuestFailedReason>(atoul(args));
- handler->GetSession()->GetPlayer()->SendCanTakeQuestResponse(msg);
+ handler->GetPlayer()->SendCanTakeQuestResponse(msg);
return true;
}
@@ -605,7 +559,7 @@ public:
Player* player = handler->getSelectedPlayer();
if (!player)
- player = handler->GetSession()->GetPlayer();
+ player = handler->GetPlayer();
if (!listQueue && !checkAll)
{
@@ -864,7 +818,7 @@ public:
{
Unit* target = handler->getSelectedUnit();
if (!target)
- target = handler->GetSession()->GetPlayer();
+ target = handler->GetPlayer();
ThreatManager& mgr = target->GetThreatManager();
if (!target->IsAlive())
@@ -1024,7 +978,7 @@ public:
{
Unit* target = handler->getSelectedUnit();
if (!target)
- target = handler->GetSession()->GetPlayer();
+ target = handler->GetPlayer();
handler->PSendSysMessage("Combat refs: (Combat state: %d | Manager state: %d)", target->IsInCombat(), target->GetCombatManager().HasCombat());
for (auto const& ref : target->GetCombatManager().GetPvPCombatRefs())
@@ -1040,25 +994,6 @@ public:
return true;
}
- static bool HandleDebugSetVehicleIdCommand(ChatHandler* handler, char const* args)
- {
- Unit* target = handler->getSelectedUnit();
- if (!target || target->IsVehicle())
- return false;
-
- if (!args)
- return false;
-
- char* i = strtok((char*)args, " ");
- if (!i)
- return false;
-
- uint32 id = atoul(i);
- //target->SetVehicleId(id);
- handler->PSendSysMessage("Vehicle id set to %u", id);
- return true;
- }
-
static bool HandleDebugEnterVehicleCommand(ChatHandler* handler, uint32 entry, Optional<int8> seatId)
{
Unit* target = handler->getSelectedUnit();
@@ -1069,13 +1004,13 @@ public:
seatId = -1;
if (!entry)
- handler->GetSession()->GetPlayer()->EnterVehicle(target, *seatId);
+ handler->GetPlayer()->EnterVehicle(target, *seatId);
else
{
Creature* passenger = nullptr;
- Trinity::AllCreaturesOfEntryInRange check(handler->GetSession()->GetPlayer(), entry, 20.0f);
- Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(handler->GetSession()->GetPlayer(), passenger, check);
- Cell::VisitAllObjects(handler->GetSession()->GetPlayer(), searcher, 30.0f);
+ Trinity::AllCreaturesOfEntryInRange check(handler->GetPlayer(), entry, 20.0f);
+ Trinity::CreatureSearcher<Trinity::AllCreaturesOfEntryInRange> searcher(handler->GetPlayer(), passenger, check);
+ Cell::VisitAllObjects(handler->GetPlayer(), searcher, 30.0f);
if (!passenger || passenger == target)
return false;
passenger->EnterVehicle(target, *seatId);
@@ -1087,11 +1022,11 @@ public:
static bool HandleDebugSpawnVehicleCommand(ChatHandler* handler, uint32 entry, Optional<uint32> id)
{
- float x, y, z, o = handler->GetSession()->GetPlayer()->GetOrientation();
- handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, handler->GetSession()->GetPlayer()->GetCombatReach());
+ float x, y, z, o = handler->GetPlayer()->GetOrientation();
+ handler->GetPlayer()->GetClosePoint(x, y, z, handler->GetPlayer()->GetCombatReach());
if (!id)
- return handler->GetSession()->GetPlayer()->SummonCreature(entry, x, y, z, o) != nullptr;
+ return handler->GetPlayer()->SummonCreature(entry, x, y, z, o) != nullptr;
CreatureTemplate const* ci = sObjectMgr->GetCreatureTemplate(entry);
@@ -1103,14 +1038,14 @@ public:
if (!ve)
return false;
- Map* map = handler->GetSession()->GetPlayer()->GetMap();
+ Map* map = handler->GetPlayer()->GetMap();
Position pos = { x, y, z, o };
Creature* v = Creature::CreateCreature(entry, map, pos, *id);
if (!v)
return false;
- PhasingHandler::InheritPhaseShift(v, handler->GetSession()->GetPlayer());
+ PhasingHandler::InheritPhaseShift(v, handler->GetPlayer());
map->AddToMap(v);
@@ -1119,10 +1054,9 @@ public:
static bool HandleDebugSendLargePacketCommand(ChatHandler* handler)
{
- char const* stuffingString = "This is a dummy string to push the packet's size beyond 128000 bytes. ";
std::ostringstream ss;
while (ss.str().size() < 128000)
- ss << stuffingString;
+ ss << "This is a dummy string to push the packet's size beyond 128000 bytes. ";
handler->SendSysMessage(ss.str().c_str());
return true;
}
@@ -1146,13 +1080,13 @@ public:
static bool HandleDebugItemExpireCommand(ChatHandler* handler, ObjectGuid::LowType guid)
{
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid));
+ Item* i = handler->GetPlayer()->GetItemByGuid(ObjectGuid::Create<HighGuid::Item>(guid));
if (!i)
return false;
- handler->GetSession()->GetPlayer()->DestroyItem(i->GetBagSlot(), i->GetSlot(), true);
- sScriptMgr->OnItemExpire(handler->GetSession()->GetPlayer(), i->GetTemplate());
+ handler->GetPlayer()->DestroyItem(i->GetBagSlot(), i->GetSlot(), true);
+ sScriptMgr->OnItemExpire(handler->GetPlayer(), i->GetTemplate());
return true;
}
@@ -1172,7 +1106,7 @@ public:
{
if (Unit* unit = handler->getSelectedUnit())
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
handler->PSendSysMessage("Checking LoS %s -> %s:", player->GetName().c_str(), unit->GetName().c_str());
handler->PSendSysMessage(" VMAP LoS: %s", player->IsWithinLOSInMap(unit, LINEOFSIGHT_CHECK_VMAP) ? "clear" : "obstructed");
handler->PSendSysMessage(" GObj LoS: %s", player->IsWithinLOSInMap(unit, LINEOFSIGHT_CHECK_GOBJECT) ? "clear" : "obstructed");
@@ -1182,15 +1116,8 @@ public:
return false;
}
- static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSetAuraStateCommand(ChatHandler* handler, Optional<AuraStateType> state, bool apply)
{
- if (!*args)
- {
- handler->SendSysMessage(LANG_BAD_VALUE);
- handler->SetSentErrorMessage(true);
- return false;
- }
-
Unit* unit = handler->getSelectedUnit();
if (!unit)
{
@@ -1199,47 +1126,36 @@ public:
return false;
}
- int32 state = atoi((char*)args);
if (!state)
{
// reset all states
- for (int i = 1; i <= 32; ++i)
- unit->ModifyAuraState(AuraStateType(i), false);
+ for (AuraStateType s : EnumUtils::Iterate<AuraStateType>())
+ unit->ModifyAuraState(s, false);
return true;
}
- unit->ModifyAuraState(AuraStateType(abs(state)), state > 0);
+ unit->ModifyAuraState(*state, apply);
return true;
}
- static bool HandleDebugMoveflagsCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugMoveflagsCommand(ChatHandler* handler, Optional<uint32> moveFlags, Optional<uint32> moveFlagsExtra)
{
Unit* target = handler->getSelectedUnit();
if (!target)
- target = handler->GetSession()->GetPlayer();
+ target = handler->GetPlayer();
- if (!*args)
+ if (!moveFlags)
{
//! Display case
handler->PSendSysMessage(LANG_MOVEFLAGS_GET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
}
else
{
- char* mask1 = strtok((char*)args, " ");
- if (!mask1)
- return false;
-
- char* mask2 = strtok(nullptr, " \n");
-
- uint32 moveFlags = (uint32)atoi(mask1);
- target->SetUnitMovementFlags(moveFlags);
-
/// @fixme: port master's HandleDebugMoveflagsCommand; flags need different handling
- if (mask2)
+ if (moveFlagsExtra)
{
- uint32 moveFlagsExtra = uint32(atoi(mask2));
- target->SetExtraUnitMovementFlags(moveFlagsExtra);
+ target->SetExtraUnitMovementFlags(*moveFlagsExtra);
}
if (target->GetTypeId() != TYPEID_PLAYER)
@@ -1259,7 +1175,7 @@ public:
static bool HandleWPGPSCommand(ChatHandler* handler)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
TC_LOG_INFO("sql.dev", "(@PATH, XX, %.3f, %.3f, %.5f, %.5f, 0, 0, 0, 100, 0),", player->GetPositionX(), player->GetPositionY(), player->GetPositionZ(), player->GetOrientation());
@@ -1269,7 +1185,7 @@ public:
static bool HandleDebugTransportCommand(ChatHandler* handler, std::string operation)
{
- Transport* transport = handler->GetSession()->GetPlayer()->GetTransport();
+ Transport* transport = handler->GetPlayer()->GetTransport();
if (!transport)
return false;
@@ -1295,7 +1211,7 @@ public:
static bool HandleDebugLoadCellsCommand(ChatHandler* handler, Optional<uint32> mapId)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
if (!player)
return false;
@@ -1313,7 +1229,7 @@ public:
static bool HandleDebugBoundaryCommand(ChatHandler* handler, Optional<ExactSequence<'f', 'i', 'l','l'>> fill, Optional<uint32> durationArg)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
if (!player)
return false;
Creature* target = handler->getSelectedCreature();
@@ -1437,7 +1353,7 @@ public:
static bool HandleDebugNearGraveyard(ChatHandler* handler, Optional<ExactSequence<'l', 'i', 'n', 'k', 'e', 'd'>> linked)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
WorldSafeLocsEntry const* nearestLoc = nullptr;
if (linked)
@@ -1483,18 +1399,18 @@ public:
return true;
}
- static bool HandleDebugInstanceSpawns(ChatHandler* handler, char const* args)
+ static bool HandleDebugInstanceSpawns(ChatHandler* handler, Variant<uint32, ExactSequence<'e', 'x', 'p', 'l', 'a', 'i', 'n'>> optArg)
{
- Player const* const player = handler->GetSession()->GetPlayer();
+ Player const* const player = handler->GetPlayer();
if (!player)
return false;
bool explain = false;
uint32 groupID = 0;
- if (!stricmp(args, "explain"))
+ if (optArg.holds_alternative<ExactSequence<'e', 'x', 'p', 'l', 'a', 'i', 'n'>>())
explain = true;
else
- groupID = atoi(args);
+ groupID = optArg.get<uint32>();
if (groupID && !sObjectMgr->GetSpawnGroupData(groupID))
{
@@ -1592,17 +1508,8 @@ public:
return true;
}
- static bool HandleDebugConversationCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugConversationCommand(ChatHandler* handler, uint32 conversationEntry)
{
- if (!*args)
- return false;
-
- char const* conversationEntryStr = strtok((char*)args, " ");
-
- if (!conversationEntryStr)
- return false;
-
- uint32 conversationEntry = atoi(conversationEntryStr);
Player* target = handler->getSelectedPlayerOrSelf();
if (!target)
@@ -1615,17 +1522,8 @@ public:
return Conversation::CreateConversation(conversationEntry, target, *target, target->GetGUID()) != nullptr;
}
- static bool HandleDebugWorldStateCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugWorldStateCommand(ChatHandler* handler, uint32 worldStateId, Optional<uint32> value)
{
- if (!*args)
- return false;
-
- char const* worldStateIdStr = strtok((char*)args, " ");
- char const* valueStr = args ? strtok(nullptr, " ") : nullptr;
-
- if (!worldStateIdStr)
- return false;
-
Player* target = handler->getSelectedPlayerOrSelf();
if (!target)
@@ -1635,13 +1533,10 @@ public:
return false;
}
- uint32 worldStateId = atoi(worldStateIdStr);
- uint32 value = valueStr ? atoi(valueStr) : 0;
-
if (value)
{
- sWorld->setWorldState(worldStateId, value);
- target->SendUpdateWorldState(worldStateId, value);
+ sWorld->setWorldState(worldStateId, *value);
+ target->SendUpdateWorldState(worldStateId, *value);
}
else
handler->PSendSysMessage("Worldstate %u actual value : %u", worldStateId, sWorld->getWorldState(worldStateId));
@@ -1649,17 +1544,8 @@ public:
return true;
}
- static bool HandleDebugWSExpressionCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugWSExpressionCommand(ChatHandler* handler, uint32 expressionId)
{
- if (!*args)
- return false;
-
- char const* expressionIdStr = strtok((char*)args, " ");
-
- if (!expressionIdStr)
- return false;
-
- uint32 expressionId = atoi(expressionIdStr);
Player* target = handler->getSelectedPlayerOrSelf();
if (!target)