#define CF_PRIVATE (1<<11) // cvar should not be $ expanded or sent to the server under any circumstances (rcon_password, etc)
#define CF_MAXFLAGSVAL ((1<<12) - 1) // used to determine if flags is valid
// for internal use only!
+#define CF_REGISTERED (1<<29) // created by Cvar_RegisterVariable()
#define CF_DEFAULTSET (1<<30)
-#define CF_ALLOCATED (1<<31)
+#define CF_ALLOCATED (1<<31) // created by Cvar_Get() (console or QC)
#define CF_SHARED 3
const char *description;
xcommand_t function;
qbool qcfunc;
+ struct cmd_function_s *overridden; // the engine cmd overriden by this QC cmd, if applicable
qbool autofunc;
qbool initstate; // indicates this command existed at init
} cmd_function_t;
int cmd_flags; // cmd flags that identify this interpreter
qbool (*Handle)(struct cmd_state_s *, struct cmd_function_s *, const char *, enum cmd_source_s);
- qbool (*NotFound)(struct cmd_state_s *, struct cmd_function_s *, const char *, enum cmd_source_s);
}
cmd_state_t;
qbool Cmd_Callback(cmd_state_t *cmd, cmd_function_t *func, const char *text, cmd_source_t src);
qbool Cmd_CL_Callback(cmd_state_t *cmd, cmd_function_t *func, const char *text, cmd_source_t src);
qbool Cmd_SV_Callback(cmd_state_t *cmd, cmd_function_t *func, const char *text, cmd_source_t src);
-qbool Cmd_SV_NotFound(cmd_state_t *cmd, cmd_function_t *func, const char *text, cmd_source_t src);
typedef struct cmd_input_s
{
llist_t list;
cmd_state_t *source;
- double delay;
+ vec_t delay;
size_t size;
size_t length;
char *text;
void Cbuf_Execute (cmd_buf_t *cbuf);
/*! Performs deferred commands and runs Cbuf_Execute, called by Host_Frame */
void Cbuf_Frame (cmd_buf_t *cbuf);
+/// Clears all command buffers
+void Cbuf_Clear(cmd_buf_t *cbuf);
//===========================================================================
const char *Cmd_CompleteCommand (cmd_state_t *cmd, const char *partial);
int Cmd_CompleteAliasCountPossible (cmd_state_t *cmd, const char *partial);
-
const char **Cmd_CompleteAliasBuildList (cmd_state_t *cmd, const char *partial);
-
int Cmd_CompleteCountPossible (cmd_state_t *cmd, const char *partial);
-
const char **Cmd_CompleteBuildList (cmd_state_t *cmd, const char *partial);
-
void Cmd_CompleteCommandPrint (cmd_state_t *cmd, const char *partial);
-
const char *Cmd_CompleteAlias (cmd_state_t *cmd, const char *partial);
-
void Cmd_CompleteAliasPrint (cmd_state_t *cmd, const char *partial);
// Enhanced console completion by Fett erich@heintz.com
-
// Added by EvilTypeGuy eviltypeguy@qeradiant.com
-int Cmd_Argc (cmd_state_t *cmd);
-const char *Cmd_Argv (cmd_state_t *cmd, int arg);
-const char *Cmd_Args (cmd_state_t *cmd);
// The functions that execute commands get their parameters with these
// functions. Cmd_Argv(cmd, ) will return an empty string, not a NULL
// if arg > argc, so string operations are always safe.
+static inline int Cmd_Argc (cmd_state_t *cmd)
+{
+ return cmd->argc;
+}
+static inline const char *Cmd_Argv(cmd_state_t *cmd, int arg)
+{
+ if (arg >= cmd->argc )
+ return cmd->null_string;
+ return cmd->argv[arg];
+}
+static inline const char *Cmd_Args (cmd_state_t *cmd)
+{
+ return cmd->args;
+}
/// Returns the position (1 to argc-1) in the command's argument list
/// where the given parameter apears, or 0 if not present
int Cmd_CheckParm (cmd_state_t *cmd, const char *parm);
-//void Cmd_TokenizeString (char *text);
-// Takes a null terminated string. Does not need to be /n terminated.
-// breaks the string up into arg tokens.
-
/// Parses a single line of text into arguments and tries to execute it.
/// The text can come from the command buffer, a remote client, or stdin.
void Cmd_ExecuteString (cmd_state_t *cmd, const char *text, cmd_source_t src, qbool lockmutex);