Ejemplo n.º 1
0
void SV_StopDemoRecording(client_t *client)
{
	prvm_prog_t *prog = SVVM_prog;
	sizebuf_t buf;
	unsigned char bufdata[64];

	if(client->sv_demo_file == NULL)
		return;
	
	buf.data = bufdata;
	buf.maxsize = sizeof(bufdata);
	SZ_Clear(&buf);
	MSG_WriteByte(&buf, svc_disconnect);
	SV_WriteDemoMessage(client, &buf, false);

	if (sv_autodemo_perclient_discardable.integer && PRVM_serveredictfloat(client->edict, discardabledemo))
	{
		FS_RemoveOnClose(client->sv_demo_file);
		Con_Printf("Stopped recording discardable demo for # %d (%s)\n", PRVM_NUM_FOR_EDICT(client->edict), client->netaddress);
	}
	else
		Con_Printf("Stopped recording demo for # %d (%s)\n", PRVM_NUM_FOR_EDICT(client->edict), client->netaddress);

	FS_Close(client->sv_demo_file);
	client->sv_demo_file = NULL;
}
Ejemplo n.º 2
0
void SV_WriteNetnameIntoDemo(client_t *client)
{
	// This "pseudo packet" is written so a program can easily find out whose demo this is
	sizebuf_t buf;
	unsigned char bufdata[MAX_SCOREBOARDNAME + 64];

	if(client->sv_demo_file == NULL)
		return;

	buf.data = bufdata;
	buf.maxsize = sizeof(bufdata);
	SZ_Clear(&buf);
	MSG_WriteByte(&buf, svc_stufftext);
	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, false);
}
Ejemplo n.º 3
0
void SV_StopDemoRecording(client_t *client)
{
	sizebuf_t buf;
	unsigned char bufdata[64];

	if(client->sv_demo_file == NULL)
		return;
	
	buf.data = bufdata;
	buf.maxsize = sizeof(bufdata);
	SZ_Clear(&buf);
	MSG_WriteByte(&buf, svc_disconnect);
	SV_WriteDemoMessage(client, &buf, false);

	FS_Close(client->sv_demo_file);
	client->sv_demo_file = NULL;
	Con_Printf("Stopped recording demo for # %d (%s)\n", PRVM_NUM_FOR_EDICT(client->edict), client->netaddress);
}