Part of #11571 - Use gfx_draw_string_left with ScreenCoordsXY (#12008)

This commit is contained in:
TomasZilinek 2020-06-20 16:56:36 +02:00 committed by GitHub
parent 82618f2441
commit 2264c5f7f1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 263 additions and 258 deletions

View File

@ -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<uint16_t>(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<uint16_t>(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<rct_string_id>(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<rct_string_id>(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<money32>(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<money32>(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<money32>(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<money32>(peep->PaidOnRides);
ft.Add<uint16_t>(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<money32>(peep->PaidOnFood);
ft.Add<uint16_t>(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<money32>(peep->PaidOnDrink);
ft.Add<uint16_t>(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<money32>(peep->PaidOnSouvenirs);
ft.Add<uint16_t>(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<uint32_t>(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;

View File

@ -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<int32_t>(static_cast<int32_t>(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);
}
}

View File

@ -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<uint16_t>(td6->space_required_x);
ft.Add<uint16_t>(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<uint32_t>(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);
}
}

View File

@ -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<rct_string_id>(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

View File

@ -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 });
}
}

View File

@ -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

View File

@ -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<void*>(&name), { x, y }, width, STR_STRING, w->colours[1]);
y += LIST_ROW_HEIGHT / 2;
screenCoords.y += gfx_draw_string_left_wrapped(
dpi, static_cast<void*>(&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<void*>(&description), { x, y }, width, STR_STRING, w->colours[1]);
y += LIST_ROW_HEIGHT / 2;
screenCoords.y += gfx_draw_string_left_wrapped(
dpi, static_cast<void*>(&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<void*>(&providerName), COLOUR_BLACK, x, y);
y += LIST_ROW_HEIGHT;
gfx_draw_string_left(dpi, STR_PROVIDER_NAME, static_cast<void*>(&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<void*>(&providerEmail), COLOUR_BLACK, x, y);
y += LIST_ROW_HEIGHT;
gfx_draw_string_left(dpi, STR_PROVIDER_EMAIL, static_cast<void*>(&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<void*>(&providerWebsite), COLOUR_BLACK, x, y);
gfx_draw_string_left(dpi, STR_PROVIDER_WEBSITE, static_cast<void*>(&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<uint16_t>(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;
}

View File

@ -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));

View File

@ -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()

View File

@ -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))

View File

@ -262,7 +262,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32
auto ft = Formatter::Common();
ft.Add<rct_string_id>(DateDayNames[newsItem.Day - 1]);
ft.Add<rct_string_id>(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;

View File

@ -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 });
}
}

View File

@ -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<int32_t>(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<int32_t>(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<uintptr_t>(Platform::StrDecompToPrecomp(gConfigGeneral.rct1_path));