mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 01:37:37 +01:00
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 7c5b69d18b)
This commit is contained in:
@@ -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<NPCFlags, uint32> const npcFlagTexts[NPC_FLAG_COUNT] =
|
||||
EnumName<NPCFlags, int32> const npcFlagTexts[] =
|
||||
{
|
||||
{ UNIT_NPC_FLAG_AUCTIONEER, LANG_NPCINFO_AUCTIONEER },
|
||||
{ UNIT_NPC_FLAG_BANKER, LANG_NPCINFO_BANKER },
|
||||
@@ -82,6 +79,8 @@ EnumName<NPCFlags, uint32> const npcFlagTexts[NPC_FLAG_COUNT] =
|
||||
{ UNIT_NPC_FLAG_VENDOR_REAGENT, LANG_NPCINFO_VENDOR_REAGENT }
|
||||
};
|
||||
|
||||
uint32 const NPCFLAG_COUNT = std::extent<decltype(npcFlagTexts)>::value;
|
||||
|
||||
EnumName<Mechanics> const mechanicImmunes[MAX_MECHANIC] =
|
||||
{
|
||||
CREATE_NAMED_ENUM(MECHANIC_NONE),
|
||||
@@ -183,7 +182,7 @@ EnumName<UnitFlags3> const unitFlags3[MAX_UNIT_FLAGS_3] =
|
||||
CREATE_NAMED_ENUM(UNIT_FLAG3_UNK1)
|
||||
};
|
||||
|
||||
EnumName<CreatureFlagsExtra> const flagsExtra[FLAGS_EXTRA_COUNT] =
|
||||
EnumName<CreatureFlagsExtra> const flagsExtra[] =
|
||||
{
|
||||
CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_INSTANCE_BIND),
|
||||
CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_CIVILIAN),
|
||||
@@ -195,6 +194,7 @@ EnumName<CreatureFlagsExtra> 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<CreatureFlagsExtra> const flagsExtra[FLAGS_EXTRA_COUNT] =
|
||||
CREATE_NAMED_ENUM(CREATURE_FLAG_EXTRA_USE_OFFHAND_ATTACK)
|
||||
};
|
||||
|
||||
uint32 const FLAGS_EXTRA_COUNT = std::extent<decltype(flagsExtra)>::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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user