From 894842d7e166560cb8aac3fc3408ab6b8b8efbf9 Mon Sep 17 00:00:00 2001 From: havoc Date: Thu, 13 May 2004 17:23:09 +0000 Subject: [PATCH] Tomaz's patch to name screenshots based on gamemode or -game if specified git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@4157 d7cf8633-e32d-0410-b094-e92efae38249 --- cl_screen.c | 13 ++++++------- cl_screen.h | 1 + fs.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+), 7 deletions(-) diff --git a/cl_screen.c b/cl_screen.c index d9caa1fb..fdb08f89 100644 --- a/cl_screen.c +++ b/cl_screen.c @@ -19,6 +19,7 @@ cvar_t vid_conwidth = {CVAR_SAVE, "vid_conwidth", "640"}; cvar_t vid_conheight = {CVAR_SAVE, "vid_conheight", "480"}; cvar_t scr_screenshot_jpeg = {CVAR_SAVE, "scr_screenshot_jpeg","0"}; cvar_t scr_screenshot_jpeg_quality = {CVAR_SAVE, "scr_screenshot_jpeg_quality","0.9"}; +cvar_t scr_screenshot_name = {0, "scr_screenshot_name","dp"}; cvar_t cl_avidemo = {0, "cl_avidemo", "0"}; int jpeg_supported = false; @@ -654,17 +655,15 @@ SCR_ScreenShot_f */ void SCR_ScreenShot_f (void) { - static int shotnumber = 0; - const char *base; - char filename[64]; + int shotnumber; + char base[MAX_QPATH]; + char filename[MAX_QPATH]; qboolean jpeg = (scr_screenshot_jpeg.integer != 0); - base = "screenshots/dp"; - if (gamemode == GAME_FNIGGIUM) - base = "screenshots/fniggium"; + sprintf (base, "screenshots/%s", scr_screenshot_name.string); // find a file name to save it to - for (;shotnumber < 1000000;shotnumber++) + for (shotnumber=0;shotnumber < 1000000;shotnumber++) if (!FS_SysFileExists(va("%s/%s%06d.tga", fs_gamedir, base, shotnumber)) && !FS_SysFileExists(va("%s/%s%06d.jpg", fs_gamedir, base, shotnumber))) break; if (shotnumber >= 1000000) diff --git a/cl_screen.h b/cl_screen.h index c1edc105..4471f3df 100644 --- a/cl_screen.h +++ b/cl_screen.h @@ -67,6 +67,7 @@ extern cvar_t vid_conwidth; extern cvar_t vid_conheight; extern cvar_t scr_screenshot_jpeg; extern cvar_t scr_screenshot_jpeg_quality; +extern cvar_t scr_screenshot_name; void CL_Screen_NewMap(void); void CL_Screen_Init(void); diff --git a/fs.c b/fs.c index 3ecac691..2d81ce39 100644 --- a/fs.c +++ b/fs.c @@ -891,6 +891,8 @@ void FS_Init (void) fs_mempool = Mem_AllocPool("file management"); pak_mempool = Mem_AllocPool("paks"); + Cvar_RegisterVariable (&scr_screenshot_name); + Cmd_AddCommand ("path", FS_Path_f); Cmd_AddCommand ("dir", FS_Dir_f); Cmd_AddCommand ("ls", FS_Ls_f); @@ -943,6 +945,55 @@ void FS_Init (void) return; } + switch(gamemode) + { + case GAME_NORMAL: + Cvar_SetQuick (&scr_screenshot_name, "dp"); + break; + case GAME_HIPNOTIC: + Cvar_SetQuick (&scr_screenshot_name, "hipnotic"); + break; + case GAME_ROGUE: + Cvar_SetQuick (&scr_screenshot_name, "rogue"); + break; + case GAME_NEHAHRA: + Cvar_SetQuick (&scr_screenshot_name, "nehahra"); + break; + case GAME_NEXUIZ: + Cvar_SetQuick (&scr_screenshot_name, "nexuiz"); + break; + case GAME_TRANSFUSION: + Cvar_SetQuick (&scr_screenshot_name, "transfusion"); + break; + case GAME_GOODVSBAD2: + Cvar_SetQuick (&scr_screenshot_name, "gvb2"); + break; + case GAME_TEU: + Cvar_SetQuick (&scr_screenshot_name, "teu"); + break; + case GAME_BATTLEMECH: + Cvar_SetQuick (&scr_screenshot_name, "battlemech"); + break; + case GAME_ZYMOTIC: + Cvar_SetQuick (&scr_screenshot_name, "zymotic"); + break; + case GAME_FNIGGIUM: + Cvar_SetQuick (&scr_screenshot_name, "fniggium"); + break; + case GAME_SETHERAL: + Cvar_SetQuick (&scr_screenshot_name, "setheral"); + break; + case GAME_SOM: + Cvar_SetQuick (&scr_screenshot_name, "som"); + break; + case GAME_TENEBRAE: + Cvar_SetQuick (&scr_screenshot_name, "tenebrae"); + break; + default: + Cvar_SetQuick (&scr_screenshot_name, "dp"); + break; + } + // start up with GAMENAME by default (id1) strlcpy (com_modname, GAMENAME, sizeof (com_modname)); FS_AddGameDirectory (va("%s/"GAMENAME, fs_basedir)); @@ -963,6 +1014,7 @@ void FS_Init (void) fs_modified = true; strlcpy (com_modname, com_argv[i+1], sizeof (com_modname)); FS_AddGameDirectory (va("%s/%s", fs_basedir, com_argv[i+1])); + Cvar_SetQuick (&scr_screenshot_name, com_modname); } } -- 2.39.2