summaryrefslogtreecommitdiff
path: root/src/economy.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/economy.cpp')
-rw-r--r--src/economy.cpp24
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) {