Core/Player: Added helpers to check quest objective status

Port From (https://github.com/TrinityCore/TrinityCore/commit/9dd8647125a020ca2dccdf26d6839f4665ff9870)
This commit is contained in:
hondacrx
2024-02-04 00:32:24 -05:00
parent 90ad7ed6ea
commit 47355bfa52
@@ -2237,6 +2237,19 @@ namespace Game.Entities
return GetQuestSlotObjectiveFlag(slot, objective.StorageIndex) ? 1 : 0; return GetQuestSlotObjectiveFlag(slot, objective.StorageIndex) ? 1 : 0;
} }
int GetQuestSlotObjectiveData(uint questId, uint objectiveId)
{
ushort slot = FindQuestSlot(questId);
if (slot >= SharedConst.MaxQuestLogSize)
return 0;
QuestObjective obj = Global.ObjectMgr.GetQuestObjective(objectiveId);
if (obj == null)
return 0;
return GetQuestSlotObjectiveData(slot, obj);
}
public void SetQuestSlot(ushort slot, uint quest_id) public void SetQuestSlot(ushort slot, uint quest_id)
{ {
var questLogField = m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.QuestLog, slot); var questLogField = m_values.ModifyValue(m_playerData).ModifyValue(m_playerData.QuestLog, slot);
@@ -2811,6 +2824,23 @@ namespace Game.Entities
return true; return true;
} }
bool IsQuestObjectiveComplete(uint questId, uint objectiveId)
{
Quest quest = Global.ObjectMgr.GetQuestTemplate(questId);
if (quest == null)
return false;
ushort slot = FindQuestSlot(questId);
if (slot >= SharedConst.MaxQuestLogSize)
return false;
QuestObjective obj = Global.ObjectMgr.GetQuestObjective(objectiveId);
if (obj == null)
return false;
return IsQuestObjectiveComplete(slot, quest, obj);
}
public bool IsQuestObjectiveProgressBarComplete(ushort slot, Quest quest) public bool IsQuestObjectiveProgressBarComplete(ushort slot, Quest quest)
{ {
float progress = 0.0f; float progress = 0.0f;