1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-09-02 19:39:12 +00:00

Fix #10983: [AdminPort] Correct order of messages

This commit is contained in:
Damian Laczak
2023-06-26 02:11:04 +02:00
committed by rubidium42
parent f20d241e81
commit 49c3215751
4 changed files with 13 additions and 13 deletions

View File

@@ -853,11 +853,10 @@ void NetworkAdminClientError(ClientID client_id, NetworkErrorCode error_code)
}
/**
* Notify the admin network of company details.
* Notify the admin network of a new company.
* @param company the company of which details will be sent into the admin network.
* @param new_company whether this is a new company or not.
*/
void NetworkAdminCompanyInfo(const Company *company, bool new_company)
void NetworkAdminCompanyNew(const Company *company)
{
if (company == nullptr) {
Debug(net, 1, "[admin] Empty company given for update");
@@ -867,10 +866,8 @@ void NetworkAdminCompanyInfo(const Company *company, bool new_company)
for (ServerNetworkAdminSocketHandler *as : ServerNetworkAdminSocketHandler::IterateActive()) {
if (as->update_frequency[ADMIN_UPDATE_COMPANY_INFO] != ADMIN_FREQUENCY_AUTOMATIC) continue;
as->SendCompanyNew(company->index);
as->SendCompanyInfo(company);
if (new_company) {
as->SendCompanyNew(company->index);
}
}
}

View File

@@ -103,7 +103,7 @@ void NetworkAdminClientInfo(const NetworkClientSocket *cs, bool new_client = fal
void NetworkAdminClientUpdate(const NetworkClientInfo *ci);
void NetworkAdminClientQuit(ClientID client_id);
void NetworkAdminClientError(ClientID client_id, NetworkErrorCode error_code);
void NetworkAdminCompanyInfo(const Company *company, bool new_company);
void NetworkAdminCompanyNew(const Company *company);
void NetworkAdminCompanyUpdate(const Company *company);
void NetworkAdminCompanyRemove(CompanyID company_id, AdminCompanyRemoveReason bcrr);

View File

@@ -2198,9 +2198,6 @@ void NetworkServerNewCompany(const Company *c, NetworkClientInfo *ci)
Command<CMD_RENAME_PRESIDENT>::SendNet(STR_NULL, c->index, ci->client_name);
}
/* Announce new company on network. */
NetworkAdminCompanyInfo(c, true);
if (ci != nullptr) {
/* ci is nullptr 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