This repository has been archived on 2022-06-27. You can view files and clone it, but cannot push or open issues or pull requests.
Xash3DArchive/engine/client/cl_cmds.c

194 lines
3.6 KiB
C
Raw Normal View History

2007-11-06 22:00:00 +01:00
//=======================================================================
// Copyright XashXT Group 2007 <20>
// cl_cmds.c - client console commnds
//=======================================================================
2008-06-09 22:00:00 +02:00
#include "common.h"
2007-11-06 22:00:00 +01:00
#include "client.h"
2007-11-13 22:00:00 +01:00
/*
================
SCR_Loading_f
================
*/
void SCR_Loading_f (void)
{
2007-11-14 22:00:00 +01:00
S_StopAllSounds();
2007-11-13 22:00:00 +01:00
}
2008-01-20 22:00:00 +01:00
void CL_SetFont_f( void )
{
if(Cmd_Argc() < 2)
{
2008-08-02 22:00:00 +02:00
Msg( "Usage: setfont <fontname>\n" );
2008-01-20 22:00:00 +01:00
return;
}
Cvar_Set("cl_font", Cmd_Argv(1));
}
2008-08-02 22:00:00 +02:00
/*
===============
CL_Download_f
Request a download from the server
===============
*/
void CL_Download_f( void )
{
if( Cmd_Argc() != 2 )
{
Msg( "Usage: download <filename>\n" );
return;
}
CL_CheckOrDownloadFile(Cmd_Argv(1));
}
2007-11-06 22:00:00 +01:00
/*
==================
CL_ScreenshotGetName
==================
*/
void CL_ScreenshotGetName( int lastnum, char *filename )
{
int a, b, c, d;
if(!filename) return;
if(lastnum < 0 || lastnum > 9999)
{
// bound
2008-07-18 22:00:00 +02:00
com.sprintf( filename, "scrshots/%s/shot9999.tga", cl.configstrings[CS_NAME] );
2007-11-06 22:00:00 +01:00
return;
}
a = lastnum / 1000;
lastnum -= a * 1000;
b = lastnum / 100;
lastnum -= b * 100;
c = lastnum / 10;
lastnum -= c * 10;
d = lastnum;
2008-07-18 22:00:00 +02:00
com.sprintf( filename, "scrshots/%s/shot%i%i%i%i.tga", cl.configstrings[CS_NAME], a, b, c, d );
2007-11-06 22:00:00 +01:00
}
/*
==============================================================================
SCREEN SHOTS
==============================================================================
*/
/*
==================
CL_ScreenShot_f
normal screenshot
==================
*/
void CL_ScreenShot_f( void )
{
2008-07-23 22:00:00 +02:00
int i;
string checkname;
2007-11-06 22:00:00 +01:00
// scan for a free filename
for (i = 0; i <= 9999; i++ )
{
CL_ScreenshotGetName( i, checkname );
if(!FS_FileExists( checkname )) break;
}
Con_ClearNotify();
re->ScrShot( checkname, false );
}
/*
==================
CL_LevelShot_f
splash logo while map is loading
==================
*/
void CL_LevelShot_f( void )
{
2008-07-23 22:00:00 +02:00
string checkname;
2007-11-06 22:00:00 +01:00
// check for exist
2008-07-18 22:00:00 +02:00
com.sprintf( checkname, "gfx/background/%s.tga", cl.configstrings[CS_NAME] );
2007-11-06 22:00:00 +01:00
if(!FS_FileExists( checkname )) re->ScrShot( checkname, true );
2007-11-17 22:00:00 +01:00
else Msg("levelshot for this map already created\nFirst remove old image if you wants do it again\n" );
2007-11-13 22:00:00 +01:00
}
/*
=================
CL_SetSky_f
Set a specific sky and rotation speed
=================
*/
void CL_SetSky_f( void )
{
float rotate;
vec3_t axis;
if(Cmd_Argc() < 2)
{
Msg("Usage: sky <basename> <rotate> <axis x y z>\n");
return;
}
2008-07-31 22:00:00 +02:00
if(Cmd_Argc() > 2) rotate = com.atof(Cmd_Argv(2));
2007-11-13 22:00:00 +01:00
else rotate = 0;
if(Cmd_Argc() == 6)
{
2008-07-31 22:00:00 +02:00
VectorSet(axis, com.atof(Cmd_Argv(3)), com.atof(Cmd_Argv(4)), com.atof(Cmd_Argv(5)));
2007-11-13 22:00:00 +01:00
}
else
{
VectorSet(axis, 0, 0, 1 );
}
re->SetSky(Cmd_Argv(1), rotate, axis);
}
/*
================
SCR_TimeRefresh_f
================
*/
2008-06-30 22:00:00 +02:00
void SCR_TimeRefresh_f( void )
2007-11-13 22:00:00 +01:00
{
int i;
2008-07-03 22:00:00 +02:00
int start, stop;
2007-11-13 22:00:00 +01:00
float time;
if ( cls.state != ca_active )
return;
2008-07-03 22:00:00 +02:00
start = Sys_Milliseconds();
2007-11-13 22:00:00 +01:00
2008-06-30 22:00:00 +02:00
if( Cmd_Argc() == 2 )
2007-11-13 22:00:00 +01:00
{
// run without page flipping
re->BeginFrame();
2008-06-30 22:00:00 +02:00
for( i = 0; i < 128; i++ )
2007-11-13 22:00:00 +01:00
{
2008-06-30 22:00:00 +02:00
cl.refdef.viewangles[1] = i/128.0 * 360.0f;
2007-11-13 22:00:00 +01:00
re->RenderFrame (&cl.refdef);
}
re->EndFrame();
}
else
{
2008-06-30 22:00:00 +02:00
for( i = 0; i < 128; i++ )
2007-11-13 22:00:00 +01:00
{
2008-06-30 22:00:00 +02:00
cl.refdef.viewangles[1] = i/128.0 * 360.0f;
2007-11-13 22:00:00 +01:00
re->BeginFrame();
re->RenderFrame(&cl.refdef);
re->EndFrame();
}
}
2008-07-03 22:00:00 +02:00
stop = Sys_Milliseconds();
2008-07-04 22:00:00 +02:00
time = (stop - start) / 1000.0f;
2008-06-30 22:00:00 +02:00
Msg( "%f seconds (%f fps)\n", time, 128 / time );
2007-11-06 22:00:00 +01:00
}