2026-01-07 16:36:02 -05:00
|
|
|
// STUC - Structure/Cutscene Chunk (reversed "CUTS")
|
|
|
|
|
// Contains cutscene structure and scene data
|
|
|
|
|
// Found in .cut files
|
|
|
|
|
|
|
|
|
|
type stuc_chunk [display="STUC Cutscene Structure"] byteorder BE
|
|
|
|
|
{
|
|
|
|
|
// Standard 16-byte Asura chunk header
|
|
|
|
|
chunk_id = ascii(read(4));
|
|
|
|
|
u32 chunk_size;
|
|
|
|
|
u32 version;
|
|
|
|
|
u32 flags;
|
|
|
|
|
|
2026-01-11 12:10:29 -05:00
|
|
|
chunk_id = chunk_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ui("chunk_id", "Chunk ID");
|
|
|
|
|
chunk_size = chunk_size;
|
|
|
|
|
|
|
|
|
|
ui("chunk_size", "Chunk Size");
|
|
|
|
|
version = version;
|
|
|
|
|
|
|
|
|
|
ui("version", "Version");
|
|
|
|
|
flags = flags;
|
|
|
|
|
|
|
|
|
|
ui("flags", "Flags");
|
2026-01-07 16:36:02 -05:00
|
|
|
|
|
|
|
|
// Scene entry count
|
|
|
|
|
u32 entry_count;
|
2026-01-11 12:10:29 -05:00
|
|
|
entry_count = entry_count;
|
|
|
|
|
|
|
|
|
|
ui("entry_count", "Entry Count");
|
2026-01-07 16:36:02 -05:00
|
|
|
|
|
|
|
|
// Unknown fields
|
|
|
|
|
u32 unknown1;
|
|
|
|
|
u32 unknown2;
|
|
|
|
|
|
|
|
|
|
// Scene name (null-terminated)
|
|
|
|
|
scene_name = cstring();
|
2026-01-11 12:10:29 -05:00
|
|
|
scene_name = scene_name;
|
|
|
|
|
|
|
|
|
|
ui("scene_name", "Scene Name");
|
2026-01-07 16:36:02 -05:00
|
|
|
|
2026-01-08 00:38:33 -05:00
|
|
|
// Use scene name for display (clean removes non-printable chars)
|
2026-01-11 12:10:29 -05:00
|
|
|
set_name(clean(scene_name));
|
2026-01-08 00:38:33 -05:00
|
|
|
|
2026-01-07 16:36:02 -05:00
|
|
|
// Position data (3 floats for X, Y, Z)
|
|
|
|
|
f32 pos_x;
|
|
|
|
|
f32 pos_y;
|
|
|
|
|
f32 pos_z;
|
|
|
|
|
|
2026-01-11 12:10:29 -05:00
|
|
|
pos_x = pos_x;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ui("pos_x", "Position X");
|
|
|
|
|
pos_y = pos_y;
|
|
|
|
|
|
|
|
|
|
ui("pos_y", "Position Y");
|
|
|
|
|
pos_z = pos_z;
|
|
|
|
|
|
|
|
|
|
ui("pos_z", "Position Z");
|
2026-01-07 16:36:02 -05:00
|
|
|
}
|