@ -84,9 +84,9 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_LAND_GENERATOR , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_NUMBER_OF_TOWNS , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_TERRAIN_TYPE , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_VARIETY , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_QUANTITY_OF_SEA_LAKES , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_TREE_PLACER , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_VARIETY , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_BORDER_TYPE , STR_NULL ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
/* Widgets at the right of the labels. */
@ -100,34 +100,41 @@ static const NWidgetPart _nested_generate_landscape_widgets[] = {
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_LANDSCAPE_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_TOWN_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_TERRAIN_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_VARIETY_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_WATER_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_TREE_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_VARIETY_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_TEXTBTN , COLOUR_ORANGE , WID_GL_BORDERS_RANDOM ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
EndContainer ( ) ,
EndContainer ( ) ,
NWidget ( NWID_VERTICAL ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( NWID_HORIZONTAL ) , SetPIP ( 0 , 3 , 0 ) ,
NWidget ( NWID_VERTICAL , NC_EQUALSIZE ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_ DATE , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_ MAX_HEIGHTLEVEL , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_SNOW_LINE_HEIGHT , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_DATE , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_NUMBER_OF_INDUSTRIES , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_SMOOTHNESS , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_QUANTITY_OF_RIVERS , STR_NULL ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
NWidget ( NWID_VERTICAL , NC_EQUALSIZE ) , SetPIP ( 0 , 4 , 0 ) ,
/* Starting date . */
/* Max. heightlevel . */
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_ START_DATE_DOWN) , SetDataTip ( SPR_ARROW_DOWN , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_ PUSH TXTBTN, COLOUR_ORANGE , WID_GL_ START_DATE_TEXT) , SetDataTip ( STR_BLACK_DATE_LONG , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_ START_DATE_UP) , SetDataTip ( SPR_ARROW_UP , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_ MAX_HEIGHTLEVEL_DOWN) , SetDataTip ( SPR_ARROW_DOWN , STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_ TE XTBTN, COLOUR_ORANGE , WID_GL_ MAX_HEIGHTLEVEL_TEXT) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_ MAX_HEIGHTLEVEL_UP) , SetDataTip ( SPR_ARROW_UP , STR_MAPGEN_MAX_HEIGHTLEVEL_UP ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
/* Snow line. */
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_MAPGEN_SNOW_LINE_DOWN ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_ PUSH TXTBTN, COLOUR_ORANGE , WID_GL_SNOW_LEVEL_TEXT ) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_ TE XTBTN, COLOUR_ORANGE , WID_GL_SNOW_LEVEL_TEXT ) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_UP ) , SetDataTip ( SPR_ARROW_UP , STR_MAPGEN_SNOW_LINE_UP ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
/* Starting date. */
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_START_DATE_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_PUSHTXTBTN , COLOUR_ORANGE , WID_GL_START_DATE_TEXT ) , SetDataTip ( STR_BLACK_DATE_LONG , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_START_DATE_UP ) , SetDataTip ( SPR_ARROW_UP , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_INDUSTRY_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_SMOOTHNESS_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_RIVER_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
@ -194,11 +201,11 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = {
NWidget ( NWID_VERTICAL , NC_EQUALSIZE ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_HEIGHTMAP_NAME , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_MAPSIZE , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_HEIGHTMAP_ROTATION , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_NUMBER_OF_TOWNS , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_NUMBER_OF_INDUSTRIES , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_QUANTITY_OF_RIVERS , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_TREE_PLACER , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_HEIGHTMAP_ROTATION , STR_NULL ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
/* Widgets at the right of the labels. */
NWidget ( NWID_VERTICAL ) , SetPIP ( 0 , 4 , 0 ) ,
@ -211,31 +218,37 @@ static const NWidgetPart _nested_heightmap_load_widgets[] = {
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_BY , STR_NULL ) , SetPadding ( 1 , 0 , 0 , 0 ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_MAPSIZE_Y_PULLDOWN ) , SetDataTip ( STR_JUST_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
EndContainer ( ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_HEIGHTMAP_ROTATION_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_TOWN_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_INDUSTRY_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_RIVER_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_TREE_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_DROPDOWN , COLOUR_ORANGE , WID_GL_HEIGHTMAP_ROTATION_PULLDOWN ) , SetDataTip ( STR_JUST_STRING , STR_NULL ) , SetFill ( 1 , 0 ) ,
EndContainer ( ) ,
NWidget ( NWID_VERTICAL ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( NWID_HORIZONTAL ) , SetPIP ( 0 , 3 , 0 ) ,
NWidget ( NWID_VERTICAL , NC_EQUALSIZE ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_HEIGHTMAP_SIZE_LABEL , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_DATE , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_SNOW_LINE_HEIGHT , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_MAX_HEIGHTLEVEL , STR_NULL ) , SetFill ( 1 , 1 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE ) , SetDataTip ( STR_MAPGEN_DATE , STR_NULL ) , SetFill ( 1 , 1 ) ,
EndContainer ( ) ,
NWidget ( NWID_VERTICAL , NC_EQUALSIZE ) , SetPIP ( 0 , 4 , 0 ) ,
NWidget ( WWT_TEXT , COLOUR_ORANGE , WID_GL_HEIGHTMAP_SIZE_TEXT ) , SetDataTip ( STR_MAPGEN_HEIGHTMAP_SIZE , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_MAPGEN_SNOW_LINE_DOWN ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_TEXTBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_TEXT ) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_UP ) , SetDataTip ( SPR_ARROW_UP , STR_MAPGEN_SNOW_LINE_UP ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_MAX_HEIGHTLEVEL_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_MAPGEN_MAX_HEIGHTLEVEL_DOWN ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_TEXTBTN , COLOUR_ORANGE , WID_GL_MAX_HEIGHTLEVEL_TEXT ) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_MAX_HEIGHTLEVEL_UP ) , SetDataTip ( SPR_ARROW_UP , STR_MAPGEN_MAX_HEIGHTLEVEL_UP ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_START_DATE_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_BACKWARD ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_PUSHTXTBTN , COLOUR_ORANGE , WID_GL_START_DATE_TEXT ) , SetDataTip ( STR_BLACK_DATE_LONG , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_START_DATE_UP ) , SetDataTip ( SPR_ARROW_UP , STR_SCENEDIT_TOOLBAR_TOOLTIP_MOVE_THE_STARTING_DATE_FORWARD ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
NWidget ( NWID_HORIZONTAL ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_DOWN ) , SetDataTip ( SPR_ARROW_DOWN , STR_MAPGEN_SNOW_LINE_DOWN ) , SetFill ( 0 , 1 ) ,
NWidget ( WWT_PUSHTXTBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_TEXT ) , SetDataTip ( STR_BLACK_INT , STR_NULL ) , SetFill ( 1 , 0 ) ,
NWidget ( WWT_IMGBTN , COLOUR_ORANGE , WID_GL_SNOW_LEVEL_UP ) , SetDataTip ( SPR_ARROW_UP , STR_MAPGEN_SNOW_LINE_UP ) , SetFill ( 0 , 1 ) ,
EndContainer ( ) ,
EndContainer ( ) ,
EndContainer ( ) ,
NWidget ( NWID_SPACER ) , SetFill ( 1 , 1 ) ,
@ -324,10 +337,11 @@ struct GenerateLandscapeWindow : public Window {
virtual void SetStringParameters ( int widget ) const
{
switch ( widget ) {
case WID_GL_START_DATE_TEXT : SetDParam ( 0 , ConvertYMDToDate ( _settings_newgame . game_creation . starting_year , 0 , 1 ) ) ; break ;
case WID_GL_MAPSIZE_X_PULLDOWN : SetDParam ( 0 , 1 < < _settings_newgame . game_creation . map_x ) ; break ;
case WID_GL_MAPSIZE_Y_PULLDOWN : SetDParam ( 0 , 1 < < _settings_newgame . game_creation . map_y ) ; break ;
case WID_GL_SNOW_LEVEL_TEXT : SetDParam ( 0 , _settings_newgame . game_creation . snow_line_height ) ; break ;
case WID_GL_START_DATE_TEXT : SetDParam ( 0 , ConvertYMDToDate ( _settings_newgame . game_creation . starting_year , 0 , 1 ) ) ; break ;
case WID_GL_MAPSIZE_X_PULLDOWN : SetDParam ( 0 , 1 < < _settings_newgame . game_creation . map_x ) ; break ;
case WID_GL_MAPSIZE_Y_PULLDOWN : SetDParam ( 0 , 1 < < _settings_newgame . game_creation . map_y ) ; break ;
case WID_GL_MAX_HEIGHTLEVEL_TEXT : SetDParam ( 0 , _settings_newgame . construction . max_heightlevel ) ; break ;
case WID_GL_SNOW_LEVEL_TEXT : SetDParam ( 0 , _settings_newgame . game_creation . snow_line_height ) ; break ;
case WID_GL_TOWN_PULLDOWN :
if ( _game_mode = = GM_EDITOR ) {
@ -413,6 +427,8 @@ struct GenerateLandscapeWindow : public Window {
this - > SetWidgetDisabledState ( WID_GL_SNOW_LEVEL_TEXT , _settings_newgame . game_creation . landscape ! = LT_ARCTIC ) ;
/* Update availability of decreasing / increasing start date and snow level */
this - > SetWidgetDisabledState ( WID_GL_MAX_HEIGHTLEVEL_DOWN , _settings_newgame . construction . max_heightlevel < = MIN_MAX_HEIGHTLEVEL ) ;
this - > SetWidgetDisabledState ( WID_GL_MAX_HEIGHTLEVEL_UP , _settings_newgame . construction . max_heightlevel > = MAX_MAX_HEIGHTLEVEL ) ;
this - > SetWidgetDisabledState ( WID_GL_START_DATE_DOWN , _settings_newgame . game_creation . starting_year < = MIN_YEAR ) ;
this - > SetWidgetDisabledState ( WID_GL_START_DATE_UP , _settings_newgame . game_creation . starting_year > = MAX_YEAR ) ;
this - > SetWidgetDisabledState ( WID_GL_SNOW_LEVEL_DOWN , _settings_newgame . game_creation . snow_line_height < = MIN_SNOWLINE_HEIGHT | | _settings_newgame . game_creation . landscape ! = LT_ARCTIC ) ;
@ -430,6 +446,11 @@ struct GenerateLandscapeWindow : public Window {
{
const StringID * strs = NULL ;
switch ( widget ) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT :
SetDParam ( 0 , MAX_TILE_HEIGHT ) ;
* size = GetStringBoundingBox ( STR_JUST_INT ) ;
break ;
case WID_GL_START_DATE_TEXT :
SetDParam ( 0 , ConvertYMDToDate ( MAX_YEAR , 0 , 1 ) ) ;
* size = maxdim ( * size , GetStringBoundingBox ( STR_BLACK_DATE_LONG ) ) ;
@ -562,6 +583,25 @@ struct GenerateLandscapeWindow : public Window {
break ;
}
case WID_GL_MAX_HEIGHTLEVEL_DOWN :
case WID_GL_MAX_HEIGHTLEVEL_UP : // Height level buttons
/* Don't allow too fast scrolling */
if ( ! ( this - > flags & WF_TIMEOUT ) | | this - > timeout_timer < = 1 ) {
this - > HandleButtonClick ( widget ) ;
_settings_newgame . construction . max_heightlevel = Clamp ( _settings_newgame . construction . max_heightlevel + widget - WID_GL_MAX_HEIGHTLEVEL_TEXT , MIN_MAX_HEIGHTLEVEL , MAX_MAX_HEIGHTLEVEL ) ;
this - > InvalidateData ( ) ;
}
_left_button_clicked = false ;
break ;
case WID_GL_MAX_HEIGHTLEVEL_TEXT : // Height level text
this - > widget_id = WID_GL_MAX_HEIGHTLEVEL_TEXT ;
SetDParam ( 0 , _settings_newgame . construction . max_heightlevel ) ;
ShowQueryString ( STR_JUST_INT , STR_MAPGEN_MAX_HEIGHTLEVEL_QUERY_CAPT , 4 , this , CS_NUMERAL , QSF_ENABLE_DEFAULT ) ;
break ;
case WID_GL_START_DATE_DOWN :
case WID_GL_START_DATE_UP : // Year buttons
/* Don't allow too fast scrolling */
@ -666,7 +706,7 @@ struct GenerateLandscapeWindow : public Window {
virtual void OnTimeout ( )
{
static const int raise_widgets [ ] = { WID_GL_ START_DATE_DOWN, WID_GL_START_DATE_UP , WID_GL_SNOW_LEVEL_UP , WID_GL_SNOW_LEVEL_DOWN , WIDGET_LIST_END } ;
static const int raise_widgets [ ] = { WID_GL_ MAX_HEIGHTLEVEL_DOWN, WID_GL_MAX_HEIGHTLEVEL_UP , WID_GL_ START_DATE_DOWN, WID_GL_START_DATE_UP , WID_GL_SNOW_LEVEL_UP , WID_GL_SNOW_LEVEL_DOWN , WIDGET_LIST_END } ;
for ( const int * widget = raise_widgets ; * widget ! = WIDGET_LIST_END ; widget + + ) {
if ( this - > IsWidgetLowered ( * widget ) ) {
this - > RaiseWidget ( * widget ) ;
@ -735,6 +775,7 @@ struct GenerateLandscapeWindow : public Window {
} else {
/* An empty string means revert to the default */
switch ( this - > widget_id ) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT : value = DEF_MAX_HEIGHTLEVEL ; break ;
case WID_GL_START_DATE_TEXT : value = DEF_START_YEAR ; break ;
case WID_GL_SNOW_LEVEL_TEXT : value = DEF_SNOWLINE_HEIGHT ; break ;
case WID_GL_TOWN_PULLDOWN : value = 1 ; break ;
@ -744,6 +785,11 @@ struct GenerateLandscapeWindow : public Window {
}
switch ( this - > widget_id ) {
case WID_GL_MAX_HEIGHTLEVEL_TEXT :
this - > SetWidgetDirty ( WID_GL_MAX_HEIGHTLEVEL_TEXT ) ;
_settings_newgame . construction . max_heightlevel = Clamp ( value , MIN_MAX_HEIGHTLEVEL , MAX_MAX_HEIGHTLEVEL ) ;
break ;
case WID_GL_START_DATE_TEXT :
this - > SetWidgetDirty ( WID_GL_START_DATE_TEXT ) ;
_settings_newgame . game_creation . starting_year = Clamp ( value , MIN_YEAR , MAX_YEAR ) ;