Make dgo unpacker work on pal dgos with wrong size (#714)

* make dgo unpacker work on pal dgos with wrong size

* format string
This commit is contained in:
water111
2021-07-24 11:17:27 -04:00
committed by GitHub
parent ba10f91a78
commit f3f32cca5b
3 changed files with 40 additions and 2 deletions
+11 -1
View File
@@ -16,7 +16,17 @@ DgoReader::DgoReader(std::string file_name, const std::vector<u8>& data)
// get all obj files...
for (uint32_t i = 0; i < header.object_count; i++) {
auto obj_header = reader.read<ObjectHeader>();
ObjectHeader obj_header = reader.read<ObjectHeader>();
if (reader.bytes_left() < obj_header.size && i == header.object_count - 1 &&
obj_header.size - reader.bytes_left() <= 48) {
printf(
"Warning: final file %s in DGO %s has a size missing %d bytes. It will be adjusted from "
"%d to %d bytes.\n",
obj_header.name, header.name, obj_header.size - reader.bytes_left(), obj_header.size,
(int)reader.bytes_left());
obj_header.size = reader.bytes_left();
}
assert(reader.bytes_left() >= obj_header.size);
assert_string_empty_after(obj_header.name, 60);