WIP: Entis GLS CSX v2

This commit is contained in:
2026-01-20 11:40:09 +08:00
parent 8c9f2d7d52
commit ff886e66d3
33 changed files with 955 additions and 214 deletions

View File

@@ -72,7 +72,7 @@ impl ScriptBuilder for PgdGeBuilder {
_unk: 0,
};
writer.write_all(b"GE \0")?;
header.pack(&mut writer, false, Encoding::Utf8)?;
header.pack(&mut writer, false, Encoding::Utf8, &None)?;
PgdWriter::new(data, options.pgd_fake_compress)
.with_method(3)
.pack_ge(&mut writer)?;
@@ -94,7 +94,7 @@ impl PgdGe {
if &magic != b"GE \0" {
return Err(anyhow::anyhow!("Not a valid PGD GE image"));
}
let header = PgdGeHeader::unpack(&mut input, false, Encoding::Utf8)?;
let header = PgdGeHeader::unpack(&mut input, false, Encoding::Utf8, &None)?;
let reader = PgdReader::with_ge_header(input, &header)?;
let data = reader.unpack_ge()?;
Ok(Self {
@@ -144,7 +144,7 @@ impl Script for PgdGe {
}
header.mode = 3;
file.write_all(b"GE \0")?;
header.pack(&mut file, false, Encoding::Utf8)?;
header.pack(&mut file, false, Encoding::Utf8, &None)?;
PgdWriter::new(data, self.fake_compress)
.with_method(3)
.pack_ge(&mut file)?;

View File

@@ -81,7 +81,7 @@ impl Pgd3 {
if &sig != b"PGD3" && &sig != b"PGD2" {
return Err(anyhow::anyhow!("Not a valid PGD3/PGD2 file"));
}
let header = PgdDiffHeader::unpack(&mut reader, false, encoding)?;
let header = PgdDiffHeader::unpack(&mut reader, false, encoding, &None)?;
let diff = PgdReader::with_diff_header(reader, &header)?.unpack_overlay()?;
let base: Vec<u8> = if let Some(archive) = archive {
let mut file = archive.open_file_by_name(&header.base_name, true)?;
@@ -104,7 +104,7 @@ impl Pgd3 {
header.base_name
));
}
let base_header = PgdGeHeader::unpack(&mut reader, false, encoding)?;
let base_header = PgdGeHeader::unpack(&mut reader, false, encoding, &None)?;
let base = PgdReader::with_ge_header(reader, &base_header)?.unpack_ge()?;
Ok(Self {
header,
@@ -181,7 +181,7 @@ impl Script for Pgd3 {
}
header.mode = 3;
file.write_all(b"GE \0")?;
header.pack(&mut file, false, Encoding::Utf8)?;
header.pack(&mut file, false, Encoding::Utf8, &None)?;
PgdWriter::new(data, self.fake_compress)
.with_method(3)
.pack_ge(&mut file)?;