1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-02-13 13:18:43 +02:00

Merge pull request #4993 from IvanSavenko/mod_preset_fixes

Mod preset fixes
This commit is contained in:
Ivan Savenko 2024-11-27 16:42:25 +02:00 committed by GitHub
commit fad91acd3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 21 additions and 6 deletions

View File

@ -217,7 +217,7 @@ bool ModState::isInstalled() const
bool ModState::isUpdateAvailable() const
{
return getInstalledVersion() != getRepositoryVersion() && !getRepositoryVersion().isEmpty() && !getInstalledVersion().isEmpty();
return impl.isUpdateAvailable();
}
bool ModState::isCompatible() const

View File

@ -266,9 +266,9 @@ void CModHandler::load()
const auto & modInfo = getModInfo(modName);
bool isValid = content->preloadData(modInfo, isModValidationNeeded(modInfo));
if (isValid)
logGlobal->info("\t\tParsing mod: OK (%s)", modInfo.getName());
logGlobal->info("\t\tParsing mod: OK (%s)", modInfo.getID());
else
logGlobal->warn("\t\tParsing mod: Issues found! (%s)", modInfo.getName());
logGlobal->warn("\t\tParsing mod: Issues found! (%s)", modInfo.getID());
if (!isValid)
validationPassed.erase(modName);
@ -280,9 +280,9 @@ void CModHandler::load()
const auto & modInfo = getModInfo(modName);
bool isValid = content->load(getModInfo(modName), isModValidationNeeded(getModInfo(modName)));
if (isValid)
logGlobal->info("\t\tLoading mod: OK (%s)", modInfo.getName());
logGlobal->info("\t\tLoading mod: OK (%s)", modInfo.getID());
else
logGlobal->warn("\t\tLoading mod: Issues found! (%s)", modInfo.getName());
logGlobal->warn("\t\tLoading mod: Issues found! (%s)", modInfo.getID());
if (!isValid)
validationPassed.erase(modName);

View File

@ -216,4 +216,18 @@ bool ModDescription::affectsGameplay() const
return false;
}
bool ModDescription::isUpdateAvailable() const
{
if (getRepositoryValue("version").isNull())
return false;
if (getLocalValue("version").isNull())
return false;
auto localVersion = CModVersion::fromString(getLocalValue("version").String());
auto repositoryVersion = CModVersion::fromString(getRepositoryValue("version").String());
return localVersion < repositoryVersion;
}
VCMI_LIB_NAMESPACE_END

View File

@ -58,6 +58,7 @@ public:
ModVerificationInfo getVerificationInfo() const;
bool isCompatible() const;
bool isUpdateAvailable() const;
bool affectsGameplay() const;
bool isCompatibility() const;

View File

@ -287,7 +287,7 @@ void ModsPresetState::eraseModSetting(const TModID & modName, const TModID & set
{
const std::string & currentPresetName = modConfig["activePreset"].String();
JsonNode & currentPreset = modConfig["presets"][currentPresetName];
currentPreset["settings"][modName].Struct().erase(modName);
currentPreset["settings"][modName].Struct().erase(settingName);
}
std::vector<TModID> ModsPresetState::getActiveMods() const