From 20882990e011f149ae77db117f52526f1cdc9f9a Mon Sep 17 00:00:00 2001 From: WasabiRaptor Date: Tue, 28 May 2024 10:44:34 -0400 Subject: [PATCH] error handling for missing techs --- source/game/StarPlayerTech.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/source/game/StarPlayerTech.cpp b/source/game/StarPlayerTech.cpp index 133f5f7..3f2db05 100644 --- a/source/game/StarPlayerTech.cpp +++ b/source/game/StarPlayerTech.cpp @@ -9,9 +9,13 @@ PlayerTech::PlayerTech() {} PlayerTech::PlayerTech(Json const& json) { m_availableTechs = jsonToStringSet(json.get("availableTechs")); m_enabledTechs = jsonToStringSet(json.get("enabledTechs")); - m_equippedTechs = jsonToMapKV>(json.get("equippedTechs"), [](Json t) { - return TechTypeNames.getLeft(t.toString()); - }, mem_fn(&Json::toString)); + auto techDatabase = Root::singleton().techDatabase(); + for (auto p : json.get("equippedTechs", JsonObject()).iterateObject()) { + if (techDatabase->contains(p.second.toString())) + m_equippedTechs.set(TechTypeNames.getLeft(p.first), p.second.toString()); + else + Logger::warn("Missing tech '%s' in slot '%s'", p.second.toString(), p.first); + } } Json PlayerTech::toJson() const {