Add support to support PUA in BGI string

This commit is contained in:
2025-07-08 10:20:21 +08:00
parent e317c487fb
commit 601abba284
17 changed files with 104 additions and 60 deletions

View File

@@ -251,7 +251,7 @@ impl<'a, T: Iterator<Item = &'a BinEntry>, R: Read + Seek> Iterator
Ok(name) => name,
Err(e) => return Some(Err(e.into())),
};
let name = match decode_to_string(self.archive_encoding, name.as_bytes()) {
let name = match decode_to_string(self.archive_encoding, name.as_bytes(), true) {
Ok(name) => name,
Err(e) => return Some(Err(e.into())),
};
@@ -283,7 +283,7 @@ impl<'a, T: Iterator<Item = &'a BinEntry>, R: Read + Seek> Iterator
Ok(name) => name,
Err(e) => return Some(Err(e.into())),
};
let name = match decode_to_string(self.archive_encoding, name.as_bytes()) {
let name = match decode_to_string(self.archive_encoding, name.as_bytes(), true) {
Ok(name) => name,
Err(e) => return Some(Err(e.into())),
};

View File

@@ -278,7 +278,7 @@ fn create_file<'a>(
output_encoding: Encoding,
) -> Result<()> {
let input = crate::utils::files::read_file(custom_filename)?;
let s = decode_to_string(output_encoding, &input)?;
let s = decode_to_string(output_encoding, &input, true)?;
let entries: Vec<ListEntry> = serde_json::from_str(&s)
.map_err(|e| anyhow::anyhow!("Failed to read Escude list from JSON: {}", e))?;
writer.write_all(b"LIST")?;

View File

@@ -109,12 +109,12 @@ impl EscudeBinScript {
for _ in 0..string_count {
let s = reader.read_cstring()?;
let s = replaces.replace(s.as_bytes())?;
strings.push(decode_to_string(encoding, &s)?);
strings.push(decode_to_string(encoding, &s, true)?);
}
} else {
for _ in 0..string_count {
let s = reader.read_cstring()?;
strings.push(decode_to_string(encoding, s.as_bytes())?);
strings.push(decode_to_string(encoding, s.as_bytes(), true)?);
}
}
let names = match &config.escude_enum_scr {