- Volition VPP: Unified BE/LE types using inheritance pattern - THQA PAK: Child types now inherit byte order from parent - Various XScript definition updates and fixes Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
72 lines
1.9 KiB
Plaintext
72 lines
1.9 KiB
Plaintext
// Asura Engine chunk structure
|
|
// Used by Rebellion games: Sniper Elite, AVP 2010, etc.
|
|
|
|
type asura_chunk ui("Asura Chunk") byteorder BE
|
|
{
|
|
// Chunk header: 4-byte ID + 4-byte size + 4-byte version + 4-byte flags
|
|
chunk_id = ascii(read(4)) ui("Chunk ID");
|
|
u32 chunk_size ui("Chunk Size");
|
|
u32 version ui("Version");
|
|
u32 flags ui("Flags");
|
|
|
|
// Calculate remaining data size
|
|
data_size = chunk_size - 16;
|
|
|
|
if (data_size > 0) {
|
|
data = read(data_size) ui("Chunk Data");
|
|
}
|
|
}
|
|
|
|
type asura_fcsr_chunk ui("FCSR Resource Chunk") byteorder BE
|
|
{
|
|
// FCSR chunk header
|
|
chunk_id = ascii(read(4)) ui("Chunk ID");
|
|
u32 chunk_size ui("Chunk Size");
|
|
u32 version ui("Version");
|
|
u32 flags ui("Flags");
|
|
|
|
// Resource info
|
|
u32 resource_type ui("Resource Type");
|
|
u32 unknown1 ui("Unknown1");
|
|
u32 resource_size ui("Resource Size");
|
|
|
|
// Read null-terminated name
|
|
name = cstring() ui("Resource Name");
|
|
}
|
|
|
|
type asura_lfsr_chunk ui("LFSR List Resource Chunk") byteorder BE
|
|
{
|
|
// LFSR chunk header (list of file references)
|
|
chunk_id = ascii(read(4)) ui("Chunk ID");
|
|
u32 chunk_size ui("Chunk Size");
|
|
u32 version ui("Version");
|
|
u32 flags ui("Flags");
|
|
|
|
// Number of entries
|
|
u32 entry_count ui("Entry Count");
|
|
}
|
|
|
|
type asura_tsxt_chunk ui("TSXT Texture Set Chunk") byteorder BE
|
|
{
|
|
// TSXT chunk header (texture set)
|
|
chunk_id = ascii(read(4)) ui("Chunk ID");
|
|
u32 chunk_size ui("Chunk Size");
|
|
u32 version ui("Version");
|
|
u32 flags ui("Flags");
|
|
|
|
// Texture count
|
|
u32 texture_count ui("Texture Count");
|
|
}
|
|
|
|
type asura_stsa_chunk ui("STSA Asset List Chunk") byteorder BE
|
|
{
|
|
// STSA chunk header (asset list - reversed ASTS)
|
|
chunk_id = ascii(read(4)) ui("Chunk ID");
|
|
u32 chunk_size ui("Chunk Size");
|
|
u32 version ui("Version");
|
|
u32 flags ui("Flags");
|
|
|
|
// File count
|
|
u32 file_count ui("File Count");
|
|
}
|