diff options
author | yexo <yexo@openttd.org> | 2009-02-21 02:34:53 +0000 |
---|---|---|
committer | yexo <yexo@openttd.org> | 2009-02-21 02:34:53 +0000 |
commit | c3c549f73105b88cf728744587821721a9e45c0f (patch) | |
tree | f078747297abae0d4c76406a0b8e0d6b37a2a9c5 /src | |
parent | 13bc604fde0f4d3f3620809507cfe045c1b96b4b (diff) | |
download | openttd-c3c549f73105b88cf728744587821721a9e45c0f.tar.xz |
(svn r15538) -Fix (r15334): The difficulty level wasn't set to custom when changing the amount of towns/industries from the newgame gui.
Diffstat (limited to 'src')
-rw-r--r-- | src/ai/ai_gui.cpp | 11 | ||||
-rw-r--r-- | src/genworld_gui.cpp | 16 | ||||
-rw-r--r-- | src/settings.cpp | 5 |
3 files changed, 13 insertions, 19 deletions
diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 3b09f0220..5aae9938c 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -16,6 +16,7 @@ #include "../string_func.h" #include "../textbuf_gui.h" #include "../settings_type.h" +#include "../settings_func.h" #include "../network/network_content.h" #include "ai.hpp" @@ -485,15 +486,13 @@ struct AIConfigWindow : public Window { case AIC_WIDGET_BACKGROUND: { /* Check if the user clicked on one of the arrows to configure the number of AIs */ if (IsInsideBS(pt.x, 10, 20) && IsInsideBS(pt.y, 18, 10)) { + int new_value; if (pt.x <= 20) { - _settings_newgame.difficulty.max_no_competitors = max(0, _settings_newgame.difficulty.max_no_competitors - 1); + new_value = max(0, _settings_newgame.difficulty.max_no_competitors - 1); } else { - _settings_newgame.difficulty.max_no_competitors = min(MAX_COMPANIES - 1, _settings_newgame.difficulty.max_no_competitors + 1); - } - if (_settings_newgame.difficulty.diff_level != 3) { - _settings_newgame.difficulty.diff_level = 3; - ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); + new_value = min(MAX_COMPANIES - 1, _settings_newgame.difficulty.max_no_competitors + 1); } + IConsoleSetSetting("difficulty.max_no_competitors", new_value); this->SetDirty(); } break; diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 10d1b97df..525e625e9 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -571,15 +571,11 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { case GLAND_SMOOTHNESS_PULLDOWN: _settings_newgame.game_creation.tgen_smoothness = index; break; case GLAND_TOWN_PULLDOWN: - _settings_newgame.difficulty.number_towns = index; - if (_settings_newgame.difficulty.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); - IConsoleSetSetting("difficulty.number_towns", _settings_newgame.difficulty.number_towns); + IConsoleSetSetting("difficulty.number_towns", index); break; case GLAND_INDUSTRY_PULLDOWN: - _settings_newgame.difficulty.number_industries = index; - if (_settings_newgame.difficulty.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); - IConsoleSetSetting("difficulty.number_industries", _settings_newgame.difficulty.number_industries); + IConsoleSetSetting("difficulty.number_industries", index); break; case GLAND_LANDSCAPE_PULLDOWN: @@ -592,15 +588,11 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { break; case GLAND_TERRAIN_PULLDOWN: - _settings_newgame.difficulty.terrain_type = index; - if (_settings_newgame.difficulty.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); - IConsoleSetSetting("difficulty.terrain_type", _settings_newgame.difficulty.terrain_type); + IConsoleSetSetting("difficulty.terrain_type", index); break; case GLAND_WATER_PULLDOWN: - _settings_newgame.difficulty.quantity_sea_lakes = index; - if (_settings_newgame.difficulty.diff_level != 3) ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); - IConsoleSetSetting("difficulty.quantity_sea_lakes", _settings_newgame.difficulty.quantity_sea_lakes); + IConsoleSetSetting("difficulty.quantity_sea_lakes", index); break; } this->SetDirty(); diff --git a/src/settings.cpp b/src/settings.cpp index 0dc48cfc8..ecfc3403c 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1009,7 +1009,10 @@ static bool DifficultyReset(int32 level) static bool DifficultyChange(int32) { if (_game_mode == GM_MENU) { - _settings_newgame.difficulty.diff_level = 3; + if (_settings_newgame.difficulty.diff_level != 3) { + ShowErrorMessage(INVALID_STRING_ID, STR_DIFFICULTY_TO_CUSTOM, 0, 0); + _settings_newgame.difficulty.diff_level = 3; + } } else { _settings_game.difficulty.diff_level = 3; } |