From 6e641777b1dec7d0e897ddbb4608281ff43d139c Mon Sep 17 00:00:00 2001 From: terkhen Date: Sun, 27 Feb 2011 11:38:28 +0000 Subject: (svn r22154) -Fix [FS#4529]: _current_company was modified when moving a client to spectators, causing issues in bankruptcy (Rubidium) --- src/network/network_client.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src/network') diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 9bf8ec0b4..1bd288a2e 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -30,6 +30,7 @@ #include "network.h" #include "network_base.h" #include "network_client.h" +#include "../core/backup_type.hpp" #include "table/strings.h" @@ -1155,6 +1156,7 @@ void NetworkClientRequestMove(CompanyID company_id, const char *pass) void NetworkClientsToSpectators(CompanyID cid) { + Backup cur_company(_current_company, FILE_LINE); /* If our company is changing owner, go to spectators */ if (cid == _local_company) SetLocalCompany(COMPANY_SPECTATOR); @@ -1164,6 +1166,8 @@ void NetworkClientsToSpectators(CompanyID cid) NetworkTextMessage(NETWORK_ACTION_COMPANY_SPECTATOR, CC_DEFAULT, false, ci->client_name); ci->client_playas = COMPANY_SPECTATOR; } + + cur_company.Restore(); } void NetworkUpdateClientName() -- cgit v1.2.3-70-g09d2