#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "enums.h" #include "rawfile.h" #include "structs.h" #include "utils.h" #include "localize.h" #include "zone.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 #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_ZoneFile_clicked(); void LogOpenedFile(QString aFileName); void RefreshRecentFileMenu(); QString GetFastFilePath(); QString GetZoneFilePath(); QByteArray OpenFastFile(QString aFastFilePath); QByteArray OpenZoneFile(QString aZoneFilePath); void ParseFFHeader(QByteArray aFastFileData); void ParseFFCompany(QDataStream *aFastFileStream); void ParseFFFileType(QDataStream *afastFileStream); void ParseFFSignage(QDataStream *afastFileStream); void ParseFFMagic(QDataStream *afastFileStream); void ParseFFVersion(QDataStream *afastFileStream); void ParseZoneFile(QByteArray aDecompressedData); void ParseAsset_XAnim(QDataStream *aZoneFileStream); void ParseAsset_XModel(QDataStream *aZoneFileStream); void ParseAsset_Material(QDataStream *aZoneFileStream); void ParseAsset_TechSet(QDataStream *aZoneFileStream); void ParseAsset_LoadedSound(QDataStream *aZoneFileStream); void ParseAsset_ColMapMP(QDataStream *aZoneFileStream); void ParseAsset_PixelShader(QDataStream *aZoneFileStream); void ParseAsset_D3DBSP(QDataStream *aZoneFileStream); void ParseAsset_Font(QDataStream *aZoneFileStream); void ParseAsset_MenuFile(QDataStream *aZoneFileStream); void ParseAsset_Localize(QDataStream *aZoneFileStream); void ParseAsset_Weapon(QDataStream *aZoneFileStream); void ParseAsset_FX(QDataStream *aZoneFileStream); void ParseAsset_RawFile(QDataStream *aZoneFileStream); void ParseAsset_StringTable(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; QQueue mRecentFiles; bool mSettingsValid; QVector mRecentFileActions; quint32 mBSPVersion; quint32 mDiskLumpCount; QVector mDiskLumpOrder; QMap mLumps; QVector mRawFilesVec; }; #endif // MAINWINDOW_H