changeset 14043:ac099bcf95d9 draft

(svn r18586) -Fix [FS#3398]: pressing default for the starting year/snow line height edit boxes of the world generation windows didn't work.
author rubidium <rubidium@openttd.org>
date Mon, 21 Dec 2009 16:16:37 +0000
parents 61fc4da3a486
children 7e5f2232c5d3
files src/genworld_gui.cpp
diffstat 1 files changed, 24 insertions(+), 15 deletions(-) [+]
line wrap: on
line diff
--- 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();
 	}
 };