diff --git a/src/scripts/bgi/archive/v2.rs b/src/scripts/bgi/archive/v2.rs index a255cf6..0bf3fbc 100644 --- a/src/scripts/bgi/archive/v2.rs +++ b/src/scripts/bgi/archive/v2.rs @@ -585,9 +585,11 @@ impl Archive for BgiArchiveWriter { fn write_header(&mut self) -> Result<()> { self.writer.seek(SeekFrom::Start(0x10))?; - let mut files = self.headers.iter().map(|(_, d)| d).collect::>(); + let base_offset = self.headers.len() as u32 * 0x80 + 16; + let mut files = self.headers.iter_mut().map(|(_, d)| d).collect::>(); files.sort_by_key(|f| f.offset); for file in files { + file.offset -= base_offset; file.pack(&mut self.writer, false, self.encoding)?; } Ok(())