diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-11-05 09:44:46 +1100 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2024-11-05 09:44:46 +1100 |
commit | e1dea58e809bb2440b81a1771c6df916e50dda1a (patch) | |
tree | 36c741bf3bdcc2cfced019d6e1c6e1fb7300485e /source/game/scripting/StarPlayerLuaBindings.cpp | |
parent | cc5fbb0087518a2f4ab9e86f5b2cff2d3b0ed3fb (diff) |
questPortrait callback
Diffstat (limited to 'source/game/scripting/StarPlayerLuaBindings.cpp')
-rw-r--r-- | source/game/scripting/StarPlayerLuaBindings.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/source/game/scripting/StarPlayerLuaBindings.cpp b/source/game/scripting/StarPlayerLuaBindings.cpp index 4d3b316..5af86d0 100644 --- a/source/game/scripting/StarPlayerLuaBindings.cpp +++ b/source/game/scripting/StarPlayerLuaBindings.cpp @@ -478,24 +478,28 @@ LuaCallbacks LuaBindings::makePlayerCallbacks(Player* player) { }); callbacks.registerCallback("quest", [player](String const& questId) -> Json { - if (auto quest = player->questManager()->getQuest(questId)) - return quest->diskStore(); + if (!player->questManager()->hasQuest(questId)) + return {}; + return player->questManager()->getQuest(questId)->diskStore(); + }); - return {}; + callbacks.registerCallback("questPortrait", [player](String const& questId, String const& portraitName) -> Maybe<List<Drawable>> { + if (!player->questManager()->hasQuest(questId)) + return {}; + return player->questManager()->getQuest(questId)->portrait(portraitName); }); - callbacks.registerCallback("questState", [player](String const& questId) -> Maybe<String> { - if (auto quest = player->questManager()->getQuest(questId)) - return QuestStateNames.getRight(quest->state()); - return {}; + callbacks.registerCallback("questState", [player](String const& questId) -> Maybe<String> { + if (!player->questManager()->hasQuest(questId)) + return {}; + return QuestStateNames.getRight(player->questManager()->getQuest(questId)->state()); }); callbacks.registerCallback("callQuest", [player](String const& questId, String const& func, LuaVariadic<LuaValue> const& args) -> Maybe<LuaValue> { - if (auto quest = player->questManager()->getQuest(questId)) - return quest->callScript(func, args); - - return {}; + if (!player->questManager()->hasQuest(questId)) + return {}; + return player->questManager()->getQuest(questId)->callScript(func, args); }); callbacks.registerCallback("hasQuest", [player](String const& questId) { |