From a43a9e63076e89af8d3ed394f82dd52b7aa37933 Mon Sep 17 00:00:00 2001 From: yexo Date: Fri, 29 Jan 2010 01:03:22 +0000 Subject: [PATCH] (svn r18946) -Fix: it was possible to change AI settings without changing to the custom difficulty level by using the query text window --- src/ai/ai_gui.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 42173bf7cb..01506ada51 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -316,6 +316,14 @@ struct AISettingsWindow : public Window { } } + void CheckDifficultyLevel() + { + if (_settings_newgame.difficulty.diff_level != 3) { + _settings_newgame.difficulty.diff_level = 3; + ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, 0, 0); + } + } + virtual void OnClick(Point pt, int widget) { switch (widget) { @@ -353,10 +361,7 @@ struct AISettingsWindow : public Window { this->clicked_button = num; this->timeout = 5; - if (_settings_newgame.difficulty.diff_level != 3) { - _settings_newgame.difficulty.diff_level = 3; - ShowErrorMessage(STR_WARNING_DIFFICULTY_TO_CUSTOM, INVALID_STRING_ID, 0, 0); - } + this->CheckDifficultyLevel(); } else if (!bool_item) { /* Display a query box so users can enter a custom value. */ this->clicked_row = num; @@ -386,6 +391,7 @@ struct AISettingsWindow : public Window { for (int i = 0; i < this->clicked_row; i++) it++; int32 value = atoi(str); this->ai_config->SetSetting((*it).name, value); + this->CheckDifficultyLevel(); this->SetDirty(); }