mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Use parameterised GetString() for remaining windows.
parent
4889e4d7f1
commit
edf9f597ec
|
@ -198,8 +198,7 @@ struct IConsoleWindow : Window
|
|||
int ypos = this->height - this->line_height - WidgetDimensions::scaled.hsep_normal;
|
||||
for (size_t line_index = IConsoleWindow::scroll; line_index < _iconsole_buffer.size(); line_index++) {
|
||||
const IConsoleLine &print = _iconsole_buffer[line_index];
|
||||
SetDParamStr(0, print.buffer);
|
||||
ypos = DrawStringMultiLine(WidgetDimensions::scaled.frametext.left, right, -this->line_height, ypos, STR_JUST_RAW_STRING, print.colour, SA_LEFT | SA_BOTTOM | SA_FORCE) - WidgetDimensions::scaled.hsep_normal;
|
||||
ypos = DrawStringMultiLine(WidgetDimensions::scaled.frametext.left, right, -this->line_height, ypos, GetString(STR_JUST_RAW_STRING, print.buffer), print.colour, SA_LEFT | SA_BOTTOM | SA_FORCE) - WidgetDimensions::scaled.hsep_normal;
|
||||
if (ypos < 0) break;
|
||||
}
|
||||
/* If the text is longer than the window, don't show the starting ']' */
|
||||
|
|
|
@ -118,8 +118,7 @@ struct SetDateWindow : Window {
|
|||
break;
|
||||
|
||||
case WID_SD_YEAR:
|
||||
SetDParamMaxValue(0, this->max_year);
|
||||
d = maxdim(d, GetStringBoundingBox(STR_JUST_INT));
|
||||
d = maxdim(d, GetStringBoundingBox(GetString(STR_JUST_INT, GetParamMaxValue(this->max_year.base()))));
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -143,14 +143,13 @@ struct EndGameWindow : EndGameHighScoreBaseWindow {
|
|||
/* We need to get performance from last year because the image is shown
|
||||
* at the start of the new year when these things have already been copied */
|
||||
if (this->background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/
|
||||
SetDParam(0, c->index);
|
||||
SetDParam(1, c->index);
|
||||
SetDParam(2, EndGameGetPerformanceTitleFromValue(c->old_economy[0].performance_history));
|
||||
DrawStringMultiLine(pt.x + ScaleSpriteTrad(15), pt.x + ScaleSpriteTrad(640) - ScaleSpriteTrad(25), pt.y + ScaleSpriteTrad(90), pt.y + ScaleSpriteTrad(160), STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS, TC_FROMSTRING, SA_CENTER);
|
||||
DrawStringMultiLine(pt.x + ScaleSpriteTrad(15), pt.x + ScaleSpriteTrad(640) - ScaleSpriteTrad(25), pt.y + ScaleSpriteTrad(90), pt.y + ScaleSpriteTrad(160),
|
||||
GetString(STR_HIGHSCORE_PRESIDENT_OF_COMPANY_ACHIEVES_STATUS, c->index, c->index, EndGameGetPerformanceTitleFromValue(c->old_economy[0].performance_history)),
|
||||
TC_FROMSTRING, SA_CENTER);
|
||||
} else {
|
||||
SetDParam(0, c->index);
|
||||
SetDParam(1, EndGameGetPerformanceTitleFromValue(c->old_economy[0].performance_history));
|
||||
DrawStringMultiLine(pt.x + ScaleSpriteTrad(36), pt.x + ScaleSpriteTrad(640), pt.y + ScaleSpriteTrad(140), pt.y + ScaleSpriteTrad(206), STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS, TC_FROMSTRING, SA_CENTER);
|
||||
DrawStringMultiLine(pt.x + ScaleSpriteTrad(36), pt.x + ScaleSpriteTrad(640), pt.y + ScaleSpriteTrad(140), pt.y + ScaleSpriteTrad(206),
|
||||
GetString(STR_HIGHSCORE_COMPANY_ACHIEVES_STATUS, c->index, EndGameGetPerformanceTitleFromValue(c->old_economy[0].performance_history)),
|
||||
TC_FROMSTRING, SA_CENTER);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -194,17 +193,16 @@ struct HighScoreWindow : EndGameHighScoreBaseWindow {
|
|||
|
||||
/* Draw Highscore peepz */
|
||||
for (uint8_t i = 0; i < ClampTo<uint8_t>(hs.size()); i++) {
|
||||
SetDParam(0, i + 1);
|
||||
DrawString(pt.x + ScaleSpriteTrad(40), pt.x + ScaleSpriteTrad(600), pt.y + ScaleSpriteTrad(140 + i * 55), STR_HIGHSCORE_POSITION);
|
||||
DrawString(pt.x + ScaleSpriteTrad(40), pt.x + ScaleSpriteTrad(600), pt.y + ScaleSpriteTrad(140 + i * 55),
|
||||
GetString(STR_HIGHSCORE_POSITION, i + 1));
|
||||
|
||||
if (!hs[i].name.empty()) {
|
||||
TextColour colour = (this->rank == i) ? TC_RED : TC_BLACK; // draw new highscore in red
|
||||
|
||||
SetDParamStr(0, hs[i].name);
|
||||
DrawString(pt.x + ScaleSpriteTrad(71), pt.x + ScaleSpriteTrad(569), pt.y + ScaleSpriteTrad(140 + i * 55), STR_JUST_BIG_RAW_STRING, colour);
|
||||
SetDParam(0, hs[i].title);
|
||||
SetDParam(1, hs[i].score);
|
||||
DrawString(pt.x + ScaleSpriteTrad(71), pt.x + ScaleSpriteTrad(569), pt.y + ScaleSpriteTrad(140) + GetCharacterHeight(FS_LARGE) + ScaleSpriteTrad(i * 55), STR_HIGHSCORE_STATS, colour);
|
||||
DrawString(pt.x + ScaleSpriteTrad(71), pt.x + ScaleSpriteTrad(569), pt.y + ScaleSpriteTrad(140 + i * 55),
|
||||
GetString(STR_JUST_BIG_RAW_STRING, hs[i].name), colour);
|
||||
DrawString(pt.x + ScaleSpriteTrad(71), pt.x + ScaleSpriteTrad(569), pt.y + ScaleSpriteTrad(140) + GetCharacterHeight(FS_LARGE) + ScaleSpriteTrad(i * 55),
|
||||
GetString(STR_HIGHSCORE_STATS, hs[i].title, hs[i].score), colour);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -281,13 +281,11 @@ struct SelectGameWindow : public Window {
|
|||
{
|
||||
switch (widget) {
|
||||
case WID_SGI_BASESET:
|
||||
SetDParam(0, _missing_extra_graphics);
|
||||
DrawStringMultiLine(r, STR_INTRO_BASESET, TC_FROMSTRING, SA_CENTER);
|
||||
DrawStringMultiLine(r, GetString(STR_INTRO_BASESET, _missing_extra_graphics), TC_FROMSTRING, SA_CENTER);
|
||||
break;
|
||||
|
||||
case WID_SGI_TRANSLATION:
|
||||
SetDParam(0, _current_language->missing);
|
||||
DrawStringMultiLine(r, STR_INTRO_TRANSLATION, TC_FROMSTRING, SA_CENTER);
|
||||
DrawStringMultiLine(r, GetString(STR_INTRO_TRANSLATION, _current_language->missing), TC_FROMSTRING, SA_CENTER);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -391,8 +391,8 @@ bool LinkGraphOverlay::ShowTooltip(Point pt, TooltipCloseCondition close_cond)
|
|||
/* Add information about the travel time if known. */
|
||||
const auto time = link.time ? back_time ? ((link.time + back_time) / 2) : link.time : back_time;
|
||||
if (time > 0) {
|
||||
SetDParam(0, time);
|
||||
AppendStringInPlace(tooltip_extension, STR_LINKGRAPH_STATS_TOOLTIP_TIME_EXTENSION);
|
||||
auto params = MakeParameters(time);
|
||||
AppendStringWithArgsInPlace(tooltip_extension, STR_LINKGRAPH_STATS_TOOLTIP_TIME_EXTENSION, params);
|
||||
}
|
||||
GuiShowTooltips(this->window,
|
||||
GetEncodedString(TimerGameEconomy::UsingWallclockUnits() ? STR_LINKGRAPH_STATS_TOOLTIP_MINUTE : STR_LINKGRAPH_STATS_TOOLTIP_MONTH,
|
||||
|
|
|
@ -85,8 +85,7 @@ public:
|
|||
}
|
||||
|
||||
if (!this->cargo_acceptance.empty()) {
|
||||
SetDParamStr(0, this->cargo_acceptance);
|
||||
DrawStringMultiLine(ir, STR_JUST_RAW_STRING, TC_FROMSTRING, SA_CENTER);
|
||||
DrawStringMultiLine(ir, GetString(STR_JUST_RAW_STRING, this->cargo_acceptance), TC_FROMSTRING, SA_CENTER);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -105,8 +104,7 @@ public:
|
|||
if (!this->cargo_acceptance.empty()) {
|
||||
uint width = GetStringBoundingBox(this->cargo_acceptance).width + WidgetDimensions::scaled.frametext.Horizontal();
|
||||
size.width = std::max(size.width, std::min(static_cast<uint>(ScaleGUITrad(300)), width));
|
||||
SetDParamStr(0, cargo_acceptance);
|
||||
size.height += GetStringHeight(STR_JUST_RAW_STRING, size.width - WidgetDimensions::scaled.frametext.Horizontal());
|
||||
size.height += GetStringHeight(GetString(STR_JUST_RAW_STRING, this->cargo_acceptance), size.width - WidgetDimensions::scaled.frametext.Horizontal());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,23 +162,26 @@ public:
|
|||
}
|
||||
|
||||
/* Cost to clear/revenue when cleared */
|
||||
StringID str = STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A;
|
||||
Company *c = Company::GetIfValid(_local_company);
|
||||
if (c != nullptr) {
|
||||
assert(_current_company == _local_company);
|
||||
CommandCost costclear = Command<CMD_LANDSCAPE_CLEAR>::Do(DoCommandFlag::QueryCost, tile);
|
||||
if (costclear.Succeeded()) {
|
||||
Money cost = costclear.GetCost();
|
||||
StringID str;
|
||||
if (cost < 0) {
|
||||
cost = -cost; // Negate negative cost to a positive revenue
|
||||
str = STR_LAND_AREA_INFORMATION_REVENUE_WHEN_CLEARED;
|
||||
} else {
|
||||
str = STR_LAND_AREA_INFORMATION_COST_TO_CLEAR;
|
||||
}
|
||||
SetDParam(0, cost);
|
||||
this->landinfo_data.push_back(GetString(str, cost));
|
||||
} else {
|
||||
this->landinfo_data.push_back(GetString(STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A));
|
||||
}
|
||||
} else {
|
||||
this->landinfo_data.push_back(GetString(STR_LAND_AREA_INFORMATION_COST_TO_CLEAR_N_A));
|
||||
}
|
||||
this->landinfo_data.push_back(GetString(str));
|
||||
|
||||
/* Location */
|
||||
this->landinfo_data.push_back(GetString(STR_LAND_AREA_INFORMATION_LANDINFO_COORDS, TileX(tile), TileY(tile), GetTileZ(tile)));
|
||||
|
|
|
@ -362,29 +362,30 @@ void NetworkHandlePauseChange(PauseModes prev_mode, PauseMode changed_mode)
|
|||
bool paused = _pause_mode.Any();
|
||||
if (!paused && !changed) return;
|
||||
|
||||
StringID str;
|
||||
std::string str;
|
||||
if (!changed) {
|
||||
int i = -1;
|
||||
|
||||
if (_pause_mode.Test(PauseMode::Normal)) SetDParam(++i, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL);
|
||||
if (_pause_mode.Test(PauseMode::Join)) SetDParam(++i, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS);
|
||||
if (_pause_mode.Test(PauseMode::GameScript)) SetDParam(++i, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT);
|
||||
if (_pause_mode.Test(PauseMode::ActiveClients)) SetDParam(++i, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS);
|
||||
if (_pause_mode.Test(PauseMode::LinkGraph)) SetDParam(++i, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH);
|
||||
str = STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 + i;
|
||||
std::array<StringParameter, 5> params{};
|
||||
auto it = params.begin();
|
||||
if (_pause_mode.Test(PauseMode::Normal)) *it++ = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL;
|
||||
if (_pause_mode.Test(PauseMode::Join)) *it++ = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS;
|
||||
if (_pause_mode.Test(PauseMode::GameScript)) *it++ = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT;
|
||||
if (_pause_mode.Test(PauseMode::ActiveClients)) *it++ = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS;
|
||||
if (_pause_mode.Test(PauseMode::LinkGraph)) *it++ = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH;
|
||||
str = GetStringWithArgs(STR_NETWORK_SERVER_MESSAGE_GAME_STILL_PAUSED_1 + std::distance(params.begin(), it) - 1, {params.begin(), it});
|
||||
} else {
|
||||
StringID reason;
|
||||
switch (changed_mode) {
|
||||
case PauseMode::Normal: SetDParam(0, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL); break;
|
||||
case PauseMode::Join: SetDParam(0, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS); break;
|
||||
case PauseMode::GameScript: SetDParam(0, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT); break;
|
||||
case PauseMode::ActiveClients: SetDParam(0, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS); break;
|
||||
case PauseMode::LinkGraph: SetDParam(0, STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH); break;
|
||||
case PauseMode::Normal: reason = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_MANUAL; break;
|
||||
case PauseMode::Join: reason = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_CONNECTING_CLIENTS; break;
|
||||
case PauseMode::GameScript: reason = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_GAME_SCRIPT; break;
|
||||
case PauseMode::ActiveClients: reason = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_NOT_ENOUGH_PLAYERS; break;
|
||||
case PauseMode::LinkGraph: reason = STR_NETWORK_SERVER_MESSAGE_GAME_REASON_LINK_GRAPH; break;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
str = paused ? STR_NETWORK_SERVER_MESSAGE_GAME_PAUSED : STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED;
|
||||
str = GetString(paused ? STR_NETWORK_SERVER_MESSAGE_GAME_PAUSED : STR_NETWORK_SERVER_MESSAGE_GAME_UNPAUSED, reason);
|
||||
}
|
||||
|
||||
NetworkTextMessage(NETWORK_ACTION_SERVER_MESSAGE, CC_DEFAULT, false, "", GetString(str));
|
||||
NetworkTextMessage(NETWORK_ACTION_SERVER_MESSAGE, CC_DEFAULT, false, "", str);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -3325,28 +3325,30 @@ std::string GenerateDefaultSaveName()
|
|||
}
|
||||
}
|
||||
|
||||
SetDParam(0, cid);
|
||||
std::array<StringParameter, 4> params{};
|
||||
auto it = params.begin();
|
||||
*it++ = cid;
|
||||
|
||||
/* We show the current game time differently depending on the timekeeping units used by this game. */
|
||||
if (TimerGameEconomy::UsingWallclockUnits()) {
|
||||
/* Insert time played. */
|
||||
const auto play_time = TimerGameTick::counter / Ticks::TICKS_PER_SECOND;
|
||||
SetDParam(1, STR_SAVEGAME_DURATION_REALTIME);
|
||||
SetDParam(2, play_time / 60 / 60);
|
||||
SetDParam(3, (play_time / 60) % 60);
|
||||
*it++ = STR_SAVEGAME_DURATION_REALTIME;
|
||||
*it++ = play_time / 60 / 60;
|
||||
*it++ = (play_time / 60) % 60;
|
||||
} else {
|
||||
/* Insert current date */
|
||||
switch (_settings_client.gui.date_format_in_default_names) {
|
||||
case 0: SetDParam(1, STR_JUST_DATE_LONG); break;
|
||||
case 1: SetDParam(1, STR_JUST_DATE_TINY); break;
|
||||
case 2: SetDParam(1, STR_JUST_DATE_ISO); break;
|
||||
case 0: *it++ = STR_JUST_DATE_LONG; break;
|
||||
case 1: *it++ = STR_JUST_DATE_TINY; break;
|
||||
case 2: *it++ = STR_JUST_DATE_ISO; break;
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
SetDParam(2, TimerGameEconomy::date);
|
||||
*it++ = TimerGameEconomy::date;
|
||||
}
|
||||
|
||||
/* Get the correct string (special string for when there's not company) */
|
||||
std::string filename = GetString(!Company::IsValidID(cid) ? STR_SAVEGAME_NAME_SPECTATOR : STR_SAVEGAME_NAME_DEFAULT);
|
||||
std::string filename = GetStringWithArgs(!Company::IsValidID(cid) ? STR_SAVEGAME_NAME_SPECTATOR : STR_SAVEGAME_NAME_DEFAULT, {params.begin(), it});
|
||||
SanitizeFilename(filename);
|
||||
return filename;
|
||||
}
|
||||
|
|
|
@ -217,8 +217,7 @@ struct SignListWindow : Window, SignList {
|
|||
|
||||
if (si->owner != OWNER_NONE) DrawCompanyIcon(si->owner, icon_left, tr.top + sprite_offset_y);
|
||||
|
||||
SetDParam(0, si->index);
|
||||
DrawString(tr.left, tr.right, tr.top + text_offset_y, STR_SIGN_NAME, TC_YELLOW);
|
||||
DrawString(tr.left, tr.right, tr.top + text_offset_y, GetString(STR_SIGN_NAME, si->index), TC_YELLOW);
|
||||
tr.top += this->resize.step_height;
|
||||
}
|
||||
break;
|
||||
|
@ -269,8 +268,7 @@ struct SignListWindow : Window, SignList {
|
|||
}
|
||||
|
||||
case WID_SIL_CAPTION:
|
||||
SetDParamMaxValue(0, Sign::GetPoolSize(), 3);
|
||||
size = GetStringBoundingBox(STR_SIGN_LIST_CAPTION);
|
||||
size = GetStringBoundingBox(GetString(STR_SIGN_LIST_CAPTION, GetParamMaxValue(Sign::GetPoolSize(), 3)));
|
||||
size.height += padding.height;
|
||||
size.width += padding.width;
|
||||
break;
|
||||
|
|
|
@ -2386,8 +2386,7 @@ struct ScenarioEditorToolbarWindow : Window {
|
|||
break;
|
||||
|
||||
case WID_TE_DATE:
|
||||
SetDParam(0, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1));
|
||||
size = GetStringBoundingBox(STR_JUST_DATE_LONG);
|
||||
size = GetStringBoundingBox(GetString(STR_JUST_DATE_LONG, TimerGameCalendar::ConvertYMDToDate(CalendarTime::MAX_YEAR, 0, 1)));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue