XPlor/libs/fastfile/fastfile.h
njohnson 383d6e2439 Refactor: Update data stream type for FFCompany parsing
This commit updates the data stream type for parsing FFCompany to use XDataStream instead of QDataStream, aligning with recent changes in the project.
2025-09-10 21:55:40 -04:00

73 lines
2.2 KiB
C++

#ifndef FASTFILE_H
#define FASTFILE_H
#include "enums.h"
#include "utils.h"
#include "zonefile.h"
#include <QString>
#include <QCryptographicHash>
class ZoneFile;
class FastFile
{
public:
FastFile();
FastFile(const QByteArray& aData);
FastFile(FastFile &fastFile);
~FastFile();
virtual bool Load(const QString aFilePath) = 0;
virtual bool Load(const QByteArray aData) = 0;
virtual bool ExportFastFile(const QString aFastFilePath) const;
virtual QByteArray GetBinaryData() const = 0;
virtual QString GetStem() const;
virtual QString GetBaseStem() 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 const 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 ZoneFile* aZoneFile);
virtual void SetGame(const QString aGame);
virtual void SetPlatform(const QString aPlatform);
static FF_COMPANY pParseFFCompany(XDataStream *afastFileStream, quint32 &aCompanyInt);
static FF_COMPANY pParseFFCompany(XDataStream *afastFileStream);
static FF_FILETYPE pParseFFFileType(XDataStream *afastFileStream);
static FF_SIGNAGE pParseFFSignage(XDataStream *afastFileStream);
static QString pParseFFMagic(XDataStream *afastFileStream);
static quint32 pParseFFVersion(XDataStream *afastFileStream);
static QString pCalculateFFPlatform(quint32 aVersion);
static QString pCalculateFFGame(quint32 aVersion);
static FastFile* Open(const QString& aFilePath);
private:
QString mStem;
FF_FILETYPE mType;
FF_COMPANY mCompany;
FF_SIGNAGE mSignage;
QString mMagic;
quint32 mVersion;
const ZoneFile* mZoneFile;
QString mGame;
QString mPlatform;
};
#endif // FASTFILE_H