Fix crashes/issues with non-broadcast network chat.
This commit is contained in:
@@ -272,6 +272,7 @@ void NetworkDrawChatMessage()
|
|||||||
static void SendChat(const char *buf, DestType type, int dest)
|
static void SendChat(const char *buf, DestType type, int dest)
|
||||||
{
|
{
|
||||||
if (StrEmpty(buf)) return;
|
if (StrEmpty(buf)) return;
|
||||||
|
assert(type >= DESTTYPE_BROADCAST && type <= DESTTYPE_CLIENT);
|
||||||
if (!_network_server) {
|
if (!_network_server) {
|
||||||
MyClient::SendChat((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, NetworkTextMessageData());
|
MyClient::SendChat((NetworkAction)(NETWORK_ACTION_CHAT + type), type, dest, buf, NetworkTextMessageData());
|
||||||
} else {
|
} else {
|
||||||
@@ -303,7 +304,8 @@ struct NetworkChatWindow : public Window {
|
|||||||
static const StringID chat_captions[] = {
|
static const StringID chat_captions[] = {
|
||||||
STR_NETWORK_CHAT_ALL_CAPTION,
|
STR_NETWORK_CHAT_ALL_CAPTION,
|
||||||
STR_NETWORK_CHAT_COMPANY_CAPTION,
|
STR_NETWORK_CHAT_COMPANY_CAPTION,
|
||||||
STR_NETWORK_CHAT_CLIENT_CAPTION
|
STR_NETWORK_CHAT_CLIENT_CAPTION,
|
||||||
|
STR_NULL,
|
||||||
};
|
};
|
||||||
assert((uint)this->dtype < lengthof(chat_captions));
|
assert((uint)this->dtype < lengthof(chat_captions));
|
||||||
this->dest_string = chat_captions[this->dtype];
|
this->dest_string = chat_captions[this->dtype];
|
||||||
|
@@ -81,9 +81,9 @@ enum NetworkPasswordType {
|
|||||||
/** Destination of our chat messages. */
|
/** Destination of our chat messages. */
|
||||||
enum DestType {
|
enum DestType {
|
||||||
DESTTYPE_BROADCAST, ///< Send message/notice to all clients (All)
|
DESTTYPE_BROADCAST, ///< Send message/notice to all clients (All)
|
||||||
DESTTYPE_BROADCAST_SS, ///< Send message/notice to all clients (All), but tag the broadcast to self as a self-send
|
|
||||||
DESTTYPE_TEAM, ///< Send message/notice to everyone playing the same company (Team)
|
DESTTYPE_TEAM, ///< Send message/notice to everyone playing the same company (Team)
|
||||||
DESTTYPE_CLIENT, ///< Send message/notice to only a certain client (Private)
|
DESTTYPE_CLIENT, ///< Send message/notice to only a certain client (Private)
|
||||||
|
DESTTYPE_BROADCAST_SS, ///< Send message/notice to all clients (All), but tag the broadcast to self as a self-send
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Actions that can be used for NetworkTextMessage */
|
/** Actions that can be used for NetworkTextMessage */
|
||||||
|
Reference in New Issue
Block a user