A quick and easy library for manipulating the resource size table (RSTB) from The Legend of Zelda: Breath of the Wild in Rust. Can edit an RSTB directly or convert to and from a JSON representation. Basic usage to manipulate an RSTB file:
``rust
use rstb::{ResourceSizeTable, Endian};
let buf: Vec<u8> = std::fs::read("test/ResourceSizeTable.product.rsizetable")?;
// Read RSTB from data, can automatically decompress if yaz0 compressed
// (requires
yaz0feature)
let mut table: ResourceSizeTable = ResourceSizeTable::from_binary(buf)?;
// Set the size for a resource
table.set("Map/MainField/A-1/A-1_Dynamic.mubin", 777);
// Check the size
assert_eq!(
table.get("Map/MainField/A-1/A-1_Dynamic.mubin").unwrap(),
777
);
// Dump to JSON, if
json` feature enabled
{ let jsontable = table.totext(); // From JSON back to RSTB let newtable = ResourceSizeTable::fromtext(&json_table)?; } // Write new binary copy, and we'll yaz0 compress it
let outbuf: Vec