From 6dd654676ae14121c32b37dc083b6edd1cc9a54b Mon Sep 17 00:00:00 2001 From: Cyberarm Date: Fri, 4 Sep 2026 09:26:53 -0500 Subject: [PATCH] Fix WWMix using a signed byte instead of an unsigned byte as length container for reading file names (-128..127 vs 0..255) --- lib/ww_mix.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ww_mix.rb b/lib/ww_mix.rb index ea546f7..3890079 100644 --- a/lib/ww_mix.rb +++ b/lib/ww_mix.rb @@ -269,14 +269,14 @@ class W3DHub def read_i32(f) = f.read(4).unpack1("l") def read_u32(f) = f.read(4).unpack1("L") - def read_u8(f) = f.read(1).unpack1("c") + def read_u8(f) = f.read(1).unpack1("C") def read_string(f) f.read(read_u8(f)).strip end def write_i32(f, value) = f.write([value].pack("l")) def write_u32(f, value) = f.write([value].pack("L")) - def write_u8(f, value) = f.write([value].pack("c")) + def write_u8(f, value) = f.write([value].pack("C")) def write_string(f, string) length = string.size + 1 # include null byte write_u8(f, length)