From f8dda8a4fc696d07bb6007e49140cec1b7f60dd5 Mon Sep 17 00:00:00 2001 From: Mikhail Redko Date: Wed, 21 Mar 2018 11:05:17 +0200 Subject: Core/Creatures: implement CREATURE_FLAG_EXTRA_NO_SELL_VENDOR (#21642) * Add CREATURE_FLAG_EXTRA_NO_SELL_VENDOR and use it for a single no-sell vendor in game (there are more of them in later expansions) (cherry picked from commit 7c5b69d18bb315d369bf0bbfc16b795d63d0f73c) --- src/server/scripts/Commands/cs_npc.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 3f0c6cb4346..a177a4e904a 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -51,10 +51,7 @@ struct EnumName #define CREATE_NAMED_ENUM(VALUE) { VALUE, STRINGIZE(VALUE) } -#define NPC_FLAG_COUNT 24 -#define FLAGS_EXTRA_COUNT 21 - -EnumName const npcFlagTexts[NPC_FLAG_COUNT] = +EnumName const npcFlagTexts[] = { { UNIT_NPC_FLAG_AUCTIONEER, LANG_NPCINFO_AUCTIONEER }, { UNIT_NPC_FLAG_BANKER, LANG_NPCINFO_BANKER }, @@ -82,6 +79,8 @@ EnumName const npcFlagTexts[NPC_FLAG_COUNT] = { UNIT_NPC_FLAG_VENDOR_REAGENT, LANG_NPCINFO_VENDOR_REAGENT } }; +uint32 const NPCFLAG_COUNT = std::extent::value; + EnumName const mechanicImmunes[MAX_MECHANIC] = { CREATE_NAMED_ENUM(MECHANIC_NONE), @@ -183,7 +182,7 @@ EnumName const unitFlags3[MAX_UNIT_FLAGS_3] = CREATE_NAMED_ENUM(UNIT_FLAG3_UNK1) }; -EnumName const flagsExtra[FLAGS_EXTRA_COUNT] = +EnumName const flagsExtra[] = { CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_INSTANCE_BIND), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_CIVILIAN), @@ -195,6 +194,7 @@ EnumName const flagsExtra[FLAGS_EXTRA_COUNT] = CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_TRIGGER), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_TAUNT), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_MOVE_FLAGS_UPDATE), + CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_SELL_VENDOR), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_WORLDEVENT), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_GUARD), CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_NO_CRIT), @@ -208,6 +208,8 @@ EnumName const flagsExtra[FLAGS_EXTRA_COUNT] = CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK) }; +uint32 const FLAGS_EXTRA_COUNT = std::extent::value; + bool HandleNpcSpawnGroup(ChatHandler* handler, char const* args) { if (!*args) @@ -878,7 +880,7 @@ public: handler->PSendSysMessage("%s (0x%X)", flagsExtra[i].Name, flagsExtra[i].Value); handler->PSendSysMessage(LANG_NPCINFO_NPC_FLAGS, target->m_unitData->NpcFlags[0]); - for (uint8 i = 0; i < NPC_FLAG_COUNT; i++) + for (uint8 i = 0; i < NPCFLAG_COUNT; i++) if (npcflags & npcFlagTexts[i].Value) handler->PSendSysMessage(npcFlagTexts[i].Name, npcFlagTexts[i].Value); -- cgit v1.2.3