diff --git a/src/openrct2-ui/windows/ServerStart.cpp b/src/openrct2-ui/windows/ServerStart.cpp index cbbc8c8be3..70d61fbe0d 100644 --- a/src/openrct2-ui/windows/ServerStart.cpp +++ b/src/openrct2-ui/windows/ServerStart.cpp @@ -331,7 +331,9 @@ static void window_server_start_invalidate(rct_window* w) colour_scheme_update_by_class(w, WC_SERVER_LIST); widget_set_checkbox_value(w, WIDX_ADVERTISE_CHECKBOX, gConfigNetwork.advertise); - set_format_arg(18, uint16_t, gConfigNetwork.maxplayers); + auto ft = Formatter::Common(); + ft.Increment(18); + ft.Add(gConfigNetwork.maxplayers); } static void window_server_start_paint(rct_window* w, rct_drawpixelinfo* dpi) diff --git a/src/openrct2-ui/windows/ShortcutKeyChange.cpp b/src/openrct2-ui/windows/ShortcutKeyChange.cpp index 900ff22d1e..18f76c516a 100644 --- a/src/openrct2-ui/windows/ShortcutKeyChange.cpp +++ b/src/openrct2-ui/windows/ShortcutKeyChange.cpp @@ -113,6 +113,7 @@ static void window_shortcut_change_paint(rct_window* w, rct_drawpixelinfo* dpi) int32_t x = w->windowPos.x + 125; int32_t y = w->windowPos.y + 30; - set_format_arg(0, rct_string_id, CurrentShortcutKeyStringId); + auto ft = Formatter::Common(); + ft.Add(CurrentShortcutKeyStringId); gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x, y, 242, STR_SHORTCUT_CHANGE_PROMPT, COLOUR_BLACK); } diff --git a/src/openrct2-ui/windows/ShortcutKeys.cpp b/src/openrct2-ui/windows/ShortcutKeys.cpp index 59a8927c26..647d4a8389 100644 --- a/src/openrct2-ui/windows/ShortcutKeys.cpp +++ b/src/openrct2-ui/windows/ShortcutKeys.cpp @@ -363,8 +363,9 @@ static void window_shortcut_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i } const int32_t bindingOffset = scrollWidth - 150; - set_format_arg(0, rct_string_id, STR_SHORTCUT_ENTRY_FORMAT); - set_format_arg(2, rct_string_id, ShortcutList[i].StringId); + auto ft = Formatter::Common(); + ft.Add(STR_SHORTCUT_ENTRY_FORMAT); + ft.Add(ShortcutList[i].StringId); gfx_draw_string_left_clipped(dpi, format, gCommonFormatArgs, COLOUR_BLACK, 0, y - 1, bindingOffset); char keybinding[128]; @@ -373,8 +374,9 @@ static void window_shortcut_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i if (strlen(keybinding) > 0) { const int32_t maxWidth = 150; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, char*, keybinding); + ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(keybinding); gfx_draw_string_left_clipped(dpi, format, gCommonFormatArgs, COLOUR_BLACK, bindingOffset, y - 1, maxWidth); } } diff --git a/src/openrct2-ui/windows/Staff.cpp b/src/openrct2-ui/windows/Staff.cpp index de27faf044..cd5332e550 100644 --- a/src/openrct2-ui/windows/Staff.cpp +++ b/src/openrct2-ui/windows/Staff.cpp @@ -1106,7 +1106,7 @@ void window_staff_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) { - set_format_arg(0, money32, gStaffWageTable[peep->staff_type]); + Formatter::Common().Add(gStaffWageTable[peep->staff_type]); gfx_draw_string_left(dpi, STR_STAFF_STAT_WAGES, gCommonFormatArgs, COLOUR_BLACK, x, y); y += LIST_ROW_HEIGHT; } diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index 4ab98ade80..e1226ce873 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -418,7 +418,7 @@ static void window_staff_list_tooldown(rct_window* w, rct_widgetindex widgetInde } else { - set_format_arg(0, rct_string_id, StaffNamingConvention[selectedPeepType].plural); + Formatter::Common().Add(StaffNamingConvention[selectedPeepType].plural); context_show_error(STR_NO_THING_IN_PARK_YET, STR_NONE); } } @@ -625,7 +625,7 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) { - set_format_arg(0, money32, gStaffWageTable[selectedTab]); + Formatter::Common().Add(gStaffWageTable[selectedTab]); gfx_draw_string_left( dpi, STR_COST_PER_MONTH, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + w->width - 155, w->windowPos.y + 0x20); } @@ -644,8 +644,9 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) staffTypeStringId = StaffNamingConvention[selectedTab].singular; } - set_format_arg(0, uint16_t, static_cast(StaffList.size())); - set_format_arg(2, rct_string_id, staffTypeStringId); + auto ft = Formatter::Common(); + ft.Add(StaffList.size()); + ft.Add(staffTypeStringId); gfx_draw_string_left( dpi, STR_STAFF_LIST_COUNTER, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + 4, diff --git a/src/openrct2-ui/windows/Themes.cpp b/src/openrct2-ui/windows/Themes.cpp index 6f8c94787e..4e771e46f5 100644 --- a/src/openrct2-ui/windows/Themes.cpp +++ b/src/openrct2-ui/windows/Themes.cpp @@ -836,7 +836,7 @@ void window_themes_paint(rct_window* w, rct_drawpixelinfo* dpi) { size_t activeAvailableThemeIndex = theme_manager_get_active_available_theme_index(); const utf8* activeThemeName = theme_manager_get_available_theme_name(activeAvailableThemeIndex); - set_format_arg(0, uintptr_t, reinterpret_cast(activeThemeName)); + Formatter::Common().Add(activeThemeName); gfx_draw_string_left( dpi, STR_THEMES_LABEL_CURRENT_THEME, nullptr, w->colours[1], w->windowPos.x + 10, w->windowPos.y + window_themes_widgets[WIDX_THEMES_PRESETS].top + 1); diff --git a/src/openrct2-ui/windows/TileInspector.cpp b/src/openrct2-ui/windows/TileInspector.cpp index 4ca09b87d8..8c852d13c0 100644 --- a/src/openrct2-ui/windows/TileInspector.cpp +++ b/src/openrct2-ui/windows/TileInspector.cpp @@ -1923,15 +1923,17 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) if (track_element_is_station(tileElement)) { int16_t stationIndex = trackElement->GetStationIndex(); - set_format_arg(0, rct_string_id, STR_COMMA16); - set_format_arg(2, int16_t, stationIndex); + auto ft = Formatter::Common(); + ft.Add(STR_COMMA16); + ft.Add(stationIndex); gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_STATION_INDEX, gCommonFormatArgs, COLOUR_WHITE, x, y + 55); } else { const char* stationNone = "-"; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, char*, stationNone); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(stationNone); gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_STATION_INDEX, gCommonFormatArgs, COLOUR_WHITE, x, y + 55); } @@ -2040,8 +2042,9 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi) gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_ENTRANCE_RIDE_ID, &rideId, COLOUR_WHITE, x, y + 22); // Station index int16_t stationIndex = tileElement->AsEntrance()->GetStationIndex(); - set_format_arg(0, rct_string_id, STR_COMMA16); - set_format_arg(2, int16_t, stationIndex); + auto ft = Formatter::Common(); + ft.Add(STR_COMMA16); + ft.Add(stationIndex); gfx_draw_string_left(dpi, STR_TILE_INSPECTOR_STATION_INDEX, gCommonFormatArgs, COLOUR_WHITE, x, y + 33); } @@ -2289,24 +2292,28 @@ static void window_tile_inspector_scrollpaint(rct_window* w, rct_drawpixelinfo* // Undo relative scroll offset, but keep the 3 pixel padding const int32_t x = -w->widgets[WIDX_LIST].left; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, char*, typeName); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(typeName); gfx_draw_string_left_clipped( dpi, stringFormat, gCommonFormatArgs, COLOUR_BLACK, x + COL_X_TYPE + 3, y, COL_X_BH); // 3px padding // Base height - set_format_arg(0, rct_string_id, STR_FORMAT_INTEGER); - set_format_arg(2, int32_t, baseHeight); + ft = Formatter::Common(); + ft.Add(STR_FORMAT_INTEGER); + ft.Add(baseHeight); gfx_draw_string_left(dpi, stringFormat, gCommonFormatArgs, COLOUR_BLACK, x + COL_X_BH, y); // Clearance height - set_format_arg(0, rct_string_id, STR_FORMAT_INTEGER); - set_format_arg(2, int32_t, clearanceHeight); + ft = Formatter::Common(); + ft.Add(STR_FORMAT_INTEGER); + ft.Add(clearanceHeight); gfx_draw_string_left(dpi, stringFormat, gCommonFormatArgs, COLOUR_BLACK, x + COL_X_CH, y); // Checkmarks for ghost and last for tile - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, char*, CheckBoxMarkString); + ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(CheckBoxMarkString); if (ghost) { gfx_draw_string_left(dpi, stringFormat, gCommonFormatArgs, COLOUR_BLACK, x + COL_X_GF, y); diff --git a/src/openrct2-ui/windows/TitleCommandEditor.cpp b/src/openrct2-ui/windows/TitleCommandEditor.cpp index bb3708616d..f9255ed08d 100644 --- a/src/openrct2-ui/windows/TitleCommandEditor.cpp +++ b/src/openrct2-ui/windows/TitleCommandEditor.cpp @@ -774,7 +774,7 @@ static void window_title_command_editor_paint(rct_window* w, rct_drawpixelinfo* if (command.SpriteIndex != SPRITE_INDEX_NULL) { window_draw_viewport(dpi, w); - set_format_arg(0, uintptr_t, reinterpret_cast(command.SpriteName)); + Formatter::Common().Add(reinterpret_cast(command.SpriteName)); } else { @@ -801,7 +801,7 @@ static void window_title_command_editor_paint(rct_window* w, rct_drawpixelinfo* } else { - set_format_arg(0, uintptr_t, reinterpret_cast(_sequence->Saves[command.SaveIndex])); + Formatter::Common().Add(reinterpret_cast(_sequence->Saves[command.SaveIndex])); gfx_draw_string_left_clipped( dpi, STR_STRING, gCommonFormatArgs, w->colours[1], w->windowPos.x + w->widgets[WIDX_INPUT].left + 1, w->windowPos.y + w->widgets[WIDX_INPUT].top, @@ -830,7 +830,7 @@ static void window_title_command_editor_paint(rct_window* w, rct_drawpixelinfo* { nameString = STR_TITLE_COMMAND_EDITOR_MISSING_SCENARIO; } - set_format_arg(0, uintptr_t, name); + Formatter::Common().Add(name); gfx_draw_string_left_clipped( dpi, nameString, gCommonFormatArgs, w->colours[1], w->windowPos.x + w->widgets[WIDX_INPUT].left + 1, w->windowPos.y + w->widgets[WIDX_INPUT].top, diff --git a/src/openrct2-ui/windows/TitleScenarioSelect.cpp b/src/openrct2-ui/windows/TitleScenarioSelect.cpp index 5db90b1dff..29e4d6c9d6 100644 --- a/src/openrct2-ui/windows/TitleScenarioSelect.cpp +++ b/src/openrct2-ui/windows/TitleScenarioSelect.cpp @@ -453,13 +453,14 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) int32_t x = (widget->left + widget->right) / 2 + w->windowPos.x; int32_t y = (widget->top + widget->bottom) / 2 + w->windowPos.y - 3; + auto ft = Formatter::Common(); if (gConfigGeneral.scenario_select_mode == SCENARIO_SELECT_MODE_ORIGIN || _titleEditor) { - set_format_arg(0, rct_string_id, ScenarioOriginStringIds[i]); + ft.Add(ScenarioOriginStringIds[i]); } else { // old-style - set_format_arg(0, rct_string_id, ScenarioCategoryStringIds[i]); + ft.Add(ScenarioCategoryStringIds[i]); } gfx_draw_string_centred_wrapped(dpi, gCommonFormatArgs, x, y, 87, format, COLOUR_AQUAMARINE); } @@ -497,21 +498,24 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) // Scenario name int32_t x = w->windowPos.x + window_scenarioselect_widgets[WIDX_SCENARIOLIST].right + 4; int32_t y = w->windowPos.y + window_scenarioselect_widgets[WIDX_TABCONTENT].top + 5; - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, scenario->name); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(scenario->name); gfx_draw_string_centred_clipped(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, x + 85, y, 170); y += 15; // Scenario details - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, scenario->details); + ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(scenario->details); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 170, STR_BLACK_STRING, COLOUR_BLACK) + 5; // Scenario objective - set_format_arg(0, rct_string_id, ObjectiveNames[scenario->objective_type]); - set_format_arg(2, int16_t, scenario->objective_arg_3); - set_format_arg(4, int16_t, date_get_total_months(MONTH_OCTOBER, scenario->objective_arg_1)); - set_format_arg(6, int32_t, scenario->objective_arg_2); + ft = Formatter::Common(); + ft.Add(ObjectiveNames[scenario->objective_type]); + ft.Add(scenario->objective_arg_3); + ft.Add(date_get_total_months(MONTH_OCTOBER, scenario->objective_arg_1)); + ft.Add(scenario->objective_arg_2); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 170, STR_OBJECTIVE, COLOUR_BLACK) + 5; // Scenario score @@ -523,9 +527,10 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) { completedByName = scenario->highscore->name; } - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, const char*, completedByName); - set_format_arg(2 + sizeof(const char*), money32, scenario->highscore->company_value); + ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(completedByName); + ft.Add(scenario->highscore->company_value); y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, x, y, 170, STR_COMPLETED_BY_WITH_COMPANY_VALUE, COLOUR_BLACK); } } @@ -590,8 +595,9 @@ static void window_scenarioselect_scrollpaint(rct_window* w, rct_drawpixelinfo* safe_strcpy(buffer, scenario->name, sizeof(buffer)); rct_string_id format = isDisabled ? static_cast(STR_STRINGID) : (isHighlighted ? highlighted_format : unhighlighted_format); - set_format_arg(0, rct_string_id, STR_STRING); - set_format_arg(2, char*, buffer); + auto ft = Formatter::Common(); + ft.Add(STR_STRING); + ft.Add(buffer); colour = isDisabled ? w->colours[1] | COLOUR_FLAG_INSET : COLOUR_BLACK; if (isDisabled) { @@ -612,9 +618,10 @@ static void window_scenarioselect_scrollpaint(rct_window* w, rct_drawpixelinfo* completedByName = scenario->highscore->name; } safe_strcpy(buffer, completedByName, 64); - set_format_arg(0, rct_string_id, STR_COMPLETED_BY); - set_format_arg(2, rct_string_id, STR_STRING); - set_format_arg(4, char*, buffer); + ft = Formatter::Common(); + ft.Add(STR_COMPLETED_BY); + ft.Add(STR_STRING); + ft.Add(buffer); gfx_draw_string_centred( dpi, format, wide ? 270 : 210, y + scenarioTitleHeight + 1, COLOUR_BLACK, gCommonFormatArgs); } diff --git a/src/openrct2-ui/windows/TrackDesignManage.cpp b/src/openrct2-ui/windows/TrackDesignManage.cpp index b538c1c82e..42e87df5b9 100644 --- a/src/openrct2-ui/windows/TrackDesignManage.cpp +++ b/src/openrct2-ui/windows/TrackDesignManage.cpp @@ -233,7 +233,7 @@ static void window_track_manage_textinput(rct_window* w, rct_widgetindex widgetI */ static void window_track_manage_paint(rct_window* w, rct_drawpixelinfo* dpi) { - set_format_arg(0, char*, _trackDesignFileReference->name); + Formatter::Common().Add(_trackDesignFileReference->name); window_draw_widgets(w, dpi); }