2009-08-21 20:21:05 +00:00
|
|
|
/*
|
|
|
|
* This file is part of OpenTTD.
|
|
|
|
* OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
|
|
|
|
* OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
* See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*/
|
|
|
|
|
2008-05-24 10:15:06 +00:00
|
|
|
/** @file console_func.h Console functions used outside of the console code. */
|
|
|
|
|
|
|
|
#ifndef CONSOLE_FUNC_H
|
|
|
|
#define CONSOLE_FUNC_H
|
|
|
|
|
|
|
|
#include "console_type.h"
|
2023-05-20 09:46:46 +00:00
|
|
|
#include "core/format.hpp"
|
2008-05-24 10:15:06 +00:00
|
|
|
|
2008-05-24 10:35:15 +00:00
|
|
|
/* console modes */
|
2008-05-24 10:15:06 +00:00
|
|
|
extern IConsoleModes _iconsole_mode;
|
|
|
|
|
|
|
|
/* console functions */
|
|
|
|
void IConsoleInit();
|
|
|
|
void IConsoleFree();
|
|
|
|
void IConsoleClose();
|
|
|
|
|
|
|
|
/* console output */
|
2021-06-12 18:43:37 +00:00
|
|
|
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
|
|
|
|
* @param colour_code The colour of the command.
|
|
|
|
* @param format_string The formatting string to tell what to do with the remaining arguments.
|
|
|
|
* @param first_arg The first argument to the format.
|
|
|
|
* @param other_args The other arguments to the format.
|
|
|
|
* @tparam T The type of formatting parameter.
|
|
|
|
* @tparam A The type of the first argument.
|
|
|
|
* @tparam Args The types of the other arguments.
|
|
|
|
*/
|
|
|
|
template <typename T, typename A, typename ... Args>
|
|
|
|
static inline void IConsolePrint(TextColour colour_code, const T &format, A first_arg, Args&&... other_args)
|
|
|
|
{
|
|
|
|
/* The separate first_arg argument is added to aid overloading.
|
|
|
|
* Otherwise the calls that do no need formatting will still use this function. */
|
|
|
|
IConsolePrint(colour_code, fmt::format(format, first_arg, other_args...));
|
|
|
|
}
|
|
|
|
|
2008-05-24 10:15:06 +00:00
|
|
|
/* Parser */
|
2023-06-28 20:40:03 +00:00
|
|
|
void IConsoleCmdExec(const std::string &command_string, const uint recurse_count = 0);
|
2008-05-24 10:15:06 +00:00
|
|
|
|
2011-01-03 20:54:20 +00:00
|
|
|
bool IsValidConsoleColour(TextColour c);
|
|
|
|
|
2008-05-24 10:15:06 +00:00
|
|
|
#endif /* CONSOLE_FUNC_H */
|