aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/QuestHandler.cpp
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2023-06-11 19:29:42 +0200
committerShauren <shauren.trinity@gmail.com>2023-06-11 19:29:42 +0200
commit0cb8965de22c5da3887b8f8b5c08b9f5034b3cc6 (patch)
treeb9e9239f9e627e1e5144247af869188939fda07f /src/server/game/Handlers/QuestHandler.cpp
parentd419fe5ff4ce9d3227ddcc47cc21ed67732e3d52 (diff)
Core/Quests: New FlagsEx implementations
* QUEST_FLAGS_EX_REWARDS_IGNORE_CAPS * QUEST_FLAGS_EX_NO_CREDIT_FOR_PROXY * QUEST_FLAGS_EX_RECAST_ACCEPT_SPELL_ON_LOGIN * QUEST_FLAGS_EX_REMOVE_ON_PERIODIC_RESET * QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN
Diffstat (limited to 'src/server/game/Handlers/QuestHandler.cpp')
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 9010a3d629e..1e376a55d90 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -445,6 +445,11 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove
if (quest)
{
+ if (quest->HasFlagEx(QUEST_FLAGS_EX_NO_ABANDON_ONCE_BEGUN))
+ for (QuestObjective const& objective : quest->Objectives)
+ if (_player->IsQuestObjectiveComplete(packet.Entry, quest, objective))
+ return;
+
if (quest->GetLimitTime())
_player->RemoveTimedQuest(questId);
@@ -453,7 +458,6 @@ void WorldSession::HandleQuestLogRemoveQuest(WorldPackets::Quest::QuestLogRemove
_player->pvpInfo.IsHostile = _player->pvpInfo.IsInHostileArea || _player->HasPvPForcingQuest();
_player->UpdatePvPState();
}
-
}
_player->SetQuestSlot(packet.Entry, 0);