diff options
Diffstat (limited to 'libs/basic_games_native/src/basicgameplugin.h')
| -rw-r--r-- | libs/basic_games_native/src/basicgameplugin.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/libs/basic_games_native/src/basicgameplugin.h b/libs/basic_games_native/src/basicgameplugin.h new file mode 100644 index 0000000..17f4ec9 --- /dev/null +++ b/libs/basic_games_native/src/basicgameplugin.h @@ -0,0 +1,73 @@ +#ifndef BASICGAMEPLUGIN_H +#define BASICGAMEPLUGIN_H + +#include "gamedefs.h" + +#include <uibase/iplugingame.h> +#include <uibase/imoinfo.h> + +#include <QDir> +#include <QIcon> +#include <QString> + +class BasicGamePlugin : public MOBase::IPluginGame +{ + Q_OBJECT + Q_INTERFACES(MOBase::IPlugin MOBase::IPluginGame) + +public: + explicit BasicGamePlugin(const GameDefinition& def); + + // IPlugin + bool init(MOBase::IOrganizer* organizer) override; + QString name() const override; + QString localizedName() const override; + QString author() const override; + QString description() const override; + MOBase::VersionInfo version() const override; + QList<MOBase::PluginSetting> settings() const override; + + // IPluginGame + QString gameName() const override; + void detectGame() override; + void initializeProfile(const QDir& directory, + ProfileSettings settings) const override; + std::vector<std::shared_ptr<const MOBase::ISaveGame>> + listSaves(QDir folder) const override; + bool isInstalled() const override; + QIcon gameIcon() const override; + QDir gameDirectory() const override; + QDir dataDirectory() const override; + void setGamePath(const QString& path) override; + QDir documentsDirectory() const override; + QDir savesDirectory() const override; + QList<MOBase::ExecutableInfo> executables() const override; + QList<MOBase::ExecutableForcedLoadSetting> executableForcedLoads() const override; + QString steamAPPId() const override; + QStringList primaryPlugins() const override; + QStringList gameVariants() const override; + void setGameVariant(const QString& variant) override; + QString binaryName() const override; + QString gameShortName() const override; + QStringList validShortNames() const override; + QString gameNexusName() const override; + QStringList iniFiles() const override; + QStringList DLCPlugins() const override; + LoadOrderMechanism loadOrderMechanism() const override; + SortMechanism sortMechanism() const override; + int nexusGameID() const override; + bool looksValid(QDir const& dir) const override; + QString gameVersion() const override; + QString getLauncherName() const override; + QString getSupportURL() const override; + +private: + QString resolveVariables(const QString& input) const; + + GameDefinition m_def; + MOBase::IOrganizer* m_organizer = nullptr; + QString m_gameDir; + bool m_installed = false; +}; + +#endif // BASICGAMEPLUGIN_H |
