diff --git a/src/openrct2-ui/windows/EditorObjectSelection.cpp b/src/openrct2-ui/windows/EditorObjectSelection.cpp index 7551712121..e3ad31f09f 100644 --- a/src/openrct2-ui/windows/EditorObjectSelection.cpp +++ b/src/openrct2-ui/windows/EditorObjectSelection.cpp @@ -1080,7 +1080,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.x, screenPos.y + 5, width, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_BLACK); + dpi, gCommonFormatArgs, screenPos + ScreenCoordsXY{ 0, 5 }, width, STR_WINDOW_COLOUR_2_STRINGID, COLOUR_BLACK); } auto screenPos = w->windowPos + ScreenCoordsXY{ w->width - 5, w->height - (12 * 4) }; diff --git a/src/openrct2-ui/windows/ObjectLoadError.cpp b/src/openrct2-ui/windows/ObjectLoadError.cpp index 79594a5988..d52c80d473 100644 --- a/src/openrct2-ui/windows/ObjectLoadError.cpp +++ b/src/openrct2-ui/windows/ObjectLoadError.cpp @@ -561,7 +561,7 @@ static void window_object_load_error_paint(rct_window* w, rct_drawpixelinfo* dpi auto ft = Formatter::Common(); ft.Add(STR_OBJECT_ERROR_WINDOW_EXPLANATION); gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, { w->windowPos.x + 5, w->windowPos.y + 18 }, WW - 10, STR_BLACK_STRING, COLOUR_BLACK); + dpi, gCommonFormatArgs, w->windowPos + ScreenCoordsXY{ 5, 18 }, WW - 10, STR_BLACK_STRING, COLOUR_BLACK); // Draw file name ft = Formatter::Common(); diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index 974ded5125..d66effb40a 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -348,14 +348,12 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp if (gResearchProgressStage == RESEARCH_STAGE_FINISHED_ALL) { stringId = STR_RESEARCH_UNKNOWN; - gfx_draw_string_left_wrapped( - dpi, &stringId, screenCoords.x, screenCoords.y, 296, STR_RESEARCH_TYPE_LABEL, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, &stringId, screenCoords, 296, STR_RESEARCH_TYPE_LABEL, COLOUR_BLACK); screenCoords.y += 25; // Progress stringId = STR_RESEARCH_COMPLETED_AL; - gfx_draw_string_left_wrapped( - dpi, &stringId, screenCoords.x, screenCoords.y, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, &stringId, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK); screenCoords.y += 15; auto ft = Formatter::Common(); @@ -391,13 +389,12 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp } } } - gfx_draw_string_left_wrapped(dpi, &strings, screenCoords.x, screenCoords.y, 296, label, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, &strings, screenCoords, 296, label, COLOUR_BLACK); screenCoords.y += 25; // Progress stringId = ResearchStageNames[gResearchProgressStage]; - gfx_draw_string_left_wrapped( - dpi, &stringId, screenCoords.x, screenCoords.y, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, &stringId, screenCoords, 296, STR_RESEARCH_PROGRESS_LABEL, COLOUR_BLACK); screenCoords.y += 15; // Expected @@ -446,7 +443,7 @@ void window_research_development_page_paint(rct_window* w, rct_drawpixelinfo* dp } } - gfx_draw_string_left_wrapped(dpi, &strings, screenCoords.x, screenCoords.y, 266, lastDevelopmentFormat, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, &strings, screenCoords, 266, lastDevelopmentFormat, COLOUR_BLACK); } } diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index cf486f31f0..f8f7ad2565 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -3192,7 +3192,7 @@ static void window_ride_vehicle_paint(rct_window* w, rct_drawpixelinfo* dpi) // Description screenCoords.y += gfx_draw_string_left_wrapped( - dpi, &rideEntry->naming.Description, screenCoords.x, screenCoords.y, 300, STR_BLACK_STRING, COLOUR_BLACK); + dpi, &rideEntry->naming.Description, screenCoords, 300, STR_BLACK_STRING, COLOUR_BLACK); screenCoords.y += 2; // Capacity @@ -4399,7 +4399,7 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi) { if (stringId == STR_CALLING_MECHANIC || stringId == STR_NO_MECHANICS_ARE_HIRED_MESSAGE) { - gfx_draw_string_left_wrapped(dpi, nullptr, screenCoords.x + 4, screenCoords.y, 280, stringId, COLOUR_BLACK); + gfx_draw_string_left_wrapped(dpi, nullptr, screenCoords + ScreenCoordsXY{ 4, 0 }, 280, stringId, COLOUR_BLACK); } else { @@ -4408,7 +4408,7 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi) { peep->FormatNameTo(gCommonFormatArgs); gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenCoords.x + 4, screenCoords.y, 280, stringId, COLOUR_BLACK); + dpi, gCommonFormatArgs, screenCoords + ScreenCoordsXY{ 4, 0 }, 280, stringId, COLOUR_BLACK); } } } @@ -7106,8 +7106,7 @@ static void window_ride_customer_paint(rct_window* w, rct_drawpixelinfo* dpi) { queueTime = ride->GetMaxQueueTime(); stringId = queueTime == 1 ? STR_QUEUE_TIME_MINUTE : STR_QUEUE_TIME_MINUTES; - screenCoords.y += gfx_draw_string_left_wrapped( - dpi, &queueTime, screenCoords.x, screenCoords.y, 308, stringId, COLOUR_BLACK); + screenCoords.y += gfx_draw_string_left_wrapped(dpi, &queueTime, screenCoords, 308, stringId, COLOUR_BLACK); screenCoords.y += 5; } diff --git a/src/openrct2-ui/windows/TitleScenarioSelect.cpp b/src/openrct2-ui/windows/TitleScenarioSelect.cpp index 947f3f9abb..7b956d69b7 100644 --- a/src/openrct2-ui/windows/TitleScenarioSelect.cpp +++ b/src/openrct2-ui/windows/TitleScenarioSelect.cpp @@ -479,7 +479,7 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) gfx_draw_string_centred_clipped( dpi, STR_SCENARIO_LOCKED, nullptr, COLOUR_BLACK, screenPos + ScreenCoordsXY{ 85, 0 }, 170); gfx_draw_string_left_wrapped( - dpi, nullptr, screenPos.x, screenPos.y + 15, 170, STR_SCENARIO_LOCKED_DESC, COLOUR_BLACK); + dpi, nullptr, screenPos + ScreenCoordsXY{ 0, 15 }, 170, STR_SCENARIO_LOCKED_DESC, COLOUR_BLACK); } return; } @@ -513,9 +513,7 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) ft = Formatter::Common(); ft.Add(STR_STRING); ft.Add(scenario->details); - screenPos.y += gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenPos.x, screenPos.y, 170, STR_BLACK_STRING, COLOUR_BLACK) - + 5; + screenPos.y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, screenPos, 170, STR_BLACK_STRING, COLOUR_BLACK) + 5; // Scenario objective ft = Formatter::Common(); @@ -523,9 +521,7 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) ft.Add(scenario->objective_arg_3); ft.Add(date_get_total_months(MONTH_OCTOBER, scenario->objective_arg_1)); ft.Add(scenario->objective_arg_2); - screenPos.y += gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenPos.x, screenPos.y, 170, STR_OBJECTIVE, COLOUR_BLACK) - + 5; + screenPos.y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, screenPos, 170, STR_OBJECTIVE, COLOUR_BLACK) + 5; // Scenario score if (scenario->highscore != nullptr) @@ -541,7 +537,7 @@ static void window_scenarioselect_paint(rct_window* w, rct_drawpixelinfo* dpi) ft.Add(completedByName); ft.Add(scenario->highscore->company_value); screenPos.y += gfx_draw_string_left_wrapped( - dpi, gCommonFormatArgs, screenPos.x, screenPos.y, 170, STR_COMPLETED_BY_WITH_COMPANY_VALUE, COLOUR_BLACK); + dpi, gCommonFormatArgs, screenPos, 170, STR_COMPLETED_BY_WITH_COMPANY_VALUE, COLOUR_BLACK); } } diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 07f095c7ac..6f23443bd3 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -664,8 +664,6 @@ void gfx_draw_string_centred_clipped( void gfx_draw_string_right_clipped( rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords, int32_t width); -int32_t gfx_draw_string_left_wrapped( - rct_drawpixelinfo* dpi, void* args, int32_t x, int32_t y, int32_t width, rct_string_id format, uint8_t colour); int32_t gfx_draw_string_left_wrapped( rct_drawpixelinfo* dpi, void* args, const ScreenCoordsXY& coords, int32_t width, rct_string_id format, uint8_t colour); int32_t gfx_draw_string_centred_wrapped( diff --git a/src/openrct2/drawing/Text.cpp b/src/openrct2/drawing/Text.cpp index f249806a3d..f05457dae9 100644 --- a/src/openrct2/drawing/Text.cpp +++ b/src/openrct2/drawing/Text.cpp @@ -207,12 +207,6 @@ void gfx_draw_string_right_clipped( } // Wrapping -int32_t gfx_draw_string_left_wrapped( - rct_drawpixelinfo* dpi, void* args, int32_t x, int32_t y, int32_t width, rct_string_id format, uint8_t colour) -{ - return gfx_draw_string_left_wrapped(dpi, args, { x, y }, width, format, colour); -} - int32_t gfx_draw_string_left_wrapped( rct_drawpixelinfo* dpi, void* args, const ScreenCoordsXY& coords, int32_t width, rct_string_id format, uint8_t colour) { diff --git a/src/openrct2/interface/Chat.cpp b/src/openrct2/interface/Chat.cpp index a1ffe5dedc..c0b41344b9 100644 --- a/src/openrct2/interface/Chat.cpp +++ b/src/openrct2/interface/Chat.cpp @@ -142,12 +142,11 @@ void chat_draw(rct_drawpixelinfo* dpi, uint8_t chatBackgroundColor) INSET_RECT_FLAG_BORDER_INSET); // Textbox } - int32_t x = _chatLeft + 5; - int32_t y = _chatBottom - inputLineHeight - 20; + auto screenCoords = ScreenCoordsXY{ _chatLeft + 5, _chatBottom - inputLineHeight - 20 }; int32_t stringHeight = 0; // Draw chat history - for (int32_t i = 0; i < CHAT_HISTORY_SIZE; i++, y -= stringHeight) + for (int32_t i = 0; i < CHAT_HISTORY_SIZE; i++, screenCoords.y -= stringHeight) { uint32_t expireTime = chat_history_get_time(i) + 10000; if (!gChatOpen && platform_get_ticks() > expireTime) @@ -157,10 +156,10 @@ void chat_draw(rct_drawpixelinfo* dpi, uint8_t chatBackgroundColor) safe_strcpy(lineBuffer, chat_history_get(i), sizeof(lineBuffer)); - stringHeight = chat_history_draw_string(dpi, static_cast(&lineCh), ScreenCoordsXY(x, y), _chatWidth - 10) + 5; - gfx_set_dirty_blocks(x, y - stringHeight, x + _chatWidth, y + 20); + stringHeight = chat_history_draw_string(dpi, static_cast(&lineCh), screenCoords, _chatWidth - 10) + 5; + gfx_set_dirty_blocks(screenCoords.x, screenCoords.y - stringHeight, screenCoords.x + _chatWidth, screenCoords.y + 20); - if ((y - stringHeight) < 50) + if ((screenCoords.y - stringHeight) < 50) { break; } @@ -173,20 +172,22 @@ void chat_draw(rct_drawpixelinfo* dpi, uint8_t chatBackgroundColor) lineCh = utf8_write_codepoint(lineCh, FORMAT_CELADON); safe_strcpy(lineCh, _chatCurrentLine, sizeof(_chatCurrentLine)); - y = _chatBottom - inputLineHeight - 5; + screenCoords.y = _chatBottom - inputLineHeight - 5; lineCh = lineBuffer; inputLineHeight = gfx_draw_string_left_wrapped( - dpi, static_cast(&lineCh), x, y + 3, _chatWidth - 10, STR_STRING, TEXT_COLOUR_255); - gfx_set_dirty_blocks(x, y, x + _chatWidth, y + inputLineHeight + 15); + dpi, static_cast(&lineCh), screenCoords + ScreenCoordsXY{ 0, 3 }, _chatWidth - 10, STR_STRING, + TEXT_COLOUR_255); + gfx_set_dirty_blocks( + screenCoords.x, screenCoords.y, screenCoords.x + _chatWidth, screenCoords.y + inputLineHeight + 15); // TODO: Show caret if the input text has multiple lines if (_chatCaretTicks < 15 && gfx_get_string_width(lineBuffer) < (_chatWidth - 10)) { std::memcpy(lineBuffer, _chatCurrentLine, _chatTextInputSession->SelectionStart); lineBuffer[_chatTextInputSession->SelectionStart] = 0; - int32_t caretX = x + gfx_get_string_width(lineBuffer); - int32_t caretY = y + 14; + int32_t caretX = screenCoords.x + gfx_get_string_width(lineBuffer); + int32_t caretY = screenCoords.y + 14; gfx_fill_rect(dpi, caretX, caretY, caretX + 6, caretY + 1, PALETTE_INDEX_56); }