brzeszczot

brzeszczot.git
git clone git://git.lenczewski.org/brzeszczot.git
Log | Files | Refs

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:
Mlibriot/src/wad_printer.c | 26++++++++++++++++++++++++++
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); }