aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.h5
3 files changed, 7 insertions, 4 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 6c5b4bb5b1d..786823df9cd 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -2272,9 +2272,7 @@ bool GameObject::ActivateToQuest(Player const* target) const
{
case GAMEOBJECT_TYPE_QUESTGIVER:
{
- GameObject* go = const_cast<GameObject*>(this);
- QuestGiverStatus questStatus = const_cast<Player*>(target)->GetQuestDialogStatus(go);
- if (questStatus != QuestGiverStatus::None && questStatus != QuestGiverStatus::Future)
+ if ((target->GetQuestDialogStatus(this) & ~QuestGiverStatusFutureMask) != QuestGiverStatus::None)
return true;
break;
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 7c266e4593c..c411552d1f3 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -16253,7 +16253,7 @@ void Player::SendQuestReward(Quest const* quest, Creature const* questGiver, uin
packet.LaunchGossip = quest->HasFlag(QUEST_FLAGS_LAUNCH_GOSSIP_COMPLETE);
if (questGiver->IsQuestGiver())
- packet.LaunchQuest = (GetQuestDialogStatus(questGiver) & ~QuestGiverStatus::Future) != QuestGiverStatus::None;
+ packet.LaunchQuest = (GetQuestDialogStatus(questGiver) & ~QuestGiverStatusFutureMask) != QuestGiverStatus::None;
if (!quest->HasFlag(QUEST_FLAGS_AUTO_COMPLETE))
if (Quest const* rewardQuest = GetNextQuest(questGiver, quest))
diff --git a/src/server/game/Quests/QuestDef.h b/src/server/game/Quests/QuestDef.h
index a772769d983..ceb14dfea70 100644
--- a/src/server/game/Quests/QuestDef.h
+++ b/src/server/game/Quests/QuestDef.h
@@ -175,6 +175,11 @@ enum class QuestGiverStatus : uint64
DEFINE_ENUM_FLAG(QuestGiverStatus);
+inline constexpr QuestGiverStatus QuestGiverStatusFutureMask = QuestGiverStatus::Future
+ | QuestGiverStatus::FutureJourneyQuest
+ | QuestGiverStatus::FutureLegendaryQuest
+ | QuestGiverStatus::FutureImportantQuest;
+
enum QuestFlags : uint32
{
QUEST_FLAGS_NONE = 0x00000000,