diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Entities/GameObject/GameObject.cpp | 4 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rw-r--r-- | src/server/game/Quests/QuestDef.h | 5 |
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, |