summaryrefslogtreecommitdiff
path: root/src/organizercore.cpp
diff options
context:
space:
mode:
authorLostDragonist <lost.dragonist@gmail.com>2018-12-08 20:23:45 -0600
committerLostDragonist <lost.dragonist@gmail.com>2018-12-08 20:23:45 -0600
commitd7e6fd1dd65edc265b8d44928dc02cd4c76af069 (patch)
treedc7f6673763c55be30a598491ca2e4063c098b58 /src/organizercore.cpp
parent9d9dbd9f7e06f4abc3ad57f1574f98210ac65bc9 (diff)
Don't disable ESMs when disabling mods if alternatives are available
Diffstat (limited to 'src/organizercore.cpp')
-rw-r--r--src/organizercore.cpp11
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 :