mirror of
https://github.com/FWGS/xash3d-fwgs.git
synced 2026-08-05 03:24:56 +08:00
engine: use BaseCmd_FindAll when looking for cvars and cmds simultaneously
This commit is contained in:
@@ -21,6 +21,7 @@ GNU General Public License for more details.
|
||||
#include "shake.h"
|
||||
#include "hltv.h"
|
||||
#include "input.h"
|
||||
#include "base_cmd.h"
|
||||
|
||||
enum {
|
||||
STAT_HEALTH = 0,
|
||||
@@ -866,7 +867,13 @@ static void CL_QuakeExecStuff( void )
|
||||
if( argc == 0 )
|
||||
{
|
||||
// debug: find all missed commands and cvars to add them into QWrap
|
||||
if( !Cvar_Exists( token ) && !Cmd_Exists( token ))
|
||||
cmdalias_t *alias;
|
||||
cmd_t *cmd;
|
||||
convar_t *cvar;
|
||||
|
||||
BaseCmd_FindAll( token, &cmd, &alias, &cvar );
|
||||
|
||||
if( !cvar && !cmd )
|
||||
Con_Printf( S_WARN "'%s' is not exist\n", token );
|
||||
// else Msg( "cmd: %s\n", token );
|
||||
|
||||
|
||||
@@ -650,6 +650,8 @@ int Cmd_AddCommandEx( const char *cmd_name, xcommand_t function, const char *cmd
|
||||
{
|
||||
cmd_t *cmd, *cur, *prev;
|
||||
size_t desc_len;
|
||||
convar_t *cvar;
|
||||
cmdalias_t *alias;
|
||||
|
||||
if( !COM_CheckString( cmd_name ))
|
||||
{
|
||||
@@ -658,14 +660,14 @@ int Cmd_AddCommandEx( const char *cmd_name, xcommand_t function, const char *cmd
|
||||
}
|
||||
|
||||
// fail if the command is a variable name
|
||||
if( Cvar_FindVar( cmd_name ))
|
||||
BaseCmd_FindAll( cmd_name, &cmd, &alias, &cvar );
|
||||
if( cvar )
|
||||
{
|
||||
Con_DPrintf( S_ERROR "%s: %s already defined as a var\n", funcname, cmd_name );
|
||||
return 0;
|
||||
}
|
||||
|
||||
// fail if the command already exists and cannot be overriden
|
||||
cmd = Cmd_Exists( cmd_name );
|
||||
if( cmd )
|
||||
{
|
||||
// some mods register commands that share the name with some engine's commands
|
||||
|
||||
@@ -407,19 +407,21 @@ The flags will be or'ed in if the variable exists.
|
||||
*/
|
||||
convar_t *Cvar_Get( const char *name, const char *value, uint32_t flags, const char *var_desc )
|
||||
{
|
||||
convar_t *cur, *find, *var;
|
||||
convar_t *cur, *find, *var;
|
||||
cmd_t *cmd;
|
||||
cmdalias_t *alias;
|
||||
|
||||
ASSERT( name && *name );
|
||||
|
||||
BaseCmd_FindAll( name, &cmd, &alias, &var );
|
||||
|
||||
// check for command coexisting
|
||||
if( Cmd_Exists( name ))
|
||||
if( cmd )
|
||||
{
|
||||
Con_DPrintf( S_ERROR "can't register variable '%s', is already defined as command\n", name );
|
||||
return NULL;
|
||||
}
|
||||
|
||||
var = Cvar_FindVar( name );
|
||||
|
||||
if( var )
|
||||
{
|
||||
// already existed?
|
||||
@@ -519,12 +521,14 @@ Adds a freestanding variable to the variable list.
|
||||
*/
|
||||
void Cvar_RegisterVariable( convar_t *var )
|
||||
{
|
||||
convar_t *cur, *find, *dup;
|
||||
convar_t *cur, *find, *dup;
|
||||
cmd_t *cmd;
|
||||
cmdalias_t *alias;
|
||||
|
||||
ASSERT( var != NULL );
|
||||
|
||||
// first check to see if it has allready been defined
|
||||
dup = Cvar_FindVar( var->name );
|
||||
BaseCmd_FindAll( var->name, &cmd, &alias, &dup );
|
||||
|
||||
if( dup )
|
||||
{
|
||||
@@ -539,7 +543,7 @@ void Cvar_RegisterVariable( convar_t *var )
|
||||
}
|
||||
|
||||
// check for overlap with a command
|
||||
if( Cmd_Exists( var->name ))
|
||||
if( cmd )
|
||||
{
|
||||
Con_DPrintf( S_ERROR "can't register variable '%s', is already defined as command\n", var->name );
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user