use sylpheed_formats::{pak, ui_layout}; fn main(){ let ar=pak::PakArchive::open(std::env::args().nth(1).unwrap()).unwrap(); let by=ar.read(&ar.entries()[4]).unwrap(); let b=ui_layout::parse_build(&by).unwrap(); for n in ["ptloop01.rat","ptloop02.rat"] { let el=b.elements.iter().find(|e| e.name==n).unwrap(); println!("{n}: kind={:#x} animated={} rec={:?}", el.kind, el.animated, b.records.get(n).map(|&(o,s)|(o,s))); if let Some(&(o,s))=b.records.get(n) { match ui_layout::parse_build(&by[o..o+s]) { Some(lb)=>for le in &lb.elements { println!(" leaf {:?} sprite={:?} in_sprites={}", le.name, le.sprite, le.sprite.as_ref().map(|x| b.sprites.contains_key(x)).unwrap_or(false)); }, None=>println!(" leaf parse FAILED"), } } } }