From d836e24357b81496c61f3cc9195ba36758523578 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Sat, 15 Mar 2025 15:18:40 +0100 Subject: more abstraction around unityfs to read multiple files from a single reader --- src/serialized_file.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/serialized_file.rs') diff --git a/src/serialized_file.rs b/src/serialized_file.rs index b3c1e3c..a6514ee 100644 --- a/src/serialized_file.rs +++ b/src/serialized_file.rs @@ -2,6 +2,7 @@ use crate::{ common_strings::COMMON_STRINGS, helper::{AlignExt, Endianness, ReadExt}, object::Value, + unityfs::{UnityFS, header::NodeInfo}, }; use anyhow::{Result, anyhow, bail}; use log::{debug, info, trace, warn}; @@ -307,6 +308,18 @@ impl SerializedFile { }) } + pub fn find_fs_shared_assets(&self, fs: &UnityFS) -> Option { + let s = self + .externals + .iter() + .find(|e| e.path_name.starts_with("archive:"))?; + fs.header + .nodes() + .iter() + .find(|n| n.name.ends_with(&s.path_name)) + .cloned() + } + pub fn get_object_type_tree(&self, ob: &ObjectInfo) -> Result<&'_ TypeTreeNode> { let r#type = if ob.type_id < 0 { unimplemented!() -- cgit v1.2.3-70-g09d2