diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2018-12-08 20:23:45 -0600 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2018-12-08 20:23:45 -0600 |
| commit | d7e6fd1dd65edc265b8d44928dc02cd4c76af069 (patch) | |
| tree | dc7f6673763c55be30a598491ca2e4063c098b58 /src/organizercore.cpp | |
| parent | 9d9dbd9f7e06f4abc3ad57f1574f98210ac65bc9 (diff) | |
Don't disable ESMs when disabling mods if alternatives are available
Diffstat (limited to 'src/organizercore.cpp')
| -rw-r--r-- | src/organizercore.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/organizercore.cpp b/src/organizercore.cpp index 1a5a9484..d52ef40b 100644 --- a/src/organizercore.cpp +++ b/src/organizercore.cpp @@ -1772,7 +1772,16 @@ void OrganizerCore::updateModActiveState(int index, bool active) QDir dir(modInfo->absolutePath());
for (const QString &esm :
dir.entryList(QStringList() << "*.esm", QDir::Files)) {
- m_PluginList.enableESP(esm, active);
+ const FileEntry::Ptr file = m_DirectoryStructure->findFile(ToWString(esm));
+ if (file.get() == nullptr) {
+ qWarning("failed to activate %s", qPrintable(esm));
+ continue;
+ }
+
+ if (active != m_PluginList.isEnabled(esm)
+ && file->getAlternatives().empty()) {
+ m_PluginList.enableESP(esm, active);
+ }
}
int enabled = 0;
for (const QString &esl :
|
