mirror of https://github.com/OpenTTD/OpenTTD
Codechange: [Network] Change ChatMessage's message to std::string and simplify some code
parent
a879996012
commit
e2774354b4
|
@ -262,7 +262,7 @@ void NetworkTextMessage(NetworkAction action, TextColour colour, bool self_send,
|
||||||
|
|
||||||
DEBUG(desync, 1, "msg: %08x; %02x; %s", _date, _date_fract, message);
|
DEBUG(desync, 1, "msg: %08x; %02x; %s", _date, _date_fract, message);
|
||||||
IConsolePrintF(colour, "%s", message);
|
IConsolePrintF(colour, "%s", message);
|
||||||
NetworkAddChatMessage((TextColour)colour, _settings_client.gui.network_chat_timeout, "%s", message);
|
NetworkAddChatMessage((TextColour)colour, _settings_client.gui.network_chat_timeout, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Calculate the frame-lag of a client */
|
/* Calculate the frame-lag of a client */
|
||||||
|
|
|
@ -39,7 +39,7 @@ static const uint NETWORK_CHAT_LINE_SPACING = 3;
|
||||||
|
|
||||||
/** Container for a message. */
|
/** Container for a message. */
|
||||||
struct ChatMessage {
|
struct ChatMessage {
|
||||||
char message[DRAW_STRING_BUFFER]; ///< The action message.
|
std::string message; ///< The action message.
|
||||||
TextColour colour; ///< The colour of the message.
|
TextColour colour; ///< The colour of the message.
|
||||||
std::chrono::steady_clock::time_point remove_time; ///< The time to remove the message.
|
std::chrono::steady_clock::time_point remove_time; ///< The time to remove the message.
|
||||||
};
|
};
|
||||||
|
@ -87,23 +87,14 @@ static inline bool HaveChatMessages(bool show_all)
|
||||||
* @param duration The duration of the chat message in seconds
|
* @param duration The duration of the chat message in seconds
|
||||||
* @param message message itself in printf() style
|
* @param message message itself in printf() style
|
||||||
*/
|
*/
|
||||||
void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const char *message, ...)
|
void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const std::string &message)
|
||||||
{
|
{
|
||||||
char buf[DRAW_STRING_BUFFER];
|
|
||||||
va_list va;
|
|
||||||
|
|
||||||
va_start(va, message);
|
|
||||||
vseprintf(buf, lastof(buf), message, va);
|
|
||||||
va_end(va);
|
|
||||||
|
|
||||||
Utf8TrimString(buf, DRAW_STRING_BUFFER);
|
|
||||||
|
|
||||||
if (_chatmsg_list.size() == MAX_CHAT_MESSAGES) {
|
if (_chatmsg_list.size() == MAX_CHAT_MESSAGES) {
|
||||||
_chatmsg_list.pop_back();
|
_chatmsg_list.pop_back();
|
||||||
}
|
}
|
||||||
|
|
||||||
ChatMessage *cmsg = &_chatmsg_list.emplace_front();
|
ChatMessage *cmsg = &_chatmsg_list.emplace_front();
|
||||||
strecpy(cmsg->message, buf, lastof(cmsg->message));
|
cmsg->message = message;
|
||||||
cmsg->colour = (colour & TC_IS_PALETTE_COLOUR) ? colour : TC_WHITE;
|
cmsg->colour = (colour & TC_IS_PALETTE_COLOUR) ? colour : TC_WHITE;
|
||||||
cmsg->remove_time = std::chrono::steady_clock::now() + std::chrono::seconds(duration);
|
cmsg->remove_time = std::chrono::steady_clock::now() + std::chrono::seconds(duration);
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ uint NetworkServerKickOrBanIP(ClientID client_id, bool ban, const char *reason);
|
||||||
uint NetworkServerKickOrBanIP(const char *ip, bool ban, const char *reason);
|
uint NetworkServerKickOrBanIP(const char *ip, bool ban, const char *reason);
|
||||||
|
|
||||||
void NetworkInitChatMessage();
|
void NetworkInitChatMessage();
|
||||||
void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const char *message, ...) WARN_FORMAT(3, 4);
|
void CDECL NetworkAddChatMessage(TextColour colour, uint duration, const std::string &message);
|
||||||
void NetworkUndrawChatMessage();
|
void NetworkUndrawChatMessage();
|
||||||
void NetworkChatMessageLoop();
|
void NetworkChatMessageLoop();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue