OpenTTD Source  20241108-master-g80f628063a
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 "network/network_admin.h"
#include "debug.h"
#include "console_func.h"
#include "settings_type.h"
#include "safeguards.h"

Go to the source code of this file.

Functions

void IConsoleInit ()
 
static void IConsoleWriteToLogFile (const std::string &string)
 
bool CloseConsoleLogIfActive ()
 
void IConsoleFree ()
 
void IConsolePrint (TextColour colour_code, const std::string &string)
 Handle the printing of text entered into the console or redirected there by any other means. More...
 
bool GetArgumentInteger (uint32_t *value, const char *arg)
 Change a string into its number representation. More...
 
static std::string RemoveUnderscores (std::string name)
 Creates a copy of a string with underscores removed from it. More...
 
static void IConsoleAliasExec (const IConsoleAlias *alias, uint8_t tokencount, char *tokens[ICON_TOKEN_COUNT], const uint recurse_count)
 An alias is just another name for a command, or for more commands Execute it as well. More...
 
void IConsoleCmdExec (const std::string &command_string, const uint recurse_count)
 Execute a given command passed to us. More...
 

Variables

static const uint ICON_TOKEN_COUNT = 20
 Maximum number of tokens in one command.
 
static const uint ICON_MAX_RECURSE = 10
 Maximum number of recursion.
 
std::optional< FileHandle_iconsole_output_file
 

Detailed Description

Handling of the in-game console.

Definition in file console.cpp.

Function Documentation

◆ GetArgumentInteger()

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

Change a string into its number representation.

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

Parameters
*valuethe variable a successful conversion will be put in
*argthe string to be converted
Returns
Return true on success or false on failure

Definition at line 127 of file console.cpp.

Referenced by DEF_CONSOLE_CMD().

◆ IConsoleAliasExec()

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

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

Parameters
*aliasis the alias of the command
tokencountthe number of parameters passed
*tokensare the parameters given to the original command (0 is the first param)

Definition at line 207 of file console.cpp.

References CC_ERROR, CC_HELP, IConsoleAlias::cmdline, Debug, ICON_MAX_RECURSE, ICON_MAX_STREAMSIZE, IConsoleCmdExec(), IConsolePrint(), and IConsoleAlias::name.

Referenced by IConsoleCmdExec().

◆ IConsoleCmdExec()

void IConsoleCmdExec ( const std::string &  command_string,
const uint  recurse_count 
)

Execute a given command passed to us.

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

Parameters
command_stringstring to be parsed and executed

Definition at line 291 of file console.cpp.

References IConsole::AliasGet(), CC_ERROR, CHR_ALLOW, CHR_DISALLOW, CHR_HIDE, IConsole::CmdGet(), CS_ALPHANUMERAL, Debug, IConsoleCmd::hook, ICON_MAX_STREAMSIZE, ICON_TOKEN_COUNT, IConsoleAliasExec(), IConsolePrint(), IsValidChar(), lengthof, IConsoleCmd::proc, and StrEmpty().

Referenced by IConsoleAliasExec(), and OnStartGame().

◆ IConsolePrint()

void IConsolePrint ( TextColour  colour_code,
const std::string &  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_codeThe colour of the command.
stringThe message to output on the console (notice, error, etc.)

Definition at line 89 of file console.cpp.

References _network_dedicated, _redirect_console_to_admin, _redirect_console_to_client, GetLogPrefix(), INVALID_ADMIN_ID, INVALID_CLIENT_ID, IsValidConsoleColour(), NetworkAdminConsole(), NetworkServerSendAdminRcon(), NetworkServerSendRcon(), StrMakeValid(), and SVS_NONE.

Referenced by ConPrintFramerate(), DebugSendRemoteMessages(), DEF_CONSOLE_CMD(), DEF_CONSOLE_HOOK(), IConsoleAliasExec(), IConsoleCmdExec(), IConsoleGetSetting(), IConsoleListSettings(), NetworkAutoCleanCompanies(), NetworkAvailable(), NetworkPrintClients(), ConsoleContentCallback::OnDisconnect(), OutputContentState(), Gamelog::PrintConsole(), PrintLineByLine(), ClientNetworkGameSocketHandler::Receive_SERVER_COMMAND(), and ClientNetworkGameSocketHandler::Receive_SERVER_RCON().

◆ RemoveUnderscores()

static std::string RemoveUnderscores ( std::string  name)
static

Creates a copy of a string with underscores removed from it.

Parameters
nameString to remove the underscores from.
Returns
A copy of name, without underscores.

Definition at line 149 of file console.cpp.

Referenced by IConsole::AliasGet(), and IConsole::CmdGet().