aboutsummaryrefslogtreecommitdiff
path: root/libs/game_gamebryo/src/gamebryo/gamebryobsainvalidation.h
blob: efd3d7b2bfc488642e1b7e76396d184c58032ac5 (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
#ifndef GAMEBRYOBSAINVALIDATION_H
#define GAMEBRYOBSAINVALIDATION_H

#include <QString>
#include <bsainvalidation.h>
#include <dataarchives.h>
#include <memory>

namespace MOBase
{
class IPluginGame;
}

class GamebryoBSAInvalidation : public MOBase::BSAInvalidation
{
public:
  GamebryoBSAInvalidation(MOBase::DataArchives* dataArchives,
                          const QString& iniFilename, MOBase::IPluginGame const* game);

  virtual bool isInvalidationBSA(const QString& bsaName) override;
  virtual void deactivate(MOBase::IProfile* profile) override;
  virtual void activate(MOBase::IProfile* profile) override;
  virtual bool prepareProfile(MOBase::IProfile* profile) override;

private:
  virtual QString invalidationBSAName() const = 0;
  virtual unsigned long
  bsaVersion() const = 0;  // 0x67 for oblivion, 0x68 for everything else

private:
  MOBase::DataArchives* m_DataArchives;
  QString m_IniFileName;
  MOBase::IPluginGame const* m_Game;
};

#endif  // GAMEBRYOBSAINVALIDATION_H