aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp4
-rw-r--r--src/server/game/Entities/Player/Player.cpp9
-rw-r--r--src/server/game/Entities/Player/Player.h2
3 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 667b8b14889..09b84589716 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -508,10 +508,8 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) const
QuestObjective const* obj = sObjectMgr->GetQuestObjective(ConditionValue1);
if (!obj)
break;
- Quest const* qInfo = sObjectMgr->GetQuestTemplate(obj->QuestID);
- ASSERT(qInfo);
- condMeets = (!player->GetQuestRewardStatus(obj->QuestID) && player->IsQuestObjectiveComplete(qInfo, *obj));
+ condMeets = (!player->GetQuestRewardStatus(obj->QuestID) && player->IsQuestObjectiveComplete(*obj));
}
break;
}
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index f64407f7710..ad44cf6e9fa 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -14630,7 +14630,7 @@ bool Player::CanCompleteQuest(uint32 quest_id)
{
for (QuestObjective const& obj : qInfo->GetObjectives())
{
- if (!IsQuestObjectiveComplete(qInfo, obj))
+ if (!IsQuestObjectiveComplete(obj))
return false;
}
@@ -16756,8 +16756,11 @@ int32 Player::GetQuestObjectiveData(Quest const* quest, int8 storageIndex) const
return status.ObjectiveData[storageIndex];
}
-bool Player::IsQuestObjectiveComplete(Quest const* quest, QuestObjective const& objective) const
+bool Player::IsQuestObjectiveComplete(QuestObjective const& objective) const
{
+ Quest const* quest = sObjectMgr->GetQuestTemplate(objective.QuestID);
+ ASSERT(quest);
+
switch (objective.Type)
{
case QUEST_OBJECTIVE_MONSTER:
@@ -16797,7 +16800,7 @@ bool Player::IsQuestObjectiveComplete(Quest const* quest, QuestObjective const&
break;
default:
TC_LOG_ERROR("entities.player.quest", "Player::CanCompleteQuest: Player '%s' (%s) tried to complete a quest (ID: %u) with an unknown objective type %u",
- GetName().c_str(), GetGUID().ToString().c_str(), quest->ID, objective.Type);
+ GetName().c_str(), GetGUID().ToString().c_str(), objective.QuestID, objective.Type);
return false;
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 4c9315294e7..28772041422 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1627,7 +1627,7 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
bool CanShareQuest(uint32 questId) const;
int32 GetQuestObjectiveData(Quest const* quest, int8 storageIndex) const;
- bool IsQuestObjectiveComplete(Quest const* quest, QuestObjective const& objective) const;
+ bool IsQuestObjectiveComplete(QuestObjective const& objective) const;
void SetQuestObjectiveData(Quest const* quest, int8 storageIndex, int32 data);
void SendQuestComplete(Quest const* quest) const;
void SendQuestReward(Quest const* quest, uint32 XP) const;