Quellcode durchsuchen

Fix crash on attempt to install mod not present in mod repository

Ivan Savenko vor 10 Monaten
Ursprung
Commit
d42ae2995b

+ 1 - 1
launcher/modManager/cmodlistview_moc.cpp

@@ -860,7 +860,7 @@ void CModListView::installMods(QStringList archives)
 	// uninstall old version of mod, if installed
 	for(QString mod : modNames)
 	{
-		if(modStateModel->getMod(mod).isInstalled())
+		if(modStateModel->isModExists(mod) && modStateModel->getMod(mod).isInstalled())
 		{
 			logGlobal->info("Uninstalling old version of mod '%s'", mod.toStdString());
 			if (modStateModel->isModEnabled(mod))

+ 3 - 0
launcher/modManager/modstatecontroller.cpp

@@ -120,6 +120,9 @@ bool ModStateController::disableMod(QString modname)
 
 bool ModStateController::canInstallMod(QString modname)
 {
+	if (!modList->isModExists(modname))
+		return true; // for installation of unknown mods, e.g. via "Install from file" option
+
 	auto mod = modList->getMod(modname);
 
 	if(mod.isSubmod())