diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.rs | 4 | ||||
-rw-r--r-- | src/serialized_file.rs | 26 | ||||
-rw-r--r-- | src/unityfs.rs | 22 |
3 files changed, 25 insertions, 27 deletions
diff --git a/src/main.rs b/src/main.rs index 4d91578..beab8a1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -7,7 +7,7 @@ fn main() -> anyhow::Result<()> { let mut fs = UnityFS::open(file)?; for node in fs.nodes().to_vec() { - if node.name.ends_with(".resource") || node.name.ends_with("resS") { + if node.name.ends_with(".resource") || node.name.ends_with(".resS") { continue; } let cab = fs.read(&node)?; @@ -16,8 +16,6 @@ fn main() -> anyhow::Result<()> { // continue; let file = read_serialized_file(cab)?; - eprintln!("{file:#?}"); - } Ok(()) diff --git a/src/serialized_file.rs b/src/serialized_file.rs index becf1d7..f32b3a3 100644 --- a/src/serialized_file.rs +++ b/src/serialized_file.rs @@ -3,7 +3,7 @@ use crate::{ helper::{AlignExt, Endianness, ReadExt}, }; use anyhow::Result; -use log::{debug, trace}; +use log::{debug, info, trace}; use std::io::{Cursor, Read, Seek}; #[derive(Debug)] @@ -32,24 +32,24 @@ pub struct SeralizedType { #[derive(Debug)] pub struct ObjectInfo { - path_id: i64, - data_offset: u64, - data_size: u32, - type_id: i32, + pub path_id: i64, + pub data_offset: u64, + pub data_size: u32, + pub type_id: i32, } #[derive(Debug)] pub struct Script { - file_index: u32, - identifier: i64, + pub file_index: u32, + pub identifier: i64, } #[derive(Debug)] pub struct External { - something: String, - guid: u128, - r#type: i32, - path_name: String, + pub something: String, + pub guid: u128, + pub r#type: i32, + pub path_name: String, } #[derive(Debug)] @@ -67,7 +67,7 @@ pub fn read_serialized_file(mut file: impl Read + Seek) -> Result<SerializedFile let format = file.read_u32_be()?; let mut data_offset = file.read_u32_be()? as u64; - debug!("format={format}"); + info!("File format version: {format}"); assert!(format >= 9); let e = match file.read_u32_be()? { @@ -88,7 +88,7 @@ pub fn read_serialized_file(mut file: impl Read + Seek) -> Result<SerializedFile let generator_version = file.read_cstr()?; let target_platform = file.read_u32_le()?; - debug!("generator_version={generator_version:?}"); + info!("Generator version: {generator_version:?}"); debug!("target_platform={target_platform}"); let has_type_trees = file.read_u8()? != 0; diff --git a/src/unityfs.rs b/src/unityfs.rs index f9a8d34..d7659b8 100644 --- a/src/unityfs.rs +++ b/src/unityfs.rs @@ -248,32 +248,32 @@ impl<T: Seek + Read> Seek for NodeReader<'_, T> { #[derive(Debug, Clone, Copy, PartialEq)] enum CompressionScheme { None, - LZMA, - LZ4, - LZ4HC, - LZHAM, + Lzma, + Lz4, + Lz4hc, + Lzham, } impl CompressionScheme { pub fn from_flag_num(n: u8) -> Option<CompressionScheme> { Some(match n & 0x3f { 0 => CompressionScheme::None, - 1 => CompressionScheme::LZMA, - 2 => CompressionScheme::LZ4, - 3 => CompressionScheme::LZ4HC, - 4 => CompressionScheme::LZHAM, + 1 => CompressionScheme::Lzma, + 2 => CompressionScheme::Lz4, + 3 => CompressionScheme::Lz4hc, + 4 => CompressionScheme::Lzham, _ => return None, }) } pub fn decompress(&self, block: Vec<u8>, decomp_size: usize) -> Result<Vec<u8>> { match self { CompressionScheme::None => Ok(block), - CompressionScheme::LZMA => { + CompressionScheme::Lzma => { let mut r = lzma::Reader::from(Cursor::new(block))?; let mut buf = Vec::new(); r.read_to_end(&mut buf)?; Ok(buf) } - CompressionScheme::LZ4HC | CompressionScheme::LZ4 => { + CompressionScheme::Lz4hc | CompressionScheme::Lz4 => { Ok(lz4_flex::block::decompress(&block, decomp_size)?) } // CompressionScheme::LZ4HC | CompressionScheme::LZ4 => { @@ -281,7 +281,7 @@ impl CompressionScheme { // Ok(lz4::block::decompress(&block, Some(decomp_size as i32))?) // Ok(lz4::block::decompress(&block, None)?) // } - CompressionScheme::LZHAM => todo!(), + CompressionScheme::Lzham => todo!(), } } } |