38 lines
1.2 KiB
Plaintext
38 lines
1.2 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, readonly, display="Chunk ID"];
|
||
|
|
chunk_size = chunk_size [ui, readonly, display="Chunk Size"];
|
||
|
|
version = version [ui, readonly, display="Version"];
|
||
|
|
flags = flags [ui, readonly, display="Flags"];
|
||
|
|
|
||
|
|
// Texture count
|
||
|
|
u32 texture_count;
|
||
|
|
texture_count = texture_count [ui, readonly, display="Texture Count"];
|
||
|
|
|
||
|
|
// Reference to external texture archive
|
||
|
|
if (texture_count > 0) {
|
||
|
|
texture_archive_path = cstring();
|
||
|
|
texture_archive_path = texture_archive_path [ui, readonly, display="Texture Archive"];
|
||
|
|
}
|
||
|
|
|
||
|
|
// 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
|
||
|
|
}
|