mirror of
https://github.com/vcmi/vcmi.git
synced 2025-06-04 23:17:41 +02:00
Initialize submods / mods settings on new mod install
This commit is contained in:
parent
915bd0bd35
commit
9742f3a110
@ -65,13 +65,13 @@ QString detectModArchive(QString path, QString modName, std::vector<std::string>
|
|||||||
CModManager::CModManager(CModList * modList)
|
CModManager::CModManager(CModList * modList)
|
||||||
: modList(modList)
|
: modList(modList)
|
||||||
{
|
{
|
||||||
|
modSettings = std::make_shared<ModSettingsStorage>();
|
||||||
loadMods();
|
loadMods();
|
||||||
loadModSettings();
|
loadModSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CModManager::loadModSettings()
|
void CModManager::loadModSettings()
|
||||||
{
|
{
|
||||||
modSettings = std::make_shared<ModSettingsStorage>();
|
|
||||||
modList->setModSettings(modSettings);
|
modList->setModSettings(modSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,7 +116,9 @@ void CModManager::loadMods()
|
|||||||
json["storedLocally"].Bool() = true;
|
json["storedLocally"].Bool() = true;
|
||||||
|
|
||||||
mod = JsonUtils::toVariant(json);
|
mod = JsonUtils::toVariant(json);
|
||||||
localMods.insert(QString::fromUtf8(modname.c_str()).toLower(), mod);
|
QString modNameQt = QString::fromUtf8(modname.c_str()).toLower();
|
||||||
|
localMods.insert(modNameQt, mod);
|
||||||
|
modSettings->registerNewMod(modNameQt, json["keepDisabled"].Bool());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
modList->setLocalModList(localMods);
|
modList->setLocalModList(localMods);
|
||||||
|
@ -110,6 +110,22 @@ void ModSettingsStorage::setRootModActive(const QString & modName, bool on)
|
|||||||
JsonUtils::JsonToFile(settingsPath(), config);
|
JsonUtils::JsonToFile(settingsPath(), config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ModSettingsStorage::registerNewMod(const QString & modName, bool keepDisabled)
|
||||||
|
{
|
||||||
|
if (!modName.contains('.'))
|
||||||
|
return;
|
||||||
|
|
||||||
|
QString rootModName = modName.section('.', 0, 0);
|
||||||
|
QString settingName = modName.section('.', 1);
|
||||||
|
|
||||||
|
QVariantMap modSettings = getModSettings(rootModName);
|
||||||
|
|
||||||
|
if (modSettings.contains(settingName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
setModSettingActive(modName, !keepDisabled);
|
||||||
|
}
|
||||||
|
|
||||||
void ModSettingsStorage::setModSettingActive(const QString & modName, bool on)
|
void ModSettingsStorage::setModSettingActive(const QString & modName, bool on)
|
||||||
{
|
{
|
||||||
QString presetName = getActivePreset();
|
QString presetName = getActivePreset();
|
||||||
|
@ -30,6 +30,8 @@ class ModSettingsStorage
|
|||||||
public:
|
public:
|
||||||
ModSettingsStorage();
|
ModSettingsStorage();
|
||||||
|
|
||||||
|
void registerNewMod(const QString & modName, bool keepDisabled);
|
||||||
|
|
||||||
void setModActive(const QString & modName, bool on);
|
void setModActive(const QString & modName, bool on);
|
||||||
void setActivePreset(const QString & presetName);
|
void setActivePreset(const QString & presetName);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user