mirror of https://github.com/OpenRCT2/OpenRCT2.git
parent
82618f2441
commit
2264c5f7f1
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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));
|
||||
|
|
Loading…
Reference in New Issue