From: sajt Date: Sat, 25 Mar 2006 07:58:18 +0000 (+0000) Subject: cl_autodemo, when set to true, automatically records every game you play. The filenam... X-Git-Tag: xonotic-v0.1.0preview~4139 X-Git-Url: https://git.xonotic.org/?a=commitdiff_plain;h=7081f27eb26915b5daae91f07e382453ecc1b2d8;p=xonotic%2Fdarkplaces.git cl_autodemo, when set to true, automatically records every game you play. The filename of the demo is determined by cl_autodemo_nameformat (UNIX time string) and the map name. Note - I'm pretty sure this currently lumps all games played successively into one demo. Feel free to fix that :) git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@6187 d7cf8633-e32d-0410-b094-e92efae38249 --- diff --git a/cl_main.c b/cl_main.c index 6dd9cdc4..99a2c135 100644 --- a/cl_main.c +++ b/cl_main.c @@ -49,6 +49,9 @@ cvar_t m_side = {CVAR_SAVE, "m_side","0.8","mouse side speed multiplier"}; cvar_t freelook = {CVAR_SAVE, "freelook", "1","mouse controls pitch instead of forward/back"}; +cvar_t cl_autodemo = {0, "cl_autodemo", "0", "records every game played, using the date/time and map name to name the demo file" }; +cvar_t cl_autodemo_nameformat = {0, "cl_autodemo_nameformat", "%Y-%m-%d_%H-%M", "The format of the cl_autodemo filename, followed by the map name" }; + cvar_t r_draweffects = {0, "r_draweffects", "1","renders temporary sprite effects"}; cvar_t cl_explosions_alpha_start = {CVAR_SAVE, "cl_explosions_alpha_start", "1.5","starting alpha of an explosion shell"}; @@ -1744,6 +1747,9 @@ void CL_Init (void) Cmd_AddCommand ("playdemo", CL_PlayDemo_f, "watch a demo file"); Cmd_AddCommand ("timedemo", CL_TimeDemo_f, "play back a demo as fast as possible and save statistics to benchmark.log"); + Cvar_RegisterVariable (&cl_autodemo); + Cvar_RegisterVariable (&cl_autodemo_nameformat); + Cmd_AddCommand ("fog", CL_Fog_f, "set global fog parameters (density red green blue)"); // LordHavoc: added pausedemo diff --git a/client.h b/client.h index a1559169..2e261852 100644 --- a/client.h +++ b/client.h @@ -912,6 +912,9 @@ extern cvar_t m_yaw; extern cvar_t m_forward; extern cvar_t m_side; +extern cvar_t cl_autodemo; +extern cvar_t cl_autodemo_nameformat; + extern cvar_t r_draweffects; extern cvar_t cl_explosions_alpha_start; diff --git a/host_cmd.c b/host_cmd.c index 9bd58db0..01ab2572 100644 --- a/host_cmd.c +++ b/host_cmd.c @@ -281,6 +281,27 @@ void Host_Map_f (void) SV_SpawnServer(level); if (sv.active && cls.state == ca_disconnected) CL_EstablishConnection("local:1"); + +// if cl_autodemo is set, automatically start recording a demo if one isn't being recorded already + if (cl_autodemo.integer && !cls.demorecording) + { + char demofile[MAX_OSPATH]; + + dpsnprintf (demofile, sizeof(demofile), "%s_%s.dem", Sys_TimeString (cl_autodemo_nameformat.string), level); + + Con_Printf ("Recording to %s.\n", demofile); + + cls.demofile = FS_Open (demofile, "wb", false, false); + if (cls.demofile) + { + cls.forcetrack = -1; + FS_Printf (cls.demofile, "%i\n", cls.forcetrack); + } + else + Con_Print ("ERROR: couldn't open.\n"); + + cls.demorecording = true; + } } /*