diff options
| author | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-05-22 15:27:19 +0200 |
|---|---|---|
| committer | Mikaël Capelle <capelle.mikael@gmail.com> | 2020-05-22 15:27:19 +0200 |
| commit | 5fc66d879391135878e06ee25a32526b9d5c59d9 (patch) | |
| tree | 4953a926d036f0b908f1d47851b8b9878cb93d31 /src | |
| parent | c0035ada020fe90085c698c0829f771c8d542031 (diff) | |
Move m_GamePlugin up into ModInfoWithConflictInfo.
Diffstat (limited to 'src')
| -rw-r--r-- | src/modinfo.cpp | 9 | ||||
| -rw-r--r-- | src/modinfo.h | 4 | ||||
| -rw-r--r-- | src/modinfoforeign.cpp | 3 | ||||
| -rw-r--r-- | src/modinfoforeign.h | 1 | ||||
| -rw-r--r-- | src/modinfooverwrite.cpp | 4 | ||||
| -rw-r--r-- | src/modinfooverwrite.h | 2 | ||||
| -rw-r--r-- | src/modinforegular.cpp | 3 | ||||
| -rw-r--r-- | src/modinforegular.h | 3 | ||||
| -rw-r--r-- | src/modinfoseparator.h | 8 | ||||
| -rw-r--r-- | src/modinfowithconflictinfo.cpp | 7 | ||||
| -rw-r--r-- | src/modinfowithconflictinfo.h | 10 |
11 files changed, 33 insertions, 21 deletions
diff --git a/src/modinfo.cpp b/src/modinfo.cpp index 7f888bdc..379fa071 100644 --- a/src/modinfo.cpp +++ b/src/modinfo.cpp @@ -97,11 +97,12 @@ ModInfo::Ptr ModInfo::createFromPlugin(const QString &modName, const QString &espName, const QStringList &bsaNames, ModInfo::EModType modType, + const MOBase::IPluginGame* game, DirectoryEntry **directoryStructure, PluginContainer *pluginContainer) { QMutexLocker locker(&s_Mutex); ModInfo::Ptr result = ModInfo::Ptr( - new ModInfoForeign(modName, espName, bsaNames, modType, directoryStructure, pluginContainer)); + new ModInfoForeign(modName, espName, bsaNames, modType, game, directoryStructure, pluginContainer)); s_Collection.push_back(result); return result; } @@ -128,11 +129,12 @@ QString ModInfo::getContentTypeName(int contentType) } void ModInfo::createFromOverwrite(PluginContainer *pluginContainer, + const MOBase::IPluginGame* game, MOShared::DirectoryEntry **directoryStructure) { QMutexLocker locker(&s_Mutex); - s_Collection.push_back(ModInfo::Ptr(new ModInfoOverwrite(pluginContainer, directoryStructure))); + s_Collection.push_back(ModInfo::Ptr(new ModInfoOverwrite(pluginContainer, game, directoryStructure))); } unsigned int ModInfo::getNumMods() @@ -274,12 +276,13 @@ void ModInfo::updateFromDisc(const QString &modDirectory, unmanaged->referenceFile(modName).absoluteFilePath(), unmanaged->secondaryFiles(modName), modType, + game, directoryStructure, pluginContainer); } } - createFromOverwrite(pluginContainer, directoryStructure); + createFromOverwrite(pluginContainer, game, directoryStructure); std::sort(s_Collection.begin(), s_Collection.end(), ModInfo::ByName); diff --git a/src/modinfo.h b/src/modinfo.h index 2c108378..f582cc32 100644 --- a/src/modinfo.h +++ b/src/modinfo.h @@ -232,7 +232,8 @@ public: * @param bsaNames names of archives * @return a new mod */ - static ModInfo::Ptr createFromPlugin(const QString &modName, const QString &espName, const QStringList &bsaNames, ModInfo::EModType modType, MOShared::DirectoryEntry **directoryStructure, PluginContainer *pluginContainer); + static ModInfo::Ptr createFromPlugin(const QString &modName, const QString &espName, const QStringList &bsaNames, ModInfo::EModType modType, + const MOBase::IPluginGame* game, MOShared::DirectoryEntry **directoryStructure, PluginContainer *pluginContainer); // whether the given name is used for separators // @@ -826,6 +827,7 @@ protected: private: static void createFromOverwrite(PluginContainer *pluginContainer, + const MOBase::IPluginGame* game, MOShared::DirectoryEntry **directoryStructure); protected: diff --git a/src/modinfoforeign.cpp b/src/modinfoforeign.cpp index e8f9548a..19413891 100644 --- a/src/modinfoforeign.cpp +++ b/src/modinfoforeign.cpp @@ -46,9 +46,10 @@ ModInfoForeign::ModInfoForeign(const QString &modName, const QString &referenceFile, const QStringList &archives, ModInfo::EModType modType, + const MOBase::IPluginGame* gamePlugin, DirectoryEntry **directoryStructure, PluginContainer *pluginContainer) - : ModInfoWithConflictInfo(pluginContainer, directoryStructure), + : ModInfoWithConflictInfo(pluginContainer, gamePlugin, directoryStructure), m_ReferenceFile(referenceFile), m_Archives(archives), m_ModType(modType) { m_CreationTime = QFileInfo(referenceFile).birthTime(); diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h index da2c865b..ae4241ee 100644 --- a/src/modinfoforeign.h +++ b/src/modinfoforeign.h @@ -71,6 +71,7 @@ public: protected: ModInfoForeign(const QString &modName, const QString &referenceFile, const QStringList &archives, ModInfo::EModType modType, + const MOBase::IPluginGame *gamePlugin, MOShared::DirectoryEntry **directoryStructure, PluginContainer *pluginContainer); private: diff --git a/src/modinfooverwrite.cpp b/src/modinfooverwrite.cpp index 1f7f9318..3b914134 100644 --- a/src/modinfooverwrite.cpp +++ b/src/modinfooverwrite.cpp @@ -6,8 +6,8 @@ #include <QApplication> #include <QDirIterator> -ModInfoOverwrite::ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure) - : ModInfoWithConflictInfo(pluginContainer, directoryStructure) +ModInfoOverwrite::ModInfoOverwrite(PluginContainer *pluginContainer, const MOBase::IPluginGame *game, MOShared::DirectoryEntry **directoryStructure) + : ModInfoWithConflictInfo(pluginContainer, game, directoryStructure) { testValid(); } diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h index 0bcf6f27..9770ecbb 100644 --- a/src/modinfooverwrite.h +++ b/src/modinfooverwrite.h @@ -68,7 +68,7 @@ public: virtual void addInstalledFile(int, int) override {} private: - ModInfoOverwrite(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure ); + ModInfoOverwrite(PluginContainer *pluginContainer, const MOBase::IPluginGame* game, MOShared::DirectoryEntry **directoryStructure); }; diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp index a1ef5701..d89716da 100644 --- a/src/modinforegular.cpp +++ b/src/modinforegular.cpp @@ -25,11 +25,10 @@ namespace { } ModInfoRegular::ModInfoRegular(PluginContainer *pluginContainer, const IPluginGame *game, const QDir &path, DirectoryEntry **directoryStructure) - : ModInfoWithConflictInfo(pluginContainer, directoryStructure) + : ModInfoWithConflictInfo(pluginContainer, game, directoryStructure) , m_Name(path.dirName()) , m_Path(path.absolutePath()) , m_Repository() - , m_GamePlugin(game) , m_GameName(game->gameShortName()) , m_IsAlternate(false) , m_Converted(false) diff --git a/src/modinforegular.h b/src/modinforegular.h index 75b24a6b..0f22b6cb 100644 --- a/src/modinforegular.h +++ b/src/modinforegular.h @@ -432,9 +432,6 @@ private: QString m_CustomURL; bool m_HasCustomURL; - // Current game plugin running in MO2: - MOBase::IPluginGame const* m_GamePlugin; - // Game name for the mod, can be different from the actual game running in MO2 // e.g., for Skyrim / Skyrim SE. QString m_GameName; diff --git a/src/modinfoseparator.h b/src/modinfoseparator.h index 80734bcf..4cfb9ea0 100644 --- a/src/modinfoseparator.h +++ b/src/modinfoseparator.h @@ -53,10 +53,10 @@ protected: private: - ModInfoSeparator - ( - PluginContainer* pluginContainer, const MOBase::IPluginGame* game, const QDir& path, - MOShared::DirectoryEntry** directoryStructure); + ModInfoSeparator( + PluginContainer* pluginContainer, + const MOBase::IPluginGame* game, const QDir& path, + MOShared::DirectoryEntry** directoryStructure); }; #endif diff --git a/src/modinfowithconflictinfo.cpp b/src/modinfowithconflictinfo.cpp index d0516d06..00f4275c 100644 --- a/src/modinfowithconflictinfo.cpp +++ b/src/modinfowithconflictinfo.cpp @@ -6,12 +6,15 @@ #include "shared/fileentry.h" #include <filesystem> +#include "qdirfiletree.h" + using namespace MOBase; using namespace MOShared; namespace fs = std::filesystem; -ModInfoWithConflictInfo::ModInfoWithConflictInfo(PluginContainer *pluginContainer, DirectoryEntry **directoryStructure) - : ModInfo(pluginContainer), m_DirectoryStructure(directoryStructure), m_HasLooseOverwrite(false), m_HasHiddenFiles(false) {} +ModInfoWithConflictInfo::ModInfoWithConflictInfo( + PluginContainer *pluginContainer, const MOBase::IPluginGame* gamePlugin, DirectoryEntry **directoryStructure) + : ModInfo(pluginContainer), m_GamePlugin(gamePlugin), m_DirectoryStructure(directoryStructure), m_HasLooseOverwrite(false), m_HasHiddenFiles(false) {} void ModInfoWithConflictInfo::clearCaches() { diff --git a/src/modinfowithconflictinfo.h b/src/modinfowithconflictinfo.h index 0bb7c422..94a61c62 100644 --- a/src/modinfowithconflictinfo.h +++ b/src/modinfowithconflictinfo.h @@ -10,8 +10,6 @@ class ModInfoWithConflictInfo : public ModInfo public: - ModInfoWithConflictInfo(PluginContainer *pluginContainer, MOShared::DirectoryEntry **directoryStructure); - std::vector<ModInfo::EConflictFlag> getConflictFlags() const override; virtual std::vector<ModInfo::EFlag> getFlags() const override; @@ -43,6 +41,11 @@ protected: **/ virtual bool doTestValid() const; + ModInfoWithConflictInfo( + PluginContainer* pluginContainer, + const MOBase::IPluginGame* gamePlugin, + MOShared::DirectoryEntry** directoryStructure); + private: enum EConflictType { @@ -80,6 +83,9 @@ private: private: + // Current game plugin running in MO2: + MOBase::IPluginGame const* m_GamePlugin; + MOShared::DirectoryEntry **m_DirectoryStructure; mutable EConflictType m_CurrentConflictState; |
