summaryrefslogtreecommitdiff
path: root/src/demo.c
diff options
context:
space:
mode:
authorjohannes <johannes.herman@gmail.com>2024-02-09 12:24:44 +0100
committerjohannes <johannes.herman@gmail.com>2024-02-09 12:24:44 +0100
commit95ab92f65e0435f71478c09d5756f96c7a4b9c09 (patch)
treedcf596823d72e3b33ca5bd375676290570f0a94a /src/demo.c
parent999db06982c80bec25da63e95c47d5543c741c51 (diff)
correct read / write of demo file
Diffstat (limited to 'src/demo.c')
-rw-r--r--src/demo.c42
1 files changed, 33 insertions, 9 deletions
diff --git a/src/demo.c b/src/demo.c
index 7e49a7d..71dab7d 100644
--- a/src/demo.c
+++ b/src/demo.c
@@ -54,14 +54,6 @@ int readdemoheader(FILE *fp, demoheader *dh)
if (fread(dh->timestamp, 1, 20, fp) != 20)
return -9;
- printf("version: %hhu\n", dh->version);
- printf("net_version: %s\n", dh->netversion);
- printf("mapname: %s\n", dh->mapname);
- printf("mapsize: %d\n", dh->mapsize);
- printf("mapcrc: %d\n", dh->mapcrc);
- printf("type: %s\n", dh->type);
- printf("length: %d\n", dh->length);
- printf("timestamp: %s\n", dh->timestamp);
return 1;
}
@@ -449,10 +441,42 @@ int writedemosnap(FILE *fp, demosnap *snap, unsigned char ver)
int size = cp - decompressed;
int datasize = compresshuff(decompressed, size, compressed, 64 * 1024);
- datasize = ((datasize + 3) / 4) * 4;
+ // datasize = ((datasize + 3) / 4) * 4;
writedemochunkheader(fp, DEMOSNAP, datasize);
fwrite(compressed, 1, datasize, fp);
return 1;
}
+
+int writedemomessage(FILE *fp, demomessage *message, unsigned char ver)
+{
+ writedemochunkheader(fp, DEMOMESSAGE, message->datasize);
+ fwrite(message->data, 1, message->datasize, fp);
+
+ return 1;
+}
+
+int writedemodelta(FILE *fp, demodelta *delta, unsigned char ver)
+{
+ writedemochunkheader(fp, DEMODELTA, delta->datasize);
+ fwrite(delta->data, 1, delta->datasize, fp);
+
+ return 1;
+}
+
+void printdemoheader(demoheader *header)
+{
+ if (header->version == 6)
+ printf("version: v6ddnet\n");
+ else
+ printf("version: v%d\n", header->version);
+
+ printf("netversion: %s\n", header->netversion);
+ printf("mapname: %s\n", header->mapname);
+ printf("mapsize: %d\n", header->mapsize);
+ printf("mapcrc: %d\n", header->mapcrc);
+ printf("type: %s\n", header->type);
+ printf("length: %d\n", header->length);
+ printf("timestamp: %s\n", header->timestamp);
+}