Annotation of quakeworld/client/cmd.h, revision 1.1.1.1

1.1       root        1: /*
                      2: Copyright (C) 1996-1997 Id Software, Inc.
                      3: 
                      4: This program is free software; you can redistribute it and/or
                      5: modify it under the terms of the GNU General Public License
                      6: as published by the Free Software Foundation; either version 2
                      7: of the License, or (at your option) any later version.
                      8: 
                      9: This program is distributed in the hope that it will be useful,
                     10: but WITHOUT ANY WARRANTY; without even the implied warranty of
                     11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
                     12: 
                     13: See the GNU General Public License for more details.
                     14: 
                     15: You should have received a copy of the GNU General Public License
                     16: along with this program; if not, write to the Free Software
                     17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
                     18: 
                     19: */
                     20: 
                     21: // cmd.h -- Command buffer and command execution
                     22: 
                     23: //===========================================================================
                     24: 
                     25: /*
                     26: 
                     27: Any number of commands can be added in a frame, from several different sources.
                     28: Most commands come from either keybindings or console line input, but remote
                     29: servers can also send across commands and entire text files can be execed.
                     30: 
                     31: The + command line options are also added to the command buffer.
                     32: 
                     33: The game starts with a Cbuf_AddText ("exec quake.rc\n"); Cbuf_Execute ();
                     34: 
                     35: */
                     36: 
                     37: 
                     38: void Cbuf_Init (void);
                     39: // allocates an initial text buffer that will grow as needed
                     40: 
                     41: void Cbuf_AddText (char *text);
                     42: // as new commands are generated from the console or keybindings,
                     43: // the text is added to the end of the command buffer.
                     44: 
                     45: void Cbuf_InsertText (char *text);
                     46: // when a command wants to issue other commands immediately, the text is
                     47: // inserted at the beginning of the buffer, before any remaining unexecuted
                     48: // commands.
                     49: 
                     50: void Cbuf_Execute (void);
                     51: // Pulls off \n terminated lines of text from the command buffer and sends
                     52: // them through Cmd_ExecuteString.  Stops when the buffer is empty.
                     53: // Normally called once per frame, but may be explicitly invoked.
                     54: // Do not call inside a command function!
                     55: 
                     56: //===========================================================================
                     57: 
                     58: /*
                     59: 
                     60: Command execution takes a null terminated string, breaks it into tokens,
                     61: then searches for a command or variable that matches the first token.
                     62: 
                     63: */
                     64: 
                     65: typedef void (*xcommand_t) (void);
                     66: 
                     67: void   Cmd_Init (void);
                     68: 
                     69: void   Cmd_AddCommand (char *cmd_name, xcommand_t function);
                     70: // called by the init functions of other parts of the program to
                     71: // register commands and functions to call for them.
                     72: // The cmd_name is referenced later, so it should not be in temp memory
                     73: // if function is NULL, the command will be forwarded to the server
                     74: // as a clc_stringcmd instead of executed locally
                     75: 
                     76: qboolean Cmd_Exists (char *cmd_name);
                     77: // used by the cvar code to check for cvar / command name overlap
                     78: 
                     79: char   *Cmd_CompleteCommand (char *partial);
                     80: // attempts to match a partial command for automatic command line completion
                     81: // returns NULL if nothing fits
                     82: 
                     83: int            Cmd_Argc (void);
                     84: char   *Cmd_Argv (int arg);
                     85: char   *Cmd_Args (void);
                     86: // The functions that execute commands get their parameters with these
                     87: // functions. Cmd_Argv () will return an empty string, not a NULL
                     88: // if arg > argc, so string operations are allways safe.
                     89: 
                     90: int Cmd_CheckParm (char *parm);
                     91: // Returns the position (1 to argc-1) in the command's argument list
                     92: // where the given parameter apears, or 0 if not present
                     93: 
                     94: void Cmd_TokenizeString (char *text);
                     95: // Takes a null terminated string.  Does not need to be /n terminated.
                     96: // breaks the string up into arg tokens.
                     97: 
                     98: void   Cmd_ExecuteString (char *text);
                     99: // Parses a single line of text into arguments and tries to execute it
                    100: // as if it was typed at the console
                    101: 
                    102: void   Cmd_ForwardToServer (void);
                    103: // adds the current command line as a clc_stringcmd to the client message.
                    104: // things like godmode, noclip, etc, are commands directed to the server,
                    105: // so when they are typed in at the console, they will need to be forwarded.
                    106: 
                    107: void Cmd_StuffCmds_f (void);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.