| 150 | } |
| 151 | |
| 152 | Json Quest::diskStore() const { |
| 153 | auto versioningDatabase = Root::singleton().versioningDatabase(); |
| 154 | |
| 155 | JsonObject result; |
| 156 | result["state"] = QuestStateNames.getRight(m_state); |
| 157 | result["arc"] = m_arc.diskStore(); |
| 158 | result["arcPos"] = m_arcPos; |
| 159 | result["parameters"] = questParamsDiskStore(m_parameters); |
| 160 | result["money"] = m_money; |
| 161 | |
| 162 | result["worldId"] = jsonFromMaybe(m_worldId.apply(printWorldId)); |
| 163 | result["location"] = jsonFromMaybe(m_location.apply([](pair<Vec3I, SystemLocation> const& location) { |
| 164 | return JsonObject{{"system", jsonFromVec3I(location.first)}, {"location", jsonFromSystemLocation(location.second)}}; |
| 165 | })); |
| 166 | result["serverUuid"] = jsonFromMaybe(m_serverUuid.apply(mem_fn(&Uuid::hex))); |
| 167 | |
| 168 | auto itemDatabase = Root::singleton().itemDatabase(); |
| 169 | result["rewards"] = |
| 170 | m_rewards.transformed([&itemDatabase](ItemConstPtr const& item) { return itemDatabase->diskStore(item); }); |
| 171 | |
| 172 | result["lastUpdatedOn"] = m_lastUpdatedOn; |
| 173 | result["unread"] = m_unread; |
| 174 | result["canTurnIn"] = m_canTurnIn; |
| 175 | result["indicators"] = jsonFromStringSet(m_indicators); |
| 176 | result["scriptStorage"] = m_scriptComponent.getScriptStorage(); |
| 177 | |
| 178 | result["title"] = m_title; |
| 179 | result["text"] = m_text; |
| 180 | result["completionText"] = m_completionText; |
| 181 | result["failureText"] = m_failureText; |
| 182 | |
| 183 | result["portraits"] = jsonFromMapV(m_portraits, [](List<Drawable> const& portrait) { |
| 184 | return portrait.transformed(mem_fn(&Drawable::toJson)); |
| 185 | }); |
| 186 | result["portraitTitles"] = jsonFromMap(m_portraitTitles); |
| 187 | result["showDialog"] = m_showDialog; |
| 188 | |
| 189 | return versioningDatabase->makeCurrentVersionedJson("Quest", result).toJson(); |
| 190 | } |
| 191 | |
| 192 | QuestTemplatePtr Quest::getTemplate() const { |
| 193 | return Root::singleton().questTemplateDatabase()->questTemplate(templateId()); |
nothing calls this directly
no test coverage detected