export_music/
export_music.rs

1use anyhow::Result;
2use regnumassets::{AssetContent, AssetData, ResourceIndex};
3use std::fs::File;
4use std::io::Write;
5
6fn main() -> Result<()> {
7    let f = File::open("examples/regnum/data2.idx")?;
8    let index = ResourceIndex::read(f).unwrap();
9
10    let sound = index.get_by_resource_id(56934).unwrap();
11
12    let f = File::open("examples/regnum/data2.sdb")?;
13    let asset = AssetData::read(&f, &sound).unwrap();
14
15    match asset.content {
16        AssetContent::Sound {
17            filename,
18            bytes,
19            size,
20        } => {
21            println!("writing {} bytes file to {}", size, filename);
22            let mut output = File::create(filename)?;
23            output.write_all(bytes.as_ref())?;
24            output.flush()?;
25        }
26        _ => {
27            println!("couuld not parse music asset")
28        }
29    }
30
31    Ok(())
32}