quake-tools/source/quam/pak.h

36 lines
625 B
C++

#pragma once
#include <QTableWidget>
namespace Pak {
enum PakColumn {
ColumnId,
ColumnSize,
ColumnName,
};
}
struct PakNode;
struct PakDir : public std::map<std::string, PakNode> {
using std::map<std::string, PakNode>::map;
};
Q_DECLARE_METATYPE(PakDir)
struct PakFile : public QByteArray {
using QByteArray::QByteArray;
quint32 id{0};
};
Q_DECLARE_METATYPE(PakFile)
struct PakNode : public std::variant<PakDir, PakFile> {
using std::variant<PakDir, PakFile>::variant;
};
Q_DECLARE_METATYPE(PakNode)
PakDir readPak(std::istream &st);
void setTableToPakDir(QTableWidget &table, PakDir const &dir);
// EOF