summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Rimpo <jeremy.rimpo@servermonkey.com>2024-05-19 02:40:47 -0500
committerGitHub <noreply@github.com>2024-05-19 09:40:47 +0200
commit9ee4c5afe18eb887acf4ea843b56da9a267d34b0 (patch)
tree500c2248e40005f3d06291e45d64c397c578c7d5
parenta1d199134d819683a9b35cb4802e0c8f4edc4dc2 (diff)
Disable ESLs when no ESL support (#2026)
* Show ESL plugins but disable and warn if unsupported
-rw-r--r--src/pluginlist.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index da63d934..b1fd9757 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -210,6 +210,9 @@ void PluginList::refresh(const QString& profileName,
bool forceDisabled =
m_GamePlugin->loadOrderMechanism() == IPluginGame::LoadOrderMechanism::None &&
!forceLoaded && !forceEnabled;
+ if (!lightPluginsAreSupported && filename.endsWith(".esl")) {
+ forceDisabled = true;
+ }
bool archive = false;
try {
@@ -1355,8 +1358,13 @@ QVariant PluginList::tooltipData(const QModelIndex& modelIndex) const
}
if (esp.forceDisabled) {
- toolTip += "<br><br>" + tr("This game does not currently permit custom plugin "
- "loading. There may be manual workarounds.");
+ if (m_GamePlugin->feature<GamePlugins>() && esp.hasLightExtension &&
+ !m_GamePlugin->feature<GamePlugins>()->lightPluginsAreSupported()) {
+ toolTip += "<br><br>" + tr("Light plugins (ESL) are not supported by this game.");
+ } else {
+ toolTip += "<br><br>" + tr("This game does not currently permit custom plugin "
+ "loading. There may be manual workarounds.");
+ }
}
// additional info
@@ -1804,7 +1812,7 @@ PluginList::ESPInfo::ESPInfo(const QString& name, bool forceLoaded, bool forceEn
ESP::File file(ToWString(fullPath));
auto extension = name.right(3).toLower();
hasMasterExtension = (extension == "esm");
- hasLightExtension = lightSupported && (extension == "esl");
+ hasLightExtension = (extension == "esl");
isMasterFlagged = file.isMaster();
isOverlayFlagged = overlaySupported && file.isOverlay();
isLightFlagged =