diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Chat/Channels/Channel.h | 3 | ||||
-rw-r--r-- | src/server/game/Chat/Channels/enuminfo_Channel.cpp | 166 | ||||
-rw-r--r-- | src/server/game/Entities/Item/ItemDefines.h | 17 | ||||
-rw-r--r-- | src/server/game/Entities/Item/enuminfo_ItemDefines.cpp | 436 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.h | 2 | ||||
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 28 | ||||
-rw-r--r-- | src/server/game/Quests/enuminfo_QuestDef.cpp | 166 | ||||
-rw-r--r-- | src/server/scripts/Commands/cs_debug.cpp | 251 | ||||
-rw-r--r-- | src/server/shared/SharedDefines.h | 9 | ||||
-rw-r--r-- | src/server/shared/enuminfo_SharedDefines.cpp | 879 |
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 *| \************************************************************************/ |