From 116de038d3d024232d3640f499a8fb21f1c557fd Mon Sep 17 00:00:00 2001 From: johannes Date: Wed, 7 Feb 2024 15:09:19 +0100 Subject: finished writedemotick --- src/demo.c | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/demo.c b/src/demo.c index 7ecf72e..bfb233e 100644 --- a/src/demo.c +++ b/src/demo.c @@ -113,9 +113,13 @@ int readdemotick(FILE *fp, char chunkhead, demotick *tick, unsigned char ver) else { if ((chunkhead & CHUNK_TICK_DELTA_V3_MASK) != 0) + { tick->delta = (chunkhead & CHUNK_TICK_DELTA_V3_MASK); + tick->innline = 1; + } else { + tick->innline = 0; unsigned char tickdelta[4]; fread(tickdelta, 1, 4, fp); tick->delta = frombigendian(tickdelta); @@ -369,28 +373,33 @@ int writedemomap(FILE *fp, demomap *dm, int mapsize, unsigned char ver) return 1; } +// TODO add erro checking int writedemotick(FILE *fp, demotick *tick, unsigned char ver) { unsigned char header = CHUNK_TICK_MASK; header |= tick->keyframe << 6; if (ver >= 5) - { header |= tick->innline << 5; - if (tick->innline) - { - header |= tick->delta; - fwrite(&header, 1, 1, fp); - } - else - { - fwrite(&header, 1, 1, fp); - unsigned char intbuf[4]; - tobigendian(tick->delta, intbuf); - fwrite(intbuf, 4, 1, fp); - } + + if (tick->innline) + { + header |= tick->delta; + fwrite(&header, 1, 1, fp); + } + else + { + fwrite(&header, 1, 1, fp); + unsigned char intbuf[4]; + tobigendian(tick->delta, intbuf); + fwrite(intbuf, 4, 1, fp); } + // printf("%2X\n", header); - printf("%2X\n", header); + return 1; +} +int writedemosnap(FILE *fp, demosnap *snap, unsigned char ver) +{ + return 1; } -- cgit v1.2.3