summaryrefslogtreecommitdiff
path: root/src/network/network_client.cpp
diff options
context:
space:
mode:
authorsmatz <smatz@openttd.org>2010-04-17 11:39:46 +0000
committersmatz <smatz@openttd.org>2010-04-17 11:39:46 +0000
commitcd20724d201b5b04c8dfac49b6b885ea988165ed (patch)
treece842b5635d89819a430206700363f26cb250d16 /src/network/network_client.cpp
parent96a2cbb58ef913a55d24e7b607be61c1090ee611 (diff)
downloadopenttd-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.cpp13
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);