Forráskód Böngészése

Auto-recover from cases when active preset is invalid

Ivan Savenko 10 hónapja
szülő
commit
50838f24bf
1 módosított fájl, 5 hozzáadás és 1 törlés
  1. 5 1
      lib/modding/ModManager.cpp

+ 5 - 1
lib/modding/ModManager.cpp

@@ -163,7 +163,7 @@ ModsPresetState::ModsPresetState()
 		CResourceHandler::get("local")->createResource(settingsPath.getOriginalName() + ".json");
 	}
 
-	if(modConfig["presets"].isNull())
+	if(modConfig["presets"].isNull() || modConfig["presets"].Struct().empty())
 	{
 		modConfig["activePreset"] = JsonNode("default");
 		if(modConfig["activeMods"].isNull())
@@ -171,6 +171,10 @@ ModsPresetState::ModsPresetState()
 		else
 			importInitialPreset(); // 1.5 format import
 	}
+
+	auto allPresets = getAllPresets();
+	if (!vstd::contains(allPresets, modConfig["activePreset"].String()))
+		modConfig["activePreset"] = JsonNode(allPresets.front());
 }
 
 void ModsPresetState::createInitialPreset()