summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/demo.c42
-rw-r--r--src/main.c20
2 files changed, 52 insertions, 10 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);
+}
diff --git a/src/main.c b/src/main.c
index b4e7abb..07d8fd8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -140,8 +140,26 @@ int main()
}
else if (dd.chunks[i].type == DEMOSNAP)
{
+ demosnap *snap = dd.chunks[i].data.snap;
+ for (int y = 0; y < snap->numitems; y++)
+ {
+ demosnapitem *item = &snap->items[y];
+ if (item->type == 11 && item->id == 9)
+ {
+ char newname[16] = ">>Hextcjd!\0";
+
+ strtoint(newname, 16, item->data);
+ }
+ }
writedemosnap(op, dd.chunks[i].data.snap, dh.version);
- exit(0);
+ }
+ else if (dd.chunks[i].type == DEMOMESSAGE)
+ {
+ writedemomessage(op, dd.chunks[i].data.message, dh.version);
+ }
+ else if (dd.chunks[i].type == DEMODELTA)
+ {
+ writedemodelta(op, dd.chunks[i].data.delta, dh.version);
}
}