From ec9a163c392a206b135a14c3f1e6c8a65c2cac5a Mon Sep 17 00:00:00 2001 From: lifegpc Date: Wed, 4 Jun 2025 08:44:23 +0800 Subject: [PATCH] Fix --- src/scripts/escude/archive.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/scripts/escude/archive.rs b/src/scripts/escude/archive.rs index 62e4dca..05b78c4 100644 --- a/src/scripts/escude/archive.rs +++ b/src/scripts/escude/archive.rs @@ -359,7 +359,9 @@ impl Archive for EscudeBinArchiveWriter { let file_count = self.headers.len() as u32; crypto.write_u32(file_count)?; crypto.write_u32(self.name_tbl_len)?; - for entry in self.headers.values() { + let mut entries: Vec<_> = self.headers.values().collect(); + entries.sort_by(|a, b| a.name_offset.cmp(&b.name_offset)); + for entry in entries { let name_offset = entry.name_offset - file_count * 12 - 0x14; crypto.write_u32(name_offset)?; crypto.write_u32(entry.data_offset)?; @@ -427,9 +429,7 @@ impl<'a, T: Write + Seek> Drop for EscudeBinArchiveFileWithLzw<'a, T> { } }; match self.writer.write_all(&data) { - Ok(_) => { - self.writer.header.length = self.writer.header.length.max(data.len() as u32); - } + Ok(_) => {} Err(e) => { eprintln!("Failed to write LZW data: {}", e); crate::COUNTER.inc_error();