diff options
author | smatz <smatz@openttd.org> | 2010-04-17 11:39:46 +0000 |
---|---|---|
committer | smatz <smatz@openttd.org> | 2010-04-17 11:39:46 +0000 |
commit | cd20724d201b5b04c8dfac49b6b885ea988165ed (patch) | |
tree | ce842b5635d89819a430206700363f26cb250d16 /src/network/network_client.cpp | |
parent | 96a2cbb58ef913a55d24e7b607be61c1090ee611 (diff) | |
download | openttd-cd20724d201b5b04c8dfac49b6b885ea988165ed.tar.xz |
(svn r19651) -Fix [FS#3745]: when a company is sold, move connected clients to spectators
Diffstat (limited to 'src/network/network_client.cpp')
-rw-r--r-- | src/network/network_client.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 810fdad95..dc4e46691 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -1029,6 +1029,19 @@ void NetworkClientRequestMove(CompanyID company_id, const char *pass) SEND_COMMAND(PACKET_CLIENT_MOVE)(company_id, pass); } +void NetworkClientsToSpectators(CompanyID cid) +{ + /* If our company is changing owner, go to spectators */ + if (cid == _local_company) SetLocalCompany(COMPANY_SPECTATOR); + + NetworkClientInfo *ci; + FOR_ALL_CLIENT_INFOS(ci) { + if (ci->client_playas != cid) continue; + NetworkTextMessage(NETWORK_ACTION_COMPANY_SPECTATOR, CC_DEFAULT, false, ci->client_name); + ci->client_playas = COMPANY_SPECTATOR; + } +} + void NetworkUpdateClientName() { NetworkClientInfo *ci = NetworkFindClientInfoFromClientID(_network_own_client_id); |