summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglx22 <glx@openttd.org>2021-01-18 15:33:39 +0100
committerLoïc Guilloux <glx22@users.noreply.github.com>2021-01-22 22:19:55 +0100
commit07385c36623ede05fbc4ac49076e1a26e349d731 (patch)
tree995e5b3f759315cf56a6cd90e8ac92efc56dbfef
parent485aafc1b7d51967e06cc5db76c195edcf8dc644 (diff)
downloadopenttd-07385c36623ede05fbc4ac49076e1a26e349d731.tar.xz
Fix: Use the same safety checks as 'stop_ai' for 'reload_ai'
-rw-r--r--src/ai/ai_gui.cpp3
-rw-r--r--src/console_cmds.cpp4
2 files changed, 5 insertions, 2 deletions
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp
index 30edc9940..8db22e41b 100644
--- a/src/ai/ai_gui.cpp
+++ b/src/ai/ai_gui.cpp
@@ -1406,7 +1406,8 @@ struct AIDebugWindow : public Window {
this->SetWidgetLoweredState(WID_AID_MATCH_CASE_BTN, this->case_sensitive_break_check);
this->SetWidgetDisabledState(WID_AID_SETTINGS, ai_debug_company == INVALID_COMPANY);
- this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY);
+ extern CompanyID _local_company;
+ this->SetWidgetDisabledState(WID_AID_RELOAD_TOGGLE, ai_debug_company == INVALID_COMPANY || ai_debug_company == OWNER_DEITY || ai_debug_company == _local_company);
this->SetWidgetDisabledState(WID_AID_CONTINUE_BTN, ai_debug_company == INVALID_COMPANY ||
(ai_debug_company == OWNER_DEITY ? !Game::IsPaused() : !AI::IsPaused(ai_debug_company)));
}
diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp
index 140d91e70..f701df034 100644
--- a/src/console_cmds.cpp
+++ b/src/console_cmds.cpp
@@ -1248,7 +1248,8 @@ DEF_CONSOLE_CMD(ConReloadAI)
return true;
}
- if (Company::IsHumanID(company_id)) {
+ /* In offline mode the player can be in an AI company, after cheating or loading network save with an AI in first slot. */
+ if (Company::IsHumanID(company_id) || company_id == _local_company) {
IConsoleWarning("Company is not controlled by an AI.");
return true;
}
@@ -1285,6 +1286,7 @@ DEF_CONSOLE_CMD(ConStopAI)
return true;
}
+ /* In offline mode the player can be in an AI company, after cheating or loading network save with an AI in first slot. */
if (Company::IsHumanID(company_id) || company_id == _local_company) {
IConsoleWarning("Company is not controlled by an AI.");
return true;