diff -r f895bf254aa0 src/genworld_gui.cpp --- a/src/genworld_gui.cpp Wed May 19 06:15:47 2010 +0200 +++ b/src/genworld_gui.cpp Wed May 19 09:25:34 2010 +0200 @@ -182,7 +182,7 @@ NWidget(WWT_TEXT, COLOUR_ORANGE), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE_LABEL, STR_NULL), SetFill(1, 1), EndContainer(), NWidget(NWID_VERTICAL, NC_EQUALSIZE), SetPIP(0, 4, 0), - NWidget(WWT_TEXT, COLOUR_ORANGE, GLAND_HEIGHTMAP_SIZE_TEXT), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE, STR_NULL), SetFill(1, 0), + NWidget(WWT_TEXT, COLOUR_ORANGE, GLAND_HEIGHTMAP_SIZE_TEXT), SetDataTip(STR_MAPGEN_HEIGHTMAP_SIZE, STR_NULL), SetFill(1, 1), EndContainer(), EndContainer(), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), SetPIP(0, 3, 0), @@ -431,7 +431,7 @@ this->active_tab = SELPLANE_MAP; this->mode = (GenenerateLandscapeWindowMode)this->window_number; - this->landscape_source = ((mode == GLWM_HEIGHTMAP) ? USE_HEIGHTMAP : (_settings_newgame.game_creation.land_generator == 0 ? USE_ORIGINAL : USE_TERRAGENESIS)); + SetPlane(GLAND_TERRAIN_SOURCE, &this->landscape_source, (mode == GLWM_HEIGHTMAP) ? USE_HEIGHTMAP : (_settings_newgame.game_creation.land_generator == 0 ? USE_ORIGINAL : USE_TERRAGENESIS)); } @@ -546,18 +546,6 @@ virtual void OnPaint() { - NWidgetStacked *wi = this->GetWidget(GLAND_TAB); - if (this->active_tab != wi->shown_plane) { - wi->SetDisplayedPlane(this->active_tab); - this->SetDirty(); - return; - } - wi = this->GetWidget(GLAND_TERRAIN_SOURCE); - if (this->landscape_source != wi->shown_plane) { - wi->SetDisplayedPlane(this->landscape_source); - this->SetDirty(); - return; - } this->SetWidgetLoweredState(GLAND_USE_HEIGHTMAP_BUTTON, this->landscape_source == USE_HEIGHTMAP); this->SetWidgetLoweredState(GLAND_USE_ORIGINAL_BUTTON, this->landscape_source == USE_ORIGINAL); this->SetWidgetLoweredState(GLAND_USE_TERRAGENESIS_BUTTON, this->landscape_source == USE_TERRAGENESIS); @@ -604,6 +592,17 @@ } + virtual void SetPlane(int widget, int *plane, int sub_plane) + { + *plane = sub_plane; + NWidgetStacked *wi = this->GetWidget(widget); + if (*plane != wi->shown_plane) { + wi->SetDisplayedPlane(*plane); + this->SetDirty(); + return; + } + } + virtual void OnClick(Point pt, int widget, int click_count) { switch (widget) { @@ -617,27 +616,22 @@ ShowSaveLoadDialog(SLD_LOAD_HEIGHTMAP); if (_file_to_saveload.mode == SL_INVALID) break; mode = GLWM_HEIGHTMAP; - this->landscape_source = USE_HEIGHTMAP; - Window::SetDirty(); + SetPlane(GLAND_TERRAIN_SOURCE, &this->landscape_source, USE_HEIGHTMAP); break; case GLAND_USE_TERRAGENESIS_BUTTON: mode = GLWM_GENERATE; - this->landscape_source = USE_TERRAGENESIS; - Window::SetDirty(); + SetPlane(GLAND_TERRAIN_SOURCE, &this->landscape_source, USE_TERRAGENESIS); break; case GLAND_USE_ORIGINAL_BUTTON: mode = GLWM_GENERATE; - this->landscape_source = USE_ORIGINAL; - Window::SetDirty(); + SetPlane(GLAND_TERRAIN_SOURCE, &this->landscape_source, USE_ORIGINAL); break; case GLAND_TAB_SETTINGS_TO_MAP: - this->active_tab = SELPLANE_MAP; - Window::SetDirty(); + SetPlane(GLAND_TAB, &this->active_tab, SELPLANE_MAP); break; case GLAND_TAB_MAP_TO_SETTINGS: - this->active_tab = SELPLANE_SETTINGS; - Window::SetDirty(); + SetPlane(GLAND_TAB, &this->active_tab, SELPLANE_SETTINGS); break; case GLAND_TEMPERATE: