From 72d67bf117250fe5695d122597b3cd103a7aada6 Mon Sep 17 00:00:00 2001 From: johannes Date: Sat, 10 Feb 2024 19:43:58 +0100 Subject: added free demo, new test data --- src/demo.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) (limited to 'src/demo.c') diff --git a/src/demo.c b/src/demo.c index 7c8bdbf..57ce8d1 100644 --- a/src/demo.c +++ b/src/demo.c @@ -18,6 +18,41 @@ const char headermagic[7] = "TWDEMO\0"; const unsigned char mapmagic[] = {0x6b, 0xe6, 0xda, 0x4a, 0xce, 0xbd, 0x38, 0x0c, 0x9b, 0x5b, 0x12, 0x89, 0xc8, 0x42, 0xd7, 0x80}; +void freedemo(demo *demo) +{ + free(demo->map.data); + + for(int i = 0; i < demo->data.numchunks; i++) + { + demochunk *chunk = &demo->data.chunks[i]; + switch (chunk->type) + { + case DEMOTICK: + free(chunk->data.tick); + break; + case DEMOSNAP: + for (int y = 0; y < chunk->data.snap->numitems; y++) + free(chunk->data.snap->items[y].data); + free(chunk->data.snap->offsets); + free(chunk->data.snap->items); + free(chunk->data.snap); + break; + case DEMOMESSAGE: + free(chunk->data.message->data); + free(chunk->data.message); + break; + case DEMODELTA: + free(chunk->data.delta->data); + free(chunk->data.delta); + break; + default: + break; + } + } + free(demo->data.chunks); + +} + /* readers */ int readdemoheader(FILE *fp, demoheader *dh) -- cgit v1.2.3