diff --git a/src/common/Logging/enuminfo_LogCommon.cpp b/src/common/Logging/enuminfo_LogCommon.cpp index da8cbc449..2e4265563 100644 --- a/src/common/Logging/enuminfo_LogCommon.cpp +++ b/src/common/Logging/enuminfo_LogCommon.cpp @@ -121,4 +121,55 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(AppenderType value) default: throw std::out_of_range("value"); } } + +/*****************************************************************\ +|* data for enum 'AppenderFlags' in 'LogCommon.h' auto-generated *| +\*****************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(AppenderFlags value) +{ + switch (value) + { + case APPENDER_FLAGS_NONE: return { "APPENDER_FLAGS_NONE", "APPENDER_FLAGS_NONE", "" }; + case APPENDER_FLAGS_PREFIX_TIMESTAMP: return { "APPENDER_FLAGS_PREFIX_TIMESTAMP", "APPENDER_FLAGS_PREFIX_TIMESTAMP", "" }; + case APPENDER_FLAGS_PREFIX_LOGLEVEL: return { "APPENDER_FLAGS_PREFIX_LOGLEVEL", "APPENDER_FLAGS_PREFIX_LOGLEVEL", "" }; + case APPENDER_FLAGS_PREFIX_LOGFILTERTYPE: return { "APPENDER_FLAGS_PREFIX_LOGFILTERTYPE", "APPENDER_FLAGS_PREFIX_LOGFILTERTYPE", "" }; + case APPENDER_FLAGS_USE_TIMESTAMP: return { "APPENDER_FLAGS_USE_TIMESTAMP", "APPENDER_FLAGS_USE_TIMESTAMP", "" }; + case APPENDER_FLAGS_MAKE_FILE_BACKUP: return { "APPENDER_FLAGS_MAKE_FILE_BACKUP", "APPENDER_FLAGS_MAKE_FILE_BACKUP", "" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 6; } + +template <> +AC_API_EXPORT AppenderFlags EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return APPENDER_FLAGS_NONE; + case 1: return APPENDER_FLAGS_PREFIX_TIMESTAMP; + case 2: return APPENDER_FLAGS_PREFIX_LOGLEVEL; + case 3: return APPENDER_FLAGS_PREFIX_LOGFILTERTYPE; + case 4: return APPENDER_FLAGS_USE_TIMESTAMP; + case 5: return APPENDER_FLAGS_MAKE_FILE_BACKUP; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(AppenderFlags value) +{ + switch (value) + { + case APPENDER_FLAGS_NONE: return 0; + case APPENDER_FLAGS_PREFIX_TIMESTAMP: return 1; + case APPENDER_FLAGS_PREFIX_LOGLEVEL: return 2; + case APPENDER_FLAGS_PREFIX_LOGFILTERTYPE: return 3; + case APPENDER_FLAGS_USE_TIMESTAMP: return 4; + case APPENDER_FLAGS_MAKE_FILE_BACKUP: return 5; + default: throw std::out_of_range("value"); + } +} } diff --git a/src/common/Utilities/SmartEnum.h b/src/common/Utilities/SmartEnum.h index 880f72c51..e6e0be257 100644 --- a/src/common/Utilities/SmartEnum.h +++ b/src/common/Utilities/SmartEnum.h @@ -15,8 +15,8 @@ * with this program. If not, see . */ -#ifndef TRINITY_SMARTENUM_H -#define TRINITY_SMARTENUM_H +#ifndef AC_SMARTENUM_H +#define AC_SMARTENUM_H #include "IteratorPair.h" #include @@ -130,4 +130,4 @@ public: static char const* ToDescription(Enum value) { return ToString(value).Description; } }; -#endif +#endif // AC_SMART_ENUM_H diff --git a/src/server/game/AI/CreatureAI.h b/src/server/game/AI/CreatureAI.h index 993da42e2..f21ae8b83 100644 --- a/src/server/game/AI/CreatureAI.h +++ b/src/server/game/AI/CreatureAI.h @@ -82,7 +82,7 @@ protected: Creature* DoSummon(uint32 entry, WorldObject* obj, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); Creature* DoSummonFlyer(uint32 entry, WorldObject* obj, float flightZ, float radius = 5.0f, uint32 despawnTime = 30000, TempSummonType summonType = TEMPSUMMON_CORPSE_TIMED_DESPAWN); public: - // EnumUtils: DESCRIBE THIS + // EnumUtils: DESCRIBE THIS (in CreatureAI::) enum EvadeReason { EVADE_REASON_NO_HOSTILES, // the creature's threat list is empty diff --git a/src/server/game/AI/enuminfo_CreatureAI.cpp b/src/server/game/AI/enuminfo_CreatureAI.cpp new file mode 100644 index 000000000..3cb4c7e15 --- /dev/null +++ b/src/server/game/AI/enuminfo_CreatureAI.cpp @@ -0,0 +1,70 @@ +/* + * This file is part of the AzerothCore 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 Affero General Public License as published by the + * Free Software Foundation; either version 3 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 Affero 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 . + */ + +#include "CreatureAI.h" +#include "Define.h" +#include "SmartEnum.h" +#include + +namespace Acore::Impl::EnumUtilsImpl +{ + +/****************************************************************************\ +|* data for enum 'CreatureAI::EvadeReason' in 'CreatureAI.h' auto-generated *| +\****************************************************************************/ +template <> +AC_API_EXPORT EnumText EnumUtils::ToString(CreatureAI::EvadeReason value) +{ + switch (value) + { + case CreatureAI::EVADE_REASON_NO_HOSTILES: return { "EVADE_REASON_NO_HOSTILES", "EVADE_REASON_NO_HOSTILES", "the creature's threat list is empty" }; + case CreatureAI::EVADE_REASON_BOUNDARY: return { "EVADE_REASON_BOUNDARY", "EVADE_REASON_BOUNDARY", "the creature has moved outside its evade boundary" }; + case CreatureAI::EVADE_REASON_SEQUENCE_BREAK: return { "EVADE_REASON_SEQUENCE_BREAK", "EVADE_REASON_SEQUENCE_BREAK", "this is a boss and the pre-requisite encounters for engaging it are not defeated yet" }; + case CreatureAI::EVADE_REASON_NO_PATH: return { "EVADE_REASON_NO_PATH", "EVADE_REASON_NO_PATH", "the creature was unable to reach its target for over 5 seconds" }; + default: throw std::out_of_range("value"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::Count() { return 4; } + +template <> +AC_API_EXPORT CreatureAI::EvadeReason EnumUtils::FromIndex(size_t index) +{ + switch (index) + { + case 0: return CreatureAI::EVADE_REASON_NO_HOSTILES; + case 1: return CreatureAI::EVADE_REASON_BOUNDARY; + case 2: return CreatureAI::EVADE_REASON_SEQUENCE_BREAK; + case 3: return CreatureAI::EVADE_REASON_NO_PATH; + default: throw std::out_of_range("index"); + } +} + +template <> +AC_API_EXPORT size_t EnumUtils::ToIndex(CreatureAI::EvadeReason value) +{ + switch (value) + { + case CreatureAI::EVADE_REASON_NO_HOSTILES: return 0; + case CreatureAI::EVADE_REASON_BOUNDARY: return 1; + case CreatureAI::EVADE_REASON_SEQUENCE_BREAK: return 2; + case CreatureAI::EVADE_REASON_NO_PATH: return 3; + default: throw std::out_of_range("value"); + } +} +} diff --git a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp index 85b665f4d..80a6de93a 100644 --- a/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp +++ b/src/server/game/Entities/Creature/enuminfo_CreatureData.cpp @@ -42,7 +42,7 @@ AC_API_EXPORT EnumText EnumUtils::ToString(CreatureFlagsExtr case CREATURE_FLAG_EXTRA_NO_TAUNT: return { "CREATURE_FLAG_EXTRA_NO_TAUNT", "CREATURE_FLAG_EXTRA_NO_TAUNT", "creature is immune to taunt auras and 'attack me' effects" }; case CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE: return { "CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE", "CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE", "creature won't update movement flags" }; case CREATURE_FLAG_EXTRA_GHOST_VISIBILITY: return { "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "CREATURE_FLAG_EXTRA_GHOST_VISIBILITY", "creature will only be visible to dead players" }; - case CREATURE_FLAG_EXTRA_UNUSED_12: return { "CREATURE_FLAG_EXTRA_UNUSED_12", "CREATURE_FLAG_EXTRA_UNUSED_12", "TODO: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks)" }; + case CREATURE_FLAG_EXTRA_UNUSED_12: return { "CREATURE_FLAG_EXTRA_UNUSED_12", "CREATURE_FLAG_EXTRA_UNUSED_12", "/ @todo: Implement CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK (creature will use offhand attacks)" }; case CREATURE_FLAG_EXTRA_NO_SELL_VENDOR: return { "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "CREATURE_FLAG_EXTRA_NO_SELL_VENDOR", "players can't sell items to this vendor" }; case CREATURE_FLAG_EXTRA_IGNORE_COMBAT: return { "CREATURE_FLAG_EXTRA_IGNORE_COMBAT", "CREATURE_FLAG_EXTRA_IGNORE_COMBAT", "" }; case CREATURE_FLAG_EXTRA_WORLDEVENT: return { "CREATURE_FLAG_EXTRA_WORLDEVENT", "CREATURE_FLAG_EXTRA_WORLDEVENT", "custom flag for world event creatures (left room for merging)" }; @@ -55,10 +55,10 @@ AC_API_EXPORT EnumText EnumUtils::ToString(CreatureFlagsExtr case CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ: return { "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "CREATURE_FLAG_EXTRA_NO_PLAYER_DAMAGE_REQ", "creature does not need to take player damage for kill credit" }; case CREATURE_FLAG_EXTRA_AVOID_AOE: return { "CREATURE_FLAG_EXTRA_AVOID_AOE", "CREATURE_FLAG_EXTRA_AVOID_AOE", "pussywizard: ignored by aoe attacks (for icc blood prince council npc - Dark Nucleus)" }; case CREATURE_FLAG_EXTRA_NO_DODGE: return { "CREATURE_FLAG_EXTRA_NO_DODGE", "CREATURE_FLAG_EXTRA_NO_DODGE", "xinef: target cannot dodge" }; - case CREATURE_FLAG_EXTRA_MODULE: return { "CREATURE_FLAG_EXTRA_MODULE", "CREATURE_FLAG_EXTRA_MODULE", "Used by module creatures to avoid blizzlike checks." }; - case CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE: return { "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "Creature does not call for assistance on initial aggro", "" }; - case CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS: return { "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "Prevents creature from responding to assistance calls", "" }; - case CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI: return { "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "Creature entry SAI won't be overriden by GUID SAI", "" }; + case CREATURE_FLAG_EXTRA_MODULE: return { "CREATURE_FLAG_EXTRA_MODULE", "CREATURE_FLAG_EXTRA_MODULE", "" }; + case CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE: return { "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "CREATURE_FLAG_EXTRA_DONT_CALL_ASSISTANCE", "Prevent creatures from calling for assistance on initial aggro" }; + case CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS: return { "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "CREATURE_FLAG_EXTRA_IGNORE_ALL_ASSISTANCE_CALLS", "Prevents creature from responding to assistance calls" }; + case CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI: return { "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "CREATURE_FLAG_DONT_OVERRIDE_ENTRY_SAI", "Load both ENTRY and GUID specific SAI" }; case CREATURE_FLAG_EXTRA_DUNGEON_BOSS: return { "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "CREATURE_FLAG_EXTRA_DUNGEON_BOSS", "creature is a dungeon boss (SET DYNAMICALLY, DO NOT ADD IN DB)" }; case CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING: return { "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "CREATURE_FLAG_EXTRA_IGNORE_PATHFINDING", "creature ignore pathfinding" }; case CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK: return { "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "CREATURE_FLAG_EXTRA_IMMUNITY_KNOCKBACK", "creature is immune to knockback effects" }; diff --git a/src/server/game/Entities/Unit/enuminfo_Unit.cpp b/src/server/game/Entities/Unit/enuminfo_Unit.cpp index 8444ba3d4..a3c4938c6 100644 --- a/src/server/game/Entities/Unit/enuminfo_Unit.cpp +++ b/src/server/game/Entities/Unit/enuminfo_Unit.cpp @@ -31,6 +31,7 @@ AC_API_EXPORT EnumText EnumUtils::ToString(UnitFlags value) { switch (value) { + case UNIT_FLAG_NONE: return { "UNIT_FLAG_NONE", "UNIT_FLAG_NONE", "" }; case UNIT_FLAG_SERVER_CONTROLLED: return { "UNIT_FLAG_SERVER_CONTROLLED", "UNIT_FLAG_SERVER_CONTROLLED", "set only when unit movement is controlled by server - by SPLINE/MONSTER_MOVE packets, together with UNIT_FLAG_STUNNED; only set to units controlled by client; client function CGUnit_C::IsClientControlled returns false when set for owner" }; case UNIT_FLAG_NON_ATTACKABLE: return { "UNIT_FLAG_NON_ATTACKABLE", "UNIT_FLAG_NON_ATTACKABLE", "not attackable" }; case UNIT_FLAG_DISABLE_MOVE: return { "UNIT_FLAG_DISABLE_MOVE", "UNIT_FLAG_DISABLE_MOVE", "" }; @@ -68,45 +69,46 @@ AC_API_EXPORT EnumText EnumUtils::ToString(UnitFlags value) } template <> -AC_API_EXPORT size_t EnumUtils::Count() { return 32; } +AC_API_EXPORT size_t EnumUtils::Count() { return 33; } template <> AC_API_EXPORT UnitFlags EnumUtils::FromIndex(size_t index) { switch (index) { - case 0: return UNIT_FLAG_SERVER_CONTROLLED; - case 1: return UNIT_FLAG_NON_ATTACKABLE; - case 2: return UNIT_FLAG_DISABLE_MOVE; - case 3: return UNIT_FLAG_PLAYER_CONTROLLED; - case 4: return UNIT_FLAG_RENAME; - case 5: return UNIT_FLAG_PREPARATION; - case 6: return UNIT_FLAG_UNK_6; - case 7: return UNIT_FLAG_NOT_ATTACKABLE_1; - case 8: return UNIT_FLAG_IMMUNE_TO_PC; - case 9: return UNIT_FLAG_IMMUNE_TO_NPC; - case 10: return UNIT_FLAG_LOOTING; - case 11: return UNIT_FLAG_PET_IN_COMBAT; - case 12: return UNIT_FLAG_PVP; - case 13: return UNIT_FLAG_SILENCED; - case 14: return UNIT_FLAG_CANNOT_SWIM; - case 15: return UNIT_FLAG_SWIMMING; - case 16: return UNIT_FLAG_NON_ATTACKABLE_2; - case 17: return UNIT_FLAG_PACIFIED; - case 18: return UNIT_FLAG_STUNNED; - case 19: return UNIT_FLAG_IN_COMBAT; - case 20: return UNIT_FLAG_TAXI_FLIGHT; - case 21: return UNIT_FLAG_DISARMED; - case 22: return UNIT_FLAG_CONFUSED; - case 23: return UNIT_FLAG_FLEEING; - case 24: return UNIT_FLAG_POSSESSED; - case 25: return UNIT_FLAG_NOT_SELECTABLE; - case 26: return UNIT_FLAG_SKINNABLE; - case 27: return UNIT_FLAG_MOUNT; - case 28: return UNIT_FLAG_UNK_28; - case 29: return UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT; - case 30: return UNIT_FLAG_SHEATHE; - case 31: return UNIT_FLAG_IMMUNE; + case 0: return UNIT_FLAG_NONE; + case 1: return UNIT_FLAG_SERVER_CONTROLLED; + case 2: return UNIT_FLAG_NON_ATTACKABLE; + case 3: return UNIT_FLAG_DISABLE_MOVE; + case 4: return UNIT_FLAG_PLAYER_CONTROLLED; + case 5: return UNIT_FLAG_RENAME; + case 6: return UNIT_FLAG_PREPARATION; + case 7: return UNIT_FLAG_UNK_6; + case 8: return UNIT_FLAG_NOT_ATTACKABLE_1; + case 9: return UNIT_FLAG_IMMUNE_TO_PC; + case 10: return UNIT_FLAG_IMMUNE_TO_NPC; + case 11: return UNIT_FLAG_LOOTING; + case 12: return UNIT_FLAG_PET_IN_COMBAT; + case 13: return UNIT_FLAG_PVP; + case 14: return UNIT_FLAG_SILENCED; + case 15: return UNIT_FLAG_CANNOT_SWIM; + case 16: return UNIT_FLAG_SWIMMING; + case 17: return UNIT_FLAG_NON_ATTACKABLE_2; + case 18: return UNIT_FLAG_PACIFIED; + case 19: return UNIT_FLAG_STUNNED; + case 20: return UNIT_FLAG_IN_COMBAT; + case 21: return UNIT_FLAG_TAXI_FLIGHT; + case 22: return UNIT_FLAG_DISARMED; + case 23: return UNIT_FLAG_CONFUSED; + case 24: return UNIT_FLAG_FLEEING; + case 25: return UNIT_FLAG_POSSESSED; + case 26: return UNIT_FLAG_NOT_SELECTABLE; + case 27: return UNIT_FLAG_SKINNABLE; + case 28: return UNIT_FLAG_MOUNT; + case 29: return UNIT_FLAG_UNK_28; + case 30: return UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT; + case 31: return UNIT_FLAG_SHEATHE; + case 32: return UNIT_FLAG_IMMUNE; default: throw std::out_of_range("index"); } } @@ -116,38 +118,39 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(UnitFlags value) { switch (value) { - case UNIT_FLAG_SERVER_CONTROLLED: return 0; - case UNIT_FLAG_NON_ATTACKABLE: return 1; - case UNIT_FLAG_DISABLE_MOVE: return 2; - case UNIT_FLAG_PLAYER_CONTROLLED: return 3; - case UNIT_FLAG_RENAME: return 4; - case UNIT_FLAG_PREPARATION: return 5; - case UNIT_FLAG_UNK_6: return 6; - case UNIT_FLAG_NOT_ATTACKABLE_1: return 7; - case UNIT_FLAG_IMMUNE_TO_PC: return 8; - case UNIT_FLAG_IMMUNE_TO_NPC: return 9; - case UNIT_FLAG_LOOTING: return 10; - case UNIT_FLAG_PET_IN_COMBAT: return 11; - case UNIT_FLAG_PVP: return 12; - case UNIT_FLAG_SILENCED: return 13; - case UNIT_FLAG_CANNOT_SWIM: return 14; - case UNIT_FLAG_SWIMMING: return 15; - case UNIT_FLAG_NON_ATTACKABLE_2: return 16; - case UNIT_FLAG_PACIFIED: return 17; - case UNIT_FLAG_STUNNED: return 18; - case UNIT_FLAG_IN_COMBAT: return 19; - case UNIT_FLAG_TAXI_FLIGHT: return 20; - case UNIT_FLAG_DISARMED: return 21; - case UNIT_FLAG_CONFUSED: return 22; - case UNIT_FLAG_FLEEING: return 23; - case UNIT_FLAG_POSSESSED: return 24; - case UNIT_FLAG_NOT_SELECTABLE: return 25; - case UNIT_FLAG_SKINNABLE: return 26; - case UNIT_FLAG_MOUNT: return 27; - case UNIT_FLAG_UNK_28: return 28; - case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT: return 29; - case UNIT_FLAG_SHEATHE: return 30; - case UNIT_FLAG_IMMUNE: return 31; + case UNIT_FLAG_NONE: return 0; + case UNIT_FLAG_SERVER_CONTROLLED: return 1; + case UNIT_FLAG_NON_ATTACKABLE: return 2; + case UNIT_FLAG_DISABLE_MOVE: return 3; + case UNIT_FLAG_PLAYER_CONTROLLED: return 4; + case UNIT_FLAG_RENAME: return 5; + case UNIT_FLAG_PREPARATION: return 6; + case UNIT_FLAG_UNK_6: return 7; + case UNIT_FLAG_NOT_ATTACKABLE_1: return 8; + case UNIT_FLAG_IMMUNE_TO_PC: return 9; + case UNIT_FLAG_IMMUNE_TO_NPC: return 10; + case UNIT_FLAG_LOOTING: return 11; + case UNIT_FLAG_PET_IN_COMBAT: return 12; + case UNIT_FLAG_PVP: return 13; + case UNIT_FLAG_SILENCED: return 14; + case UNIT_FLAG_CANNOT_SWIM: return 15; + case UNIT_FLAG_SWIMMING: return 16; + case UNIT_FLAG_NON_ATTACKABLE_2: return 17; + case UNIT_FLAG_PACIFIED: return 18; + case UNIT_FLAG_STUNNED: return 19; + case UNIT_FLAG_IN_COMBAT: return 20; + case UNIT_FLAG_TAXI_FLIGHT: return 21; + case UNIT_FLAG_DISARMED: return 22; + case UNIT_FLAG_CONFUSED: return 23; + case UNIT_FLAG_FLEEING: return 24; + case UNIT_FLAG_POSSESSED: return 25; + case UNIT_FLAG_NOT_SELECTABLE: return 26; + case UNIT_FLAG_SKINNABLE: return 27; + case UNIT_FLAG_MOUNT: return 28; + case UNIT_FLAG_UNK_28: return 29; + case UNIT_FLAG_PREVENT_EMOTES_FROM_CHAT_TEXT: return 30; + case UNIT_FLAG_SHEATHE: return 31; + case UNIT_FLAG_IMMUNE: return 32; default: throw std::out_of_range("value"); } } @@ -187,12 +190,13 @@ AC_API_EXPORT EnumText EnumUtils::ToString(NPCFlags value) case UNIT_NPC_FLAG_SPELLCLICK: return { "UNIT_NPC_FLAG_SPELLCLICK", "has spell click enabled", "cause client to send 1015 opcode (spell click)" }; case UNIT_NPC_FLAG_PLAYER_VEHICLE: return { "UNIT_NPC_FLAG_PLAYER_VEHICLE", "is player vehicle", "players with mounts that have vehicle data should have it set" }; case UNIT_NPC_FLAG_MAILBOX: return { "UNIT_NPC_FLAG_MAILBOX", "is mailbox", "" }; + case UNIT_NPC_FLAG_VENDOR_MASK: return { "UNIT_NPC_FLAG_VENDOR_MASK", "UNIT_NPC_FLAG_VENDOR_MASK", "" }; default: throw std::out_of_range("value"); } } template <> -AC_API_EXPORT size_t EnumUtils::Count() { return 27; } +AC_API_EXPORT size_t EnumUtils::Count() { return 28; } template <> AC_API_EXPORT NPCFlags EnumUtils::FromIndex(size_t index) @@ -226,6 +230,7 @@ AC_API_EXPORT NPCFlags EnumUtils::FromIndex(size_t index) case 24: return UNIT_NPC_FLAG_SPELLCLICK; case 25: return UNIT_NPC_FLAG_PLAYER_VEHICLE; case 26: return UNIT_NPC_FLAG_MAILBOX; + case 27: return UNIT_NPC_FLAG_VENDOR_MASK; default: throw std::out_of_range("index"); } } @@ -262,6 +267,7 @@ AC_API_EXPORT size_t EnumUtils::ToIndex(NPCFlags value) case UNIT_NPC_FLAG_SPELLCLICK: return 24; case UNIT_NPC_FLAG_PLAYER_VEHICLE: return 25; case UNIT_NPC_FLAG_MAILBOX: return 26; + case UNIT_NPC_FLAG_VENDOR_MASK: return 27; default: throw std::out_of_range("value"); } }