1
0
Fork 0

Codechange: Use parameterised GetString() for world generation window. (#13689)

pull/13693/head
Peter Nelson 2025-03-01 22:18:36 +00:00 committed by GitHub
parent 5d026ef118
commit 8216938276
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 19 additions and 33 deletions

View File

@ -582,59 +582,48 @@ struct GenerateLandscapeWindow : public Window {
break; break;
case WID_GL_HEIGHTMAP_HEIGHT_TEXT: case WID_GL_HEIGHTMAP_HEIGHT_TEXT:
SetDParam(0, MAX_TILE_HEIGHT); d = GetStringBoundingBox(GetString(STR_JUST_INT, MAX_TILE_HEIGHT));
d = GetStringBoundingBox(STR_JUST_INT);
break; break;
case WID_GL_START_DATE_TEXT: case WID_GL_START_DATE_TEXT:
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1)); d = GetStringBoundingBox(GetString(STR_JUST_DATE_LONG, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1)));
d = GetStringBoundingBox(STR_JUST_DATE_LONG);
break; break;
case WID_GL_MAPSIZE_X_PULLDOWN: case WID_GL_MAPSIZE_X_PULLDOWN:
case WID_GL_MAPSIZE_Y_PULLDOWN: case WID_GL_MAPSIZE_Y_PULLDOWN:
SetDParamMaxValue(0, MAX_MAP_SIZE); d = GetStringBoundingBox(GetString(STR_JUST_INT, GetParamMaxValue(MAX_MAP_SIZE)));
d = GetStringBoundingBox(STR_JUST_INT);
break; break;
case WID_GL_SNOW_COVERAGE_TEXT: case WID_GL_SNOW_COVERAGE_TEXT:
SetDParamMaxValue(0, MAX_TILE_HEIGHT); d = GetStringBoundingBox(GetString(STR_MAPGEN_SNOW_COVERAGE_TEXT, GetParamMaxValue(MAX_TILE_HEIGHT)));
d = GetStringBoundingBox(STR_MAPGEN_SNOW_COVERAGE_TEXT);
break; break;
case WID_GL_DESERT_COVERAGE_TEXT: case WID_GL_DESERT_COVERAGE_TEXT:
SetDParamMaxValue(0, MAX_TILE_HEIGHT); d = GetStringBoundingBox(GetString(STR_MAPGEN_DESERT_COVERAGE_TEXT, GetParamMaxValue(MAX_TILE_HEIGHT)));
d = GetStringBoundingBox(STR_MAPGEN_DESERT_COVERAGE_TEXT);
break; break;
case WID_GL_HEIGHTMAP_SIZE_TEXT: case WID_GL_HEIGHTMAP_SIZE_TEXT:
SetDParam(0, this->x); d = GetStringBoundingBox(GetString(STR_MAPGEN_HEIGHTMAP_SIZE, this->x, this->y));
SetDParam(1, this->y);
d = GetStringBoundingBox(STR_MAPGEN_HEIGHTMAP_SIZE);
break; break;
case WID_GL_TOWN_PULLDOWN: case WID_GL_TOWN_PULLDOWN:
strs = _num_towns; strs = _num_towns;
SetDParamMaxValue(0, CUSTOM_TOWN_MAX_NUMBER); d = GetStringBoundingBox(GetString(STR_NUM_CUSTOM_NUMBER, GetParamMaxValue(CUSTOM_TOWN_MAX_NUMBER)));
d = GetStringBoundingBox(STR_NUM_CUSTOM_NUMBER);
break; break;
case WID_GL_INDUSTRY_PULLDOWN: case WID_GL_INDUSTRY_PULLDOWN:
strs = _num_inds; strs = _num_inds;
SetDParamMaxValue(0, IndustryPool::MAX_SIZE); d = GetStringBoundingBox(GetString(STR_NUM_CUSTOM_NUMBER, GetParamMaxValue(IndustryPool::MAX_SIZE)));
d = GetStringBoundingBox(STR_NUM_CUSTOM_NUMBER);
break; break;
case WID_GL_TERRAIN_PULLDOWN: case WID_GL_TERRAIN_PULLDOWN:
strs = _elevations; strs = _elevations;
SetDParamMaxValue(0, MAX_MAP_HEIGHT_LIMIT); d = GetStringBoundingBox(GetString(STR_TERRAIN_TYPE_CUSTOM_VALUE, GetParamMaxValue(MAX_MAP_HEIGHT_LIMIT)));
d = GetStringBoundingBox(STR_TERRAIN_TYPE_CUSTOM_VALUE);
break; break;
case WID_GL_WATER_PULLDOWN: case WID_GL_WATER_PULLDOWN:
strs = _sea_lakes; strs = _sea_lakes;
SetDParamMaxValue(0, CUSTOM_SEA_LEVEL_MAX_PERCENTAGE); d = GetStringBoundingBox(GetString(STR_SEA_LEVEL_CUSTOM_PERCENTAGE, GetParamMaxValue(CUSTOM_SEA_LEVEL_MAX_PERCENTAGE)));
d = GetStringBoundingBox(STR_SEA_LEVEL_CUSTOM_PERCENTAGE);
break; break;
case WID_GL_RIVER_PULLDOWN: strs = _rivers; break; case WID_GL_RIVER_PULLDOWN: strs = _rivers; break;
@ -1110,7 +1099,7 @@ struct CreateScenarioWindow : public Window
void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override void UpdateWidgetSize(WidgetID widget, Dimension &size, [[maybe_unused]] const Dimension &padding, [[maybe_unused]] Dimension &fill, [[maybe_unused]] Dimension &resize) override
{ {
StringID str = STR_JUST_INT; std::string str;
switch (widget) { switch (widget) {
case WID_CS_TEMPERATE: case WID_CS_ARCTIC: case WID_CS_TEMPERATE: case WID_CS_ARCTIC:
case WID_CS_TROPICAL: case WID_CS_TOYLAND: case WID_CS_TROPICAL: case WID_CS_TOYLAND:
@ -1119,17 +1108,16 @@ struct CreateScenarioWindow : public Window
return; return;
case WID_CS_START_DATE_TEXT: case WID_CS_START_DATE_TEXT:
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1)); str = GetString(STR_JUST_DATE_LONG, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1));
str = STR_JUST_DATE_LONG;
break; break;
case WID_CS_MAPSIZE_X_PULLDOWN: case WID_CS_MAPSIZE_X_PULLDOWN:
case WID_CS_MAPSIZE_Y_PULLDOWN: case WID_CS_MAPSIZE_Y_PULLDOWN:
SetDParamMaxValue(0, MAX_MAP_SIZE); str = GetString(STR_JUST_INT, GetParamMaxValue(MAX_MAP_SIZE));
break; break;
case WID_CS_FLAT_LAND_HEIGHT_TEXT: case WID_CS_FLAT_LAND_HEIGHT_TEXT:
SetDParamMaxValue(0, MAX_TILE_HEIGHT); str = GetString(STR_JUST_INT, GetParamMaxValue(MAX_TILE_HEIGHT));
break; break;
default: default:
@ -1391,8 +1379,7 @@ struct GenerateProgressWindow : public Window {
{ {
switch (widget) { switch (widget) {
case WID_GP_PROGRESS_BAR: { case WID_GP_PROGRESS_BAR: {
SetDParamMaxValue(0, 100); size = GetStringBoundingBox(GetString(STR_GENERATION_PROGRESS, GetParamMaxValue(100)));
size = GetStringBoundingBox(STR_GENERATION_PROGRESS);
/* We need some spacing for the 'border' */ /* We need some spacing for the 'border' */
size.height += WidgetDimensions::scaled.frametext.Horizontal(); size.height += WidgetDimensions::scaled.frametext.Horizontal();
size.width += WidgetDimensions::scaled.frametext.Vertical(); size.width += WidgetDimensions::scaled.frametext.Vertical();
@ -1416,8 +1403,8 @@ struct GenerateProgressWindow : public Window {
DrawFrameRect(r, COLOUR_GREY, {FrameFlag::BorderOnly, FrameFlag::Lowered}); DrawFrameRect(r, COLOUR_GREY, {FrameFlag::BorderOnly, FrameFlag::Lowered});
Rect br = r.Shrink(WidgetDimensions::scaled.bevel); Rect br = r.Shrink(WidgetDimensions::scaled.bevel);
DrawFrameRect(br.WithWidth(br.Width() * GenWorldStatus::percent / 100, _current_text_dir == TD_RTL), COLOUR_MAUVE, {}); DrawFrameRect(br.WithWidth(br.Width() * GenWorldStatus::percent / 100, _current_text_dir == TD_RTL), COLOUR_MAUVE, {});
SetDParam(0, GenWorldStatus::percent); DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, GetCharacterHeight(FS_NORMAL)),
DrawString(br.left, br.right, CenterBounds(br.top, br.bottom, GetCharacterHeight(FS_NORMAL)), STR_GENERATION_PROGRESS, TC_FROMSTRING, SA_HOR_CENTER); GetString(STR_GENERATION_PROGRESS, GenWorldStatus::percent), TC_FROMSTRING, SA_HOR_CENTER);
break; break;
} }
@ -1426,9 +1413,8 @@ struct GenerateProgressWindow : public Window {
DrawString(r.left, r.right, r.top, GenWorldStatus::cls, TC_FROMSTRING, SA_HOR_CENTER); DrawString(r.left, r.right, r.top, GenWorldStatus::cls, TC_FROMSTRING, SA_HOR_CENTER);
/* And say where we are in that class */ /* And say where we are in that class */
SetDParam(0, GenWorldStatus::current); DrawString(r.left, r.right, r.top + GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal,
SetDParam(1, GenWorldStatus::total); GetString(STR_GENERATION_PROGRESS_NUM, GenWorldStatus::current, GenWorldStatus::total), TC_FROMSTRING, SA_HOR_CENTER);
DrawString(r.left, r.right, r.top + GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal, STR_GENERATION_PROGRESS_NUM, TC_FROMSTRING, SA_HOR_CENTER);
} }
} }
}; };