Веб-сайт самохостера Lotigara

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source/game/StarQuestManager.cpp5
-rw-r--r--source/game/scripting/StarPlayerLuaBindings.cpp26
2 files changed, 16 insertions, 15 deletions
diff --git a/source/game/StarQuestManager.cpp b/source/game/StarQuestManager.cpp
index ee2c82b..df8a19a 100644
--- a/source/game/StarQuestManager.cpp
+++ b/source/game/StarQuestManager.cpp
@@ -144,10 +144,7 @@ StringMap<QuestPtr> QuestManager::serverQuests() const {
}
QuestPtr QuestManager::getQuest(String const& questId) const {
- if (auto quest = m_quests.ptr(questId))
- return *quest;
-
- return {};
+ return m_quests.get(questId);
}
bool QuestManager::hasQuest(String const& questId) const {
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) {