diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 4 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 351a4758222..65e24aa3639 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -14031,16 +14031,17 @@ void Player::SendPreparedGossip(WorldObject* source) if (!source) return; + // If there is only one quest available (and no gossip options), send quest info if (source->GetTypeId() == TYPEID_UNIT || source->GetTypeId() == TYPEID_GAMEOBJECT) { - if (PlayerTalkClass->GetGossipMenu().Empty() && !PlayerTalkClass->GetQuestMenu().Empty()) + if (PlayerTalkClass->GetGossipMenu().Empty() && PlayerTalkClass->GetQuestMenu().GetMenuItemCount() == 1) { SendPreparedQuest(source); return; } } - // in case non empty gossip menu (that not included quests list size) show it + // In case non empty gossip menu or quest menu count > 1, show it // (quest entries from quest menu will be included in list) uint32 textId = GetGossipTextId(source); diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index c8d41b9dc78..1fe2dbc32b9 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -80,8 +80,8 @@ void WorldSession::HandleQuestgiverHelloOpcode(WorldPackets::Quest::QuestGiverHe if (creature->AI()->OnGossipHello(_player)) return; - _player->PrepareGossipMenu(creature, _player->GetGossipMenuForSource(creature), true); - _player->SendPreparedGossip(creature); + _player->PrepareQuestMenu(creature->GetGUID()); + _player->SendPreparedQuest(creature); } void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestGiverAcceptQuest& packet) |