mirror of https://github.com/OpenTTD/OpenTTD
(svn r22154) -Fix [FS#4529]: _current_company was modified when moving a client to spectators, causing issues in bankruptcy (Rubidium)
parent
9ce2823959
commit
6e641777b1
|
@ -30,6 +30,7 @@
|
||||||
#include "network.h"
|
#include "network.h"
|
||||||
#include "network_base.h"
|
#include "network_base.h"
|
||||||
#include "network_client.h"
|
#include "network_client.h"
|
||||||
|
#include "../core/backup_type.hpp"
|
||||||
|
|
||||||
#include "table/strings.h"
|
#include "table/strings.h"
|
||||||
|
|
||||||
|
@ -1155,6 +1156,7 @@ void NetworkClientRequestMove(CompanyID company_id, const char *pass)
|
||||||
|
|
||||||
void NetworkClientsToSpectators(CompanyID cid)
|
void NetworkClientsToSpectators(CompanyID cid)
|
||||||
{
|
{
|
||||||
|
Backup<CompanyByte> cur_company(_current_company, FILE_LINE);
|
||||||
/* If our company is changing owner, go to spectators */
|
/* If our company is changing owner, go to spectators */
|
||||||
if (cid == _local_company) SetLocalCompany(COMPANY_SPECTATOR);
|
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);
|
NetworkTextMessage(NETWORK_ACTION_COMPANY_SPECTATOR, CC_DEFAULT, false, ci->client_name);
|
||||||
ci->client_playas = COMPANY_SPECTATOR;
|
ci->client_playas = COMPANY_SPECTATOR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cur_company.Restore();
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkUpdateClientName()
|
void NetworkUpdateClientName()
|
||||||
|
|
Loading…
Reference in New Issue