//! RE probe: dump tables.pak screen-config records that mention a given token. //! Usage: screen_configs use sylpheed_formats::{idxd::IdxdObject, pak::PakArchive}; fn main(){ let a:Vec=std::env::args().collect(); let needle=a.get(2).cloned().unwrap_or_else(||"CHALLENGE".into()); let arc=PakArchive::open(format!("{}/dat/tables.pak",a[1])).unwrap(); for (i,e) in arc.entries().iter().enumerate(){ let Ok(b)=arc.read(e) else{continue}; let Ok(o)=IdxdObject::parse(&b) else{continue}; let t=o.tokens(); if !t.iter().any(|s|s.to_lowercase().contains(&needle.to_lowercase())){continue} let path=t.iter().find(|s|s.contains(".pak+")).cloned().unwrap_or_default(); if !path.is_empty() && !path.contains("+eng"){continue} println!("\n=== entry #{i} schema {:08x} [{path}] {} tokens ===",o.schema_hash,t.len()); for (j,tok) in t.iter().enumerate(){println!(" {j:3} {tok}");} } }