diff --git a/src/openrct2-ui/interface/Graph.cpp b/src/openrct2-ui/interface/Graph.cpp index b175bed229..3c0bf57893 100644 --- a/src/openrct2-ui/interface/Graph.cpp +++ b/src/openrct2-ui/interface/Graph.cpp @@ -26,10 +26,9 @@ static void graph_draw_months_uint8_t( if (history[i] != 255 && yearOver32 % 4 == 0) { // Draw month text - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(DateGameShortMonthNames[date_get_month((yearOver32 / 4) + MONTH_COUNT)]); - gfx_draw_string_centred( - dpi, STR_GRAPH_LABEL, screenCoords - ScreenCoordsXY{ 0, 10 }, COLOUR_BLACK, gCommonFormatArgs); + gfx_draw_string_centred(dpi, STR_GRAPH_LABEL, screenCoords - ScreenCoordsXY{ 0, 10 }, COLOUR_BLACK, ft.Data()); // Draw month mark gfx_fill_rect(dpi, { screenCoords, screenCoords + ScreenCoordsXY{ 0, 3 } }, PALETTE_INDEX_10); diff --git a/src/openrct2-ui/scripting/CustomListView.cpp b/src/openrct2-ui/scripting/CustomListView.cpp index 6e6354d21c..23598d2e62 100644 --- a/src/openrct2-ui/scripting/CustomListView.cpp +++ b/src/openrct2-ui/scripting/CustomListView.cpp @@ -648,13 +648,13 @@ void CustomListView::PaintHeading( if (sortOrder == ColumnSortOrder::Ascending) { - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_UP); DrawTextBasic(dpi, pos + ScreenCoordsXY{ size.width - 1, 0 }, STR_BLACK_STRING, ft, COLOUR_BLACK, TextAlignment::RIGHT); } else if (sortOrder == ColumnSortOrder::Descending) { - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_DOWN); DrawTextBasic(dpi, pos + ScreenCoordsXY{ size.width - 1, 0 }, STR_BLACK_STRING, ft, COLOUR_BLACK, TextAlignment::RIGHT); } @@ -665,7 +665,7 @@ void CustomListView::PaintCell( { rct_string_id stringId = isHighlighted ? STR_WINDOW_COLOUR_2_STRINGID : STR_BLACK_STRING; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(text); DrawTextEllipsised(dpi, pos, size.width, stringId, ft, COLOUR_BLACK); diff --git a/src/openrct2-ui/windows/About.cpp b/src/openrct2-ui/windows/About.cpp index 39f1480d49..971ea6b87e 100644 --- a/src/openrct2-ui/windows/About.cpp +++ b/src/openrct2-ui/windows/About.cpp @@ -220,15 +220,17 @@ 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); - 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); - - 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); + { + auto ft = Formatter(); + ft.Add(STR_TITLE_SEQUENCE_OPENRCT2); + gfx_draw_string_centred_wrapped( + dpi, ft.Data(), aboutOpenRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); + } + { + auto ft = Formatter(); + ft.Add(STR_TITLE_SEQUENCE_RCT2); + gfx_draw_string_centred_wrapped(dpi, ft.Data(), aboutRCT2Coords, 87, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_AQUAMARINE); + } } static void window_about_openrct2_paint(rct_window* w, rct_drawpixelinfo* dpi) diff --git a/src/openrct2-ui/windows/Cheats.cpp b/src/openrct2-ui/windows/Cheats.cpp index aef5ce8fdc..72c108df9d 100644 --- a/src/openrct2-ui/windows/Cheats.cpp +++ b/src/openrct2-ui/windows/Cheats.cpp @@ -1213,15 +1213,14 @@ static void window_cheats_paint(rct_window* w, rct_drawpixelinfo* dpi) if (w->page == WINDOW_CHEATS_PAGE_MONEY) { uint8_t colour = w->colours[1]; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(_moneySpinnerValue); if (widget_is_disabled(w, WIDX_MONEY_SPINNER)) { colour |= COLOUR_FLAG_INSET; } int32_t actual_month = _monthSpinnerValue - 1; - gfx_draw_string_left( - dpi, STR_BOTTOM_TOOLBAR_CASH, gCommonFormatArgs, colour, w->windowPos + ScreenCoordsXY{ X_LCOL, 93 }); + gfx_draw_string_left(dpi, STR_BOTTOM_TOOLBAR_CASH, ft.Data(), colour, w->windowPos + ScreenCoordsXY{ X_LCOL, 93 }); gfx_draw_string_left(dpi, STR_YEAR, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ X_LCOL, 198 }); gfx_draw_string_left(dpi, STR_MONTH, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ X_LCOL, 219 }); gfx_draw_string_left(dpi, STR_DAY, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ X_LCOL, 240 }); diff --git a/src/openrct2-ui/windows/CustomCurrency.cpp b/src/openrct2-ui/windows/CustomCurrency.cpp index 37112a9bf0..0895b72da4 100644 --- a/src/openrct2-ui/windows/CustomCurrency.cpp +++ b/src/openrct2-ui/windows/CustomCurrency.cpp @@ -243,10 +243,10 @@ static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi) gfx_draw_string_left(dpi, STR_RATE, nullptr, w->colours[1], screenCoords); int32_t baseExchange = CurrencyDescriptors[CURRENCY_POUNDS].rate; - ft = Formatter::Common(); + ft = Formatter(); ft.Add(baseExchange); gfx_draw_string_left( - dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords + ScreenCoordsXY{ 200, 0 }); + dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, ft.Data(), w->colours[1], screenCoords + ScreenCoordsXY{ 200, 0 }); screenCoords.y += 20; diff --git a/src/openrct2-ui/windows/DemolishRidePrompt.cpp b/src/openrct2-ui/windows/DemolishRidePrompt.cpp index 5a6764b140..891e40cc8b 100644 --- a/src/openrct2-ui/windows/DemolishRidePrompt.cpp +++ b/src/openrct2-ui/windows/DemolishRidePrompt.cpp @@ -216,12 +216,12 @@ static void window_ride_demolish_paint(rct_window* w, rct_drawpixelinfo* dpi) if (ride != nullptr) { auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_DEMOLISH_RIDE_ID : STR_DEMOLISH_RIDE_ID_MONEY; - auto ft = Formatter::Common(); + auto ft = Formatter(); ride->FormatNameTo(ft); 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); + gfx_draw_string_centred_wrapped(dpi, ft.Data(), stringCoords, WW - 4, stringId, COLOUR_BLACK); } } @@ -233,11 +233,11 @@ static void window_ride_refurbish_paint(rct_window* w, rct_drawpixelinfo* dpi) if (ride != nullptr) { auto stringId = (gParkFlags & PARK_FLAGS_NO_MONEY) ? STR_REFURBISH_RIDE_ID_NO_MONEY : STR_REFURBISH_RIDE_ID_MONEY; - auto ft = Formatter::Common(); + auto ft = Formatter(); ride->FormatNameTo(ft); 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); + gfx_draw_string_centred_wrapped(dpi, ft.Data(), stringCoords, WW - 4, stringId, COLOUR_BLACK); } } diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index a30298aa97..827b2d76e0 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -1013,17 +1013,17 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf if (gScreenFlags & SCREEN_FLAGS_TRACK_DESIGNER) totalSelectable = 4; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(numSelected); ft.Add(totalSelectable); - gfx_draw_string_left(dpi, STR_OBJECT_SELECTION_SELECTION_SIZE, gCommonFormatArgs, COLOUR_BLACK, screenPos); + gfx_draw_string_left(dpi, STR_OBJECT_SELECTION_SELECTION_SIZE, ft.Data(), COLOUR_BLACK, screenPos); } // Draw sort button text widget = &w->widgets[WIDX_LIST_SORT_TYPE]; if (widget->type != WWT_EMPTY) { - auto ft = Formatter::Common(); + auto ft = Formatter(); auto stringId = _listSortType == RIDE_SORT_TYPE ? static_cast(_listSortDescending ? STR_DOWN : STR_UP) : STR_NONE; ft.Add(stringId); @@ -1033,7 +1033,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf widget = &w->widgets[WIDX_LIST_SORT_RIDE]; if (widget->type != WWT_EMPTY) { - auto ft = Formatter::Common(); + auto ft = Formatter(); auto stringId = _listSortType == RIDE_SORT_RIDE ? static_cast(_listSortDescending ? STR_DOWN : STR_UP) : STR_NONE; ft.Add(stringId); @@ -1063,7 +1063,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf { auto screenPos = w->windowPos + ScreenCoordsXY{ widget->midX() + 1, widget->bottom + 3 }; width = w->width - w->widgets[WIDX_LIST].right - 6; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(listItem->repositoryItem->Name.c_str()); DrawTextEllipsised(dpi, screenPos, width, STR_WINDOW_COLOUR_2_STRINGID, ft, COLOUR_BLACK, TextAlignment::CENTRE); @@ -1073,7 +1073,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf auto description = object_get_description(_loadedObject); if (!description.empty()) { - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(description.c_str()); @@ -1081,7 +1081,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf width = w->windowPos.x + w->width - screenPos.x - 4; gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenPos + ScreenCoordsXY{ 0, 5 }, width, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_BLACK); + dpi, ft.Data(), screenPos + ScreenCoordsXY{ 0, 5 }, width, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_BLACK); } auto screenPos = w->windowPos + ScreenCoordsXY{ w->width - 5, w->height - (LIST_ROW_HEIGHT * 5) }; @@ -1103,7 +1103,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf // Draw object dat name { const char* path = path_get_filename(listItem->repositoryItem->Path.c_str()); - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(path); DrawTextBasic( @@ -1114,7 +1114,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf // Draw object author (will be blank space if no author in file or a non JSON object) { - auto ft = Formatter::Common(); + auto ft = Formatter(); std::string authorsString; for (size_t i = 0; i < listItem->repositoryItem->Authors.size(); i++) { @@ -1199,7 +1199,7 @@ static void window_editor_object_selection_scrollpaint(rct_window* w, rct_drawpi // Draw ride type rct_string_id rideTypeStringId = get_ride_type_string_id(listItem.repositoryItem); safe_strcpy(buffer, language_get_string(rideTypeStringId), 256 - (buffer - bufferWithColour)); - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(gCommonStringFormatBuffer); DrawTextEllipsised(dpi, screenCoords, width_limit - 15, STR_STRING, ft, colour); screenCoords.x = w->widgets[WIDX_LIST_SORT_RIDE].left - w->widgets[WIDX_LIST].left; @@ -1214,7 +1214,7 @@ static void window_editor_object_selection_scrollpaint(rct_window* w, rct_drawpi *buffer = 0; } - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(gCommonStringFormatBuffer); DrawTextEllipsised(dpi, screenCoords, width_limit, STR_STRING, ft, colour); } diff --git a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp index e8e6bb1e86..8ae7bce7df 100644 --- a/src/openrct2-ui/windows/EditorObjectiveOptions.cpp +++ b/src/openrct2-ui/windows/EditorObjectiveOptions.cpp @@ -920,7 +920,7 @@ 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(); - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(parkName); DrawTextEllipsised(dpi, screenCoords, width, STR_WINDOW_PARK_NAME, ft, COLOUR_BLACK); @@ -930,7 +930,7 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_SCENARIO_NAME].top }; width = w->widgets[WIDX_SCENARIO_NAME].left - 16; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_STRING); ft.Add(gS6Info.name); DrawTextEllipsised(dpi, screenCoords, width, STR_WINDOW_SCENARIO_NAME, ft, COLOUR_BLACK); @@ -943,10 +943,10 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi screenCoords = w->windowPos + ScreenCoordsXY{ 16, w->widgets[WIDX_DETAILS].top + 10 }; width = w->widgets[WIDX_DETAILS].left - 4; - ft = Formatter::Common(); + ft = Formatter(); ft.Add(STR_STRING); ft.Add(gS6Info.details); - gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, ft.Data(), screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK); // Scenario category label screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_CATEGORY].top }; diff --git a/src/openrct2-ui/windows/Finances.cpp b/src/openrct2-ui/windows/Finances.cpp index 9b15e4bb89..9a5c0e7df0 100644 --- a/src/openrct2-ui/windows/Finances.cpp +++ b/src/openrct2-ui/windows/Finances.cpp @@ -693,10 +693,10 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi) // Loan and interest rate gfx_draw_string_left(dpi, STR_FINANCES_SUMMARY_LOAN, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 8, 279 }); - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(gBankLoanInterestRate); gfx_draw_string_left( - dpi, STR_FINANCES_SUMMARY_AT_X_PER_YEAR, gCommonFormatArgs, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 167, 279 }); + dpi, STR_FINANCES_SUMMARY_AT_X_PER_YEAR, ft.Data(), COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 167, 279 }); // Current cash rct_string_id stringId = gCash >= 0 ? STR_CASH_LABEL : STR_CASH_NEGATIVE_LABEL; @@ -706,10 +706,10 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi) if (gScenarioObjective.Type == OBJECTIVE_MONTHLY_FOOD_INCOME) { money32 lastMonthProfit = finance_get_last_month_shop_profit(); - ft = Formatter::Common(); + ft = Formatter(); ft.Add(lastMonthProfit); gfx_draw_string_left( - dpi, STR_LAST_MONTH_PROFIT_FROM_FOOD_DRINK_MERCHANDISE_SALES_LABEL, gCommonFormatArgs, COLOUR_BLACK, + dpi, STR_LAST_MONTH_PROFIT_FROM_FOOD_DRINK_MERCHANDISE_SALES_LABEL, ft.Data(), COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 280, 279 }); } else @@ -752,7 +752,7 @@ static void window_finances_summary_scrollpaint(rct_window* w, rct_drawpixelinfo continue; // Month heading - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_FINANCES_SUMMARY_MONTH_HEADING); ft.Add(monthyear); DrawTextBasic( @@ -1211,7 +1211,7 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp continue; noCampaignsActive = 0; - auto ft = Formatter::Common(); + auto ft = Formatter(); // Set special parameters switch (i) diff --git a/src/openrct2-ui/windows/GameBottomToolbar.cpp b/src/openrct2-ui/windows/GameBottomToolbar.cpp index 5e2164bc4a..857d22840d 100644 --- a/src/openrct2-ui/windows/GameBottomToolbar.cpp +++ b/src/openrct2-ui/windows/GameBottomToolbar.cpp @@ -425,14 +425,14 @@ static void window_game_bottom_toolbar_draw_left_panel(rct_drawpixelinfo* dpi, r auto screenCoords = ScreenCoordsXY{ w->windowPos.x + widget.midX(), w->windowPos.y + widget.midY() - (line_height == 10 ? 5 : 6) }; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(gCash); gfx_draw_string_centred( dpi, (gCash < 0 ? STR_BOTTOM_TOOLBAR_CASH_NEGATIVE : STR_BOTTOM_TOOLBAR_CASH), screenCoords, (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_MONEY ? COLOUR_WHITE : NOT_TRANSLUCENT(w->colours[0])), - gCommonFormatArgs); + ft.Data()); } static constexpr const rct_string_id guestCountFormats[] = { @@ -515,7 +515,7 @@ 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]; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(DateDayNames[day]); ft.Add(month); ft.Add(year); @@ -524,7 +524,7 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi, (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR && gHoverWidget.widget_index == WIDX_DATE ? COLOUR_WHITE : NOT_TRANSLUCENT(w->colours[0])), - gCommonFormatArgs); + ft.Data()); // Figure out how much line height we have to work with. uint32_t line_height = font_get_line_height(FONT_SPRITE_BASE_MEDIUM); @@ -540,9 +540,9 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi, temperature = climate_celsius_to_fahrenheit(temperature); format = STR_FAHRENHEIT_VALUE; } - ft = Formatter::Common(); + ft = Formatter(); ft.Add(temperature); - gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 0, 6 }); + gfx_draw_string_left(dpi, format, ft.Data(), COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 0, 6 }); screenCoords.x += 30; // Current weather diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index 2498553b6d..9daecb0b1e 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -1121,16 +1121,19 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) return; } - auto ft = Formatter::Common(); - peep->FormatActionTo(ft); rct_widget* widget = &w->widgets[WIDX_ACTION_LBL]; auto screenPos = w->windowPos + ScreenCoordsXY{ widget->midX(), widget->top - 1 }; - int32_t width = widget->width(); - DrawTextEllipsised(dpi, screenPos, width, STR_BLACK_STRING, ft, COLOUR_BLACK, TextAlignment::CENTRE); + + { + auto ft = Formatter(); + peep->FormatActionTo(ft); + int32_t width = widget->width(); + DrawTextEllipsised(dpi, screenPos, width, STR_BLACK_STRING, ft, COLOUR_BLACK, TextAlignment::CENTRE); + } // Draw the marquee thought widget = &w->widgets[WIDX_MARQUEE]; - width = widget->width() - 3; + auto width = widget->width() - 3; int32_t left = widget->left + 2 + w->windowPos.x; int32_t top = widget->top + w->windowPos.y; int32_t height = widget->height(); @@ -1160,9 +1163,11 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) } screenPos.x = widget->width() - w->list_information_type; - ft = Formatter::Common(); - peep_thought_set_format_args(&peep->Thoughts[i], ft); - DrawTextBasic(&dpi_marquee, { screenPos.x, 0 }, STR_WINDOW_COLOUR_2_STRINGID, ft, COLOUR_BLACK); + { + auto ft = Formatter(); + peep_thought_set_format_args(&peep->Thoughts[i], ft); + DrawTextBasic(&dpi_marquee, { screenPos.x, 0 }, STR_WINDOW_COLOUR_2_STRINGID, ft, COLOUR_BLACK); + } } /** @@ -1457,7 +1462,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; // Happiness - gfx_draw_string_left(dpi, STR_GUEST_STAT_HAPPINESS_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_HAPPINESS_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t happiness = peep->Happiness; if (happiness < 10) @@ -1471,7 +1476,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) // Energy screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_ENERGY_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_ENERGY_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t energy = ((peep->Energy - PEEP_MIN_ENERGY) * 255) / (PEEP_MAX_ENERGY - PEEP_MIN_ENERGY); ebp = COLOUR_BRIGHT_GREEN; @@ -1485,7 +1490,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) // Hunger screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_HUNGER_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_HUNGER_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t hunger = peep->Hunger; if (hunger > 190) @@ -1507,7 +1512,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) // Thirst screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_THIRST_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_THIRST_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t thirst = peep->Thirst; if (thirst > 190) @@ -1529,7 +1534,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) // Nausea screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t nausea = peep->Nausea - 32; @@ -1547,7 +1552,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) // Toilet screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_TOILET_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_TOILET_LABEL, nullptr, COLOUR_BLACK, screenCoords); int32_t toilet = peep->Toilet - 32; if (toilet > 210) @@ -1573,9 +1578,9 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) int32_t eax = gScenarioTicks; eax -= peep->TimeInPark; eax >>= 11; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(eax & 0xFFFF); - gfx_draw_string_left(dpi, STR_GUEST_STAT_TIME_IN_PARK, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + gfx_draw_string_left(dpi, STR_GUEST_STAT_TIME_IN_PARK, ft.Data(), COLOUR_BLACK, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT + 9; @@ -1588,36 +1593,40 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) screenCoords.y += LIST_ROW_HEIGHT; // Intensity - auto ft = Formatter::Common(); - auto maxIntensity = peep->Intensity.GetMaximum(); - int32_t string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BELOW; - if (peep->Intensity.GetMinimum() != 0) { - ft.Add(peep->Intensity.GetMinimum()); - ft.Add(maxIntensity); - string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BETWEEN; - if (maxIntensity == 15) - string_id = STR_GUEST_STAT_PREFERRED_INTESITY_ABOVE; - } - else - { - ft.Add(maxIntensity); - } + auto ft = Formatter(); + auto maxIntensity = peep->Intensity.GetMaximum(); + int32_t string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BELOW; + if (peep->Intensity.GetMinimum() != 0) + { + ft.Add(peep->Intensity.GetMinimum()); + ft.Add(maxIntensity); + string_id = STR_GUEST_STAT_PREFERRED_INTESITY_BETWEEN; + if (maxIntensity == 15) + string_id = STR_GUEST_STAT_PREFERRED_INTESITY_ABOVE; + } + else + { + ft.Add(maxIntensity); + } - gfx_draw_string_left(dpi, string_id, gCommonFormatArgs, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 }); + gfx_draw_string_left(dpi, string_id, ft.Data(), COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 }); + } // Nausea tolerance - static constexpr const rct_string_id nauseaTolerances[] = { - STR_PEEP_STAT_NAUSEA_TOLERANCE_NONE, - STR_PEEP_STAT_NAUSEA_TOLERANCE_LOW, - STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE, - STR_PEEP_STAT_NAUSEA_TOLERANCE_HIGH, - }; - screenCoords.y += LIST_ROW_HEIGHT; - int32_t nausea_tolerance = peep->NauseaTolerance & 0x3; - ft = Formatter::Common(); - ft.Add(nauseaTolerances[nausea_tolerance]); - gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_TOLERANCE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + { + static constexpr const rct_string_id nauseaTolerances[] = { + STR_PEEP_STAT_NAUSEA_TOLERANCE_NONE, + STR_PEEP_STAT_NAUSEA_TOLERANCE_LOW, + STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE, + STR_PEEP_STAT_NAUSEA_TOLERANCE_HIGH, + }; + screenCoords.y += LIST_ROW_HEIGHT; + int32_t nausea_tolerance = peep->NauseaTolerance & 0x3; + auto ft = Formatter(); + ft.Add(nauseaTolerances[nausea_tolerance]); + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_TOLERANCE, ft.Data(), COLOUR_BLACK, screenCoords); + } } /** @@ -1765,7 +1774,7 @@ void window_guest_rides_paint(rct_window* w, rct_drawpixelinfo* dpi) screenCoords.y = w->windowPos.y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].bottom - 12; - auto ft = Formatter::Common(); + auto ft = Formatter(); auto ride = get_ride(peep->FavouriteRide); if (ride != nullptr) { @@ -1801,9 +1810,9 @@ void window_guest_rides_scroll_paint(rct_window* w, rct_drawpixelinfo* dpi, int3 auto ride = get_ride(w->list_item_positions[list_index]); if (ride != nullptr) { - auto ft = Formatter::Common(); + auto ft = Formatter(); ride->FormatNameTo(ft); - gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, { 0, y - 1 }); + gfx_draw_string_left(dpi, stringId, ft.Data(), COLOUR_BLACK, { 0, y - 1 }); } } } @@ -1847,80 +1856,91 @@ void window_guest_finance_paint(rct_window* w, rct_drawpixelinfo* dpi) window_guest_finance_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; // Cash in pocket - auto ft = Formatter::Common(); - ft.Add(peep->CashInPocket); - gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_IN_POCKET, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + { + auto ft = Formatter(); + ft.Add(peep->CashInPocket); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_IN_POCKET, ft.Data(), COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT; + } // Cash spent - screenCoords.y += LIST_ROW_HEIGHT; - ft = Formatter::Common(); - ft.Add(peep->CashSpent); - gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_SPENT, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + { + auto ft = Formatter(); + ft.Add(peep->CashSpent); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_SPENT, ft.Data(), COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT * 2; + } - screenCoords.y += LIST_ROW_HEIGHT * 2; gfx_fill_rect_inset( dpi, screenCoords.x, screenCoords.y - 6, screenCoords.x + 179, screenCoords.y - 5, w->colours[1], INSET_RECT_FLAG_BORDER_INSET); // Paid to enter - ft = Formatter::Common(); - ft.Add(peep->PaidToEnter); - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_ENTRANCE_FEE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - + { + auto ft = Formatter(); + ft.Add(peep->PaidToEnter); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_ENTRANCE_FEE, ft.Data(), COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT; + } // Paid on rides - screenCoords.y += LIST_ROW_HEIGHT; - ft = Formatter::Common(); - ft.Add(peep->PaidOnRides); - ft.Add(peep->GuestNumRides); - if (peep->GuestNumRides != 1) { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + auto ft = Formatter(); + ft.Add(peep->PaidOnRides); + ft.Add(peep->GuestNumRides); + if (peep->GuestNumRides != 1) + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE_PLURAL, ft.Data(), COLOUR_BLACK, screenCoords); + } + else + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE, ft.Data(), COLOUR_BLACK, screenCoords); + } + screenCoords.y += LIST_ROW_HEIGHT; } - else - { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - } - // Paid on food - screenCoords.y += LIST_ROW_HEIGHT; - ft = Formatter::Common(); - ft.Add(peep->PaidOnFood); - ft.Add(peep->AmountOfFood); - if (peep->AmountOfFood != 1) { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - } - else - { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + auto ft = Formatter(); + ft.Add(peep->PaidOnFood); + ft.Add(peep->AmountOfFood); + if (peep->AmountOfFood != 1) + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD_PLURAL, ft.Data(), COLOUR_BLACK, screenCoords); + } + else + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD, ft.Data(), COLOUR_BLACK, screenCoords); + } + screenCoords.y += LIST_ROW_HEIGHT; } // Paid on drinks - screenCoords.y += LIST_ROW_HEIGHT; - ft = Formatter::Common(); - ft.Add(peep->PaidOnDrink); - ft.Add(peep->AmountOfDrinks); - if (peep->AmountOfDrinks != 1) { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + auto ft = Formatter(); + ft.Add(peep->PaidOnDrink); + ft.Add(peep->AmountOfDrinks); + if (peep->AmountOfDrinks != 1) + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK_PLURAL, ft.Data(), COLOUR_BLACK, screenCoords); + } + else + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK, ft.Data(), COLOUR_BLACK, screenCoords); + } + screenCoords.y += LIST_ROW_HEIGHT; } - else - { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - } - // Paid on souvenirs - screenCoords.y += LIST_ROW_HEIGHT; - ft = Formatter::Common(); - ft.Add(peep->PaidOnSouvenirs); - ft.Add(peep->AmountOfSouvenirs); - if (peep->AmountOfSouvenirs != 1) { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - } - else - { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR, gCommonFormatArgs, COLOUR_BLACK, screenCoords); + auto ft = Formatter(); + ft.Add(peep->PaidOnSouvenirs); + ft.Add(peep->AmountOfSouvenirs); + if (peep->AmountOfSouvenirs != 1) + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR_PLURAL, ft.Data(), COLOUR_BLACK, screenCoords); + } + else + { + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR, ft.Data(), COLOUR_BLACK, screenCoords); + } } } @@ -1986,10 +2006,9 @@ void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi) int32_t width = window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].right - window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].left - 8; - auto ft = Formatter::Common(); + auto ft = Formatter(); peep_thought_set_format_args(thought, ft); - screenCoords.y += gfx_draw_string_left_wrapped( - dpi, const_cast(ft.Data()), screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK); + screenCoords.y += gfx_draw_string_left_wrapped(dpi, ft.Data(), screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK); // If this is the last visible line end drawing. if (screenCoords.y > w->windowPos.y + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].bottom - 32) @@ -2020,13 +2039,13 @@ void window_guest_inventory_update(rct_window* w) } } -static rct_string_id window_guest_inventory_format_item(Peep* peep, int32_t item) +static std::pair window_guest_inventory_format_item(Peep* peep, int32_t item) { auto& park = OpenRCT2::GetContext()->GetGameState()->GetPark(); auto parkName = park.Name.c_str(); // Default arguments - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(ShopItems[item].Image); ft.Add(ShopItems[item].Naming.Display); ft.Add(STR_STRING); @@ -2126,7 +2145,7 @@ static rct_string_id window_guest_inventory_format_item(Peep* peep, int32_t item break; } - return STR_GUEST_ITEM_FORMAT; + return std::make_pair(STR_GUEST_ITEM_FORMAT, ft); } /** @@ -2167,9 +2186,8 @@ void window_guest_inventory_paint(rct_window* w, rct_drawpixelinfo* dpi) if (!guest->HasItem(item)) continue; - rct_string_id stringId = window_guest_inventory_format_item(guest, item); - screenCoords.y += gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenCoords, itemNameWidth, stringId, COLOUR_BLACK); + auto [stringId, ft] = window_guest_inventory_format_item(guest, item); + screenCoords.y += gfx_draw_string_left_wrapped(dpi, ft.Data(), screenCoords, itemNameWidth, stringId, COLOUR_BLACK); numItems++; } @@ -2212,19 +2230,25 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi) + ScreenCoordsXY{ window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].left + 4, window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; { - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(peep->sprite_index); - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_SPRITE_INDEX, gCommonFormatArgs, 0, screenCoords); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_SPRITE_INDEX, ft.Data(), 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { - int32_t args[] = { peep->x, peep->y, peep->z }; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_POSITION, args, 0, screenCoords); + auto ft = Formatter(); + ft.Add(peep->x); + ft.Add(peep->y); + ft.Add(peep->z); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_POSITION, ft.Data(), 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { - int32_t args[] = { peep->NextLoc.x, peep->NextLoc.y, peep->NextLoc.z }; - format_string(buffer, sizeof(buffer), STR_PEEP_DEBUG_NEXT, args); + auto ft = Formatter(); + ft.Add(peep->NextLoc.x); + ft.Add(peep->NextLoc.y); + ft.Add(peep->NextLoc.z); + format_string(buffer, sizeof(buffer), STR_PEEP_DEBUG_NEXT, ft.Data()); if (peep->GetNextIsSurface()) { format_string(buffer2, sizeof(buffer2), STR_PEEP_DEBUG_NEXT_SURFACE, nullptr); @@ -2232,21 +2256,29 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi) } if (peep->GetNextIsSloped()) { - int32_t args2[1] = { peep->GetNextDirection() }; - format_string(buffer2, sizeof(buffer2), STR_PEEP_DEBUG_NEXT_SLOPE, args2); + auto ft2 = Formatter(); + ft2.Add(peep->GetNextDirection()); + format_string(buffer2, sizeof(buffer2), STR_PEEP_DEBUG_NEXT_SLOPE, ft2.Data()); safe_strcat(buffer, buffer2, sizeof(buffer)); } gfx_draw_string(dpi, buffer, 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { - int32_t args[] = { peep->DestinationX, peep->DestinationY, peep->DestinationTolerance }; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_DEST, args, 0, screenCoords); + auto ft = Formatter(); + ft.Add(peep->DestinationX); + ft.Add(peep->DestinationY); + ft.Add(peep->DestinationTolerance); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_DEST, ft.Data(), 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { - int32_t args[] = { peep->PathfindGoal.x, peep->PathfindGoal.y, peep->PathfindGoal.z, peep->PathfindGoal.direction }; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_GOAL, args, 0, screenCoords); + auto ft = Formatter(); + ft.Add(peep->PathfindGoal.x); + ft.Add(peep->PathfindGoal.y); + ft.Add(peep->PathfindGoal.z); + ft.Add(peep->PathfindGoal.direction); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_GOAL, ft.Data(), 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY, nullptr, 0, screenCoords); @@ -2255,8 +2287,12 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi) screenCoords.x += 10; for (auto& point : peep->PathfindHistory) { - int32_t args[] = { point.x, point.y, point.z, point.direction }; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY_ITEM, args, 0, screenCoords); + auto ft = Formatter(); + ft.Add(point.x); + ft.Add(point.y); + ft.Add(point.z); + ft.Add(point.direction); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY_ITEM, ft.Data(), 0, screenCoords); screenCoords.y += LIST_ROW_HEIGHT; } screenCoords.x -= 10; diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index 1a3bda796b..912c8ab47a 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -734,10 +734,10 @@ static void window_guest_list_paint(rct_window* w, rct_drawpixelinfo* dpi) if (_window_guest_list_selected_tab == PAGE_INDIVIDUAL) { screenCoords = w->windowPos + ScreenCoordsXY{ 4, window_guest_list_widgets[WIDX_GUEST_LIST].bottom + 2 }; - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(static_cast(GuestList.size())); gfx_draw_string_left( - dpi, (GuestList.size() == 1 ? STR_FORMAT_NUM_GUESTS_SINGULAR : STR_FORMAT_NUM_GUESTS_PLURAL), gCommonFormatArgs, + dpi, (GuestList.size() == 1 ? STR_FORMAT_NUM_GUESTS_SINGULAR : STR_FORMAT_NUM_GUESTS_PLURAL), ft.Data(), COLOUR_BLACK, screenCoords); } } @@ -784,7 +784,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, { continue; } - auto ft = Formatter::Common(); + auto ft = Formatter(); peep->FormatNameTo(ft); DrawTextEllipsised(dpi, { 0, y }, 113, format, ft, COLOUR_BLACK); @@ -799,7 +799,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, gfx_draw_sprite(dpi, STR_ENTER_SELECTION_SIZE, { 112, y + 1 }, 0); // Action - ft = Formatter::Common(); + ft = Formatter(); peep->FormatActionTo(ft); DrawTextEllipsised(dpi, { 133, y }, 314, format, ft, COLOUR_BLACK); break; @@ -815,7 +815,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, if (thought->freshness > 5) break; - ft = Formatter::Common(); + ft = Formatter(); peep_thought_set_format_args(&peep->Thoughts[j], ft); DrawTextEllipsised(dpi, { 118, y }, 329, format, ft, COLOUR_BLACK); break; @@ -863,7 +863,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, DrawTextEllipsised(dpi, { 0, y }, 414, format, ft, COLOUR_BLACK); // Draw guest count - ft = Formatter::Common(); + ft = Formatter(); ft.Add(STR_GUESTS_COUNT_COMMA_SEP); ft.Add(numGuests); DrawTextBasic(dpi, { 326, y }, format, ft, COLOUR_BLACK, TextAlignment::RIGHT); diff --git a/src/openrct2-ui/windows/InstallTrack.cpp b/src/openrct2-ui/windows/InstallTrack.cpp index bccc5e388b..5910330865 100644 --- a/src/openrct2-ui/windows/InstallTrack.cpp +++ b/src/openrct2-ui/windows/InstallTrack.cpp @@ -242,8 +242,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) { // Scenery not available DrawTextEllipsised( - dpi, screenPos, 308, STR_DESIGN_INCLUDES_SCENERY_WHICH_IS_UNAVAILABLE, Formatter::Common(), COLOUR_BLACK, - TextAlignment::CENTRE); + dpi, screenPos, 308, STR_DESIGN_INCLUDES_SCENERY_WHICH_IS_UNAVAILABLE, {}, COLOUR_BLACK, TextAlignment::CENTRE); screenPos.y -= LIST_ROW_HEIGHT; } } @@ -253,9 +252,13 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) // 0x006D3CF1 -- 0x006d3d71 missing // Track design name & type - auto trackName = _trackName.c_str(); - gfx_draw_string_left(dpi, STR_TRACK_DESIGN_NAME, &trackName, COLOUR_BLACK, screenPos - ScreenCoordsXY{ 1, 0 }); - screenPos.y += LIST_ROW_HEIGHT; + { + auto trackName = _trackName.c_str(); + auto ft = Formatter(); + ft.Add(trackName); + gfx_draw_string_left(dpi, STR_TRACK_DESIGN_NAME, ft.Data(), COLOUR_BLACK, screenPos - ScreenCoordsXY{ 1, 0 }); + screenPos.y += LIST_ROW_HEIGHT; + } RideNaming rideName; rct_string_id friendlyTrackName; diff --git a/src/openrct2/Game.cpp b/src/openrct2/Game.cpp index c04bc4bc3b..614a077178 100644 --- a/src/openrct2/Game.cpp +++ b/src/openrct2/Game.cpp @@ -466,8 +466,6 @@ void game_fix_save_vars() peep->CurrentRide = RIDE_ID_NULL; continue; } - auto ft = Formatter::Common(); - ft.Add(peep->Id); auto curName = peep->GetName(); log_warning( "Peep %u (%s) has invalid ride station = %u for ride %u.", peep->sprite_index, curName.c_str(), srcStation, diff --git a/src/openrct2/paint/tile_element/Paint.Banner.cpp b/src/openrct2/paint/tile_element/Paint.Banner.cpp index 67004128f0..3decf03fa6 100644 --- a/src/openrct2/paint/tile_element/Paint.Banner.cpp +++ b/src/openrct2/paint/tile_element/Paint.Banner.cpp @@ -101,17 +101,16 @@ void banner_paint(paint_session* session, uint8_t direction, int32_t height, con scrollingMode += direction; - auto ft = Formatter::Common(); + auto ft = Formatter(); banner->FormatTextTo(ft, /*addColour*/ true); if (gConfigGeneral.upper_case_banners) { - format_string_to_upper( - gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string_to_upper(gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, ft.Data()); } else { - format_string(gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string(gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; diff --git a/src/openrct2/paint/tile_element/Paint.Entrance.cpp b/src/openrct2/paint/tile_element/Paint.Entrance.cpp index 8886761e9b..757301db1e 100644 --- a/src/openrct2/paint/tile_element/Paint.Entrance.cpp +++ b/src/openrct2/paint/tile_element/Paint.Entrance.cpp @@ -161,10 +161,7 @@ static void ride_entrance_exit_paint(paint_session* session, uint8_t direction, if (!is_exit && !(tile_element->IsGhost()) && tile_element->AsEntrance()->GetRideIndex() != RIDE_ID_NULL && stationObj->ScrollingMode != SCROLLING_MODE_NONE) { - // clear next 8 bytes - Formatter::Common().Add(0).Add(0); - - auto ft = Formatter::Common(); + auto ft = Formatter(); ft.Add(STR_RIDE_ENTRANCE_NAME); if (ride->status == RIDE_STATUS_OPEN && !(ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN)) @@ -179,11 +176,11 @@ static void ride_entrance_exit_paint(paint_session* session, uint8_t direction, utf8 entrance_string[256]; if (gConfigGeneral.upper_case_banners) { - format_string_to_upper(entrance_string, sizeof(entrance_string), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string_to_upper(entrance_string, sizeof(entrance_string), STR_BANNER_TEXT_FORMAT, ft.Data()); } else { - format_string(entrance_string, sizeof(entrance_string), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string(entrance_string, sizeof(entrance_string), STR_BANNER_TEXT_FORMAT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; @@ -269,8 +266,7 @@ static void park_entrance_paint(paint_session* session, uint8_t direction, int32 break; { - Formatter::Common().Add(0).Add(0); - auto ft = Formatter::Common(); + auto ft = Formatter(); if (gParkFlags & PARK_FLAGS_PARK_OPEN) { @@ -288,11 +284,11 @@ static void park_entrance_paint(paint_session* session, uint8_t direction, int32 utf8 park_name[256]; if (gConfigGeneral.upper_case_banners) { - format_string_to_upper(park_name, sizeof(park_name), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string_to_upper(park_name, sizeof(park_name), STR_BANNER_TEXT_FORMAT, ft.Data()); } else { - format_string(park_name, sizeof(park_name), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string(park_name, sizeof(park_name), STR_BANNER_TEXT_FORMAT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; diff --git a/src/openrct2/paint/tile_element/Paint.LargeScenery.cpp b/src/openrct2/paint/tile_element/Paint.LargeScenery.cpp index fe54b066e5..30211e6329 100644 --- a/src/openrct2/paint/tile_element/Paint.LargeScenery.cpp +++ b/src/openrct2/paint/tile_element/Paint.LargeScenery.cpp @@ -301,7 +301,6 @@ void large_scenery_paint(paint_session* session, uint8_t direction, uint16_t hei } // 6B8331: // Draw sign text: - Formatter::Common().Add(0).Add(0); int32_t textColour = tileElement->AsLargeScenery()->GetSecondaryColour(); if (dword_F4387C) { @@ -311,10 +310,10 @@ void large_scenery_paint(paint_session* session, uint8_t direction, uint16_t hei auto banner = tileElement->AsLargeScenery()->GetBanner(); if (banner != nullptr) { - auto ft = Formatter::Common(); + auto ft = Formatter(); banner->FormatTextTo(ft); utf8 signString[256]; - format_string(signString, sizeof(signString), STR_STRINGID, gCommonFormatArgs); + format_string(signString, sizeof(signString), STR_STRINGID, ft.Data()); rct_large_scenery_text* text = entry->large_scenery.text; int32_t y_offset = (text->offset[(direction & 1)].y * 2); if (text->flags & LARGE_SCENERY_TEXT_FLAG_VERTICAL) @@ -429,16 +428,16 @@ void large_scenery_paint(paint_session* session, uint8_t direction, uint16_t hei auto banner = tileElement->AsLargeScenery()->GetBanner(); if (banner != nullptr) { - auto ft = Formatter::Common(); + auto ft = Formatter(); banner->FormatTextTo(ft); utf8 signString[256]; if (gConfigGeneral.upper_case_banners) { - format_string_to_upper(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, gCommonFormatArgs); + format_string_to_upper(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, ft.Data()); } else { - format_string(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, gCommonFormatArgs); + format_string(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; diff --git a/src/openrct2/paint/tile_element/Paint.Path.cpp b/src/openrct2/paint/tile_element/Paint.Path.cpp index 9ad09c2b27..67e31b9d1b 100644 --- a/src/openrct2/paint/tile_element/Paint.Path.cpp +++ b/src/openrct2/paint/tile_element/Paint.Path.cpp @@ -447,11 +447,7 @@ static void sub_6A4101( uint16_t scrollingMode = railingEntry->scrolling_mode; scrollingMode += direction; - // This is required due to scrolling_test_setup doing a memcmp of another set - // of args and see if it matches these args - Formatter::Common().Add(0).Add(0); - - auto ft = Formatter::Common(); + auto ft = Formatter(); if (ride->status == RIDE_STATUS_OPEN && !(ride->lifecycle_flags & RIDE_LIFECYCLE_BROKEN_DOWN)) { @@ -465,12 +461,11 @@ static void sub_6A4101( if (gConfigGeneral.upper_case_banners) { format_string_to_upper( - gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, ft.Data()); } else { - format_string( - gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, gCommonFormatArgs); + format_string(gCommonStringFormatBuffer, sizeof(gCommonStringFormatBuffer), STR_BANNER_TEXT_FORMAT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; diff --git a/src/openrct2/paint/tile_element/Paint.Wall.cpp b/src/openrct2/paint/tile_element/Paint.Wall.cpp index 5a984e73bc..68c4feb219 100644 --- a/src/openrct2/paint/tile_element/Paint.Wall.cpp +++ b/src/openrct2/paint/tile_element/Paint.Wall.cpp @@ -434,16 +434,16 @@ void fence_paint(paint_session* session, uint8_t direction, int32_t height, cons auto banner = tile_element->AsWall()->GetBanner(); if (banner != nullptr && !banner->IsNull()) { - auto ft = Formatter::Common(); + auto ft = Formatter(); banner->FormatTextTo(ft); utf8 signString[256]; if (gConfigGeneral.upper_case_banners) { - format_string_to_upper(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, gCommonFormatArgs); + format_string_to_upper(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, ft.Data()); } else { - format_string(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, gCommonFormatArgs); + format_string(signString, sizeof(signString), STR_SCROLLING_SIGN_TEXT, ft.Data()); } gCurrentFontSpriteBase = FONT_SPRITE_BASE_TINY; diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 30be4abcd5..4b8ad6bec3 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -1696,7 +1696,7 @@ loc_69B221: UpdateSpriteType(); if (PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); FormatNameTo(ft); ft.Add(ShopItems[shopItem].Naming.Indefinite); if (gConfigNotifications.guest_bought_item) @@ -3730,7 +3730,7 @@ void Guest::UpdateRideAdvanceThroughEntrance() ride->current_issues |= RIDE_ISSUE_GUESTS_STUCK; ride->last_issue_time = gCurrentTicks; - auto ft = Formatter::Common(); + auto ft = Formatter(); ride->FormatNameTo(ft); if (gConfigNotifications.ride_warnings) { @@ -3892,7 +3892,7 @@ void Guest::UpdateRideFreeVehicleEnterRide(Ride* ride) if (PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); FormatNameTo(ft); ride->FormatNameTo(ft); @@ -5009,7 +5009,7 @@ void Guest::UpdateRideLeaveExit() if (ride != nullptr && (PeepFlags & PEEP_FLAGS_TRACKING)) { - auto ft = Formatter::Common(); + auto ft = Formatter(); FormatNameTo(ft); ride->FormatNameTo(ft); diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 0ff4e52b12..8cf3075996 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -862,7 +862,7 @@ void Peep::UpdateFalling() if (gConfigNotifications.guest_died) { - auto ft = Formatter::Common(); + auto ft = Formatter(); FormatNameTo(ft); News::AddItemToQueue(News::ItemType::Blank, STR_NEWS_ITEM_GUEST_DROWNED, x | (y << 16), ft); } @@ -2380,7 +2380,7 @@ static void peep_interact_with_entrance(Peep* peep, const CoordsXYE& coords, uin peep->TimeInQueue = 0; if (peep->PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); peep->FormatNameTo(ft); ride->FormatNameTo(ft); if (gConfigNotifications.guest_queuing_for_ride) @@ -2443,7 +2443,7 @@ static void peep_interact_with_entrance(Peep* peep, const CoordsXYE& coords, uin peep->Var37 = 0; if (peep->PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); peep->FormatNameTo(ft); if (gConfigNotifications.guest_left_park) { @@ -2809,7 +2809,7 @@ static void peep_interact_with_path(Peep* peep, const CoordsXYE& coords) peep->TimeInQueue = 0; if (peep->PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); peep->FormatNameTo(ft); ride->FormatNameTo(ft); if (gConfigNotifications.guest_queuing_for_ride) @@ -2918,7 +2918,7 @@ static bool peep_interact_with_shop(Peep* peep, const CoordsXYE& coords) ride->cur_num_customers++; if (peep->PeepFlags & PEEP_FLAGS_TRACKING) { - auto ft = Formatter::Common(); + auto ft = Formatter(); peep->FormatNameTo(ft); ride->FormatNameTo(ft); rct_string_id string_id = ride_type_has_flag(ride->type, RIDE_TYPE_FLAG_IN_RIDE) ? STR_PEEP_TRACKING_PEEP_IS_IN_X