console.cpp File Reference

Handling of the in-game console. More...

#include "stdafx.h"
#include "console_internal.h"
#include "network/network.h"
#include "network/network_func.h"
#include "debug.h"
#include "console_func.h"
#include "settings_type.h"
#include <stdarg.h>

Go to the source code of this file.

Defines

#define ICON_BUFFER   79
#define ICON_HISTORY_SIZE   20
#define ICON_LINE_HEIGHT   12
#define ICON_RIGHT_BORDERWIDTH   10
#define ICON_BOTTOM_BORDERWIDTH   12
#define ICON_MAX_ALIAS_LINES   40
#define ICON_TOKEN_COUNT   20
#define IConsoleAddSorted(_base, item_new, IConsoleType, type)
 Perhaps ugly macro, but this saves us the trouble of writing the same function twice, just with different variables.

Functions

void IConsoleInit ()
static void IConsoleWriteToLogFile (const char *string)
bool CloseConsoleLogIfActive ()
void IConsoleFree ()
void IConsolePrint (ConsoleColour colour_code, const char *string)
 Handle the printing of text entered into the console or redirected there by any other means.
void CDECL IConsolePrintF (ConsoleColour colour_code, const char *format,...)
 Handle the printing of text entered into the console or redirected there by any other means.
void IConsoleDebug (const char *dbg, const char *string)
 It is possible to print debugging information to the console, which is achieved by using this function.
void IConsoleWarning (const char *string)
 It is possible to print warnings to the console.
void IConsoleError (const char *string)
 It is possible to print error information to the console.
bool GetArgumentInteger (uint32 *value, const char *arg)
 Change a string into its number representation.
void IConsoleCmdRegister (const char *name, IConsoleCmdProc *proc, IConsoleHook *hook)
 Register a new command to be used in the console.
IConsoleCmdIConsoleCmdGet (const char *name)
 Find the command pointed to by its string.
void IConsoleAliasRegister (const char *name, const char *cmd)
 Register a an alias for an already existing command in the console.
IConsoleAliasIConsoleAliasGet (const char *name)
 Find the alias pointed to by its string.
static int IConsoleCopyInParams (char *dst, const char *src, uint bufpos)
 copy in an argument into the aliasstream
static void IConsoleAliasExec (const IConsoleAlias *alias, byte tokencount, char *tokens[ICON_TOKEN_COUNT])
 An alias is just another name for a command, or for more commands Execute it as well.
void IConsoleCmdExec (const char *cmdstr)
 Execute a given command passed to us.

Variables

IConsoleCmd_iconsole_cmds
 list of registered commands
IConsoleAlias_iconsole_aliases
 list of registered aliases
FILE * _iconsole_output_file

Detailed Description

Handling of the in-game console.

Definition in file console.cpp.


Define Documentation

#define IConsoleAddSorted ( _base,
item_new,
IConsoleType,
type   ) 

Perhaps ugly macro, but this saves us the trouble of writing the same function twice, just with different variables.

Yes, templates would be handy. It was either this define or an even more ugly void* magic function

Definition at line 199 of file console.cpp.

Referenced by IConsoleAliasRegister(), and IConsoleCmdRegister().


Function Documentation

bool GetArgumentInteger ( uint32 *  value,
const char *  arg 
)

Change a string into its number representation.

Supports decimal and hexadecimal numbers as well as 'on'/'off' 'true'/'false'

Parameters:
*value the variable a successful conversion will be put in
*arg the string to be converted
Returns:
Return true on success or false on failure

Definition at line 177 of file console.cpp.

static void IConsoleAliasExec ( const IConsoleAlias alias,
byte  tokencount,
char *  tokens[ICON_TOKEN_COUNT] 
) [static]

An alias is just another name for a command, or for more commands Execute it as well.

Parameters:
*alias is the alias of the command
tokencount the number of parameters passed
*tokens are the parameters given to the original command (0 is the first param)

Definition at line 318 of file console.cpp.

References IConsoleAlias::cmdline, ICON_MAX_STREAMSIZE, IConsoleCmdExec(), IConsoleCopyInParams(), IConsoleError(), IConsolePrintF(), lengthof, and IConsoleAlias::name.

Referenced by IConsoleCmdExec().

IConsoleAlias* IConsoleAliasGet ( const char *  name  ) 

Find the alias pointed to by its string.

Parameters:
name alias to be found
Returns:
return Aliasstruct of the found alias, or NULL on failure

Definition at line 290 of file console.cpp.

References IConsoleAlias::name, and IConsoleAlias::next.

Referenced by IConsoleCmdExec().

void IConsoleAliasRegister ( const char *  name,
const char *  cmd 
)

Register a an alias for an already existing command in the console.

Parameters:
name name of the alias that will be used
cmd name of the command that 'name' will be alias of

Definition at line 272 of file console.cpp.

References IConsoleAlias::cmdline, IConsoleAddSorted, IConsoleAlias::name, and IConsoleAlias::next.

void IConsoleCmdExec ( const char *  cmdstr  ) 

Execute a given command passed to us.

First chop it up into individual tokens (seperated by spaces), then execute it if possible

Parameters:
cmdstr string to be parsed and executed

Definition at line 392 of file console.cpp.

References CS_ALPHANUMERAL, IConsoleCmd::hook, ICON_MAX_STREAMSIZE, IConsoleAliasExec(), IConsoleAliasGet(), IConsoleCmdGet(), IConsoleError(), IConsolePrintF(), IsValidChar(), lengthof, and IConsoleCmd::proc.

Referenced by IConsoleAliasExec(), TCPClientConnecter::OnConnect(), and IConsoleWindow::OnKeyPress().

IConsoleCmd* IConsoleCmdGet ( const char *  name  ) 

Find the command pointed to by its string.

Parameters:
name command to be found
Returns:
return Cmdstruct of the found command, or NULL on failure

Definition at line 257 of file console.cpp.

References IConsoleCmd::name, and IConsoleCmd::next.

Referenced by IConsoleCmdExec().

void IConsoleCmdRegister ( const char *  name,
IConsoleCmdProc proc,
IConsoleHook *  hook 
)

Register a new command to be used in the console.

Parameters:
name name of the command that will be used
proc function that will be called upon execution of command

Definition at line 241 of file console.cpp.

References IConsoleCmd::hook, IConsoleAddSorted, IConsoleCmd::name, IConsoleCmd::next, and IConsoleCmd::proc.

void IConsoleDebug ( const char *  dbg,
const char *  string 
)

It is possible to print debugging information to the console, which is achieved by using this function.

Can only be used by debug() in debug.cpp. You need at least a level 2 (developer) for debugging messages to show up

Parameters:
dbg debugging category
string debugging message

Definition at line 144 of file console.cpp.

References _settings_client, GUISettings::developer, ClientSettings::gui, and IConsolePrintF().

void IConsoleError ( const char *  string  ) 

It is possible to print error information to the console.

This can include game errors, or errors in general you would want the user to notice

Definition at line 165 of file console.cpp.

References IConsolePrintF().

Referenced by IConsoleAliasExec(), and IConsoleCmdExec().

void IConsolePrint ( ConsoleColour  colour_code,
const char *  string 
)

Handle the printing of text entered into the console or redirected there by any other means.

Text can be redirected to other clients in a network game as well as to a logfile. If the network server is a dedicated server, all activities are also logged. All lines to print are added to a temporary buffer which can be used as a history to print them onscreen

Parameters:
colour_code the colour of the command. Red in case of errors, etc.
string the message entered or output on the console (notice, error, etc.)

Definition at line 90 of file console.cpp.

References _network_dedicated, GetLogPrefix(), IConsoleGUIPrint(), INVALID_CLIENT_ID, str_strip_colours(), and str_validate().

Referenced by IConsolePrintF().

void CDECL IConsolePrintF ( ConsoleColour  colour_code,
const char *  format,
  ... 
)
void IConsoleWarning ( const char *  string  ) 

It is possible to print warnings to the console.

These are mostly errors or mishaps, but non-fatal. You need at least a level 1 (developer) for debugging messages to show up

Definition at line 155 of file console.cpp.

References _settings_client, GUISettings::developer, ClientSettings::gui, and IConsolePrintF().


Variable Documentation

list of registered aliases

list of registred aliases

Definition at line 32 of file console.cpp.

list of registered commands

list of registred commands

Definition at line 31 of file console.cpp.


Generated on Sat Nov 20 20:59:13 2010 for OpenTTD by  doxygen 1.6.1