diff options
Diffstat (limited to 'source')
-rw-r--r-- | source/game/StarQuestManager.cpp | 8 | ||||
-rw-r--r-- | source/game/StarQuestManager.hpp | 2 | ||||
-rw-r--r-- | source/game/scripting/StarPlayerLuaBindings.cpp | 8 |
3 files changed, 18 insertions, 0 deletions
diff --git a/source/game/StarQuestManager.cpp b/source/game/StarQuestManager.cpp index 876f0b8..df8a19a 100644 --- a/source/game/StarQuestManager.cpp +++ b/source/game/StarQuestManager.cpp @@ -273,6 +273,10 @@ List<QuestPtr> QuestManager::listFailedQuests() const { return result; } +Maybe<String> QuestManager::currentQuestId() const { + return m_trackedQuestId; +} + Maybe<QuestPtr> QuestManager::currentQuest() const { auto questId = m_onWorldQuestId.orMaybe(m_trackedQuestId); if (questId && isActive(*questId)) { @@ -283,6 +287,10 @@ Maybe<QuestPtr> QuestManager::currentQuest() const { return {}; } +Maybe<String> QuestManager::trackedQuestId() const { + return m_trackedQuestId; +} + Maybe<QuestPtr> QuestManager::trackedQuest() const { if (m_trackedQuestId && isActive(*m_trackedQuestId)) { auto current = getQuest(*m_trackedQuestId); diff --git a/source/game/StarQuestManager.hpp b/source/game/StarQuestManager.hpp index 3d7ee22..549f13b 100644 --- a/source/game/StarQuestManager.hpp +++ b/source/game/StarQuestManager.hpp @@ -52,7 +52,9 @@ public: List<QuestPtr> listCompletedQuests() const; List<QuestPtr> listFailedQuests() const; + Maybe<String> currentQuestId() const; Maybe<QuestPtr> currentQuest() const; + Maybe<String> trackedQuestId() const; Maybe<QuestPtr> trackedQuest() const; Maybe<QuestIndicator> getQuestIndicator(EntityPtr const& entity) const; diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index f8e1f2e..bf14c2c 100644 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -500,6 +500,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return player->questManager()->hasCompleted(questId); }); + callbacks.registerCallback("trackedQuestId", [player]() { + return player->questManager()->trackedQuestId(); + }); + callbacks.registerCallback("setTrackedQuest", [player](Maybe<String> const& questId) { return player->questManager()->setAsTracked(questId); }); @@ -508,6 +512,10 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { return player->questManager()->canTurnIn(questId); }); + callbacks.registerCallback("currentQuestId", [player]() { + return player->questManager()->currentQuestId(); + }); + callbacks.registerCallback("currentQuest", [player]() -> Json { auto maybeQuest = player->questManager()->currentQuest(); if (maybeQuest) { |