aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Chat/Channels/Channel.h3
-rw-r--r--src/server/game/Chat/Channels/enuminfo_Channel.cpp166
-rw-r--r--src/server/game/Entities/Item/ItemDefines.h17
-rw-r--r--src/server/game/Entities/Item/enuminfo_ItemDefines.cpp436
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.h2
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.h28
-rw-r--r--src/server/game/Quests/enuminfo_QuestDef.cpp166
-rw-r--r--src/server/scripts/Commands/cs_debug.cpp251
-rw-r--r--src/server/shared/SharedDefines.h9
-rw-r--r--src/server/shared/enuminfo_SharedDefines.cpp879
12 files changed, 1769 insertions, 192 deletions
diff --git a/src/server/game/Chat/Channels/Channel.h b/src/server/game/Chat/Channels/Channel.h
index 21063815f61..239041b3948 100644
--- a/src/server/game/Chat/Channels/Channel.h
+++ b/src/server/game/Chat/Channels/Channel.h
@@ -27,7 +27,8 @@
class Player;
struct AreaTableEntry;
-enum ChatNotify
+// EnumUtils: DESCRIBE THIS
+enum ChatNotify : uint8
{
CHAT_JOINED_NOTICE = 0x00, //+ "%s joined channel.";
CHAT_LEFT_NOTICE = 0x01, //+ "%s left channel.";
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..1cce81ec8c6
--- /dev/null
+++ b/src/server/game/Chat/Channels/enuminfo_Channel.cpp
@@ -0,0 +1,166 @@
+/*
+ * 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;" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatNotify>::Count() { return 36; }
+
+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;
+ 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;
+ 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 ce9f8463868..10f5c2c46da 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,
@@ -113,6 +114,7 @@ enum InventoryResult : uint8
EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED = 89
};
+// EnumUtils: DESCRIBE THIS
enum BuyResult
{
BUY_ERR_CANT_FIND_ITEM = 0,
@@ -126,15 +128,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..663161b9751
--- /dev/null
+++ b/src/server/game/Entities/Item/enuminfo_ItemDefines.cpp
@@ -0,0 +1,436 @@
+/*
+ * 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", "" };
+ case EQUIP_ERR_CANT_EQUIP_SKILL: return { "EQUIP_ERR_CANT_EQUIP_SKILL", "EQUIP_ERR_CANT_EQUIP_SKILL", "" };
+ case EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT: return { "EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT", "EQUIP_ERR_ITEM_DOESNT_GO_TO_SLOT", "" };
+ case EQUIP_ERR_BAG_FULL: return { "EQUIP_ERR_BAG_FULL", "EQUIP_ERR_BAG_FULL", "" };
+ case EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG: return { "EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG", "EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG", "" };
+ case EQUIP_ERR_CANT_TRADE_EQUIP_BAGS: return { "EQUIP_ERR_CANT_TRADE_EQUIP_BAGS", "EQUIP_ERR_CANT_TRADE_EQUIP_BAGS", "" };
+ case EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE: return { "EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE", "EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE", "" };
+ case EQUIP_ERR_NO_REQUIRED_PROFICIENCY: return { "EQUIP_ERR_NO_REQUIRED_PROFICIENCY", "EQUIP_ERR_NO_REQUIRED_PROFICIENCY", "" };
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE: return { "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE", "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE", "" };
+ case EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM: return { "EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM", "EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM", "" };
+ case EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM2: return { "EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM2", "EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM2", "" };
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE2: return { "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE2", "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE2", "" };
+ case EQUIP_ERR_CANT_EQUIP_WITH_TWOHANDED: return { "EQUIP_ERR_CANT_EQUIP_WITH_TWOHANDED", "EQUIP_ERR_CANT_EQUIP_WITH_TWOHANDED", "" };
+ case EQUIP_ERR_CANT_DUAL_WIELD: return { "EQUIP_ERR_CANT_DUAL_WIELD", "EQUIP_ERR_CANT_DUAL_WIELD", "" };
+ case EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG: return { "EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG", "EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG", "" };
+ case EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG2: return { "EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG2", "EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG2", "" };
+ case EQUIP_ERR_CANT_CARRY_MORE_OF_THIS: return { "EQUIP_ERR_CANT_CARRY_MORE_OF_THIS", "EQUIP_ERR_CANT_CARRY_MORE_OF_THIS", "" };
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE3: return { "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE3", "EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE3", "" };
+ case EQUIP_ERR_ITEM_CANT_STACK: return { "EQUIP_ERR_ITEM_CANT_STACK", "EQUIP_ERR_ITEM_CANT_STACK", "" };
+ case EQUIP_ERR_ITEM_CANT_BE_EQUIPPED: return { "EQUIP_ERR_ITEM_CANT_BE_EQUIPPED", "EQUIP_ERR_ITEM_CANT_BE_EQUIPPED", "" };
+ case EQUIP_ERR_ITEMS_CANT_BE_SWAPPED: return { "EQUIP_ERR_ITEMS_CANT_BE_SWAPPED", "EQUIP_ERR_ITEMS_CANT_BE_SWAPPED", "" };
+ case EQUIP_ERR_SLOT_IS_EMPTY: return { "EQUIP_ERR_SLOT_IS_EMPTY", "EQUIP_ERR_SLOT_IS_EMPTY", "" };
+ case EQUIP_ERR_ITEM_NOT_FOUND: return { "EQUIP_ERR_ITEM_NOT_FOUND", "EQUIP_ERR_ITEM_NOT_FOUND", "" };
+ case EQUIP_ERR_CANT_DROP_SOULBOUND: return { "EQUIP_ERR_CANT_DROP_SOULBOUND", "EQUIP_ERR_CANT_DROP_SOULBOUND", "" };
+ case EQUIP_ERR_OUT_OF_RANGE: return { "EQUIP_ERR_OUT_OF_RANGE", "EQUIP_ERR_OUT_OF_RANGE", "" };
+ case EQUIP_ERR_TRIED_TO_SPLIT_MORE_THAN_COUNT: return { "EQUIP_ERR_TRIED_TO_SPLIT_MORE_THAN_COUNT", "EQUIP_ERR_TRIED_TO_SPLIT_MORE_THAN_COUNT", "" };
+ case EQUIP_ERR_COULDNT_SPLIT_ITEMS: return { "EQUIP_ERR_COULDNT_SPLIT_ITEMS", "EQUIP_ERR_COULDNT_SPLIT_ITEMS", "" };
+ case EQUIP_ERR_MISSING_REAGENT: return { "EQUIP_ERR_MISSING_REAGENT", "EQUIP_ERR_MISSING_REAGENT", "" };
+ case EQUIP_ERR_NOT_ENOUGH_MONEY: return { "EQUIP_ERR_NOT_ENOUGH_MONEY", "EQUIP_ERR_NOT_ENOUGH_MONEY", "" };
+ case EQUIP_ERR_NOT_A_BAG: return { "EQUIP_ERR_NOT_A_BAG", "EQUIP_ERR_NOT_A_BAG", "" };
+ case EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS: return { "EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS", "EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS", "" };
+ case EQUIP_ERR_DONT_OWN_THAT_ITEM: return { "EQUIP_ERR_DONT_OWN_THAT_ITEM", "EQUIP_ERR_DONT_OWN_THAT_ITEM", "" };
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER: return { "EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER", "EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER", "" };
+ case EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT: return { "EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT", "EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT", "" };
+ case EQUIP_ERR_TOO_FAR_AWAY_FROM_BANK: return { "EQUIP_ERR_TOO_FAR_AWAY_FROM_BANK", "EQUIP_ERR_TOO_FAR_AWAY_FROM_BANK", "" };
+ case EQUIP_ERR_ITEM_LOCKED: return { "EQUIP_ERR_ITEM_LOCKED", "EQUIP_ERR_ITEM_LOCKED", "" };
+ case EQUIP_ERR_YOU_ARE_STUNNED: return { "EQUIP_ERR_YOU_ARE_STUNNED", "EQUIP_ERR_YOU_ARE_STUNNED", "" };
+ case EQUIP_ERR_YOU_ARE_DEAD: return { "EQUIP_ERR_YOU_ARE_DEAD", "EQUIP_ERR_YOU_ARE_DEAD", "" };
+ case EQUIP_ERR_CANT_DO_RIGHT_NOW: return { "EQUIP_ERR_CANT_DO_RIGHT_NOW", "EQUIP_ERR_CANT_DO_RIGHT_NOW", "" };
+ case EQUIP_ERR_INT_BAG_ERROR: return { "EQUIP_ERR_INT_BAG_ERROR", "EQUIP_ERR_INT_BAG_ERROR", "" };
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_BOLT: return { "EQUIP_ERR_CAN_EQUIP_ONLY1_BOLT", "EQUIP_ERR_CAN_EQUIP_ONLY1_BOLT", "" };
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH: return { "EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH", "EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH", "" };
+ case EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED: return { "EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED", "EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED: return { "EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED", "EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED: return { "EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED", "EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_BOUND_CANT_BE_WRAPPED: return { "EQUIP_ERR_BOUND_CANT_BE_WRAPPED", "EQUIP_ERR_BOUND_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED: return { "EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED", "EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_BAGS_CANT_BE_WRAPPED: return { "EQUIP_ERR_BAGS_CANT_BE_WRAPPED", "EQUIP_ERR_BAGS_CANT_BE_WRAPPED", "" };
+ case EQUIP_ERR_ALREADY_LOOTED: return { "EQUIP_ERR_ALREADY_LOOTED", "EQUIP_ERR_ALREADY_LOOTED", "" };
+ case EQUIP_ERR_INVENTORY_FULL: return { "EQUIP_ERR_INVENTORY_FULL", "EQUIP_ERR_INVENTORY_FULL", "" };
+ case EQUIP_ERR_BANK_FULL: return { "EQUIP_ERR_BANK_FULL", "EQUIP_ERR_BANK_FULL", "" };
+ case EQUIP_ERR_ITEM_IS_CURRENTLY_SOLD_OUT: return { "EQUIP_ERR_ITEM_IS_CURRENTLY_SOLD_OUT", "EQUIP_ERR_ITEM_IS_CURRENTLY_SOLD_OUT", "" };
+ case EQUIP_ERR_BAG_FULL3: return { "EQUIP_ERR_BAG_FULL3", "EQUIP_ERR_BAG_FULL3", "" };
+ case EQUIP_ERR_ITEM_NOT_FOUND2: return { "EQUIP_ERR_ITEM_NOT_FOUND2", "EQUIP_ERR_ITEM_NOT_FOUND2", "" };
+ case EQUIP_ERR_ITEM_CANT_STACK2: return { "EQUIP_ERR_ITEM_CANT_STACK2", "EQUIP_ERR_ITEM_CANT_STACK2", "" };
+ case EQUIP_ERR_BAG_FULL4: return { "EQUIP_ERR_BAG_FULL4", "EQUIP_ERR_BAG_FULL4", "" };
+ case EQUIP_ERR_ITEM_SOLD_OUT: return { "EQUIP_ERR_ITEM_SOLD_OUT", "EQUIP_ERR_ITEM_SOLD_OUT", "" };
+ case EQUIP_ERR_OBJECT_IS_BUSY: return { "EQUIP_ERR_OBJECT_IS_BUSY", "EQUIP_ERR_OBJECT_IS_BUSY", "" };
+ case EQUIP_ERR_NONE: return { "EQUIP_ERR_NONE", "EQUIP_ERR_NONE", "" };
+ case EQUIP_ERR_NOT_IN_COMBAT: return { "EQUIP_ERR_NOT_IN_COMBAT", "EQUIP_ERR_NOT_IN_COMBAT", "" };
+ case EQUIP_ERR_NOT_WHILE_DISARMED: return { "EQUIP_ERR_NOT_WHILE_DISARMED", "EQUIP_ERR_NOT_WHILE_DISARMED", "" };
+ case EQUIP_ERR_BAG_FULL6: return { "EQUIP_ERR_BAG_FULL6", "EQUIP_ERR_BAG_FULL6", "" };
+ case EQUIP_ERR_CANT_EQUIP_RANK: return { "EQUIP_ERR_CANT_EQUIP_RANK", "EQUIP_ERR_CANT_EQUIP_RANK", "" };
+ case EQUIP_ERR_CANT_EQUIP_REPUTATION: return { "EQUIP_ERR_CANT_EQUIP_REPUTATION", "EQUIP_ERR_CANT_EQUIP_REPUTATION", "" };
+ case EQUIP_ERR_TOO_MANY_SPECIAL_BAGS: return { "EQUIP_ERR_TOO_MANY_SPECIAL_BAGS", "EQUIP_ERR_TOO_MANY_SPECIAL_BAGS", "" };
+ case EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW: return { "EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW", "EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW", "" };
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPABLE: return { "EQUIP_ERR_ITEM_UNIQUE_EQUIPABLE", "EQUIP_ERR_ITEM_UNIQUE_EQUIPABLE", "" };
+ case EQUIP_ERR_VENDOR_MISSING_TURNINS: return { "EQUIP_ERR_VENDOR_MISSING_TURNINS", "EQUIP_ERR_VENDOR_MISSING_TURNINS", "" };
+ case EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS: return { "EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS", "EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS", "" };
+ case EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS: return { "EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS", "EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS", "" };
+ case EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED: return { "EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED", "EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED", "" };
+ case EQUIP_ERR_MAIL_BOUND_ITEM: return { "EQUIP_ERR_MAIL_BOUND_ITEM", "EQUIP_ERR_MAIL_BOUND_ITEM", "" };
+ case EQUIP_ERR_NO_SPLIT_WHILE_PROSPECTING: return { "EQUIP_ERR_NO_SPLIT_WHILE_PROSPECTING", "EQUIP_ERR_NO_SPLIT_WHILE_PROSPECTING", "" };
+ case EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED: return { "EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED", "EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED", "" };
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED: return { "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED", "EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED", "" };
+ case EQUIP_ERR_TOO_MUCH_GOLD: return { "EQUIP_ERR_TOO_MUCH_GOLD", "EQUIP_ERR_TOO_MUCH_GOLD", "" };
+ case EQUIP_ERR_NOT_DURING_ARENA_MATCH: return { "EQUIP_ERR_NOT_DURING_ARENA_MATCH", "EQUIP_ERR_NOT_DURING_ARENA_MATCH", "" };
+ case EQUIP_ERR_CANNOT_TRADE_THAT: return { "EQUIP_ERR_CANNOT_TRADE_THAT", "EQUIP_ERR_CANNOT_TRADE_THAT", "" };
+ case EQUIP_ERR_PERSONAL_ARENA_RATING_TOO_LOW: return { "EQUIP_ERR_PERSONAL_ARENA_RATING_TOO_LOW", "EQUIP_ERR_PERSONAL_ARENA_RATING_TOO_LOW", "" };
+ case EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM: return { "EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM", "EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM", "" };
+ case EQUIP_ERR_ARTEFACTS_ONLY_FOR_OWN_CHARACTERS: return { "EQUIP_ERR_ARTEFACTS_ONLY_FOR_OWN_CHARACTERS", "EQUIP_ERR_ARTEFACTS_ONLY_FOR_OWN_CHARACTERS", "" };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED", "" };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED", "" };
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED: return { "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED", "EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED", "" };
+ case EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW: return { "EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW", "EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW", "" };
+ case EQUIP_ERR_CANT_EQUIP_NEED_TALENT: return { "EQUIP_ERR_CANT_EQUIP_NEED_TALENT", "EQUIP_ERR_CANT_EQUIP_NEED_TALENT", "" };
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED: return { "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED", "EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<InventoryResult>::Count() { return 88; }
+
+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_ITEM_DOESNT_GO_TO_SLOT;
+ case 4: return EQUIP_ERR_BAG_FULL;
+ case 5: return EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG;
+ case 6: return EQUIP_ERR_CANT_TRADE_EQUIP_BAGS;
+ case 7: return EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE;
+ case 8: return EQUIP_ERR_NO_REQUIRED_PROFICIENCY;
+ case 9: return EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE;
+ case 10: return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM;
+ case 11: return EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM2;
+ case 12: return EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE2;
+ case 13: return EQUIP_ERR_CANT_EQUIP_WITH_TWOHANDED;
+ case 14: return EQUIP_ERR_CANT_DUAL_WIELD;
+ case 15: return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG;
+ case 16: return EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG2;
+ case 17: return EQUIP_ERR_CANT_CARRY_MORE_OF_THIS;
+ case 18: return EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE3;
+ case 19: return EQUIP_ERR_ITEM_CANT_STACK;
+ case 20: return EQUIP_ERR_ITEM_CANT_BE_EQUIPPED;
+ case 21: return EQUIP_ERR_ITEMS_CANT_BE_SWAPPED;
+ case 22: return EQUIP_ERR_SLOT_IS_EMPTY;
+ case 23: return EQUIP_ERR_ITEM_NOT_FOUND;
+ case 24: return EQUIP_ERR_CANT_DROP_SOULBOUND;
+ case 25: return EQUIP_ERR_OUT_OF_RANGE;
+ case 26: return EQUIP_ERR_TRIED_TO_SPLIT_MORE_THAN_COUNT;
+ case 27: return EQUIP_ERR_COULDNT_SPLIT_ITEMS;
+ case 28: return EQUIP_ERR_MISSING_REAGENT;
+ case 29: return EQUIP_ERR_NOT_ENOUGH_MONEY;
+ case 30: return EQUIP_ERR_NOT_A_BAG;
+ case 31: return EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS;
+ case 32: return EQUIP_ERR_DONT_OWN_THAT_ITEM;
+ case 33: return EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER;
+ case 34: return EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT;
+ case 35: return EQUIP_ERR_TOO_FAR_AWAY_FROM_BANK;
+ case 36: return EQUIP_ERR_ITEM_LOCKED;
+ case 37: return EQUIP_ERR_YOU_ARE_STUNNED;
+ case 38: return EQUIP_ERR_YOU_ARE_DEAD;
+ case 39: return EQUIP_ERR_CANT_DO_RIGHT_NOW;
+ case 40: return EQUIP_ERR_INT_BAG_ERROR;
+ case 41: return EQUIP_ERR_CAN_EQUIP_ONLY1_BOLT;
+ case 42: return EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH;
+ case 43: return EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED;
+ case 44: return EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED;
+ case 45: return EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED;
+ case 46: return EQUIP_ERR_BOUND_CANT_BE_WRAPPED;
+ case 47: return EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED;
+ case 48: return EQUIP_ERR_BAGS_CANT_BE_WRAPPED;
+ case 49: return EQUIP_ERR_ALREADY_LOOTED;
+ case 50: return EQUIP_ERR_INVENTORY_FULL;
+ case 51: return EQUIP_ERR_BANK_FULL;
+ case 52: return EQUIP_ERR_ITEM_IS_CURRENTLY_SOLD_OUT;
+ case 53: return EQUIP_ERR_BAG_FULL3;
+ case 54: return EQUIP_ERR_ITEM_NOT_FOUND2;
+ case 55: return EQUIP_ERR_ITEM_CANT_STACK2;
+ case 56: return EQUIP_ERR_BAG_FULL4;
+ case 57: return EQUIP_ERR_ITEM_SOLD_OUT;
+ case 58: return EQUIP_ERR_OBJECT_IS_BUSY;
+ case 59: return EQUIP_ERR_NONE;
+ case 60: return EQUIP_ERR_NOT_IN_COMBAT;
+ case 61: return EQUIP_ERR_NOT_WHILE_DISARMED;
+ case 62: return EQUIP_ERR_BAG_FULL6;
+ case 63: return EQUIP_ERR_CANT_EQUIP_RANK;
+ case 64: return EQUIP_ERR_CANT_EQUIP_REPUTATION;
+ case 65: return EQUIP_ERR_TOO_MANY_SPECIAL_BAGS;
+ case 66: return EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW;
+ case 67: return EQUIP_ERR_ITEM_UNIQUE_EQUIPABLE;
+ case 68: return EQUIP_ERR_VENDOR_MISSING_TURNINS;
+ case 69: return EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS;
+ case 70: return EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS;
+ case 71: return EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED;
+ case 72: return EQUIP_ERR_MAIL_BOUND_ITEM;
+ case 73: return EQUIP_ERR_NO_SPLIT_WHILE_PROSPECTING;
+ case 74: return EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED;
+ case 75: return EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED;
+ case 76: return EQUIP_ERR_TOO_MUCH_GOLD;
+ case 77: return EQUIP_ERR_NOT_DURING_ARENA_MATCH;
+ case 78: return EQUIP_ERR_CANNOT_TRADE_THAT;
+ case 79: return EQUIP_ERR_PERSONAL_ARENA_RATING_TOO_LOW;
+ case 80: return EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM;
+ case 81: return EQUIP_ERR_ARTEFACTS_ONLY_FOR_OWN_CHARACTERS;
+ case 82: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED;
+ case 83: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED;
+ case 84: return EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED;
+ case 85: return EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW;
+ case 86: return EQUIP_ERR_CANT_EQUIP_NEED_TALENT;
+ case 87: return EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED;
+ 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_ITEM_DOESNT_GO_TO_SLOT: return 3;
+ case EQUIP_ERR_BAG_FULL: return 4;
+ case EQUIP_ERR_NONEMPTY_BAG_OVER_OTHER_BAG: return 5;
+ case EQUIP_ERR_CANT_TRADE_EQUIP_BAGS: return 6;
+ case EQUIP_ERR_ONLY_AMMO_CAN_GO_HERE: return 7;
+ case EQUIP_ERR_NO_REQUIRED_PROFICIENCY: return 8;
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE: return 9;
+ case EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM: return 10;
+ case EQUIP_ERR_YOU_CAN_NEVER_USE_THAT_ITEM2: return 11;
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE2: return 12;
+ case EQUIP_ERR_CANT_EQUIP_WITH_TWOHANDED: return 13;
+ case EQUIP_ERR_CANT_DUAL_WIELD: return 14;
+ case EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG: return 15;
+ case EQUIP_ERR_ITEM_DOESNT_GO_INTO_BAG2: return 16;
+ case EQUIP_ERR_CANT_CARRY_MORE_OF_THIS: return 17;
+ case EQUIP_ERR_NO_EQUIPMENT_SLOT_AVAILABLE3: return 18;
+ case EQUIP_ERR_ITEM_CANT_STACK: return 19;
+ case EQUIP_ERR_ITEM_CANT_BE_EQUIPPED: return 20;
+ case EQUIP_ERR_ITEMS_CANT_BE_SWAPPED: return 21;
+ case EQUIP_ERR_SLOT_IS_EMPTY: return 22;
+ case EQUIP_ERR_ITEM_NOT_FOUND: return 23;
+ case EQUIP_ERR_CANT_DROP_SOULBOUND: return 24;
+ case EQUIP_ERR_OUT_OF_RANGE: return 25;
+ case EQUIP_ERR_TRIED_TO_SPLIT_MORE_THAN_COUNT: return 26;
+ case EQUIP_ERR_COULDNT_SPLIT_ITEMS: return 27;
+ case EQUIP_ERR_MISSING_REAGENT: return 28;
+ case EQUIP_ERR_NOT_ENOUGH_MONEY: return 29;
+ case EQUIP_ERR_NOT_A_BAG: return 30;
+ case EQUIP_ERR_CAN_ONLY_DO_WITH_EMPTY_BAGS: return 31;
+ case EQUIP_ERR_DONT_OWN_THAT_ITEM: return 32;
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_QUIVER: return 33;
+ case EQUIP_ERR_MUST_PURCHASE_THAT_BAG_SLOT: return 34;
+ case EQUIP_ERR_TOO_FAR_AWAY_FROM_BANK: return 35;
+ case EQUIP_ERR_ITEM_LOCKED: return 36;
+ case EQUIP_ERR_YOU_ARE_STUNNED: return 37;
+ case EQUIP_ERR_YOU_ARE_DEAD: return 38;
+ case EQUIP_ERR_CANT_DO_RIGHT_NOW: return 39;
+ case EQUIP_ERR_INT_BAG_ERROR: return 40;
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_BOLT: return 41;
+ case EQUIP_ERR_CAN_EQUIP_ONLY1_AMMOPOUCH: return 42;
+ case EQUIP_ERR_STACKABLE_CANT_BE_WRAPPED: return 43;
+ case EQUIP_ERR_EQUIPPED_CANT_BE_WRAPPED: return 44;
+ case EQUIP_ERR_WRAPPED_CANT_BE_WRAPPED: return 45;
+ case EQUIP_ERR_BOUND_CANT_BE_WRAPPED: return 46;
+ case EQUIP_ERR_UNIQUE_CANT_BE_WRAPPED: return 47;
+ case EQUIP_ERR_BAGS_CANT_BE_WRAPPED: return 48;
+ case EQUIP_ERR_ALREADY_LOOTED: return 49;
+ case EQUIP_ERR_INVENTORY_FULL: return 50;
+ case EQUIP_ERR_BANK_FULL: return 51;
+ case EQUIP_ERR_ITEM_IS_CURRENTLY_SOLD_OUT: return 52;
+ case EQUIP_ERR_BAG_FULL3: return 53;
+ case EQUIP_ERR_ITEM_NOT_FOUND2: return 54;
+ case EQUIP_ERR_ITEM_CANT_STACK2: return 55;
+ case EQUIP_ERR_BAG_FULL4: return 56;
+ case EQUIP_ERR_ITEM_SOLD_OUT: return 57;
+ case EQUIP_ERR_OBJECT_IS_BUSY: return 58;
+ case EQUIP_ERR_NONE: return 59;
+ case EQUIP_ERR_NOT_IN_COMBAT: return 60;
+ case EQUIP_ERR_NOT_WHILE_DISARMED: return 61;
+ case EQUIP_ERR_BAG_FULL6: return 62;
+ case EQUIP_ERR_CANT_EQUIP_RANK: return 63;
+ case EQUIP_ERR_CANT_EQUIP_REPUTATION: return 64;
+ case EQUIP_ERR_TOO_MANY_SPECIAL_BAGS: return 65;
+ case EQUIP_ERR_LOOT_CANT_LOOT_THAT_NOW: return 66;
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPABLE: return 67;
+ case EQUIP_ERR_VENDOR_MISSING_TURNINS: return 68;
+ case EQUIP_ERR_NOT_ENOUGH_HONOR_POINTS: return 69;
+ case EQUIP_ERR_NOT_ENOUGH_ARENA_POINTS: return 70;
+ case EQUIP_ERR_ITEM_MAX_COUNT_SOCKETED: return 71;
+ case EQUIP_ERR_MAIL_BOUND_ITEM: return 72;
+ case EQUIP_ERR_NO_SPLIT_WHILE_PROSPECTING: return 73;
+ case EQUIP_ERR_ITEM_MAX_COUNT_EQUIPPED_SOCKETED: return 74;
+ case EQUIP_ERR_ITEM_UNIQUE_EQUIPPABLE_SOCKETED: return 75;
+ case EQUIP_ERR_TOO_MUCH_GOLD: return 76;
+ case EQUIP_ERR_NOT_DURING_ARENA_MATCH: return 77;
+ case EQUIP_ERR_CANNOT_TRADE_THAT: return 78;
+ case EQUIP_ERR_PERSONAL_ARENA_RATING_TOO_LOW: return 79;
+ case EQUIP_ERR_EVENT_AUTOEQUIP_BIND_CONFIRM: return 80;
+ case EQUIP_ERR_ARTEFACTS_ONLY_FOR_OWN_CHARACTERS: return 81;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_COUNT_EXCEEDED: return 82;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_SOCKETED_EXCEEDED: return 83;
+ case EQUIP_ERR_SCALING_STAT_ITEM_LEVEL_EXCEEDED: return 84;
+ case EQUIP_ERR_PURCHASE_LEVEL_TOO_LOW: return 85;
+ case EQUIP_ERR_CANT_EQUIP_NEED_TALENT: return 86;
+ case EQUIP_ERR_ITEM_MAX_LIMIT_CATEGORY_EQUIPPED_EXCEEDED: return 87;
+ 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 882a2379be8..00d21fdb57e 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16878,7 +16878,7 @@ void Player::SendQuestConfirmAccept(Quest const* quest, Player* pReceiver) const
}
}
-void Player::SendPushToPartyResponse(Player const* player, uint8 msg) const
+void Player::SendPushToPartyResponse(Player const* player, QuestShareMessages msg) const
{
if (player)
{
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index b0646971494..97c1826b9c0 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1297,7 +1297,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SendQuestTimerFailed(uint32 questId) const;
void SendCanTakeQuestResponse(QuestFailedReason msg) const;
void SendQuestConfirmAccept(Quest const* quest, Player* pReceiver) const;
- void SendPushToPartyResponse(Player const* player, uint8 msg) const;
+ void SendPushToPartyResponse(Player const* player, QuestShareMessages msg) const;
void SendQuestUpdateAddItem(Quest const* quest, uint32 itemIdx, uint16 count) const;
void SendQuestUpdateAddCreatureOrGo(Quest const* quest, ObjectGuid guid, uint32 creatureOrGOIdx, uint16 oldCount, uint16 addCount);
void SendQuestUpdateAddPlayer(Quest const* quest, uint16 oldCount, uint16 addCount);
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 203819d37a2..455b6de3bad 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -637,7 +637,7 @@ void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
{
Player* player = ObjectAccessor::FindPlayer(guid);
if (player)
- player->SendPushToPartyResponse(_player, msg);
+ player->SendPushToPartyResponse(_player, static_cast<QuestShareMessages>(msg));
}
_player->ClearQuestSharingInfo();
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index 19963f2eee5..a8d3fa98661 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -44,23 +44,25 @@ namespace WorldPackets::Quest
#define QUEST_EMOTE_COUNT 4
#define QUEST_PVP_KILL_SLOT 0
-enum QuestFailedReason
+// EnumUtils: DESCRIBE THIS
+enum QuestFailedReason : uint32
{
INVALIDREASON_DONT_HAVE_REQ = 0,
- INVALIDREASON_QUEST_FAILED_LOW_LEVEL = 1, // You are not high enough level for that quest.
- INVALIDREASON_QUEST_FAILED_WRONG_RACE = 6, // That quest is not available to your race.
- INVALIDREASON_QUEST_ALREADY_DONE = 7, // You have completed that quest.
- INVALIDREASON_QUEST_ONLY_ONE_TIMED = 12, // You can only be on one timed quest at a time.
- INVALIDREASON_QUEST_ALREADY_ON = 13, // You are already on that quest.
- INVALIDREASON_QUEST_FAILED_EXPANSION = 16, // This quest requires an expansion enabled account.
- INVALIDREASON_QUEST_ALREADY_ON2 = 18, // You are already on that quest.
- INVALIDREASON_QUEST_FAILED_MISSING_ITEMS = 21, // You don't have the required items with you. Check storage.
- INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 23, // You don't have enough money for that quest.
- INVALIDREASON_DAILY_QUESTS_REMAINING = 26, // You have already completed 25 daily quests today.
- INVALIDREASON_QUEST_FAILED_CAIS = 27, // You cannot complete quests once you have reached tired time.
- INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY = 29 // You have completed that daily quest today.
+ INVALIDREASON_QUEST_FAILED_LOW_LEVEL = 1, // DESCRIPTION You are not high enough level for that quest.
+ INVALIDREASON_QUEST_FAILED_WRONG_RACE = 6, // DESCRIPTION That quest is not available to your race.
+ INVALIDREASON_QUEST_ALREADY_DONE = 7, // DESCRIPTION You have completed that quest.
+ INVALIDREASON_QUEST_ONLY_ONE_TIMED = 12, // DESCRIPTION You can only be on one timed quest at a time.
+ INVALIDREASON_QUEST_ALREADY_ON = 13, // DESCRIPTION You are already on that quest.
+ INVALIDREASON_QUEST_FAILED_EXPANSION = 16, // DESCRIPTION This quest requires an expansion enabled account.
+ INVALIDREASON_QUEST_ALREADY_ON2 = 18, // DESCRIPTION You are already on that quest.
+ INVALIDREASON_QUEST_FAILED_MISSING_ITEMS = 21, // DESCRIPTION You don't have the required items with you. Check storage.
+ INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY = 23, // DESCRIPTION You don't have enough money for that quest.
+ INVALIDREASON_DAILY_QUESTS_REMAINING = 26, // DESCRIPTION You have already completed 25 daily quests today.
+ INVALIDREASON_QUEST_FAILED_CAIS = 27, // DESCRIPTION You cannot complete quests once you have reached tired time.
+ INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY = 29 // DESCRIPTION You have completed that daily quest today.
};
+// EnumUtils: DESCRIBE THIS
enum QuestShareMessages : uint8
{
QUEST_PARTY_MSG_SHARING_QUEST = 0,
diff --git a/src/server/game/Quests/enuminfo_QuestDef.cpp b/src/server/game/Quests/enuminfo_QuestDef.cpp
new file mode 100644
index 00000000000..d330562d376
--- /dev/null
+++ b/src/server/game/Quests/enuminfo_QuestDef.cpp
@@ -0,0 +1,166 @@
+/*
+ * 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 INVALIDREASON_DONT_HAVE_REQ: return { "INVALIDREASON_DONT_HAVE_REQ", "INVALIDREASON_DONT_HAVE_REQ", "" };
+ case INVALIDREASON_QUEST_FAILED_LOW_LEVEL: return { "INVALIDREASON_QUEST_FAILED_LOW_LEVEL", "INVALIDREASON_QUEST_FAILED_LOW_LEVEL", "You are not high enough level for that quest." };
+ case INVALIDREASON_QUEST_FAILED_WRONG_RACE: return { "INVALIDREASON_QUEST_FAILED_WRONG_RACE", "INVALIDREASON_QUEST_FAILED_WRONG_RACE", "That quest is not available to your race." };
+ case INVALIDREASON_QUEST_ALREADY_DONE: return { "INVALIDREASON_QUEST_ALREADY_DONE", "INVALIDREASON_QUEST_ALREADY_DONE", "You have completed that quest." };
+ case INVALIDREASON_QUEST_ONLY_ONE_TIMED: return { "INVALIDREASON_QUEST_ONLY_ONE_TIMED", "INVALIDREASON_QUEST_ONLY_ONE_TIMED", "You can only be on one timed quest at a time." };
+ case INVALIDREASON_QUEST_ALREADY_ON: return { "INVALIDREASON_QUEST_ALREADY_ON", "INVALIDREASON_QUEST_ALREADY_ON", "You are already on that quest." };
+ case INVALIDREASON_QUEST_FAILED_EXPANSION: return { "INVALIDREASON_QUEST_FAILED_EXPANSION", "INVALIDREASON_QUEST_FAILED_EXPANSION", "This quest requires an expansion enabled account." };
+ case INVALIDREASON_QUEST_ALREADY_ON2: return { "INVALIDREASON_QUEST_ALREADY_ON2", "INVALIDREASON_QUEST_ALREADY_ON2", "You are already on that quest." };
+ case INVALIDREASON_QUEST_FAILED_MISSING_ITEMS: return { "INVALIDREASON_QUEST_FAILED_MISSING_ITEMS", "INVALIDREASON_QUEST_FAILED_MISSING_ITEMS", "You don't have the required items with you. Check storage." };
+ case INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY: return { "INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY", "INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY", "You don't have enough money for that quest." };
+ case INVALIDREASON_DAILY_QUESTS_REMAINING: return { "INVALIDREASON_DAILY_QUESTS_REMAINING", "INVALIDREASON_DAILY_QUESTS_REMAINING", "You have already completed 25 daily quests today." };
+ case INVALIDREASON_QUEST_FAILED_CAIS: return { "INVALIDREASON_QUEST_FAILED_CAIS", "INVALIDREASON_QUEST_FAILED_CAIS", "You cannot complete quests once you have reached tired time." };
+ case INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY: return { "INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY", "INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY", "You have completed that daily quest today." };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestFailedReason>::Count() { return 13; }
+
+template <>
+TC_API_EXPORT QuestFailedReason EnumUtils<QuestFailedReason>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return INVALIDREASON_DONT_HAVE_REQ;
+ case 1: return INVALIDREASON_QUEST_FAILED_LOW_LEVEL;
+ case 2: return INVALIDREASON_QUEST_FAILED_WRONG_RACE;
+ case 3: return INVALIDREASON_QUEST_ALREADY_DONE;
+ case 4: return INVALIDREASON_QUEST_ONLY_ONE_TIMED;
+ case 5: return INVALIDREASON_QUEST_ALREADY_ON;
+ case 6: return INVALIDREASON_QUEST_FAILED_EXPANSION;
+ case 7: return INVALIDREASON_QUEST_ALREADY_ON2;
+ case 8: return INVALIDREASON_QUEST_FAILED_MISSING_ITEMS;
+ case 9: return INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY;
+ case 10: return INVALIDREASON_DAILY_QUESTS_REMAINING;
+ case 11: return INVALIDREASON_QUEST_FAILED_CAIS;
+ case 12: return INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestFailedReason>::ToIndex(QuestFailedReason value)
+{
+ switch (value)
+ {
+ case INVALIDREASON_DONT_HAVE_REQ: return 0;
+ case INVALIDREASON_QUEST_FAILED_LOW_LEVEL: return 1;
+ case INVALIDREASON_QUEST_FAILED_WRONG_RACE: return 2;
+ case INVALIDREASON_QUEST_ALREADY_DONE: return 3;
+ case INVALIDREASON_QUEST_ONLY_ONE_TIMED: return 4;
+ case INVALIDREASON_QUEST_ALREADY_ON: return 5;
+ case INVALIDREASON_QUEST_FAILED_EXPANSION: return 6;
+ case INVALIDREASON_QUEST_ALREADY_ON2: return 7;
+ case INVALIDREASON_QUEST_FAILED_MISSING_ITEMS: return 8;
+ case INVALIDREASON_QUEST_FAILED_NOT_ENOUGH_MONEY: return 9;
+ case INVALIDREASON_DAILY_QUESTS_REMAINING: return 10;
+ case INVALIDREASON_QUEST_FAILED_CAIS: return 11;
+ case INVALIDREASON_DAILY_QUEST_COMPLETED_TODAY: return 12;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/*********************************************************************\
+|* data for enum 'QuestShareMessages' in 'QuestDef.h' auto-generated *|
+\*********************************************************************/
+template <>
+TC_API_EXPORT EnumText EnumUtils<QuestShareMessages>::ToString(QuestShareMessages value)
+{
+ switch (value)
+ {
+ case QUEST_PARTY_MSG_SHARING_QUEST: return { "QUEST_PARTY_MSG_SHARING_QUEST", "QUEST_PARTY_MSG_SHARING_QUEST", "" };
+ case QUEST_PARTY_MSG_CANT_TAKE_QUEST: return { "QUEST_PARTY_MSG_CANT_TAKE_QUEST", "QUEST_PARTY_MSG_CANT_TAKE_QUEST", "" };
+ case QUEST_PARTY_MSG_ACCEPT_QUEST: return { "QUEST_PARTY_MSG_ACCEPT_QUEST", "QUEST_PARTY_MSG_ACCEPT_QUEST", "" };
+ case QUEST_PARTY_MSG_DECLINE_QUEST: return { "QUEST_PARTY_MSG_DECLINE_QUEST", "QUEST_PARTY_MSG_DECLINE_QUEST", "" };
+ case QUEST_PARTY_MSG_BUSY: return { "QUEST_PARTY_MSG_BUSY", "QUEST_PARTY_MSG_BUSY", "" };
+ case QUEST_PARTY_MSG_LOG_FULL: return { "QUEST_PARTY_MSG_LOG_FULL", "QUEST_PARTY_MSG_LOG_FULL", "" };
+ case QUEST_PARTY_MSG_HAVE_QUEST: return { "QUEST_PARTY_MSG_HAVE_QUEST", "QUEST_PARTY_MSG_HAVE_QUEST", "" };
+ case QUEST_PARTY_MSG_FINISH_QUEST: return { "QUEST_PARTY_MSG_FINISH_QUEST", "QUEST_PARTY_MSG_FINISH_QUEST", "" };
+ case QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY: return { "QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY", "QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY", "" };
+ case QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED: return { "QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED", "QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED", "" };
+ case QUEST_PARTY_MSG_NOT_IN_PARTY: return { "QUEST_PARTY_MSG_NOT_IN_PARTY", "QUEST_PARTY_MSG_NOT_IN_PARTY", "" };
+ case QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY: return { "QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY", "QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestShareMessages>::Count() { return 12; }
+
+template <>
+TC_API_EXPORT QuestShareMessages EnumUtils<QuestShareMessages>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return QUEST_PARTY_MSG_SHARING_QUEST;
+ case 1: return QUEST_PARTY_MSG_CANT_TAKE_QUEST;
+ case 2: return QUEST_PARTY_MSG_ACCEPT_QUEST;
+ case 3: return QUEST_PARTY_MSG_DECLINE_QUEST;
+ case 4: return QUEST_PARTY_MSG_BUSY;
+ case 5: return QUEST_PARTY_MSG_LOG_FULL;
+ case 6: return QUEST_PARTY_MSG_HAVE_QUEST;
+ case 7: return QUEST_PARTY_MSG_FINISH_QUEST;
+ case 8: return QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY;
+ case 9: return QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED;
+ case 10: return QUEST_PARTY_MSG_NOT_IN_PARTY;
+ case 11: return QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<QuestShareMessages>::ToIndex(QuestShareMessages value)
+{
+ switch (value)
+ {
+ case QUEST_PARTY_MSG_SHARING_QUEST: return 0;
+ case QUEST_PARTY_MSG_CANT_TAKE_QUEST: return 1;
+ case QUEST_PARTY_MSG_ACCEPT_QUEST: return 2;
+ case QUEST_PARTY_MSG_DECLINE_QUEST: return 3;
+ case QUEST_PARTY_MSG_BUSY: return 4;
+ case QUEST_PARTY_MSG_LOG_FULL: return 5;
+ case QUEST_PARTY_MSG_HAVE_QUEST: return 6;
+ case QUEST_PARTY_MSG_FINISH_QUEST: return 7;
+ case QUEST_PARTY_MSG_CANT_BE_SHARED_TODAY: return 8;
+ case QUEST_PARTY_MSG_SHARING_TIMER_EXPIRED: return 9;
+ case QUEST_PARTY_MSG_NOT_IN_PARTY: return 10;
+ case QUEST_PARTY_MSG_NOT_ELIGIBLE_TODAY: return 11;
+ 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 8f6a80b2201..f979f01a718 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 "Chat.h"
#include "GameTime.h"
#include "GossipDef.h"
@@ -108,7 +109,6 @@ public:
{ "setitemvalue", rbac::RBAC_PERM_COMMAND_DEBUG_SETITEMVALUE, false, &HandleDebugSetItemValueCommand, "" },
{ "setvalue", rbac::RBAC_PERM_COMMAND_DEBUG_SETVALUE, false, &HandleDebugSetValueCommand, "" },
{ "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, "" },
{ "update", rbac::RBAC_PERM_COMMAND_DEBUG_UPDATE, false, &HandleDebugUpdateCommand, "" },
@@ -161,7 +161,7 @@ public:
handler->PSendSysMessage("%u waypoints dumped", flyByCameras->size());
}
- handler->GetSession()->GetPlayer()->SendCinematicStart(cinematicId);
+ handler->GetPlayer()->SendCinematicStart(cinematicId);
return true;
}
@@ -175,7 +175,7 @@ public:
return false;
}
- handler->GetSession()->GetPlayer()->SendMovieStart(movieId);
+ handler->GetPlayer()->SendMovieStart(movieId);
return true;
}
@@ -189,7 +189,7 @@ public:
return false;
}
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
Unit* unit = handler->getSelectedUnit();
if (!unit)
@@ -218,7 +218,7 @@ public:
return false;
}
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
player->PlayDirectMusic(musicId, player);
@@ -226,65 +226,36 @@ public:
return true;
}
- static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendSpellFailCommand(ChatHandler* handler, SpellCastResult result, Optional<uint32> failArg1, Optional<uint32> 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;
-
WorldPacket data(SMSG_CAST_FAILED, 5);
data << uint8(0);
- data << uint32(133);
- data << uint8(failNum);
- if (fail1 || fail2)
- data << uint32(failArg1);
- if (fail2)
- data << uint32(failArg2);
+ data << uint32(133); // Spell "Fireball"
+ data << uint8(result);
+ if (failArg1 || failArg2)
+ data << uint32(failArg1.value_or(0));
+ if (failArg2)
+ data << uint32(*failArg2);
handler->GetSession()->SendPacket(&data);
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, 0);
+ handler->GetPlayer()->SendSellError(error, nullptr, ObjectGuid::Empty, 0);
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;
}
@@ -293,7 +264,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();
@@ -461,13 +432,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);
@@ -481,40 +452,28 @@ 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);
-
WorldPacket data(SMSG_CHANNEL_NOTIFY, (1+10));
- data << code; // notify type
- data << name; // channel name
+ data << uint8(type);
+ data << "test";
data << uint32(0);
data << uint32(0);
handler->GetSession()->SendPacket(&data);
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);
WorldPacket data;
- ChatHandler::BuildChatPacket(data, ChatMsg(type), LANG_UNIVERSAL, handler->GetSession()->GetPlayer(), handler->GetSession()->GetPlayer(), msg, 0, "chan");
+ ChatHandler::BuildChatPacket(data, type, LANG_UNIVERSAL, handler->GetPlayer(), handler->GetPlayer(), "testtest", 0, "chan");
handler->GetSession()->SendPacket(&data);
return true;
}
- static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, char const* args)
+ static bool HandleDebugSendQuestPartyMsgCommand(ChatHandler* handler, QuestShareMessages msg)
{
- uint32 msg = atoul(args);
- handler->GetSession()->GetPlayer()->SendPushToPartyResponse(handler->GetSession()->GetPlayer(), msg);
+ handler->GetPlayer()->SendPushToPartyResponse(handler->GetPlayer(), msg);
return true;
}
@@ -530,10 +489,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;
}
@@ -560,7 +518,7 @@ public:
Player* player = handler->getSelectedPlayer();
if (!player)
- player = handler->GetSession()->GetPlayer();
+ player = handler->GetPlayer();
if (!listQueue && !checkAll)
{
@@ -819,7 +777,7 @@ public:
{
Unit* target = handler->getSelectedUnit();
if (!target)
- target = handler->GetSession()->GetPlayer();
+ target = handler->GetPlayer();
ThreatManager& mgr = target->GetThreatManager();
if (!target->IsAlive())
@@ -979,7 +937,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())
@@ -995,25 +953,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 = (uint32)atoi(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();
@@ -1024,13 +963,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);
@@ -1042,11 +981,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);
@@ -1060,9 +999,9 @@ public:
Creature* v = new Creature();
- Map* map = handler->GetSession()->GetPlayer()->GetMap();
+ Map* map = handler->GetPlayer()->GetMap();
- if (!v->Create(map->GenerateLowGuid<HighGuid::Vehicle>(), map, handler->GetSession()->GetPlayer()->GetPhaseMask(), entry, { x, y, z, o }, nullptr, *id))
+ if (!v->Create(map->GenerateLowGuid<HighGuid::Vehicle>(), map, handler->GetPlayer()->GetPhaseMask(), entry, { x, y, z, o }, nullptr, *id))
{
delete v;
return false;
@@ -1075,10 +1014,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;
}
@@ -1091,7 +1029,7 @@ public:
static bool HandleDebugGetItemValueCommand(ChatHandler* handler, ObjectGuid::LowType guid, uint32 index)
{
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, 0, guid));
+ Item* i = handler->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, 0, guid));
if (!i)
return false;
@@ -1108,7 +1046,7 @@ public:
static bool HandleDebugSetItemValueCommand(ChatHandler* handler, ObjectGuid::LowType guid, uint32 index, uint32 value)
{
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, 0, guid));
+ Item* i = handler->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, 0, guid));
if (!i)
return false;
@@ -1123,13 +1061,13 @@ public:
static bool HandleDebugItemExpireCommand(ChatHandler* handler, ObjectGuid::LowType guid)
{
- Item* i = handler->GetSession()->GetPlayer()->GetItemByGuid(ObjectGuid(HighGuid::Item, guid));
+ Item* i = handler->GetPlayer()->GetItemByGuid(ObjectGuid(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;
}
@@ -1149,7 +1087,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");
@@ -1159,15 +1097,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)
{
@@ -1176,16 +1107,15 @@ 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;
}
@@ -1253,16 +1183,16 @@ public:
static bool HandleDebugMod32ValueCommand(ChatHandler* handler, uint32 index, uint32 value)
{
- if (index >= handler->GetSession()->GetPlayer()->GetValuesCount())
+ if (index >= handler->GetPlayer()->GetValuesCount())
{
- handler->PSendSysMessage(LANG_TOO_BIG_INDEX, index, handler->GetSession()->GetPlayer()->GetGUID().GetCounter(), handler->GetSession()->GetPlayer()->GetValuesCount());
+ handler->PSendSysMessage(LANG_TOO_BIG_INDEX, index, handler->GetPlayer()->GetGUID().GetCounter(), handler->GetPlayer()->GetValuesCount());
return false;
}
- uint32 currentValue = handler->GetSession()->GetPlayer()->GetUInt32Value(index);
+ uint32 currentValue = handler->GetPlayer()->GetUInt32Value(index);
currentValue += value;
- handler->GetSession()->GetPlayer()->SetUInt32Value(index, currentValue);
+ handler->GetPlayer()->SetUInt32Value(index, currentValue);
handler->PSendSysMessage(LANG_CHANGE_32BIT_FIELD, index, currentValue);
@@ -1325,63 +1255,54 @@ public:
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);
-
static uint32 const FlagsWithHandlers = MOVEMENTFLAG_MASK_HAS_PLAYER_STATUS_OPCODE |
MOVEMENTFLAG_WALKING | MOVEMENTFLAG_SWIMMING |
MOVEMENTFLAG_SPLINE_ENABLED;
- bool unhandledFlag = ((moveFlags ^ target->GetUnitMovementFlags()) & ~FlagsWithHandlers) != 0;
+ bool unhandledFlag = ((*moveFlags ^ target->GetUnitMovementFlags()) & ~FlagsWithHandlers) != 0;
- target->SetWalk((moveFlags & MOVEMENTFLAG_WALKING) != 0);
- target->SetDisableGravity((moveFlags & MOVEMENTFLAG_DISABLE_GRAVITY) != 0);
- target->SetSwim((moveFlags & MOVEMENTFLAG_SWIMMING) != 0);
- target->SetCanFly((moveFlags & MOVEMENTFLAG_CAN_FLY) != 0);
- target->SetWaterWalking((moveFlags & MOVEMENTFLAG_WATERWALKING) != 0);
- target->SetFeatherFall((moveFlags & MOVEMENTFLAG_FALLING_SLOW) != 0);
- target->SetHover((moveFlags & MOVEMENTFLAG_HOVER) != 0);
+ target->SetWalk((*moveFlags & MOVEMENTFLAG_WALKING) != 0);
+ target->SetDisableGravity((*moveFlags & MOVEMENTFLAG_DISABLE_GRAVITY) != 0);
+ target->SetSwim((*moveFlags & MOVEMENTFLAG_SWIMMING) != 0);
+ target->SetCanFly((*moveFlags & MOVEMENTFLAG_CAN_FLY) != 0);
+ target->SetWaterWalking((*moveFlags & MOVEMENTFLAG_WATERWALKING) != 0);
+ target->SetFeatherFall((*moveFlags & MOVEMENTFLAG_FALLING_SLOW) != 0);
+ target->SetHover((*moveFlags & MOVEMENTFLAG_HOVER) != 0);
- if (moveFlags & (MOVEMENTFLAG_DISABLE_GRAVITY | MOVEMENTFLAG_CAN_FLY))
- moveFlags &= ~MOVEMENTFLAG_FALLING;
+ if (*moveFlags & (MOVEMENTFLAG_DISABLE_GRAVITY | MOVEMENTFLAG_CAN_FLY))
+ *moveFlags &= ~MOVEMENTFLAG_FALLING;
- if (moveFlags & MOVEMENTFLAG_ROOT)
+ if (*moveFlags & MOVEMENTFLAG_ROOT)
{
target->SetControlled(true, UNIT_STATE_ROOT);
- moveFlags &= ~MOVEMENTFLAG_MASK_MOVING;
+ *moveFlags &= ~MOVEMENTFLAG_MASK_MOVING;
}
- if (target->HasUnitMovementFlag(MOVEMENTFLAG_SPLINE_ENABLED) && !(moveFlags & MOVEMENTFLAG_SPLINE_ENABLED))
+ if (target->HasUnitMovementFlag(MOVEMENTFLAG_SPLINE_ENABLED) && !(*moveFlags & MOVEMENTFLAG_SPLINE_ENABLED))
target->StopMoving();
if (unhandledFlag)
- target->SetUnitMovementFlags(moveFlags);
+ target->SetUnitMovementFlags(*moveFlags);
- if (mask2)
+ if (moveFlagsExtra)
{
- uint32 moveFlagsExtra = uint32(atoi(mask2));
- target->SetExtraUnitMovementFlags(moveFlagsExtra);
+ target->SetExtraUnitMovementFlags(*moveFlagsExtra);
}
- if (mask2 || unhandledFlag)
+ if (moveFlagsExtra || unhandledFlag)
target->SendMovementFlagUpdate();
handler->PSendSysMessage(LANG_MOVEFLAGS_SET, target->GetUnitMovementFlags(), target->GetExtraUnitMovementFlags());
@@ -1392,7 +1313,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());
@@ -1402,7 +1323,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;
@@ -1428,7 +1349,7 @@ public:
static bool HandleDebugLoadCellsCommand(ChatHandler* handler, Optional<uint32> mapId)
{
- Player* player = handler->GetSession()->GetPlayer();
+ Player* player = handler->GetPlayer();
if (!player)
return false;
@@ -1447,7 +1368,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();
@@ -1552,7 +1473,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)
@@ -1597,18 +1518,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))
{
diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h
index affb23765b0..9c8a1767d47 100644
--- a/src/server/shared/SharedDefines.h
+++ b/src/server/shared/SharedDefines.h
@@ -969,7 +969,8 @@ enum SpellEffects
TOTAL_SPELL_EFFECTS = 165
};
-enum SpellCastResult
+// EnumUtils: DESCRIBE THIS
+enum SpellCastResult : uint8
{
SPELL_FAILED_SUCCESS = 0,
SPELL_FAILED_AFFECTING_COMBAT = 1,
@@ -1308,6 +1309,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
@@ -3146,9 +3148,10 @@ enum WeatherType
#define MAX_WEATHER_TYPE 4
-enum ChatMsg
+// EnumUtils: DESCRIBE THIS
+enum ChatMsg : uint8
{
- CHAT_MSG_ADDON = 0xFFFFFFFF, // -1
+ CHAT_MSG_ADDON = 0xFF, // -1
CHAT_MSG_SYSTEM = 0x00,
CHAT_MSG_SAY = 0x01,
CHAT_MSG_PARTY = 0x02,
diff --git a/src/server/shared/enuminfo_SharedDefines.cpp b/src/server/shared/enuminfo_SharedDefines.cpp
index dd8e3641312..ad71f09b354 100644
--- a/src/server/shared/enuminfo_SharedDefines.cpp
+++ b/src/server/shared/enuminfo_SharedDefines.cpp
@@ -1292,6 +1292,693 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr7>::ToIndex(SpellAttr7 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_OPEN: return { "SPELL_FAILED_ALREADY_OPEN", "SPELL_FAILED_ALREADY_OPEN", "" };
+ case SPELL_FAILED_AURA_BOUNCED: return { "SPELL_FAILED_AURA_BOUNCED", "SPELL_FAILED_AURA_BOUNCED", "" };
+ case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return { "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "SPELL_FAILED_AUTOTRACK_INTERRUPTED", "" };
+ case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return { "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "SPELL_FAILED_BAD_IMPLICIT_TARGETS", "" };
+ case SPELL_FAILED_BAD_TARGETS: return { "SPELL_FAILED_BAD_TARGETS", "SPELL_FAILED_BAD_TARGETS", "" };
+ case SPELL_FAILED_CANT_BE_CHARMED: return { "SPELL_FAILED_CANT_BE_CHARMED", "SPELL_FAILED_CANT_BE_CHARMED", "" };
+ case SPELL_FAILED_CANT_BE_DISENCHANTED: return { "SPELL_FAILED_CANT_BE_DISENCHANTED", "SPELL_FAILED_CANT_BE_DISENCHANTED", "" };
+ case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return { "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL", "" };
+ case SPELL_FAILED_CANT_BE_MILLED: return { "SPELL_FAILED_CANT_BE_MILLED", "SPELL_FAILED_CANT_BE_MILLED", "" };
+ case SPELL_FAILED_CANT_BE_PROSPECTED: return { "SPELL_FAILED_CANT_BE_PROSPECTED", "SPELL_FAILED_CANT_BE_PROSPECTED", "" };
+ case SPELL_FAILED_CANT_CAST_ON_TAPPED: return { "SPELL_FAILED_CANT_CAST_ON_TAPPED", "SPELL_FAILED_CANT_CAST_ON_TAPPED", "" };
+ case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return { "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE", "" };
+ case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return { "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED", "" };
+ case SPELL_FAILED_CANT_STEALTH: return { "SPELL_FAILED_CANT_STEALTH", "SPELL_FAILED_CANT_STEALTH", "" };
+ case SPELL_FAILED_CASTER_AURASTATE: return { "SPELL_FAILED_CASTER_AURASTATE", "SPELL_FAILED_CASTER_AURASTATE", "" };
+ case SPELL_FAILED_CASTER_DEAD: return { "SPELL_FAILED_CASTER_DEAD", "SPELL_FAILED_CASTER_DEAD", "" };
+ case SPELL_FAILED_CHARMED: return { "SPELL_FAILED_CHARMED", "SPELL_FAILED_CHARMED", "" };
+ case SPELL_FAILED_CHEST_IN_USE: return { "SPELL_FAILED_CHEST_IN_USE", "SPELL_FAILED_CHEST_IN_USE", "" };
+ case SPELL_FAILED_CONFUSED: return { "SPELL_FAILED_CONFUSED", "SPELL_FAILED_CONFUSED", "" };
+ case SPELL_FAILED_DONT_REPORT: return { "SPELL_FAILED_DONT_REPORT", "SPELL_FAILED_DONT_REPORT", "" };
+ case SPELL_FAILED_EQUIPPED_ITEM: return { "SPELL_FAILED_EQUIPPED_ITEM", "SPELL_FAILED_EQUIPPED_ITEM", "" };
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "SPELL_FAILED_EQUIPPED_ITEM_CLASS", "" };
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND", "" };
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return { "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND", "" };
+ case SPELL_FAILED_ERROR: return { "SPELL_FAILED_ERROR", "SPELL_FAILED_ERROR", "" };
+ case SPELL_FAILED_FIZZLE: return { "SPELL_FAILED_FIZZLE", "SPELL_FAILED_FIZZLE", "" };
+ case SPELL_FAILED_FLEEING: return { "SPELL_FAILED_FLEEING", "SPELL_FAILED_FLEEING", "" };
+ case SPELL_FAILED_FOOD_LOWLEVEL: return { "SPELL_FAILED_FOOD_LOWLEVEL", "SPELL_FAILED_FOOD_LOWLEVEL", "" };
+ case SPELL_FAILED_HIGHLEVEL: return { "SPELL_FAILED_HIGHLEVEL", "SPELL_FAILED_HIGHLEVEL", "" };
+ case SPELL_FAILED_HUNGER_SATIATED: return { "SPELL_FAILED_HUNGER_SATIATED", "SPELL_FAILED_HUNGER_SATIATED", "" };
+ case SPELL_FAILED_IMMUNE: return { "SPELL_FAILED_IMMUNE", "SPELL_FAILED_IMMUNE", "" };
+ case SPELL_FAILED_INCORRECT_AREA: return { "SPELL_FAILED_INCORRECT_AREA", "SPELL_FAILED_INCORRECT_AREA", "" };
+ case SPELL_FAILED_INTERRUPTED: return { "SPELL_FAILED_INTERRUPTED", "SPELL_FAILED_INTERRUPTED", "" };
+ case SPELL_FAILED_INTERRUPTED_COMBAT: return { "SPELL_FAILED_INTERRUPTED_COMBAT", "SPELL_FAILED_INTERRUPTED_COMBAT", "" };
+ case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return { "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "SPELL_FAILED_ITEM_ALREADY_ENCHANTED", "" };
+ case SPELL_FAILED_ITEM_GONE: return { "SPELL_FAILED_ITEM_GONE", "SPELL_FAILED_ITEM_GONE", "" };
+ case SPELL_FAILED_ITEM_NOT_FOUND: return { "SPELL_FAILED_ITEM_NOT_FOUND", "SPELL_FAILED_ITEM_NOT_FOUND", "" };
+ case SPELL_FAILED_ITEM_NOT_READY: return { "SPELL_FAILED_ITEM_NOT_READY", "SPELL_FAILED_ITEM_NOT_READY", "" };
+ case SPELL_FAILED_LEVEL_REQUIREMENT: return { "SPELL_FAILED_LEVEL_REQUIREMENT", "SPELL_FAILED_LEVEL_REQUIREMENT", "" };
+ case SPELL_FAILED_LINE_OF_SIGHT: return { "SPELL_FAILED_LINE_OF_SIGHT", "SPELL_FAILED_LINE_OF_SIGHT", "" };
+ case SPELL_FAILED_LOWLEVEL: return { "SPELL_FAILED_LOWLEVEL", "SPELL_FAILED_LOWLEVEL", "" };
+ case SPELL_FAILED_LOW_CASTLEVEL: return { "SPELL_FAILED_LOW_CASTLEVEL", "SPELL_FAILED_LOW_CASTLEVEL", "" };
+ case SPELL_FAILED_MAINHAND_EMPTY: return { "SPELL_FAILED_MAINHAND_EMPTY", "SPELL_FAILED_MAINHAND_EMPTY", "" };
+ case SPELL_FAILED_MOVING: return { "SPELL_FAILED_MOVING", "SPELL_FAILED_MOVING", "" };
+ case SPELL_FAILED_NEED_AMMO: return { "SPELL_FAILED_NEED_AMMO", "SPELL_FAILED_NEED_AMMO", "" };
+ case SPELL_FAILED_NEED_AMMO_POUCH: return { "SPELL_FAILED_NEED_AMMO_POUCH", "SPELL_FAILED_NEED_AMMO_POUCH", "" };
+ case SPELL_FAILED_NEED_EXOTIC_AMMO: return { "SPELL_FAILED_NEED_EXOTIC_AMMO", "SPELL_FAILED_NEED_EXOTIC_AMMO", "" };
+ case SPELL_FAILED_NEED_MORE_ITEMS: return { "SPELL_FAILED_NEED_MORE_ITEMS", "SPELL_FAILED_NEED_MORE_ITEMS", "" };
+ case SPELL_FAILED_NOPATH: return { "SPELL_FAILED_NOPATH", "SPELL_FAILED_NOPATH", "" };
+ case SPELL_FAILED_NOT_BEHIND: return { "SPELL_FAILED_NOT_BEHIND", "SPELL_FAILED_NOT_BEHIND", "" };
+ case SPELL_FAILED_NOT_FISHABLE: return { "SPELL_FAILED_NOT_FISHABLE", "SPELL_FAILED_NOT_FISHABLE", "" };
+ case SPELL_FAILED_NOT_FLYING: return { "SPELL_FAILED_NOT_FLYING", "SPELL_FAILED_NOT_FLYING", "" };
+ case SPELL_FAILED_NOT_HERE: return { "SPELL_FAILED_NOT_HERE", "SPELL_FAILED_NOT_HERE", "" };
+ case SPELL_FAILED_NOT_INFRONT: return { "SPELL_FAILED_NOT_INFRONT", "SPELL_FAILED_NOT_INFRONT", "" };
+ case SPELL_FAILED_NOT_IN_CONTROL: return { "SPELL_FAILED_NOT_IN_CONTROL", "SPELL_FAILED_NOT_IN_CONTROL", "" };
+ case SPELL_FAILED_NOT_KNOWN: return { "SPELL_FAILED_NOT_KNOWN", "SPELL_FAILED_NOT_KNOWN", "" };
+ case SPELL_FAILED_NOT_MOUNTED: return { "SPELL_FAILED_NOT_MOUNTED", "SPELL_FAILED_NOT_MOUNTED", "" };
+ case SPELL_FAILED_NOT_ON_TAXI: return { "SPELL_FAILED_NOT_ON_TAXI", "SPELL_FAILED_NOT_ON_TAXI", "" };
+ case SPELL_FAILED_NOT_ON_TRANSPORT: return { "SPELL_FAILED_NOT_ON_TRANSPORT", "SPELL_FAILED_NOT_ON_TRANSPORT", "" };
+ case SPELL_FAILED_NOT_READY: return { "SPELL_FAILED_NOT_READY", "SPELL_FAILED_NOT_READY", "" };
+ case SPELL_FAILED_NOT_SHAPESHIFT: return { "SPELL_FAILED_NOT_SHAPESHIFT", "SPELL_FAILED_NOT_SHAPESHIFT", "" };
+ case SPELL_FAILED_NOT_STANDING: return { "SPELL_FAILED_NOT_STANDING", "SPELL_FAILED_NOT_STANDING", "" };
+ case SPELL_FAILED_NOT_TRADEABLE: return { "SPELL_FAILED_NOT_TRADEABLE", "SPELL_FAILED_NOT_TRADEABLE", "" };
+ case SPELL_FAILED_NOT_TRADING: return { "SPELL_FAILED_NOT_TRADING", "SPELL_FAILED_NOT_TRADING", "" };
+ case SPELL_FAILED_NOT_UNSHEATHED: return { "SPELL_FAILED_NOT_UNSHEATHED", "SPELL_FAILED_NOT_UNSHEATHED", "" };
+ case SPELL_FAILED_NOT_WHILE_GHOST: return { "SPELL_FAILED_NOT_WHILE_GHOST", "SPELL_FAILED_NOT_WHILE_GHOST", "" };
+ case SPELL_FAILED_NOT_WHILE_LOOTING: return { "SPELL_FAILED_NOT_WHILE_LOOTING", "SPELL_FAILED_NOT_WHILE_LOOTING", "" };
+ case SPELL_FAILED_NO_AMMO: return { "SPELL_FAILED_NO_AMMO", "SPELL_FAILED_NO_AMMO", "" };
+ case SPELL_FAILED_NO_CHARGES_REMAIN: return { "SPELL_FAILED_NO_CHARGES_REMAIN", "SPELL_FAILED_NO_CHARGES_REMAIN", "" };
+ case SPELL_FAILED_NO_CHAMPION: return { "SPELL_FAILED_NO_CHAMPION", "SPELL_FAILED_NO_CHAMPION", "" };
+ case SPELL_FAILED_NO_COMBO_POINTS: return { "SPELL_FAILED_NO_COMBO_POINTS", "SPELL_FAILED_NO_COMBO_POINTS", "" };
+ case SPELL_FAILED_NO_DUELING: return { "SPELL_FAILED_NO_DUELING", "SPELL_FAILED_NO_DUELING", "" };
+ case SPELL_FAILED_NO_ENDURANCE: return { "SPELL_FAILED_NO_ENDURANCE", "SPELL_FAILED_NO_ENDURANCE", "" };
+ case SPELL_FAILED_NO_FISH: return { "SPELL_FAILED_NO_FISH", "SPELL_FAILED_NO_FISH", "" };
+ case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return { "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED", "" };
+ case SPELL_FAILED_NO_MOUNTS_ALLOWED: return { "SPELL_FAILED_NO_MOUNTS_ALLOWED", "SPELL_FAILED_NO_MOUNTS_ALLOWED", "" };
+ case SPELL_FAILED_NO_PET: return { "SPELL_FAILED_NO_PET", "SPELL_FAILED_NO_PET", "" };
+ case SPELL_FAILED_NO_POWER: return { "SPELL_FAILED_NO_POWER", "SPELL_FAILED_NO_POWER", "" };
+ case SPELL_FAILED_NOTHING_TO_DISPEL: return { "SPELL_FAILED_NOTHING_TO_DISPEL", "SPELL_FAILED_NOTHING_TO_DISPEL", "" };
+ case SPELL_FAILED_NOTHING_TO_STEAL: return { "SPELL_FAILED_NOTHING_TO_STEAL", "SPELL_FAILED_NOTHING_TO_STEAL", "" };
+ case SPELL_FAILED_ONLY_ABOVEWATER: return { "SPELL_FAILED_ONLY_ABOVEWATER", "SPELL_FAILED_ONLY_ABOVEWATER", "" };
+ case SPELL_FAILED_ONLY_DAYTIME: return { "SPELL_FAILED_ONLY_DAYTIME", "SPELL_FAILED_ONLY_DAYTIME", "" };
+ case SPELL_FAILED_ONLY_INDOORS: return { "SPELL_FAILED_ONLY_INDOORS", "SPELL_FAILED_ONLY_INDOORS", "" };
+ case SPELL_FAILED_ONLY_MOUNTED: return { "SPELL_FAILED_ONLY_MOUNTED", "SPELL_FAILED_ONLY_MOUNTED", "" };
+ case SPELL_FAILED_ONLY_NIGHTTIME: return { "SPELL_FAILED_ONLY_NIGHTTIME", "SPELL_FAILED_ONLY_NIGHTTIME", "" };
+ case SPELL_FAILED_ONLY_OUTDOORS: return { "SPELL_FAILED_ONLY_OUTDOORS", "SPELL_FAILED_ONLY_OUTDOORS", "" };
+ case SPELL_FAILED_ONLY_SHAPESHIFT: return { "SPELL_FAILED_ONLY_SHAPESHIFT", "SPELL_FAILED_ONLY_SHAPESHIFT", "" };
+ case SPELL_FAILED_ONLY_STEALTHED: return { "SPELL_FAILED_ONLY_STEALTHED", "SPELL_FAILED_ONLY_STEALTHED", "" };
+ case SPELL_FAILED_ONLY_UNDERWATER: return { "SPELL_FAILED_ONLY_UNDERWATER", "SPELL_FAILED_ONLY_UNDERWATER", "" };
+ case SPELL_FAILED_OUT_OF_RANGE: return { "SPELL_FAILED_OUT_OF_RANGE", "SPELL_FAILED_OUT_OF_RANGE", "" };
+ case SPELL_FAILED_PACIFIED: return { "SPELL_FAILED_PACIFIED", "SPELL_FAILED_PACIFIED", "" };
+ case SPELL_FAILED_POSSESSED: return { "SPELL_FAILED_POSSESSED", "SPELL_FAILED_POSSESSED", "" };
+ case SPELL_FAILED_REAGENTS: return { "SPELL_FAILED_REAGENTS", "SPELL_FAILED_REAGENTS", "" };
+ case SPELL_FAILED_REQUIRES_AREA: return { "SPELL_FAILED_REQUIRES_AREA", "SPELL_FAILED_REQUIRES_AREA", "" };
+ case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return { "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "SPELL_FAILED_REQUIRES_SPELL_FOCUS", "" };
+ case SPELL_FAILED_ROOTED: return { "SPELL_FAILED_ROOTED", "SPELL_FAILED_ROOTED", "" };
+ case SPELL_FAILED_SILENCED: return { "SPELL_FAILED_SILENCED", "SPELL_FAILED_SILENCED", "" };
+ case SPELL_FAILED_SPELL_IN_PROGRESS: return { "SPELL_FAILED_SPELL_IN_PROGRESS", "SPELL_FAILED_SPELL_IN_PROGRESS", "" };
+ case SPELL_FAILED_SPELL_LEARNED: return { "SPELL_FAILED_SPELL_LEARNED", "SPELL_FAILED_SPELL_LEARNED", "" };
+ case SPELL_FAILED_SPELL_UNAVAILABLE: return { "SPELL_FAILED_SPELL_UNAVAILABLE", "SPELL_FAILED_SPELL_UNAVAILABLE", "" };
+ case SPELL_FAILED_STUNNED: return { "SPELL_FAILED_STUNNED", "SPELL_FAILED_STUNNED", "" };
+ case SPELL_FAILED_TARGETS_DEAD: return { "SPELL_FAILED_TARGETS_DEAD", "SPELL_FAILED_TARGETS_DEAD", "" };
+ case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return { "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "SPELL_FAILED_TARGET_AFFECTING_COMBAT", "" };
+ case SPELL_FAILED_TARGET_AURASTATE: return { "SPELL_FAILED_TARGET_AURASTATE", "SPELL_FAILED_TARGET_AURASTATE", "" };
+ case SPELL_FAILED_TARGET_DUELING: return { "SPELL_FAILED_TARGET_DUELING", "SPELL_FAILED_TARGET_DUELING", "" };
+ case SPELL_FAILED_TARGET_ENEMY: return { "SPELL_FAILED_TARGET_ENEMY", "SPELL_FAILED_TARGET_ENEMY", "" };
+ case SPELL_FAILED_TARGET_ENRAGED: return { "SPELL_FAILED_TARGET_ENRAGED", "SPELL_FAILED_TARGET_ENRAGED", "" };
+ case SPELL_FAILED_TARGET_FRIENDLY: return { "SPELL_FAILED_TARGET_FRIENDLY", "SPELL_FAILED_TARGET_FRIENDLY", "" };
+ case SPELL_FAILED_TARGET_IN_COMBAT: return { "SPELL_FAILED_TARGET_IN_COMBAT", "SPELL_FAILED_TARGET_IN_COMBAT", "" };
+ case SPELL_FAILED_TARGET_IS_PLAYER: return { "SPELL_FAILED_TARGET_IS_PLAYER", "SPELL_FAILED_TARGET_IS_PLAYER", "" };
+ case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return { "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED", "" };
+ case SPELL_FAILED_TARGET_NOT_DEAD: return { "SPELL_FAILED_TARGET_NOT_DEAD", "SPELL_FAILED_TARGET_NOT_DEAD", "" };
+ case SPELL_FAILED_TARGET_NOT_IN_PARTY: return { "SPELL_FAILED_TARGET_NOT_IN_PARTY", "SPELL_FAILED_TARGET_NOT_IN_PARTY", "" };
+ case SPELL_FAILED_TARGET_NOT_LOOTED: return { "SPELL_FAILED_TARGET_NOT_LOOTED", "SPELL_FAILED_TARGET_NOT_LOOTED", "" };
+ case SPELL_FAILED_TARGET_NOT_PLAYER: return { "SPELL_FAILED_TARGET_NOT_PLAYER", "SPELL_FAILED_TARGET_NOT_PLAYER", "" };
+ case SPELL_FAILED_TARGET_NO_POCKETS: return { "SPELL_FAILED_TARGET_NO_POCKETS", "SPELL_FAILED_TARGET_NO_POCKETS", "" };
+ case SPELL_FAILED_TARGET_NO_WEAPONS: return { "SPELL_FAILED_TARGET_NO_WEAPONS", "SPELL_FAILED_TARGET_NO_WEAPONS", "" };
+ case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return { "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "SPELL_FAILED_TARGET_NO_RANGED_WEAPONS", "" };
+ case SPELL_FAILED_TARGET_UNSKINNABLE: return { "SPELL_FAILED_TARGET_UNSKINNABLE", "SPELL_FAILED_TARGET_UNSKINNABLE", "" };
+ case SPELL_FAILED_THIRST_SATIATED: return { "SPELL_FAILED_THIRST_SATIATED", "SPELL_FAILED_THIRST_SATIATED", "" };
+ case SPELL_FAILED_TOO_CLOSE: return { "SPELL_FAILED_TOO_CLOSE", "SPELL_FAILED_TOO_CLOSE", "" };
+ case SPELL_FAILED_TOO_MANY_OF_ITEM: return { "SPELL_FAILED_TOO_MANY_OF_ITEM", "SPELL_FAILED_TOO_MANY_OF_ITEM", "" };
+ case SPELL_FAILED_TOTEM_CATEGORY: return { "SPELL_FAILED_TOTEM_CATEGORY", "SPELL_FAILED_TOTEM_CATEGORY", "" };
+ case SPELL_FAILED_TOTEMS: return { "SPELL_FAILED_TOTEMS", "SPELL_FAILED_TOTEMS", "" };
+ case SPELL_FAILED_TRY_AGAIN: return { "SPELL_FAILED_TRY_AGAIN", "SPELL_FAILED_TRY_AGAIN", "" };
+ case SPELL_FAILED_UNIT_NOT_BEHIND: return { "SPELL_FAILED_UNIT_NOT_BEHIND", "SPELL_FAILED_UNIT_NOT_BEHIND", "" };
+ case SPELL_FAILED_UNIT_NOT_INFRONT: return { "SPELL_FAILED_UNIT_NOT_INFRONT", "SPELL_FAILED_UNIT_NOT_INFRONT", "" };
+ case SPELL_FAILED_WRONG_PET_FOOD: return { "SPELL_FAILED_WRONG_PET_FOOD", "SPELL_FAILED_WRONG_PET_FOOD", "" };
+ case SPELL_FAILED_NOT_WHILE_FATIGUED: return { "SPELL_FAILED_NOT_WHILE_FATIGUED", "SPELL_FAILED_NOT_WHILE_FATIGUED", "" };
+ case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return { "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "SPELL_FAILED_TARGET_NOT_IN_INSTANCE", "" };
+ case SPELL_FAILED_NOT_WHILE_TRADING: return { "SPELL_FAILED_NOT_WHILE_TRADING", "SPELL_FAILED_NOT_WHILE_TRADING", "" };
+ case SPELL_FAILED_TARGET_NOT_IN_RAID: return { "SPELL_FAILED_TARGET_NOT_IN_RAID", "SPELL_FAILED_TARGET_NOT_IN_RAID", "" };
+ case SPELL_FAILED_TARGET_FREEFORALL: return { "SPELL_FAILED_TARGET_FREEFORALL", "SPELL_FAILED_TARGET_FREEFORALL", "" };
+ case SPELL_FAILED_NO_EDIBLE_CORPSES: return { "SPELL_FAILED_NO_EDIBLE_CORPSES", "SPELL_FAILED_NO_EDIBLE_CORPSES", "" };
+ case SPELL_FAILED_ONLY_BATTLEGROUNDS: return { "SPELL_FAILED_ONLY_BATTLEGROUNDS", "SPELL_FAILED_ONLY_BATTLEGROUNDS", "" };
+ case SPELL_FAILED_TARGET_NOT_GHOST: return { "SPELL_FAILED_TARGET_NOT_GHOST", "SPELL_FAILED_TARGET_NOT_GHOST", "" };
+ case SPELL_FAILED_TRANSFORM_UNUSABLE: return { "SPELL_FAILED_TRANSFORM_UNUSABLE", "SPELL_FAILED_TRANSFORM_UNUSABLE", "" };
+ case SPELL_FAILED_WRONG_WEATHER: return { "SPELL_FAILED_WRONG_WEATHER", "SPELL_FAILED_WRONG_WEATHER", "" };
+ case SPELL_FAILED_DAMAGE_IMMUNE: return { "SPELL_FAILED_DAMAGE_IMMUNE", "SPELL_FAILED_DAMAGE_IMMUNE", "" };
+ case SPELL_FAILED_PREVENTED_BY_MECHANIC: return { "SPELL_FAILED_PREVENTED_BY_MECHANIC", "SPELL_FAILED_PREVENTED_BY_MECHANIC", "" };
+ case SPELL_FAILED_PLAY_TIME: return { "SPELL_FAILED_PLAY_TIME", "SPELL_FAILED_PLAY_TIME", "" };
+ case SPELL_FAILED_REPUTATION: return { "SPELL_FAILED_REPUTATION", "SPELL_FAILED_REPUTATION", "" };
+ case SPELL_FAILED_MIN_SKILL: return { "SPELL_FAILED_MIN_SKILL", "SPELL_FAILED_MIN_SKILL", "" };
+ case SPELL_FAILED_NOT_IN_ARENA: return { "SPELL_FAILED_NOT_IN_ARENA", "SPELL_FAILED_NOT_IN_ARENA", "" };
+ case SPELL_FAILED_NOT_ON_SHAPESHIFT: return { "SPELL_FAILED_NOT_ON_SHAPESHIFT", "SPELL_FAILED_NOT_ON_SHAPESHIFT", "" };
+ case SPELL_FAILED_NOT_ON_STEALTHED: return { "SPELL_FAILED_NOT_ON_STEALTHED", "SPELL_FAILED_NOT_ON_STEALTHED", "" };
+ case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return { "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE", "" };
+ case SPELL_FAILED_NOT_ON_MOUNTED: return { "SPELL_FAILED_NOT_ON_MOUNTED", "SPELL_FAILED_NOT_ON_MOUNTED", "" };
+ case SPELL_FAILED_TOO_SHALLOW: return { "SPELL_FAILED_TOO_SHALLOW", "SPELL_FAILED_TOO_SHALLOW", "" };
+ case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return { "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "SPELL_FAILED_TARGET_NOT_IN_SANCTUARY", "" };
+ case SPELL_FAILED_TARGET_IS_TRIVIAL: return { "SPELL_FAILED_TARGET_IS_TRIVIAL", "SPELL_FAILED_TARGET_IS_TRIVIAL", "" };
+ case SPELL_FAILED_BM_OR_INVISGOD: return { "SPELL_FAILED_BM_OR_INVISGOD", "SPELL_FAILED_BM_OR_INVISGOD", "" };
+ case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return { "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "SPELL_FAILED_EXPERT_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return { "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT", "" };
+ case SPELL_FAILED_NOT_IDLE: return { "SPELL_FAILED_NOT_IDLE", "SPELL_FAILED_NOT_IDLE", "" };
+ case SPELL_FAILED_NOT_INACTIVE: return { "SPELL_FAILED_NOT_INACTIVE", "SPELL_FAILED_NOT_INACTIVE", "" };
+ case SPELL_FAILED_PARTIAL_PLAYTIME: return { "SPELL_FAILED_PARTIAL_PLAYTIME", "SPELL_FAILED_PARTIAL_PLAYTIME", "" };
+ case SPELL_FAILED_NO_PLAYTIME: return { "SPELL_FAILED_NO_PLAYTIME", "SPELL_FAILED_NO_PLAYTIME", "" };
+ case SPELL_FAILED_NOT_IN_BATTLEGROUND: return { "SPELL_FAILED_NOT_IN_BATTLEGROUND", "SPELL_FAILED_NOT_IN_BATTLEGROUND", "" };
+ case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return { "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "SPELL_FAILED_NOT_IN_RAID_INSTANCE", "" };
+ case SPELL_FAILED_ONLY_IN_ARENA: return { "SPELL_FAILED_ONLY_IN_ARENA", "SPELL_FAILED_ONLY_IN_ARENA", "" };
+ case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return { "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE", "" };
+ case SPELL_FAILED_ON_USE_ENCHANT: return { "SPELL_FAILED_ON_USE_ENCHANT", "SPELL_FAILED_ON_USE_ENCHANT", "" };
+ case SPELL_FAILED_NOT_ON_GROUND: return { "SPELL_FAILED_NOT_ON_GROUND", "SPELL_FAILED_NOT_ON_GROUND", "" };
+ case SPELL_FAILED_CUSTOM_ERROR: return { "SPELL_FAILED_CUSTOM_ERROR", "SPELL_FAILED_CUSTOM_ERROR", "" };
+ case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return { "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW", "" };
+ case SPELL_FAILED_TOO_MANY_SOCKETS: return { "SPELL_FAILED_TOO_MANY_SOCKETS", "SPELL_FAILED_TOO_MANY_SOCKETS", "" };
+ case SPELL_FAILED_INVALID_GLYPH: return { "SPELL_FAILED_INVALID_GLYPH", "SPELL_FAILED_INVALID_GLYPH", "" };
+ case SPELL_FAILED_UNIQUE_GLYPH: return { "SPELL_FAILED_UNIQUE_GLYPH", "SPELL_FAILED_UNIQUE_GLYPH", "" };
+ case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return { "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "SPELL_FAILED_GLYPH_SOCKET_LOCKED", "" };
+ case SPELL_FAILED_NO_VALID_TARGETS: return { "SPELL_FAILED_NO_VALID_TARGETS", "SPELL_FAILED_NO_VALID_TARGETS", "" };
+ case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return { "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "SPELL_FAILED_ITEM_AT_MAX_CHARGES", "" };
+ case SPELL_FAILED_NOT_IN_BARBERSHOP: return { "SPELL_FAILED_NOT_IN_BARBERSHOP", "SPELL_FAILED_NOT_IN_BARBERSHOP", "" };
+ case SPELL_FAILED_FISHING_TOO_LOW: return { "SPELL_FAILED_FISHING_TOO_LOW", "SPELL_FAILED_FISHING_TOO_LOW", "" };
+ case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return { "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW", "" };
+ case SPELL_FAILED_SUMMON_PENDING: return { "SPELL_FAILED_SUMMON_PENDING", "SPELL_FAILED_SUMMON_PENDING", "" };
+ case SPELL_FAILED_MAX_SOCKETS: return { "SPELL_FAILED_MAX_SOCKETS", "SPELL_FAILED_MAX_SOCKETS", "" };
+ case SPELL_FAILED_PET_CAN_RENAME: return { "SPELL_FAILED_PET_CAN_RENAME", "SPELL_FAILED_PET_CAN_RENAME", "" };
+ case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return { "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED", "" };
+ case SPELL_FAILED_UNKNOWN: return { "SPELL_FAILED_UNKNOWN", "SPELL_FAILED_UNKNOWN", "actually doesn't exist in client" };
+ case SPELL_CAST_OK: return { "SPELL_CAST_OK", "SPELL_CAST_OK", "custom value, must not be sent to client" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<SpellCastResult>::Count() { return 189; }
+
+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_OPEN;
+ case 9: return SPELL_FAILED_AURA_BOUNCED;
+ case 10: return SPELL_FAILED_AUTOTRACK_INTERRUPTED;
+ case 11: return SPELL_FAILED_BAD_IMPLICIT_TARGETS;
+ case 12: return SPELL_FAILED_BAD_TARGETS;
+ case 13: return SPELL_FAILED_CANT_BE_CHARMED;
+ case 14: return SPELL_FAILED_CANT_BE_DISENCHANTED;
+ case 15: return SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL;
+ case 16: return SPELL_FAILED_CANT_BE_MILLED;
+ case 17: return SPELL_FAILED_CANT_BE_PROSPECTED;
+ case 18: return SPELL_FAILED_CANT_CAST_ON_TAPPED;
+ case 19: return SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE;
+ case 20: return SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED;
+ case 21: return SPELL_FAILED_CANT_STEALTH;
+ case 22: return SPELL_FAILED_CASTER_AURASTATE;
+ case 23: return SPELL_FAILED_CASTER_DEAD;
+ case 24: return SPELL_FAILED_CHARMED;
+ case 25: return SPELL_FAILED_CHEST_IN_USE;
+ case 26: return SPELL_FAILED_CONFUSED;
+ case 27: return SPELL_FAILED_DONT_REPORT;
+ case 28: return SPELL_FAILED_EQUIPPED_ITEM;
+ case 29: return SPELL_FAILED_EQUIPPED_ITEM_CLASS;
+ case 30: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND;
+ case 31: return SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND;
+ case 32: return SPELL_FAILED_ERROR;
+ case 33: return SPELL_FAILED_FIZZLE;
+ case 34: return SPELL_FAILED_FLEEING;
+ case 35: return SPELL_FAILED_FOOD_LOWLEVEL;
+ case 36: return SPELL_FAILED_HIGHLEVEL;
+ case 37: return SPELL_FAILED_HUNGER_SATIATED;
+ case 38: return SPELL_FAILED_IMMUNE;
+ case 39: return SPELL_FAILED_INCORRECT_AREA;
+ case 40: return SPELL_FAILED_INTERRUPTED;
+ case 41: return SPELL_FAILED_INTERRUPTED_COMBAT;
+ case 42: return SPELL_FAILED_ITEM_ALREADY_ENCHANTED;
+ case 43: return SPELL_FAILED_ITEM_GONE;
+ case 44: return SPELL_FAILED_ITEM_NOT_FOUND;
+ case 45: return SPELL_FAILED_ITEM_NOT_READY;
+ case 46: return SPELL_FAILED_LEVEL_REQUIREMENT;
+ case 47: return SPELL_FAILED_LINE_OF_SIGHT;
+ case 48: return SPELL_FAILED_LOWLEVEL;
+ case 49: return SPELL_FAILED_LOW_CASTLEVEL;
+ case 50: return SPELL_FAILED_MAINHAND_EMPTY;
+ case 51: return SPELL_FAILED_MOVING;
+ case 52: return SPELL_FAILED_NEED_AMMO;
+ case 53: return SPELL_FAILED_NEED_AMMO_POUCH;
+ case 54: return SPELL_FAILED_NEED_EXOTIC_AMMO;
+ case 55: return SPELL_FAILED_NEED_MORE_ITEMS;
+ case 56: return SPELL_FAILED_NOPATH;
+ case 57: return SPELL_FAILED_NOT_BEHIND;
+ case 58: return SPELL_FAILED_NOT_FISHABLE;
+ case 59: return SPELL_FAILED_NOT_FLYING;
+ case 60: return SPELL_FAILED_NOT_HERE;
+ case 61: return SPELL_FAILED_NOT_INFRONT;
+ case 62: return SPELL_FAILED_NOT_IN_CONTROL;
+ case 63: return SPELL_FAILED_NOT_KNOWN;
+ case 64: return SPELL_FAILED_NOT_MOUNTED;
+ case 65: return SPELL_FAILED_NOT_ON_TAXI;
+ case 66: return SPELL_FAILED_NOT_ON_TRANSPORT;
+ case 67: return SPELL_FAILED_NOT_READY;
+ case 68: return SPELL_FAILED_NOT_SHAPESHIFT;
+ case 69: return SPELL_FAILED_NOT_STANDING;
+ case 70: return SPELL_FAILED_NOT_TRADEABLE;
+ case 71: return SPELL_FAILED_NOT_TRADING;
+ case 72: return SPELL_FAILED_NOT_UNSHEATHED;
+ case 73: return SPELL_FAILED_NOT_WHILE_GHOST;
+ case 74: return SPELL_FAILED_NOT_WHILE_LOOTING;
+ case 75: return SPELL_FAILED_NO_AMMO;
+ case 76: return SPELL_FAILED_NO_CHARGES_REMAIN;
+ case 77: return SPELL_FAILED_NO_CHAMPION;
+ case 78: return SPELL_FAILED_NO_COMBO_POINTS;
+ case 79: return SPELL_FAILED_NO_DUELING;
+ case 80: return SPELL_FAILED_NO_ENDURANCE;
+ case 81: return SPELL_FAILED_NO_FISH;
+ case 82: return SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED;
+ case 83: return SPELL_FAILED_NO_MOUNTS_ALLOWED;
+ case 84: return SPELL_FAILED_NO_PET;
+ case 85: return SPELL_FAILED_NO_POWER;
+ case 86: return SPELL_FAILED_NOTHING_TO_DISPEL;
+ case 87: return SPELL_FAILED_NOTHING_TO_STEAL;
+ case 88: return SPELL_FAILED_ONLY_ABOVEWATER;
+ case 89: return SPELL_FAILED_ONLY_DAYTIME;
+ case 90: return SPELL_FAILED_ONLY_INDOORS;
+ case 91: return SPELL_FAILED_ONLY_MOUNTED;
+ case 92: return SPELL_FAILED_ONLY_NIGHTTIME;
+ case 93: return SPELL_FAILED_ONLY_OUTDOORS;
+ case 94: return SPELL_FAILED_ONLY_SHAPESHIFT;
+ case 95: return SPELL_FAILED_ONLY_STEALTHED;
+ case 96: return SPELL_FAILED_ONLY_UNDERWATER;
+ case 97: return SPELL_FAILED_OUT_OF_RANGE;
+ case 98: return SPELL_FAILED_PACIFIED;
+ case 99: return SPELL_FAILED_POSSESSED;
+ case 100: return SPELL_FAILED_REAGENTS;
+ case 101: return SPELL_FAILED_REQUIRES_AREA;
+ case 102: return SPELL_FAILED_REQUIRES_SPELL_FOCUS;
+ case 103: return SPELL_FAILED_ROOTED;
+ case 104: return SPELL_FAILED_SILENCED;
+ case 105: return SPELL_FAILED_SPELL_IN_PROGRESS;
+ case 106: return SPELL_FAILED_SPELL_LEARNED;
+ case 107: return SPELL_FAILED_SPELL_UNAVAILABLE;
+ case 108: return SPELL_FAILED_STUNNED;
+ case 109: return SPELL_FAILED_TARGETS_DEAD;
+ case 110: return SPELL_FAILED_TARGET_AFFECTING_COMBAT;
+ case 111: return SPELL_FAILED_TARGET_AURASTATE;
+ case 112: return SPELL_FAILED_TARGET_DUELING;
+ case 113: return SPELL_FAILED_TARGET_ENEMY;
+ case 114: return SPELL_FAILED_TARGET_ENRAGED;
+ case 115: return SPELL_FAILED_TARGET_FRIENDLY;
+ case 116: return SPELL_FAILED_TARGET_IN_COMBAT;
+ case 117: return SPELL_FAILED_TARGET_IS_PLAYER;
+ case 118: return SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED;
+ case 119: return SPELL_FAILED_TARGET_NOT_DEAD;
+ case 120: return SPELL_FAILED_TARGET_NOT_IN_PARTY;
+ case 121: return SPELL_FAILED_TARGET_NOT_LOOTED;
+ case 122: return SPELL_FAILED_TARGET_NOT_PLAYER;
+ case 123: return SPELL_FAILED_TARGET_NO_POCKETS;
+ case 124: return SPELL_FAILED_TARGET_NO_WEAPONS;
+ case 125: return SPELL_FAILED_TARGET_NO_RANGED_WEAPONS;
+ case 126: return SPELL_FAILED_TARGET_UNSKINNABLE;
+ case 127: return SPELL_FAILED_THIRST_SATIATED;
+ case 128: return SPELL_FAILED_TOO_CLOSE;
+ case 129: return SPELL_FAILED_TOO_MANY_OF_ITEM;
+ case 130: return SPELL_FAILED_TOTEM_CATEGORY;
+ case 131: return SPELL_FAILED_TOTEMS;
+ case 132: return SPELL_FAILED_TRY_AGAIN;
+ case 133: return SPELL_FAILED_UNIT_NOT_BEHIND;
+ case 134: return SPELL_FAILED_UNIT_NOT_INFRONT;
+ case 135: return SPELL_FAILED_WRONG_PET_FOOD;
+ case 136: return SPELL_FAILED_NOT_WHILE_FATIGUED;
+ case 137: return SPELL_FAILED_TARGET_NOT_IN_INSTANCE;
+ case 138: return SPELL_FAILED_NOT_WHILE_TRADING;
+ case 139: return SPELL_FAILED_TARGET_NOT_IN_RAID;
+ case 140: return SPELL_FAILED_TARGET_FREEFORALL;
+ case 141: return SPELL_FAILED_NO_EDIBLE_CORPSES;
+ case 142: return SPELL_FAILED_ONLY_BATTLEGROUNDS;
+ case 143: return SPELL_FAILED_TARGET_NOT_GHOST;
+ case 144: return SPELL_FAILED_TRANSFORM_UNUSABLE;
+ case 145: return SPELL_FAILED_WRONG_WEATHER;
+ case 146: return SPELL_FAILED_DAMAGE_IMMUNE;
+ case 147: return SPELL_FAILED_PREVENTED_BY_MECHANIC;
+ case 148: return SPELL_FAILED_PLAY_TIME;
+ case 149: return SPELL_FAILED_REPUTATION;
+ case 150: return SPELL_FAILED_MIN_SKILL;
+ case 151: return SPELL_FAILED_NOT_IN_ARENA;
+ case 152: return SPELL_FAILED_NOT_ON_SHAPESHIFT;
+ case 153: return SPELL_FAILED_NOT_ON_STEALTHED;
+ case 154: return SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE;
+ case 155: return SPELL_FAILED_NOT_ON_MOUNTED;
+ case 156: return SPELL_FAILED_TOO_SHALLOW;
+ case 157: return SPELL_FAILED_TARGET_NOT_IN_SANCTUARY;
+ case 158: return SPELL_FAILED_TARGET_IS_TRIVIAL;
+ case 159: return SPELL_FAILED_BM_OR_INVISGOD;
+ case 160: return SPELL_FAILED_EXPERT_RIDING_REQUIREMENT;
+ case 161: return SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT;
+ case 162: return SPELL_FAILED_NOT_IDLE;
+ case 163: return SPELL_FAILED_NOT_INACTIVE;
+ case 164: return SPELL_FAILED_PARTIAL_PLAYTIME;
+ case 165: return SPELL_FAILED_NO_PLAYTIME;
+ case 166: return SPELL_FAILED_NOT_IN_BATTLEGROUND;
+ case 167: return SPELL_FAILED_NOT_IN_RAID_INSTANCE;
+ case 168: return SPELL_FAILED_ONLY_IN_ARENA;
+ case 169: return SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE;
+ case 170: return SPELL_FAILED_ON_USE_ENCHANT;
+ case 171: return SPELL_FAILED_NOT_ON_GROUND;
+ case 172: return SPELL_FAILED_CUSTOM_ERROR;
+ case 173: return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
+ case 174: return SPELL_FAILED_TOO_MANY_SOCKETS;
+ case 175: return SPELL_FAILED_INVALID_GLYPH;
+ case 176: return SPELL_FAILED_UNIQUE_GLYPH;
+ case 177: return SPELL_FAILED_GLYPH_SOCKET_LOCKED;
+ case 178: return SPELL_FAILED_NO_VALID_TARGETS;
+ case 179: return SPELL_FAILED_ITEM_AT_MAX_CHARGES;
+ case 180: return SPELL_FAILED_NOT_IN_BARBERSHOP;
+ case 181: return SPELL_FAILED_FISHING_TOO_LOW;
+ case 182: return SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW;
+ case 183: return SPELL_FAILED_SUMMON_PENDING;
+ case 184: return SPELL_FAILED_MAX_SOCKETS;
+ case 185: return SPELL_FAILED_PET_CAN_RENAME;
+ case 186: return SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED;
+ case 187: return SPELL_FAILED_UNKNOWN;
+ case 188: return SPELL_CAST_OK;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+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_OPEN: return 8;
+ case SPELL_FAILED_AURA_BOUNCED: return 9;
+ case SPELL_FAILED_AUTOTRACK_INTERRUPTED: return 10;
+ case SPELL_FAILED_BAD_IMPLICIT_TARGETS: return 11;
+ case SPELL_FAILED_BAD_TARGETS: return 12;
+ case SPELL_FAILED_CANT_BE_CHARMED: return 13;
+ case SPELL_FAILED_CANT_BE_DISENCHANTED: return 14;
+ case SPELL_FAILED_CANT_BE_DISENCHANTED_SKILL: return 15;
+ case SPELL_FAILED_CANT_BE_MILLED: return 16;
+ case SPELL_FAILED_CANT_BE_PROSPECTED: return 17;
+ case SPELL_FAILED_CANT_CAST_ON_TAPPED: return 18;
+ case SPELL_FAILED_CANT_DUEL_WHILE_INVISIBLE: return 19;
+ case SPELL_FAILED_CANT_DUEL_WHILE_STEALTHED: return 20;
+ case SPELL_FAILED_CANT_STEALTH: return 21;
+ case SPELL_FAILED_CASTER_AURASTATE: return 22;
+ case SPELL_FAILED_CASTER_DEAD: return 23;
+ case SPELL_FAILED_CHARMED: return 24;
+ case SPELL_FAILED_CHEST_IN_USE: return 25;
+ case SPELL_FAILED_CONFUSED: return 26;
+ case SPELL_FAILED_DONT_REPORT: return 27;
+ case SPELL_FAILED_EQUIPPED_ITEM: return 28;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS: return 29;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_MAINHAND: return 30;
+ case SPELL_FAILED_EQUIPPED_ITEM_CLASS_OFFHAND: return 31;
+ case SPELL_FAILED_ERROR: return 32;
+ case SPELL_FAILED_FIZZLE: return 33;
+ case SPELL_FAILED_FLEEING: return 34;
+ case SPELL_FAILED_FOOD_LOWLEVEL: return 35;
+ case SPELL_FAILED_HIGHLEVEL: return 36;
+ case SPELL_FAILED_HUNGER_SATIATED: return 37;
+ case SPELL_FAILED_IMMUNE: return 38;
+ case SPELL_FAILED_INCORRECT_AREA: return 39;
+ case SPELL_FAILED_INTERRUPTED: return 40;
+ case SPELL_FAILED_INTERRUPTED_COMBAT: return 41;
+ case SPELL_FAILED_ITEM_ALREADY_ENCHANTED: return 42;
+ case SPELL_FAILED_ITEM_GONE: return 43;
+ case SPELL_FAILED_ITEM_NOT_FOUND: return 44;
+ case SPELL_FAILED_ITEM_NOT_READY: return 45;
+ case SPELL_FAILED_LEVEL_REQUIREMENT: return 46;
+ case SPELL_FAILED_LINE_OF_SIGHT: return 47;
+ case SPELL_FAILED_LOWLEVEL: return 48;
+ case SPELL_FAILED_LOW_CASTLEVEL: return 49;
+ case SPELL_FAILED_MAINHAND_EMPTY: return 50;
+ case SPELL_FAILED_MOVING: return 51;
+ case SPELL_FAILED_NEED_AMMO: return 52;
+ case SPELL_FAILED_NEED_AMMO_POUCH: return 53;
+ case SPELL_FAILED_NEED_EXOTIC_AMMO: return 54;
+ case SPELL_FAILED_NEED_MORE_ITEMS: return 55;
+ case SPELL_FAILED_NOPATH: return 56;
+ case SPELL_FAILED_NOT_BEHIND: return 57;
+ case SPELL_FAILED_NOT_FISHABLE: return 58;
+ case SPELL_FAILED_NOT_FLYING: return 59;
+ case SPELL_FAILED_NOT_HERE: return 60;
+ case SPELL_FAILED_NOT_INFRONT: return 61;
+ case SPELL_FAILED_NOT_IN_CONTROL: return 62;
+ case SPELL_FAILED_NOT_KNOWN: return 63;
+ case SPELL_FAILED_NOT_MOUNTED: return 64;
+ case SPELL_FAILED_NOT_ON_TAXI: return 65;
+ case SPELL_FAILED_NOT_ON_TRANSPORT: return 66;
+ case SPELL_FAILED_NOT_READY: return 67;
+ case SPELL_FAILED_NOT_SHAPESHIFT: return 68;
+ case SPELL_FAILED_NOT_STANDING: return 69;
+ case SPELL_FAILED_NOT_TRADEABLE: return 70;
+ case SPELL_FAILED_NOT_TRADING: return 71;
+ case SPELL_FAILED_NOT_UNSHEATHED: return 72;
+ case SPELL_FAILED_NOT_WHILE_GHOST: return 73;
+ case SPELL_FAILED_NOT_WHILE_LOOTING: return 74;
+ case SPELL_FAILED_NO_AMMO: return 75;
+ case SPELL_FAILED_NO_CHARGES_REMAIN: return 76;
+ case SPELL_FAILED_NO_CHAMPION: return 77;
+ case SPELL_FAILED_NO_COMBO_POINTS: return 78;
+ case SPELL_FAILED_NO_DUELING: return 79;
+ case SPELL_FAILED_NO_ENDURANCE: return 80;
+ case SPELL_FAILED_NO_FISH: return 81;
+ case SPELL_FAILED_NO_ITEMS_WHILE_SHAPESHIFTED: return 82;
+ case SPELL_FAILED_NO_MOUNTS_ALLOWED: return 83;
+ case SPELL_FAILED_NO_PET: return 84;
+ case SPELL_FAILED_NO_POWER: return 85;
+ case SPELL_FAILED_NOTHING_TO_DISPEL: return 86;
+ case SPELL_FAILED_NOTHING_TO_STEAL: return 87;
+ case SPELL_FAILED_ONLY_ABOVEWATER: return 88;
+ case SPELL_FAILED_ONLY_DAYTIME: return 89;
+ case SPELL_FAILED_ONLY_INDOORS: return 90;
+ case SPELL_FAILED_ONLY_MOUNTED: return 91;
+ case SPELL_FAILED_ONLY_NIGHTTIME: return 92;
+ case SPELL_FAILED_ONLY_OUTDOORS: return 93;
+ case SPELL_FAILED_ONLY_SHAPESHIFT: return 94;
+ case SPELL_FAILED_ONLY_STEALTHED: return 95;
+ case SPELL_FAILED_ONLY_UNDERWATER: return 96;
+ case SPELL_FAILED_OUT_OF_RANGE: return 97;
+ case SPELL_FAILED_PACIFIED: return 98;
+ case SPELL_FAILED_POSSESSED: return 99;
+ case SPELL_FAILED_REAGENTS: return 100;
+ case SPELL_FAILED_REQUIRES_AREA: return 101;
+ case SPELL_FAILED_REQUIRES_SPELL_FOCUS: return 102;
+ case SPELL_FAILED_ROOTED: return 103;
+ case SPELL_FAILED_SILENCED: return 104;
+ case SPELL_FAILED_SPELL_IN_PROGRESS: return 105;
+ case SPELL_FAILED_SPELL_LEARNED: return 106;
+ case SPELL_FAILED_SPELL_UNAVAILABLE: return 107;
+ case SPELL_FAILED_STUNNED: return 108;
+ case SPELL_FAILED_TARGETS_DEAD: return 109;
+ case SPELL_FAILED_TARGET_AFFECTING_COMBAT: return 110;
+ case SPELL_FAILED_TARGET_AURASTATE: return 111;
+ case SPELL_FAILED_TARGET_DUELING: return 112;
+ case SPELL_FAILED_TARGET_ENEMY: return 113;
+ case SPELL_FAILED_TARGET_ENRAGED: return 114;
+ case SPELL_FAILED_TARGET_FRIENDLY: return 115;
+ case SPELL_FAILED_TARGET_IN_COMBAT: return 116;
+ case SPELL_FAILED_TARGET_IS_PLAYER: return 117;
+ case SPELL_FAILED_TARGET_IS_PLAYER_CONTROLLED: return 118;
+ case SPELL_FAILED_TARGET_NOT_DEAD: return 119;
+ case SPELL_FAILED_TARGET_NOT_IN_PARTY: return 120;
+ case SPELL_FAILED_TARGET_NOT_LOOTED: return 121;
+ case SPELL_FAILED_TARGET_NOT_PLAYER: return 122;
+ case SPELL_FAILED_TARGET_NO_POCKETS: return 123;
+ case SPELL_FAILED_TARGET_NO_WEAPONS: return 124;
+ case SPELL_FAILED_TARGET_NO_RANGED_WEAPONS: return 125;
+ case SPELL_FAILED_TARGET_UNSKINNABLE: return 126;
+ case SPELL_FAILED_THIRST_SATIATED: return 127;
+ case SPELL_FAILED_TOO_CLOSE: return 128;
+ case SPELL_FAILED_TOO_MANY_OF_ITEM: return 129;
+ case SPELL_FAILED_TOTEM_CATEGORY: return 130;
+ case SPELL_FAILED_TOTEMS: return 131;
+ case SPELL_FAILED_TRY_AGAIN: return 132;
+ case SPELL_FAILED_UNIT_NOT_BEHIND: return 133;
+ case SPELL_FAILED_UNIT_NOT_INFRONT: return 134;
+ case SPELL_FAILED_WRONG_PET_FOOD: return 135;
+ case SPELL_FAILED_NOT_WHILE_FATIGUED: return 136;
+ case SPELL_FAILED_TARGET_NOT_IN_INSTANCE: return 137;
+ case SPELL_FAILED_NOT_WHILE_TRADING: return 138;
+ case SPELL_FAILED_TARGET_NOT_IN_RAID: return 139;
+ case SPELL_FAILED_TARGET_FREEFORALL: return 140;
+ case SPELL_FAILED_NO_EDIBLE_CORPSES: return 141;
+ case SPELL_FAILED_ONLY_BATTLEGROUNDS: return 142;
+ case SPELL_FAILED_TARGET_NOT_GHOST: return 143;
+ case SPELL_FAILED_TRANSFORM_UNUSABLE: return 144;
+ case SPELL_FAILED_WRONG_WEATHER: return 145;
+ case SPELL_FAILED_DAMAGE_IMMUNE: return 146;
+ case SPELL_FAILED_PREVENTED_BY_MECHANIC: return 147;
+ case SPELL_FAILED_PLAY_TIME: return 148;
+ case SPELL_FAILED_REPUTATION: return 149;
+ case SPELL_FAILED_MIN_SKILL: return 150;
+ case SPELL_FAILED_NOT_IN_ARENA: return 151;
+ case SPELL_FAILED_NOT_ON_SHAPESHIFT: return 152;
+ case SPELL_FAILED_NOT_ON_STEALTHED: return 153;
+ case SPELL_FAILED_NOT_ON_DAMAGE_IMMUNE: return 154;
+ case SPELL_FAILED_NOT_ON_MOUNTED: return 155;
+ case SPELL_FAILED_TOO_SHALLOW: return 156;
+ case SPELL_FAILED_TARGET_NOT_IN_SANCTUARY: return 157;
+ case SPELL_FAILED_TARGET_IS_TRIVIAL: return 158;
+ case SPELL_FAILED_BM_OR_INVISGOD: return 159;
+ case SPELL_FAILED_EXPERT_RIDING_REQUIREMENT: return 160;
+ case SPELL_FAILED_ARTISAN_RIDING_REQUIREMENT: return 161;
+ case SPELL_FAILED_NOT_IDLE: return 162;
+ case SPELL_FAILED_NOT_INACTIVE: return 163;
+ case SPELL_FAILED_PARTIAL_PLAYTIME: return 164;
+ case SPELL_FAILED_NO_PLAYTIME: return 165;
+ case SPELL_FAILED_NOT_IN_BATTLEGROUND: return 166;
+ case SPELL_FAILED_NOT_IN_RAID_INSTANCE: return 167;
+ case SPELL_FAILED_ONLY_IN_ARENA: return 168;
+ case SPELL_FAILED_TARGET_LOCKED_TO_RAID_INSTANCE: return 169;
+ case SPELL_FAILED_ON_USE_ENCHANT: return 170;
+ case SPELL_FAILED_NOT_ON_GROUND: return 171;
+ case SPELL_FAILED_CUSTOM_ERROR: return 172;
+ case SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW: return 173;
+ case SPELL_FAILED_TOO_MANY_SOCKETS: return 174;
+ case SPELL_FAILED_INVALID_GLYPH: return 175;
+ case SPELL_FAILED_UNIQUE_GLYPH: return 176;
+ case SPELL_FAILED_GLYPH_SOCKET_LOCKED: return 177;
+ case SPELL_FAILED_NO_VALID_TARGETS: return 178;
+ case SPELL_FAILED_ITEM_AT_MAX_CHARGES: return 179;
+ case SPELL_FAILED_NOT_IN_BARBERSHOP: return 180;
+ case SPELL_FAILED_FISHING_TOO_LOW: return 181;
+ case SPELL_FAILED_ITEM_ENCHANT_TRADE_WINDOW: return 182;
+ case SPELL_FAILED_SUMMON_PENDING: return 183;
+ case SPELL_FAILED_MAX_SOCKETS: return 184;
+ case SPELL_FAILED_PET_CAN_RENAME: return 185;
+ case SPELL_FAILED_TARGET_CANNOT_BE_RESURRECTED: return 186;
+ case SPELL_FAILED_UNKNOWN: return 187;
+ case SPELL_CAST_OK: return 188;
+ default: throw std::out_of_range("value");
+ }
+}
+
+/*********************************************************************\
+|* data for enum 'AuraStateType' in 'SharedDefines.h' auto-generated *|
+\*********************************************************************/
+template <>
+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_DEFENSE: return { "AURA_STATE_DEFENSE", "AURA_STATE_DEFENSE", "C |" };
+ case AURA_STATE_HEALTHLESS_20_PERCENT: return { "AURA_STATE_HEALTHLESS_20_PERCENT", "AURA_STATE_HEALTHLESS_20_PERCENT", "CcT |" };
+ case AURA_STATE_BERSERKING: return { "AURA_STATE_BERSERKING", "AURA_STATE_BERSERKING", "C T |" };
+ case AURA_STATE_FROZEN: return { "AURA_STATE_FROZEN", "AURA_STATE_FROZEN", "c t| frozen target" };
+ case AURA_STATE_JUDGEMENT: return { "AURA_STATE_JUDGEMENT", "AURA_STATE_JUDGEMENT", "C |" };
+ case AURA_STATE_HUNTER_PARRY: return { "AURA_STATE_HUNTER_PARRY", "AURA_STATE_HUNTER_PARRY", "C |" };
+ case AURA_STATE_WARRIOR_VICTORY_RUSH: return { "AURA_STATE_WARRIOR_VICTORY_RUSH", "AURA_STATE_WARRIOR_VICTORY_RUSH", "C | warrior victory rush" };
+ case AURA_STATE_FAERIE_FIRE: return { "AURA_STATE_FAERIE_FIRE", "AURA_STATE_FAERIE_FIRE", "c t|" };
+ case AURA_STATE_HEALTHLESS_35_PERCENT: return { "AURA_STATE_HEALTHLESS_35_PERCENT", "AURA_STATE_HEALTHLESS_35_PERCENT", "C T |" };
+ case AURA_STATE_CONFLAGRATE: return { "AURA_STATE_CONFLAGRATE", "AURA_STATE_CONFLAGRATE", "T |" };
+ case AURA_STATE_SWIFTMEND: return { "AURA_STATE_SWIFTMEND", "AURA_STATE_SWIFTMEND", "T |" };
+ case AURA_STATE_DEADLY_POISON: return { "AURA_STATE_DEADLY_POISON", "AURA_STATE_DEADLY_POISON", "T |" };
+ case AURA_STATE_ENRAGE: return { "AURA_STATE_ENRAGE", "AURA_STATE_ENRAGE", "C |" };
+ case AURA_STATE_BLEEDING: return { "AURA_STATE_BLEEDING", "AURA_STATE_BLEEDING", "T|" };
+ case AURA_STATE_UNKNOWN19: return { "AURA_STATE_UNKNOWN19", "AURA_STATE_UNKNOWN19", "|" };
+ case AURA_STATE_UNKNOWN22: return { "AURA_STATE_UNKNOWN22", "AURA_STATE_UNKNOWN22", "C t| varius spells (63884, 50240)" };
+ case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return { "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "AURA_STATE_HEALTH_ABOVE_75_PERCENT", "C |" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<AuraStateType>::Count() { return 18; }
+
+template <>
+TC_API_EXPORT AuraStateType EnumUtils<AuraStateType>::FromIndex(size_t index)
+{
+ switch (index)
+ {
+ case 0: return AURA_STATE_NONE;
+ case 1: return AURA_STATE_DEFENSE;
+ case 2: return AURA_STATE_HEALTHLESS_20_PERCENT;
+ case 3: return AURA_STATE_BERSERKING;
+ case 4: return AURA_STATE_FROZEN;
+ case 5: return AURA_STATE_JUDGEMENT;
+ case 6: return AURA_STATE_HUNTER_PARRY;
+ case 7: return AURA_STATE_WARRIOR_VICTORY_RUSH;
+ case 8: return AURA_STATE_FAERIE_FIRE;
+ case 9: return AURA_STATE_HEALTHLESS_35_PERCENT;
+ case 10: return AURA_STATE_CONFLAGRATE;
+ case 11: return AURA_STATE_SWIFTMEND;
+ case 12: return AURA_STATE_DEADLY_POISON;
+ case 13: return AURA_STATE_ENRAGE;
+ case 14: return AURA_STATE_BLEEDING;
+ case 15: return AURA_STATE_UNKNOWN19;
+ case 16: return AURA_STATE_UNKNOWN22;
+ case 17: return AURA_STATE_HEALTH_ABOVE_75_PERCENT;
+ default: throw std::out_of_range("index");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<AuraStateType>::ToIndex(AuraStateType value)
+{
+ switch (value)
+ {
+ case AURA_STATE_NONE: return 0;
+ case AURA_STATE_DEFENSE: return 1;
+ case AURA_STATE_HEALTHLESS_20_PERCENT: return 2;
+ case AURA_STATE_BERSERKING: return 3;
+ case AURA_STATE_FROZEN: return 4;
+ case AURA_STATE_JUDGEMENT: return 5;
+ case AURA_STATE_HUNTER_PARRY: return 6;
+ case AURA_STATE_WARRIOR_VICTORY_RUSH: return 7;
+ case AURA_STATE_FAERIE_FIRE: return 8;
+ case AURA_STATE_HEALTHLESS_35_PERCENT: return 9;
+ case AURA_STATE_CONFLAGRATE: return 10;
+ case AURA_STATE_SWIFTMEND: return 11;
+ case AURA_STATE_DEADLY_POISON: return 12;
+ case AURA_STATE_ENRAGE: return 13;
+ case AURA_STATE_BLEEDING: return 14;
+ case AURA_STATE_UNKNOWN19: return 15;
+ case AURA_STATE_UNKNOWN22: return 16;
+ case AURA_STATE_HEALTH_ABOVE_75_PERCENT: return 17;
+ default: throw std::out_of_range("value");
+ }
+}
+
/*****************************************************************\
|* data for enum 'Mechanics' in 'SharedDefines.h' auto-generated *|
\*****************************************************************/
@@ -2114,6 +2801,198 @@ 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", "-1" };
+ 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_BATTLEGROUND: return { "CHAT_MSG_BATTLEGROUND", "CHAT_MSG_BATTLEGROUND", "" };
+ case CHAT_MSG_BATTLEGROUND_LEADER: return { "CHAT_MSG_BATTLEGROUND_LEADER", "CHAT_MSG_BATTLEGROUND_LEADER", "" };
+ 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", "" };
+ default: throw std::out_of_range("value");
+ }
+}
+
+template <>
+TC_API_EXPORT size_t EnumUtils<ChatMsg>::Count() { return 53; }
+
+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_BATTLEGROUND;
+ case 46: return CHAT_MSG_BATTLEGROUND_LEADER;
+ case 47: return CHAT_MSG_RESTRICTED;
+ case 48: return CHAT_MSG_BATTLENET;
+ case 49: return CHAT_MSG_ACHIEVEMENT;
+ case 50: return CHAT_MSG_GUILD_ACHIEVEMENT;
+ case 51: return CHAT_MSG_ARENA_POINTS;
+ case 52: return CHAT_MSG_PARTY_LEADER;
+ 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_BATTLEGROUND: return 45;
+ case CHAT_MSG_BATTLEGROUND_LEADER: return 46;
+ case CHAT_MSG_RESTRICTED: return 47;
+ case CHAT_MSG_BATTLENET: return 48;
+ case CHAT_MSG_ACHIEVEMENT: return 49;
+ case CHAT_MSG_GUILD_ACHIEVEMENT: return 50;
+ case CHAT_MSG_ARENA_POINTS: return 51;
+ case CHAT_MSG_PARTY_LEADER: return 52;
+ default: throw std::out_of_range("value");
+ }
+}
+
/************************************************************************\
|* data for enum 'SpellFamilyNames' in 'SharedDefines.h' auto-generated *|
\************************************************************************/