summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/directoryrefresher.cpp13
-rw-r--r--src/pluginlist.cpp17
2 files changed, 21 insertions, 9 deletions
diff --git a/src/directoryrefresher.cpp b/src/directoryrefresher.cpp
index 0369b1b0..383e6b33 100644
--- a/src/directoryrefresher.cpp
+++ b/src/directoryrefresher.cpp
@@ -216,9 +216,12 @@ void DirectoryRefresher::addModBSAToStructure(
{
const IPluginGame *game = qApp->property("managed_game").value<IPluginGame*>();
- GamePlugins *gamePlugins = game->feature<GamePlugins>();
QStringList loadOrder = QStringList();
- gamePlugins->getLoadOrder(loadOrder);
+
+ GamePlugins* gamePlugins = game->feature<GamePlugins>();
+ if (gamePlugins) {
+ gamePlugins->getLoadOrder(loadOrder);
+ }
std::vector<std::wstring> lo;
for (auto&& s : loadOrder) {
@@ -364,9 +367,11 @@ struct ModThread
if (Settings::instance().archiveParsing()) {
const IPluginGame *game = qApp->property("managed_game").value<IPluginGame*>();
- GamePlugins *gamePlugins = game->feature<GamePlugins>();
QStringList loadOrder = QStringList();
- gamePlugins->getLoadOrder(loadOrder);
+ GamePlugins* gamePlugins = game->feature<GamePlugins>();
+ if (gamePlugins) {
+ gamePlugins->getLoadOrder(loadOrder);
+ }
std::vector<std::wstring> lo;
for (auto&& s : loadOrder) {
diff --git a/src/pluginlist.cpp b/src/pluginlist.cpp
index 1f320982..c2667557 100644
--- a/src/pluginlist.cpp
+++ b/src/pluginlist.cpp
@@ -185,7 +185,8 @@ void PluginList::refresh(const QString &profileName
ChangeBracket<PluginList> layoutChange(this);
QStringList primaryPlugins = m_GamePlugin->primaryPlugins();
- bool lightPluginsAreSupported = m_GamePlugin->feature<GamePlugins>()->lightPluginsAreSupported();
+ GamePlugins *gamePlugins = m_GamePlugin->feature<GamePlugins>();
+ const bool lightPluginsAreSupported = gamePlugins ? gamePlugins->lightPluginsAreSupported() : false;
m_CurrentProfile = profileName;
@@ -265,8 +266,9 @@ void PluginList::refresh(const QString &profileName
// indices need to work. priority will be off however
updateIndices();
- GamePlugins *gamePlugins = m_GamePlugin->feature<GamePlugins>();
- gamePlugins->readPluginLists(this);
+ if (gamePlugins) {
+ gamePlugins->readPluginLists(this);
+ }
testMasters();
@@ -521,7 +523,9 @@ void PluginList::saveTo(const QString &lockedOrderFileName
, bool hideUnchecked) const
{
GamePlugins *gamePlugins = m_GamePlugin->feature<GamePlugins>();
- gamePlugins->writePluginLists(this);
+ if (gamePlugins) {
+ gamePlugins->writePluginLists(this);
+ }
writeLockedOrder(lockedOrderFileName);
@@ -870,7 +874,10 @@ void PluginList::generatePluginIndexes()
{
int numESLs = 0;
int numSkipped = 0;
- bool lightPluginsSupported = m_GamePlugin->feature<GamePlugins>()->lightPluginsAreSupported();
+
+ GamePlugins* gamePlugins = m_GamePlugin->feature<GamePlugins>();
+ const bool lightPluginsSupported = gamePlugins ? gamePlugins->lightPluginsAreSupported() : false;
+
for (int l = 0; l < m_ESPs.size(); ++l) {
int i = m_ESPsByPriority.at(l);
if (!m_ESPs[i].enabled) {