gclient_t *ClientFromString(const char *str) { gclient_t *cl; int idnum; char cleanName[MAX_STRING_CHARS]; // numeric values could be slot numbers if (Q_isanumber(str) && Q_isintegral(atof(str))) { idnum = atoi(str); if (idnum >= 0 && idnum < level.maxclients) { cl = &level.clients[idnum]; if (cl->pers.connected == CON_CONNECTED) { return cl; } } } // check for a name match for (idnum = 0, cl = level.clients; idnum < level.maxclients; idnum++, cl++) { if (cl->pers.connected != CON_CONNECTED) { continue; } Q_strncpyz(cleanName, cl->pers.netname, sizeof cleanName); Q_CleanStr(cleanName); if (!Q_stricmp(cleanName, str)) { return cl; } } return NULL; }
static void SV_WeaponToggle_f( void ) { int bits = 0; int i, val; char *s; const char *cvarStr = NULL; if ( sv_gametype->integer == GT_DUEL || sv_gametype->integer == GT_POWERDUEL ) { cvarStr = "g_duelWeaponDisable"; bits = Cvar_VariableIntegerValue( "g_duelWeaponDisable" ); } else { cvarStr = "g_weaponDisable"; bits = Cvar_VariableIntegerValue( "g_weaponDisable" ); } // make sure server is running if( !com_sv_running->integer ) { Com_Printf( "Server is not running.\n" ); return; } if ( Cmd_Argc() != 2 ) { for ( i = 0; i<WP_NUM_WEAPONS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, weaponToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, weaponToggleNamePrints[i] ); } Com_Printf ("Example usage: weapontoggle 3(toggles SABER)\n"); return; } s = Cmd_Argv(1); if( Q_isanumber( s ) ) { val = atoi(s); if( val >= 0 && val < WP_NUM_WEAPONS) { bits ^= (1 << val); Cvar_SetValue(cvarStr, bits); Com_Printf( "%s %s^7\n", weaponToggleNamePrints[val], (bits & (1 << val)) ? "^2Enabled" : "^1Disabled" ); } else { for ( i = 0; i<WP_NUM_WEAPONS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, weaponToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, weaponToggleNamePrints[i] ); } Com_Printf ("Specified a weapon that does not exist.\nExample usage: weapontoggle 3\n(toggles SABER)\n"); } } else { for ( i = 0; i<WP_NUM_WEAPONS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, weaponToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, weaponToggleNamePrints[i] ); } Com_Printf ("Specified a weapon that does not exist.\nExample usage: weapontoggle 3\n(toggles SABER)\n"); } }
static void SV_ForceToggle_f( void ) { int bits = Cvar_VariableIntegerValue("g_forcePowerDisable"); int i, val; char *s; // make sure server is running if( !com_sv_running->integer ) { Com_Printf( "Server is not running.\n" ); return; } if ( Cmd_Argc() != 2 ) { for ( i = 0; i<NUM_FORCE_POWERS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, forceToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, forceToggleNamePrints[i] ); } Com_Printf( "Example usage: forcetoggle 3(toggles PUSH)\n" ); return; } s = Cmd_Argv(1); if( Q_isanumber( s ) ) { val = atoi(s); if( val >= 0 && val < NUM_FORCE_POWERS) { bits ^= (1 << val); Cvar_SetValue("g_forcePowerDisable", bits); Com_Printf( "%s %s^7\n", forceToggleNamePrints[val], (bits & (1<<val)) ? "^2Enabled" : "^1Disabled" ); } else { for ( i = 0; i<NUM_FORCE_POWERS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, forceToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, forceToggleNamePrints[i] ); } Com_Printf ("Specified a power that does not exist.\nExample usage: forcetoggle 3\n(toggles PUSH)\n"); } } else { for ( i = 0; i<NUM_FORCE_POWERS; i++ ) { if ( (bits & (1 << i)) ) Com_Printf( "%2d [X] %s\n", i, forceToggleNamePrints[i] ); else Com_Printf( "%2d [ ] %s\n", i, forceToggleNamePrints[i] ); } Com_Printf ("Specified a power that does not exist.\nExample usage: forcetoggle 3\n(toggles PUSH)\n"); } }
static void SV_ForceToggle_f( void ) { int bits = Cvar_VariableIntegerValue("g_forcePowerDisable"); int i, val; const char *s; const char *enablestrings[] = { "Disabled", "Enabled" }; // make sure server is running if( !com_sv_running->integer ) { Com_Printf( "Server is not running.\n" ); return; } if ( Cmd_Argc() != 2 ) { for(i = 0; i < NUM_FORCE_POWERS; i++ ) { Com_Printf ("%i - %s - Status: %s\n", i, forceToggleNamePrints[i], enablestrings[!(bits & (1<<i))]); } Com_Printf ("Example usage: forcetoggle 3(toggles PUSH)\n"); return; } s = Cmd_Argv(1); if( Q_isanumber( s ) ) { val = atoi(s); if( val >= 0 && val < NUM_FORCE_POWERS) { bits ^= (1 << val); Cvar_SetValue("g_forcePowerDisable", bits); Com_Printf ("%s has been %s.\n", forceToggleNamePrints[val], (bits & (1<<val)) ? "disabled" : "enabled"); } else { Com_Printf ("Specified a power that does not exist.\nExample usage: forcetoggle 3\n(toggles PUSH)\n"); } } else { for(i = 0; i < NUM_FORCE_POWERS; i++ ) { Com_Printf ("%i - %s - Status: %s\n", i, forceToggleNamePrints[i], enablestrings[!(bits & (1<<i))]); } Com_Printf ("Specified a power that does not exist.\nExample usage: forcetoggle 3\n(toggles PUSH)\n"); } }
/* ============ Cvar_Validate ============ */ static const char *Cvar_Validate( cvar_t *var, const char *value, qboolean warn ) { static char s[ MAX_CVAR_VALUE_STRING ]; float valuef; qboolean changed = qfalse; if( !var->validate ) return value; if( !value ) return value; if( Q_isanumber( value ) ) { valuef = atof( value ); if( var->integral ) { if( !Q_isintegral( valuef ) ) { if( warn ) Com_Printf( "WARNING: cvar '%s' must be integral", var->name ); valuef = (int)valuef; changed = qtrue; } } } else { if( warn ) Com_Printf( "WARNING: cvar '%s' must be numeric", var->name ); valuef = atof( var->resetString ); changed = qtrue; } if( valuef < var->min ) { if( warn ) { if( changed ) Com_Printf( " and is" ); else Com_Printf( "WARNING: cvar '%s'", var->name ); if( Q_isintegral( var->min ) ) Com_Printf( " out of range (min %d)", (int)var->min ); else Com_Printf( " out of range (min %f)", var->min ); } valuef = var->min; changed = qtrue; } else if( valuef > var->max ) { if( warn ) { if( changed ) Com_Printf( " and is" ); else Com_Printf( "WARNING: cvar '%s'", var->name ); if( Q_isintegral( var->max ) ) Com_Printf( " out of range (max %d)", (int)var->max ); else Com_Printf( " out of range (max %f)", var->max ); } valuef = var->max; changed = qtrue; } if( changed ) { if( Q_isintegral( valuef ) ) { Com_sprintf( s, sizeof( s ), "%d", (int)valuef ); if( warn ) Com_Printf( ", setting to %d\n", (int)valuef ); } else { Com_sprintf( s, sizeof( s ), "%f", valuef ); if( warn ) Com_Printf( ", setting to %f\n", valuef ); } return s; } else return value; }