57 lines
817 B
Plaintext
57 lines
817 B
Plaintext
|
|
||
|
#pragma endian little
|
||
|
|
||
|
namespace europa {
|
||
|
|
||
|
struct PakHeader {
|
||
|
char magic[16]; // "Europa Packfile\0"
|
||
|
|
||
|
// Doesn't include magic
|
||
|
u16 headerSize;
|
||
|
|
||
|
// 0x4 - Starfighter
|
||
|
// 0x5 - other game
|
||
|
u16 Version;
|
||
|
u8 pad;
|
||
|
|
||
|
u32 tocOffset;
|
||
|
|
||
|
// Dunno what this is
|
||
|
u32 unk;
|
||
|
|
||
|
u32 fileCount;
|
||
|
|
||
|
// Labeled as this in the quickbms script
|
||
|
u32 archiveCreationTime;
|
||
|
|
||
|
u32 reserved;//?
|
||
|
};
|
||
|
|
||
|
// "Pascal" string used
|
||
|
// in the TOC.
|
||
|
struct PakTocPString {
|
||
|
u8 len;
|
||
|
|
||
|
if(len != 0)
|
||
|
char string[len];
|
||
|
};
|
||
|
|
||
|
// A Toc entry
|
||
|
struct PakTocEntry {
|
||
|
PakTocPString fileName;
|
||
|
|
||
|
u32 offset;
|
||
|
u32 size;
|
||
|
|
||
|
// Seems to be the same as he header.
|
||
|
u32 creationTime;
|
||
|
};
|
||
|
|
||
|
struct PakFile {
|
||
|
PakHeader header;
|
||
|
//PakTocEntry toc[header.fileCount] @ header.tocOffset;
|
||
|
};
|
||
|
|
||
|
} // namespace europa
|
||
|
|
||
|
europa::PakFile pak @ 0x0;
|