mirror of https://github.com/OpenRCT2/OpenRCT2.git
Make gfx_draw_string() take a TextPaint argument
This commit is contained in:
parent
503273793a
commit
c40701d997
|
@ -322,7 +322,7 @@ void InGameConsole::Draw(rct_drawpixelinfo* dpi) const
|
|||
{
|
||||
const size_t index = i + _consoleScrollPos;
|
||||
lineBuffer = colourFormatStr + _consoleLines[index];
|
||||
gfx_draw_string(dpi, lineBuffer.c_str(), textColour, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, lineBuffer.c_str(), { textColour, InGameconsoleGetFontSpriteBase() });
|
||||
screenCoords.y += lineHeight;
|
||||
}
|
||||
|
||||
|
|
|
@ -618,7 +618,7 @@ static void WidgetCheckboxDraw(rct_drawpixelinfo* dpi, rct_window* w, rct_widget
|
|||
ScreenCoordsXY midLeft = { topLeft.x, (topLeft.y + bottomRight.y) / 2 };
|
||||
|
||||
// Get the colour
|
||||
uint8_t colour = w->colours[widget->colour];
|
||||
colour_t colour = w->colours[widget->colour];
|
||||
|
||||
// checkbox
|
||||
gfx_fill_rect_inset(dpi, { midLeft - ScreenCoordsXY{ 0, 5 }, midLeft + ScreenCoordsXY{ 9, 4 } }, colour, INSET_RECT_F_60);
|
||||
|
@ -631,9 +631,9 @@ static void WidgetCheckboxDraw(rct_drawpixelinfo* dpi, rct_window* w, rct_widget
|
|||
// fill it when checkbox is pressed
|
||||
if (WidgetIsPressed(w, widgetIndex))
|
||||
{
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM;
|
||||
gfx_draw_string(
|
||||
dpi, static_cast<const char*>(CheckBoxMarkString), NOT_TRANSLUCENT(colour), { midLeft - ScreenCoordsXY{ 0, 5 } });
|
||||
dpi, { midLeft - ScreenCoordsXY{ 0, 5 } }, static_cast<const char*>(CheckBoxMarkString),
|
||||
{ static_cast<colour_t>(NOT_TRANSLUCENT(colour)) });
|
||||
}
|
||||
|
||||
// draw the text
|
||||
|
@ -735,7 +735,7 @@ static void WidgetHScrollbarDraw(
|
|||
uint8_t flags = (scroll->flags & HSCROLLBAR_LEFT_PRESSED) ? INSET_RECT_FLAG_BORDER_INSET : 0;
|
||||
|
||||
gfx_fill_rect_inset(dpi, { { l, t }, { l + (SCROLLBAR_WIDTH - 1), b } }, colour, flags);
|
||||
gfx_draw_string(dpi, static_cast<const char*>(BlackLeftArrowString), COLOUR_BLACK, { l + 1, t });
|
||||
gfx_draw_string(dpi, { l + 1, t }, static_cast<const char*>(BlackLeftArrowString), {});
|
||||
}
|
||||
|
||||
// Thumb
|
||||
|
@ -752,7 +752,7 @@ static void WidgetHScrollbarDraw(
|
|||
uint8_t flags = (scroll->flags & HSCROLLBAR_RIGHT_PRESSED) ? INSET_RECT_FLAG_BORDER_INSET : 0;
|
||||
|
||||
gfx_fill_rect_inset(dpi, { { r - (SCROLLBAR_WIDTH - 1), t }, { r, b } }, colour, flags);
|
||||
gfx_draw_string(dpi, static_cast<const char*>(BlackRightArrowString), COLOUR_BLACK, { r - 6, t });
|
||||
gfx_draw_string(dpi, { r - 6, t }, static_cast<const char*>(BlackRightArrowString), {});
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -772,7 +772,7 @@ static void WidgetVScrollbarDraw(
|
|||
gfx_fill_rect_inset(
|
||||
dpi, { { l, t }, { r, t + (SCROLLBAR_WIDTH - 1) } }, colour,
|
||||
((scroll->flags & VSCROLLBAR_UP_PRESSED) ? INSET_RECT_FLAG_BORDER_INSET : 0));
|
||||
gfx_draw_string(dpi, static_cast<const char*>(BlackUpArrowString), COLOUR_BLACK, { l + 1, t - 1 });
|
||||
gfx_draw_string(dpi, { l + 1, t - 1 }, static_cast<const char*>(BlackUpArrowString), {});
|
||||
|
||||
// Thumb
|
||||
gfx_fill_rect_inset(
|
||||
|
@ -785,7 +785,7 @@ static void WidgetVScrollbarDraw(
|
|||
gfx_fill_rect_inset(
|
||||
dpi, { { l, b - (SCROLLBAR_WIDTH - 1) }, { r, b } }, colour,
|
||||
((scroll->flags & VSCROLLBAR_DOWN_PRESSED) ? INSET_RECT_FLAG_BORDER_INSET : 0));
|
||||
gfx_draw_string(dpi, static_cast<const char*>(BlackDownArrowString), COLOUR_BLACK, { l + 1, b - (SCROLLBAR_WIDTH - 1) });
|
||||
gfx_draw_string(dpi, { l + 1, b - (SCROLLBAR_WIDTH - 1) }, static_cast<const char*>(BlackDownArrowString), {});
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -224,7 +224,7 @@ static void window_changelog_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi,
|
|||
if (screenCoords.y + lineHeight < dpi->y || screenCoords.y >= dpi->y + dpi->height)
|
||||
continue;
|
||||
|
||||
gfx_draw_string(dpi, line.c_str(), w->colours[0], screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, line.c_str(), { w->colours[0] });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -233,7 +233,7 @@ static void custom_currency_window_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_SYMBOL_TEXT].left + 1,
|
||||
window_custom_currency_widgets[WIDX_SYMBOL_TEXT].top };
|
||||
|
||||
gfx_draw_string(dpi, CurrencyDescriptors[EnumValue(CurrencyType::Custom)].symbol_unicode, w->colours[1], screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, CurrencyDescriptors[EnumValue(CurrencyType::Custom)].symbol_unicode, { w->colours[1] });
|
||||
|
||||
auto drawPos = w->windowPos
|
||||
+ ScreenCoordsXY{ window_custom_currency_widgets[WIDX_AFFIX_DROPDOWN].left + 1,
|
||||
|
|
|
@ -1155,12 +1155,15 @@ static void window_editor_object_selection_scrollpaint(rct_window* w, rct_drawpi
|
|||
if (!(gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER) && (*listItem.flags & OBJECT_SELECTION_FLAG_SELECTED))
|
||||
{
|
||||
screenCoords.x = 2;
|
||||
gCurrentFontSpriteBase = highlighted ? FontSpriteBase::MEDIUM_EXTRA_DARK : FontSpriteBase::MEDIUM_DARK;
|
||||
FontSpriteBase fontSpriteBase = highlighted ? FontSpriteBase::MEDIUM_EXTRA_DARK : FontSpriteBase::MEDIUM_DARK;
|
||||
gCurrentFontSpriteBase = fontSpriteBase;
|
||||
colour2 = NOT_TRANSLUCENT(w->colours[1]);
|
||||
if (*listItem.flags & (OBJECT_SELECTION_FLAG_IN_USE | OBJECT_SELECTION_FLAG_ALWAYS_REQUIRED))
|
||||
colour2 |= COLOUR_FLAG_INSET;
|
||||
|
||||
gfx_draw_string(dpi, static_cast<const char*>(CheckBoxMarkString), colour2, screenCoords);
|
||||
gfx_draw_string(
|
||||
dpi, screenCoords, static_cast<const char*>(CheckBoxMarkString),
|
||||
{ static_cast<colour_t>(colour2), fontSpriteBase });
|
||||
}
|
||||
|
||||
screenCoords.x = gScreenFlags & SCREEN_FLAGS_TRACK_MANAGER ? 0 : 15;
|
||||
|
|
|
@ -1101,7 +1101,9 @@ static void window_editor_objective_options_rides_scrollpaint(rct_window* w, rct
|
|||
{
|
||||
gCurrentFontSpriteBase = stringId == STR_WINDOW_COLOUR_2_STRINGID ? FontSpriteBase::MEDIUM_EXTRA_DARK
|
||||
: FontSpriteBase::MEDIUM_DARK;
|
||||
gfx_draw_string(dpi, static_cast<const char*>(CheckBoxMarkString), w->colours[1] & 0x7F, { 2, y });
|
||||
gfx_draw_string(
|
||||
dpi, { 2, y }, static_cast<const char*>(CheckBoxMarkString),
|
||||
{ static_cast<colour_t>(w->colours[1] & 0x7F) });
|
||||
}
|
||||
|
||||
// Ride name
|
||||
|
|
|
@ -2064,7 +2064,7 @@ void window_guest_debug_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
format_string(buffer2, sizeof(buffer2), STR_PEEP_DEBUG_NEXT_SLOPE, ft2.Data());
|
||||
safe_strcat(buffer, buffer2, sizeof(buffer));
|
||||
}
|
||||
gfx_draw_string(dpi, buffer, 0, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer, {});
|
||||
}
|
||||
screenCoords.y += LIST_ROW_HEIGHT;
|
||||
{
|
||||
|
|
|
@ -581,7 +581,7 @@ static void window_multiplayer_players_scrollpaint(rct_window* w, rct_drawpixeli
|
|||
buffer.clear();
|
||||
|
||||
// Draw player name
|
||||
int32_t colour = COLOUR_BLACK;
|
||||
colour_t colour = COLOUR_BLACK;
|
||||
if (i == w->selected_list_item)
|
||||
{
|
||||
gfx_filter_rect(
|
||||
|
@ -603,7 +603,7 @@ static void window_multiplayer_players_scrollpaint(rct_window* w, rct_drawpixeli
|
|||
}
|
||||
screenCoords.x = 0;
|
||||
gfx_clip_string(buffer.data(), 230);
|
||||
gfx_draw_string(dpi, buffer.c_str(), colour, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer.c_str(), { colour });
|
||||
|
||||
// Draw group name
|
||||
buffer.resize(0);
|
||||
|
@ -614,7 +614,7 @@ static void window_multiplayer_players_scrollpaint(rct_window* w, rct_drawpixeli
|
|||
screenCoords.x = 173;
|
||||
buffer += network_get_group_name(group);
|
||||
gfx_clip_string(buffer.data(), 80);
|
||||
gfx_draw_string(dpi, buffer.c_str(), colour, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer.c_str(), { colour });
|
||||
}
|
||||
|
||||
// Draw last action
|
||||
|
@ -651,7 +651,7 @@ static void window_multiplayer_players_scrollpaint(rct_window* w, rct_drawpixeli
|
|||
buffer += pingBuffer;
|
||||
|
||||
screenCoords.x = 356;
|
||||
gfx_draw_string(dpi, buffer.c_str(), colour, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer.c_str(), { colour });
|
||||
}
|
||||
screenCoords.y += SCROLLABLE_ROW_HEIGHT;
|
||||
}
|
||||
|
@ -901,7 +901,7 @@ static void window_multiplayer_groups_scrollpaint(rct_window* w, rct_drawpixelin
|
|||
if (network_can_perform_action(groupindex, static_cast<NetworkPermission>(i)))
|
||||
{
|
||||
screenCoords.x = 0;
|
||||
gfx_draw_string(dpi, u8"{WINDOW_COLOUR_2}✓", COLOUR_BLACK, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, u8"{WINDOW_COLOUR_2}✓", {});
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -386,13 +386,13 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d
|
|||
DrawTextBasic(dpi, screenCoords, STR_NETWORK_RECEIVE, {}, { PALETTE_INDEX_10 });
|
||||
|
||||
format_readable_speed(textBuffer, sizeof(textBuffer), _bytesInSec);
|
||||
gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(70, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(70, 0), textBuffer, { PALETTE_INDEX_10 });
|
||||
|
||||
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ 200, 0 }, STR_NETWORK_TOTAL_RECEIVED, {}, { PALETTE_INDEX_10 });
|
||||
|
||||
format_readable_size(
|
||||
textBuffer, sizeof(textBuffer), _networkStats.bytesReceived[EnumValue(NetworkStatisticsGroup::Total)]);
|
||||
gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(300, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(300, 0), textBuffer, { PALETTE_INDEX_10 });
|
||||
screenCoords.y += textHeight + padding;
|
||||
|
||||
window_network_draw_graph(
|
||||
|
@ -405,13 +405,13 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d
|
|||
DrawTextBasic(dpi, screenCoords, STR_NETWORK_SEND, {}, { PALETTE_INDEX_10 });
|
||||
|
||||
format_readable_speed(textBuffer, sizeof(textBuffer), _bytesOutSec);
|
||||
gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(70, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(70, 0), textBuffer, { PALETTE_INDEX_10 });
|
||||
|
||||
DrawTextBasic(dpi, screenCoords + ScreenCoordsXY{ 200, 0 }, STR_NETWORK_TOTAL_SENT, {}, { PALETTE_INDEX_10 });
|
||||
|
||||
format_readable_size(
|
||||
textBuffer, sizeof(textBuffer), _networkStats.bytesSent[EnumValue(NetworkStatisticsGroup::Total)]);
|
||||
gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(300, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(300, 0), textBuffer, { PALETTE_INDEX_10 });
|
||||
screenCoords.y += textHeight + padding;
|
||||
|
||||
window_network_draw_graph(
|
||||
|
@ -431,7 +431,7 @@ static void window_network_information_paint(rct_window* w, rct_drawpixelinfo* d
|
|||
NetworkTrafficGroupColors[i]);
|
||||
|
||||
// Draw text.
|
||||
gfx_draw_string(dpi, textBuffer, PALETTE_INDEX_10, screenCoords + ScreenCoordsXY(10, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(10, 0), textBuffer, { PALETTE_INDEX_10 });
|
||||
|
||||
gfx_get_string_width(textBuffer, FontSpriteBase::MEDIUM);
|
||||
|
||||
|
|
|
@ -163,5 +163,5 @@ static void window_network_status_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
gfx_clip_string(buffer.data(), w->widgets[WIDX_BACKGROUND].right - 50);
|
||||
ScreenCoordsXY screenCoords(w->windowPos.x + (w->width / 2), w->windowPos.y + (w->height / 2));
|
||||
screenCoords.x -= gfx_get_string_width(buffer, FontSpriteBase::MEDIUM) / 2;
|
||||
gfx_draw_string(dpi, buffer.c_str(), COLOUR_BLACK, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer.c_str());
|
||||
}
|
||||
|
|
|
@ -578,7 +578,7 @@ static void window_object_load_error_scrollpaint(rct_window* w, rct_drawpixelinf
|
|||
|
||||
// Draw the actual object entry's name...
|
||||
screenCoords.x = NAME_COL_LEFT - 3;
|
||||
gfx_draw_string(dpi, strndup(_invalid_entries[i].name, 8), COLOUR_DARK_GREEN, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, strndup(_invalid_entries[i].name, 8), { COLOUR_DARK_GREEN });
|
||||
|
||||
// ... source game ...
|
||||
rct_string_id sourceStringId = object_manager_get_source_game_string(_invalid_entries[i].GetSourceGame());
|
||||
|
|
|
@ -349,7 +349,7 @@ void window_player_overview_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
DrawTextBasic(dpi, screenCoords, STR_WINDOW_COLOUR_2_STRINGID, ft);
|
||||
char ping[64];
|
||||
snprintf(ping, 64, "%d ms", network_get_player_ping(player));
|
||||
gfx_draw_string(dpi, ping, w->colours[2], screenCoords + ScreenCoordsXY(30, 0));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(30, 0), ping, { w->colours[2] });
|
||||
|
||||
// Draw last action
|
||||
screenCoords = w->windowPos + ScreenCoordsXY{ w->width / 2, w->height - 13 };
|
||||
|
|
|
@ -506,7 +506,7 @@ static void window_server_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi
|
|||
|
||||
// Draw number of players
|
||||
screenCoords.x = right - numPlayersStringWidth;
|
||||
gfx_draw_string(dpi, players, w->colours[1], screenCoords + ScreenCoordsXY{ 0, 3 });
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY{ 0, 3 }, players, { w->colours[1] });
|
||||
|
||||
screenCoords.y += ITEM_HEIGHT;
|
||||
}
|
||||
|
|
|
@ -325,7 +325,7 @@ private:
|
|||
&dpi, { screenCoords - ScreenCoordsXY{ 1, 1 }, screenCoords + ScreenCoordsXY{ width + 1, height + 1 } },
|
||||
PALETTE_INDEX_12);
|
||||
gfx_fill_rect(&dpi, { screenCoords, screenCoords + ScreenCoordsXY{ width, height } }, PALETTE_INDEX_0);
|
||||
gfx_draw_string(&dpi, static_cast<const char*>(gTextInput->ImeBuffer), COLOUR_DARK_GREEN, screenCoords);
|
||||
gfx_draw_string(&dpi, screenCoords, static_cast<const char*>(gTextInput->ImeBuffer), { COLOUR_DARK_GREEN });
|
||||
}
|
||||
|
||||
void ExecuteCallback(bool hasValue)
|
||||
|
|
|
@ -912,7 +912,9 @@ void window_themes_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t sc
|
|||
if (colour & COLOUR_FLAG_TRANSLUCENT)
|
||||
{
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM_DARK;
|
||||
gfx_draw_string(dpi, static_cast<const char*>(CheckBoxMarkString), w->colours[1] & 0x7F, topLeft);
|
||||
gfx_draw_string(
|
||||
dpi, topLeft, static_cast<const char*>(CheckBoxMarkString),
|
||||
{ static_cast<colour_t>(w->colours[1] & 0x7F), FontSpriteBase::MEDIUM_DARK });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1751,8 +1751,8 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
ScreenCoordsXY screenCoords(w->windowPos.x, w->windowPos.y);
|
||||
|
||||
// Draw coordinates
|
||||
gfx_draw_string(dpi, "X:", COLOUR_WHITE, screenCoords + ScreenCoordsXY(5, 24));
|
||||
gfx_draw_string(dpi, "Y:", COLOUR_WHITE, screenCoords + ScreenCoordsXY(74, 24));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(5, 24), "X:", { COLOUR_WHITE });
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(74, 24), "Y:", { COLOUR_WHITE });
|
||||
if (windowTileInspectorTileSelected)
|
||||
{
|
||||
auto tileCoords = TileCoordsXY{ windowTileInspectorToolMap };
|
||||
|
@ -1767,8 +1767,8 @@ static void window_tile_inspector_paint(rct_window* w, rct_drawpixelinfo* dpi)
|
|||
}
|
||||
else
|
||||
{
|
||||
gfx_draw_string(dpi, "-", COLOUR_WHITE, screenCoords + ScreenCoordsXY(43 - 7, 24));
|
||||
gfx_draw_string(dpi, "-", COLOUR_WHITE, screenCoords + ScreenCoordsXY(113, 24));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(43 - 7, 24), "-", { COLOUR_WHITE });
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(113, 24), "-", { COLOUR_WHITE });
|
||||
}
|
||||
|
||||
if (windowTileInspectorSelectedIndex != -1)
|
||||
|
|
|
@ -266,13 +266,13 @@ int32_t gfx_wrap_string(utf8* text, int32_t width, int32_t* outNumLines)
|
|||
* Draws text that is left aligned and vertically centred.
|
||||
*/
|
||||
void gfx_draw_string_left_centred(
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, const ScreenCoordsXY& coords)
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, colour_t colour, const ScreenCoordsXY& coords)
|
||||
{
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM;
|
||||
char* buffer = gCommonStringFormatBuffer;
|
||||
format_string(buffer, 256, format, args);
|
||||
int32_t height = string_get_height_raw(buffer, FontSpriteBase::MEDIUM);
|
||||
gfx_draw_string(dpi, buffer, colour, coords - ScreenCoordsXY{ 0, (height / 2) });
|
||||
gfx_draw_string(dpi, coords - ScreenCoordsXY{ 0, (height / 2) }, buffer, { colour });
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -334,13 +334,13 @@ void draw_string_centred_raw(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coord
|
|||
{
|
||||
ScreenCoordsXY screenCoords(dpi->x, dpi->y);
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM;
|
||||
gfx_draw_string(dpi, "", COLOUR_BLACK, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, "", { COLOUR_BLACK });
|
||||
screenCoords = coords;
|
||||
|
||||
for (int32_t i = 0; i <= numLines; i++)
|
||||
{
|
||||
int32_t width = gfx_get_string_width(text, gCurrentFontSpriteBase);
|
||||
gfx_draw_string(dpi, text, TEXT_COLOUR_254, screenCoords - ScreenCoordsXY{ width / 2, 0 });
|
||||
int32_t width = gfx_get_string_width(text, FontSpriteBase::MEDIUM);
|
||||
gfx_draw_string(dpi, screenCoords - ScreenCoordsXY{ width / 2, 0 }, text, { TEXT_COLOUR_254 });
|
||||
|
||||
const utf8* ch = text;
|
||||
const utf8* nextCh = nullptr;
|
||||
|
@ -424,7 +424,7 @@ int32_t string_get_height_raw(std::string_view text, FontSpriteBase fontBase)
|
|||
* ticks : ebp >> 16
|
||||
*/
|
||||
void gfx_draw_string_centred_wrapped_partial(
|
||||
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, int32_t colour, rct_string_id format, void* args,
|
||||
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, rct_string_id format, void* args,
|
||||
int32_t ticks)
|
||||
{
|
||||
int32_t numLines, lineHeight, lineY;
|
||||
|
@ -432,7 +432,7 @@ void gfx_draw_string_centred_wrapped_partial(
|
|||
ScreenCoordsXY screenCoords(dpi->x, dpi->y);
|
||||
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM;
|
||||
gfx_draw_string(dpi, "", colour, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, "", { colour });
|
||||
format_string(buffer, 256, format, args);
|
||||
|
||||
gCurrentFontSpriteBase = FontSpriteBase::MEDIUM;
|
||||
|
@ -445,7 +445,7 @@ void gfx_draw_string_centred_wrapped_partial(
|
|||
lineY = coords.y - ((numLines * lineHeight) / 2);
|
||||
for (int32_t line = 0; line <= numLines; line++)
|
||||
{
|
||||
int32_t halfWidth = gfx_get_string_width(buffer, gCurrentFontSpriteBase) / 2;
|
||||
int32_t halfWidth = gfx_get_string_width(buffer, FontSpriteBase::MEDIUM) / 2;
|
||||
|
||||
FmtString fmt(buffer);
|
||||
for (const auto& token : fmt)
|
||||
|
@ -471,7 +471,7 @@ void gfx_draw_string_centred_wrapped_partial(
|
|||
}
|
||||
|
||||
screenCoords = { coords.x - halfWidth, lineY };
|
||||
gfx_draw_string(dpi, buffer, TEXT_COLOUR_254, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer, { TEXT_COLOUR_254 });
|
||||
|
||||
if (numCharactersDrawn > numCharactersToDraw)
|
||||
{
|
||||
|
|
|
@ -735,15 +735,15 @@ void FASTCALL gfx_draw_sprite_raw_masked_software(
|
|||
rct_drawpixelinfo* dpi, const ScreenCoordsXY& scrCoords, int32_t maskImage, int32_t colourImage);
|
||||
|
||||
// string
|
||||
void gfx_draw_string(rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t colour, const ScreenCoordsXY& coords);
|
||||
void gfx_draw_string(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, const_utf8string buffer, TextPaint textPaint = {});
|
||||
void gfx_draw_string_no_formatting(
|
||||
rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t colour, const ScreenCoordsXY& coords);
|
||||
|
||||
void gfx_draw_string_left_centred(
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, const ScreenCoordsXY& coords);
|
||||
rct_drawpixelinfo* dpi, rct_string_id format, void* args, colour_t colour, const ScreenCoordsXY& coords);
|
||||
void draw_string_centred_raw(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t numLines, char* text);
|
||||
void gfx_draw_string_centred_wrapped_partial(
|
||||
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, int32_t colour, rct_string_id format, void* args,
|
||||
rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, colour_t colour, rct_string_id format, void* args,
|
||||
int32_t ticks);
|
||||
void gfx_draw_string_with_y_offsets(
|
||||
rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, const ScreenCoordsXY& coords, const int8_t* yOffsets,
|
||||
|
|
|
@ -142,9 +142,8 @@ void DrawTextEllipsised(
|
|||
DrawText(dpi, coords, textPaint, buffer);
|
||||
}
|
||||
|
||||
void gfx_draw_string(rct_drawpixelinfo* dpi, const_utf8string buffer, uint8_t colour, const ScreenCoordsXY& coords)
|
||||
void gfx_draw_string(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, const_utf8string buffer, TextPaint textPaint)
|
||||
{
|
||||
TextPaint textPaint = { colour, gCurrentFontSpriteBase, TextUnderline::Off, TextAlignment::LEFT };
|
||||
DrawText(dpi, coords, textPaint, buffer);
|
||||
}
|
||||
|
||||
|
|
|
@ -288,7 +288,7 @@ static int32_t chat_history_draw_string(
|
|||
auto lineY = screenCoords.y;
|
||||
for (int32_t line = 0; line <= numLines; ++line)
|
||||
{
|
||||
gfx_draw_string(dpi, buffer, TEXT_COLOUR_254, { screenCoords.x, lineY - (numLines * lineHeight) });
|
||||
gfx_draw_string(dpi, { screenCoords.x, lineY - (numLines * lineHeight) }, buffer, { TEXT_COLOUR_254 });
|
||||
buffer = get_string_end(buffer) + 1;
|
||||
lineY += lineHeight;
|
||||
}
|
||||
|
|
|
@ -91,7 +91,7 @@ void Painter::PaintReplayNotice(rct_drawpixelinfo* dpi, const char* text)
|
|||
screenCoords.x = screenCoords.x - stringWidth;
|
||||
|
||||
if (((gCurrentTicks >> 1) & 0xF) > 4)
|
||||
gfx_draw_string(dpi, buffer, COLOUR_SATURATED_RED, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer, { COLOUR_SATURATED_RED });
|
||||
|
||||
// Make area dirty so the text doesn't get drawn over the last
|
||||
gfx_set_dirty_blocks({ screenCoords, screenCoords + ScreenCoordsXY{ stringWidth, 16 } });
|
||||
|
@ -109,7 +109,7 @@ void Painter::PaintFPS(rct_drawpixelinfo* dpi)
|
|||
// Draw Text
|
||||
int32_t stringWidth = gfx_get_string_width(buffer, FontSpriteBase::MEDIUM);
|
||||
screenCoords.x = screenCoords.x - (stringWidth / 2);
|
||||
gfx_draw_string(dpi, buffer, 0, screenCoords);
|
||||
gfx_draw_string(dpi, screenCoords, buffer);
|
||||
|
||||
// Make area dirty so the text doesn't get drawn over the last
|
||||
gfx_set_dirty_blocks({ { screenCoords - ScreenCoordsXY{ 16, 4 } }, { gLastDrawStringX + 16, 16 } });
|
||||
|
|
|
@ -440,7 +440,7 @@ void DrawOpenRCT2(rct_drawpixelinfo* dpi, const ScreenCoordsXY& screenCoords)
|
|||
|
||||
// Write name and version information
|
||||
buffer += gVersionInfoFull;
|
||||
gfx_draw_string(dpi, buffer.c_str(), COLOUR_BLACK, screenCoords + ScreenCoordsXY(5, 5 - 13));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(5, 5 - 13), buffer.c_str(), { COLOUR_BLACK });
|
||||
|
||||
// Invalidate screen area
|
||||
int16_t width = static_cast<int16_t>(gfx_get_string_width(buffer, FontSpriteBase::MEDIUM));
|
||||
|
@ -453,5 +453,5 @@ void DrawOpenRCT2(rct_drawpixelinfo* dpi, const ScreenCoordsXY& screenCoords)
|
|||
buffer.append(" (");
|
||||
buffer.append(OPENRCT2_ARCHITECTURE);
|
||||
buffer.append(")");
|
||||
gfx_draw_string(dpi, buffer.c_str(), COLOUR_BLACK, screenCoords + ScreenCoordsXY(5, 5));
|
||||
gfx_draw_string(dpi, screenCoords + ScreenCoordsXY(5, 5), buffer.c_str(), { COLOUR_BLACK });
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue