1
0
Fork 0

Codechange: Use parameterised GetString() for smallmap window. (#13684)

pull/13685/head
Peter Nelson 2025-03-01 18:24:14 +00:00 committed by GitHub
parent 1bd841b896
commit b92172e3d2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 23 additions and 21 deletions

View File

@ -997,8 +997,7 @@ protected:
y + GetCharacterHeight(FS_SMALL) > dpi->top &&
y < dpi->top + dpi->height) {
/* And draw it. */
SetDParam(0, t->index);
DrawString(x, x + t->cache.sign.width_small, y, STR_SMALLMAP_TOWN);
DrawString(x, x + t->cache.sign.width_small, y, GetString(STR_SMALLMAP_TOWN, t->index));
}
}
}
@ -1529,14 +1528,11 @@ public:
uint height = 0;
uint num_columns = 1;
for (const LegendAndColour *tbl = _legend_table[i]; !tbl->end; ++tbl) {
StringID str;
std::string str;
if (i == SMT_INDUSTRY) {
SetDParam(0, tbl->legend);
SetDParam(1, IndustryPool::MAX_SIZE);
str = STR_SMALLMAP_INDUSTRY;
str = GetString(STR_SMALLMAP_INDUSTRY, tbl->legend, IndustryPool::MAX_SIZE);
} else if (i == SMT_LINKSTATS) {
SetDParam(0, tbl->legend);
str = STR_SMALLMAP_LINKSTATS;
str = GetString(STR_SMALLMAP_LINKSTATS, tbl->legend);
} else if (i == SMT_OWNER) {
if (tbl->company != CompanyID::Invalid()) {
if (!Company::IsValidID(tbl->company)) {
@ -1546,10 +1542,9 @@ public:
return;
}
/* Non-fixed legend entries for the owner view. */
SetDParam(0, tbl->company);
str = STR_SMALLMAP_COMPANY;
str = GetString(STR_SMALLMAP_COMPANY, tbl->company);
} else {
str = tbl->legend;
str = GetString(tbl->legend);
}
} else {
if (tbl->col_break) {
@ -1558,8 +1553,11 @@ public:
num_columns++;
}
height++;
str = tbl->legend;
if (i == SMT_CONTOUR) SetDParam(0, tbl->height * TILE_HEIGHT_STEP);
if (i == SMT_CONTOUR) {
str = GetString(tbl->legend, tbl->height * TILE_HEIGHT_STEP);
} else {
str = GetString(tbl->legend);
}
}
min_width = std::max(GetStringBoundingBox(str).width, min_width);
}
@ -1644,30 +1642,31 @@ public:
uint8_t legend_colour = tbl->colour;
std::array<StringParameter, 2> params{};
switch (this->map_type) {
case SMT_INDUSTRY:
/* Industry name must be formatted, since it's not in tiny font in the specs.
* So, draw with a parameter and use the STR_SMALLMAP_INDUSTRY string, which is tiny font */
SetDParam(0, tbl->legend);
SetDParam(1, Industry::GetIndustryTypeCount(tbl->type));
params[0] = tbl->legend;
params[1] = Industry::GetIndustryTypeCount(tbl->type);
if (tbl->show_on_map && tbl->type == _smallmap_industry_highlight) {
legend_colour = _smallmap_industry_highlight_state ? PC_WHITE : PC_BLACK;
}
[[fallthrough]];
case SMT_LINKSTATS:
SetDParam(0, tbl->legend);
params[0] = tbl->legend;
[[fallthrough]];
case SMT_OWNER:
if (this->map_type != SMT_OWNER || tbl->company != CompanyID::Invalid()) {
if (this->map_type == SMT_OWNER) SetDParam(0, tbl->company);
if (this->map_type == SMT_OWNER) params[0] = tbl->company;
if (!tbl->show_on_map) {
/* Simply draw the string, not the black border of the legend colour.
* This will enforce the idea of the disabled item */
DrawString(text, string, TC_GREY);
DrawString(text, GetStringWithArgs(string, params), TC_GREY);
} else {
DrawString(text, string, TC_BLACK);
DrawString(text, GetStringWithArgs(string, params), TC_BLACK);
GfxFillRect(icon, PC_BLACK); // Outer border of the legend colour
}
break;
@ -1675,10 +1674,13 @@ public:
[[fallthrough]];
default:
if (this->map_type == SMT_CONTOUR) SetDParam(0, tbl->height * TILE_HEIGHT_STEP);
/* Anything that is not an industry or a company is using normal process */
GfxFillRect(icon, PC_BLACK);
DrawString(text, tbl->legend);
if (this->map_type == SMT_CONTOUR) {
DrawString(text, GetString(tbl->legend, tbl->height * TILE_HEIGHT_STEP));
} else {
DrawString(text, tbl->legend);
}
break;
}
GfxFillRect(icon.Shrink(WidgetDimensions::scaled.bevel), legend_colour); // Legend colour