diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 7493556736..55e9bc0ba1 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -18,6 +18,8 @@ /* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source) { + assert(company < MAX_COMPANIES); + AIConfig **config; if (source == SSS_FORCE_NEWGAME || (source == SSS_DEFAULT && _game_mode == GM_MENU)) { config = &_settings_newgame.ai_config[company]; diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index c51f0be993..4469974c63 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -289,7 +289,7 @@ struct AIConfigWindow : public Window { if (!gui_scope) return; - AIConfig *config = AIConfig::GetConfig(this->selected_slot); + AIConfig *config = this->selected_slot == INVALID_COMPANY ? nullptr : AIConfig::GetConfig(this->selected_slot); this->SetWidgetDisabledState(WID_AIC_DECREASE_NUMBER, GetGameSettings().difficulty.max_no_competitors == 0); this->SetWidgetDisabledState(WID_AIC_INCREASE_NUMBER, GetGameSettings().difficulty.max_no_competitors == MAX_COMPANIES - 1);