Centerprint when screenshotting

This commit is contained in:
smallmodel 2023-07-30 11:40:33 +02:00
parent 3fe7cbf725
commit 078223c1b6
No known key found for this signature in database
GPG key ID: 9F2D623CEDF08512

View file

@ -700,58 +700,61 @@ screenshot [filename]
Doesn't print the pacifier message if there is a second arg Doesn't print the pacifier message if there is a second arg
================== ==================
*/ */
void R_ScreenShot_f (void) { void R_ScreenShot_f(void) {
char checkname[MAX_OSPATH]; char checkname[MAX_OSPATH];
static int lastNumber = -1; static int lastNumber = -1;
qboolean silent; qboolean silent;
if ( !strcmp( ri.Cmd_Argv(1), "levelshot" ) ) { if (!strcmp(ri.Cmd_Argv(1), "levelshot")) {
R_LevelShot(); R_LevelShot();
return; return;
} }
if ( !strcmp( ri.Cmd_Argv(1), "silent" ) ) { if (!strcmp(ri.Cmd_Argv(1), "silent")) {
silent = qtrue; silent = qtrue;
} else { } else {
silent = qfalse; silent = qfalse;
} }
if ( ri.Cmd_Argc() == 2 && !silent ) { if (ri.Cmd_Argc() == 2 && !silent) {
// explicit filename // explicit filename
Com_sprintf( checkname, MAX_OSPATH, "screenshots/%s.tga", ri.Cmd_Argv( 1 ) ); Com_sprintf(checkname, MAX_OSPATH, "screenshots/%s.tga", ri.Cmd_Argv(1));
} else { } else {
// scan for a free filename // scan for a free filename
// if we have saved a previous screenshot, don't scan // if we have saved a previous screenshot, don't scan
// again, because recording demo avis can involve // again, because recording demo avis can involve
// thousands of shots // thousands of shots
if ( lastNumber == -1 ) { if (lastNumber == -1) {
lastNumber = 0; lastNumber = 0;
} }
// scan for a free number // scan for a free number
for ( ; lastNumber <= 9999 ; lastNumber++ ) { for (; lastNumber <= 9999; lastNumber++) {
R_ScreenshotFilename( lastNumber, checkname ); R_ScreenshotFilename(lastNumber, checkname);
if (!ri.FS_FileExists( checkname )) if (!ri.FS_FileExists(checkname))
{ {
break; // file doesn't exist break; // file doesn't exist
} }
} }
if ( lastNumber >= 9999 ) { if (lastNumber >= 9999) {
ri.Printf (PRINT_ALL, "ScreenShot: Couldn't create a file\n"); ri.Printf(PRINT_ALL, "ScreenShot: Couldn't create a file\n");
return; return;
} }
lastNumber++; lastNumber++;
} }
R_TakeScreenshot( 0, 0, glConfig.vidWidth, glConfig.vidHeight, checkname, qfalse ); R_TakeScreenshot(0, 0, glConfig.vidWidth, glConfig.vidHeight, checkname, qfalse);
if ( !silent ) { if (!silent) {
ri.Printf (PRINT_ALL, "Wrote %s\n", checkname); char message[64];
}
} Com_sprintf(message, sizeof(message), "centerprint \"%s %s\"\n", ri.LV_ConvertString("Wrote"), checkname);
ri.Cmd_ExecuteText(EXEC_NOW, message);
}
}
void R_ScreenShotJPEG_f (void) { void R_ScreenShotJPEG_f (void) {
char checkname[MAX_OSPATH]; char checkname[MAX_OSPATH];