use sylpheed_formats::{game_data as gd, PakArchive}; fn main() { let disc = std::env::var("SYLPHEED_DISC").unwrap(); let pak = PakArchive::open(format!("{disc}/dat/GP_HANGAR_ARSENAL.pak")).unwrap(); let rosters = gd::load_pilot_rosters(&pak); // distinct rosters by their pilot set let mut seen = std::collections::BTreeSet::new(); let mut shown = 0; println!("{} pilot-roster configs; distinct line-ups:", rosters.len()); for r in &rosters { let key: String = r .pilots() .iter() .map(|(c, p)| format!("{c}:{p}")) .collect::>() .join(","); if seen.insert(key) && shown < 8 { shown += 1; let flt: Vec = r.pilots().iter().map(|(c, p)| format!("{c}={p}")).collect(); println!(" {}", flt.join(" ")); } } }