use sylpheed_formats::{pak, ui_layout}; fn main() { let mut a = std::env::args().skip(1); let pk = a.next().unwrap(); let ar = pak::PakArchive::open(pk).unwrap(); for t in a { let i: usize = t.parse().unwrap(); let by = ar.read(&ar.entries()[i]).unwrap(); let b = ui_layout::parse_build(&by).unwrap(); println!("=== entry {i} ==="); let order = ui_layout::derived_paint_order(&b, &by); for e in &b.elements { let k = ui_layout::sprite_layer_key(&b, &by, e); let pos = order.iter().position(|&x| x == e.index); println!( " [{}] {:<24} kind=0x{:<5x} sprite={:<24} key={:<12} paint#{:?}", e.index, e.name, e.kind, e.sprite.clone().unwrap_or_else(|| "".into()), k.map(|v| format!("0x{v:08x}")) .unwrap_or_else(|| "NONE".into()), pos ); } } }