mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-03-06 06:15:04 +00:00
Codechange: add an IConsolePrint overload that does formatting with fmt
This commit is contained in:
parent
1e432fbd71
commit
6b757c716a
@ -88,14 +88,13 @@ void IConsoleFree()
|
||||
* 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. Red in case of errors, etc.
|
||||
* @param string the message entered or output on the console (notice, error, etc.)
|
||||
* @param colour_code The colour of the command.
|
||||
* @param string The message to output on the console (notice, error, etc.)
|
||||
*/
|
||||
void IConsolePrint(TextColour colour_code, const char *string)
|
||||
void IConsolePrint(TextColour colour_code, const std::string &string)
|
||||
{
|
||||
assert(IsValidConsoleColour(colour_code));
|
||||
|
||||
char *str;
|
||||
if (_redirect_console_to_client != INVALID_CLIENT_ID) {
|
||||
/* Redirect the string to the client */
|
||||
NetworkServerSendRcon(_redirect_console_to_client, colour_code, string);
|
||||
@ -109,7 +108,7 @@ void IConsolePrint(TextColour colour_code, const char *string)
|
||||
|
||||
/* Create a copy of the string, strip if of colours and invalid
|
||||
* characters and (when applicable) assign it to the console buffer */
|
||||
str = stredup(string);
|
||||
char *str = stredup(string.c_str());
|
||||
str_strip_colours(str);
|
||||
StrMakeValidInPlace(str);
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
#define CONSOLE_FUNC_H
|
||||
|
||||
#include "console_type.h"
|
||||
#include "3rdparty/fmt/format.h"
|
||||
|
||||
/* console modes */
|
||||
extern IConsoleModes _iconsole_mode;
|
||||
@ -21,7 +22,30 @@ void IConsoleFree();
|
||||
void IConsoleClose();
|
||||
|
||||
/* console output */
|
||||
void IConsolePrint(TextColour colour_code, const char *string);
|
||||
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...));
|
||||
}
|
||||
|
||||
void CDECL IConsolePrintF(TextColour colour_code, const char *format, ...) WARN_FORMAT(2, 3);
|
||||
void IConsoleDebug(const char *dbg, const char *string);
|
||||
void IConsoleWarning(const char *string);
|
||||
|
Loading…
Reference in New Issue
Block a user