From ec6a5c1ff3bb7731e17b798f9bbfdb0aedf94baa Mon Sep 17 00:00:00 2001 From: johannes Date: Tue, 6 Feb 2024 14:14:57 +0100 Subject: made readdemomap follow version --- src/demo.c | 16 ++++++++-------- src/main.c | 4 +--- 2 files changed, 9 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/demo.c b/src/demo.c index 155d67c..23995ff 100644 --- a/src/demo.c +++ b/src/demo.c @@ -22,11 +22,11 @@ int readdemoheader(FILE *fp, demoheader *dh) { char magicbuff[sizeof(headermagic)]; unsigned char intbuff[4]; - + fread(magicbuff, 1, sizeof(headermagic), fp); if (strcmp(magicbuff, headermagic) != 0) return -1; - + if (fread(&dh->version, 1, 1, fp) != 1) return -2; @@ -67,22 +67,22 @@ int readdemoheader(FILE *fp, demoheader *dh) int readdemotimeline(FILE *fp, demotimeline *dt) { - if (fscanf(fp, "%260c", dt->data) != 1) + if (fread(dt->data, 1, 260, fp) != 260) return -1; return 1; } -// TODO make version sensitive -int readdemomap(FILE *fp, demomap *dm, int mapsize) +int readdemomap(FILE *fp, demomap *dm, int mapsize, unsigned char ver) { char magicbuf[sizeof(mapmagic)]; - fread(magicbuf, 1, sizeof(mapmagic), fp); + fread(magicbuf, 1, sizeof(mapmagic), fp); if (memcmp(magicbuf, mapmagic, sizeof(mapmagic)) != 0) return -1; - if (fread(dm->sha256, 1, 32, fp) != 32) - return -2; + if (ver >= 4) + if (fread(dm->sha256, 1, 32, fp) != 32) + return -2; if (fread(dm->data, 1, mapsize, fp) != mapsize) return -3; diff --git a/src/main.c b/src/main.c index 758504b..a3ea478 100644 --- a/src/main.c +++ b/src/main.c @@ -132,9 +132,7 @@ int main() printf("timeline: %i\n", ret); - // TODO should be able to read 5 aswell, change readdemomap to fit - if (dh.version >= 6) - ret = readdemomap(fp, &dm, dh.mapsize); + ret = readdemomap(fp, &dm, dh.mapsize, dh.version); printf("readdemomap ret: %d\n\n", ret); demochunk dc; -- cgit v1.2.3