From cc40883ad8dbaf03b68cb332ff1b50a6732939fe Mon Sep 17 00:00:00 2001 From: rubidium Date: Mon, 21 Dec 2009 16:16:37 +0000 Subject: [PATCH] (svn r18586) -Fix [FS#3398]: pressing default for the starting year/snow line height edit boxes of the world generation windows didn't work. --- src/genworld_gui.cpp | 43 ++++++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index adb59522fe..517e33d5b1 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -732,27 +732,36 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow { virtual void OnQueryTextFinished(char *str) { + int32 value; if (!StrEmpty(str)) { - int32 value = atoi(str); - + value = atoi(str); + } else { + /* An empty string means revert to the default */ switch (this->widget_id) { - case GLAND_START_DATE_TEXT: - this->SetWidgetDirty(GLAND_START_DATE_TEXT); - _settings_newgame.game_creation.starting_year = Clamp(value, MIN_YEAR, MAX_YEAR); - break; - - case GLAND_SNOW_LEVEL_TEXT: - this->SetWidgetDirty(GLAND_SNOW_LEVEL_TEXT); - _settings_newgame.game_creation.snow_line_height = Clamp(value, MIN_SNOWLINE_HEIGHT, MAX_SNOWLINE_HEIGHT); - break; - - case GLAND_TOWN_PULLDOWN: - _settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER); - break; + case GLAND_START_DATE_TEXT: value = DEF_START_YEAR; break; + case GLAND_SNOW_LEVEL_TEXT: value = DEF_SNOWLINE_HEIGHT; break; + case GLAND_TOWN_PULLDOWN: value = 1; break; // There's not really a default + default: NOT_REACHED(); } - - this->SetDirty(); } + + switch (this->widget_id) { + case GLAND_START_DATE_TEXT: + this->SetWidgetDirty(GLAND_START_DATE_TEXT); + _settings_newgame.game_creation.starting_year = Clamp(value, MIN_YEAR, MAX_YEAR); + break; + + case GLAND_SNOW_LEVEL_TEXT: + this->SetWidgetDirty(GLAND_SNOW_LEVEL_TEXT); + _settings_newgame.game_creation.snow_line_height = Clamp(value, MIN_SNOWLINE_HEIGHT, MAX_SNOWLINE_HEIGHT); + break; + + case GLAND_TOWN_PULLDOWN: + _settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER); + break; + } + + this->SetDirty(); } };