diff options
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/QuestHandler.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp index b8589e1db59..1f51be2ec95 100644 --- a/src/server/game/Handlers/QuestHandler.cpp +++ b/src/server/game/Handlers/QuestHandler.cpp @@ -188,15 +188,14 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestG } } - _player->PlayerTalkClass->SendCloseGossip(); - - if (quest->HasFlag(QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT)) + if (quest->HasFlag(QUEST_FLAGS_LAUNCH_GOSSIP_ACCEPT) && !quest->HasFlagEx(QUEST_FLAGS_EX_SUPPRESS_GOSSIP_ACCEPT)) { auto launchGossip = [&](WorldObject* worldObject) { _player->PlayerTalkClass->ClearMenus(); _player->PrepareGossipMenu(worldObject, _player->GetGossipMenuForSource(worldObject), true); _player->SendPreparedGossip(worldObject); + _player->PlayerTalkClass->GetInteractionData().IsLaunchedByQuest = true; }; if (Creature* creature = object->ToCreature()) @@ -204,6 +203,8 @@ void WorldSession::HandleQuestgiverAcceptQuestOpcode(WorldPackets::Quest::QuestG else if (GameObject* go = object->ToGameObject()) launchGossip(go); } + else + _player->PlayerTalkClass->SendCloseGossip(); return; } |