Con_Printf("Recording demo for # %d (%s) to %s\n", PRVM_NUM_FOR_EDICT(client->edict), client->netaddress, name);
- client->sv_demo_file = FS_Open(name, "wb", false, false);
+ client->sv_demo_file = FS_OpenRealFile(name, "wb", false);
if(!client->sv_demo_file)
{
Con_Print("ERROR: couldn't open.\n");
FS_Printf(client->sv_demo_file, "%i\n", forcetrack);
}
-void SV_WriteDemoMessage(client_t *client, sizebuf_t *sendbuffer)
+void SV_WriteDemoMessage(client_t *client, sizebuf_t *sendbuffer, qboolean clienttoserver)
{
int len, i;
float f;
if(sendbuffer->cursize == 0)
return;
- len = LittleLong(sendbuffer->cursize);
+ len = LittleLong(sendbuffer->cursize | (clienttoserver ? DEMOMSG_CLIENT_TO_SERVER : 0));
FS_Write(client->sv_demo_file, &len, 4);
for(i = 0; i < 3; ++i)
{
buf.maxsize = sizeof(bufdata);
SZ_Clear(&buf);
MSG_WriteByte(&buf, svc_disconnect);
- SV_WriteDemoMessage(client, &buf);
+ SV_WriteDemoMessage(client, &buf, false);
FS_Close(client->sv_demo_file);
client->sv_demo_file = NULL;
MSG_WriteUnterminatedString(&buf, "\n// this demo contains the point of view of: ");
MSG_WriteUnterminatedString(&buf, client->name);
MSG_WriteString(&buf, "\n");
- SV_WriteDemoMessage(client, &buf);
+ SV_WriteDemoMessage(client, &buf, false);
}