#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "enums.h" #include "structs.h" #include "utils.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); void Reset(); QByteArray DecompressZLIB(QByteArray compressedData); private slots: void on_pushButton_FastFile_clicked(); void on_pushButton_FastFile_2_clicked(); QFile *OpenFastFile(); QFile *OpenZoneFile(); void ParseFFHeader(QFile *aFastFilePtr); void ParseFFCompany(QDataStream *aFastFileStream); void ParseFFFileType(QDataStream *afastFileStream); void ParseFFSignage(QDataStream *afastFileStream); void ParseFFMagic(QDataStream *afastFileStream); void ParseFFVersion(QDataStream *afastFileStream); void ParseZoneHeader(QDataStream *aZoneFileStream); void ParseZoneSize(QDataStream *aZoneFileStream); void ParseZoneUnknownsA(QDataStream *aZoneFileStream); void ParseZoneUnknownsB(QDataStream *aZoneFileStream); void ParseZoneUnknownsC(QDataStream *aZoneFileStream); void ParseZoneTagCount(QDataStream *aZoneFileStream); void ParseZoneRecordCount(QDataStream *aZoneFileStream); void ParseZoneTags(QDataStream *aZoneFileStream); void ParseZoneIndex(QDataStream *aZoneFileStream); void ParseAsset_LocalString(QDataStream *aZoneFileStream); void ParseAsset_RawFile(QDataStream *aZoneFileStream); void ParseAsset_PhysPreset(QDataStream *aZoneFileStream); void ParseAsset_XModel(QDataStream *aZoneFileStream); void ParseAsset_Material(QDataStream *aZoneFileStream); void ParseAsset_PixelShader(QDataStream *aZoneFileStream); void ParseAsset_TechSet(QDataStream *aZoneFileStream); void ParseAsset_Image(QDataStream *aZoneFileStream); void ParseAsset_LoadedSound(QDataStream *aZoneFileStream); void ParseAsset_ColMapMP(QDataStream *aZoneFileStream); void ParseAsset_GameMapSP(QDataStream *aZoneFileStream); void ParseAsset_GameMapMP(QDataStream *aZoneFileStream); void ParseAsset_LightDef(QDataStream *aZoneFileStream); void ParseAsset_UIMap(QDataStream *aZoneFileStream); void ParseAsset_SNDDriverGlobals(QDataStream *aZoneFileStream); void ParseAsset_AIType(QDataStream *aZoneFileStream); void ParseAsset_FX(QDataStream *aZoneFileStream); void ParseAsset_XAnim(QDataStream *aZoneFileStream); void ParseAsset_StringTable(QDataStream *aZoneFileStream); void ParseAsset_MenuFile(QDataStream *aZoneFileStream); void ParseAsset_Weapon(QDataStream *aZoneFileStream); void ParseAsset_D3DBSP(QDataStream *aZoneFileStream); int LoadFile_D3DBSP(const QString aFilePath); void ScriptSelected(); void StrTableSelected(QString aStrTableName); private: Ui::MainWindow *ui; QMap mTypeMap; QStringList mTypeOrder; quint32 mTagCount; quint32 mRecordCount; QMap mRawFileMap; QMap mTreeMap; QMap>> mStrTableMap; quint32 mBSPVersion; quint32 mDiskLumpCount; QVector mDiskLumpOrder; QMap mLumps; }; #endif // MAINWINDOW_H