Migrate many set_format_arg calls to Formatter (#11744)

This commit is contained in:
Michael Steenbeek 2020-05-14 02:29:39 +02:00 committed by GitHub
parent f0bd05cf6d
commit 620fb5e5c4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 122 additions and 81 deletions

View File

@ -27,7 +27,8 @@ static void graph_draw_months_uint8_t(
if (history[i] != 255 && yearOver32 % 4 == 0) if (history[i] != 255 && yearOver32 % 4 == 0)
{ {
// Draw month text // Draw month text
set_format_arg(0, uint32_t, DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]); auto ft = Formatter::Common();
ft.Add<uint32_t>(DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]);
gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, x, y - 10, COLOUR_BLACK, gCommonFormatArgs); gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, x, y - 10, COLOUR_BLACK, gCommonFormatArgs);
// Draw month mark // Draw month mark

View File

@ -648,7 +648,8 @@ namespace OpenRCT2::Ui::Windows
window_custom_set_pressed_tab(w); window_custom_set_pressed_tab(w);
const auto& desc = GetInfo(w).Desc; const auto& desc = GetInfo(w).Desc;
set_format_arg(0, void*, desc.Title.c_str()); auto ft = Formatter::Common();
ft.Add<void*>(desc.Title.c_str());
auto& info = GetInfo(w); auto& info = GetInfo(w);
size_t scrollIndex = 0; size_t scrollIndex = 0;

View File

@ -208,11 +208,13 @@ static void window_about_openrct2_common_paint(rct_window* w, rct_drawpixelinfo*
ScreenCoordsXY aboutOpenRCT2Coords(w->windowPos.x + aboutOpenRCT2.left + 45, y); ScreenCoordsXY aboutOpenRCT2Coords(w->windowPos.x + aboutOpenRCT2.left + 45, y);
ScreenCoordsXY aboutRCT2Coords(w->windowPos.x + aboutRCT2.left + 45, y); ScreenCoordsXY aboutRCT2Coords(w->windowPos.x + aboutRCT2.left + 45, y);
set_format_arg(0, rct_string_id, STR_TITLE_SEQUENCE_OPENRCT2); auto ft = Formatter::Common();
ft.Add<rct_string_id>(STR_TITLE_SEQUENCE_OPENRCT2);
gfx_draw_string_centred_wrapped( gfx_draw_string_centred_wrapped(
dpi, gCommonFormatArgs, aboutOpenRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); dpi, gCommonFormatArgs, aboutOpenRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE);
set_format_arg(0, rct_string_id, STR_TITLE_SEQUENCE_RCT2); ft = Formatter::Common();
ft.Add<rct_string_id>(STR_TITLE_SEQUENCE_RCT2);
gfx_draw_string_centred_wrapped( gfx_draw_string_centred_wrapped(
dpi, gCommonFormatArgs, aboutRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); dpi, gCommonFormatArgs, aboutRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE);
} }

View File

@ -1132,6 +1132,8 @@ static void window_cheats_invalidate(rct_window* w)
// Set title // Set title
w->widgets[WIDX_TITLE].text = window_cheats_page_titles[w->page]; w->widgets[WIDX_TITLE].text = window_cheats_page_titles[w->page];
auto ft = Formatter::Common();
switch (w->page) switch (w->page)
{ {
case WINDOW_CHEATS_PAGE_MONEY: case WINDOW_CHEATS_PAGE_MONEY:
@ -1152,7 +1154,7 @@ static void window_cheats_invalidate(rct_window* w)
} }
break; break;
case WINDOW_CHEATS_PAGE_GUESTS: case WINDOW_CHEATS_PAGE_GUESTS:
set_format_arg(0, int32_t, 10000); ft.Add<int32_t>(MONEY(1000, 00));
widget_set_checkbox_value(w, WIDX_GUEST_IGNORE_RIDE_INTENSITY, gCheatsIgnoreRideIntensity); widget_set_checkbox_value(w, WIDX_GUEST_IGNORE_RIDE_INTENSITY, gCheatsIgnoreRideIntensity);
widget_set_checkbox_value(w, WIDX_DISABLE_VANDALISM, gCheatsDisableVandalism); widget_set_checkbox_value(w, WIDX_DISABLE_VANDALISM, gCheatsDisableVandalism);
widget_set_checkbox_value(w, WIDX_DISABLE_LITTERING, gCheatsDisableLittering); widget_set_checkbox_value(w, WIDX_DISABLE_LITTERING, gCheatsDisableLittering);
@ -1166,7 +1168,7 @@ static void window_cheats_invalidate(rct_window* w)
widget_set_checkbox_value(w, WIDX_DISABLE_PLANT_AGING, gCheatsDisablePlantAging); widget_set_checkbox_value(w, WIDX_DISABLE_PLANT_AGING, gCheatsDisablePlantAging);
break; break;
case WINDOW_CHEATS_PAGE_RIDES: case WINDOW_CHEATS_PAGE_RIDES:
set_format_arg(0, uint16_t, 255); ft.Add<uint16_t>(255);
widget_set_checkbox_value(w, WIDX_FAST_LIFT_HILL, gCheatsFastLiftHill); widget_set_checkbox_value(w, WIDX_FAST_LIFT_HILL, gCheatsFastLiftHill);
widget_set_checkbox_value(w, WIDX_DISABLE_BRAKES_FAILURE, gCheatsDisableBrakesFailure); widget_set_checkbox_value(w, WIDX_DISABLE_BRAKES_FAILURE, gCheatsDisableBrakesFailure);
widget_set_checkbox_value(w, WIDX_DISABLE_ALL_BREAKDOWNS, gCheatsDisableAllBreakdowns); widget_set_checkbox_value(w, WIDX_DISABLE_ALL_BREAKDOWNS, gCheatsDisableAllBreakdowns);
@ -1197,7 +1199,8 @@ static void window_cheats_paint(rct_window* w, rct_drawpixelinfo* dpi)
if (w->page == WINDOW_CHEATS_PAGE_MONEY) if (w->page == WINDOW_CHEATS_PAGE_MONEY)
{ {
uint8_t colour = w->colours[1]; uint8_t colour = w->colours[1];
set_format_arg(0, money32, _moneySpinnerValue); auto ft = Formatter::Common();
ft.Add<money32>(_moneySpinnerValue);
if (widget_is_disabled(w, WIDX_MONEY_SPINNER)) if (widget_is_disabled(w, WIDX_MONEY_SPINNER))
{ {
colour |= COLOUR_FLAG_INSET; colour |= COLOUR_FLAG_INSET;

View File

@ -233,7 +233,8 @@ static void custom_currency_window_text_input([[maybe_unused]] struct rct_window
static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi) static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi)
{ {
set_format_arg(0, int32_t, 100); auto ft = Formatter::Common();
ft.Add<int32_t>(100);
window_draw_widgets(w, dpi); window_draw_widgets(w, dpi);
@ -242,7 +243,8 @@ static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi)
gfx_draw_string_left(dpi, STR_RATE, nullptr, w->colours[1], screenCoords.x, screenCoords.y); gfx_draw_string_left(dpi, STR_RATE, nullptr, w->colours[1], screenCoords.x, screenCoords.y);
int32_t baseExchange = CurrencyDescriptors[CURRENCY_POUNDS].rate; int32_t baseExchange = CurrencyDescriptors[CURRENCY_POUNDS].rate;
set_format_arg(0, int32_t, baseExchange); ft = Formatter::Common();
ft.Add<int32_t>(baseExchange);
gfx_draw_string_left( gfx_draw_string_left(
dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords.x + 200, screenCoords.y); dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords.x + 200, screenCoords.y);

View File

@ -220,7 +220,9 @@ static void window_ride_demolish_paint(rct_window* w, rct_drawpixelinfo* dpi)
{ {
auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_DEMOLISH_RIDE_ID : STR_DEMOLISH_RIDE_ID_MONEY; auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_DEMOLISH_RIDE_ID : STR_DEMOLISH_RIDE_ID_MONEY;
auto nameArgLen = ride->FormatNameTo(gCommonFormatArgs); auto nameArgLen = ride->FormatNameTo(gCommonFormatArgs);
set_format_arg(nameArgLen, money32, _demolishRideCost); auto ft = Formatter::Common();
ft.Increment(nameArgLen);
ft.Add<money32>(_demolishRideCost);
ScreenCoordsXY stringCoords(w->windowPos.x + WW / 2, w->windowPos.y + (WH / 2) - 3); ScreenCoordsXY stringCoords(w->windowPos.x + WW / 2, w->windowPos.y + (WH / 2) - 3);
gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, stringCoords, WW - 4, stringId, COLOUR_BLACK); gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, stringCoords, WW - 4, stringId, COLOUR_BLACK);
@ -236,7 +238,9 @@ static void window_ride_refurbish_paint(rct_window* w, rct_drawpixelinfo* dpi)
{ {
auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_REFURBISH_RIDE_ID_NO_MONEY : STR_REFURBISH_RIDE_ID_MONEY; auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_REFURBISH_RIDE_ID_NO_MONEY : STR_REFURBISH_RIDE_ID_MONEY;
auto nameArgLen = ride->FormatNameTo(gCommonFormatArgs); auto nameArgLen = ride->FormatNameTo(gCommonFormatArgs);
set_format_arg(nameArgLen, money32, _demolishRideCost / 2); auto ft = Formatter::Common();
ft.Increment(nameArgLen);
ft.Add<money32>(_demolishRideCost / 2);
ScreenCoordsXY stringCoords(w->windowPos.x + WW / 2, w->windowPos.y + (WH / 2) - 3); ScreenCoordsXY stringCoords(w->windowPos.x + WW / 2, w->windowPos.y + (WH / 2) - 3);
gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, stringCoords, WW - 4, stringId, COLOUR_BLACK); gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, stringCoords, WW - 4, stringId, COLOUR_BLACK);

View File

@ -830,6 +830,7 @@ static rct_string_id window_editor_inventions_list_prepare_name(const ResearchIt
{ {
rct_string_id drawString; rct_string_id drawString;
rct_string_id stringId = researchItem->GetName(); rct_string_id stringId = researchItem->GetName();
auto ft = Formatter::Common();
if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE
&& !RideTypeDescriptors[researchItem->baseRideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY)) && !RideTypeDescriptors[researchItem->baseRideType].HasFlag(RIDE_TYPE_FLAG_LIST_VEHICLES_SEPARATELY))
@ -837,13 +838,13 @@ static rct_string_id window_editor_inventions_list_prepare_name(const ResearchIt
drawString = withGap ? STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME_DRAG : STR_WINDOW_COLOUR_2_STRINGID_STRINGID; drawString = withGap ? STR_INVENTIONS_LIST_RIDE_AND_VEHICLE_NAME_DRAG : STR_WINDOW_COLOUR_2_STRINGID_STRINGID;
rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, get_ride_entry(researchItem->entryIndex)) rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, get_ride_entry(researchItem->entryIndex))
.name; .name;
set_format_arg(0, rct_string_id, rideGroupName); ft.Add<rct_string_id>(rideGroupName);
set_format_arg(2, rct_string_id, stringId); ft.Add<rct_string_id>(stringId);
} }
else else
{ {
drawString = STR_WINDOW_COLOUR_2_STRINGID; drawString = STR_WINDOW_COLOUR_2_STRINGID;
set_format_arg(0, rct_string_id, stringId); ft.Add<rct_string_id>(stringId);
} }
return drawString; return drawString;

View File

@ -785,7 +785,8 @@ static void window_editor_object_selection_tooltip(rct_window* w, rct_widgetinde
{ {
if (widgetIndex >= WIDX_TAB_1 && static_cast<size_t>(widgetIndex) < WIDX_TAB_1 + std::size(ObjectSelectionPages)) if (widgetIndex >= WIDX_TAB_1 && static_cast<size_t>(widgetIndex) < WIDX_TAB_1 + std::size(ObjectSelectionPages))
{ {
set_format_arg(0, rct_string_id, ObjectSelectionPages[(widgetIndex - WIDX_TAB_1)].Caption); auto ft = Formatter::Common();
ft.Add<rct_string_id>(ObjectSelectionPages[(widgetIndex - WIDX_TAB_1)].Caption);
} }
} }
@ -823,7 +824,8 @@ static void window_editor_object_selection_invalidate(rct_window* w)
w->pressed_widgets &= ~(1 << WIDX_ADVANCED); w->pressed_widgets &= ~(1 << WIDX_ADVANCED);
// Set window title and buttons // Set window title and buttons
set_format_arg(0, rct_string_id, ObjectSelectionPages[w->selected_tab].Caption); auto ft = Formatter::Common();
ft.Add<rct_string_id>(ObjectSelectionPages[w->selected_tab].Caption);
if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER)
{ {
w->widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE; w->widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE;

View File

@ -958,8 +958,9 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str(); auto parkName = park.Name.c_str();
set_format_arg(0, rct_string_id, STR_STRING); auto ft = Formatter::Common();
set_format_arg(2, const char*, parkName); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(parkName);
gfx_draw_string_left_clipped(dpi, STR_WINDOW_PARK_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width); gfx_draw_string_left_clipped(dpi, STR_WINDOW_PARK_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width);
} }
@ -968,9 +969,9 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
y = w->windowPos.y + w->widgets[WIDX_SCENARIO_NAME].top; y = w->windowPos.y + w->widgets[WIDX_SCENARIO_NAME].top;
width = w->widgets[WIDX_SCENARIO_NAME].left - 16; width = w->widgets[WIDX_SCENARIO_NAME].left - 16;
set_format_arg(0, rct_string_id, STR_STRING); auto ft = Formatter::Common();
set_format_arg(2, const char*, gS6Info.name); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(gS6Info.name);
gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width); gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width);
// Scenario details label // Scenario details label
@ -983,9 +984,9 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
y = w->windowPos.y + w->widgets[WIDX_DETAILS].top + 10; y = w->windowPos.y + w->widgets[WIDX_DETAILS].top + 10;
width = w->widgets[WIDX_DETAILS].left - 4; width = w->widgets[WIDX_DETAILS].left - 4;
set_format_arg(0, rct_string_id, STR_STRING); ft = Formatter::Common();
set_format_arg(2, const char*, gS6Info.details); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(gS6Info.details);
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_BLACK_STRING, COLOUR_BLACK); gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_BLACK_STRING, COLOUR_BLACK);
// Scenario category label // Scenario category label

View File

@ -746,8 +746,9 @@ static void window_finances_summary_scrollpaint(rct_window* w, rct_drawpixelinfo
continue; continue;
// Month heading // Month heading
set_format_arg(0, rct_string_id, STR_FINANCES_SUMMARY_MONTH_HEADING); auto ft = Formatter::Common();
set_format_arg(2, uint16_t, monthyear); ft.Add<rct_string_id>(STR_FINANCES_SUMMARY_MONTH_HEADING);
ft.Add<uint16_t>(monthyear);
draw_string_right_underline( draw_string_right_underline(
dpi, monthyear == currentMonthYear ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING, gCommonFormatArgs, dpi, monthyear == currentMonthYear ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING, gCommonFormatArgs,
COLOUR_BLACK, x + EXPENDITURE_COLUMN_WIDTH, y); COLOUR_BLACK, x + EXPENDITURE_COLUMN_WIDTH, y);
@ -1187,6 +1188,7 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp
continue; continue;
noCampaignsActive = 0; noCampaignsActive = 0;
auto ft = Formatter::Common();
// Set special parameters // Set special parameters
switch (i) switch (i)
@ -1201,19 +1203,19 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp
} }
else else
{ {
set_format_arg(0, rct_string_id, STR_NONE); ft.Add<rct_string_id>(STR_NONE);
} }
break; break;
} }
case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE: case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE:
set_format_arg(0, rct_string_id, ShopItems[campaign->ShopItemType].Naming.Plural); ft.Add<rct_string_id>(ShopItems[campaign->ShopItemType].Naming.Plural);
break; break;
default: default:
{ {
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str(); auto parkName = park.Name.c_str();
set_format_arg(0, rct_string_id, STR_STRING); ft.Add<rct_string_id>(STR_STRING);
set_format_arg(2, const char*, parkName); ft.Add<const char*>(parkName);
} }
} }

View File

@ -213,22 +213,23 @@ static void window_game_bottom_toolbar_mouseup(rct_window* w, rct_widgetindex wi
static void window_game_bottom_toolbar_tooltip(rct_window* w, rct_widgetindex widgetIndex, rct_string_id* stringId) static void window_game_bottom_toolbar_tooltip(rct_window* w, rct_widgetindex widgetIndex, rct_string_id* stringId)
{ {
int32_t month, day; int32_t month, day;
auto ft = Formatter::Common();
switch (widgetIndex) switch (widgetIndex)
{ {
case WIDX_MONEY: case WIDX_MONEY:
set_format_arg(0, int32_t, gCurrentProfit); ft.Add<int32_t>(gCurrentProfit);
set_format_arg(4, int32_t, gParkValue); ft.Add<int32_t>(gParkValue);
break; break;
case WIDX_PARK_RATING: case WIDX_PARK_RATING:
set_format_arg(0, int16_t, gParkRating); ft.Add<int16_t>(gParkRating);
break; break;
case WIDX_DATE: case WIDX_DATE:
month = date_get_month(gDateMonthsElapsed); month = date_get_month(gDateMonthsElapsed);
day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF; day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF;
set_format_arg(0, rct_string_id, DateDayNames[day]); ft.Add<rct_string_id>(DateDayNames[day]);
set_format_arg(2, rct_string_id, DateGameMonthNames[month]); ft.Add<rct_string_id>(DateGameMonthNames[month]);
break; break;
} }
} }
@ -424,7 +425,8 @@ static void window_game_bottom_toolbar_draw_left_panel(rct_drawpixelinfo* dpi, r
int32_t x = w->windowPos.x + (widget.left + widget.right) / 2; int32_t x = w->windowPos.x + (widget.left + widget.right) / 2;
int32_t y = w->windowPos.y + (widget.top + widget.bottom) / 2 - (line_height == 10 ? 5 : 6); int32_t y = w->windowPos.y + (widget.top + widget.bottom) / 2 - (line_height == 10 ? 5 : 6);
set_format_arg(0, money32, gCash); auto ft = Formatter::Common();
ft.Add<money32>(gCash);
gfx_draw_string_centred( gfx_draw_string_centred(
dpi, (gCash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH), x, y, dpi, (gCash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH), x, y,
(gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_MONEY (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_MONEY
@ -514,9 +516,10 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi,
int32_t day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF; int32_t day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF;
rct_string_id stringId = DateFormatStringFormatIds[gConfigGeneral.date_format]; rct_string_id stringId = DateFormatStringFormatIds[gConfigGeneral.date_format];
set_format_arg(0, rct_string_id, DateDayNames[day]); auto ft = Formatter::Common();
set_format_arg(2, int16_t, month); ft.Add<rct_string_id>(DateDayNames[day]);
set_format_arg(4, int16_t, year); ft.Add<int16_t>(month);
ft.Add<int16_t>(year);
gfx_draw_string_centred( gfx_draw_string_centred(
dpi, stringId, x, y, dpi, stringId, x, y,
(gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_DATE (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_DATE
@ -538,7 +541,8 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi,
temperature = climate_celsius_to_fahrenheit(temperature); temperature = climate_celsius_to_fahrenheit(temperature);
format = STR_FAHRENHEIT_VALUE; format = STR_FAHRENHEIT_VALUE;
} }
set_format_arg(0, int16_t, temperature); ft = Formatter::Common();
ft.Add<int16_t>(temperature);
gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, x, y + 6); gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, x, y + 6);
x += 30; x += 30;

View File

@ -396,7 +396,8 @@ static void window_land_paint(rct_window* w, rct_drawpixelinfo* dpi)
if (price != 0) if (price != 0)
{ {
set_format_arg(0, money32, price); auto ft = Formatter::Common();
ft.Add<money32>(price);
gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, COLOUR_BLACK, gCommonFormatArgs); gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, COLOUR_BLACK, gCommonFormatArgs);
} }
} }

View File

@ -970,8 +970,9 @@ static void window_new_ride_paint_ride_information(
// Ride name and description // Ride name and description
rideNaming = get_ride_naming(item.Type, rideEntry); rideNaming = get_ride_naming(item.Type, rideEntry);
set_format_arg(0, rct_string_id, rideNaming.name); auto ft = Formatter::Common();
set_format_arg(2, rct_string_id, rideNaming.description); ft.Add<rct_string_id>(rideNaming.name);
ft.Add<rct_string_id>(rideNaming.description);
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, COLOUR_BLACK); gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, COLOUR_BLACK);
char availabilityString[AVAILABILITY_STRING_SIZE]; char availabilityString[AVAILABILITY_STRING_SIZE];

View File

@ -588,8 +588,9 @@ static void window_park_prepare_window_title_text()
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str(); auto parkName = park.Name.c_str();
set_format_arg(0, rct_string_id, STR_STRING); auto ft = Formatter::Common();
set_format_arg(2, const char*, parkName); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(parkName);
} }
#pragma region Entrance page #pragma region Entrance page
@ -778,8 +779,9 @@ static void window_park_entrance_invalidate(rct_window* w)
auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark();
auto parkName = park.Name.c_str(); auto parkName = park.Name.c_str();
set_format_arg(0, rct_string_id, STR_STRING); auto ft = Formatter::Common();
set_format_arg(2, const char*, parkName); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(parkName);
} }
window_park_entrance_widgets[WIDX_OPEN_OR_CLOSE].image = park_is_open() ? SPR_OPEN : SPR_CLOSED; window_park_entrance_widgets[WIDX_OPEN_OR_CLOSE].image = park_is_open() ? SPR_OPEN : SPR_CLOSED;
window_park_entrance_widgets[WIDX_CLOSE_LIGHT].image = SPR_G2_RCT1_CLOSE_BUTTON_0 + !park_is_open() * 2 window_park_entrance_widgets[WIDX_CLOSE_LIGHT].image = SPR_G2_RCT1_CLOSE_BUTTON_0 + !park_is_open() * 2
@ -870,7 +872,8 @@ static void window_park_entrance_paint(rct_window* w, rct_drawpixelinfo* dpi)
} }
// Draw park closed / open label // Draw park closed / open label
set_format_arg(0, rct_string_id, park_is_open() ? STR_PARK_OPEN : STR_PARK_CLOSED); auto ft = Formatter::Common();
ft.Add<rct_string_id>(park_is_open() ? STR_PARK_OPEN : STR_PARK_CLOSED);
labelWidget = &window_park_entrance_widgets[WIDX_STATUS]; labelWidget = &window_park_entrance_widgets[WIDX_STATUS];
gfx_draw_string_centred_clipped( gfx_draw_string_centred_clipped(
@ -1593,8 +1596,9 @@ static void window_park_objective_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Scenario description // Scenario description
x = w->windowPos.x + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].left + 4; x = w->windowPos.x + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].left + 4;
y = w->windowPos.y + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].top + 7; y = w->windowPos.y + window_park_objective_widgets[WIDX_PAGE_BACKGROUND].top + 7;
set_format_arg(0, rct_string_id, STR_STRING); auto ft = Formatter::Common();
set_format_arg(2, const char*, gScenarioDetails.c_str()); ft.Add<rct_string_id>(STR_STRING);
ft.Add<const char*>(gScenarioDetails.c_str());
y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 222, STR_BLACK_STRING, COLOUR_BLACK); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 222, STR_BLACK_STRING, COLOUR_BLACK);
y += 5; y += 5;
@ -1603,9 +1607,10 @@ static void window_park_objective_paint(rct_window* w, rct_drawpixelinfo* dpi)
y += LIST_ROW_HEIGHT; y += LIST_ROW_HEIGHT;
// Objective // Objective
set_format_arg(0, uint16_t, gScenarioObjectiveNumGuests); ft = Formatter::Common();
set_format_arg(2, int16_t, date_get_total_months(MONTH_OCTOBER, gScenarioObjectiveYear)); ft.Add<uint16_t>(gScenarioObjectiveNumGuests);
set_format_arg(4, money32, gScenarioObjectiveCurrency); ft.Add<int16_t>(date_get_total_months(MONTH_OCTOBER, gScenarioObjectiveYear));
ft.Add<money32>(gScenarioObjectiveCurrency);
y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 221, ObjectiveNames[gScenarioObjectiveType], COLOUR_BLACK); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 221, ObjectiveNames[gScenarioObjectiveType], COLOUR_BLACK);
y += 5; y += 5;

View File

@ -355,7 +355,8 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp
gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK); gfx_draw_string_left_wrapped(dpi, &stringId, x, y, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK);
y += 15; y += 15;
set_format_arg(0, rct_string_id, STR_RESEARCH_STAGE_UNKNOWN); auto ft = Formatter::Common();
ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y);
} }
else else
@ -379,17 +380,17 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp
y += 15; y += 15;
// Expected // Expected
set_format_arg(0, rct_string_id, STR_RESEARCH_STAGE_UNKNOWN); auto ft = Formatter::Common();
if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH) if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH && gResearchExpectedDay != 255)
{ {
uint16_t expectedDay = gResearchExpectedDay; // TODO: Should probably use game date format setting
if (expectedDay != 255) ft.Add<rct_string_id>(STR_RESEARCH_EXPECTED_FORMAT);
{ ft.Add<rct_string_id>(DateDayNames[gResearchExpectedDay]);
// TODO: Should probably use game date format setting ft.Add<rct_string_id>(DateGameMonthNames[gResearchExpectedMonth]);
set_format_arg(0, rct_string_id, STR_RESEARCH_EXPECTED_FORMAT); }
set_format_arg(2, rct_string_id, DateDayNames[expectedDay]); else
set_format_arg(4, rct_string_id, DateGameMonthNames[gResearchExpectedMonth]); {
} ft.Add<rct_string_id>(STR_RESEARCH_STAGE_UNKNOWN);
} }
gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y);
} }

View File

@ -2270,7 +2270,8 @@ static void window_ride_construction_invalidate(rct_window* w)
stringId = STR_BOOSTER; stringId = STR_BOOSTER;
} }
} }
set_format_arg(0, uint16_t, stringId); auto ft = Formatter::Common();
ft.Add<uint16_t>(stringId);
if (_currentlyShowingBrakeOrBoosterSpeed) if (_currentlyShowingBrakeOrBoosterSpeed)
{ {
@ -2279,7 +2280,7 @@ static void window_ride_construction_invalidate(rct_window* w)
{ {
brakeSpeed2 = get_booster_speed(ride->type, brakeSpeed2); brakeSpeed2 = get_booster_speed(ride->type, brakeSpeed2);
} }
set_format_arg(2, uint16_t, brakeSpeed2); ft.Add<uint16_t>(brakeSpeed2);
} }
window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].text = RideConstructionSeatAngleRotationStrings window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].text = RideConstructionSeatAngleRotationStrings

View File

@ -921,6 +921,8 @@ void window_scenery_scrollmouseover(rct_window* w, int32_t scrollIndex, const Sc
*/ */
void window_scenery_tooltip(rct_window* w, rct_widgetindex widgetIndex, rct_string_id* stringId) void window_scenery_tooltip(rct_window* w, rct_widgetindex widgetIndex, rct_string_id* stringId)
{ {
auto ft = Formatter::Common();
switch (widgetIndex) switch (widgetIndex)
{ {
case WIDX_SCENERY_TAB_1: case WIDX_SCENERY_TAB_1:
@ -942,10 +944,10 @@ void window_scenery_tooltip(rct_window* w, rct_widgetindex widgetIndex, rct_stri
case WIDX_SCENERY_TAB_17: case WIDX_SCENERY_TAB_17:
case WIDX_SCENERY_TAB_18: case WIDX_SCENERY_TAB_18:
case WIDX_SCENERY_TAB_19: case WIDX_SCENERY_TAB_19:
set_format_arg(0, rct_string_id, get_scenery_group_entry(widgetIndex - WIDX_SCENERY_TAB_1)->name); ft.Add<rct_string_id>(get_scenery_group_entry(widgetIndex - WIDX_SCENERY_TAB_1)->name);
break; break;
case WIDX_SCENERY_TAB_20: case WIDX_SCENERY_TAB_20:
set_format_arg(0, rct_string_id, STR_MISCELLANEOUS); ft.Add<rct_string_id>(STR_MISCELLANEOUS);
break; break;
} }
} }
@ -1171,18 +1173,19 @@ void window_scenery_paint(rct_window* w, rct_drawpixelinfo* dpi)
price = gSceneryPlaceCost; price = gSceneryPlaceCost;
} }
set_format_arg(0, uint32_t, price);
if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) if (!(gParkFlags & PARK_FLAGS_NO_MONEY))
{ {
auto ft = Formatter::Common();
ft.Add<uint32_t>(price);
// -14 // -14
gfx_draw_string_right( gfx_draw_string_right(
dpi, STR_COST_LABEL, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + w->width - 0x1A, dpi, STR_COST_LABEL, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + w->width - 0x1A,
w->windowPos.y + w->height - 13); w->windowPos.y + w->height - 13);
} }
set_format_arg( auto ft = Formatter::Common();
0, rct_string_id, sceneryEntry != nullptr ? sceneryEntry->name : static_cast<rct_string_id>(STR_UNKNOWN_OBJECT_TYPE)); ft.Add<rct_string_id>(sceneryEntry != nullptr ? sceneryEntry->name : static_cast<rct_string_id>(STR_UNKNOWN_OBJECT_TYPE));
gfx_draw_string_left_clipped( gfx_draw_string_left_clipped(
dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + 3, w->windowPos.y + w->height - 13, dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + 3, w->windowPos.y + w->height - 13,
w->width - 19); w->width - 19);

View File

@ -196,7 +196,8 @@ static void window_server_list_mouseup(rct_window* w, rct_widgetindex widgetInde
} }
else else
{ {
set_format_arg(0, void*, server.version.c_str()); auto ft = Formatter::Common();
ft.Add<void*>(server.version.c_str());
context_show_error(STR_UNABLE_TO_CONNECT_TO_SERVER, STR_MULTIPLAYER_INCORRECT_SOFTWARE_VERSION); context_show_error(STR_UNABLE_TO_CONNECT_TO_SERVER, STR_MULTIPLAYER_INCORRECT_SOFTWARE_VERSION);
} }
} }
@ -234,7 +235,8 @@ static void window_server_list_dropdown(rct_window* w, rct_widgetindex widgetInd
} }
else else
{ {
set_format_arg(0, void*, server.version.c_str()); auto ft = Formatter::Common();
ft.Add<void*>(server.version.c_str());
context_show_error(STR_UNABLE_TO_CONNECT_TO_SERVER, STR_MULTIPLAYER_INCORRECT_SOFTWARE_VERSION); context_show_error(STR_UNABLE_TO_CONNECT_TO_SERVER, STR_MULTIPLAYER_INCORRECT_SOFTWARE_VERSION);
} }
break; break;
@ -374,7 +376,8 @@ static void window_server_list_textinput(rct_window* w, rct_widgetindex widgetIn
static void window_server_list_invalidate(rct_window* w) static void window_server_list_invalidate(rct_window* w)
{ {
set_format_arg(0, char*, _version.c_str()); auto ft = Formatter::Common();
ft.Add<char*>(_version.c_str());
window_server_list_widgets[WIDX_BACKGROUND].right = w->width - 1; window_server_list_widgets[WIDX_BACKGROUND].right = w->width - 1;
window_server_list_widgets[WIDX_BACKGROUND].bottom = w->height - 1; window_server_list_widgets[WIDX_BACKGROUND].bottom = w->height - 1;
window_server_list_widgets[WIDX_TITLE].right = w->width - 2; window_server_list_widgets[WIDX_TITLE].right = w->width - 2;

View File

@ -419,7 +419,8 @@ static void window_text_input_invalidate(rct_window* w)
window_text_input_widgets[WIDX_BACKGROUND].bottom = height - 1; window_text_input_widgets[WIDX_BACKGROUND].bottom = height - 1;
// Set window title argument // Set window title argument
set_format_arg(0, const char*, _title.c_str()); auto ft = Formatter::Common();
ft.Add<const char*>(_title.c_str());
} }
static void draw_ime_composition(rct_drawpixelinfo* dpi, int cursorX, int cursorY) static void draw_ime_composition(rct_drawpixelinfo* dpi, int cursorX, int cursorY)

View File

@ -1125,7 +1125,6 @@ static void window_title_editor_add_park_callback(int32_t result, const utf8* pa
{ {
free(_renameSavePath); free(_renameSavePath);
_renameSavePath = _strdup(filename); _renameSavePath = _strdup(filename);
// set_format_arg(0, intptr_t, static_cast<intptr_t>(&_renameSavePath));
rct_window* w = window_find_by_class(WC_TITLE_EDITOR); rct_window* w = window_find_by_class(WC_TITLE_EDITOR);
window_text_input_open( window_text_input_open(
w, WIDX_TITLE_EDITOR_RENAME_SAVE, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING, w, WIDX_TITLE_EDITOR_RENAME_SAVE, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING,

View File

@ -144,7 +144,8 @@ void window_tooltip_open(rct_window* widgetWindow, rct_widgetindex widgetIndex,
if (widget->flags & WIDGET_FLAGS::TOOLTIP_IS_STRING) if (widget->flags & WIDGET_FLAGS::TOOLTIP_IS_STRING)
{ {
stringId = STR_STRING_TOOLTIP; stringId = STR_STRING_TOOLTIP;
set_format_arg(0, const char*, widget->sztooltip); auto ft = Formatter::Common();
ft.Add<const char*>(widget->sztooltip);
} }
if (stringId == STR_NONE) if (stringId == STR_NONE)

View File

@ -509,7 +509,8 @@ static int32_t window_track_place_get_base_z(const CoordsXY& loc)
*/ */
static void window_track_place_paint(rct_window* w, rct_drawpixelinfo* dpi) static void window_track_place_paint(rct_window* w, rct_drawpixelinfo* dpi)
{ {
set_format_arg(0, char*, _trackDesign->name.c_str()); auto ft = Formatter::Common();
ft.Add<char*>(_trackDesign->name.c_str());
window_draw_widgets(w, dpi); window_draw_widgets(w, dpi);
// Draw mini tile preview // Draw mini tile preview

View File

@ -2998,8 +2998,9 @@ std::pair<RideMeasurement*, rct_string_id> ride_get_measurement(Ride* ride)
} }
else else
{ {
set_format_arg(0, rct_string_id, RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.vehicle].singular); auto ft = Formatter::Common();
set_format_arg(2, rct_string_id, RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.station].singular); ft.Add<rct_string_id>(RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.vehicle].singular);
ft.Add<rct_string_id>(RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.station].singular);
return { measurement.get(), STR_DATA_LOGGING_WILL_START_WHEN_NEXT_LEAVES }; return { measurement.get(), STR_DATA_LOGGING_WILL_START_WHEN_NEXT_LEAVES };
} }
} }