From 48b84bfed9897acf036eca57062ac7e9a35bd497 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sat, 12 Jul 2025 08:26:13 -0400 Subject: [PATCH] Stop extracting game files if no unpack directory is set --- src/common/gamedata.rs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/common/gamedata.rs b/src/common/gamedata.rs index c51b8b9..9315f04 100644 --- a/src/common/gamedata.rs +++ b/src/common/gamedata.rs @@ -449,18 +449,20 @@ impl SqPackResourceSpy { impl Resource for SqPackResourceSpy { fn read(&mut self, path: &str) -> Option { if let Some(buffer) = self.sqpack_resource.read(path) { - let mut new_path = PathBuf::from(&self.output_directory); - new_path.push(path.to_lowercase()); + if !self.output_directory.is_empty() { + let mut new_path = PathBuf::from(&self.output_directory); + new_path.push(path.to_lowercase()); - if !std::fs::exists(&new_path).unwrap_or_default() { - // create directory if it doesn't exist' - let parent_directory = new_path.parent().unwrap(); - if !std::fs::exists(parent_directory).unwrap_or_default() { - std::fs::create_dir_all(parent_directory) - .expect("Couldn't create directory for extraction?!"); + if !std::fs::exists(&new_path).unwrap_or_default() { + // create directory if it doesn't exist' + let parent_directory = new_path.parent().unwrap(); + if !std::fs::exists(parent_directory).unwrap_or_default() { + std::fs::create_dir_all(parent_directory) + .expect("Couldn't create directory for extraction?!"); + } + + std::fs::write(new_path, &buffer).expect("Couldn't extract file!!"); } - - std::fs::write(new_path, &buffer).expect("Couldn't extract file!!"); } return Some(buffer);