aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Creature/Creature.h6
-rw-r--r--src/server/game/Entities/Player/Player.cpp11
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp2
3 files changed, 9 insertions, 10 deletions
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index 2aa3fa395c3..8cec597febc 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -54,6 +54,12 @@ typedef std::list<VendorItemCount> VendorItemCounts;
#define MAX_VENDOR_ITEMS 150 // Limitation in 4.x.x item count in SMSG_LIST_INVENTORY
+enum class VendorInventoryReason : uint8
+{
+ None = 0,
+ Empty = 1
+};
+
static constexpr uint8 WILD_BATTLE_PET_DEFAULT_LEVEL = 1;
//used for handling non-repeatable random texts
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 587ce00f1d0..6815dbfeedf 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14605,16 +14605,6 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
if (!isDead())
canTalk = false;
break;
- case GOSSIP_OPTION_VENDOR:
- {
- VendorItemData const* vendorItems = creature->GetVendorItems();
- if (!vendorItems || vendorItems->Empty())
- {
- TC_LOG_ERROR("sql.sql", "Creature %s (%s DB GUID: " UI64FMTD ") has UNIT_NPC_FLAG_VENDOR set but has an empty trading item list.", creature->GetName().c_str(), creature->GetGUID().ToString().c_str(), creature->GetSpawnId());
- canTalk = false;
- }
- break;
- }
case GOSSIP_OPTION_LEARNDUALSPEC:
canTalk = false;
break;
@@ -14638,6 +14628,7 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool
canTalk = false;
break;
case GOSSIP_OPTION_GOSSIP:
+ case GOSSIP_OPTION_VENDOR:
case GOSSIP_OPTION_TRAINER:
case GOSSIP_OPTION_SPIRITGUIDE:
case GOSSIP_OPTION_INNKEEPER:
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 08987fb14f8..62be639a868 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -708,6 +708,8 @@ void WorldSession::SendListInventory(ObjectGuid vendorGuid)
// Resize vector to real size (some items can be skipped due to checks)
packet.Items.resize(count);
+ packet.Reason = AsUnderlyingType(count ? VendorInventoryReason::None : VendorInventoryReason::Empty);
+
SendPacket(packet.Write());
}