summaryrefslogtreecommitdiff
path: root/source/cvar.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/cvar.c')
-rw-r--r--source/cvar.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/source/cvar.c b/source/cvar.c
index d36d30a..b78828e 100644
--- a/source/cvar.c
+++ b/source/cvar.c
@@ -970,7 +970,8 @@ Cvar_Inc_f
*/
static void Cvar_Inc_f( void ) {
cvar_t *var;
- float val;
+ float value;
+ char val[32];
if( Cmd_Argc() < 2 ) {
Com_Printf( "Usage: %s <variable> [value]\n", Cmd_Argv( 0 ) );
@@ -984,20 +985,26 @@ static void Cvar_Inc_f( void ) {
}
if( !COM_IsNumeric( var->string ) ) {
- Com_Printf( "\"%s\" is \"%s\", can't increment\n",
- var->name, var->string );
+ Com_Printf( "\"%s\" is \"%s\", can't %s\n",
+ var->name, var->string, Cmd_Argv( 0 ) );
return;
}
- val = 1;
+ value = 1;
if( Cmd_Argc() > 2 ) {
- val = atof( Cmd_Argv( 2 ) );
+ value = atof( Cmd_Argv( 2 ) );
}
if( !strcmp( Cmd_Argv( 0 ), "dec" ) ) {
- val = -val;
+ value = -value;
}
+ value += var->value;
- Cvar_SetValue( var->name, var->value + val );
+ if( value == ( int )value )
+ Com_sprintf( val, sizeof( val ), "%i", ( int )value );
+ else
+ Com_sprintf( val, sizeof( val ), "%f", value );
+
+ Cvar_SetByVar( var, val, CVAR_SET_CONSOLE );
}
/*