From 620fb5e5c43c1c1e579daddfa208e66ca7bda2a3 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek Date: Thu, 14 May 2020 02:29:39 +0200 Subject: [PATCH] Migrate many set_format_arg calls to Formatter (#11744) --- src/openrct2-ui/interface/Graph.cpp | 3 ++- src/openrct2-ui/scripting/CustomWindow.cpp | 3 ++- src/openrct2-ui/windows/About.cpp | 6 +++-- src/openrct2-ui/windows/Cheats.cpp | 9 ++++--- src/openrct2-ui/windows/CustomCurrency.cpp | 6 +++-- .../windows/DemolishRidePrompt.cpp | 8 ++++-- .../windows/EditorInventionsList.cpp | 7 +++--- .../windows/EditorObjectSelection.cpp | 6 +++-- .../windows/EditorObjectiveOptions.cpp | 17 +++++++------ src/openrct2-ui/windows/Finances.cpp | 14 ++++++----- src/openrct2-ui/windows/GameBottomToolbar.cpp | 24 ++++++++++-------- src/openrct2-ui/windows/Land.cpp | 3 ++- src/openrct2-ui/windows/NewRide.cpp | 5 ++-- src/openrct2-ui/windows/Park.cpp | 25 +++++++++++-------- src/openrct2-ui/windows/Research.cpp | 23 +++++++++-------- src/openrct2-ui/windows/RideConstruction.cpp | 5 ++-- src/openrct2-ui/windows/Scenery.cpp | 15 ++++++----- src/openrct2-ui/windows/ServerList.cpp | 9 ++++--- src/openrct2-ui/windows/TextInput.cpp | 3 ++- src/openrct2-ui/windows/TitleEditor.cpp | 1 - src/openrct2-ui/windows/Tooltip.cpp | 3 ++- src/openrct2-ui/windows/TrackDesignPlace.cpp | 3 ++- src/openrct2/ride/Ride.cpp | 5 ++-- 23 files changed, 122 insertions(+), 81 deletions(-) diff --git a/src/openrct2-ui/interface/Graph.cpp b/src/openrct2-ui/interface/Graph.cpp index 6ed0dbd484..3ea7deefca 100644 --- a/src/openrct2-ui/interface/Graph.cpp +++ b/src/openrct2-ui/interface/Graph.cpp @@ -27,7 +27,8 @@ static void graph_draw_months_uint8_t( if (history[i] != 255 && yearOver32 % 4 == 0) { // Draw month text - set_format_arg(0, uint32_t, DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]); + auto ft = Formatter::Common(); + ft.Add(DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]); gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, x, y - 10, COLOUR_BLACK, gCommonFormatArgs); // Draw month mark diff --git a/src/openrct2-ui/scripting/CustomWindow.cpp b/src/openrct2-ui/scripting/CustomWindow.cpp index d6353357dd..84feda7735 100644 --- a/src/openrct2-ui/scripting/CustomWindow.cpp +++ b/src/openrct2-ui/scripting/CustomWindow.cpp @@ -648,7 +648,8 @@ namespace OpenRCT2::Ui::Windows window_custom_set_pressed_tab(w); const auto& desc = GetInfo(w).Desc; - set_format_arg(0, void*, desc.Title.c_str()); + auto ft = Formatter::Common(); + ft.Add(desc.Title.c_str()); auto& info = GetInfo(w); size_t scrollIndex = 0; diff --git a/src/openrct2-ui/windows/About.cpp b/src/openrct2-ui/windows/About.cpp index ce24cd6399..184187ff1b 100644 --- a/src/openrct2-ui/windows/About.cpp +++ b/src/openrct2-ui/windows/About.cpp @@ -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 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(STR_TITLE_SEQUENCE_OPENRCT2); gfx_draw_string_centred_wrapped( 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(STR_TITLE_SEQUENCE_RCT2); gfx_draw_string_centred_wrapped( dpi, gCommonFormatArgs, aboutRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); } diff --git a/src/openrct2-ui/windows/Cheats.cpp b/src/openrct2-ui/windows/Cheats.cpp index 6a7a251e50..a9f99c30c1 100644 --- a/src/openrct2-ui/windows/Cheats.cpp +++ b/src/openrct2-ui/windows/Cheats.cpp @@ -1132,6 +1132,8 @@ static void window_cheats_invalidate(rct_window* w) // Set title w->widgets[WIDX_TITLE].text = window_cheats_page_titles[w->page]; + auto ft = Formatter::Common(); + switch (w->page) { case WINDOW_CHEATS_PAGE_MONEY: @@ -1152,7 +1154,7 @@ static void window_cheats_invalidate(rct_window* w) } break; case WINDOW_CHEATS_PAGE_GUESTS: - set_format_arg(0, int32_t, 10000); + ft.Add(MONEY(1000, 00)); 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_LITTERING, gCheatsDisableLittering); @@ -1166,7 +1168,7 @@ static void window_cheats_invalidate(rct_window* w) widget_set_checkbox_value(w, WIDX_DISABLE_PLANT_AGING, gCheatsDisablePlantAging); break; case WINDOW_CHEATS_PAGE_RIDES: - set_format_arg(0, uint16_t, 255); + ft.Add(255); 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_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) { uint8_t colour = w->colours[1]; - set_format_arg(0, money32, _moneySpinnerValue); + auto ft = Formatter::Common(); + ft.Add(_moneySpinnerValue); if (widget_is_disabled(w, WIDX_MONEY_SPINNER)) { colour |= COLOUR_FLAG_INSET; diff --git a/src/openrct2-ui/windows/CustomCurrency.cpp b/src/openrct2-ui/windows/CustomCurrency.cpp index 5b920a45a6..e30b0df127 100644 --- a/src/openrct2-ui/windows/CustomCurrency.cpp +++ b/src/openrct2-ui/windows/CustomCurrency.cpp @@ -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) { - set_format_arg(0, int32_t, 100); + auto ft = Formatter::Common(); + ft.Add(100); 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); int32_t baseExchange = CurrencyDescriptors[CURRENCY_POUNDS].rate; - set_format_arg(0, int32_t, baseExchange); + ft = Formatter::Common(); + ft.Add(baseExchange); gfx_draw_string_left( dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords.x + 200, screenCoords.y); diff --git a/src/openrct2-ui/windows/DemolishRidePrompt.cpp b/src/openrct2-ui/windows/DemolishRidePrompt.cpp index 0c61af8058..01892e3698 100644 --- a/src/openrct2-ui/windows/DemolishRidePrompt.cpp +++ b/src/openrct2-ui/windows/DemolishRidePrompt.cpp @@ -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 nameArgLen = ride->FormatNameTo(gCommonFormatArgs); - set_format_arg(nameArgLen, money32, _demolishRideCost); + auto ft = Formatter::Common(); + ft.Increment(nameArgLen); + ft.Add(_demolishRideCost); 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); @@ -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 nameArgLen = ride->FormatNameTo(gCommonFormatArgs); - set_format_arg(nameArgLen, money32, _demolishRideCost / 2); + auto ft = Formatter::Common(); + ft.Increment(nameArgLen); + ft.Add(_demolishRideCost / 2); 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); diff --git a/src/openrct2-ui/windows/EditorInventionsList.cpp b/src/openrct2-ui/windows/EditorInventionsList.cpp index d31c59648f..7f070d2994 100644 --- a/src/openrct2-ui/windows/EditorInventionsList.cpp +++ b/src/openrct2-ui/windows/EditorInventionsList.cpp @@ -830,6 +830,7 @@ static rct_string_id window_editor_inventions_list_prepare_name(const ResearchIt { rct_string_id drawString; rct_string_id stringId = researchItem->GetName(); + auto ft = Formatter::Common(); if (researchItem->type == RESEARCH_ENTRY_TYPE_RIDE && !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; rct_string_id rideGroupName = get_ride_naming(researchItem->baseRideType, get_ride_entry(researchItem->entryIndex)) .name; - set_format_arg(0, rct_string_id, rideGroupName); - set_format_arg(2, rct_string_id, stringId); + ft.Add(rideGroupName); + ft.Add(stringId); } else { drawString = STR_WINDOW_COLOUR_2_STRINGID; - set_format_arg(0, rct_string_id, stringId); + ft.Add(stringId); } return drawString; diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index 4e7a375922..72e775d926 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -785,7 +785,8 @@ static void window_editor_object_selection_tooltip(rct_window* w, rct_widgetinde { if (widgetIndex >= WIDX_TAB_1 && static_cast(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(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); // Set window title and buttons - set_format_arg(0, rct_string_id, ObjectSelectionPages[w->selected_tab].Caption); + auto ft = Formatter::Common(); + ft.Add(ObjectSelectionPages[w->selected_tab].Caption); if (gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) { w->widgets[WIDX_TITLE].text = STR_TRACK_DESIGNS_MANAGER_SELECT_RIDE_TYPE; diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index e1319fbe2e..4f16a4c0e8 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -958,8 +958,9 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto parkName = park.Name.c_str(); - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, parkName); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(parkName); 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; width = w->widgets[WIDX_SCENARIO_NAME].left - 16; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, gS6Info.name); - + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(gS6Info.name); gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, x, y, width); // 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; width = w->widgets[WIDX_DETAILS].left - 4; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, gS6Info.details); - + ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(gS6Info.details); gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_BLACK_STRING, COLOUR_BLACK); // Scenario category label diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index 5fcd610e37..ece82adae9 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -746,8 +746,9 @@ static void window_finances_summary_scrollpaint(rct_window* w, rct_drawpixelinfo continue; // Month heading - set_format_arg(0, rct_string_id, STR_FINANCES_SUMMARY_MONTH_HEADING); - set_format_arg(2, uint16_t, monthyear); + auto ft = Formatter::Common(); + ft.Add(STR_FINANCES_SUMMARY_MONTH_HEADING); + ft.Add(monthyear); draw_string_right_underline( dpi, monthyear == currentMonthYear ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, x + EXPENDITURE_COLUMN_WIDTH, y); @@ -1187,6 +1188,7 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp continue; noCampaignsActive = 0; + auto ft = Formatter::Common(); // Set special parameters switch (i) @@ -1201,19 +1203,19 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp } else { - set_format_arg(0, rct_string_id, STR_NONE); + ft.Add(STR_NONE); } break; } case ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE: - set_format_arg(0, rct_string_id, ShopItems[campaign->ShopItemType].Naming.Plural); + ft.Add(ShopItems[campaign->ShopItemType].Naming.Plural); break; default: { auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto parkName = park.Name.c_str(); - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, parkName); + ft.Add(STR_STRING); + ft.Add(parkName); } } diff --git a/src/openrct2-ui/windows/GameBottomToolbar.cpp b/src/openrct2-ui/windows/GameBottomToolbar.cpp index 0c1dade832..dd1fef3035 100644 --- a/src/openrct2-ui/windows/GameBottomToolbar.cpp +++ b/src/openrct2-ui/windows/GameBottomToolbar.cpp @@ -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) { int32_t month, day; + auto ft = Formatter::Common(); switch (widgetIndex) { case WIDX_MONEY: - set_format_arg(0, int32_t, gCurrentProfit); - set_format_arg(4, int32_t, gParkValue); + ft.Add(gCurrentProfit); + ft.Add(gParkValue); break; case WIDX_PARK_RATING: - set_format_arg(0, int16_t, gParkRating); + ft.Add(gParkRating); break; case WIDX_DATE: month = date_get_month(gDateMonthsElapsed); day = ((gDateMonthTicks * days_in_month[month]) >> 16) & 0xFF; - set_format_arg(0, rct_string_id, DateDayNames[day]); - set_format_arg(2, rct_string_id, DateGameMonthNames[month]); + ft.Add(DateDayNames[day]); + ft.Add(DateGameMonthNames[month]); 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 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(gCash); gfx_draw_string_centred( 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 @@ -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; rct_string_id stringId = DateFormatStringFormatIds[gConfigGeneral.date_format]; - set_format_arg(0, rct_string_id, DateDayNames[day]); - set_format_arg(2, int16_t, month); - set_format_arg(4, int16_t, year); + auto ft = Formatter::Common(); + ft.Add(DateDayNames[day]); + ft.Add(month); + ft.Add(year); gfx_draw_string_centred( dpi, stringId, x, y, (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); format = STR_FAHRENHEIT_VALUE; } - set_format_arg(0, int16_t, temperature); + ft = Formatter::Common(); + ft.Add(temperature); gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, x, y + 6); x += 30; diff --git a/src/openrct2-ui/windows/Land.cpp b/src/openrct2-ui/windows/Land.cpp index c7deea4d8b..f681d91dcb 100644 --- a/src/openrct2-ui/windows/Land.cpp +++ b/src/openrct2-ui/windows/Land.cpp @@ -396,7 +396,8 @@ static void window_land_paint(rct_window* w, rct_drawpixelinfo* dpi) if (price != 0) { - set_format_arg(0, money32, price); + auto ft = Formatter::Common(); + ft.Add(price); gfx_draw_string_centred(dpi, STR_COST_AMOUNT, x, y, COLOUR_BLACK, gCommonFormatArgs); } } diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 31a62a491c..af89f29947 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -970,8 +970,9 @@ static void window_new_ride_paint_ride_information( // Ride name and description rideNaming = get_ride_naming(item.Type, rideEntry); - set_format_arg(0, rct_string_id, rideNaming.name); - set_format_arg(2, rct_string_id, rideNaming.description); + auto ft = Formatter::Common(); + ft.Add(rideNaming.name); + ft.Add(rideNaming.description); gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, width, STR_NEW_RIDE_NAME_AND_DESCRIPTION, COLOUR_BLACK); char availabilityString[AVAILABILITY_STRING_SIZE]; diff --git a/src/openrct2-ui/windows/Park.cpp b/src/openrct2-ui/windows/Park.cpp index 391b55db08..c348417dfd 100644 --- a/src/openrct2-ui/windows/Park.cpp +++ b/src/openrct2-ui/windows/Park.cpp @@ -588,8 +588,9 @@ static void window_park_prepare_window_title_text() auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto parkName = park.Name.c_str(); - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, parkName); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(parkName); } #pragma region Entrance page @@ -778,8 +779,9 @@ static void window_park_entrance_invalidate(rct_window* w) auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto parkName = park.Name.c_str(); - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, parkName); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(parkName); } 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 @@ -870,7 +872,8 @@ static void window_park_entrance_paint(rct_window* w, rct_drawpixelinfo* dpi) } // 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(park_is_open() ? STR_PARK_OPEN : STR_PARK_CLOSED); labelWidget = &window_park_entrance_widgets[WIDX_STATUS]; gfx_draw_string_centred_clipped( @@ -1593,8 +1596,9 @@ static void window_park_objective_paint(rct_window* w, rct_drawpixelinfo* dpi) // Scenario description 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; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, gScenarioDetails.c_str()); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(gScenarioDetails.c_str()); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 222, STR_BLACK_STRING, COLOUR_BLACK); y += 5; @@ -1603,9 +1607,10 @@ static void window_park_objective_paint(rct_window* w, rct_drawpixelinfo* dpi) y += LIST_ROW_HEIGHT; // Objective - set_format_arg(0, uint16_t, gScenarioObjectiveNumGuests); - set_format_arg(2, int16_t, date_get_total_months(MONTH_OCTOBER, gScenarioObjectiveYear)); - set_format_arg(4, money32, gScenarioObjectiveCurrency); + ft = Formatter::Common(); + ft.Add(gScenarioObjectiveNumGuests); + ft.Add(date_get_total_months(MONTH_OCTOBER, gScenarioObjectiveYear)); + ft.Add(gScenarioObjectiveCurrency); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 221, ObjectiveNames[gScenarioObjectiveType], COLOUR_BLACK); y += 5; diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index d6d1a29886..267a6ac421 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -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); y += 15; - set_format_arg(0, rct_string_id, STR_RESEARCH_STAGE_UNKNOWN); + auto ft = Formatter::Common(); + ft.Add(STR_RESEARCH_STAGE_UNKNOWN); gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); } else @@ -379,17 +380,17 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp y += 15; // Expected - set_format_arg(0, rct_string_id, STR_RESEARCH_STAGE_UNKNOWN); - if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH) + auto ft = Formatter::Common(); + if (gResearchProgressStage != RESEARCH_STAGE_INITIAL_RESEARCH && gResearchExpectedDay != 255) { - uint16_t expectedDay = gResearchExpectedDay; - if (expectedDay != 255) - { - // TODO: Should probably use game date format setting - set_format_arg(0, rct_string_id, STR_RESEARCH_EXPECTED_FORMAT); - set_format_arg(2, rct_string_id, DateDayNames[expectedDay]); - set_format_arg(4, rct_string_id, DateGameMonthNames[gResearchExpectedMonth]); - } + // TODO: Should probably use game date format setting + ft.Add(STR_RESEARCH_EXPECTED_FORMAT); + ft.Add(DateDayNames[gResearchExpectedDay]); + ft.Add(DateGameMonthNames[gResearchExpectedMonth]); + } + else + { + ft.Add(STR_RESEARCH_STAGE_UNKNOWN); } gfx_draw_string_left(dpi, STR_RESEARCH_EXPECTED_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); } diff --git a/src/openrct2-ui/windows/RideConstruction.cpp b/src/openrct2-ui/windows/RideConstruction.cpp index a446db556c..bf4385a38b 100644 --- a/src/openrct2-ui/windows/RideConstruction.cpp +++ b/src/openrct2-ui/windows/RideConstruction.cpp @@ -2270,7 +2270,8 @@ static void window_ride_construction_invalidate(rct_window* w) stringId = STR_BOOSTER; } } - set_format_arg(0, uint16_t, stringId); + auto ft = Formatter::Common(); + ft.Add(stringId); if (_currentlyShowingBrakeOrBoosterSpeed) { @@ -2279,7 +2280,7 @@ static void window_ride_construction_invalidate(rct_window* w) { brakeSpeed2 = get_booster_speed(ride->type, brakeSpeed2); } - set_format_arg(2, uint16_t, brakeSpeed2); + ft.Add(brakeSpeed2); } window_ride_construction_widgets[WIDX_SEAT_ROTATION_ANGLE_SPINNER].text = RideConstructionSeatAngleRotationStrings diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index 0af1f92055..08d6848bd3 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -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) { + auto ft = Formatter::Common(); + switch (widgetIndex) { 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_18: case WIDX_SCENERY_TAB_19: - set_format_arg(0, rct_string_id, get_scenery_group_entry(widgetIndex - WIDX_SCENERY_TAB_1)->name); + ft.Add(get_scenery_group_entry(widgetIndex - WIDX_SCENERY_TAB_1)->name); break; case WIDX_SCENERY_TAB_20: - set_format_arg(0, rct_string_id, STR_MISCELLANEOUS); + ft.Add(STR_MISCELLANEOUS); break; } } @@ -1171,18 +1173,19 @@ void window_scenery_paint(rct_window* w, rct_drawpixelinfo* dpi) price = gSceneryPlaceCost; } - set_format_arg(0, uint32_t, price); - if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) { + auto ft = Formatter::Common(); + ft.Add(price); + // -14 gfx_draw_string_right( dpi, STR_COST_LABEL, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + w->width - 0x1A, w->windowPos.y + w->height - 13); } - set_format_arg( - 0, rct_string_id, sceneryEntry != nullptr ? sceneryEntry->name : static_cast(STR_UNKNOWN_OBJECT_TYPE)); + auto ft = Formatter::Common(); + ft.Add(sceneryEntry != nullptr ? sceneryEntry->name : static_cast(STR_UNKNOWN_OBJECT_TYPE)); gfx_draw_string_left_clipped( dpi, STR_BLACK_STRING, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + 3, w->windowPos.y + w->height - 13, w->width - 19); diff --git a/src/openrct2-ui/windows/ServerList.cpp b/src/openrct2-ui/windows/ServerList.cpp index a86dcc5306..0539e0447f 100644 --- a/src/openrct2-ui/windows/ServerList.cpp +++ b/src/openrct2-ui/windows/ServerList.cpp @@ -196,7 +196,8 @@ static void window_server_list_mouseup(rct_window* w, rct_widgetindex widgetInde } else { - set_format_arg(0, void*, server.version.c_str()); + auto ft = Formatter::Common(); + ft.Add(server.version.c_str()); 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 { - set_format_arg(0, void*, server.version.c_str()); + auto ft = Formatter::Common(); + ft.Add(server.version.c_str()); context_show_error(STR_UNABLE_TO_CONNECT_TO_SERVER, STR_MULTIPLAYER_INCORRECT_SOFTWARE_VERSION); } 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) { - set_format_arg(0, char*, _version.c_str()); + auto ft = Formatter::Common(); + ft.Add(_version.c_str()); 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_TITLE].right = w->width - 2; diff --git a/src/openrct2-ui/windows/TextInput.cpp b/src/openrct2-ui/windows/TextInput.cpp index c08f5dc830..8f562e9d0e 100644 --- a/src/openrct2-ui/windows/TextInput.cpp +++ b/src/openrct2-ui/windows/TextInput.cpp @@ -419,7 +419,8 @@ static void window_text_input_invalidate(rct_window* w) window_text_input_widgets[WIDX_BACKGROUND].bottom = height - 1; // Set window title argument - set_format_arg(0, const char*, _title.c_str()); + auto ft = Formatter::Common(); + ft.Add(_title.c_str()); } static void draw_ime_composition(rct_drawpixelinfo* dpi, int cursorX, int cursorY) diff --git a/src/openrct2-ui/windows/TitleEditor.cpp b/src/openrct2-ui/windows/TitleEditor.cpp index 2080589197..1e4c68c187 100644 --- a/src/openrct2-ui/windows/TitleEditor.cpp +++ b/src/openrct2-ui/windows/TitleEditor.cpp @@ -1125,7 +1125,6 @@ static void window_title_editor_add_park_callback(int32_t result, const utf8* pa { free(_renameSavePath); _renameSavePath = _strdup(filename); - // set_format_arg(0, intptr_t, static_cast(&_renameSavePath)); rct_window* w = window_find_by_class(WC_TITLE_EDITOR); window_text_input_open( w, WIDX_TITLE_EDITOR_RENAME_SAVE, STR_FILEBROWSER_RENAME_SAVE_TITLE, STR_ERROR_EXISTING_NAME, STR_STRING, diff --git a/src/openrct2-ui/windows/Tooltip.cpp b/src/openrct2-ui/windows/Tooltip.cpp index d9812571a4..216dd324b9 100644 --- a/src/openrct2-ui/windows/Tooltip.cpp +++ b/src/openrct2-ui/windows/Tooltip.cpp @@ -144,7 +144,8 @@ void window_tooltip_open(rct_window* widgetWindow, rct_widgetindex widgetIndex, if (widget->flags & WIDGET_FLAGS::TOOLTIP_IS_STRING) { stringId = STR_STRING_TOOLTIP; - set_format_arg(0, const char*, widget->sztooltip); + auto ft = Formatter::Common(); + ft.Add(widget->sztooltip); } if (stringId == STR_NONE) diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index b2eed56ad8..8d9b1f742d 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -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) { - set_format_arg(0, char*, _trackDesign->name.c_str()); + auto ft = Formatter::Common(); + ft.Add(_trackDesign->name.c_str()); window_draw_widgets(w, dpi); // Draw mini tile preview diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 3b0c969ee5..b15d9bae91 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -2998,8 +2998,9 @@ std::pair ride_get_measurement(Ride* ride) } else { - set_format_arg(0, rct_string_id, RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.vehicle].singular); - set_format_arg(2, rct_string_id, RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.station].singular); + auto ft = Formatter::Common(); + ft.Add(RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.vehicle].singular); + ft.Add(RideComponentNames[RideTypeDescriptors[ride->type].NameConvention.station].singular); return { measurement.get(), STR_DATA_LOGGING_WILL_START_WHEN_NEXT_LEAVES }; } }