diff options
Diffstat (limited to 'src/economy.cpp')
-rw-r--r-- | src/economy.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/economy.cpp b/src/economy.cpp index 41693cf13..96b79601a 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -298,6 +298,11 @@ int UpdateCompanyRatingAndValue(Company *c, bool update) /* use INVALID_OWNER as new_owner to delete the company. */ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) { +#ifdef ENABLE_NETWORK + /* In all cases, make spectators of clients connected to that company */ + if (_networking) NetworkClientsToSpectators(old_owner); +#endif /* ENABLE_NETWORK */ + Town *t; CompanyID old = _current_company; @@ -472,21 +477,6 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) MarkWholeScreenDirty(); } -static void ChangeNetworkOwner(Owner current_owner, Owner new_owner) -{ -#ifdef ENABLE_NETWORK - if (!_networking) return; - - if (current_owner == _local_company) { - SetLocalCompany(new_owner); - } - - if (!_network_server) return; - - NetworkServerChangeOwner(current_owner, new_owner); -#endif /* ENABLE_NETWORK */ -} - static void CompanyCheckBankrupt(Company *c) { /* If the company has money again, it does not go bankrupt */ @@ -548,8 +538,6 @@ static void CompanyCheckBankrupt(Company *c) SetDParamStr(2, cni->company_name); AddCompanyNewsItem(STR_MESSAGE_NEWS_FORMAT, NS_COMPANY_BANKRUPT, cni); - /* Remove the company */ - ChangeNetworkOwner(c->index, COMPANY_SPECTATOR); ChangeOwnershipOfCompanyItems(c->index, INVALID_OWNER); if (c->is_ai) AI::Stop(c->index); @@ -1461,8 +1449,6 @@ static void DoAcquireCompany(Company *c) AddCompanyNewsItem(STR_MESSAGE_NEWS_FORMAT, NS_COMPANY_MERGER, cni); AI::BroadcastNewEvent(new AIEventCompanyMerger(ci, _current_company)); - /* original code does this a little bit differently */ - ChangeNetworkOwner(ci, _current_company); ChangeOwnershipOfCompanyItems(ci, _current_company); if (c->bankrupt_value == 0) { |