mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-27 00:41:08 +02:00
Correctly remove unsupported (e.g. era) mods from active preset
This commit is contained in:
@ -549,7 +549,7 @@ double ModManager::getInstalledModSizeMegabytes(const TModID & modName) const
|
||||
|
||||
void ModManager::eraseMissingModsFromPreset()
|
||||
{
|
||||
const TModList & installedMods = modsState->getInstalledMods();
|
||||
const TModList & installedMods = getInstalledValidMods();
|
||||
const TModList & rootMods = modsPreset->getActiveRootMods();
|
||||
|
||||
modsPreset->removeOldMods(installedMods);
|
||||
@ -572,7 +572,7 @@ void ModManager::eraseMissingModsFromPreset()
|
||||
|
||||
void ModManager::addNewModsToPreset()
|
||||
{
|
||||
const TModList & installedMods = modsState->getInstalledMods();
|
||||
const TModList & installedMods = getInstalledValidMods();
|
||||
|
||||
for(const auto & modID : installedMods)
|
||||
{
|
||||
@ -591,6 +591,19 @@ void ModManager::addNewModsToPreset()
|
||||
}
|
||||
}
|
||||
|
||||
TModList ModManager::getInstalledValidMods() const
|
||||
{
|
||||
TModList installedMods = modsState->getInstalledMods();
|
||||
TModList validMods = modsStorage->getAllMods();
|
||||
|
||||
TModList result;
|
||||
for (const auto & modID : installedMods)
|
||||
if (vstd::contains(validMods, modID))
|
||||
result.push_back(modID);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
TModList ModManager::collectDependenciesRecursive(const TModID & modID) const
|
||||
{
|
||||
TModList result;
|
||||
@ -688,7 +701,7 @@ void ModManager::updatePreset(const ModDependenciesResolver & testResolver)
|
||||
|
||||
for (const auto & modID : newActiveMods)
|
||||
{
|
||||
assert(vstd::contains(modsState->getInstalledMods(), modID));
|
||||
assert(vstd::contains(getInstalledValidMods(), modID));
|
||||
modsPreset->setModActive(modID, true);
|
||||
}
|
||||
|
||||
@ -847,7 +860,7 @@ std::tuple<std::string, TModList> ModManager::importPreset(const JsonNode & data
|
||||
std::string presetName = modsPreset->importPreset(data);
|
||||
|
||||
TModList requiredMods = modsPreset->getRootMods(presetName);
|
||||
TModList installedMods = modsState->getInstalledMods();
|
||||
TModList installedMods = getInstalledValidMods();
|
||||
|
||||
TModList missingMods;
|
||||
for (const auto & modID : requiredMods)
|
||||
|
Reference in New Issue
Block a user