#ifndef IWIFILE_H #define IWIFILE_H #include #include #include #include #include #include #include #include "ddsfile.h" // Supported versions static const QVector supportedVersions = { 0x05, // CoD2 0x06, // CoD4, CoD5 0x08, // CoDMW2, CoDMW3 0x0D, // CoDBO1 0x1B // CoDBO2 }; struct IWIHeader { char Magic[3]; quint8 Version; bool isSupported() const; }; struct IWIInfo { quint8 Format; quint8 Usage; quint32 Width; quint32 Height; quint32 Depth; }; struct IWIMipmap { qint32 offset; qint32 size; QByteArray data; }; class IWIFile { public: QString fileStem; IWIHeader header; IWIInfo info; QVector mipmaps; IWIFile(); IWIFile(const QString &aFilePath); IWIFile(const DDSFile &aDDSFile); IWIFile(const IWIFile &iwiFile); IWIFile& operator=(const IWIFile& other); ~IWIFile(); bool SaveIWI() const; bool SaveDDS() const; bool SavePNG() const; bool SaveJPG() const; void SetupExportDirs() const; }; #endif // IWIFILE_H