mirror of
https://github.com/ModOrganizer2/modorganizer-game_bethesda.git
synced 2026-07-27 14:08:44 -07:00
[game_oblivion] added oblivion game-plugin
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user