diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/network/network_server.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 9ac1a03aa..dc18658a9 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -2193,11 +2193,17 @@ void NetworkServerNewCompany(const Company *c, NetworkClientInfo *ci) ci->client_playas = c->index; NetworkUpdateClientInfo(ci->client_id); NetworkSendCommand(0, 0, 0, CMD_RENAME_PRESIDENT, NULL, ci->client_name, c->index); - NetworkServerSendChat(NETWORK_ACTION_COMPANY_NEW, DESTTYPE_BROADCAST, 0, "", ci->client_id, c->index + 1); } /* Announce new company on network. */ NetworkAdminCompanyInfo(c, true); + + if (ci != NULL) { + /* ci is NULL when replaying, or for AIs. In neither case there is a client. + We need to send Admin port update here so that they first know about the new company + and then learn about a possibly joining client (see FS#6025) */ + NetworkServerSendChat(NETWORK_ACTION_COMPANY_NEW, DESTTYPE_BROADCAST, 0, "", ci->client_id, c->index + 1); + } } #endif /* ENABLE_NETWORK */ |