diff --git a/lib/src/format/cmdl.rs b/lib/src/format/cmdl.rs index da16396..aab0175 100644 --- a/lib/src/format/cmdl.rs +++ b/lib/src/format/cmdl.rs @@ -784,14 +784,14 @@ impl ModelData { let (cmdl_desc, mut cmdl_data, _) = FormDescriptor::slice(data, Endian::Little)?; ensure!(cmdl_desc.id == K_FORM_CMDL || cmdl_desc.id == K_FORM_SMDL || cmdl_desc.id == K_FORM_WMDL); if cmdl_desc.id == K_FORM_CMDL { - ensure!(cmdl_desc.version_a == 114); - ensure!(cmdl_desc.version_b == 125); + ensure!(cmdl_desc.reader_version == 114); + ensure!(cmdl_desc.writer_version == 125); } else if cmdl_desc.id == K_FORM_SMDL { - ensure!(cmdl_desc.version_a == 127); - ensure!(cmdl_desc.version_b == 133); + ensure!(cmdl_desc.reader_version == 127); + ensure!(cmdl_desc.writer_version == 133); } else if cmdl_desc.id == K_FORM_WMDL { - ensure!(cmdl_desc.version_a == 118); - ensure!(cmdl_desc.version_b == 124); + ensure!(cmdl_desc.reader_version == 118); + ensure!(cmdl_desc.writer_version == 124); } diff --git a/lib/src/format/foot.rs b/lib/src/format/foot.rs index 44fd72d..802f6ed 100644 --- a/lib/src/format/foot.rs +++ b/lib/src/format/foot.rs @@ -15,8 +15,8 @@ pub fn locate_meta(file_data: &[u8], e: Endian) -> Result<&[u8]> { let (_, _, remain) = FormDescriptor::slice(file_data, e)?; let (foot_desc, mut foot_data, remain) = FormDescriptor::slice(remain, Endian::Little)?; ensure!(foot_desc.id == K_FORM_FOOT); - ensure!(foot_desc.version_a == 1); - ensure!(foot_desc.version_b == 1); + ensure!(foot_desc.reader_version == 1); + ensure!(foot_desc.writer_version == 1); ensure!(remain.is_empty()); while !foot_data.is_empty() { diff --git a/lib/src/format/mtrl.rs b/lib/src/format/mtrl.rs index b9cacf9..0e86135 100644 --- a/lib/src/format/mtrl.rs +++ b/lib/src/format/mtrl.rs @@ -28,8 +28,8 @@ impl MaterialData { pub fn slice(data: &[u8], meta: &[u8], e: Endian) -> Result { let (mtrl_desc, _, _) = FormDescriptor::slice(data, Endian::Little)?; ensure!(mtrl_desc.id == K_FORM_MTRL); - ensure!(mtrl_desc.version_a == 168); - ensure!(mtrl_desc.version_b == 168); + ensure!(mtrl_desc.reader_version == 168); + ensure!(mtrl_desc.writer_version == 168); let meta: SMaterialMetaData = Cursor::new(meta).read_type(e)?; let mut reader = ZlibDecoder::new( diff --git a/lib/src/format/pack.rs b/lib/src/format/pack.rs index a2d3abf..c915779 100644 --- a/lib/src/format/pack.rs +++ b/lib/src/format/pack.rs @@ -146,10 +146,10 @@ impl Package<'_> { pub fn read_header(data: &[u8], e: Endian) -> Result> { let (mut pack, pack_data, _) = FormDescriptor::slice(data, e)?; ensure!(pack.id == K_FORM_PACK); - ensure!(pack.version_a == 1); + ensure!(pack.reader_version == 1); let (mut tocc, tocc_data, _) = FormDescriptor::slice(pack_data, e)?; ensure!(tocc.id == K_FORM_TOCC); - ensure!(tocc.version_a == 3); + ensure!(tocc.reader_version == 3); // Rewrite PACK with only TOCC chunk let mut out = Cursor::new(Vec::new()); @@ -165,10 +165,10 @@ impl Package<'_> { pub fn read_sparse(data: &[u8], e: Endian) -> Result> { let (pack, pack_data, _) = FormDescriptor::slice(data, e)?; ensure!(pack.id == K_FORM_PACK); - ensure!(pack.version_a == 1); + ensure!(pack.reader_version == 1); let (tocc, mut tocc_data, _) = FormDescriptor::slice(pack_data, e)?; ensure!(tocc.id == K_FORM_TOCC); - ensure!(tocc.version_a == 3); + ensure!(tocc.reader_version == 3); let mut adir: Option = None; let mut strg: HashMap = HashMap::new(); while !tocc_data.is_empty() { @@ -210,10 +210,10 @@ impl Package<'_> { pub fn read_asset(data: &[u8], id: Uuid, e: Endian) -> Result> { let (pack, pack_data, _) = FormDescriptor::slice(data, e)?; ensure!(pack.id == K_FORM_PACK); - ensure!(pack.version_a == 1); + ensure!(pack.reader_version == 1); let (tocc, mut tocc_data, _) = FormDescriptor::slice(pack_data, e)?; ensure!(tocc.id == K_FORM_TOCC); - ensure!(tocc.version_a == 3); + ensure!(tocc.reader_version == 3); let mut asset: Option = None; let mut meta: Option<&[u8]> = None; @@ -276,8 +276,8 @@ impl Package<'_> { { let (form, _, _) = FormDescriptor::slice(&data, Endian::Little)?; ensure!(asset.asset_type == form.id); - ensure!(asset.version == form.version_a); - ensure!(asset.other_version == form.version_b); + ensure!(asset.version == form.reader_version); + ensure!(asset.other_version == form.writer_version); ensure!(asset.decompressed_size == form.size + 32 /* RFRM */); } @@ -286,7 +286,7 @@ impl Package<'_> { w.set_position(len); // set to append // Write custom footer - FormDescriptor { size: 0, unk: 0, id: K_FORM_FOOT, version_a: 1, version_b: 1 }.write( + FormDescriptor { size: 0, unk: 0, id: K_FORM_FOOT, reader_version: 1, writer_version: 1 }.write( &mut w, Endian::Little, |w| { @@ -329,11 +329,11 @@ impl Package<'_> { pub fn read_full(data: &[u8], e: Endian) -> Result { let (pack, pack_data, _) = FormDescriptor::slice(data, e)?; ensure!(pack.id == K_FORM_PACK); - ensure!(pack.version_a == 1); + ensure!(pack.reader_version == 1); log::debug!("PACK: {:?}", pack); let (tocc, mut tocc_data, _) = FormDescriptor::slice(pack_data, e)?; ensure!(tocc.id == K_FORM_TOCC); - ensure!(tocc.version_a == 3); + ensure!(tocc.reader_version == 3); log::debug!("TOCC: {:?}", tocc); let mut adir: Option = None; let mut meta: HashMap = HashMap::new(); @@ -393,8 +393,8 @@ impl Package<'_> { { let (form, _, _) = FormDescriptor::slice(&data, Endian::Little)?; ensure!(asset_entry.asset_type == form.id); - ensure!(asset_entry.version == form.version_a); - ensure!(asset_entry.other_version == form.version_b); + ensure!(asset_entry.version == form.reader_version); + ensure!(asset_entry.other_version == form.writer_version); ensure!(asset_entry.decompressed_size == form.size + 32 /* RFRM */); } @@ -450,11 +450,11 @@ impl Package<'_> { } } let mut adir_pos = 0; - FormDescriptor { size: 0, unk: 0, id: K_FORM_PACK, version_a: 1, version_b: 1 }.write( + FormDescriptor { size: 0, unk: 0, id: K_FORM_PACK, reader_version: 1, writer_version: 1 }.write( w, e, |w| { - FormDescriptor { size: 0, unk: 0, id: K_FORM_TOCC, version_a: 3, version_b: 3 } + FormDescriptor { size: 0, unk: 0, id: K_FORM_TOCC, reader_version: 3, writer_version: 3 } .write(w, e, |w| { ChunkDescriptor { id: K_CHUNK_ADIR, size: 0, unk: 1, skip: 0 }.write( w, diff --git a/lib/src/format/rfrm.rs b/lib/src/format/rfrm.rs index a888dd3..02a75cf 100644 --- a/lib/src/format/rfrm.rs +++ b/lib/src/format/rfrm.rs @@ -15,8 +15,8 @@ pub struct FormDescriptor { pub size: u64, pub unk: u64, pub id: FourCC, - pub version_a: u32, - pub version_b: u32, + pub reader_version: u32, + pub writer_version: u32, } impl FormDescriptor { diff --git a/lib/src/format/txtr.rs b/lib/src/format/txtr.rs index d73167e..e1bdfc0 100644 --- a/lib/src/format/txtr.rs +++ b/lib/src/format/txtr.rs @@ -449,8 +449,8 @@ impl TextureData { pub fn slice(data: &[u8], meta: &[u8], e: Endian) -> Result { let (txtr_desc, txtr_data, _) = FormDescriptor::slice(data, e)?; ensure!(txtr_desc.id == K_FORM_TXTR); - ensure!(txtr_desc.version_a == 47); - ensure!(txtr_desc.version_b == 51); + ensure!(txtr_desc.reader_version == 47); + ensure!(txtr_desc.writer_version == 51); let (head_desc, head_data, _) = ChunkDescriptor::slice(txtr_data, Endian::Little)?; ensure!(head_desc.id == K_CHUNK_HEAD); diff --git a/retrotool/src/cmd/clsn.rs b/retrotool/src/cmd/clsn.rs index 75760e6..055f244 100644 --- a/retrotool/src/cmd/clsn.rs +++ b/retrotool/src/cmd/clsn.rs @@ -166,17 +166,17 @@ fn convert(args: ConvertArgs) -> Result<()> { let (form_desc, mut col_data, remain) = FormDescriptor::slice(&data, Endian::Little)?; if form_desc.id == K_FORM_DCLN { - ensure!(form_desc.version_a == K_DCLN_READER_VERSION); - ensure!(form_desc.version_b == K_DCLN_WRITER_VERSION); + ensure!(form_desc.reader_version == K_DCLN_READER_VERSION); + ensure!(form_desc.writer_version == K_DCLN_WRITER_VERSION); } else if form_desc.id == K_FORM_CLSN { - ensure!(form_desc.version_a == K_CLSN_READER_VERSION); - ensure!(form_desc.version_b == K_CLSN_WRITER_VERSION); + ensure!(form_desc.reader_version == K_CLSN_READER_VERSION); + ensure!(form_desc.writer_version == K_CLSN_WRITER_VERSION); } let (foot_desc, _, remain) = FormDescriptor::slice(remain, Endian::Little)?; ensure!(foot_desc.id == K_FORM_FOOT); - ensure!(foot_desc.version_a == 1); - ensure!(foot_desc.version_b == 1); + ensure!(foot_desc.reader_version == 1); + ensure!(foot_desc.writer_version == 1); ensure!(remain.is_empty()); //let mut bounds: Option = None; diff --git a/retrotool/src/cmd/pak.rs b/retrotool/src/cmd/pak.rs index a4b2fcb..f9ec3d5 100644 --- a/retrotool/src/cmd/pak.rs +++ b/retrotool/src/cmd/pak.rs @@ -100,7 +100,7 @@ fn extract(args: ExtractArgs) -> Result<()> { file.write_all(&asset.data)?; // Write custom footer - FormDescriptor { size: 0, unk: 0, id: K_FORM_FOOT, version_a: 1, version_b: 1 }.write( + FormDescriptor { size: 0, unk: 0, id: K_FORM_FOOT, reader_version: 1, writer_version: 1 }.write( &mut file, Endian::Little, |w| { @@ -157,7 +157,7 @@ fn package(args: PackageArgs) -> Result<()> { // log::info!("Found type {} version {}, {}", form.id, form.version, form.other_version); let (foot, mut foot_data, _) = FormDescriptor::slice(remain, Endian::Little)?; ensure!(foot.id == K_FORM_FOOT); - ensure!(foot.version_a == 1); + ensure!(foot.reader_version == 1); let mut ainfo: Option = None; let mut meta: Option<&[u8]> = None; let mut name: Option = None; @@ -187,8 +187,8 @@ fn package(args: PackageArgs) -> Result<()> { data: Cow::Owned(data[..data.len() - remain.len()].to_vec()), meta: meta.map(|data| Cow::Owned(data.to_vec())), info: ainfo, - version: form.version_a, - other_version: form.version_b, + version: form.reader_version, + other_version: form.writer_version, }); } package.assets.sort_by_key(|a| a.id);