XPlor/libs/fastfile/fastfile.h

71 lines
2.2 KiB
C
Raw Normal View History

2025-02-08 19:58:54 -05:00
#ifndef FASTFILE_H
#define FASTFILE_H
#include "enums.h"
#include "zonefile.h"
#include <QString>
#include <QCryptographicHash>
2025-05-03 09:57:47 -04:00
class ZoneFile;
2025-02-08 19:58:54 -05:00
class FastFile
{
public:
2025-02-19 19:17:31 -05:00
FastFile();
2025-05-03 09:57:47 -04:00
FastFile(const QByteArray& aData);
2025-02-19 19:17:31 -05:00
FastFile(FastFile &fastFile);
~FastFile();
2025-02-14 16:06:27 -05:00
virtual bool Load(const QString aFilePath) = 0;
virtual bool Load(const QByteArray aData) = 0;
2025-04-04 20:40:37 -04:00
virtual bool ExportFastFile(const QString aFastFilePath);
2025-02-14 16:06:27 -05:00
2025-04-04 20:40:37 -04:00
virtual QByteArray GetBinaryData() = 0;
virtual QString GetStem() const;
virtual FF_FILETYPE GetType() const;
virtual FF_COMPANY GetCompany() const;
virtual FF_SIGNAGE GetSignage() const;
virtual QString GetMagic() const;
virtual quint32 GetVersion() const;
virtual std::shared_ptr<ZoneFile> GetZoneFile() const;
virtual QString GetGame() const;
virtual QString GetPlatform() const;
virtual void SetStem(const QString aStem);
virtual void SetType(const FF_FILETYPE aType);
virtual void SetCompany(const FF_COMPANY aCompany);
virtual void SetSignage(const FF_SIGNAGE aSignage);
virtual void SetMagic(const QString aMagic);
virtual void SetVersion(const quint32 aVersion);
virtual void SetZoneFile(const std::shared_ptr<ZoneFile> aZoneFile);
virtual void SetGame(const QString aGame);
virtual void SetPlatform(const QString aPlatform);
2025-02-08 19:58:54 -05:00
2025-02-19 19:17:31 -05:00
static FF_COMPANY pParseFFCompany(QDataStream *afastFileStream, quint32 &aCompanyInt);
static FF_COMPANY pParseFFCompany(QDataStream *afastFileStream);
static FF_FILETYPE pParseFFFileType(QDataStream *afastFileStream);
static FF_SIGNAGE pParseFFSignage(QDataStream *afastFileStream);
static QString pParseFFMagic(QDataStream *afastFileStream);
static quint32 pParseFFVersion(QDataStream *afastFileStream);
static QString pCalculateFFPlatform(quint32 aVersion);
static QString pCalculateFFGame(quint32 aVersion);
2025-03-01 20:38:52 -05:00
static std::shared_ptr<FastFile> Open(const QString& aFilePath);
2025-02-19 19:17:31 -05:00
2025-02-08 19:58:54 -05:00
private:
2025-02-14 16:06:27 -05:00
QString mStem;
FF_FILETYPE mType;
FF_COMPANY mCompany;
FF_SIGNAGE mSignage;
QString mMagic;
quint32 mVersion;
2025-02-19 19:17:31 -05:00
std::shared_ptr<ZoneFile> mZoneFile;
2025-02-14 16:06:27 -05:00
QString mGame;
QString mPlatform;
2025-02-08 19:58:54 -05:00
};
#endif // FASTFILE_H