X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=cmd.h;h=38d4346394642c57aa8b683d5f1b20840c57d33c;hp=f7d9d17c1a6f97ced9779902e6d3747733c5fbe4;hb=ec4de32a3e07ae7193b0609fc7f41a73e8de58df;hpb=d159736a199e4043ed98cde48f6d5716ec40845c diff --git a/cmd.h b/cmd.h index f7d9d17c..38d43463 100644 --- a/cmd.h +++ b/cmd.h @@ -37,27 +37,30 @@ The game starts with a Cbuf_AddText ("exec quake.rc\n"); Cbuf_Execute (); #ifndef CMD_H #define CMD_H +/// allocates an initial text buffer that will grow as needed void Cbuf_Init (void); -// allocates an initial text buffer that will grow as needed void Cmd_Init_Commands (void); void Cbuf_Shutdown (void); +/*! as new commands are generated from the console or keybindings, + * the text is added to the end of the command buffer. + */ void Cbuf_AddText (const char *text); -// as new commands are generated from the console or keybindings, -// the text is added to the end of the command buffer. +/*! when a command wants to issue other commands immediately, the text is + * inserted at the beginning of the buffer, before any remaining unexecuted + * commands. + */ void Cbuf_InsertText (const char *text); -// when a command wants to issue other commands immediately, the text is -// inserted at the beginning of the buffer, before any remaining unexecuted -// commands. +/*! Pulls off terminated lines of text from the command buffer and sends + * them through Cmd_ExecuteString. Stops when the buffer is empty. + * Normally called once per frame, but may be explicitly invoked. + * \note Do not call inside a command function! + */ void Cbuf_Execute (void); -// Pulls off \n terminated lines of text from the command buffer and sends -// them through Cmd_ExecuteString. Stops when the buffer is empty. -// Normally called once per frame, but may be explicitly invoked. -// Do not call inside a command function! //=========================================================================== @@ -76,9 +79,9 @@ typedef void (*xcommand_t) (void); typedef enum { - src_client, // came in over a net connection as a clc_stringcmd - // host_client will be valid during this state. - src_command // from the command buffer + src_client, ///< came in over a net connection as a clc_stringcmd + ///< host_client will be valid during this state. + src_command ///< from the command buffer } cmd_source_t; extern cmd_source_t cmd_source; @@ -86,17 +89,18 @@ extern cmd_source_t cmd_source; void Cmd_Init (void); void Cmd_Shutdown (void); +void Cmd_AddCommand_WithClientCommand (const char *cmd_name, xcommand_t consolefunction, xcommand_t clientfunction, const char *description); void Cmd_AddCommand (const char *cmd_name, xcommand_t function, const char *description); // called by the init functions of other parts of the program to // register commands and functions to call for them. // The cmd_name is referenced later, so it should not be in temp memory +/// used by the cvar code to check for cvar / command name overlap qboolean Cmd_Exists (const char *cmd_name); -// used by the cvar code to check for cvar / command name overlap +/// attempts to match a partial command for automatic command line completion +/// returns NULL if nothing fits const char *Cmd_CompleteCommand (const char *partial); -// attempts to match a partial command for automatic command line completion -// returns NULL if nothing fits int Cmd_CompleteAliasCountPossible (const char *partial); @@ -123,30 +127,37 @@ const char *Cmd_Args (void); // functions. Cmd_Argv () will return an empty string, not a NULL // if arg > argc, so string operations are always safe. +/// 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 (const char *parm); -// Returns the position (1 to argc-1) in the command's argument list -// where the given parameter apears, or 0 if not present //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 (const char *text, cmd_source_t src); -// 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. +/// adds the string as a clc_stringcmd to the client message. +/// (used when there is no reason to generate a local command to do it) void Cmd_ForwardStringToServer (const char *s); -// adds the string as a clc_stringcmd to the client message. -// (used when there is no reason to generate a local command to do it) +/// adds the current command line as a clc_stringcmd to the client message. +/// things like godmode, noclip, etc, are commands directed to the server, +/// so when they are typed in at the console, they will need to be forwarded. void Cmd_ForwardToServer (void); -// adds the current command line as a clc_stringcmd to the client message. -// things like godmode, noclip, etc, are commands directed to the server, -// so when they are typed in at the console, they will need to be forwarded. +/// used by command functions to send output to either the graphics console or +/// passed as a print message to the client void Cmd_Print(const char *text); -// used by command functions to send output to either the graphics console or -// passed as a print message to the client + +/// quotes a string so that it can be used as a command argument again; +/// quoteset is a string that contains one or more of ", \, $ and specifies +/// the characters to be quoted (you usually want to either pass "\"\\" or +/// "\"\\$"). Returns true on success, and false on overrun (in which case out +/// will contain a part of the quoted string). +qboolean Cmd_QuoteString(char *out, size_t outlen, const char *in, const char *quoteset); #endif