34 lines
723 B
Rust
34 lines
723 B
Rust
|
use crate::durandal::{bin::*, err::*, text::mac_roman_conv};
|
||
|
|
||
|
impl Minf
|
||
|
{
|
||
|
pub fn chunk(b: &[u8]) -> ResultS<Minf>
|
||
|
{
|
||
|
if b.len() < 88 {return err_msg("not enough data for Minf")}
|
||
|
|
||
|
let env_code = b.c_u16b( 0)?;
|
||
|
let physi_id = b.c_u16b( 2)?;
|
||
|
let music_id = b.c_u16b( 4)?;
|
||
|
let msn_flag = b.c_u16b( 6)?;
|
||
|
let env_flag = b.c_u16b( 8)?;
|
||
|
let levelnam = mac_roman_conv(&b[18..84]);
|
||
|
let ent_flag = b.c_u32b(84)?;
|
||
|
|
||
|
Ok(Minf{env_code, physi_id, music_id, msn_flag, env_flag, ent_flag, levelnam})
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#[derive(Debug)]
|
||
|
pub struct Minf
|
||
|
{
|
||
|
env_code: u16,
|
||
|
physi_id: u16,
|
||
|
music_id: u16,
|
||
|
msn_flag: u16,
|
||
|
env_flag: u16,
|
||
|
ent_flag: u32,
|
||
|
levelnam: String,
|
||
|
}
|
||
|
|
||
|
// EOF
|