[game_oblivion] added oblivion game-plugin

This commit is contained in:
Tannin
2015-03-09 12:22:06 +01:00
parent 129477e67f
commit ca6fe4f1f0
6 changed files with 127 additions and 0 deletions
@@ -0,0 +1,18 @@
#include "oblivionbsainvalidation.h"
#include <imoinfo.h>
OblivionBSAInvalidation::OblivionBSAInvalidation(const std::shared_ptr<DataArchives> &dataArchives, MOBase::IOrganizer *moInfo)
: GamebryoBSAInvalidation(dataArchives, "oblivion.ini", moInfo)
{
}
QString OblivionBSAInvalidation::invalidationBSAName() const
{
return "Oblivion - Invalidation.bsa";
}
unsigned long OblivionBSAInvalidation::bsaVersion() const
{
return 0x67;
}
@@ -0,0 +1,23 @@
#ifndef OBLIVIONBSAINVALIDATION_H
#define OBLIVIONBSAINVALIDATION_H
#include <gamebryobsainvalidation.h>
#include <memory>
#include "obliviondataarchives.h"
class OblivionBSAInvalidation : public GamebryoBSAInvalidation
{
public:
OblivionBSAInvalidation(const std::shared_ptr<DataArchives> &dataArchives, MOBase::IOrganizer *moInfo);
private:
virtual QString invalidationBSAName() const override;
virtual unsigned long bsaVersion() const override;
};
#endif // OBLIVIONBSAINVALIDATION_H
@@ -0,0 +1,41 @@
#include "obliviondataarchives.h"
#include <utility.h>
#include <QDir>
QStringList OblivionDataArchives::vanillaArchives() const
{
return { "Oblivion - Misc.bsa"
, "Oblivion - Textures - Compressed.bsa"
, "Oblivion - Meshes.bsa"
, "Oblivion - Sounds.bsa"
, "Oblivion - Voices1.bsa"
, "Oblivion - Voices2.bsa"
};
}
QStringList OblivionDataArchives::archives(const MOBase::IProfile *profile) const
{
QStringList result;
QString iniFile = QDir(profile->absolutePath()).absoluteFilePath("oblivion.ini");
result.append(getArchivesFromKey(iniFile, "SResourceArchiveList"));
result.append(getArchivesFromKey(iniFile, "SResourceArchiveList2"));
return result;
}
void OblivionDataArchives::writeArchiveList(MOBase::IProfile *profile, QStringList before)
{
QString list = before.join(',');
QString iniFile = QDir(profile->absolutePath()).absoluteFilePath("oblivion.ini");
if (list.length() > 255) {
int splitIdx = list.lastIndexOf(",", 256);
setArchivesToKey(iniFile, "SResourceArchiveList", list.mid(0, splitIdx));
setArchivesToKey(iniFile, "SResourceArchiveList2", list.mid(splitIdx + 1));
} else {
setArchivesToKey(iniFile, "SResourceArchiveList", list);
}
}
@@ -0,0 +1,24 @@
#ifndef OBLIVIONDATAARCHIVES_H
#define OBLIVIONDATAARCHIVES_H
#include <gamebryodataarchives.h>
#include <iprofile.h>
#include <QString>
#include <QStringList>
class OblivionDataArchives : public GamebryoDataArchives
{
public:
virtual QStringList vanillaArchives() const override;
virtual QStringList archives(const MOBase::IProfile *profile) const override;
private:
virtual void writeArchiveList(MOBase::IProfile *profile, QStringList before) override;
};
#endif // OBLIVIONDATAARCHIVES_H
@@ -0,0 +1,7 @@
#include "oblivionscriptextender.h"
QString OblivionScriptExtender::name() const
{
return "obse";
}
@@ -0,0 +1,14 @@
#ifndef OBLIVIONSCRIPTEXTENDER_H
#define OBLIVIONSCRIPTEXTENDER_H
#include <scriptextender.h>
class OblivionScriptExtender : public ScriptExtender
{
public:
virtual QString name() const override;
};
#endif // OBLIVIONSCRIPTEXTENDER_H