aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatan Shukry <matanshukry@gmail.com>2021-04-11 23:22:05 +0300
committerGitHub <noreply@github.com>2021-04-11 22:22:05 +0200
commit8b93fc57211eaf47a12772d2b620453dfd21070a (patch)
tree3365e06264e0fbf3ff026f1438ab30b85db9f188 /src
parentcf3ea2082578077cfec589c2a5fab12ab91c1777 (diff)
Core/Quests: Show quest details windows if there's only one quest in gossip menu, even if questgiver doesn't have gossip npc flag (#26094)
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/Player/Player.cpp29
1 files changed, 10 insertions, 19 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 9083218ed0d..669e26057e5 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15140,32 +15140,23 @@ void Player::SendPreparedQuest(WorldObject* source)
if (Quest const* quest = sObjectMgr->GetQuestTemplate(questId))
{
if (qmi0.QuestIcon == 4)
- {
PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanRewardQuest(quest, false), true);
- return;
- }
// Send completable on repeatable and autoCompletable quest if player don't have quest
/// @todo verify if check for !quest->IsDaily() is really correct (possibly not)
+ else if (!source->hasQuest(questId) && !source->hasInvolvedQuest(questId))
+ PlayerTalkClass->SendCloseGossip();
else
{
- if (!source->hasQuest(questId) && !source->hasInvolvedQuest(questId))
- {
- PlayerTalkClass->SendCloseGossip();
- return;
- }
-
- if (source->GetTypeId() != TYPEID_UNIT || source->ToUnit()->HasNpcFlag(UNIT_NPC_FLAG_GOSSIP))
- {
- if (quest->IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true))
- AddQuestAndCheckCompletion(quest, source);
+ if (quest->IsAutoAccept() && CanAddQuest(quest, true) && CanTakeQuest(quest, true))
+ AddQuestAndCheckCompletion(quest, source);
- if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
- PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanCompleteRepeatableQuest(quest), true);
- else
- PlayerTalkClass->SendQuestGiverQuestDetails(quest, source->GetGUID(), true, false);
- return;
- }
+ if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
+ PlayerTalkClass->SendQuestGiverRequestItems(quest, source->GetGUID(), CanCompleteRepeatableQuest(quest), true);
+ else
+ PlayerTalkClass->SendQuestGiverQuestDetails(quest, source->GetGUID(), true, false);
}
+
+ return;
}
}