summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Munro <brian.alexander.munro@gmail.com>2017-10-30 12:41:05 +0200
committerGitHub <noreply@github.com>2017-10-30 12:41:05 +0200
commitd15262b903f5d9fb0fb5ad0ebd2c0d9703eaaeb0 (patch)
treed81eef71631ec7a80d86eb62f4475eca93468af4
parentcabffa23a9b1ec053a7a573ed71883c44d7a5b6a (diff)
parent88452e5d76467fc687a9c4d6b6aaf7381d2463e1 (diff)
Merge pull request #113 from Silarn/mainline_dev
Updates for script extender usvfs loading
-rw-r--r--src/loadmechanism.cpp45
-rw-r--r--src/organizer_en.ts173
-rw-r--r--src/pluginlist.cpp26
-rw-r--r--src/shared/appconfig.inc2
4 files changed, 132 insertions, 114 deletions
diff --git a/src/loadmechanism.cpp b/src/loadmechanism.cpp
index 35aedfed..a2050512 100644
--- a/src/loadmechanism.cpp
+++ b/src/loadmechanism.cpp
@@ -133,17 +133,23 @@ void LoadMechanism::deactivateScriptExtender()
#pragma message("implement this for usvfs")
- /*
- QString hookDLLName = ToQString(AppConfig::hookDLLName());
- if (QFile(pluginsDir.absoluteFilePath(hookDLLName)).exists()) {
+ QString vfsDLLName = "";
+ if (extender->getArch() == IMAGE_FILE_MACHINE_I386) {
+ vfsDLLName = ToQString(AppConfig::vfs32DLLName());
+ }
+ else if (extender->getArch() == IMAGE_FILE_MACHINE_AMD64)
+ {
+ vfsDLLName = ToQString(AppConfig::vfs64DLLName());
+ }
+ qDebug("USVFS DLL Name: " + vfsDLLName.toLatin1());
+ if (QFile(pluginsDir.absoluteFilePath(vfsDLLName)).exists()) {
// remove dll from SE plugins directory
- if (!pluginsDir.remove(hookDLLName)) {
- throw MyException(QObject::tr("Failed to delete %1").arg(pluginsDir.absoluteFilePath(hookDLLName)));
+ if (!pluginsDir.remove(vfsDLLName)) {
+ throw MyException(QObject::tr("Failed to delete %1").arg(pluginsDir.absoluteFilePath(vfsDLLName)));
}
}
removeHintFile(pluginsDir);
- */
} catch (const std::exception &e) {
QMessageBox::critical(nullptr, QObject::tr("Failed to deactivate script extender loading"), e.what());
}
@@ -195,27 +201,37 @@ void LoadMechanism::activateScriptExtender()
}
#pragma message("implement this for usvfs")
-/*
- QString targetPath = pluginsDir.absoluteFilePath(ToQString(AppConfig::hookDLLName()));
- QString hookDLLPath = qApp->applicationDirPath() + "/" + QString::fromStdWString(AppConfig::hookDLLName());
+ QString targetPath;
+ QString vfsDLLPath;
+ if (extender->getArch() == IMAGE_FILE_MACHINE_I386) {
+ targetPath = pluginsDir.absoluteFilePath(ToQString(AppConfig::vfs32DLLName()));
+ vfsDLLPath = qApp->applicationDirPath() + "/" + QString::fromStdWString(AppConfig::vfs32DLLName());
+ }
+ else if (extender->getArch() == IMAGE_FILE_MACHINE_AMD64)
+ {
+ targetPath = pluginsDir.absoluteFilePath(ToQString(AppConfig::vfs64DLLName()));
+ vfsDLLPath = qApp->applicationDirPath() + "/" + QString::fromStdWString(AppConfig::vfs64DLLName());
+ }
+
+ qDebug("DLL USVFS Target Path: " + targetPath.toLatin1());
+ qDebug("DLL USVFS VFS DLL Path: " + vfsDLLPath.toLatin1());
QFile dllFile(targetPath);
if (dllFile.exists()) {
// may be outdated
- if (!hashIdentical(targetPath, hookDLLPath)) {
+ if (!hashIdentical(targetPath, vfsDLLPath)) {
dllFile.remove();
}
}
if (!dllFile.exists()) {
// install dll to SE plugins
- if (!QFile::copy(hookDLLPath, targetPath)) {
- throw MyException(QObject::tr("Failed to copy %1 to %2").arg(hookDLLPath, targetPath));
+ if (!QFile::copy(vfsDLLPath, targetPath)) {
+ throw MyException(QObject::tr("Failed to copy %1 to %2").arg(vfsDLLPath, targetPath));
}
}
writeHintFile(pluginsDir);
-*/
} catch (const std::exception &e) {
QMessageBox::critical(nullptr, QObject::tr("Failed to set up script extender loading"), e.what());
}
@@ -278,14 +294,17 @@ void LoadMechanism::activate(EMechanism mechanism)
{
switch (mechanism) {
case LOAD_MODORGANIZER: {
+ qDebug("Load Mechanism: Mod Organizer");
deactivateProxyDLL();
deactivateScriptExtender();
} break;
case LOAD_SCRIPTEXTENDER: {
+ qDebug("Load Mechanism: ScriptExtender");
deactivateProxyDLL();
activateScriptExtender();
} break;
case LOAD_PROXYDLL: {
+ qDebug("Load Mechanism: Proxy DLL");
deactivateScriptExtender();
activateProxyDLL();
} break;
diff --git a/src/organizer_en.ts b/src/organizer_en.ts
index 15785d1f..f8e6ffaa 100644
--- a/src/organizer_en.ts
+++ b/src/organizer_en.ts
@@ -2989,227 +2989,227 @@ p, li { white-space: pre-wrap; }
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="178"/>
+ <location filename="modinfodialog.cpp" line="180"/>
<source>&amp;Delete</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="179"/>
+ <location filename="modinfodialog.cpp" line="181"/>
<source>&amp;Rename</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="180"/>
+ <location filename="modinfodialog.cpp" line="182"/>
<source>&amp;Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="181"/>
+ <location filename="modinfodialog.cpp" line="183"/>
<source>&amp;Unhide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="182"/>
+ <location filename="modinfodialog.cpp" line="184"/>
<source>&amp;Open</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="183"/>
+ <location filename="modinfodialog.cpp" line="185"/>
<source>&amp;New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="433"/>
- <location filename="modinfodialog.cpp" line="448"/>
+ <location filename="modinfodialog.cpp" line="435"/>
+ <location filename="modinfodialog.cpp" line="450"/>
<source>Save changes?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="433"/>
- <location filename="modinfodialog.cpp" line="448"/>
+ <location filename="modinfodialog.cpp" line="435"/>
+ <location filename="modinfodialog.cpp" line="450"/>
<source>Save changes to &quot;%1&quot;?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="638"/>
+ <location filename="modinfodialog.cpp" line="640"/>
<source>File Exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="638"/>
+ <location filename="modinfodialog.cpp" line="640"/>
<source>A file with that name exists, please enter a new one</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="655"/>
+ <location filename="modinfodialog.cpp" line="657"/>
<source>failed to move file</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="680"/>
+ <location filename="modinfodialog.cpp" line="682"/>
<source>failed to create directory &quot;optional&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="720"/>
- <location filename="modinfodialog.cpp" line="1230"/>
+ <location filename="modinfodialog.cpp" line="722"/>
+ <location filename="modinfodialog.cpp" line="1228"/>
<source>Info requested, please wait</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="774"/>
+ <location filename="modinfodialog.cpp" line="776"/>
<source>Main</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="775"/>
+ <location filename="modinfodialog.cpp" line="777"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="776"/>
+ <location filename="modinfodialog.cpp" line="778"/>
<source>Optional</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="777"/>
+ <location filename="modinfodialog.cpp" line="779"/>
<source>Old</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="778"/>
+ <location filename="modinfodialog.cpp" line="780"/>
<source>Misc</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="779"/>
+ <location filename="modinfodialog.cpp" line="781"/>
<source>Unknown</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="790"/>
+ <location filename="modinfodialog.cpp" line="792"/>
<source>Current Version: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="794"/>
+ <location filename="modinfodialog.cpp" line="796"/>
<source>No update available</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="841"/>
+ <location filename="modinfodialog.cpp" line="839"/>
<source>(description incomplete, please visit nexus)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="856"/>
+ <location filename="modinfodialog.cpp" line="854"/>
<source>&lt;a href=&quot;%1&quot;&gt;Visit on Nexus&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="934"/>
+ <location filename="modinfodialog.cpp" line="932"/>
<source>Failed to delete %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="945"/>
- <location filename="modinfodialog.cpp" line="950"/>
+ <location filename="modinfodialog.cpp" line="943"/>
+ <location filename="modinfodialog.cpp" line="948"/>
<source>Confirm</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="945"/>
+ <location filename="modinfodialog.cpp" line="943"/>
<source>Are sure you want to delete &quot;%1&quot;?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="950"/>
+ <location filename="modinfodialog.cpp" line="948"/>
<source>Are sure you want to delete the selected files?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1024"/>
- <location filename="modinfodialog.cpp" line="1030"/>
+ <location filename="modinfodialog.cpp" line="1022"/>
+ <location filename="modinfodialog.cpp" line="1028"/>
<source>New Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1036"/>
+ <location filename="modinfodialog.cpp" line="1034"/>
<source>Failed to create &quot;%1&quot;</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1140"/>
- <location filename="modinfodialog.cpp" line="1164"/>
+ <location filename="modinfodialog.cpp" line="1138"/>
+ <location filename="modinfodialog.cpp" line="1162"/>
<source>Replace file?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1140"/>
+ <location filename="modinfodialog.cpp" line="1138"/>
<source>There already is a hidden version of this file. Replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1143"/>
- <location filename="modinfodialog.cpp" line="1167"/>
+ <location filename="modinfodialog.cpp" line="1141"/>
+ <location filename="modinfodialog.cpp" line="1165"/>
<source>File operation failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1143"/>
- <location filename="modinfodialog.cpp" line="1167"/>
+ <location filename="modinfodialog.cpp" line="1141"/>
+ <location filename="modinfodialog.cpp" line="1165"/>
<source>Failed to remove &quot;%1&quot;. Maybe you lack the required file permissions?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1154"/>
- <location filename="modinfodialog.cpp" line="1177"/>
+ <location filename="modinfodialog.cpp" line="1152"/>
+ <location filename="modinfodialog.cpp" line="1175"/>
<source>failed to rename %1 to %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1164"/>
+ <location filename="modinfodialog.cpp" line="1162"/>
<source>There already is a visible version of this file. Replace it?</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1210"/>
+ <location filename="modinfodialog.cpp" line="1208"/>
<source>Un-Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1212"/>
+ <location filename="modinfodialog.cpp" line="1210"/>
<source>Hide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1253"/>
+ <location filename="modinfodialog.cpp" line="1251"/>
<source>Name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1253"/>
+ <location filename="modinfodialog.cpp" line="1251"/>
<source>Please enter a name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1257"/>
- <location filename="modinfodialog.cpp" line="1260"/>
+ <location filename="modinfodialog.cpp" line="1255"/>
+ <location filename="modinfodialog.cpp" line="1258"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1257"/>
+ <location filename="modinfodialog.cpp" line="1255"/>
<source>Invalid name. Must be a valid file name</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1260"/>
+ <location filename="modinfodialog.cpp" line="1258"/>
<source>A tweak by that name exists</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="modinfodialog.cpp" line="1274"/>
+ <location filename="modinfodialog.cpp" line="1272"/>
<source>Create Tweak</source>
<translation type="unfinished"></translation>
</message>
@@ -4769,52 +4769,52 @@ Start elevated anyway? (you will be asked if you want to allow ModOrganizer.exe
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="166"/>
+ <location filename="selfupdater.cpp" line="172"/>
<source>New update available (%1)</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="171"/>
+ <location filename="selfupdater.cpp" line="177"/>
<source>Install</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="188"/>
+ <location filename="selfupdater.cpp" line="194"/>
<source>Download failed</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="189"/>
+ <location filename="selfupdater.cpp" line="195"/>
<source>Failed to find correct download, please try again later.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="204"/>
+ <location filename="selfupdater.cpp" line="210"/>
<source>Update</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="205"/>
+ <location filename="selfupdater.cpp" line="211"/>
<source>Download in progress</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="296"/>
+ <location filename="selfupdater.cpp" line="302"/>
<source>Download failed: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="307"/>
+ <location filename="selfupdater.cpp" line="313"/>
<source>Failed to install update: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="330"/>
+ <location filename="selfupdater.cpp" line="336"/>
<source>Failed to start %1: %2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="selfupdater.cpp" line="340"/>
+ <location filename="selfupdater.cpp" line="346"/>
<source>Error</source>
<translation type="unfinished"></translation>
</message>
@@ -5919,113 +5919,108 @@ Please open the &quot;Nexus&quot;-tab</source>
<context>
<name>tutorial_primer_main</name>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="60"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="71"/>
<source>This window shows all the mods that are installed. The column headers can be used for sorting. Only checked mods are active in the current profile.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="61"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="72"/>
<source>Each profile is a separate set of enabled mods and ini settings.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="62"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="73"/>
<source>The dropdown allows various ways of grouping the mods shown in the mod list.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="63"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="74"/>
<source>Show/hide the category pane.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="64"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="75"/>
<source>Quickly filter the mod list as you type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="65"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="76"/>
<source>Switch between information views.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="66"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="77"/>
<source>This shows mod categories and some meta categories (in angle-brackets). Select some to filter the mod list. For example select &quot;&lt;Checked&gt;&quot; to show only active mods.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="67"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="78"/>
<source>Customizable list for choosing the program to run.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="68"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="79"/>
<source>When this button is clicked, Mod Organizer creates a virtual directory structure then runs the program selected to the left.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="69"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="80"/>
<source>Will create a shortcut for quick access. The shortcut can be placed in the toolbar at the top, in the Start Menu or on the Windows Desktop.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="70"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="81"/>
<source>Log messages produced by MO. Please note that messages with a light bulb usually don&apos;t require your attention.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="72"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="83"/>
<source>Configure Mod Organizer.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="73"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="84"/>
<source>Reports potential Problems about the current setup.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="74"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="85"/>
<source>Activates if there is an update for MO. Please note that if, for any reason, MO can&apos;t communicate with NMM, this will not work either.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="78"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="89"/>
<source>Plugins (esp/esm/esl files) of the mods in the current profile. They need to be checked to be loaded.</source>
<oldsource>Plugins (esp/esm files) of the mods in the current profile. They need to be checked to be loaded.</oldsource>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="79"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="90"/>
<source>Automatically sort plugins using the bundled LOOT application.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="80"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="91"/>
<source>Quickly filter plugin list as you type.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="83"/>
- <source>All the asset archives (.bsa files) for all active mods.</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="tutorials/tutorial_primer_main.js" line="86"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="97"/>
<source>The directory tree and all files that the program will see.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="89"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="100"/>
<source>Save game browser. Shows all the saves for the current profile and whether or not the current mod-load status is correct.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="92"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="103"/>
<source>Shows the mods that have been downloaded and if they’ve been installed.</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="tutorials/tutorial_primer_main.js" line="100"/>
+ <location filename="tutorials/tutorial_primer_main.js" line="111"/>
<source>Click to quit</source>
<translation type="unfinished"></translation>
</message>
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index a66a2fb4..4420bf17 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -686,18 +686,18 @@ void PluginList::testMasters()
// emit layoutAboutToBeChanged();
std::set<QString> enabledMasters;
- for (auto iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) {
- if (iter->m_Enabled) {
- enabledMasters.insert(iter->m_Name.toLower());
+ for (const auto& iter: m_ESPs) {
+ if (iter.m_Enabled) {
+ enabledMasters.insert(iter.m_Name.toLower());
}
}
- for (auto iter = m_ESPs.begin(); iter != m_ESPs.end(); ++iter) {
- iter->m_MasterUnset.clear();
- if (iter->m_Enabled) {
- for (auto master = iter->m_Masters.begin(); master != iter->m_Masters.end(); ++master) {
- if (enabledMasters.find(master->toLower()) == enabledMasters.end()) {
- iter->m_MasterUnset.insert(*master);
+ for (auto& iter: m_ESPs) {
+ iter.m_MasterUnset.clear();
+ if (iter.m_Enabled) {
+ for (const auto& master: iter.m_Masters) {
+ if (enabledMasters.find(master.toLower()) == enabledMasters.end()) {
+ iter.m_MasterUnset.insert(master);
}
}
}
@@ -1138,8 +1138,10 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled,
{
try {
ESP::File file(ToWString(fullPath));
- m_IsMaster = file.isMaster() && !file.isLight();
- m_IsLight = file.isLight();
+ m_IsMaster = file.isMaster();
+ auto extension = name.right(3).toLower();
+ m_IsLight = (extension == "esl"); // The .isLight() header is apparently meaningless.
+
m_Author = QString::fromLatin1(file.author().c_str());
m_Description = QString::fromLatin1(file.description().c_str());
std::set<std::string> masters = file.masters();
@@ -1147,7 +1149,7 @@ PluginList::ESPInfo::ESPInfo(const QString &name, bool enabled,
m_Masters.insert(QString(iter->c_str()));
}
} catch (const std::exception &e) {
- qCritical("failed to parse esp file %s: %s", qPrintable(fullPath), e.what());
+ qCritical("failed to parse plugin file %s: %s", qPrintable(fullPath), e.what());
m_IsMaster = false;
m_IsLight = false;
}
diff --git a/src/shared/appconfig.inc b/src/shared/appconfig.inc
index ac6c210f..e98757d3 100644
--- a/src/shared/appconfig.inc
+++ b/src/shared/appconfig.inc
@@ -14,6 +14,8 @@ APPPARAM(std::wstring, iniFileName, L"ModOrganizer.ini")
APPPARAM(std::wstring, proxyDLLTarget, L"steam_api.dll")
APPPARAM(std::wstring, proxyDLLOrig, L"steam_api_orig.dll") // needs to be identical to the value used in proxydll-project
APPPARAM(std::wstring, proxyDLLSource, L"proxy.dll")
+APPPARAM(std::wstring, vfs32DLLName, L"usvfs_x86.dll")
+APPPARAM(std::wstring, vfs64DLLName, L"usvfs_x64.dll")
APPPARAM(const wchar_t*, localSavePlaceholder, L"__MOProfileSave__\\")
APPPARAM(std::wstring, firstStepsTutorial, L"tutorial_firststeps_main.js")