aboutsummaryrefslogtreecommitdiff
path: root/libs/game_bethesda/src/games/starfield/starfieldunmanagedmods.h
blob: 81fd63db747ce9ff529cfeb3a48ab6cb7b1de0aa (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
#ifndef STARFIELDUNMANAGEDMODS_H
#define STARFIELDUNMANAGEDMODS_H

#include "gamebryounmanagedmods.h"
#include "gamestarfield.h"
#include <gamegamebryo.h>

#include <QJsonObject>

class StarfieldUnmanagedMods : public GamebryoUnmangedMods
{
  friend class GameStarfield;

  struct ContentCatalog
  {
    QString name;
    QStringList files;
  };

public:
  StarfieldUnmanagedMods(const GameStarfield* game, const QString& appDataFolder);
  ~StarfieldUnmanagedMods();

  virtual QStringList mods(bool onlyOfficial) const override;
  virtual QFileInfo referenceFile(const QString& modName) const override;
  virtual QStringList secondaryFiles(const QString& modName) const override;
  virtual QString displayName(const QString& modName) const override;

private:
  std::map<QString, ContentCatalog> parseContentCatalog() const;

private:
  const GameStarfield* m_Game;
  QString m_AppDataFolder;
};

#endif  // STARFIELDUNMANAGEDMODS_H