# HG changeset patch # User rubidium # Date 1261412197 0 # Node ID ac099bcf95d9517d314aa9a60cde39d289df5d28 # Parent 61fc4da3a48619926e0e2c56f6d335de705c503c (svn r18586) -Fix [FS#3398]: pressing default for the starting year/snow line height edit boxes of the world generation windows didn't work. diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -732,27 +732,36 @@ 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_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(); + } + } - 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; + 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_TOWN_PULLDOWN: - _settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER); - 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; - this->SetDirty(); + case GLAND_TOWN_PULLDOWN: + _settings_newgame.game_creation.custom_town_number = Clamp(value, 1, CUSTOM_TOWN_MAX_NUMBER); + break; } + + this->SetDirty(); } };