43 for (hash = cvars->
hashtable[hashindex];hash;hash = hash->
next)
47 for (
char **alias = hash->
cvar->
aliases; alias && *alias; alias++)
48 if (!strcmp (var_name, *alias) && (hash->
cvar->
flags & neededflags))
70 if (var->
flags & neededflags)
89 if(prev_alpha) *prev_alpha =
NULL;
90 hashlinkptr = &cvars->
hashtable[hashindex];
91 for (hashlinkptr = &cvars->
hashtable[hashindex]; *hashlinkptr; hashlinkptr = &(*hashlinkptr)->
next)
93 cvar = (*hashlinkptr)->cvar;
94 if (!strcmp (var_name,
cvar->name) && (
cvar->flags & neededflags))
97 for (
char **alias =
cvar->aliases; alias && *alias; alias++)
98 if (!strcmp (var_name, *alias) && (
cvar->flags & neededflags))
104 if(!prev_alpha ||
cvar == cvars->
vars)
106 *prev_alpha = cvars->
vars;
109 while((*prev_alpha)->next !=
cvar)
110 *prev_alpha = (*prev_alpha)->
next;
126 return atof (var->
string);
202 if (!strncasecmp (partial,
cvar->name, len) && (
cvar->flags & neededflags))
231 if (!strncasecmp(partial,
cvar->name, len) && (
cvar->flags & neededflags))
234 for (
char **alias =
cvar->aliases; alias && *alias; alias++)
235 if (!strncasecmp(partial, *alias, len) && (
cvar->flags & neededflags))
262 if (!strncasecmp(partial,
cvar->name, len) && (
cvar->flags & neededflags))
265 for (
char **alias =
cvar->aliases; alias && *alias; alias++)
266 if (!strncasecmp(partial, *alias, len) && (
cvar->flags & neededflags))
267 buf[bpos++] = *alias;
291 size_t len =
strlen(partial);
294 if (!strncasecmp(partial,
cvar->name, len) && (
cvar->flags & neededflags))
297 for (
char **alias =
cvar->aliases; alias && *alias; alias++)
298 if (!strncasecmp (partial, *alias, len) && (
cvar->flags & neededflags))
341 for (j = 0;j < 3;j++)
368 for (var = cvars->
vars ; var ; var = var->
next)
497 if (variable ==
NULL)
506 Con_DPrintf(
"^6Cvar_RegisterCallback: rejecting cvar \"%s\"\n", variable->
name);
522 Con_DPrintf(
"^6Cvar_RegisterVirtual: rejecting cvar \"%s\" alias \"%s\"\n", variable->
name,
name);
557 hash->
cvar = variable;
576 for( current =
NULL, next = cvars->
vars ; next && strcmp( next->
name, variable->
name ) < 0 ; current = next, next = next->
next )
579 current->
next = variable;
581 cvars->
vars = variable;
582 variable->
next = next;
588 hash->
cvar = variable;
608 Con_DPrintf(
"^2Cvar_RegisterVariable: rejecting cvar \"%s\"\n", variable->
name);
622 Con_DPrintf(
"... replacing existing allocated cvar {\"%s\", \"%s\", %i}\n",
cvar->name,
cvar->string,
cvar->flags);
627 variable->
flags &= ~CF_ALLOCATED;
641 cvars->
vars = variable;
648 current->
next = variable;
657 Con_DPrintf(
"Can't register variable %s, already defined\n", variable->
name);
747 cvar->aliases_size = 0;
750 if(newdescription && *newdescription)
757 cvar->globaldefindex[
i] = -1;
770 const char *progname;
776 Con_Printf(
"%s: cvar \"%s\" is not defined.\n", callername,
name);
779 cvar = (*hashlinkptr)->cvar;
790 Con_Printf(
CON_WARN "%s: unable to delete cvar \"%s\", it is an autocvar used by running %s progs!\n", callername,
cvar->name, progname);
806 oldhashlink = *hashlinkptr;
807 *hashlinkptr = (*hashlinkptr)->
next;
867 for (var = cvars->
vars ; var ; var = var->
next)
868 var->
flags &= ~CF_DEFAULTSET;
876 for (var = cvars->
vars ; var ; var = var->
next)
905 for (cp = cvars->
vars; (c = cp);)
912 Con_DPrintf(
"Cvar_RestoreInitState: Restoring cvar \"%s\"\n", c->
name);
922 c->
flags &= ~CF_DEFAULTSET;
945 for (var = cvars->
vars ; var ; var = var->
next)
957 for (var = cvars->
vars ; var ; var = var->
next)
970 for (var = cvars->
vars ; var ; var = var->
next)
991 for (var = cvars->
vars ; var ; var = var->
next) {
1012 const char *partial;
1020 ispattern = (strchr(partial,
'*') || strchr(partial,
'?'));
1022 partial =
va(vabuf,
sizeof(vabuf),
"%s*", partial);
1026 partial =
va(vabuf,
sizeof(vabuf),
"*");
1038 for (
char **alias =
cvar->aliases; alias && *alias; alias++)
1068 Con_Printf(
"Set: wrong number of parameters, usage: set <variablename> <value> [<description>]\n");
1093 Con_Printf(
"SetA: wrong number of parameters, usage: seta <variablename> <value> [<description>]\n");
1117 Con_Printf(
"%s: wrong number of parameters, usage: unset <variablename1> [<variablename2> ...]\n",
Cmd_Argv(
cmd, 0));
1124#ifdef FILLALLCVARSWITHRUBBISH
1143 for(var = cvars->vars; var; var = var->
next)
1153 Con_Printf(
"\n%s does not contain the right rubbish, either this is the first run or a possible overrun was detected, or something changed it intentionally; it DOES contain: %s\n", var->
name, var->
string);
void CL_SetInfo(const char *key, const char *value, qbool send, qbool allowstarkey, qbool allowmodel, qbool quiet)
qbool Cmd_QuoteString(char *out, size_t outlen, const char *in, const char *quoteset, qbool putquotes)
quotes a string so that it can be used as a command argument again; quoteset is a string that contain...
cmd_state_t * cmd_local
command interpreter for local commands injected by SVQC, CSQC, MQC, server or client engine code uses...
qbool Cmd_Exists(cmd_state_t *cmd, const char *cmd_name)
used by the cvar code to check for cvar / command name overlap
#define CF_ALLOCATED
created by Cvar_Get() (console or QC)
#define CF_READONLY
cvar cannot be changed from the console or the command buffer, and is considered CF_PERSISTENT
#define CF_PERSISTENT
cvar must not be reset on gametype switch (such as scr_screenshot_name, which otherwise isn't set to ...
#define CF_NOTIFY
cvar should trigger a chat notification to all connected clients when changed
#define CF_SERVERINFO
command or cvar relevant to serverinfo string handling
#define CF_USERINFO
command or cvar used to communicate userinfo to the server
static int Cmd_Argc(cmd_state_t *cmd)
static const char * Cmd_Argv(cmd_state_t *cmd, int arg)
Cmd_Argv(cmd, ) will return an empty string (not a NULL) if arg > argc, so string operations are alwa...
#define CF_REGISTERED
created by Cvar_RegisterVariable()
#define CF_ARCHIVE
cvar should have its set value saved to config.cfg and persist across sessions
#define CF_PRIVATE
cvar should not be $ expanded or sent to the server under any circumstances (rcon_password,...
unsigned short CRC_Block(const unsigned char *data, size_t size)
void InfoString_SetValue(char *buffer, size_t bufferlength, const char *key, const char *value)
void MSG_WriteString(sizebuf_t *sb, const char *s)
void MSG_WriteByte(sizebuf_t *sb, int c)
char * va(char *buf, size_t buflen, const char *format,...)
int dpsnprintf(char *buffer, size_t buffersize, const char *format,...)
Returns the number of printed characters, excluding the final '\0' or returns -1 if the buffer isn't ...
void Con_Print(const char *msg)
Prints to all appropriate console targets, and adds timestamps.
void Con_DPrintf(const char *fmt,...)
A Con_Printf that only shows up if the "developer" cvar is set.
void Con_Printf(const char *fmt,...)
Prints to all appropriate console targets.
void Con_DPrint(const char *msg)
A Con_Print that only shows up if the "developer" cvar is set.
void Cvar_Del_f(cmd_state_t *cmd)
void Cvar_ResetToDefaults_NoSaveOnly_f(cmd_state_t *cmd)
void Cvar_ResetToDefaults_All_f(cmd_state_t *cmd)
void Cvar_SaveInitState(cvar_state_t *cvars)
float Cvar_VariableValue(cvar_state_t *cvars, const char *var_name, unsigned neededflags)
void Cvar_Set_f(cmd_state_t *cmd)
static void Cvar_SetQuick_Internal(cvar_t *var, const char *value)
float Cvar_VariableValueOr(cvar_state_t *cvars, const char *var_name, float def, unsigned neededflags)
const char * Cvar_VariableDescription(cvar_state_t *cvars, const char *var_name, unsigned neededflags)
void Cvar_SetValueQuick(cvar_t *var, float value)
const char * Cvar_VariableDefString(cvar_state_t *cvars, const char *var_name, unsigned neededflags)
void Cvar_SetQuick(cvar_t *var, const char *value)
void Cvar_LockDefaults_f(cmd_state_t *cmd)
static qbool Cvar_Delete(cvar_state_t *cvars, const char *name, const char *callername)
For "quiet" mode pass NULL as the callername.
const char * Cvar_VariableString(cvar_state_t *cvars, const char *var_name, unsigned neededflags)
const char * Cvar_VariableStringOr(cvar_state_t *cvars, const char *var_name, const char *def, unsigned neededflags)
void Cvar_SetValue(cvar_state_t *cvars, const char *var_name, float value)
expands value to a string and calls Cvar_Set
void Cvar_PrintHelp(cvar_t *cvar, const char *name, qbool full)
static void Cvar_Link(cvar_t *variable, cvar_state_t *cvars)
void Cvar_Set(cvar_state_t *cvars, const char *var_name, const char *value)
equivelant to "<name> <variable>" typed at the console
void Cvar_RegisterVariable(cvar_t *variable)
registers a cvar that already has the name, string, and optionally the archive elements set.
cvar_t * Cvar_Get(cvar_state_t *cvars, const char *name, const char *value, unsigned flags, const char *newdescription)
allocates a cvar by name and returns its address, or merely sets its value if it already exists.
static cvar_hash_t ** Cvar_FindVarLink(cvar_state_t *cvars, const char *var_name, cvar_t **prev_alpha, unsigned neededflags)
Returns a pointer to the pointer stored in hashtable[] (or the one it links to) because we'll need to...
void Cvar_UnlockDefaults(cmd_state_t *cmd)
static const char * cvar_null_string
void Cvar_SetA_f(cmd_state_t *cmd)
void Cvar_List_f(cmd_state_t *cmd)
const char ** Cvar_CompleteBuildList(cvar_state_t *cvars, const char *partial, unsigned neededflags)
static void Cvar_UpdateAutoCvar(cvar_t *var)
we assume that prog is already set to the target progs
void Cvar_WriteVariables(cvar_state_t *cvars, qfile_t *f)
cvar_t * Cvar_FindVar(cvar_state_t *cvars, const char *var_name, unsigned neededflags)
void Cvar_ResetToDefaults_SaveOnly_f(cmd_state_t *cmd)
void Cvar_RestoreInitState(cvar_state_t *cvars)
static const char * Cvar_IsAutoCvar(cvar_t *var)
Check if a cvar is held by some progs in which case its name is returned, otherwise NULL.
const char * Cvar_CompleteVariable(cvar_state_t *cvars, const char *partial, unsigned neededflags)
void Cvar_RegisterVirtual(cvar_t *variable, const char *name)
qbool Cvar_Readonly(cvar_t *var, const char *cmd_name)
void Cvar_UpdateAllAutoCvars(cvar_state_t *cvars)
called after loading a savegame
void Cvar_CompleteCvarPrint(cvar_state_t *cvars, const char *partial, unsigned neededflags)
int Cvar_CompleteCountPossible(cvar_state_t *cvars, const char *partial, unsigned neededflags)
cvar_t * Cvar_FindVarAfter(cvar_state_t *cvars, const char *prev_var_name, unsigned neededflags)
void Cvar_RegisterCallback(cvar_t *variable, void(*callback)(cvar_t *))
const char * cvar_dummy_description
qbool Cvar_Command(cmd_state_t *cmd)
void Cvar_Callback(cvar_t *var)
int matchpattern_with_separator(const char *in, const char *pattern, int caseinsensitive, const char *separators, qbool wildcard_least_one)
static int(ZEXPORT *qz_inflate)(z_stream *strm
int FS_Printf(qfile_t *file, const char *format,...)
GLsizei const GLfloat * value
GLenum GLenum GLsizei count
GLenum GLuint GLenum GLsizei const GLchar * buf
#define VectorCopy(in, out)
const char * PRVM_ChangeEngineString(prvm_prog_t *prog, int i, const char *s)
#define PRVM_GLOBALFIELDFLOAT(fieldoffset)
#define PRVM_GLOBALFIELDSTRING(fieldoffset)
#define PRVM_GLOBALFIELDVECTOR(fieldoffset)
prvm_prog_t prvm_prog_list[PRVM_PROG_MAX]
#define CVAR_HASHSIZE
number of hash buckets for accelerating cvar name lookups
#define MAX_INPUTLINE
maximum size of console commandline, QuakeC strings, and many other text processing buffers
void SV_BroadcastPrintf(const char *fmt,...) DP_FUNC_PRINTF(1)
server_static_t svs
persistant server info
command interpreter state - the tokenizing and execution of commands, as well as pointers to which cv...
unsigned cvars_flagsmask
which CVAR_* flags should be visible to this interpreter? (CF_CLIENT | CF_SERVER, or just CF_SERVER)
struct cvar_hash_s * next
cvar_hash_t * hashtable[CVAR_HASHSIZE]
void(* callback)(struct cvar_s *var)
int globaldefindex_stringno[3]
qbool loaded
used to indicate whether a prog is loaded
const char * name
name of the prog, e.g. "Server", "Client" or "Menu" (used for text output)
char serverinfo[MAX_SERVERINFO_STRING]
server infostring
qbool active
false if only a net client
sizebuf_t reliable_datagram
#define Z_Realloc(data, size)
#define Mem_Alloc(pool, size)