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 {