From 9ee4c5afe18eb887acf4ea843b56da9a267d34b0 Mon Sep 17 00:00:00 2001 From: Jeremy Rimpo Date: Sun, 19 May 2024 02:40:47 -0500 Subject: Disable ESLs when no ESL support (#2026) * Show ESL plugins but disable and warn if unsupported --- src/pluginlist.cpp | 14 +++++++++++--- 1 file 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 += "

" + tr("This game does not currently permit custom plugin " - "loading. There may be manual workarounds."); + if (m_GamePlugin->feature() && esp.hasLightExtension && + !m_GamePlugin->feature()->lightPluginsAreSupported()) { + toolTip += "

" + tr("Light plugins (ESL) are not supported by this game."); + } else { + toolTip += "

" + 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 = -- cgit v1.3.1