diff --git a/source/game/StarPlayerTech.cpp b/source/game/StarPlayerTech.cpp index 133f5f7..bf8053f 100644 --- a/source/game/StarPlayerTech.cpp +++ b/source/game/StarPlayerTech.cpp @@ -9,9 +9,14 @@ 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.getObject("equippedTechs")) { + String techName = p.second.toString(); + if (techDatabase->contains(techName)) + m_equippedTechs.set(TechTypeNames.getLeft(p.first), techName); + else + Logger::warn("Unequipping unknown tech '{}' from slot '{}'", techName, p.first); + } } Json PlayerTech::toJson() const {