OpenTTD
Data Structures | Macros | Functions | Variables
console_cmds.cpp File Reference

Implementation of the console hooks. More...

#include "stdafx.h"
#include "console_internal.h"
#include "debug.h"
#include "engine_func.h"
#include "landscape.h"
#include "saveload/saveload.h"
#include "network/network.h"
#include "network/network_func.h"
#include "network/network_base.h"
#include "network/network_admin.h"
#include "network/network_client.h"
#include "command_func.h"
#include "settings_func.h"
#include "fios.h"
#include "fileio_func.h"
#include "screenshot.h"
#include "genworld.h"
#include "strings_func.h"
#include "viewport_func.h"
#include "window_func.h"
#include "date_func.h"
#include "company_func.h"
#include "gamelog.h"
#include "ai/ai.hpp"
#include "ai/ai_config.hpp"
#include "newgrf.h"
#include "console_func.h"
#include "engine_base.h"
#include "game/game.hpp"
#include "table/strings.h"
#include "safeguards.h"
#include "network/network_content.h"

Go to the source code of this file.

Data Structures

class  ConsoleFileList
 File list storage for the console, for caching the last 'ls' command. More...
 
struct  ConsoleContentCallback
 Asynchronous callback. More...
 

Macros

#define DEF_CONSOLE_CMD(function)   static bool function(byte argc, char *argv[])
 
#define DEF_CONSOLE_HOOK(function)   static ConsoleHookResult function(bool echo)
 

Functions

static bool NetworkAvailable (bool echo)
 Check network availability and inform in console about failure of detection. More...
 
 DEF_CONSOLE_HOOK (ConHookServerOnly)
 Check whether we are a server. More...
 
 DEF_CONSOLE_HOOK (ConHookClientOnly)
 Check whether we are a client in a network game. More...
 
 DEF_CONSOLE_HOOK (ConHookNeedNetwork)
 Check whether we are in a multiplayer game. More...
 
 DEF_CONSOLE_HOOK (ConHookNoNetwork)
 Check whether we are in single player mode. More...
 
 DEF_CONSOLE_HOOK (ConHookNewGRFDeveloperTool)
 
static void IConsoleHelp (const char *str)
 Show help for the console. More...
 
 DEF_CONSOLE_CMD (ConResetEngines)
 Reset status of all engines. More...
 
 DEF_CONSOLE_CMD (ConResetEnginePool)
 Reset status of the engine pool. More...
 
 DEF_CONSOLE_CMD (ConScrollToTile)
 Scroll to a tile on the map. More...
 
 DEF_CONSOLE_CMD (ConSave)
 Save the map to a file. More...
 
 DEF_CONSOLE_CMD (ConSaveConfig)
 Explicitly save the configuration. More...
 
 DEF_CONSOLE_CMD (ConLoad)
 
 DEF_CONSOLE_CMD (ConRemove)
 
 DEF_CONSOLE_CMD (ConListFiles)
 
 DEF_CONSOLE_CMD (ConChangeDirectory)
 
 DEF_CONSOLE_CMD (ConPrintWorkingDirectory)
 
 DEF_CONSOLE_CMD (ConClearBuffer)
 
static bool ConKickOrBan (const char *argv, bool ban)
 
 DEF_CONSOLE_CMD (ConKick)
 
 DEF_CONSOLE_CMD (ConBan)
 
 DEF_CONSOLE_CMD (ConUnBan)
 
 DEF_CONSOLE_CMD (ConBanList)
 
 DEF_CONSOLE_CMD (ConPauseGame)
 
 DEF_CONSOLE_CMD (ConUnpauseGame)
 
 DEF_CONSOLE_CMD (ConRcon)
 
 DEF_CONSOLE_CMD (ConStatus)
 
 DEF_CONSOLE_CMD (ConServerInfo)
 
 DEF_CONSOLE_CMD (ConClientNickChange)
 
 DEF_CONSOLE_CMD (ConJoinCompany)
 
 DEF_CONSOLE_CMD (ConMoveClient)
 
 DEF_CONSOLE_CMD (ConResetCompany)
 
 DEF_CONSOLE_CMD (ConNetworkClients)
 
 DEF_CONSOLE_CMD (ConNetworkReconnect)
 
 DEF_CONSOLE_CMD (ConNetworkConnect)
 
 DEF_CONSOLE_CMD (ConExec)
 
 DEF_CONSOLE_CMD (ConReturn)
 
bool CloseConsoleLogIfActive ()
 
 DEF_CONSOLE_CMD (ConScript)
 
 DEF_CONSOLE_CMD (ConEcho)
 
 DEF_CONSOLE_CMD (ConEchoC)
 
 DEF_CONSOLE_CMD (ConNewGame)
 
 DEF_CONSOLE_CMD (ConRestart)
 
static void PrintLineByLine (char *buf)
 Print a text buffer line by line to the console. More...
 
 DEF_CONSOLE_CMD (ConListAILibs)
 
 DEF_CONSOLE_CMD (ConListAI)
 
 DEF_CONSOLE_CMD (ConListGameLibs)
 
 DEF_CONSOLE_CMD (ConListGame)
 
 DEF_CONSOLE_CMD (ConStartAI)
 
 DEF_CONSOLE_CMD (ConReloadAI)
 
 DEF_CONSOLE_CMD (ConStopAI)
 
 DEF_CONSOLE_CMD (ConRescanAI)
 
 DEF_CONSOLE_CMD (ConRescanGame)
 
 DEF_CONSOLE_CMD (ConRescanNewGRF)
 
 DEF_CONSOLE_CMD (ConGetSeed)
 
 DEF_CONSOLE_CMD (ConGetDate)
 
 DEF_CONSOLE_CMD (ConAlias)
 
 DEF_CONSOLE_CMD (ConScreenShot)
 
 DEF_CONSOLE_CMD (ConInfoCmd)
 
 DEF_CONSOLE_CMD (ConDebugLevel)
 
 DEF_CONSOLE_CMD (ConExit)
 
 DEF_CONSOLE_CMD (ConPart)
 
 DEF_CONSOLE_CMD (ConHelp)
 
 DEF_CONSOLE_CMD (ConListCommands)
 
 DEF_CONSOLE_CMD (ConListAliases)
 
 DEF_CONSOLE_CMD (ConCompanies)
 
 DEF_CONSOLE_CMD (ConSay)
 
 DEF_CONSOLE_CMD (ConSayCompany)
 
 DEF_CONSOLE_CMD (ConSayClient)
 
 DEF_CONSOLE_CMD (ConCompanyPassword)
 
static ContentType StringToContentType (const char *str)
 Resolve a string to a content type. More...
 
static void OutputContentState (const ContentInfo *const ci)
 Outputs content state information to console. More...
 
 DEF_CONSOLE_CMD (ConContent)
 
 DEF_CONSOLE_CMD (ConSetting)
 
 DEF_CONSOLE_CMD (ConSettingNewgame)
 
 DEF_CONSOLE_CMD (ConListSettings)
 
 DEF_CONSOLE_CMD (ConGamelogPrint)
 
 DEF_CONSOLE_CMD (ConNewGRFReload)
 
void IConsoleStdLibRegister ()
 

Variables

static bool _script_running
 Script is running (used to abort execution when #ConReturn is encountered).
 
static ConsoleFileList _console_file_list
 File storage cache for the console.
 

Detailed Description

Implementation of the console hooks.

Definition in file console_cmds.cpp.

Function Documentation

◆ DEF_CONSOLE_CMD() [1/5]

DEF_CONSOLE_CMD ( ConResetEngines  )

Reset status of all engines.

Returns
Will always succeed.

Definition at line 195 of file console_cmds.cpp.

References IConsoleHelp(), and StartupEngines().

Referenced by DEF_CONSOLE_CMD(), and PrintLineByLine().

◆ DEF_CONSOLE_CMD() [2/5]

DEF_CONSOLE_CMD ( ConResetEnginePool  )

Reset status of the engine pool.

Returns
Will always return true.
Note
Resetting the pool only succeeds when there are no vehicles ingame.

Definition at line 211 of file console_cmds.cpp.

References IConsoleHelp().

◆ DEF_CONSOLE_CMD() [3/5]

DEF_CONSOLE_CMD ( ConScrollToTile  )

Scroll to a tile on the map.

Parameters
arg1tile tile number or tile x coordinate.
arg2optionally tile y coordinate.
Note
When only one argument is given it is intepreted as the tile number. When two arguments are given, they are interpreted as the tile's x and y coordinates.
Returns
True when either console help was shown or a proper amount of parameters given.

Definition at line 266 of file console_cmds.cpp.

References CC_ERROR, GetArgumentInteger(), IConsoleHelp(), IConsolePrint(), MapSize(), and ScrollMainWindowToTile().

◆ DEF_CONSOLE_CMD() [4/5]

DEF_CONSOLE_CMD ( ConSave  )

Save the map to a file.

Parameters
filenamethe filename to save the map to.
Returns
True when help was displayed or the file attempted to be saved.

Definition at line 310 of file console_cmds.cpp.

References CC_DEFAULT, CC_ERROR, DFT_GAME_FILE, free(), IConsoleHelp(), IConsolePrint(), IConsolePrintF(), SAVE_DIR, SaveOrLoad(), SL_OK, SLO_SAVE, and str_fmt().

◆ DEF_CONSOLE_CMD() [5/5]

DEF_CONSOLE_CMD ( ConSaveConfig  )

◆ DEF_CONSOLE_HOOK() [1/4]

DEF_CONSOLE_HOOK ( ConHookServerOnly  )

Check whether we are a server.

Returns
Are we a server? True when yes, false otherwise.

Definition at line 108 of file console_cmds.cpp.

References _network_server, CHR_ALLOW, CHR_DISALLOW, IConsoleError(), and NetworkAvailable().

Referenced by DEF_CONSOLE_HOOK().

◆ DEF_CONSOLE_HOOK() [2/4]

DEF_CONSOLE_HOOK ( ConHookClientOnly  )

Check whether we are a client in a network game.

Returns
Are we a client in a network game? True when yes, false otherwise.

Definition at line 123 of file console_cmds.cpp.

References _network_server, CHR_ALLOW, CHR_DISALLOW, IConsoleError(), and NetworkAvailable().

◆ DEF_CONSOLE_HOOK() [3/4]

DEF_CONSOLE_HOOK ( ConHookNeedNetwork  )

Check whether we are in a multiplayer game.

Returns
True when we are client or server in a network game.

Definition at line 138 of file console_cmds.cpp.

References _network_server, _networking, CHR_ALLOW, CHR_DISALLOW, IConsoleError(), ClientNetworkGameSocketHandler::IsConnected(), and NetworkAvailable().

◆ DEF_CONSOLE_HOOK() [4/4]

DEF_CONSOLE_HOOK ( ConHookNoNetwork  )

Check whether we are in single player mode.

Returns
True when no network is active.

Definition at line 153 of file console_cmds.cpp.

References _networking, _settings_client, CHR_ALLOW, CHR_DISALLOW, DEF_CONSOLE_HOOK(), ClientSettings::gui, IConsoleError(), and GUISettings::newgrf_developer_tools.

◆ IConsoleHelp()

static void IConsoleHelp ( const char *  str)
static

Show help for the console.

Parameters
strString to print in the console.

Definition at line 186 of file console_cmds.cpp.

References CC_WARNING, and IConsolePrintF().

Referenced by DEF_CONSOLE_CMD(), and PrintLineByLine().

◆ NetworkAvailable()

static bool NetworkAvailable ( bool  echo)
inlinestatic

Check network availability and inform in console about failure of detection.

Returns
Network availability.

Definition at line 95 of file console_cmds.cpp.

References _network_available, and IConsoleError().

Referenced by DEF_CONSOLE_HOOK().

◆ OutputContentState()

static void OutputContentState ( const ContentInfo *const  ci)
static

Outputs content state information to console.

Parameters
cithe content info

Definition at line 1725 of file console_cmds.cpp.

◆ PrintLineByLine()

static void PrintLineByLine ( char *  buf)
static

Print a text buffer line by line to the console.

Lines are separated by '
'.

Parameters
bufThe buffer to print.
Note
All newlines are replace by '\0' characters.

Definition at line 1075 of file console_cmds.cpp.

References CC_DEFAULT, DEF_CONSOLE_CMD(), Game::GetConsoleLibraryList(), AI::GetConsoleLibraryList(), Game::GetConsoleList(), AI::GetConsoleList(), IConsoleHelp(), IConsolePrintF(), and lastof.

◆ StringToContentType()

static ContentType StringToContentType ( const char *  str)
static

Resolve a string to a content type.

Definition at line 1694 of file console_cmds.cpp.

References CONTENT_TYPE_END, and lengthof.