mirror of https://github.com/OpenRCT2/OpenRCT2.git
Replaces a third of all occurrences of the old function
This commit is contained in:
parent
8c77d31c54
commit
e93e32d139
|
@ -485,7 +485,7 @@ static void widget_groupbox_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widg
|
|||
uint8_t args[sizeof(uintptr_t)] = { 0 };
|
||||
format_string(buffer, sizeof(buffer), stringId, formatArgs);
|
||||
Formatter(args).Add<utf8*>(buffer);
|
||||
gfx_draw_string_left(dpi, STR_STRING, args, colour, l, t);
|
||||
gfx_draw_string_left(dpi, STR_STRING, args, colour, { l, t });
|
||||
textRight = l + gfx_get_string_width(buffer) + 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -1207,55 +1207,55 @@ static void window_cheats_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
}
|
||||
int32_t actual_month = _monthSpinnerValue - 1;
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_BOTTOM_TOOLBAR_CASH, gCommonFormatArgs, colour, w->windowPos.x + XPL(0) + TXTO,
|
||||
w->windowPos.y + YPL(2) + TXTO);
|
||||
dpi, STR_BOTTOM_TOOLBAR_CASH, gCommonFormatArgs, colour,
|
||||
w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(2) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_YEAR, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(7) + TXTO);
|
||||
dpi, STR_YEAR, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(7) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_MONTH, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(8) + TXTO);
|
||||
dpi, STR_MONTH, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(8) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_DAY, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(9) + TXTO);
|
||||
dpi, STR_DAY, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(9) + TXTO });
|
||||
gfx_draw_string_right(
|
||||
dpi, STR_FORMAT_INTEGER, &_yearSpinnerValue, w->colours[1],
|
||||
{ w->windowPos.x + WPL(1) - 34 - TXTO, w->windowPos.y + YPL(7) + TXTO });
|
||||
w->windowPos + ScreenCoordsXY{ WPL(1) - 34 - TXTO, YPL(7) + TXTO });
|
||||
gfx_draw_string_right(
|
||||
dpi, STR_FORMAT_MONTH, &actual_month, w->colours[1],
|
||||
{ w->windowPos.x + WPL(1) - 34 - TXTO, w->windowPos.y + YPL(8) + TXTO });
|
||||
w->windowPos + ScreenCoordsXY{ WPL(1) - 34 - TXTO, YPL(8) + TXTO });
|
||||
gfx_draw_string_right(
|
||||
dpi, STR_FORMAT_INTEGER, &_daySpinnerValue, w->colours[1],
|
||||
{ w->windowPos.x + WPL(1) - 34 - TXTO, w->windowPos.y + YPL(9) + TXTO });
|
||||
w->windowPos + ScreenCoordsXY{ WPL(1) - 34 - TXTO, YPL(9) + TXTO });
|
||||
}
|
||||
else if (w->page == WINDOW_CHEATS_PAGE_MISC)
|
||||
{
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_STAFF_SPEED, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(17) + TXTO);
|
||||
dpi, STR_CHEAT_STAFF_SPEED, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(17) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_FORCE_WEATHER, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(10) + TXTO);
|
||||
dpi, STR_FORCE_WEATHER, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(10) + TXTO });
|
||||
gfx_draw_string_right(
|
||||
dpi, STR_FORMAT_INTEGER, &_parkRatingSpinnerValue, w->colours[1],
|
||||
{ w->windowPos.x + WPL(1) - 34 - TXTO, w->windowPos.y + YPL(5) + TXTO });
|
||||
w->windowPos + ScreenCoordsXY{ WPL(1) - 34 - TXTO, YPL(5) + TXTO });
|
||||
}
|
||||
else if (w->page == WINDOW_CHEATS_PAGE_GUESTS)
|
||||
{
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_HAPPINESS, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
||||
w->windowPos.y + YPL(1) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_HAPPINESS, nullptr, COLOUR_BLACK,
|
||||
w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(1) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_ENERGY, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(2) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_ENERGY, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(2) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_HUNGER, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(3) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_HUNGER, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(3) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_THIRST, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(4) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_THIRST, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(4) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_NAUSEA, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(5) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_NAUSEA, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(5) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_NAUSEA_TOLERANCE, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
||||
w->windowPos.y + YPL(6) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_NAUSEA_TOLERANCE, nullptr, COLOUR_BLACK,
|
||||
w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(6) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_TOILET, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO, w->windowPos.y + YPL(7) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_TOILET, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(7) + TXTO });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CHEAT_GUEST_PREFERRED_INTENSITY, nullptr, COLOUR_BLACK, w->windowPos.x + XPL(0) + TXTO,
|
||||
w->windowPos.y + YPL(8) + TXTO);
|
||||
dpi, STR_CHEAT_GUEST_PREFERRED_INTENSITY, nullptr, COLOUR_BLACK,
|
||||
w->windowPos + ScreenCoordsXY{ XPL(0) + TXTO, YPL(8) + TXTO });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -238,35 +238,40 @@ static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
||||
auto screenCoords = ScreenCoordsXY{ w->windowPos.x + 10, w->windowPos.y + 30 };
|
||||
auto screenCoords = w->windowPos + ScreenCoordsXY{ 10, 30 };
|
||||
|
||||
gfx_draw_string_left(dpi, STR_RATE, nullptr, w->colours[1], screenCoords.x, screenCoords.y);
|
||||
gfx_draw_string_left(dpi, STR_RATE, nullptr, w->colours[1], screenCoords);
|
||||
|
||||
int32_t baseExchange = CurrencyDescriptors[CURRENCY_POUNDS].rate;
|
||||
ft = Formatter::Common();
|
||||
ft.Add<int32_t>(baseExchange);
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords.x + 200, screenCoords.y);
|
||||
dpi, STR_CUSTOM_CURRENCY_EQUIVALENCY, gCommonFormatArgs, w->colours[1], screenCoords + ScreenCoordsXY{ 200, 0 });
|
||||
|
||||
screenCoords.y += 20;
|
||||
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_SYMBOL_TEXT, nullptr, w->colours[1], screenCoords.x, screenCoords.y);
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_SYMBOL_TEXT, nullptr, w->colours[1], screenCoords);
|
||||
|
||||
screenCoords.x = w->windowPos.x + window_custom_currency_widgets[WIDX_SYMBOL_TEXT].left + 1;
|
||||
screenCoords.y = w->windowPos.y + window_custom_currency_widgets[WIDX_SYMBOL_TEXT].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_SYMBOL_TEXT].left + 1,
|
||||
window_custom_currency_widgets[WIDX_SYMBOL_TEXT].top };
|
||||
|
||||
gfx_draw_string(dpi, CurrencyDescriptors[CURRENCY_CUSTOM].symbol_unicode, w->colours[1], screenCoords);
|
||||
|
||||
if (CurrencyDescriptors[CURRENCY_CUSTOM].affix_unicode == CURRENCY_PREFIX)
|
||||
{
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_PREFIX, w, w->colours[1], w->windowPos.x + window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
|
||||
w->windowPos.y + window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].top);
|
||||
dpi, STR_PREFIX, w, w->colours[1],
|
||||
w->windowPos
|
||||
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
|
||||
window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].top });
|
||||
}
|
||||
else
|
||||
{
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_SUFFIX, w, w->colours[1], w->windowPos.x + window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
|
||||
w->windowPos.y + window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].top);
|
||||
dpi, STR_SUFFIX, w, w->colours[1],
|
||||
w->windowPos
|
||||
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
|
||||
window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].top });
|
||||
}
|
||||
}
|
||||
|
|
|
@ -557,12 +557,12 @@ static void window_editor_inventions_list_paint(rct_window* w, rct_drawpixelinfo
|
|||
// Pre-researched items label
|
||||
screenPos = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_PRE_RESEARCHED_SCROLL].left, w->widgets[WIDX_PRE_RESEARCHED_SCROLL].top - 11 };
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_PREINVENTED_ITEMS, nullptr, COLOUR_BLACK, screenPos.x, screenPos.y - 1);
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_PREINVENTED_ITEMS, nullptr, COLOUR_BLACK, screenPos - ScreenCoordsXY{ 0, 1 });
|
||||
|
||||
// Research order label
|
||||
screenPos = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_RESEARCH_ORDER_SCROLL].left, w->widgets[WIDX_RESEARCH_ORDER_SCROLL].top - 11 };
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_TO_BE_INVENTED_ITEMS, nullptr, COLOUR_BLACK, screenPos.x, screenPos.y - 1);
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_TO_BE_INVENTED_ITEMS, nullptr, COLOUR_BLACK, screenPos - ScreenCoordsXY{ 0, 1 });
|
||||
|
||||
// Preview background
|
||||
widget = &w->widgets[WIDX_PREVIEW];
|
||||
|
@ -615,7 +615,7 @@ static void window_editor_inventions_list_paint(rct_window* w, rct_drawpixelinfo
|
|||
// Item category
|
||||
screenPos.x = w->windowPos.x + w->widgets[WIDX_RESEARCH_ORDER_SCROLL].right + 4;
|
||||
stringId = EditorInventionsResearchCategories[researchItem->category];
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_RESEARCH_GROUP, &stringId, COLOUR_BLACK, screenPos.x, screenPos.y);
|
||||
gfx_draw_string_left(dpi, STR_INVENTION_RESEARCH_GROUP, &stringId, COLOUR_BLACK, screenPos);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -815,12 +815,10 @@ static void window_editor_inventions_list_drag_moved(rct_window* w, const Screen
|
|||
static void window_editor_inventions_list_drag_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
rct_string_id drawString;
|
||||
int32_t x, y;
|
||||
auto screenCoords = w->windowPos + ScreenCoordsXY{ 0, 2 };
|
||||
|
||||
x = w->windowPos.x;
|
||||
y = w->windowPos.y + 2;
|
||||
drawString = window_editor_inventions_list_prepare_name(&_editorInventionsListDraggedItem, true);
|
||||
gfx_draw_string_left(dpi, drawString, gCommonFormatArgs, COLOUR_BLACK | COLOUR_FLAG_OUTLINE, x, y);
|
||||
gfx_draw_string_left(dpi, drawString, gCommonFormatArgs, COLOUR_BLACK | COLOUR_FLAG_OUTLINE, screenCoords);
|
||||
}
|
||||
|
||||
static rct_string_id window_editor_inventions_list_prepare_name(const ResearchItem* researchItem, bool withGap)
|
||||
|
|
|
@ -1017,8 +1017,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
|
|||
auto ft = Formatter::Common();
|
||||
ft.Add<uint16_t>(numSelected);
|
||||
ft.Add<uint16_t>(totalSelectable);
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_OBJECT_SELECTION_SELECTION_SIZE, gCommonFormatArgs, COLOUR_BLACK, screenPos.x, screenPos.y);
|
||||
gfx_draw_string_left(dpi, STR_OBJECT_SELECTION_SELECTION_SIZE, gCommonFormatArgs, COLOUR_BLACK, screenPos);
|
||||
}
|
||||
|
||||
// Draw sort button text
|
||||
|
|
|
@ -858,7 +858,7 @@ static void window_editor_objective_options_main_invalidate(rct_window* w)
|
|||
*/
|
||||
static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
int32_t x, y, width;
|
||||
int32_t width;
|
||||
rct_string_id stringId;
|
||||
uint32_t arg;
|
||||
|
||||
|
@ -866,21 +866,18 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
window_editor_objective_options_draw_tab_images(w, dpi);
|
||||
|
||||
// Objective label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE].top;
|
||||
gfx_draw_string_left(dpi, STR_OBJECTIVE_WINDOW, nullptr, COLOUR_BLACK, x, y);
|
||||
auto screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_OBJECTIVE].top };
|
||||
gfx_draw_string_left(dpi, STR_OBJECTIVE_WINDOW, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Objective value
|
||||
x = w->windowPos.x + w->widgets[WIDX_OBJECTIVE].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_OBJECTIVE].left + 1, w->widgets[WIDX_OBJECTIVE].top };
|
||||
stringId = ObjectiveDropdownOptionNames[gScenarioObjectiveType];
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, screenCoords);
|
||||
|
||||
if (w->widgets[WIDX_OBJECTIVE_ARG_1].type != WWT_EMPTY)
|
||||
{
|
||||
// Objective argument 1 label
|
||||
x = w->windowPos.x + 28;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE_ARG_1].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 28, w->widgets[WIDX_OBJECTIVE_ARG_1].top };
|
||||
switch (gScenarioObjectiveType)
|
||||
{
|
||||
case OBJECTIVE_GUESTS_BY:
|
||||
|
@ -904,11 +901,11 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
stringId = STR_WINDOW_OBJECTIVE_EXCITEMENT_RATING;
|
||||
break;
|
||||
}
|
||||
gfx_draw_string_left(dpi, stringId, nullptr, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, stringId, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Objective argument 1 value
|
||||
x = w->windowPos.x + w->widgets[WIDX_OBJECTIVE_ARG_1].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE_ARG_1].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_OBJECTIVE_ARG_1].left + 1, w->widgets[WIDX_OBJECTIVE_ARG_1].top };
|
||||
switch (gScenarioObjectiveType)
|
||||
{
|
||||
case OBJECTIVE_GUESTS_BY:
|
||||
|
@ -932,26 +929,24 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
arg = gScenarioObjectiveCurrency;
|
||||
break;
|
||||
}
|
||||
gfx_draw_string_left(dpi, stringId, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, stringId, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_OBJECTIVE_ARG_2].type != WWT_EMPTY)
|
||||
{
|
||||
// Objective argument 2 label
|
||||
x = w->windowPos.x + 28;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE_ARG_2].top;
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_DATE, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 28, w->widgets[WIDX_OBJECTIVE_ARG_2].top };
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_DATE, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Objective argument 2 value
|
||||
x = w->windowPos.x + w->widgets[WIDX_OBJECTIVE_ARG_2].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_OBJECTIVE_ARG_2].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_OBJECTIVE_ARG_2].left + 1, w->widgets[WIDX_OBJECTIVE_ARG_2].top };
|
||||
arg = (gScenarioObjectiveYear * MONTH_COUNT) - 1;
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_DATE, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_OBJECTIVE_VALUE_DATE, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
// Park name
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_PARK_NAME].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_PARK_NAME].top };
|
||||
width = w->widgets[WIDX_PARK_NAME].left - 16;
|
||||
|
||||
{
|
||||
|
@ -961,44 +956,39 @@ static void window_editor_objective_options_main_paint(rct_window* w, rct_drawpi
|
|||
auto ft = Formatter::Common();
|
||||
ft.Add<rct_string_id>(STR_STRING);
|
||||
ft.Add<const char*>(parkName);
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_PARK_NAME, gCommonFormatArgs, COLOUR_BLACK, { x, y }, width);
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_PARK_NAME, gCommonFormatArgs, COLOUR_BLACK, screenCoords, width);
|
||||
}
|
||||
|
||||
// Scenario name
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_SCENARIO_NAME].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_SCENARIO_NAME].top };
|
||||
width = w->widgets[WIDX_SCENARIO_NAME].left - 16;
|
||||
|
||||
auto ft = Formatter::Common();
|
||||
ft.Add<rct_string_id>(STR_STRING);
|
||||
ft.Add<const char*>(gS6Info.name);
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, { x, y }, width);
|
||||
gfx_draw_string_left_clipped(dpi, STR_WINDOW_SCENARIO_NAME, gCommonFormatArgs, COLOUR_BLACK, screenCoords, width);
|
||||
|
||||
// Scenario details label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_DETAILS].top;
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_PARK_DETAILS, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_DETAILS].top };
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_PARK_DETAILS, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Scenario details value
|
||||
x = w->windowPos.x + 16;
|
||||
y = w->windowPos.y + w->widgets[WIDX_DETAILS].top + 10;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 16, w->widgets[WIDX_DETAILS].top + 10 };
|
||||
width = w->widgets[WIDX_DETAILS].left - 4;
|
||||
|
||||
ft = Formatter::Common();
|
||||
ft.Add<rct_string_id>(STR_STRING);
|
||||
ft.Add<const char*>(gS6Info.details);
|
||||
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, { x, y }, width, STR_BLACK_STRING, COLOUR_BLACK);
|
||||
gfx_draw_string_left_wrapped(dpi, gCommonFormatArgs, screenCoords, width, STR_BLACK_STRING, COLOUR_BLACK);
|
||||
|
||||
// Scenario category label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CATEGORY].top;
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_SCENARIO_GROUP, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_CATEGORY].top };
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_SCENARIO_GROUP, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Scenario category value
|
||||
x = w->windowPos.x + w->widgets[WIDX_CATEGORY].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CATEGORY].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_CATEGORY].left + 1, w->widgets[WIDX_CATEGORY].top };
|
||||
stringId = ScenarioCategoryStringIds[gS6Info.category];
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1139,8 +1129,8 @@ static void window_editor_objective_options_rides_paint(rct_window* w, rct_drawp
|
|||
window_editor_objective_options_draw_tab_images(w, dpi);
|
||||
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_WINDOW_PRESERVATION_ORDER, nullptr, COLOUR_BLACK, w->windowPos.x + 6,
|
||||
w->windowPos.y + w->widgets[WIDX_PAGE_BACKGROUND].top + 3);
|
||||
dpi, STR_WINDOW_PRESERVATION_ORDER, nullptr, COLOUR_BLACK,
|
||||
w->windowPos + ScreenCoordsXY{ 6, w->widgets[WIDX_PAGE_BACKGROUND].top + 3 });
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1184,7 +1174,7 @@ static void window_editor_objective_options_rides_scrollpaint(rct_window* w, rct
|
|||
// Ride name
|
||||
uint32_t args[32]{};
|
||||
ride->FormatNameTo(args);
|
||||
gfx_draw_string_left(dpi, stringId, args, COLOUR_BLACK, 15, y);
|
||||
gfx_draw_string_left(dpi, stringId, args, COLOUR_BLACK, { 15, y });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -742,55 +742,51 @@ static void window_editor_scenario_options_financial_invalidate(rct_window* w)
|
|||
*/
|
||||
static void window_editor_scenario_options_financial_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
int32_t x, y;
|
||||
ScreenCoordsXY screenCoords{};
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_editor_scenario_options_draw_tab_images(w, dpi);
|
||||
|
||||
if (w->widgets[WIDX_INITIAL_CASH].type != WWT_EMPTY)
|
||||
{
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INITIAL_CASH].top;
|
||||
gfx_draw_string_left(dpi, STR_INIT_CASH_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_INITIAL_CASH].top };
|
||||
gfx_draw_string_left(dpi, STR_INIT_CASH_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
x = w->windowPos.x + w->widgets[WIDX_INITIAL_CASH].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INITIAL_CASH].top;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gInitialCash, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_INITIAL_CASH].left + 1, w->widgets[WIDX_INITIAL_CASH].top };
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gInitialCash, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_INITIAL_LOAN].type != WWT_EMPTY)
|
||||
{
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INITIAL_LOAN].top;
|
||||
gfx_draw_string_left(dpi, STR_INIT_LOAN_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_INITIAL_LOAN].top };
|
||||
gfx_draw_string_left(dpi, STR_INIT_LOAN_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
x = w->windowPos.x + w->widgets[WIDX_INITIAL_LOAN].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INITIAL_LOAN].top;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gBankLoan, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_INITIAL_LOAN].left + 1, w->widgets[WIDX_INITIAL_LOAN].top };
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gBankLoan, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_MAXIMUM_LOAN].type != WWT_EMPTY)
|
||||
{
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_MAXIMUM_LOAN].top;
|
||||
gfx_draw_string_left(dpi, STR_MAX_LOAN_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_MAXIMUM_LOAN].top };
|
||||
gfx_draw_string_left(dpi, STR_MAX_LOAN_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
x = w->windowPos.x + w->widgets[WIDX_MAXIMUM_LOAN].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_MAXIMUM_LOAN].top;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gMaxBankLoan, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_MAXIMUM_LOAN].left + 1, w->widgets[WIDX_MAXIMUM_LOAN].top };
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &gMaxBankLoan, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_INTEREST_RATE].type != WWT_EMPTY)
|
||||
{
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INTEREST_RATE].top;
|
||||
gfx_draw_string_left(dpi, STR_INTEREST_RATE_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_INTEREST_RATE].top };
|
||||
gfx_draw_string_left(dpi, STR_INTEREST_RATE_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
x = w->windowPos.x + w->widgets[WIDX_INTEREST_RATE].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_INTEREST_RATE].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_INTEREST_RATE].left + 1, w->widgets[WIDX_INTEREST_RATE].top };
|
||||
|
||||
int16_t interestRate = std::clamp<int16_t>(static_cast<int16_t>(gBankLoanInterestRate), INT16_MIN, INT16_MAX);
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &interestRate, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &interestRate, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1022,7 +1018,8 @@ static void window_editor_scenario_options_guests_invalidate(rct_window* w)
|
|||
*/
|
||||
static void window_editor_scenario_options_guests_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
int32_t x, y, arg;
|
||||
int32_t arg;
|
||||
ScreenCoordsXY screenCoords{};
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
window_editor_scenario_options_draw_tab_images(w, dpi);
|
||||
|
@ -1030,49 +1027,46 @@ static void window_editor_scenario_options_guests_paint(rct_window* w, rct_drawp
|
|||
if (w->widgets[WIDX_CASH_PER_GUEST].type != WWT_EMPTY)
|
||||
{
|
||||
// Cash per guest label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CASH_PER_GUEST].top;
|
||||
gfx_draw_string_left(dpi, STR_CASH_PER_GUEST_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_CASH_PER_GUEST].top };
|
||||
gfx_draw_string_left(dpi, STR_CASH_PER_GUEST_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Cash per guest value
|
||||
x = w->windowPos.x + w->widgets[WIDX_CASH_PER_GUEST].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CASH_PER_GUEST].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_CASH_PER_GUEST].left + 1, w->widgets[WIDX_CASH_PER_GUEST].top };
|
||||
arg = gGuestInitialCash;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
// Guest initial happiness label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].top;
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_HAPPINESS, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].top };
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_HAPPINESS, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Guest initial happiness value
|
||||
x = w->windowPos.x + w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].left + 1,
|
||||
w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_HAPPINESS].top };
|
||||
arg = (gGuestInitialHappiness * 100) / 255;
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Guest initial hunger label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_HUNGER].top;
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_HUNGER, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_GUEST_INITIAL_HUNGER].top };
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_HUNGER, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Guest initial hunger value
|
||||
x = w->windowPos.x + w->widgets[WIDX_GUEST_INITIAL_HUNGER].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_HUNGER].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_GUEST_INITIAL_HUNGER].left + 1, w->widgets[WIDX_GUEST_INITIAL_HUNGER].top };
|
||||
arg = ((255 - gGuestInitialHunger) * 100) / 255;
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Guest initial thirst label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_THIRST].top;
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_THIRST, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_GUEST_INITIAL_THIRST].top };
|
||||
gfx_draw_string_left(dpi, STR_GUEST_INIT_THIRST, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Guest initial thirst value
|
||||
x = w->windowPos.x + w->widgets[WIDX_GUEST_INITIAL_THIRST].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_GUEST_INITIAL_THIRST].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_GUEST_INITIAL_THIRST].left + 1, w->widgets[WIDX_GUEST_INITIAL_THIRST].top };
|
||||
arg = ((255 - gGuestInitialThirst) * 100) / 255;
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_PERCENT_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
@ -1386,7 +1380,8 @@ static void window_editor_scenario_options_park_invalidate(rct_window* w)
|
|||
*/
|
||||
static void window_editor_scenario_options_park_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
||||
{
|
||||
int32_t x, y, arg;
|
||||
int32_t arg;
|
||||
ScreenCoordsXY screenCoords{};
|
||||
rct_string_id stringId;
|
||||
|
||||
window_draw_widgets(w, dpi);
|
||||
|
@ -1395,37 +1390,35 @@ static void window_editor_scenario_options_park_paint(rct_window* w, rct_drawpix
|
|||
if (w->widgets[WIDX_LAND_COST].type != WWT_EMPTY)
|
||||
{
|
||||
// Cost to buy land label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_LAND_COST].top;
|
||||
gfx_draw_string_left(dpi, STR_LAND_COST_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_LAND_COST].top };
|
||||
gfx_draw_string_left(dpi, STR_LAND_COST_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Cost to buy land value
|
||||
x = w->windowPos.x + w->widgets[WIDX_LAND_COST].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_LAND_COST].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_LAND_COST].left + 1, w->widgets[WIDX_LAND_COST].top };
|
||||
arg = gLandPrice;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].type != WWT_EMPTY)
|
||||
{
|
||||
// Cost to buy construction rights label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].top;
|
||||
gfx_draw_string_left(dpi, STR_RIGHTS_COST_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].top };
|
||||
gfx_draw_string_left(dpi, STR_RIGHTS_COST_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Cost to buy construction rights value
|
||||
x = w->windowPos.x + w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].top;
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].left + 1,
|
||||
w->widgets[WIDX_CONSTRUCTION_RIGHTS_COST].top };
|
||||
arg = gConstructionRightsPrice;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].type != WWT_EMPTY)
|
||||
{
|
||||
// Pay for park or rides label
|
||||
x = w->windowPos.x + w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].top;
|
||||
gfx_draw_string_left(dpi, STR_FREE_PARK_ENTER, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].left + 1, w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].top };
|
||||
gfx_draw_string_left(dpi, STR_FREE_PARK_ENTER, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Pay for park and/or rides value
|
||||
if (gParkFlags & PARK_FLAGS_UNLOCK_ALL_PRICES)
|
||||
|
@ -1435,33 +1428,30 @@ static void window_editor_scenario_options_park_paint(rct_window* w, rct_drawpix
|
|||
else
|
||||
stringId = STR_PAY_PARK_ENTER;
|
||||
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
if (w->widgets[WIDX_ENTRY_PRICE].type != WWT_EMPTY)
|
||||
{
|
||||
// Entry price label
|
||||
x = w->windowPos.x + w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].right + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_ENTRY_PRICE].top;
|
||||
gfx_draw_string_left(dpi, STR_ENTRY_PRICE_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos
|
||||
+ ScreenCoordsXY{ w->widgets[WIDX_PAY_FOR_PARK_OR_RIDES].right + 8, w->widgets[WIDX_ENTRY_PRICE].top };
|
||||
gfx_draw_string_left(dpi, STR_ENTRY_PRICE_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Entry price value
|
||||
x = w->windowPos.x + w->widgets[WIDX_ENTRY_PRICE].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_ENTRY_PRICE].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_ENTRY_PRICE].left + 1, w->widgets[WIDX_ENTRY_PRICE].top };
|
||||
arg = gParkEntranceFee;
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_CURRENCY_FORMAT_LABEL, &arg, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
// Climate label
|
||||
x = w->windowPos.x + 8;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CLIMATE].top;
|
||||
gfx_draw_string_left(dpi, STR_CLIMATE_LABEL, nullptr, COLOUR_BLACK, x, y);
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ 8, w->widgets[WIDX_CLIMATE].top };
|
||||
gfx_draw_string_left(dpi, STR_CLIMATE_LABEL, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
||||
// Climate value
|
||||
x = w->windowPos.x + w->widgets[WIDX_CLIMATE].left + 1;
|
||||
y = w->windowPos.y + w->widgets[WIDX_CLIMATE].top;
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_CLIMATE].left + 1, w->widgets[WIDX_CLIMATE].top };
|
||||
stringId = ClimateNames[gClimate];
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, x, y);
|
||||
gfx_draw_string_left(dpi, STR_WINDOW_COLOUR_2_STRINGID, &stringId, COLOUR_BLACK, screenCoords);
|
||||
}
|
||||
|
||||
#pragma endregion
|
||||
|
|
|
@ -667,7 +667,7 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
window_draw_widgets(w, dpi);
|
||||
window_finances_draw_tab_images(dpi, w);
|
||||
|
||||
auto screenCoords = ScreenCoordsXY{ w->windowPos.x + 8, w->windowPos.y + 51 };
|
||||
auto screenCoords = w->windowPos + ScreenCoordsXY{ 8, 51 };
|
||||
|
||||
// Expenditure / Income heading
|
||||
draw_string_left_underline(dpi, STR_FINANCES_SUMMARY_EXPENDITURE_INCOME, nullptr, COLOUR_BLACK, screenCoords);
|
||||
|
@ -683,7 +683,7 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
ColourMapA[w->colours[1]].lighter | 0x1000000);
|
||||
|
||||
gfx_draw_string_left(
|
||||
dpi, window_finances_summary_row_labels[i], nullptr, COLOUR_BLACK, screenCoords.x, screenCoords.y - 1);
|
||||
dpi, window_finances_summary_row_labels[i], nullptr, COLOUR_BLACK, screenCoords - ScreenCoordsXY{ 0, 1 });
|
||||
screenCoords.y += TABLE_CELL_HEIGHT;
|
||||
}
|
||||
|
||||
|
@ -693,15 +693,15 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
INSET_RECT_FLAG_BORDER_INSET);
|
||||
|
||||
// Loan and interest rate
|
||||
gfx_draw_string_left(dpi, STR_FINANCES_SUMMARY_LOAN, nullptr, COLOUR_BLACK, w->windowPos.x + 8, w->windowPos.y + 279);
|
||||
gfx_draw_string_left(dpi, STR_FINANCES_SUMMARY_LOAN, nullptr, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 8, 279 });
|
||||
auto ft = Formatter::Common();
|
||||
ft.Add<uint16_t>(gBankLoanInterestRate);
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_FINANCES_SUMMARY_AT_X_PER_YEAR, gCommonFormatArgs, COLOUR_BLACK, w->windowPos.x + 167, w->windowPos.y + 279);
|
||||
dpi, STR_FINANCES_SUMMARY_AT_X_PER_YEAR, gCommonFormatArgs, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 167, 279 });
|
||||
|
||||
// Current cash
|
||||
rct_string_id stringId = gCash >= 0 ? STR_CASH_LABEL : STR_CASH_NEGATIVE_LABEL;
|
||||
gfx_draw_string_left(dpi, stringId, &gCash, COLOUR_BLACK, w->windowPos.x + 8, w->windowPos.y + 294);
|
||||
gfx_draw_string_left(dpi, stringId, &gCash, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 8, 294 });
|
||||
|
||||
// Objective related financial information
|
||||
if (gScenarioObjectiveType == OBJECTIVE_MONTHLY_FOOD_INCOME)
|
||||
|
@ -711,14 +711,14 @@ static void window_finances_summary_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
ft.Add<money32>(lastMonthProfit);
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_LAST_MONTH_PROFIT_FROM_FOOD_DRINK_MERCHANDISE_SALES_LABEL, gCommonFormatArgs, COLOUR_BLACK,
|
||||
w->windowPos.x + 280, w->windowPos.y + 279);
|
||||
w->windowPos + ScreenCoordsXY{ 280, 279 });
|
||||
}
|
||||
else
|
||||
{
|
||||
// Park value and company value
|
||||
gfx_draw_string_left(dpi, STR_PARK_VALUE_LABEL, &gParkValue, COLOUR_BLACK, w->windowPos.x + 280, w->windowPos.y + 279);
|
||||
gfx_draw_string_left(dpi, STR_PARK_VALUE_LABEL, &gParkValue, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 280, 279 });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_COMPANY_VALUE_LABEL, &gCompanyValue, COLOUR_BLACK, w->windowPos.x + 280, w->windowPos.y + 294);
|
||||
dpi, STR_COMPANY_VALUE_LABEL, &gCompanyValue, COLOUR_BLACK, w->windowPos + ScreenCoordsXY{ 280, 294 });
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -858,7 +858,7 @@ static void window_finances_financial_graph_paint(rct_window* w, rct_drawpixelin
|
|||
dpi,
|
||||
cashLessLoan >= 0 ? STR_FINANCES_FINANCIAL_GRAPH_CASH_LESS_LOAN_POSITIVE
|
||||
: STR_FINANCES_FINANCIAL_GRAPH_CASH_LESS_LOAN_NEGATIVE,
|
||||
&cashLessLoan, COLOUR_BLACK, graphLeft, graphTop - 11);
|
||||
&cashLessLoan, COLOUR_BLACK, { graphLeft, graphTop - 11 });
|
||||
|
||||
// Graph
|
||||
gfx_fill_rect_inset(dpi, graphLeft, graphTop, graphRight, graphBottom, w->colours[1], INSET_RECT_F_30);
|
||||
|
@ -961,7 +961,7 @@ static void window_finances_park_value_graph_paint(rct_window* w, rct_drawpixeli
|
|||
|
||||
// Park value
|
||||
money32 parkValue = gParkValue;
|
||||
gfx_draw_string_left(dpi, STR_FINANCES_PARK_VALUE, &parkValue, COLOUR_BLACK, graphLeft, graphTop - 11);
|
||||
gfx_draw_string_left(dpi, STR_FINANCES_PARK_VALUE, &parkValue, COLOUR_BLACK, { graphLeft, graphTop - 11 });
|
||||
|
||||
// Graph
|
||||
gfx_fill_rect_inset(dpi, graphLeft, graphTop, graphRight, graphBottom, w->colours[1], INSET_RECT_F_30);
|
||||
|
@ -1065,7 +1065,7 @@ static void window_finances_profit_graph_paint(rct_window* w, rct_drawpixelinfo*
|
|||
money32 weeklyPofit = gCurrentProfit;
|
||||
gfx_draw_string_left(
|
||||
dpi, weeklyPofit >= 0 ? STR_FINANCES_WEEKLY_PROFIT_POSITIVE : STR_FINANCES_WEEKLY_PROFIT_LOSS, &weeklyPofit,
|
||||
COLOUR_BLACK, graphLeft, graphTop - 11);
|
||||
COLOUR_BLACK, { graphLeft, graphTop - 11 });
|
||||
|
||||
// Graph
|
||||
gfx_fill_rect_inset(dpi, graphLeft, graphTop, graphRight, graphBottom, w->colours[1], INSET_RECT_F_30);
|
||||
|
@ -1187,8 +1187,7 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp
|
|||
window_draw_widgets(w, dpi);
|
||||
window_finances_draw_tab_images(dpi, w);
|
||||
|
||||
int32_t x = w->windowPos.x + 8;
|
||||
int32_t y = w->windowPos.y + 62;
|
||||
auto screenCoords = w->windowPos + ScreenCoordsXY{ 8, 62 };
|
||||
int32_t noCampaignsActive = 1;
|
||||
for (int32_t i = 0; i < ADVERTISING_CAMPAIGN_COUNT; i++)
|
||||
{
|
||||
|
@ -1229,22 +1228,24 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp
|
|||
}
|
||||
|
||||
// Advertisement
|
||||
gfx_draw_string_left_clipped(dpi, MarketingCampaignNames[i][1], gCommonFormatArgs, COLOUR_BLACK, { x + 4, y }, 296);
|
||||
gfx_draw_string_left_clipped(
|
||||
dpi, MarketingCampaignNames[i][1], gCommonFormatArgs, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 }, 296);
|
||||
|
||||
// Duration
|
||||
uint16_t weeksRemaining = campaign->WeeksLeft;
|
||||
gfx_draw_string_left(
|
||||
dpi, weeksRemaining == 1 ? STR_1_WEEK_REMAINING : STR_X_WEEKS_REMAINING, &weeksRemaining, COLOUR_BLACK, x + 304, y);
|
||||
dpi, weeksRemaining == 1 ? STR_1_WEEK_REMAINING : STR_X_WEEKS_REMAINING, &weeksRemaining, COLOUR_BLACK,
|
||||
screenCoords + ScreenCoordsXY{ 304, 0 });
|
||||
|
||||
y += LIST_ROW_HEIGHT;
|
||||
screenCoords.y += LIST_ROW_HEIGHT;
|
||||
}
|
||||
|
||||
if (noCampaignsActive)
|
||||
{
|
||||
gfx_draw_string_left(dpi, STR_MARKETING_CAMPAIGNS_NONE, nullptr, COLOUR_BLACK, x + 4, y);
|
||||
y += LIST_ROW_HEIGHT;
|
||||
gfx_draw_string_left(dpi, STR_MARKETING_CAMPAIGNS_NONE, nullptr, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 });
|
||||
screenCoords.y += LIST_ROW_HEIGHT;
|
||||
}
|
||||
y += 34;
|
||||
screenCoords.y += 34;
|
||||
|
||||
// Draw campaign button text
|
||||
for (int32_t i = 0; i < ADVERTISING_CAMPAIGN_COUNT; i++)
|
||||
|
@ -1254,10 +1255,12 @@ static void window_finances_marketing_paint(rct_window* w, rct_drawpixelinfo* dp
|
|||
{
|
||||
// Draw button text
|
||||
money32 pricePerWeek = AdvertisingCampaignPricePerWeek[i];
|
||||
gfx_draw_string_left(dpi, MarketingCampaignNames[i][0], nullptr, COLOUR_BLACK, x + 4, y);
|
||||
gfx_draw_string_left(dpi, STR_MARKETING_PER_WEEK, &pricePerWeek, COLOUR_BLACK, x + WH_SUMMARY, y);
|
||||
gfx_draw_string_left(
|
||||
dpi, MarketingCampaignNames[i][0], nullptr, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 4, 0 });
|
||||
gfx_draw_string_left(
|
||||
dpi, STR_MARKETING_PER_WEEK, &pricePerWeek, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ WH_SUMMARY, 0 });
|
||||
|
||||
y += BUTTON_FACE_HEIGHT + 2;
|
||||
screenCoords.y += BUTTON_FACE_HEIGHT + 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -543,7 +543,7 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi,
|
|||
}
|
||||
ft = Formatter::Common();
|
||||
ft.Add<int16_t>(temperature);
|
||||
gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, screenCoords.x, screenCoords.y + 6);
|
||||
gfx_draw_string_left(dpi, format, gCommonFormatArgs, COLOUR_BLACK, screenCoords + ScreenCoordsXY{ 0, 6 });
|
||||
screenCoords.x += 30;
|
||||
|
||||
// Current weather
|
||||
|
|
|
@ -644,6 +644,8 @@ void FASTCALL
|
|||
void gfx_draw_string(rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t colour, const ScreenCoordsXY& coords);
|
||||
|
||||
void gfx_draw_string_left(rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, int32_t x, int32_t y);
|
||||
void gfx_draw_string_left(
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords);
|
||||
void gfx_draw_string_centred(
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, const ScreenCoordsXY& coords, uint8_t colour, const void* args);
|
||||
void gfx_draw_string_right(
|
||||
|
|
|
@ -153,7 +153,13 @@ void gfx_draw_string(rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t co
|
|||
// Basic
|
||||
void gfx_draw_string_left(rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, int32_t x, int32_t y)
|
||||
{
|
||||
DrawTextCompat(dpi, x, y, format, args, colour, TextAlignment::LEFT);
|
||||
gfx_draw_string_left(dpi, format, args, colour, { x, y });
|
||||
}
|
||||
|
||||
void gfx_draw_string_left(
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, uint8_t colour, const ScreenCoordsXY& coords)
|
||||
{
|
||||
DrawTextCompat(dpi, coords.x, coords.y, format, args, colour, TextAlignment::LEFT);
|
||||
}
|
||||
|
||||
void gfx_draw_string_centred(
|
||||
|
|
Loading…
Reference in New Issue