Codechange: use enum class for CompanyRemoveReason

This commit is contained in:
Peter Nelson
2026-02-15 09:26:07 +00:00
committed by Peter Nelson
parent 7aecc268b6
commit a5d028e892
9 changed files with 26 additions and 26 deletions
+3 -3
View File
@@ -674,7 +674,7 @@ TimeoutTimer<TimerGameTick> _new_competitor_timeout({ TimerGameTick::Priority::C
/* Send a command to all clients to start up a new AI.
* Works fine for Multiplayer and Singleplayer */
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), CRR_NONE, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), CompanyRemoveReason::None, INVALID_CLIENT_ID);
});
/** Start of a new game. */
@@ -795,7 +795,7 @@ void OnTick_Companies()
for (auto i = 0; i < _settings_game.difficulty.max_no_competitors; i++) {
if (_networking && num_companies++ >= _settings_client.network.max_companies) break;
if (num_ais++ >= _settings_game.difficulty.max_no_competitors) break;
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), CRR_NONE, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), {}, INVALID_CLIENT_ID);
}
timeout = 10 * 60 * Ticks::TICKS_PER_SECOND;
}
@@ -964,7 +964,7 @@ CommandCost CmdCompanyCtrl(DoCommandFlags flags, CompanyCtrlAction cca, CompanyI
}
case CCA_DELETE: { // Delete a company
if (reason >= CRR_END) return CMD_ERROR;
if (reason >= CompanyRemoveReason::End) return CMD_ERROR;
/* We can't delete the last existing company in singleplayer mode. */
if (!_networking && Company::GetNumItems() == 1) return CMD_ERROR;
+6 -6
View File
@@ -57,14 +57,14 @@ struct CompanyManagerFace {
};
/** The reason why the company was removed. */
enum CompanyRemoveReason : uint8_t {
CRR_MANUAL, ///< The company is manually removed.
CRR_AUTOCLEAN, ///< The company is removed due to autoclean.
CRR_BANKRUPT, ///< The company went belly-up.
enum class CompanyRemoveReason : uint8_t {
Manual, ///< The company is manually removed.
Autoclean, ///< The company is removed due to autoclean.
Bankrupt, ///< The company went belly-up.
CRR_END, ///< Sentinel for end.
End, ///< Sentinel for end.
CRR_NONE = CRR_MANUAL, ///< Dummy reason for actions that don't need one.
None = Manual, ///< Dummy reason for actions that don't need one.
};
/** The action to do with Commands::CompanyControl. */
+5 -5
View File
@@ -1126,7 +1126,7 @@ static bool ConResetCompany(std::span<std::string_view> argv)
}
/* It is safe to remove this company */
Command<Commands::CompanyControl>::Post(CCA_DELETE, *index, CRR_MANUAL, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, *index, CompanyRemoveReason::Manual, INVALID_CLIENT_ID);
IConsolePrint(CC_DEFAULT, "Company deleted.");
return true;
@@ -1563,7 +1563,7 @@ static bool ConStartAI(std::span<std::string_view> argv)
}
/* Start a new AI company */
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), CRR_NONE, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, CompanyID::Invalid(), CompanyRemoveReason::None, INVALID_CLIENT_ID);
return true;
}
@@ -1605,8 +1605,8 @@ static bool ConReloadAI(std::span<std::string_view> argv)
}
/* First kill the company of the AI, then start a new one. This should start the current AI again */
Command<Commands::CompanyControl>::Post(CCA_DELETE, *company_id, CRR_MANUAL, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, *company_id, CRR_NONE, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, *company_id, CompanyRemoveReason::Manual, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, *company_id, CompanyRemoveReason::None, INVALID_CLIENT_ID);
IConsolePrint(CC_DEFAULT, "AI reloaded.");
return true;
@@ -1649,7 +1649,7 @@ static bool ConStopAI(std::span<std::string_view> argv)
}
/* Now kill the company of the AI. */
Command<Commands::CompanyControl>::Post(CCA_DELETE, *company_id, CRR_MANUAL, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, *company_id, CompanyRemoveReason::Manual, INVALID_CLIENT_ID);
IConsolePrint(CC_DEFAULT, "AI stopped, company deleted.");
return true;
+1 -1
View File
@@ -624,7 +624,7 @@ static void CompanyCheckBankrupt(Company *c)
* player we are sure (the above check) that we are not the local
* company and thus we won't be moved. */
if (!_networking || _network_server) {
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CRR_BANKRUPT, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CompanyRemoveReason::Bankrupt, INVALID_CLIENT_ID);
return;
}
break;
+4 -4
View File
@@ -16,10 +16,10 @@
#include "../../safeguards.h"
/* Make sure that these enums match. */
static_assert((int)CRR_MANUAL == (int)ADMIN_CRR_MANUAL);
static_assert((int)CRR_AUTOCLEAN == (int)ADMIN_CRR_AUTOCLEAN);
static_assert((int)CRR_BANKRUPT == (int)ADMIN_CRR_BANKRUPT);
static_assert((int)CRR_END == (int)ADMIN_CRR_END);
static_assert(to_underlying(CompanyRemoveReason::Manual) == to_underlying(ADMIN_CRR_MANUAL));
static_assert(to_underlying(CompanyRemoveReason::Autoclean) == to_underlying(ADMIN_CRR_AUTOCLEAN));
static_assert(to_underlying(CompanyRemoveReason::Bankrupt) == to_underlying(ADMIN_CRR_BANKRUPT));
static_assert(to_underlying(CompanyRemoveReason::End) == to_underlying(ADMIN_CRR_END));
NetworkRecvStatus NetworkAdminSocketHandler::CloseConnection(bool)
{
+1 -1
View File
@@ -885,7 +885,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::Receive_SERVER_MAP_DONE(Packet
Debug(net, 9, "Client::join_status = REGISTERING");
_network_join_status = NETWORK_JOIN_STATUS_REGISTERING;
ShowJoinStatusWindow();
Command<Commands::CompanyControl>::Post(CCA_NEW, CompanyID::Invalid(), CRR_NONE, _network_own_client_id);
Command<Commands::CompanyControl>::Post(CCA_NEW, CompanyID::Invalid(), CompanyRemoveReason::None, _network_own_client_id);
}
} else {
/* take control over an existing company */
+2 -2
View File
@@ -1305,7 +1305,7 @@ static void AdminCompanyResetCallback(Window *, bool confirmed)
{
if (confirmed) {
if (NetworkCompanyHasClients(_admin_company_id)) return;
Command<Commands::CompanyControl>::Post(CCA_DELETE, _admin_company_id, CRR_MANUAL, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, _admin_company_id, CompanyRemoveReason::Manual, INVALID_CLIENT_ID);
}
}
@@ -1590,7 +1590,7 @@ private:
*/
static void OnClickCompanyNew([[maybe_unused]] NetworkClientListWindow *w, [[maybe_unused]] Point pt, CompanyID)
{
Command<Commands::CompanyControl>::Post(CCA_NEW, CompanyID::Invalid(), CRR_NONE, _network_own_client_id);
Command<Commands::CompanyControl>::Post(CCA_NEW, CompanyID::Invalid(), CompanyRemoveReason::None, _network_own_client_id);
}
/**
+2 -2
View File
@@ -1635,13 +1635,13 @@ static void NetworkAutoCleanCompanies()
/* Is the company empty for autoclean_protected-months? */
if (_settings_client.network.autoclean_protected != 0 && c->months_empty > _settings_client.network.autoclean_protected) {
/* Shut the company down */
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CRR_AUTOCLEAN, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CompanyRemoveReason::Autoclean, INVALID_CLIENT_ID);
IConsolePrint(CC_INFO, "Auto-cleaned company #{}.", c->index + 1);
}
/* Is the company empty for autoclean_novehicles-months, and has no vehicles? */
if (_settings_client.network.autoclean_novehicles != 0 && c->months_empty > _settings_client.network.autoclean_novehicles && !has_vehicles.Test(c->index)) {
/* Shut the company down */
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CRR_AUTOCLEAN, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, c->index, CompanyRemoveReason::Autoclean, INVALID_CLIENT_ID);
IConsolePrint(CC_INFO, "Auto-cleaned company #{} with no vehicles.", c->index + 1);
}
} else {
+2 -2
View File
@@ -1016,8 +1016,8 @@ struct ScriptDebugWindow : public Window {
case WID_SCRD_RELOAD_TOGGLE:
if (this->filter.script_debug_company == OWNER_DEITY) break;
/* First kill the company of the AI, then start a new one. This should start the current AI again */
Command<Commands::CompanyControl>::Post(CCA_DELETE, this->filter.script_debug_company, CRR_MANUAL, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, this->filter.script_debug_company, CRR_NONE, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_DELETE, this->filter.script_debug_company, CompanyRemoveReason::Manual, INVALID_CLIENT_ID);
Command<Commands::CompanyControl>::Post(CCA_NEW_AI, this->filter.script_debug_company, CompanyRemoveReason::None, INVALID_CLIENT_ID);
break;
case WID_SCRD_SETTINGS: