From 6d2f17b92f68ee97c9411d471625a256238fded1 Mon Sep 17 00:00:00 2001 From: Peter Nelson Date: Sat, 1 Mar 2025 11:08:46 +0000 Subject: [PATCH] Codechange: Use parameterised GetString() for various build windows. (#13676) --- src/airport_gui.cpp | 6 ++---- src/bridge_gui.cpp | 15 +++++++++------ src/industry_gui.cpp | 14 +++++--------- src/lang/english.txt | 2 +- src/station_gui.cpp | 3 +-- 5 files changed, 18 insertions(+), 22 deletions(-) diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index c0e5aebbbe..41fff1491e 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -432,15 +432,13 @@ public: /* only show the station (airport) noise, if the noise option is activated */ if (_settings_game.economy.station_noise_level) { /* show the noise of the selected airport */ - SetDParam(0, as->noise_level); - DrawString(r, STR_STATION_BUILD_NOISE); + DrawString(r, GetString(STR_STATION_BUILD_NOISE, as->noise_level)); r.top += GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal; } if (_settings_game.economy.infrastructure_maintenance) { Money monthly = _price[PR_INFRASTRUCTURE_AIRPORT] * as->maintenance_cost >> 3; - SetDParam(0, monthly * 12); - DrawString(r, TimerGameEconomy::UsingWallclockUnits() ? STR_STATION_BUILD_INFRASTRUCTURE_COST_PERIOD : STR_STATION_BUILD_INFRASTRUCTURE_COST_YEAR); + DrawString(r, GetString(TimerGameEconomy::UsingWallclockUnits() ? STR_STATION_BUILD_INFRASTRUCTURE_COST_PERIOD : STR_STATION_BUILD_INFRASTRUCTURE_COST_YEAR, monthly * 12)); r.top += GetCharacterHeight(FS_NORMAL) + WidgetDimensions::scaled.vsep_normal; } diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp index ca96b0760e..acfda71049 100644 --- a/src/bridge_gui.cpp +++ b/src/bridge_gui.cpp @@ -138,16 +138,19 @@ private: * @param bridge_data the bridge to get the StringID of. * @return the StringID. */ - StringID GetBridgeSelectString(const BuildBridgeData &bridge_data) const + std::string GetBridgeSelectString(const BuildBridgeData &bridge_data) const { - SetDParam(0, bridge_data.spec->material); - SetDParam(1, PackVelocity(bridge_data.spec->speed, static_cast(this->transport_type))); - SetDParam(2, bridge_data.cost); /* If the bridge has no meaningful speed limit, don't display it. */ if (bridge_data.spec->speed == UINT16_MAX) { - return _game_mode == GM_EDITOR ? STR_SELECT_BRIDGE_INFO_NAME : STR_SELECT_BRIDGE_INFO_NAME_COST; + return _game_mode == GM_EDITOR + ? GetString(STR_SELECT_BRIDGE_INFO_NAME, bridge_data.spec->material) + : GetString(STR_SELECT_BRIDGE_INFO_NAME_COST, bridge_data.spec->material, bridge_data.cost); } - return _game_mode == GM_EDITOR ? STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED : STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED_COST; + + uint64_t packed_velocity = PackVelocity(bridge_data.spec->speed, static_cast(this->transport_type)); + return _game_mode == GM_EDITOR + ? GetString(STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED, bridge_data.spec->material, packed_velocity) + : GetString(STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED_COST, bridge_data.spec->material, packed_velocity, bridge_data.cost); } public: diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index ccbf2d8d44..7dff9ccc62 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -381,9 +381,8 @@ class BuildIndustryWindow : public Window { firstcargo = j; continue; } - SetDParam(0, CargoSpec::Get(cargolist[j])->name); - SetDParamStr(1, cargo_suffix[j].text); - AppendStringInPlace(cargostring, STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION); + auto params = MakeParameters(CargoSpec::Get(cargolist[j])->name, cargo_suffix[j].text); + AppendStringWithArgsInPlace(cargostring, STR_INDUSTRY_VIEW_CARGO_LIST_EXTENSION, params); } if (numcargo > 0) { @@ -424,8 +423,7 @@ public: { switch (widget) { case WID_DPI_MATRIX_WIDGET: { - SetDParamMaxDigits(0, 4); - Dimension count = GetStringBoundingBox(STR_JUST_COMMA, FS_SMALL); + Dimension count = GetStringBoundingBox(GetString(STR_JUST_COMMA, GetParamMaxDigits(4)), FS_SMALL); Dimension d{}; for (const auto &indtype : this->list) { d = maxdim(d, GetStringBoundingBox(GetIndustrySpec(indtype)->name)); @@ -550,8 +548,7 @@ public: DrawString(tr, indsp->name, selected ? TC_WHITE : TC_ORANGE); GfxFillRect(icon, selected ? PC_WHITE : PC_BLACK); GfxFillRect(icon.Shrink(WidgetDimensions::scaled.bevel), indsp->map_colour); - SetDParam(0, Industry::GetIndustryTypeCount(type)); - DrawString(tr, STR_JUST_COMMA, TC_BLACK, SA_RIGHT, false, FS_SMALL); + DrawString(tr, GetString(STR_JUST_COMMA, Industry::GetIndustryTypeCount(type)), TC_BLACK, SA_RIGHT, false, FS_SMALL); text = text.Translate(0, this->resize.step_height); icon = icon.Translate(0, this->resize.step_height); @@ -570,8 +567,7 @@ public: const IndustrySpec *indsp = GetIndustrySpec(this->selected_type); if (_game_mode != GM_EDITOR) { - SetDParam(0, indsp->GetConstructionCost()); - DrawString(ir, STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST); + DrawString(ir, GetString(STR_FUND_INDUSTRY_INDUSTRY_BUILD_COST, indsp->GetConstructionCost())); ir.top += GetCharacterHeight(FS_NORMAL); } diff --git a/src/lang/english.txt b/src/lang/english.txt index d9cdda01e3..8101745c87 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -2904,7 +2904,7 @@ STR_SELECT_ROAD_BRIDGE_CAPTION :{WHITE}Select R STR_SELECT_BRIDGE_SELECTION_TOOLTIP :{BLACK}Bridge selection - click on your preferred bridge to build it STR_SELECT_BRIDGE_INFO_NAME :{GOLD}{STRING} STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED :{GOLD}{STRING},{} {VELOCITY} -STR_SELECT_BRIDGE_INFO_NAME_COST :{GOLD}{0:STRING},{} {WHITE}{2:CURRENCY_LONG} +STR_SELECT_BRIDGE_INFO_NAME_COST :{GOLD}{STRING},{} {WHITE}{CURRENCY_LONG} STR_SELECT_BRIDGE_INFO_NAME_MAX_SPEED_COST :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY_LONG} STR_BRIDGE_NAME_SUSPENSION_STEEL :Suspension, Steel STR_BRIDGE_NAME_GIRDER_STEEL :Girder, Steel diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 7ee1b60398..aac2c0546c 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -95,8 +95,7 @@ int DrawStationCoverageAreaText(const Rect &r, StationCoverageType sct, int rad, if (cargoes[i] >= (supplies ? 1U : 8U)) SetBit(cargo_mask, i); } } - SetDParam(0, cargo_mask); - return DrawStringMultiLine(r, supplies ? STR_STATION_BUILD_SUPPLIES_CARGO : STR_STATION_BUILD_ACCEPTS_CARGO); + return DrawStringMultiLine(r, GetString(supplies ? STR_STATION_BUILD_SUPPLIES_CARGO : STR_STATION_BUILD_ACCEPTS_CARGO, cargo_mask)); } /**