diff --git a/src/openrct2-ui/windows/Guest.cpp b/src/openrct2-ui/windows/Guest.cpp index dbaf26b4ac..6bb0b33a47 100644 --- a/src/openrct2-ui/windows/Guest.cpp +++ b/src/openrct2-ui/windows/Guest.cpp @@ -1124,7 +1124,7 @@ void window_guest_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) screenPos.x = widget->right - widget->left - w->list_information_type; peep_thought_set_format_args(&peep->Thoughts[i]); - gfx_draw_string_left(&dpi_marquee, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, screenPos.x, 0); + gfx_draw_string_left(&dpi_marquee, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, { screenPos.x, 0 }); } /** @@ -1397,13 +1397,13 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) Peep* peep = GET_PEEP(w->number); // Not sure why this is not stats widgets - // cx - int32_t x = w->windowPos.x + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].left + 4; - // dx - int32_t y = w->windowPos.y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 4; + // cx dx + auto screenCoords = w->windowPos + + ScreenCoordsXY{ window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].left + 4, + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; // Happiness - gfx_draw_string_left(dpi, STR_GUEST_STAT_HAPPINESS_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_HAPPINESS_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t happiness = peep->Happiness; if (happiness < 10) @@ -1413,11 +1413,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebp |= BAR_BLINK; } - window_guest_stats_bars_paint(happiness, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(happiness, screenCoords.x, screenCoords.y, w, dpi, ebp); // Energy - y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_ENERGY_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + screenCoords.y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_ENERGY_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t energy = ((peep->Energy - PEEP_MIN_ENERGY) * 255) / (PEEP_MAX_ENERGY - PEEP_MIN_ENERGY); ebp = COLOUR_BRIGHT_GREEN; @@ -1427,11 +1427,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) } if (energy < 10) energy = 10; - window_guest_stats_bars_paint(energy, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(energy, screenCoords.x, screenCoords.y, w, dpi, ebp); // Hunger - y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_HUNGER_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + screenCoords.y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_HUNGER_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t hunger = peep->Hunger; if (hunger > 190) @@ -1449,11 +1449,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebp |= BAR_BLINK; } - window_guest_stats_bars_paint(hunger, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(hunger, screenCoords.x, screenCoords.y, w, dpi, ebp); // Thirst - y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_THIRST_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + screenCoords.y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_THIRST_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t thirst = peep->Thirst; if (thirst > 190) @@ -1471,11 +1471,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebp |= BAR_BLINK; } - window_guest_stats_bars_paint(thirst, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(thirst, screenCoords.x, screenCoords.y, w, dpi, ebp); // Nausea - y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + screenCoords.y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t nausea = peep->Nausea - 32; @@ -1489,11 +1489,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebp |= BAR_BLINK; } - window_guest_stats_bars_paint(nausea, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(nausea, screenCoords.x, screenCoords.y, w, dpi, ebp); // Toilet - y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_GUEST_STAT_TOILET_LABEL, gCommonFormatArgs, COLOUR_BLACK, x, y); + screenCoords.y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_TOILET_LABEL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); int32_t toilet = peep->Toilet - 32; if (toilet > 210) @@ -1510,10 +1510,10 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebp |= BAR_BLINK; } - window_guest_stats_bars_paint(toilet, x, y, w, dpi, ebp); + window_guest_stats_bars_paint(toilet, screenCoords.x, screenCoords.y, w, dpi, ebp); // Time in park - y += LIST_ROW_HEIGHT + 1; + screenCoords.y += LIST_ROW_HEIGHT + 1; if (peep->TimeInPark != -1) { int32_t eax = gScenarioTicks; @@ -1521,15 +1521,17 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) eax >>= 11; auto ft = Formatter::Common(); ft.Add(eax & 0xFFFF); - gfx_draw_string_left(dpi, STR_GUEST_STAT_TIME_IN_PARK, gCommonFormatArgs, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_TIME_IN_PARK, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } - y += LIST_ROW_HEIGHT + 9; - gfx_fill_rect_inset(dpi, x, y - 6, x + 179, y - 5, w->colours[1], INSET_RECT_FLAG_BORDER_INSET); + screenCoords.y += LIST_ROW_HEIGHT + 9; + gfx_fill_rect_inset( + dpi, screenCoords.x, screenCoords.y - 6, screenCoords.x + 179, screenCoords.y - 5, w->colours[1], + INSET_RECT_FLAG_BORDER_INSET); // Preferred Ride - gfx_draw_string_left(dpi, STR_GUEST_STAT_PREFERRED_RIDE, nullptr, COLOUR_BLACK, x, y); - y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_GUEST_STAT_PREFERRED_RIDE, nullptr, COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT; // Intensity auto ft = Formatter::Common(); @@ -1548,7 +1550,7 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) ft.Add(maxIntensity); } - gfx_draw_string_left(dpi, string_id, gCommonFormatArgs, COLOUR_BLACK, x + 4, y); + gfx_draw_string_left(dpi, string_id, gCommonFormatArgs, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 }); // Nausea tolerance static constexpr const rct_string_id nauseaTolerances[] = { @@ -1557,11 +1559,11 @@ void window_guest_stats_paint(rct_window* w, rct_drawpixelinfo* dpi) STR_PEEP_STAT_NAUSEA_TOLERANCE_AVERAGE, STR_PEEP_STAT_NAUSEA_TOLERANCE_HIGH, }; - y += LIST_ROW_HEIGHT; + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_NAUSEA_TOLERANCE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } /** @@ -1695,14 +1697,14 @@ void window_guest_rides_paint(rct_window* w, rct_drawpixelinfo* dpi) Peep* peep = GET_PEEP(w->number); - // cx - int32_t x = w->windowPos.x + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].left + 2; - // dx - int32_t y = w->windowPos.y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 2; + // cx dx + auto screenCoords = w->windowPos + + ScreenCoordsXY{ window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].left + 2, + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].top + 2 }; - gfx_draw_string_left(dpi, STR_GUEST_LABEL_RIDES_BEEN_ON, nullptr, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_LABEL_RIDES_BEEN_ON, nullptr, COLOUR_BLACK, screenCoords); - y = w->windowPos.y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].bottom - 12; + screenCoords.y = w->windowPos.y + window_guest_rides_widgets[WIDX_PAGE_BACKGROUND].bottom - 12; auto ft = Formatter::Common(); ft.Add(STR_PEEP_FAVOURITE_RIDE_NOT_AVAILABLE); @@ -1714,8 +1716,7 @@ void window_guest_rides_paint(rct_window* w, rct_drawpixelinfo* dpi) ride->FormatNameTo(gCommonFormatArgs); } } - ScreenCoordsXY coords = { x, y }; - gfx_draw_string_left_clipped(dpi, STR_FAVOURITE_RIDE, gCommonFormatArgs, COLOUR_BLACK, coords, w->width - 14); + gfx_draw_string_left_clipped(dpi, STR_FAVOURITE_RIDE, gCommonFormatArgs, COLOUR_BLACK, screenCoords, w->width - 14); } /** @@ -1746,7 +1747,7 @@ void window_guest_rides_scroll_paint(rct_window* w, rct_drawpixelinfo* dpi, int3 if (ride != nullptr) { ride->FormatNameTo(gCommonFormatArgs); - gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, 0, y - 1); + gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, { 0, y - 1 }); } } } @@ -1780,84 +1781,86 @@ void window_guest_finance_paint(rct_window* w, rct_drawpixelinfo* dpi) Peep* peep = GET_PEEP(w->number); - // cx - int32_t x = w->windowPos.x + window_guest_finance_widgets[WIDX_PAGE_BACKGROUND].left + 4; - // dx - int32_t y = w->windowPos.y + window_guest_finance_widgets[WIDX_PAGE_BACKGROUND].top + 4; + // cx dx + auto screenCoords = w->windowPos + + ScreenCoordsXY{ window_guest_finance_widgets[WIDX_PAGE_BACKGROUND].left + 4, + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_IN_POCKET, gCommonFormatArgs, COLOUR_BLACK, screenCoords); // Cash spent - y += LIST_ROW_HEIGHT; + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_STAT_CASH_SPENT, gCommonFormatArgs, COLOUR_BLACK, screenCoords); - y += LIST_ROW_HEIGHT * 2; - gfx_fill_rect_inset(dpi, x, y - 6, x + 179, y - 5, w->colours[1], INSET_RECT_FLAG_BORDER_INSET); + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_ENTRANCE_FEE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); // Paid on rides - y += LIST_ROW_HEIGHT; + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } else { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE, gCommonFormatArgs, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_RIDE, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } // Paid on food - y += LIST_ROW_HEIGHT; + 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, x, y); + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_FOOD, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } // Paid on drinks - y += LIST_ROW_HEIGHT; + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK_PLURAL, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } else { - gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK, gCommonFormatArgs, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_DRINK, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } // Paid on souvenirs - y += LIST_ROW_HEIGHT; + 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, x, y); + 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, x, y); + gfx_draw_string_left(dpi, STR_GUEST_EXPENSES_SOUVENIR, gCommonFormatArgs, COLOUR_BLACK, screenCoords); } } @@ -1897,14 +1900,14 @@ void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi) Peep* peep = GET_PEEP(w->number); - // cx - int32_t x = w->windowPos.x + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].left + 4; - // dx - int32_t y = w->windowPos.y + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].top + 4; + // cx dx + auto screenCoords = w->windowPos + + ScreenCoordsXY{ window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].left + 4, + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; - gfx_draw_string_left(dpi, STR_GUEST_RECENT_THOUGHTS_LABEL, nullptr, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_GUEST_RECENT_THOUGHTS_LABEL, nullptr, COLOUR_BLACK, screenCoords); - y += 10; + screenCoords.y += 10; for (rct_peep_thought* thought = peep->Thoughts; thought < &peep->Thoughts[PEEP_MAX_THOUGHTS]; ++thought) { if (thought->type == PEEP_THOUGHT_TYPE_NONE) @@ -1916,10 +1919,11 @@ void window_guest_thoughts_paint(rct_window* w, rct_drawpixelinfo* dpi) - window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].left - 8; peep_thought_set_format_args(thought); - y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, { x, y }, width, STR_BLACK_STRING, COLOUR_BLACK); + screenCoords.y += gfx_draw_string_left_wrapped( + dpi, gCommonFormatArgs, screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK); // If this is the last visible line end drawing. - if (y > w->windowPos.y + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].bottom - 32) + if (screenCoords.y > w->windowPos.y + window_guest_thoughts_widgets[WIDX_PAGE_BACKGROUND].bottom - 32) return; } } @@ -2054,31 +2058,31 @@ void window_guest_inventory_paint(rct_window* w, rct_drawpixelinfo* dpi) if (guest != nullptr) { rct_widget* pageBackgroundWidget = &window_guest_inventory_widgets[WIDX_PAGE_BACKGROUND]; - int32_t x = w->windowPos.x + pageBackgroundWidget->left + 4; - int32_t y = w->windowPos.y + pageBackgroundWidget->top + 2; + auto screenCoords = w->windowPos + ScreenCoordsXY{ pageBackgroundWidget->left + 4, pageBackgroundWidget->top + 2 }; int32_t itemNameWidth = pageBackgroundWidget->right - pageBackgroundWidget->left - 8; int32_t maxY = w->windowPos.y + w->height - 22; int32_t numItems = 0; - gfx_draw_string_left(dpi, STR_CARRYING, nullptr, COLOUR_BLACK, x, y); - y += 10; + gfx_draw_string_left(dpi, STR_CARRYING, nullptr, COLOUR_BLACK, screenCoords); + screenCoords.y += 10; for (int32_t item = 0; item < SHOP_ITEM_COUNT; item++) { - if (y >= maxY) + if (screenCoords.y >= maxY) break; if (!guest->HasItem(item)) continue; rct_string_id stringId = window_guest_inventory_format_item(guest, item); - y += gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, { x, y }, itemNameWidth, stringId, COLOUR_BLACK); + screenCoords.y += gfx_draw_string_left_wrapped( + dpi, gCommonFormatArgs, screenCoords, itemNameWidth, stringId, COLOUR_BLACK); numItems++; } if (numItems == 0) { - gfx_draw_string_left(dpi, STR_NOTHING, nullptr, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_NOTHING, nullptr, COLOUR_BLACK, screenCoords); } } } @@ -2108,17 +2112,18 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi) window_guest_debug_tab_paint(w, dpi); auto peep = GET_PEEP(w->number); - auto screenCoords = ScreenCoordsXY{ w->windowPos.x + window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].left + 4, - w->windowPos.y + window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; + auto screenCoords = w->windowPos + + ScreenCoordsXY{ window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].left + 4, + window_guest_debug_widgets[WIDX_PAGE_BACKGROUND].top + 4 }; { auto ft = Formatter::Common(); ft.Add(peep->sprite_index); - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_SPRITE_INDEX, gCommonFormatArgs, 0, screenCoords.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_SPRITE_INDEX, gCommonFormatArgs, 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { int32_t args[] = { peep->x, peep->y, peep->x }; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_POSITION, args, 0, screenCoords.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_POSITION, args, 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; { @@ -2140,22 +2145,22 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi) 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.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_DEST, args, 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.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_GOAL, args, 0, screenCoords); } screenCoords.y += LIST_ROW_HEIGHT; - gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY, nullptr, 0, screenCoords.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY, nullptr, 0, screenCoords); screenCoords.y += LIST_ROW_HEIGHT; 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.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_PEEP_DEBUG_PATHFIND_HISTORY_ITEM, args, 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 9908a52b66..da9d0e0590 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -674,7 +674,7 @@ static void window_guest_list_invalidate(rct_window* w) */ static void window_guest_list_paint(rct_window* w, rct_drawpixelinfo* dpi) { - int32_t i, x, y; + int32_t i; rct_string_id format; // Widgets @@ -694,8 +694,7 @@ static void window_guest_list_paint(rct_window* w, rct_drawpixelinfo* dpi) window_guest_list_widgets[WIDX_TAB_2].top + w->windowPos.y, 0); // Filter description - x = w->windowPos.x + 6; - y = w->windowPos.y + window_guest_list_widgets[WIDX_TAB_CONTENT_PANEL].top + 3; + auto screenCoords = w->windowPos + ScreenCoordsXY{ 6, window_guest_list_widgets[WIDX_TAB_CONTENT_PANEL].top + 3 }; if (_window_guest_list_selected_tab == PAGE_INDIVIDUAL) { if (_window_guest_list_selected_filter != -1) @@ -718,18 +717,17 @@ static void window_guest_list_paint(rct_window* w, rct_drawpixelinfo* dpi) { format = STR_ALL_GUESTS_SUMMARISED; } - gfx_draw_string_left_clipped(dpi, format, _window_guest_list_filter_arguments.args, COLOUR_BLACK, { x, y }, 310); + gfx_draw_string_left_clipped(dpi, format, _window_guest_list_filter_arguments.args, COLOUR_BLACK, screenCoords, 310); // Number of guests (list items) if (_window_guest_list_selected_tab == PAGE_INDIVIDUAL) { - x = w->windowPos.x + 4; - y = w->windowPos.y + window_guest_list_widgets[WIDX_GUEST_LIST].bottom + 2; + screenCoords = w->windowPos + ScreenCoordsXY{ 4, window_guest_list_widgets[WIDX_GUEST_LIST].bottom + 2 }; auto ft = Formatter::Common(); 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, - COLOUR_BLACK, x, y); + COLOUR_BLACK, screenCoords); } } diff --git a/src/openrct2-ui/windows/InstallTrack.cpp b/src/openrct2-ui/windows/InstallTrack.cpp index cf056534b4..633900165e 100644 --- a/src/openrct2-ui/windows/InstallTrack.cpp +++ b/src/openrct2-ui/windows/InstallTrack.cpp @@ -259,7 +259,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) // Track design name & type auto trackName = _trackName.c_str(); - gfx_draw_string_left(dpi, STR_TRACK_DESIGN_NAME, &trackName, COLOUR_BLACK, screenPos.x - 1, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_DESIGN_NAME, &trackName, COLOUR_BLACK, screenPos - ScreenCoordsXY{ 1, 0 }); screenPos.y += LIST_ROW_HEIGHT; RideNaming rideName; @@ -278,20 +278,20 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) friendlyTrackName = RideTypeDescriptors[td6->type].Naming.Name; } - gfx_draw_string_left(dpi, STR_TRACK_DESIGN_TYPE, &friendlyTrackName, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_DESIGN_TYPE, &friendlyTrackName, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT + 4; // Stats fixed32_2dp rating = td6->excitement * 10; - gfx_draw_string_left(dpi, STR_TRACK_LIST_EXCITEMENT_RATING, &rating, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_LIST_EXCITEMENT_RATING, &rating, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; rating = td6->intensity * 10; - gfx_draw_string_left(dpi, STR_TRACK_LIST_INTENSITY_RATING, &rating, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_LIST_INTENSITY_RATING, &rating, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; rating = td6->nausea * 10; - gfx_draw_string_left(dpi, STR_TRACK_LIST_NAUSEA_RATING, &rating, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_LIST_NAUSEA_RATING, &rating, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT + 4; if (td6->type != RIDE_TYPE_MAZE) @@ -300,19 +300,19 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) { // Holes uint16_t holes = td6->holes & 0x1F; - gfx_draw_string_left(dpi, STR_HOLES, &holes, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_HOLES, &holes, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } else { // Maximum speed uint16_t speed = ((td6->max_speed << 16) * 9) >> 18; - gfx_draw_string_left(dpi, STR_MAX_SPEED, &speed, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_MAX_SPEED, &speed, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; // Average speed speed = ((td6->average_speed << 16) * 9) >> 18; - gfx_draw_string_left(dpi, STR_AVERAGE_SPEED, &speed, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_AVERAGE_SPEED, &speed, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } @@ -328,24 +328,24 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) { // Maximum positive vertical Gs int32_t gForces = td6->max_positive_vertical_g * 32; - gfx_draw_string_left(dpi, STR_MAX_POSITIVE_VERTICAL_G, &gForces, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_MAX_POSITIVE_VERTICAL_G, &gForces, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; // Maximum negative vertical Gs gForces = td6->max_negative_vertical_g * 32; - gfx_draw_string_left(dpi, STR_MAX_NEGATIVE_VERTICAL_G, &gForces, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_MAX_NEGATIVE_VERTICAL_G, &gForces, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; // Maximum lateral Gs gForces = td6->max_lateral_g * 32; - gfx_draw_string_left(dpi, STR_MAX_LATERAL_G, &gForces, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_MAX_LATERAL_G, &gForces, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; if (td6->total_air_time != 0) { // Total air time int32_t airTime = td6->total_air_time * 25; - gfx_draw_string_left(dpi, STR_TOTAL_AIR_TIME, &airTime, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TOTAL_AIR_TIME, &airTime, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } } @@ -354,11 +354,11 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) { // Drops uint16_t drops = td6->drops & 0x3F; - gfx_draw_string_left(dpi, STR_DROPS, &drops, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_DROPS, &drops, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; // Drop height is multiplied by 0.75 - gfx_draw_string_left(dpi, STR_HIGHEST_DROP_HEIGHT, &drops, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_HIGHEST_DROP_HEIGHT, &drops, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } @@ -368,7 +368,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) if (inversions != 0) { // Inversions - gfx_draw_string_left(dpi, STR_INVERSIONS, &inversions, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_INVERSIONS, &inversions, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } } @@ -380,7 +380,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) auto ft = Formatter::Common(); ft.Add(td6->space_required_x); ft.Add(td6->space_required_y); - gfx_draw_string_left(dpi, STR_TRACK_LIST_SPACE_REQUIRED, gCommonFormatArgs, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_LIST_SPACE_REQUIRED, gCommonFormatArgs, COLOUR_BLACK, screenPos); screenPos.y += LIST_ROW_HEIGHT; } @@ -388,7 +388,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) { auto ft = Formatter::Common(); ft.Add(td6->cost); - gfx_draw_string_left(dpi, STR_TRACK_LIST_COST_AROUND, gCommonFormatArgs, COLOUR_BLACK, screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_TRACK_LIST_COST_AROUND, gCommonFormatArgs, COLOUR_BLACK, screenPos); } } diff --git a/src/openrct2-ui/windows/LoadSave.cpp b/src/openrct2-ui/windows/LoadSave.cpp index 7d5eea6e33..71823368f8 100644 --- a/src/openrct2-ui/windows/LoadSave.cpp +++ b/src/openrct2-ui/windows/LoadSave.cpp @@ -731,8 +731,7 @@ static void window_loadsave_paint(rct_window* w, rct_drawpixelinfo* dpi) // Draw name button indicator. rct_widget sort_name_widget = window_loadsave_widgets[WIDX_SORT_NAME]; gfx_draw_string_left( - dpi, STR_NAME, &id, COLOUR_GREY, w->windowPos.x + sort_name_widget.left + 11, - w->windowPos.y + sort_name_widget.top + 1); + dpi, STR_NAME, &id, COLOUR_GREY, w->windowPos + ScreenCoordsXY{ sort_name_widget.left + 11, sort_name_widget.top + 1 }); // Date button text if (gConfigGeneral.load_save_sort == SORT_DATE_ASCENDING) @@ -744,7 +743,7 @@ static void window_loadsave_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_widget sort_date_widget = window_loadsave_widgets[WIDX_SORT_DATE]; gfx_draw_string_left( - dpi, STR_DATE, &id, COLOUR_GREY, w->windowPos.x + sort_date_widget.left + 5, w->windowPos.y + sort_date_widget.top + 1); + dpi, STR_DATE, &id, COLOUR_GREY, w->windowPos + ScreenCoordsXY{ sort_date_widget.left + 5, sort_date_widget.top + 1 }); } static void window_loadsave_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) @@ -775,7 +774,7 @@ static void window_loadsave_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i { auto ft = Formatter::Common(); ft.Add(STR_RIGHTGUILLEMET); - gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, 0, y); + gfx_draw_string_left(dpi, stringId, gCommonFormatArgs, COLOUR_BLACK, { 0, y }); } // Print filename diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index b2b7904a85..ffeb328a6d 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -814,10 +814,9 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) window_draw_widgets(w, dpi); window_map_draw_tab_images(w, dpi); - auto screenCoords = ScreenCoordsXY{ - w->windowPos.x + (window_map_widgets[WIDX_LAND_TOOL].left + window_map_widgets[WIDX_LAND_TOOL].right) / 2, - w->windowPos.y + (window_map_widgets[WIDX_LAND_TOOL].top + window_map_widgets[WIDX_LAND_TOOL].bottom) / 2 - }; + auto screenCoords = w->windowPos + + ScreenCoordsXY{ (window_map_widgets[WIDX_LAND_TOOL].left + window_map_widgets[WIDX_LAND_TOOL].right) / 2, + (window_map_widgets[WIDX_LAND_TOOL].top + window_map_widgets[WIDX_LAND_TOOL].bottom) / 2 }; // Draw land tool size if (widget_is_active_tool(w, WIDX_SET_LAND_RIGHTS) && _landRightsToolSize > MAX_TOOL_SIZE_WITH_SPRITE) @@ -830,8 +829,9 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) // People starting position (scenario editor only) if (w->widgets[WIDX_PEOPLE_STARTING_POSITION].type != WWT_EMPTY) { - screenCoords = { w->windowPos.x + w->widgets[WIDX_PEOPLE_STARTING_POSITION].left + 12, - w->windowPos.y + w->widgets[WIDX_PEOPLE_STARTING_POSITION].top + 18 }; + screenCoords = w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_PEOPLE_STARTING_POSITION].left + 12, + w->widgets[WIDX_PEOPLE_STARTING_POSITION].top + 18 }; gfx_draw_sprite( dpi, IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS | (COLOUR_LIGHT_BROWN << 24) | (COLOUR_BRIGHT_RED << 19) | SPR_6410, screenCoords.x, screenCoords.y, 0); @@ -842,7 +842,7 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) // Render the map legend if (w->selected_tab == PAGE_RIDES) { - screenCoords = { w->windowPos.x + 4, w->windowPos.y + w->widgets[WIDX_MAP].bottom + 2 }; + screenCoords = w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_MAP].bottom + 2 }; static rct_string_id mapLabels[] = { STR_MAP_RIDE, STR_MAP_FOOD_STALL, STR_MAP_DRINK_STALL, STR_MAP_SOUVENIR_STALL, @@ -853,12 +853,11 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) { gfx_fill_rect( dpi, screenCoords.x, screenCoords.y + 2, screenCoords.x + 6, screenCoords.y + 8, RideKeyColours[i]); - gfx_draw_string_left(dpi, mapLabels[i], w, COLOUR_BLACK, screenCoords.x + LIST_ROW_HEIGHT, screenCoords.y); + gfx_draw_string_left(dpi, mapLabels[i], w, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ LIST_ROW_HEIGHT, 0 }); screenCoords.y += LIST_ROW_HEIGHT; if (i == 3) { - screenCoords.x += 118; - screenCoords.y -= LIST_ROW_HEIGHT * 4; + screenCoords += { 118, -(LIST_ROW_HEIGHT * 4) }; } } } @@ -866,8 +865,8 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) else if (!widget_is_active_tool(w, WIDX_SET_LAND_RIGHTS)) { gfx_draw_string_left( - dpi, STR_MAP_SIZE, nullptr, w->colours[1], w->windowPos.x + 4, - w->windowPos.y + w->widgets[WIDX_MAP_SIZE_SPINNER].top + 1); + dpi, STR_MAP_SIZE, nullptr, w->colours[1], + w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_MAP_SIZE_SPINNER].top + 1 }); } } diff --git a/src/openrct2-ui/windows/MapGen.cpp b/src/openrct2-ui/windows/MapGen.cpp index bdc41eeecf..00dc34e78a 100644 --- a/src/openrct2-ui/windows/MapGen.cpp +++ b/src/openrct2-ui/windows/MapGen.cpp @@ -775,32 +775,32 @@ static void window_mapgen_base_paint(rct_window* w, rct_drawpixelinfo* dpi) const uint8_t textColour = w->colours[1]; gfx_draw_string_left( - dpi, STR_MAP_SIZE, nullptr, textColour, w->windowPos.x + 4, w->windowPos.y + w->widgets[WIDX_MAP_SIZE].top + 1); + dpi, STR_MAP_SIZE, nullptr, textColour, w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_MAP_SIZE].top + 1 }); gfx_draw_string_left( - dpi, STR_BASE_HEIGHT_LABEL, nullptr, textColour, w->windowPos.x + 4, - w->windowPos.y + w->widgets[WIDX_BASE_HEIGHT].top + 1); + dpi, STR_BASE_HEIGHT_LABEL, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_BASE_HEIGHT].top + 1 }); gfx_draw_string_left( - dpi, STR_WATER_LEVEL_LABEL, nullptr, textColour, w->windowPos.x + 4, - w->windowPos.y + w->widgets[WIDX_WATER_LEVEL].top + 1); + dpi, STR_WATER_LEVEL_LABEL, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_WATER_LEVEL].top + 1 }); gfx_draw_string_left( - dpi, STR_TERRAIN_LABEL, nullptr, textColour, w->windowPos.x + 4, - w->windowPos.y + w->widgets[WIDX_FLOOR_TEXTURE].top + 1); + dpi, STR_TERRAIN_LABEL, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_FLOOR_TEXTURE].top + 1 }); // The practical map size is 2 lower than the technical map size TileCoordsXY mapSizeArgs = { _mapSize - 2, _mapSize - 2 }; gfx_draw_string_left( - dpi, STR_RESOLUTION_X_BY_Y, &mapSizeArgs, w->colours[1], w->windowPos.x + w->widgets[WIDX_MAP_SIZE].left + 1, - w->windowPos.y + w->widgets[WIDX_MAP_SIZE].top + 1); + dpi, STR_RESOLUTION_X_BY_Y, &mapSizeArgs, w->colours[1], + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_MAP_SIZE].left + 1, w->widgets[WIDX_MAP_SIZE].top + 1 }); arg = (_baseHeight - 12) / 2; gfx_draw_string_left( - dpi, STR_COMMA16, &arg, w->colours[1], w->windowPos.x + w->widgets[WIDX_BASE_HEIGHT].left + 1, - w->windowPos.y + w->widgets[WIDX_BASE_HEIGHT].top + 1); + dpi, STR_COMMA16, &arg, w->colours[1], + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_BASE_HEIGHT].left + 1, w->widgets[WIDX_BASE_HEIGHT].top + 1 }); arg = (_waterLevel - 12) / 2; gfx_draw_string_left( - dpi, STR_COMMA16, &arg, w->colours[1], w->windowPos.x + w->widgets[WIDX_WATER_LEVEL].left + 1, - w->windowPos.y + w->widgets[WIDX_WATER_LEVEL].top + 1); + dpi, STR_COMMA16, &arg, w->colours[1], + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_WATER_LEVEL].left + 1, w->widgets[WIDX_WATER_LEVEL].top + 1 }); } #pragma endregion @@ -1093,53 +1093,54 @@ static void window_mapgen_simplex_paint(rct_window* w, rct_drawpixelinfo* dpi) const uint8_t textColour = w->colours[1]; gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_LOW].top + 1 }); gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_HIGH].top + 1 }); gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_BASE_FREQUENCY, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1 }); gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_OCTAVES, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_OCTAVES, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1 }); gfx_draw_string_left( - dpi, STR_MAP_SIZE, nullptr, textColour, w->windowPos.x + 5, w->windowPos.y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1); + dpi, STR_MAP_SIZE, nullptr, textColour, w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1 }); gfx_draw_string_left( - dpi, STR_WATER_LEVEL_LABEL, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); + dpi, STR_WATER_LEVEL_LABEL, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &_simplex_low, textColour, w->windowPos.x + w->widgets[WIDX_SIMPLEX_LOW].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_LOW].top + 1); + dpi, STR_COMMA16, &_simplex_low, textColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_LOW].left + 1, w->widgets[WIDX_SIMPLEX_LOW].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &_simplex_high, textColour, w->windowPos.x + w->widgets[WIDX_SIMPLEX_HIGH].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_HIGH].top + 1); + dpi, STR_COMMA16, &_simplex_high, textColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_HIGH].left + 1, w->widgets[WIDX_SIMPLEX_HIGH].top + 1 }); gfx_draw_string_left( dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &_simplex_base_freq, textColour, - w->windowPos.x + w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1); + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_BASE_FREQ].left + 1, w->widgets[WIDX_SIMPLEX_BASE_FREQ].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &_simplex_octaves, textColour, w->windowPos.x + w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1); + dpi, STR_COMMA16, &_simplex_octaves, textColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_OCTAVES].left + 1, w->widgets[WIDX_SIMPLEX_OCTAVES].top + 1 }); gfx_draw_string_left( - dpi, STR_TERRAIN_LABEL, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_RANDOM_TERRAIN_CHECKBOX].top + 1); + dpi, STR_TERRAIN_LABEL, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_RANDOM_TERRAIN_CHECKBOX].top + 1 }); gfx_draw_string_left( - dpi, STR_MAPGEN_OPTION_PLACE_TREES, nullptr, textColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_PLACE_TREES_CHECKBOX].top + 1); + dpi, STR_MAPGEN_OPTION_PLACE_TREES, nullptr, textColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_SIMPLEX_PLACE_TREES_CHECKBOX].top + 1 }); // The practical map size is 2 lower than the technical map size TileCoordsXY mapSizeArgs = { _mapSize - 2, _mapSize - 2 }; gfx_draw_string_left( - dpi, STR_RESOLUTION_X_BY_Y, &mapSizeArgs, textColour, w->windowPos.x + w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1); + dpi, STR_RESOLUTION_X_BY_Y, &mapSizeArgs, textColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_MAP_SIZE].left + 1, w->widgets[WIDX_SIMPLEX_MAP_SIZE].top + 1 }); arg = (_waterLevel - 12) / 2; gfx_draw_string_left( - dpi, STR_COMMA16, &arg, textColour, w->windowPos.x + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, - w->windowPos.y + w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1); + dpi, STR_COMMA16, &arg, textColour, + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_SIMPLEX_WATER_LEVEL].left + 1, w->widgets[WIDX_SIMPLEX_WATER_LEVEL].top + 1 }); } #pragma endregion @@ -1294,39 +1295,42 @@ static void window_mapgen_heightmap_paint(rct_window* w, rct_drawpixelinfo* dpi) const uint8_t strengthColour = _heightmapSmoothMap ? enabledColour : disabledColour; int16_t strength = _heightmapSmoothStrength; gfx_draw_string_left( - dpi, STR_MAPGEN_SMOOTH_STRENGTH, nullptr, strengthColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_STRENGTH].top + 1); + dpi, STR_MAPGEN_SMOOTH_STRENGTH, nullptr, strengthColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_HEIGHTMAP_STRENGTH].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &strength, strengthColour, w->windowPos.x + w->widgets[WIDX_HEIGHTMAP_STRENGTH].left + 1, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_STRENGTH].top + 1); + dpi, STR_COMMA16, &strength, strengthColour, + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_HEIGHTMAP_STRENGTH].left + 1, w->widgets[WIDX_HEIGHTMAP_STRENGTH].top + 1 }); // Low label and value const uint8_t labelColour = _heightmapLoaded ? enabledColour : disabledColour; int16_t low = _heightmapLow; gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, nullptr, labelColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_LOW_, nullptr, labelColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_HEIGHTMAP_LOW].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &low, labelColour, w->windowPos.x + w->widgets[WIDX_HEIGHTMAP_LOW].left + 1, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_LOW].top + 1); + dpi, STR_COMMA16, &low, labelColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_HEIGHTMAP_LOW].left + 1, w->widgets[WIDX_HEIGHTMAP_LOW].top + 1 }); // High label and value int16_t high = _heightmapHigh; gfx_draw_string_left( - dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, nullptr, labelColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1); + dpi, STR_MAPGEN_SIMPLEX_NOISE_HIGH, nullptr, labelColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &high, labelColour, w->windowPos.x + w->widgets[WIDX_HEIGHTMAP_HIGH].left + 1, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1); + dpi, STR_COMMA16, &high, labelColour, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_HEIGHTMAP_HIGH].left + 1, w->widgets[WIDX_HEIGHTMAP_HIGH].top + 1 }); // Water level label and value int16_t waterLevel = _waterLevel; gfx_draw_string_left( - dpi, STR_WATER_LEVEL_LABEL, nullptr, labelColour, w->windowPos.x + 5, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1); + dpi, STR_WATER_LEVEL_LABEL, nullptr, labelColour, + w->windowPos + ScreenCoordsXY{ 5, w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1 }); gfx_draw_string_left( - dpi, STR_COMMA16, &waterLevel, labelColour, w->windowPos.x + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].left + 1, - w->windowPos.y + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1); + dpi, STR_COMMA16, &waterLevel, labelColour, + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].left + 1, + w->widgets[WIDX_HEIGHTMAP_WATER_LEVEL].top + 1 }); } #pragma endregion diff --git a/src/openrct2-ui/windows/Multiplayer.cpp b/src/openrct2-ui/windows/Multiplayer.cpp index 631e26f6a8..679ef6b364 100644 --- a/src/openrct2-ui/windows/Multiplayer.cpp +++ b/src/openrct2-ui/windows/Multiplayer.cpp @@ -489,42 +489,42 @@ static void window_multiplayer_information_paint(rct_window* w, rct_drawpixelinf { dpi = &clippedDPI; - int32_t x = 3; - int32_t y = 50; + auto screenCoords = ScreenCoordsXY{ 3, 50 }; int32_t width = w->width - 6; const utf8* name = network_get_server_name(); { - y += gfx_draw_string_left_wrapped(dpi, static_cast(&name), { x, y }, width, STR_STRING, w->colours[1]); - y += LIST_ROW_HEIGHT / 2; + screenCoords.y += gfx_draw_string_left_wrapped( + dpi, static_cast(&name), screenCoords, width, STR_STRING, w->colours[1]); + screenCoords.y += LIST_ROW_HEIGHT / 2; } const utf8* description = network_get_server_description(); if (!str_is_null_or_empty(description)) { - y += gfx_draw_string_left_wrapped( - dpi, static_cast(&description), { x, y }, width, STR_STRING, w->colours[1]); - y += LIST_ROW_HEIGHT / 2; + screenCoords.y += gfx_draw_string_left_wrapped( + dpi, static_cast(&description), screenCoords, width, STR_STRING, w->colours[1]); + screenCoords.y += LIST_ROW_HEIGHT / 2; } const utf8* providerName = network_get_server_provider_name(); if (!str_is_null_or_empty(providerName)) { - gfx_draw_string_left(dpi, STR_PROVIDER_NAME, static_cast(&providerName), COLOUR_BLACK, x, y); - y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_PROVIDER_NAME, static_cast(&providerName), COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT; } const utf8* providerEmail = network_get_server_provider_email(); if (!str_is_null_or_empty(providerEmail)) { - gfx_draw_string_left(dpi, STR_PROVIDER_EMAIL, static_cast(&providerEmail), COLOUR_BLACK, x, y); - y += LIST_ROW_HEIGHT; + gfx_draw_string_left(dpi, STR_PROVIDER_EMAIL, static_cast(&providerEmail), COLOUR_BLACK, screenCoords); + screenCoords.y += LIST_ROW_HEIGHT; } const utf8* providerWebsite = network_get_server_provider_website(); if (!str_is_null_or_empty(providerWebsite)) { - gfx_draw_string_left(dpi, STR_PROVIDER_WEBSITE, static_cast(&providerWebsite), COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_PROVIDER_WEBSITE, static_cast(&providerWebsite), COLOUR_BLACK, screenCoords); } } } @@ -630,16 +630,14 @@ static void window_multiplayer_players_invalidate(rct_window* w) static void window_multiplayer_players_paint(rct_window* w, rct_drawpixelinfo* dpi) { rct_string_id stringId; - int32_t x, y; window_draw_widgets(w, dpi); window_multiplayer_draw_tab_images(w, dpi); // Number of players stringId = w->no_list_items == 1 ? STR_MULTIPLAYER_PLAYER_COUNT : STR_MULTIPLAYER_PLAYER_COUNT_PLURAL; - x = w->windowPos.x + 4; - y = w->windowPos.y + w->widgets[WIDX_LIST].bottom + 2; - gfx_draw_string_left(dpi, stringId, &w->no_list_items, w->colours[2], x, y); + auto screenCoords = w->windowPos + ScreenCoordsXY{ 4, w->widgets[WIDX_LIST].bottom + 2 }; + gfx_draw_string_left(dpi, stringId, &w->no_list_items, w->colours[2], screenCoords); } static void window_multiplayer_players_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) @@ -926,7 +924,7 @@ static void window_multiplayer_groups_paint(rct_window* w, rct_drawpixelinfo* dp + ScreenCoordsXY{ window_multiplayer_groups_widgets[WIDX_CONTENT_PANEL].left + 4, window_multiplayer_groups_widgets[WIDX_CONTENT_PANEL].top + 4 }; - gfx_draw_string_left(dpi, STR_DEFAULT_GROUP, nullptr, w->colours[2], screenPos.x, screenPos.y); + gfx_draw_string_left(dpi, STR_DEFAULT_GROUP, nullptr, w->colours[2], screenPos); screenPos.y += 20; @@ -953,7 +951,7 @@ static void window_multiplayer_groups_paint(rct_window* w, rct_drawpixelinfo* dp static void window_multiplayer_groups_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t scrollIndex) { - ScreenCoordsXY screenCoords(0, 0); + auto screenCoords = ScreenCoordsXY{ 0, 0 }; gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, ColourMapA[w->colours[1]].mid_light); @@ -987,7 +985,7 @@ static void window_multiplayer_groups_scrollpaint(rct_window* w, rct_drawpixelin // Draw action name auto ft = Formatter::Common(); ft.Add(network_get_action_name_string_id(i)); - gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, 10, screenCoords.y); + gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, gCommonFormatArgs, COLOUR_BLACK, { 10, screenCoords.y }); } screenCoords.y += SCROLLABLE_ROW_HEIGHT; } diff --git a/src/openrct2-ui/windows/Network.cpp b/src/openrct2-ui/windows/Network.cpp index 7b9a7c5bff..2159267b63 100644 --- a/src/openrct2-ui/windows/Network.cpp +++ b/src/openrct2-ui/windows/Network.cpp @@ -395,17 +395,17 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d { dpi = &clippedDPI; - ScreenCoordsXY screenCoords(padding, heightTab + padding); + auto screenCoords = ScreenCoordsXY{ padding, heightTab + padding }; // Received stats. { - gfx_draw_string_left(dpi, STR_NETWORK_RECEIVE, nullptr, PALETTE_INDEX_10, screenCoords.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_NETWORK_RECEIVE, nullptr, PALETTE_INDEX_10, screenCoords); format_readable_speed(textBuffer, sizeof(textBuffer), _bytesInSec); gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(70, 0)); gfx_draw_string_left( - dpi, STR_NETWORK_TOTAL_RECEIVED, nullptr, PALETTE_INDEX_10, screenCoords.x + 200, screenCoords.y); + dpi, STR_NETWORK_TOTAL_RECEIVED, nullptr, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY{ 200, 0 }); format_readable_size(textBuffer, sizeof(textBuffer), _networkStats.bytesReceived[NETWORK_STATISTICS_GROUP_TOTAL]); gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(300, 0)); @@ -418,12 +418,13 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d // Sent stats. { - gfx_draw_string_left(dpi, STR_NETWORK_SEND, nullptr, PALETTE_INDEX_10, screenCoords.x, screenCoords.y); + gfx_draw_string_left(dpi, STR_NETWORK_SEND, nullptr, PALETTE_INDEX_10, screenCoords); format_readable_speed(textBuffer, sizeof(textBuffer), _bytesOutSec); gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(70, 0)); - gfx_draw_string_left(dpi, STR_NETWORK_TOTAL_SENT, nullptr, PALETTE_INDEX_10, screenCoords.x + 200, screenCoords.y); + gfx_draw_string_left( + dpi, STR_NETWORK_TOTAL_SENT, nullptr, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY{ 200, 0 }); format_readable_size(textBuffer, sizeof(textBuffer), _networkStats.bytesSent[NETWORK_STATISTICS_GROUP_TOTAL]); gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(300, 0)); diff --git a/src/openrct2-ui/windows/NewCampaign.cpp b/src/openrct2-ui/windows/NewCampaign.cpp index 19e159efad..7833ec6058 100644 --- a/src/openrct2-ui/windows/NewCampaign.cpp +++ b/src/openrct2-ui/windows/NewCampaign.cpp @@ -374,7 +374,7 @@ static void window_new_campaign_invalidate(rct_window* w) */ static void window_new_campaign_paint(rct_window* w, rct_drawpixelinfo* dpi) { - int32_t x, y; + ScreenCoordsXY screenCoords{}; window_draw_widgets(w, dpi); @@ -382,19 +382,18 @@ static void window_new_campaign_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_widget* spinnerWidget = &window_new_campaign_widgets[WIDX_WEEKS_SPINNER]; gfx_draw_string_left( dpi, w->campaign.no_weeks == 1 ? STR_MARKETING_1_WEEK : STR_X_WEEKS, &w->campaign.no_weeks, w->colours[0], - w->windowPos.x + spinnerWidget->left + 1, w->windowPos.y + spinnerWidget->top); + w->windowPos + ScreenCoordsXY{ spinnerWidget->left + 1, spinnerWidget->top }); - x = w->windowPos.x + 14; - y = w->windowPos.y + 60; + screenCoords = w->windowPos + ScreenCoordsXY{ 14, 60 }; // Price per week money32 pricePerWeek = AdvertisingCampaignPricePerWeek[w->campaign.campaign_type]; - gfx_draw_string_left(dpi, STR_MARKETING_COST_PER_WEEK, &pricePerWeek, COLOUR_BLACK, x, y); - y += 13; + gfx_draw_string_left(dpi, STR_MARKETING_COST_PER_WEEK, &pricePerWeek, COLOUR_BLACK, screenCoords); + screenCoords.y += 13; // Total price money32 totalPrice = AdvertisingCampaignPricePerWeek[w->campaign.campaign_type] * w->campaign.no_weeks; - gfx_draw_string_left(dpi, STR_MARKETING_TOTAL_COST, &totalPrice, COLOUR_BLACK, x, y); + gfx_draw_string_left(dpi, STR_MARKETING_TOTAL_COST, &totalPrice, COLOUR_BLACK, screenCoords); } void WindowCampaignRefreshRides() diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 628c1e1826..ef0e34305b 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -986,7 +986,7 @@ static void window_new_ride_paint_ride_information( break; } - gfx_draw_string_left(dpi, designCountStringId, &_lastTrackDesignCount, COLOUR_BLACK, screenPos.x, screenPos.y + 51); + gfx_draw_string_left(dpi, designCountStringId, &_lastTrackDesignCount, COLOUR_BLACK, screenPos + ScreenCoordsXY{ 0, 51 }); // Price if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) diff --git a/src/openrct2-ui/windows/News.cpp b/src/openrct2-ui/windows/News.cpp index ef25953ad4..d9c4222a1c 100644 --- a/src/openrct2-ui/windows/News.cpp +++ b/src/openrct2-ui/windows/News.cpp @@ -262,7 +262,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 auto ft = Formatter::Common(); ft.Add(DateDayNames[newsItem.Day - 1]); ft.Add(DateGameMonthNames[date_get_month(newsItem.MonthYear)]); - gfx_draw_string_left(dpi, STR_NEWS_DATE_FORMAT, gCommonFormatArgs, COLOUR_WHITE, 2, y); + gfx_draw_string_left(dpi, STR_NEWS_DATE_FORMAT, gCommonFormatArgs, COLOUR_WHITE, { 2, y }); // Item text auto text = newsItem.Text; diff --git a/src/openrct2-ui/windows/ObjectLoadError.cpp b/src/openrct2-ui/windows/ObjectLoadError.cpp index 2145b4496f..79594a5988 100644 --- a/src/openrct2-ui/windows/ObjectLoadError.cpp +++ b/src/openrct2-ui/windows/ObjectLoadError.cpp @@ -607,11 +607,11 @@ static void window_object_load_error_scrollpaint(rct_window* w, rct_drawpixelinf // ... source game ... rct_string_id sourceStringId = object_manager_get_source_game_string( object_entry_get_source_game_legacy(&_invalid_entries[i])); - gfx_draw_string_left(dpi, sourceStringId, nullptr, COLOUR_DARK_GREEN, SOURCE_COL_LEFT - 3, screenCoords.y); + gfx_draw_string_left(dpi, sourceStringId, nullptr, COLOUR_DARK_GREEN, { SOURCE_COL_LEFT - 3, screenCoords.y }); // ... and type rct_string_id type = get_object_type_string(&_invalid_entries[i]); - gfx_draw_string_left(dpi, type, nullptr, COLOUR_DARK_GREEN, TYPE_COL_LEFT - 3, screenCoords.y); + gfx_draw_string_left(dpi, type, nullptr, COLOUR_DARK_GREEN, { TYPE_COL_LEFT - 3, screenCoords.y }); } } diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index c69d8ef98c..5b41f73259 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -1975,8 +1975,8 @@ static void window_options_paint(rct_window* w, rct_drawpixelinfo* dpi) case WINDOW_OPTIONS_PAGE_DISPLAY: { gfx_draw_string_left( - dpi, STR_FULLSCREEN_MODE, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_display_widgets[WIDX_FULLSCREEN].top + 1); + dpi, STR_FULLSCREEN_MODE, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_display_widgets[WIDX_FULLSCREEN].top + 1 }); // Disable resolution dropdown on "Windowed" and "Fullscreen (desktop)" int32_t colour = w->colours[1]; @@ -1985,20 +1985,20 @@ static void window_options_paint(rct_window* w, rct_drawpixelinfo* dpi) colour |= COLOUR_FLAG_INSET; } gfx_draw_string_left( - dpi, STR_DISPLAY_RESOLUTION, w, colour, w->windowPos.x + 10 + 15, - w->windowPos.y + window_options_display_widgets[WIDX_RESOLUTION].top + 1); + dpi, STR_DISPLAY_RESOLUTION, w, colour, + w->windowPos + ScreenCoordsXY{ 10 + 15, window_options_display_widgets[WIDX_RESOLUTION].top + 1 }); gfx_draw_string_left( - dpi, STR_UI_SCALING_DESC, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_display_widgets[WIDX_SCALE].top + 1); + dpi, STR_UI_SCALING_DESC, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_display_widgets[WIDX_SCALE].top + 1 }); gfx_draw_string_left( - dpi, STR_DRAWING_ENGINE, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_display_widgets[WIDX_DRAWING_ENGINE].top + 1); + dpi, STR_DRAWING_ENGINE, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_display_widgets[WIDX_DRAWING_ENGINE].top + 1 }); int32_t scale = static_cast(gConfigGeneral.window_scale * 100); gfx_draw_string_left( - dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &scale, w->colours[1], w->windowPos.x + w->widgets[WIDX_SCALE].left + 1, - w->windowPos.y + w->widgets[WIDX_SCALE].top + 1); + dpi, STR_WINDOW_OBJECTIVE_VALUE_RATING, &scale, w->colours[1], + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_SCALE].left + 1, w->widgets[WIDX_SCALE].top + 1 }); colour = w->colours[1]; if (gConfigGeneral.drawing_engine == DRAWING_ENGINE_SOFTWARE @@ -2007,74 +2007,76 @@ static void window_options_paint(rct_window* w, rct_drawpixelinfo* dpi) colour |= COLOUR_FLAG_INSET; } gfx_draw_string_left( - dpi, STR_SCALING_QUALITY, w, colour, w->windowPos.x + 25, - w->windowPos.y + window_options_display_widgets[WIDX_SCALE_QUALITY].top + 1); + dpi, STR_SCALING_QUALITY, w, colour, + w->windowPos + ScreenCoordsXY{ 25, window_options_display_widgets[WIDX_SCALE_QUALITY].top + 1 }); break; } case WINDOW_OPTIONS_PAGE_CULTURE: gfx_draw_string_left( - dpi, STR_OPTIONS_LANGUAGE, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_LANGUAGE].top + 1); + dpi, STR_OPTIONS_LANGUAGE, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_LANGUAGE].top + 1 }); gfx_draw_string_left( - dpi, STR_CURRENCY, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_CURRENCY].top + 1); + dpi, STR_CURRENCY, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_CURRENCY].top + 1 }); gfx_draw_string_left( - dpi, STR_DISTANCE_AND_SPEED, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_DISTANCE].top + 1); + dpi, STR_DISTANCE_AND_SPEED, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_DISTANCE].top + 1 }); gfx_draw_string_left( - dpi, STR_TEMPERATURE, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_TEMPERATURE].top + 1); + dpi, STR_TEMPERATURE, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_TEMPERATURE].top + 1 }); gfx_draw_string_left( - dpi, STR_HEIGHT_LABELS, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_HEIGHT_LABELS].top + 1); + dpi, STR_HEIGHT_LABELS, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_HEIGHT_LABELS].top + 1 }); gfx_draw_string_left( - dpi, STR_DATE_FORMAT, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_culture_widgets[WIDX_DATE_FORMAT].top + 1); + dpi, STR_DATE_FORMAT, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_culture_widgets[WIDX_DATE_FORMAT].top + 1 }); break; case WINDOW_OPTIONS_PAGE_CONTROLS_AND_INTERFACE: { gfx_draw_string_left( - dpi, STR_SHOW_TOOLBAR_BUTTONS_FOR, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_controls_and_interface_widgets[WIDX_TOOLBAR_BUTTONS_GROUP].top + 15); + dpi, STR_SHOW_TOOLBAR_BUTTONS_FOR, w, w->colours[1], + w->windowPos + + ScreenCoordsXY{ 10, window_options_controls_and_interface_widgets[WIDX_TOOLBAR_BUTTONS_GROUP].top + 15 }); gfx_draw_string_left( - dpi, STR_THEMES_LABEL_CURRENT_THEME, nullptr, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_controls_and_interface_widgets[WIDX_THEMES].top + 1); + dpi, STR_THEMES_LABEL_CURRENT_THEME, nullptr, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_controls_and_interface_widgets[WIDX_THEMES].top + 1 }); break; } case WINDOW_OPTIONS_PAGE_MISC: { gfx_draw_string_left( - dpi, STR_TITLE_SEQUENCE, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_misc_widgets[WIDX_TITLE_SEQUENCE].top + 1); + dpi, STR_TITLE_SEQUENCE, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_misc_widgets[WIDX_TITLE_SEQUENCE].top + 1 }); gfx_draw_string_left( - dpi, STR_OPTIONS_SCENARIO_GROUPING, nullptr, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_misc_widgets[WIDX_SCENARIO_GROUPING].top + 1); + dpi, STR_OPTIONS_SCENARIO_GROUPING, nullptr, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_misc_widgets[WIDX_SCENARIO_GROUPING].top + 1 }); gfx_draw_string_left( - dpi, STR_DEFAULT_INSPECTION_INTERVAL, w, w->colours[1], w->windowPos.x + 10, - w->windowPos.y + window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].top + 1); + dpi, STR_DEFAULT_INSPECTION_INTERVAL, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 10, window_options_misc_widgets[WIDX_DEFAULT_INSPECTION_INTERVAL].top + 1 }); break; } case WINDOW_OPTIONS_PAGE_ADVANCED: { gfx_draw_string_left( - dpi, STR_OPTIONS_AUTOSAVE_FREQUENCY_LABEL, w, w->colours[1], w->windowPos.x + 24, - w->windowPos.y + window_options_advanced_widgets[WIDX_AUTOSAVE].top + 1); + dpi, STR_OPTIONS_AUTOSAVE_FREQUENCY_LABEL, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 24, window_options_advanced_widgets[WIDX_AUTOSAVE].top + 1 }); gfx_draw_string_left( dpi, window_options_autosave_names[gConfigGeneral.autosave_frequency], nullptr, w->colours[1], - w->windowPos.x + window_options_advanced_widgets[WIDX_AUTOSAVE].left + 1, - w->windowPos.y + window_options_advanced_widgets[WIDX_AUTOSAVE].top); + w->windowPos + + ScreenCoordsXY{ window_options_advanced_widgets[WIDX_AUTOSAVE].left + 1, + window_options_advanced_widgets[WIDX_AUTOSAVE].top }); gfx_draw_string_left( - dpi, STR_AUTOSAVE_AMOUNT, w, w->colours[1], w->windowPos.x + 24, - w->windowPos.y + window_options_advanced_widgets[WIDX_AUTOSAVE_AMOUNT].top + 1); + dpi, STR_AUTOSAVE_AMOUNT, w, w->colours[1], + w->windowPos + ScreenCoordsXY{ 24, window_options_advanced_widgets[WIDX_AUTOSAVE_AMOUNT].top + 1 }); int32_t autosavesToKeep = static_cast(gConfigGeneral.autosave_amount); gfx_draw_string_left( dpi, STR_WINDOW_OBJECTIVE_VALUE_GUEST_COUNT, &autosavesToKeep, w->colours[1], - w->windowPos.x + w->widgets[WIDX_AUTOSAVE_AMOUNT].left + 1, - w->windowPos.y + w->widgets[WIDX_AUTOSAVE_AMOUNT].top + 1); + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_AUTOSAVE_AMOUNT].left + 1, w->widgets[WIDX_AUTOSAVE_AMOUNT].top + 1 }); auto ft = Formatter::Common(); ft.Add(Platform::StrDecompToPrecomp(gConfigGeneral.rct1_path));