XPlor/definitions/asura/asura_chunk.xscript
njohnson 7b1f5d34a1 Consolidate XScript definitions with byte order inheritance
- 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>
2026-01-11 16:08:46 -05:00

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");
}