Data is in little-endian. Similar to Quake.
Nom | Type | Offset | Size | Notes |
---|---|---|---|---|
magic | string | 0 | 4 bytes | “PACK” |
size | u32 | 4 | 4 bytes | Number of entries |
??? | 8 | 32 bytes | Unknown | |
filelist | File | 40 | size * (12 + name) |
Nom | Type | Offset | Size | Notes |
---|---|---|---|---|
filesize | u32 | 0 | 4 bytes | |
offset | u32 | 4 | 4 bytes | Byte offset from the beginning of the file |
??? | u32 | 8 | 4 bytes | Unknown |
name | Null-terminated string | 12 | File path and name |
import std.string; struct File { u32 filesize; u32 offset; u32 unknown; std::string::NullString name; char data[filesize] @ offset; }; char magic[4] @ 0; u32 size @ 4; char unknown[32] @ 8; File filelist[size] @ 40;