(svn r19871) -Fix [FS#3826]: update the landscape buttons in the main menu / newgame window correctly (planetmaker)
This commit is contained in:
@@ -52,11 +52,11 @@ extern void MakeNewgameSettingsLive();
|
||||
* Changes landscape type and sets genworld window dirty
|
||||
* @param landscape new landscape type
|
||||
*/
|
||||
static inline void SetNewLandscapeType(byte landscape)
|
||||
void SetNewLandscapeType(byte landscape)
|
||||
{
|
||||
_settings_newgame.game_creation.landscape = landscape;
|
||||
SetWindowClassesDirty(WC_SELECT_GAME);
|
||||
SetWindowClassesDirty(WC_GENERATE_LANDSCAPE);
|
||||
InvalidateWindowClassesData(WC_SELECT_GAME);
|
||||
InvalidateWindowClassesData(WC_GENERATE_LANDSCAPE);
|
||||
}
|
||||
|
||||
/** Widgets of GenerateLandscapeWindow */
|
||||
@@ -363,6 +363,8 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
this->afilter = CS_NUMERAL;
|
||||
|
||||
this->mode = (GenenerateLandscapeWindowMode)this->window_number;
|
||||
|
||||
this->OnInvalidateData();
|
||||
}
|
||||
|
||||
|
||||
@@ -400,6 +402,15 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
}
|
||||
}
|
||||
|
||||
virtual void OnInvalidateData(int data = 0)
|
||||
{
|
||||
/* Update the climate buttons */
|
||||
this->SetWidgetLoweredState(GLAND_TEMPERATE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
|
||||
this->SetWidgetLoweredState(GLAND_ARCTIC, _settings_newgame.game_creation.landscape == LT_ARCTIC);
|
||||
this->SetWidgetLoweredState(GLAND_TROPICAL, _settings_newgame.game_creation.landscape == LT_TROPIC);
|
||||
this->SetWidgetLoweredState(GLAND_TOYLAND, _settings_newgame.game_creation.landscape == LT_TOYLAND);
|
||||
}
|
||||
|
||||
virtual void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize)
|
||||
{
|
||||
const StringID *strs = NULL;
|
||||
@@ -509,11 +520,6 @@ struct GenerateLandscapeWindow : public QueryStringBaseWindow {
|
||||
this->SetWidgetDisabledState(GLAND_SNOW_LEVEL_DOWN, _settings_newgame.game_creation.snow_line_height <= MIN_SNOWLINE_HEIGHT || _settings_newgame.game_creation.landscape != LT_ARCTIC);
|
||||
this->SetWidgetDisabledState(GLAND_SNOW_LEVEL_UP, _settings_newgame.game_creation.snow_line_height >= MAX_SNOWLINE_HEIGHT || _settings_newgame.game_creation.landscape != LT_ARCTIC);
|
||||
|
||||
this->SetWidgetLoweredState(GLAND_TEMPERATE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
|
||||
this->SetWidgetLoweredState(GLAND_ARCTIC, _settings_newgame.game_creation.landscape == LT_ARCTIC);
|
||||
this->SetWidgetLoweredState(GLAND_TROPICAL, _settings_newgame.game_creation.landscape == LT_TROPIC);
|
||||
this->SetWidgetLoweredState(GLAND_TOYLAND, _settings_newgame.game_creation.landscape == LT_TOYLAND);
|
||||
|
||||
this->DrawWidgets();
|
||||
|
||||
this->DrawEditBox(GLAND_RANDOM_EDITBOX);
|
||||
|
Reference in New Issue
Block a user