diff options
Diffstat (limited to 'src/shared/gameinfo.h')
| -rw-r--r-- | src/shared/gameinfo.h | 79 |
1 files changed, 5 insertions, 74 deletions
diff --git a/src/shared/gameinfo.h b/src/shared/gameinfo.h index 33467cb9..77ed4d3c 100644 --- a/src/shared/gameinfo.h +++ b/src/shared/gameinfo.h @@ -29,31 +29,6 @@ along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>. namespace MOShared {
-enum CloseMOStyle {
- DEFAULT_CLOSE,
- DEFAULT_STAY,
- NEVER_CLOSE
-};
-
-struct ExecutableInfo {
-
- ExecutableInfo(const std::wstring &aTitle, const std::wstring &aBinary,
- const std::wstring &aArguments, const std::wstring &aWorkingDirectory, CloseMOStyle aCloseMO)
- : title(aTitle), binary(aBinary), arguments(aArguments), workingDirectory(aWorkingDirectory),
- closeMO(aCloseMO), steamAppID(L"") {}
- ExecutableInfo(const std::wstring &aTitle, const std::wstring &aBinary,
- const std::wstring &aArguments, const std::wstring &aWorkingDirectory,
- CloseMOStyle aCloseMO, const std::wstring &aSteamAppID)
- : title(aTitle), binary(aBinary), arguments(aArguments), workingDirectory(aWorkingDirectory),
- closeMO(aCloseMO), steamAppID(aSteamAppID) {}
- std::wstring title;
- std::wstring binary;
- std::wstring arguments;
- std::wstring workingDirectory;
- CloseMOStyle closeMO;
- std::wstring steamAppID;
-};
-
/**
Class to manage information that depends on the used game type. The intention is to keep
@@ -86,50 +61,19 @@ public: virtual std::wstring getRegPath() = 0;
virtual std::wstring getBinaryName() = 0;
- virtual unsigned long getBSAVersion() = 0;
-
virtual GameInfo::Type getType() = 0;
virtual std::wstring getGameName() const = 0;
virtual std::wstring getGameShortName() const = 0;
- // full path to this games "My Games"-directory
- virtual std::wstring getDocumentsDir() = 0;
-
- virtual std::wstring getSaveGameDir() = 0;
-
/// determine the load order mechanism used by this game. this may throw an
/// exception if the mechanism can't be determined
virtual LoadOrderMechanism getLoadOrderMechanism() const { return TYPE_FILETIME; }
virtual std::wstring getGameDirectory() const;
- // get absolute path to the directory where omo stores its mods
- virtual std::wstring getModsDir() const;
- // get absolute path to the directory where omo stores its profiles
- virtual std::wstring getProfilesDir() const;
-
- virtual std::wstring getIniFilename() const;
- virtual std::wstring getDownloadDir() const;
- virtual std::wstring getCacheDir() const;
- virtual std::wstring getOverwriteDir() const;
- virtual std::wstring getLogDir() const;
- virtual std::wstring getLootDir() const;
- virtual std::wstring getTutorialDir() const;
- virtual bool requiresBSAInvalidation() const { return true; }
virtual bool requiresSteam() const;
- virtual std::wstring getInvalidationBSA() = 0;
-
- virtual bool isInvalidationBSA(const std::wstring &bsaName) = 0;
-
- // the key in the game's ini-file that defines the list of bsas to load
- virtual std::wstring archiveListKey() = 0;
-
- virtual std::vector<std::wstring> getPrimaryPlugins() = 0;
-
- virtual std::vector<std::wstring> getVanillaBSAs() = 0;
-
// get a list of file extensions for additional files belonging to a save game
virtual std::vector<std::wstring> getSavegameAttachmentExtensions() = 0;
@@ -139,42 +83,28 @@ public: // file name of this games ini file(s)
virtual std::vector<std::wstring> getIniFileNames() = 0;
- virtual std::wstring getSaveGameExtension() = 0;
virtual std::wstring getReferenceDataFile() = 0;
- virtual std::wstring getOMODExt() = 0;
-
virtual std::vector<std::wstring> getSteamVariants() const;
- virtual std::wstring getSteamAPPId(int variant = 0) const = 0;
-
- virtual std::wstring getSEName() = 0;
virtual std::wstring getNexusPage(bool nmmScheme = true) = 0;
virtual std::wstring getNexusInfoUrl() = 0;
virtual int getNexusModID() = 0;
virtual int getNexusGameID() = 0;
- // clone relevant files to the specified directory
- virtual void createProfile(const std::wstring &directory, bool useDefaults) = 0;
- virtual void repairProfile(const std::wstring &directory) = 0;
-
virtual bool rerouteToProfile(const wchar_t *fileName, const wchar_t *fullPath) = 0;
- // get a list of executables (game binary and known-to-work 3rd party tools). All of these are relative to
- // the game directory. the boolean says whether omo should be closed when the executable is started
- virtual std::vector<ExecutableInfo> getExecutables() = 0;
-
public:
- // initialise with the path to the omo directory (needs to be where hook.dll is stored). This
+ // initialise with the path to the mo directory (needs to be where hook.dll is stored). This
// needs to be called before the instance can be retrieved
- static bool init(const std::wstring &omoDirectory, const std::wstring &gamePath = L"");
+ static bool init(const std::wstring &moDirectory, const std::wstring &moDataDirectory, const std::wstring &gamePath = L"");
static GameInfo& instance();
protected:
- GameInfo(const std::wstring &omoDirectory, const std::wstring &gameDirectory);
+ GameInfo(const std::wstring &moDirectory, const std::wstring &moDataDirectory, const std::wstring &gameDirectory);
std::wstring getLocalAppFolder() const;
const std::wstring &getMyGamesDirectory() const { return m_MyGamesDirectory; }
@@ -182,7 +112,7 @@ protected: private:
- static bool identifyGame(const std::wstring &omoDirectory, const std::wstring &searchPath);
+ static bool identifyGame(const std::wstring &moDirectory, const std::wstring &moDataDirectory, const std::wstring &searchPath);
std::wstring getSpecialPath(LPCWSTR name) const;
static void cleanup();
@@ -195,6 +125,7 @@ private: std::wstring m_GameDirectory;
std::wstring m_OrganizerDirectory;
+ std::wstring m_OrganizerDataDirectory;
};
|
