예제 #1
0
static void Dynvar_Set_f( void )
{
	if( Cmd_Argc() == 3 )
	{
		dynvar_t *dynvar;
		dynvar = Dynvar_Lookup( Cmd_Argv( 1 ) );
		if( dynvar )
		{
			if( dynvar->console )
			{
				dynvar_set_status_t status = Dynvar_SetValue( dynvar, Cmd_Argv( 2 ) );
				switch( status )
				{
				case DYNVAR_SET_OK:
					break;
				case DYNVAR_SET_READONLY:
					Com_Printf( (char *) DYNVAR_SET_READONLY_MSG, Dynvar_GetName( dynvar ) );
					break;
				case DYNVAR_SET_INVALID:
					Com_Printf( (char *) DYNVAR_SET_INVALID_MSG, Cmd_Argv( 2 ), Dynvar_GetName( dynvar ) );
					break;
				case DYNVAR_SET_TRANSIENT:
					Com_Printf( (char *) DYNVAR_TRANSIENT_MSG, Dynvar_GetName( dynvar ) );
					break;
				}
			}
			else
				Com_Printf( (char *) DYNVAR_NOT_FOUND_MSG, Dynvar_GetName( dynvar ) );
		}
		else
			Com_Printf( (char *) DYNVAR_NOT_FOUND_MSG, Cmd_Argv( 1 ) );
	}
	else
		Com_Printf( "usage: setdyn <dynvar> <value>\n" );
}
예제 #2
0
/*
* Sys_InitTimeDynvar
*/
void Sys_InitTimeDynvar( void )
{
	QueryPerformanceFrequency( (LARGE_INTEGER *) &hwtimer_freq );

	hwtimer_var = Dynvar_Create( "sys_hwtimer", 1, Sys_GetHwTimer_f, Sys_SetHwTimer_f );
	assert( hwtimer_var );
	Dynvar_AddListener( hwtimer_var, Sys_SynchronizeTimers_f );
	Dynvar_SetValue( hwtimer_var, "0" );
}
예제 #3
0
/*
* Sys_InitDynvars
*/
void Sys_InitDynvars( void )
{
	char *dummyStr;
	dynvar_t *affinity_var;

	affinity_var = Dynvar_Create( "sys_affinity", true, Sys_GetAffinity_f, Sys_SetAffinity_f );
	assert( affinity_var );
	Dynvar_GetValue( affinity_var, (void **)&dummyStr );
	assert( dummyStr );
	Dynvar_SetValue( affinity_var, dummyStr );

	Sys_InitTimeDynvar();
}
예제 #4
0
qboolean Dynvar_Command( void )
{
	dynvar_t *dynvar = Dynvar_Lookup( Cmd_Argv( 0 ) );
	if( dynvar && dynvar->console )
	{
		// dynvar exists and is console-accessible
		if( Cmd_Argc() == 1 )
		{
			void *value;
			dynvar_get_status_t status = Dynvar_GetValue( dynvar, &value );
			switch( status )
			{
			case DYNVAR_GET_OK:
				Com_Printf( "\"%s\" is \"%s\"\n", Dynvar_GetName( dynvar ), (char *) value );
				break;
			case DYNVAR_GET_WRITEONLY:
				Com_Printf( (char *) DYNVAR_GET_WRITEONLY_MSG, Dynvar_GetName( dynvar ) );
				break;
			case DYNVAR_GET_TRANSIENT:
				Com_Printf( (char *) DYNVAR_TRANSIENT_MSG, Dynvar_GetName( dynvar ) );
				break;
			}
		}
		else
		{
			dynvar_set_status_t status = Dynvar_SetValue( dynvar, Cmd_Argv( 1 ) );
			switch( status )
			{
			case DYNVAR_SET_OK:
				break;
			case DYNVAR_SET_READONLY:
				Com_Printf( (char *) DYNVAR_SET_READONLY_MSG, Dynvar_GetName( dynvar ) );
				break;
			case DYNVAR_SET_INVALID:
				Com_Printf( (char *) DYNVAR_SET_INVALID_MSG, Cmd_Argv( 1 ), Dynvar_GetName( dynvar ) );
				break;
			case DYNVAR_SET_TRANSIENT:
				Com_Printf( (char *) DYNVAR_TRANSIENT_MSG, Dynvar_GetName( dynvar ) );
				break;
			}
		}
		return qtrue;
	}
	else
		// dynvar does not exist or is inaccessible
		return qfalse;
}
예제 #5
0
/*
* Sys_InitTime
*/
void Sys_InitTime( void )
{
	char *hwtimerStr;
	assert( hwtimer_var );
	Dynvar_GetValue( hwtimer_var, (void **)&hwtimerStr );
	assert( hwtimerStr );
	if( hwtimerStr[0] == '0' && COM_CheckParm( "-hwtimer" ) )
	{
		// hwtimer set by command line parameter (deprecated)
		Dynvar_SetValue( hwtimer_var, "1" );
	}
	// finally check whether hwtimer is activated
	if( hwtimer )
		Com_Printf( "Using High Resolution Performance Counter\n" );
	else
		Com_Printf( "Using timeGetTime\n" );
}