diff options
author | rubidium <rubidium@openttd.org> | 2010-10-17 17:40:18 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-10-17 17:40:18 +0000 |
commit | d9602f4ef936b79c1d1ee785477323618e46f9cf (patch) | |
tree | 1420d0f86e4559de83ab250a109d2c7f7bca5f53 /src/network/network_server.cpp | |
parent | 459514afe4f550a08d98958745d6cd8311c53fdd (diff) | |
download | openttd-d9602f4ef936b79c1d1ee785477323618e46f9cf.tar.xz |
(svn r20973) -Add: chat sending and receiving support for remote admins (dihedral)
Diffstat (limited to 'src/network/network_server.cpp')
-rw-r--r-- | src/network/network_server.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index c49c9ed88..16b626ce5 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -1159,7 +1159,7 @@ DEF_GAME_RECEIVE_COMMAND(Server, PACKET_CLIENT_ACK) -void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, const char *msg, ClientID from_id, int64 data) +void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, const char *msg, ClientID from_id, int64 data, bool from_admin) { NetworkClientSocket *cs; const NetworkClientInfo *ci, *ci_own, *ci_to; @@ -1172,6 +1172,10 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co /* Display the text locally, and that is it */ if (ci != NULL) { NetworkTextMessage(action, (ConsoleColour)GetDrawStringCompanyColour(ci->client_playas), false, ci->client_name, msg, data); + + if (_settings_client.network.server_admin_chat) { + NetworkAdminChat(action, desttype, from_id, msg, data, from_admin); + } } } else { /* Else find the client to send the message to */ @@ -1215,6 +1219,11 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co } } + /* if the server can read it, let the admin network read it, too. */ + if (_local_company == (CompanyID)dest && _settings_client.network.server_admin_chat) { + NetworkAdminChat(action, desttype, from_id, msg, data, from_admin); + } + ci = NetworkFindClientInfoFromClientID(from_id); ci_own = NetworkFindClientInfoFromClientID(CLIENT_ID_SERVER); if (ci != NULL && ci_own != NULL && ci_own->client_playas == dest) { @@ -1251,6 +1260,9 @@ void NetworkServerSendChat(NetworkAction action, DestType desttype, int dest, co FOR_ALL_CLIENT_SOCKETS(cs) { cs->SendChat(action, from_id, false, msg, data); } + + NetworkAdminChat(action, desttype, from_id, msg, data, from_admin); + ci = NetworkFindClientInfoFromClientID(from_id); if (ci != NULL) { NetworkTextMessage(action, (ConsoleColour)GetDrawStringCompanyColour(ci->client_playas), false, ci->client_name, msg, data); |