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 e34200460a..5a6a52cb53 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -288,7 +288,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);