This branch predates CI on `main`. `cargo fmt --all` only; no behaviour. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
34 lines
1.2 KiB
Rust
34 lines
1.2 KiB
Rust
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"),
|
|
}
|
|
}
|
|
}
|
|
}
|