commit cc46327de82431afcc617c2e9b35bfa8a9fb189a
parent 1185d9a1f8e11ca1c580b813b87535fe2355bd9a
Author: MikoĊaj Lenczewski <mblenczewski@gmail.com>
Date: Mon, 13 Feb 2023 00:43:08 +0000
Implement riot_wad_print()
Diffstat:
1 file changed, 26 insertions(+), 0 deletions(-)
diff --git a/libriot/src/wad_printer.c b/libriot/src/wad_printer.c
@@ -1,7 +1,33 @@
#include "libriot/wad.h"
+static void
+riot_wad_chunk_print(struct riot_wad_chunk *chunk, FILE *f);
+
void
riot_wad_print(struct riot_wad_ctx *ctx, FILE *f) {
assert(ctx);
assert(f);
+
+ fprintf(f, "WAD version %u.%u\n", ctx->wad.major, ctx->wad.minor);
+ fprintf(f, "WAD chunks: %u\n", ctx->wad.chunk_count);
+
+ for (u32 i = 0; i < ctx->wad.chunk_count; i++) {
+ struct riot_wad_chunk *chunk = ((struct riot_wad_chunk *)ctx->chunk_pool.ptr) + i;
+ fprintf(f, "\t");
+ riot_wad_chunk_print(chunk, f);
+ fprintf(f, "\n");
+ }
+
+ fflush(f);
+}
+
+static void
+riot_wad_chunk_print(struct riot_wad_chunk *chunk, FILE *f) {
+ assert(chunk);
+ assert(f);
+
+ fprintf(f, "WADChunk(path_hash=0x%08lx,data_offset=0x%08lx,compressed_size=%lu,decompressed_size=%lu,compression=%u,duplicated=%u,sub_chunk_count=%u,sub_chunk_start=%u,checksum=0x%08lx)",
+ chunk->path_hash, chunk->data_offset, chunk->compressed_size,
+ chunk->decompressed_size, chunk->compression, chunk->duplicated,
+ chunk->sub_chunk_count, chunk->sub_chunk_start, chunk->checksum);
}