- Migrate from bracket attributes to ui() function calls - Enhance chunk parsing with improved structure definitions - Add additional metadata fields to chunk handlers - Update Xbox 360 texture and archive definitions Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
57 lines
1.3 KiB
Plaintext
57 lines
1.3 KiB
Plaintext
// TSXT - Texture Set Chunk (reversed "TXST")
|
|
// Contains texture set information and references
|
|
// Found in .tsBE files
|
|
|
|
type tsxt_chunk [display="TSXT Texture Set"] byteorder BE
|
|
{
|
|
// Standard 16-byte Asura chunk header
|
|
chunk_id = ascii(read(4));
|
|
u32 chunk_size;
|
|
u32 version;
|
|
u32 flags;
|
|
|
|
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");
|
|
|
|
// Texture count
|
|
u32 texture_count;
|
|
texture_count = texture_count;
|
|
|
|
ui("texture_count", "Texture Count");
|
|
|
|
// Get type-specific index for naming
|
|
idx = ctx_get("_tsxt_idx");
|
|
|
|
// Reference to external texture archive
|
|
if (texture_count > 0) {
|
|
texture_archive_path = cstring();
|
|
texture_archive_path = texture_archive_path;
|
|
|
|
ui("texture_archive_path", "Texture Archive");
|
|
}
|
|
|
|
// Set indexed name (format: tsxt.0, tsxt.1, etc.)
|
|
set_name("tsxt." + idx);
|
|
|
|
// Texture entries follow - each contains hash and metadata
|
|
// Structure per entry (approx 28 bytes):
|
|
// - 4 bytes: texture hash/ID
|
|
// - 4 bytes: offset in archive
|
|
// - 4 bytes: width info
|
|
// - 4 bytes: height info
|
|
// - 4 bytes: format flags
|
|
// - 4 bytes: mip levels
|
|
// - 4 bytes: unknown
|
|
}
|