|
@@ -566,14 +566,14 @@ struct GenerateLandscapeWindow : public
|
|
|
|
|
|
/* Update availability of decreasing / increasing start date and snow level */
|
|
|
if (mode == GLWM_HEIGHTMAP) {
|
|
|
this->SetWidgetDisabledState(WID_GL_HEIGHTMAP_HEIGHT_DOWN, _settings_newgame.game_creation.heightmap_height <= MIN_HEIGHTMAP_HEIGHT);
|
|
|
this->SetWidgetDisabledState(WID_GL_HEIGHTMAP_HEIGHT_UP, _settings_newgame.game_creation.heightmap_height >= GetMapHeightLimit());
|
|
|
}
|
|
|
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_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= CalendarTime::MIN_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_GL_START_DATE_UP, _settings_newgame.game_creation.starting_year >= CalendarTime::MAX_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_GL_SNOW_COVERAGE_DOWN, _settings_newgame.game_creation.snow_coverage <= 0 || _settings_newgame.game_creation.landscape != LT_ARCTIC);
|
|
|
this->SetWidgetDisabledState(WID_GL_SNOW_COVERAGE_UP, _settings_newgame.game_creation.snow_coverage >= 100 || _settings_newgame.game_creation.landscape != LT_ARCTIC);
|
|
|
this->SetWidgetDisabledState(WID_GL_DESERT_COVERAGE_DOWN, _settings_newgame.game_creation.desert_coverage <= 0 || _settings_newgame.game_creation.landscape != LT_TROPIC);
|
|
|
this->SetWidgetDisabledState(WID_GL_DESERT_COVERAGE_UP, _settings_newgame.game_creation.desert_coverage >= 100 || _settings_newgame.game_creation.landscape != LT_TROPIC);
|
|
|
|
|
|
/* Do not allow a custom sea level or terrain type with the original land generator. */
|
|
@@ -596,13 +596,13 @@ struct GenerateLandscapeWindow : public
|
|
|
case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
|
|
|
SetDParam(0, MAX_TILE_HEIGHT);
|
|
|
d = GetStringBoundingBox(STR_JUST_INT);
|
|
|
break;
|
|
|
|
|
|
case WID_GL_START_DATE_TEXT:
|
|
|
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(MAX_YEAR, 0, 1));
|
|
|
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1));
|
|
|
d = GetStringBoundingBox(STR_JUST_DATE_LONG);
|
|
|
break;
|
|
|
|
|
|
case WID_GL_MAPSIZE_X_PULLDOWN:
|
|
|
case WID_GL_MAPSIZE_Y_PULLDOWN:
|
|
|
SetDParamMaxValue(0, MAX_MAP_SIZE);
|
|
@@ -760,13 +760,13 @@ struct GenerateLandscapeWindow : public
|
|
|
case WID_GL_START_DATE_DOWN:
|
|
|
case WID_GL_START_DATE_UP: // Year buttons
|
|
|
/* Don't allow too fast scrolling */
|
|
|
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
|
|
|
this->HandleButtonClick(widget);
|
|
|
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year + widget - WID_GL_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year + widget - WID_GL_START_DATE_TEXT, CalendarTime::MIN_YEAR, CalendarTime::MAX_YEAR);
|
|
|
this->InvalidateData();
|
|
|
}
|
|
|
_left_button_clicked = false;
|
|
|
break;
|
|
|
|
|
|
case WID_GL_START_DATE_TEXT: // Year text
|
|
@@ -965,13 +965,13 @@ struct GenerateLandscapeWindow : public
|
|
|
if (!StrEmpty(str)) {
|
|
|
value = atoi(str);
|
|
|
} else {
|
|
|
/* An empty string means revert to the default */
|
|
|
switch (this->widget_id) {
|
|
|
case WID_GL_HEIGHTMAP_HEIGHT_TEXT: value = MAP_HEIGHT_LIMIT_AUTO_MINIMUM; break;
|
|
|
case WID_GL_START_DATE_TEXT: value = static_cast<int32_t>(DEF_START_YEAR); break;
|
|
|
case WID_GL_START_DATE_TEXT: value = static_cast<int32_t>(CalendarTime::DEF_START_YEAR); break;
|
|
|
case WID_GL_SNOW_COVERAGE_TEXT: value = DEF_SNOW_COVERAGE; break;
|
|
|
case WID_GL_DESERT_COVERAGE_TEXT: value = DEF_DESERT_COVERAGE; break;
|
|
|
case WID_GL_TOWN_PULLDOWN: value = 1; break;
|
|
|
case WID_GL_INDUSTRY_PULLDOWN: value = 1; break;
|
|
|
case WID_GL_TERRAIN_PULLDOWN: value = MIN_MAP_HEIGHT_LIMIT; break;
|
|
|
case WID_GL_WATER_PULLDOWN: value = CUSTOM_SEA_LEVEL_MIN_PERCENTAGE; break;
|
|
@@ -984,13 +984,13 @@ struct GenerateLandscapeWindow : public
|
|
|
this->SetWidgetDirty(WID_GL_HEIGHTMAP_HEIGHT_TEXT);
|
|
|
_settings_newgame.game_creation.heightmap_height = Clamp(value, MIN_HEIGHTMAP_HEIGHT, GetMapHeightLimit());
|
|
|
break;
|
|
|
|
|
|
case WID_GL_START_DATE_TEXT:
|
|
|
this->SetWidgetDirty(WID_GL_START_DATE_TEXT);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(TimerGameCalendar::Year(value), MIN_YEAR, MAX_YEAR);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(TimerGameCalendar::Year(value), CalendarTime::MIN_YEAR, CalendarTime::MAX_YEAR);
|
|
|
break;
|
|
|
|
|
|
case WID_GL_SNOW_COVERAGE_TEXT:
|
|
|
this->SetWidgetDirty(WID_GL_SNOW_COVERAGE_TEXT);
|
|
|
_settings_newgame.game_creation.snow_coverage = Clamp(value, 0, 100);
|
|
|
break;
|
|
@@ -1122,14 +1122,14 @@ struct CreateScenarioWindow : public Win
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void OnPaint() override
|
|
|
{
|
|
|
this->SetWidgetDisabledState(WID_CS_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= MIN_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_CS_START_DATE_UP, _settings_newgame.game_creation.starting_year >= MAX_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_CS_START_DATE_DOWN, _settings_newgame.game_creation.starting_year <= CalendarTime::MIN_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_CS_START_DATE_UP, _settings_newgame.game_creation.starting_year >= CalendarTime::MAX_YEAR);
|
|
|
this->SetWidgetDisabledState(WID_CS_FLAT_LAND_HEIGHT_DOWN, _settings_newgame.game_creation.se_flat_world_height <= 0);
|
|
|
this->SetWidgetDisabledState(WID_CS_FLAT_LAND_HEIGHT_UP, _settings_newgame.game_creation.se_flat_world_height >= GetMapHeightLimit());
|
|
|
|
|
|
this->SetWidgetLoweredState(WID_CS_TEMPERATE, _settings_newgame.game_creation.landscape == LT_TEMPERATE);
|
|
|
this->SetWidgetLoweredState(WID_CS_ARCTIC, _settings_newgame.game_creation.landscape == LT_ARCTIC);
|
|
|
this->SetWidgetLoweredState(WID_CS_TROPICAL, _settings_newgame.game_creation.landscape == LT_TROPIC);
|
|
@@ -1140,13 +1140,13 @@ struct CreateScenarioWindow : public Win
|
|
|
|
|
|
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
|
|
|
{
|
|
|
StringID str = STR_JUST_INT;
|
|
|
switch (widget) {
|
|
|
case WID_CS_START_DATE_TEXT:
|
|
|
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(MAX_YEAR, 0, 1));
|
|
|
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1));
|
|
|
str = STR_JUST_DATE_LONG;
|
|
|
break;
|
|
|
|
|
|
case WID_CS_MAPSIZE_X_PULLDOWN:
|
|
|
case WID_CS_MAPSIZE_Y_PULLDOWN:
|
|
|
SetDParamMaxValue(0, MAX_MAP_SIZE);
|
|
@@ -1196,13 +1196,13 @@ struct CreateScenarioWindow : public Win
|
|
|
case WID_CS_START_DATE_UP: // Year buttons
|
|
|
/* Don't allow too fast scrolling */
|
|
|
if (!(this->flags & WF_TIMEOUT) || this->timeout_timer <= 1) {
|
|
|
this->HandleButtonClick(widget);
|
|
|
this->SetDirty();
|
|
|
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year + widget - WID_CS_START_DATE_TEXT, MIN_YEAR, MAX_YEAR);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(_settings_newgame.game_creation.starting_year + widget - WID_CS_START_DATE_TEXT, CalendarTime::MIN_YEAR, CalendarTime::MAX_YEAR);
|
|
|
}
|
|
|
_left_button_clicked = false;
|
|
|
break;
|
|
|
|
|
|
case WID_CS_START_DATE_TEXT: // Year text
|
|
|
this->widget_id = WID_CS_START_DATE_TEXT;
|
|
@@ -1255,13 +1255,13 @@ struct CreateScenarioWindow : public Win
|
|
|
if (!StrEmpty(str)) {
|
|
|
int32_t value = atoi(str);
|
|
|
|
|
|
switch (this->widget_id) {
|
|
|
case WID_CS_START_DATE_TEXT:
|
|
|
this->SetWidgetDirty(WID_CS_START_DATE_TEXT);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(TimerGameCalendar::Year(value), MIN_YEAR, MAX_YEAR);
|
|
|
_settings_newgame.game_creation.starting_year = Clamp(TimerGameCalendar::Year(value), CalendarTime::MIN_YEAR, CalendarTime::MAX_YEAR);
|
|
|
break;
|
|
|
|
|
|
case WID_CS_FLAT_LAND_HEIGHT_TEXT:
|
|
|
this->SetWidgetDirty(WID_CS_FLAT_LAND_HEIGHT_TEXT);
|
|
|
_settings_newgame.game_creation.se_flat_world_height = Clamp(value, 0, GetMapHeightLimit());
|
|
|
break;
|