diff --git a/src/error.rs b/src/error.rs index 439d239..efdc92e 100644 --- a/src/error.rs +++ b/src/error.rs @@ -16,6 +16,4 @@ pub enum Error { SqPackError(#[from] sqpack::binrw::Error), #[error("error writing to output")] BinRwWrite(sqpack::binrw::Error), - #[error("a bug in textools corrupted this mod pack")] - TexToolsBug, } diff --git a/src/ttmp_extractor.rs b/src/ttmp_extractor.rs index 5d526fb..2e0e033 100644 --- a/src/ttmp_extractor.rs +++ b/src/ttmp_extractor.rs @@ -349,7 +349,11 @@ impl TtmpExtractor { (read, read) } else if header.compressed_size == 0 { // https://github.com/TexTools/xivModdingFramework/issues/51 - return Err(Error::TexToolsBug); + let zeroes: Vec = std::iter::repeat(0) + .take(header.uncompressed_size as usize) + .collect(); + std::io::copy(&mut Cursor::new(zeroes), &mut writer).map_err(Error::Io)?; + (0, 0) } else { // compressed let reader = (&mut reader).take(header.compressed_size as u64);