//! Regenerate `docs/re/captures/movie-subtitle-voice-map.csv` from the record //! table. Keyed by cutscene SLOT, not by movie: three resupply movies are bound //! by two slots each, and the old movie-keyed CSV silently dropped one of each. use sylpheed_formats::{movie_manifest, IdxdObject, PakArchive}; fn main() { let disc = std::env::var("SYLPHEED_DISC").expect("set SYLPHEED_DISC"); let arc = PakArchive::open(format!("{disc}/dat/tables.pak")).expect("tables.pak"); let manifest = arc .entries() .iter() .filter_map(|e| arc.read(e).ok()) .find(|b| IdxdObject::is_idxd(b) && movie_manifest::is_manifest(b)) .expect("movie manifest"); println!("slot,movie,telop,subtitle,voicetrack"); for e in movie_manifest::parse(&manifest) { println!( "{},{}.wmv,{},{},{}", e.slot, e.movie, e.telop.unwrap_or_default(), e.subtitle.unwrap_or_default(), e.voice_token.unwrap_or_default() ); } }