aboutsummaryrefslogtreecommitdiff
path: root/libs/game_bethesda/src/games/falloutnv/gamefalloutnv.h
blob: 74f98b2fbc706269db1aa155c0ebfeb901d754aa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#ifndef GAMEFALLOUTNV_H
#define GAMEFALLOUTNV_H

#include "gamegamebryo.h"

#include <QObject>
#include <QtGlobal>

class GameFalloutNV : public GameGamebryo
{
  Q_OBJECT
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
  Q_PLUGIN_METADATA(IID "org.tannin.GameFalloutNV" FILE "gamefalloutnv.json")
#endif

public:
  GameFalloutNV();

  virtual bool init(MOBase::IOrganizer* moInfo) override;

public:  // IPluginGame interface
  virtual QString gameName() const override;
  virtual void detectGame() override;
  virtual QList<MOBase::ExecutableInfo> executables() const override;
  virtual QList<MOBase::ExecutableForcedLoadSetting>
  executableForcedLoads() const override;
  virtual void initializeProfile(const QDir& path,
                                 ProfileSettings settings) const override;
  virtual QString steamAPPId() const override;
  virtual QStringList primaryPlugins() const override;
  virtual QStringList gameVariants() const override;
  virtual QString gameShortName() const override;
  virtual QStringList validShortNames() const override;
  virtual QString gameNexusName() const override;
  virtual QStringList iniFiles() const override;
  virtual QStringList DLCPlugins() const override;
  virtual SortMechanism sortMechanism() const override;
  virtual int nexusModOrganizerID() const override;
  virtual int nexusGameID() const override;

  virtual bool isInstalled() const override;
  virtual void setGamePath(const QString& path) override;
  virtual QDir gameDirectory() const override;

public:  // IPlugin interface
  virtual QString name() const override;
  virtual QString localizedName() const override;
  virtual QString author() const override;
  virtual QString description() const override;
  virtual MOBase::VersionInfo version() const override;
  virtual QList<MOBase::PluginSetting> settings() const override;
  virtual MappingType mappings() const override;

protected:
  QString gameDirectoryName() const;
  QDir documentsDirectory() const;
  QDir savesDirectory() const;
  QString myGamesPath() const;

  void setVariant(QString variant);
  void checkVariants();

protected:
  virtual QString identifyGamePath() const override;
  virtual QString savegameExtension() const override;
  virtual QString savegameSEExtension() const override;
  std::shared_ptr<const GamebryoSaveGame> makeSaveGame(QString filePath) const override;
};

#endif  // GAMEFALLOUTNV_H