diff options
author | Meji <alvaro.megias@outlook.com> | 2025-06-28 18:17:10 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-28 18:17:10 +0200 |
commit | 4c92d3550b331aff6a22f753295388fa2a215e6c (patch) | |
tree | 52ddb5ff08b50f86321d281b81ad34f0d656ac0b /src | |
parent | c4c721cb7dd098d66b3e3cf940877f702d06c4cf (diff) |
Core/Gossip: Send correct response depending on how the interaction was started (#31046)
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) |