From a0ed2c181e15519477e59b9c1b456120c11c2c7c Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 08:38:25 -0300 Subject: [PATCH 1/7] Make gfx_draw_string_left_centred use ScreenCoordsXY --- src/openrct2-ui/interface/Widget.cpp | 2 +- src/openrct2/drawing/Drawing.String.cpp | 4 ++-- src/openrct2/drawing/Drawing.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/openrct2-ui/interface/Widget.cpp b/src/openrct2-ui/interface/Widget.cpp index 87c863b9aa..a5bff5a089 100644 --- a/src/openrct2-ui/interface/Widget.cpp +++ b/src/openrct2-ui/interface/Widget.cpp @@ -624,7 +624,7 @@ static void widget_checkbox_draw(rct_drawpixelinfo* dpi, rct_window* w, rct_widg return; auto [stringId, formatArgs] = widget_get_stringid_and_args(widget); - gfx_draw_string_left_centred(dpi, stringId, formatArgs, colour, l + 14, yMid); + gfx_draw_string_left_centred(dpi, stringId, formatArgs, colour, { l + 14, yMid }); } /** diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 034e5f0e04..a90680af70 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -245,13 +245,13 @@ int32_t gfx_wrap_string(utf8* text, int32_t width, int32_t* outNumLines, int32_t * 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, int32_t x, int32_t y) + rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, const ScreenCoordsXY& coords) { gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM; char* buffer = gCommonStringFormatBuffer; format_string(buffer, 256, format, args); int32_t height = string_get_height_raw(buffer); - gfx_draw_string(dpi, buffer, colour, { x, y - (height / 2) }); + gfx_draw_string(dpi, buffer, colour, coords - ScreenCoordsXY{ 0, (height / 2) }); } /** diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 680bf8d21b..56565e34ec 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -670,7 +670,7 @@ int32_t gfx_draw_string_centred_wrapped( rct_drawpixelinfo* dpi, void* args, const ScreenCoordsXY& coords, int32_t width, rct_string_id format, uint8_t colour); void gfx_draw_string_left_centred( - rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, int32_t x, int32_t y); + rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, const ScreenCoordsXY& coords); void draw_string_centred_raw(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t numLines, char* text); void gfx_draw_string_centred_wrapped_partial( rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t width, int32_t colour, rct_string_id format, void* args, From 1717f2a9a35cac0905f14e59b80f5abcf450993e Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 08:42:38 -0300 Subject: [PATCH 2/7] Make draw_string_centred_raw use ScreenCoordsXY --- src/openrct2-ui/windows/Error.cpp | 2 +- src/openrct2-ui/windows/Tooltip.cpp | 2 +- src/openrct2/drawing/Drawing.String.cpp | 4 ++-- src/openrct2/drawing/Drawing.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/openrct2-ui/windows/Error.cpp b/src/openrct2-ui/windows/Error.cpp index 5e6f2101fd..73823a5da6 100644 --- a/src/openrct2-ui/windows/Error.cpp +++ b/src/openrct2-ui/windows/Error.cpp @@ -194,5 +194,5 @@ static void window_error_paint(rct_window* w, rct_drawpixelinfo* dpi) l = w->windowPos.x + (w->width + 1) / 2 - 1; t = w->windowPos.y + 1; - draw_string_centred_raw(dpi, l, t, _window_error_num_lines, _window_error_text.data()); + draw_string_centred_raw(dpi, { l, t }, _window_error_num_lines, _window_error_text.data()); } diff --git a/src/openrct2-ui/windows/Tooltip.cpp b/src/openrct2-ui/windows/Tooltip.cpp index 216dd324b9..a41fce77fb 100644 --- a/src/openrct2-ui/windows/Tooltip.cpp +++ b/src/openrct2-ui/windows/Tooltip.cpp @@ -211,5 +211,5 @@ static void window_tooltip_paint(rct_window* w, rct_drawpixelinfo* dpi) // Text left = w->windowPos.x + ((w->width + 1) / 2) - 1; top = w->windowPos.y + 1; - draw_string_centred_raw(dpi, left, top, _tooltipNumLines, _tooltipText); + draw_string_centred_raw(dpi, { left, top }, _tooltipNumLines, _tooltipText); } diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index a90680af70..287a3eba2d 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -309,12 +309,12 @@ static void colour_char_window(uint8_t colour, const uint16_t* current_font_flag * text : esi * dpi : edi */ -void draw_string_centred_raw(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t numLines, char* text) +void draw_string_centred_raw(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t numLines, char* text) { ScreenCoordsXY screenCoords(dpi->x, dpi->y); gCurrentFontSpriteBase = FONT_SPRITE_BASE_MEDIUM; gfx_draw_string(dpi, "", COLOUR_BLACK, screenCoords); - screenCoords = { x, y }; + screenCoords = coords; gCurrentFontFlags = 0; for (int32_t i = 0; i <= numLines; i++) diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 56565e34ec..b9b164cb27 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -671,7 +671,7 @@ int32_t gfx_draw_string_centred_wrapped( void gfx_draw_string_left_centred( rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_t colour, const ScreenCoordsXY& coords); -void draw_string_centred_raw(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t numLines, char* text); +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, int32_t x, int32_t y, int32_t width, int32_t colour, rct_string_id format, void* args, int32_t ticks); From b7dc5057e50a076477fd77225bf93caf88c2ab01 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 08:46:51 -0300 Subject: [PATCH 3/7] Make gfx_draw_string_centred_wrapped_partial use ScreenCoordsXY --- src/openrct2-ui/windows/GameBottomToolbar.cpp | 3 +-- src/openrct2/drawing/Drawing.String.cpp | 6 +++--- src/openrct2/drawing/Drawing.h | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/openrct2-ui/windows/GameBottomToolbar.cpp b/src/openrct2-ui/windows/GameBottomToolbar.cpp index e0a681119c..ab36362581 100644 --- a/src/openrct2-ui/windows/GameBottomToolbar.cpp +++ b/src/openrct2-ui/windows/GameBottomToolbar.cpp @@ -585,8 +585,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc auto screenCoords = w->windowPos + ScreenCoordsXY{ middleOutsetWidget->midX(), middleOutsetWidget->top + 11 }; width = middleOutsetWidget->width() - 62; gfx_draw_string_centred_wrapped_partial( - dpi, screenCoords.x, screenCoords.y, width, COLOUR_BRIGHT_GREEN, STR_BOTTOM_TOOLBAR_NEWS_TEXT, &newsItemText, - newsItem->Ticks); + dpi, screenCoords, width, COLOUR_BRIGHT_GREEN, STR_BOTTOM_TOOLBAR_NEWS_TEXT, &newsItemText, newsItem->Ticks); screenCoords = w->windowPos + ScreenCoordsXY{ window_game_bottom_toolbar_widgets[WIDX_NEWS_SUBJECT].left, diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 287a3eba2d..5bd623e21b 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -421,7 +421,7 @@ int32_t string_get_height_raw(char* buffer) * ticks : ebp >> 16 */ void gfx_draw_string_centred_wrapped_partial( - rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t width, int32_t colour, rct_string_id format, void* args, + rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, int32_t colour, rct_string_id format, void* args, int32_t ticks) { int32_t numLines, fontSpriteBase, lineHeight, lineY; @@ -440,7 +440,7 @@ void gfx_draw_string_centred_wrapped_partial( int32_t numCharactersToDraw = ticks; gCurrentFontFlags = 0; - lineY = y - ((numLines * lineHeight) / 2); + lineY = coords.y - ((numLines * lineHeight) / 2); for (int32_t line = 0; line <= numLines; line++) { int32_t halfWidth = gfx_get_string_width(buffer) / 2; @@ -462,7 +462,7 @@ void gfx_draw_string_centred_wrapped_partial( ch = nextCh; } - screenCoords = { x - halfWidth, lineY }; + screenCoords = { coords.x - halfWidth, lineY }; gfx_draw_string(dpi, buffer, TEXT_COLOUR_254, screenCoords); if (numCharactersDrawn > numCharactersToDraw) diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index b9b164cb27..34148260eb 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -673,7 +673,7 @@ void gfx_draw_string_left_centred( rct_drawpixelinfo* dpi, rct_string_id format, void* args, int32_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, int32_t x, int32_t y, int32_t width, int32_t colour, rct_string_id format, void* args, + rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t width, int32_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, int32_t x, int32_t y, const int8_t* yOffsets, From 592b54d35468463c54152060f57fe8f9af37bd9a Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 08:55:06 -0300 Subject: [PATCH 4/7] Make gfx_draw_string_with_y_offsets use ScreenCoordsXY --- src/openrct2/drawing/Drawing.String.cpp | 10 +++++----- src/openrct2/drawing/Drawing.h | 2 +- src/openrct2/paint/Paint.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 5bd623e21b..693fc6ccc1 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -992,16 +992,16 @@ static int32_t ttf_get_string_width(const utf8* text) * rct2: 0x00682F28 */ void gfx_draw_string_with_y_offsets( - rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, int32_t x, int32_t y, const int8_t* yOffsets, + rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, const ScreenCoordsXY& coords, const int8_t* yOffsets, bool forceSpriteFont) { text_draw_info info; info.font_sprite_base = gCurrentFontSpriteBase; info.flags = gCurrentFontFlags; - info.startX = x; - info.startY = x; - info.x = x; - info.y = y; + info.startX = coords.x; + info.startY = coords.y; + info.x = coords.x; + info.y = coords.y; info.y_offset = yOffsets; info.flags |= TEXT_DRAW_FLAG_Y_OFFSET_EFFECT; diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 34148260eb..2aed012094 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -676,7 +676,7 @@ 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, int32_t ticks); void gfx_draw_string_with_y_offsets( - rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, int32_t x, int32_t y, const int8_t* yOffsets, + rct_drawpixelinfo* dpi, const utf8* text, int32_t colour, const ScreenCoordsXY& coords, const int8_t* yOffsets, bool forceSpriteFont); int32_t gfx_wrap_string(char* buffer, int32_t width, int32_t* num_lines, int32_t* font_height); diff --git a/src/openrct2/paint/Paint.cpp b/src/openrct2/paint/Paint.cpp index ee7ce56287..5283c1359b 100644 --- a/src/openrct2/paint/Paint.cpp +++ b/src/openrct2/paint/Paint.cpp @@ -1152,6 +1152,6 @@ void paint_draw_money_structs(rct_drawpixelinfo* dpi, paint_string_struct* ps) } gfx_draw_string_with_y_offsets( - &dpi2, buffer, COLOUR_BLACK, ps->x, ps->y, reinterpret_cast(ps->y_offsets), forceSpriteFont); + &dpi2, buffer, COLOUR_BLACK, { ps->x, ps->y }, reinterpret_cast(ps->y_offsets), forceSpriteFont); } while ((ps = ps->next) != nullptr); } From 79d007c780a1661f84ba2a5b31f078c5d5c5db49 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 08:58:29 -0300 Subject: [PATCH 5/7] Make ttf_draw_string use ScreenCoordsXY --- src/openrct2/drawing/Drawing.String.cpp | 10 +++++----- src/openrct2/drawing/Drawing.h | 2 +- src/openrct2/drawing/Text.cpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 693fc6ccc1..0ec086c570 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -934,7 +934,7 @@ static void ttf_process_initial_colour(int32_t colour, text_draw_info* info) } } -void ttf_draw_string(rct_drawpixelinfo* dpi, const_utf8string text, int32_t colour, int32_t x, int32_t y) +void ttf_draw_string(rct_drawpixelinfo* dpi, const_utf8string text, int32_t colour, const ScreenCoordsXY& coords) { if (text == nullptr) return; @@ -942,10 +942,10 @@ void ttf_draw_string(rct_drawpixelinfo* dpi, const_utf8string text, int32_t colo text_draw_info info; info.font_sprite_base = gCurrentFontSpriteBase; info.flags = gCurrentFontFlags; - info.startX = x; - info.startY = x; - info.x = x; - info.y = y; + info.startX = coords.x; + info.startY = coords.y; + info.x = coords.x; + info.y = coords.y; if (LocalisationService_UseTrueTypeFont()) { diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 2aed012094..39eeb71a83 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -685,7 +685,7 @@ int32_t gfx_get_string_width_new_lined(char* buffer); int32_t string_get_height_raw(char* buffer); int32_t gfx_clip_string(char* buffer, int32_t width); void shorten_path(utf8* buffer, size_t bufferSize, const utf8* path, int32_t availableWidth); -void ttf_draw_string(rct_drawpixelinfo* dpi, const_utf8string text, int32_t colour, int32_t x, int32_t y); +void ttf_draw_string(rct_drawpixelinfo* dpi, const_utf8string text, int32_t colour, const ScreenCoordsXY& coords); // scrolling text void scrolling_text_initialise_bitmaps(); diff --git a/src/openrct2/drawing/Text.cpp b/src/openrct2/drawing/Text.cpp index f05457dae9..ab652f3e7f 100644 --- a/src/openrct2/drawing/Text.cpp +++ b/src/openrct2/drawing/Text.cpp @@ -93,7 +93,7 @@ static void DrawText(rct_drawpixelinfo* dpi, int32_t x, int32_t y, TextPaint* pa break; } - ttf_draw_string(dpi, text, paint->Colour, x, y); + ttf_draw_string(dpi, text, paint->Colour, { x, y }); if (paint->UnderlineText) { From b0c10f979b99c26dd8e8169218d85a898b5f7ef4 Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 09:05:20 -0300 Subject: [PATCH 6/7] Make gfx_draw_glyph use ScreenCoordsXY --- src/openrct2/drawing/Drawing.String.cpp | 7 +++---- src/openrct2/drawing/Drawing.h | 3 ++- src/openrct2/drawing/NewDrawing.cpp | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/openrct2/drawing/Drawing.String.cpp b/src/openrct2/drawing/Drawing.String.cpp index 0ec086c570..cf12962ca1 100644 --- a/src/openrct2/drawing/Drawing.String.cpp +++ b/src/openrct2/drawing/Drawing.String.cpp @@ -496,15 +496,14 @@ static void ttf_draw_character_sprite(rct_drawpixelinfo* dpi, int32_t codepoint, if (!(info->flags & TEXT_DRAW_FLAG_NO_DRAW)) { - int32_t x = info->x; - int32_t y = info->y; + auto screenCoords = ScreenCoordsXY{ info->x, info->y }; if (info->flags & TEXT_DRAW_FLAG_Y_OFFSET_EFFECT) { - y += *info->y_offset++; + screenCoords.y += *info->y_offset++; } PaletteMap paletteMap(info->palette); - gfx_draw_glyph(dpi, sprite, x, y, paletteMap); + gfx_draw_glyph(dpi, sprite, screenCoords, paletteMap); } info->x += characterWidth; diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 39eeb71a83..adfcbe852e 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -630,7 +630,8 @@ void FASTCALL gfx_sprite_to_buffer(DrawSpriteArgs& args); void FASTCALL gfx_bmp_sprite_to_buffer(DrawSpriteArgs& args); void FASTCALL gfx_rle_sprite_to_buffer(DrawSpriteArgs& args); void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image_id, const ScreenCoordsXY& coords, uint32_t tertiary_colour); -void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image_id, int32_t x, int32_t y, const PaletteMap& paletteMap); +void FASTCALL + gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image_id, const ScreenCoordsXY& coords, const PaletteMap& paletteMap); void FASTCALL gfx_draw_sprite_raw_masked(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t maskImage, int32_t colourImage); void FASTCALL gfx_draw_sprite_solid(rct_drawpixelinfo* dpi, int32_t image, const ScreenCoordsXY& coords, uint8_t colour); diff --git a/src/openrct2/drawing/NewDrawing.cpp b/src/openrct2/drawing/NewDrawing.cpp index e2db564ed6..af4e86ee4d 100644 --- a/src/openrct2/drawing/NewDrawing.cpp +++ b/src/openrct2/drawing/NewDrawing.cpp @@ -254,13 +254,13 @@ void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image, const Scree } } -void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image, int32_t x, int32_t y, const PaletteMap& paletteMap) +void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image, const ScreenCoordsXY& coords, const PaletteMap& paletteMap) { auto drawingEngine = dpi->DrawingEngine; if (drawingEngine != nullptr) { IDrawingContext* dc = drawingEngine->GetDrawingContext(dpi); - dc->DrawGlyph(image, x, y, paletteMap); + dc->DrawGlyph(image, coords.x, coords.y, paletteMap); } } From b6f252f68ec8d3cd112d07538f98606d5f77bdab Mon Sep 17 00:00:00 2001 From: Tulio Leao Date: Sun, 21 Jun 2020 09:09:20 -0300 Subject: [PATCH 7/7] Make gfx_draw_sprite_raw_masked use ScreenCoordsXY --- src/openrct2-ui/windows/NewRide.cpp | 2 +- src/openrct2/drawing/Drawing.h | 3 ++- src/openrct2/drawing/NewDrawing.cpp | 5 +++-- src/openrct2/paint/Paint.cpp | 4 ++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index 83c10df0da..238fda8474 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -867,7 +867,7 @@ static void window_new_ride_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, i imageId++; } - gfx_draw_sprite_raw_masked(dpi, x + 2, y + 2, SPR_NEW_RIDE_MASK, imageId); + gfx_draw_sprite_raw_masked(dpi, { x + 2, y + 2 }, SPR_NEW_RIDE_MASK, imageId); // Next position x += 116; diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index adfcbe852e..5056481ba5 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -632,7 +632,8 @@ void FASTCALL gfx_rle_sprite_to_buffer(DrawSpriteArgs& args); void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image_id, const ScreenCoordsXY& coords, uint32_t tertiary_colour); void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image_id, const ScreenCoordsXY& coords, const PaletteMap& paletteMap); -void FASTCALL gfx_draw_sprite_raw_masked(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t maskImage, int32_t colourImage); +void FASTCALL + gfx_draw_sprite_raw_masked(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t maskImage, int32_t colourImage); void FASTCALL gfx_draw_sprite_solid(rct_drawpixelinfo* dpi, int32_t image, const ScreenCoordsXY& coords, uint8_t colour); void FASTCALL gfx_draw_sprite_software(rct_drawpixelinfo* dpi, ImageId imageId, const ScreenCoordsXY& spriteCoords); diff --git a/src/openrct2/drawing/NewDrawing.cpp b/src/openrct2/drawing/NewDrawing.cpp index af4e86ee4d..482bda0ba8 100644 --- a/src/openrct2/drawing/NewDrawing.cpp +++ b/src/openrct2/drawing/NewDrawing.cpp @@ -264,13 +264,14 @@ void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image, const Screen } } -void FASTCALL gfx_draw_sprite_raw_masked(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t maskImage, int32_t colourImage) +void FASTCALL + gfx_draw_sprite_raw_masked(rct_drawpixelinfo* dpi, const ScreenCoordsXY& coords, int32_t maskImage, int32_t colourImage) { auto drawingEngine = dpi->DrawingEngine; if (drawingEngine != nullptr) { IDrawingContext* dc = drawingEngine->GetDrawingContext(dpi); - dc->DrawSpriteRawMasked(x, y, maskImage, colourImage); + dc->DrawSpriteRawMasked(coords.x, coords.y, maskImage, colourImage); } } diff --git a/src/openrct2/paint/Paint.cpp b/src/openrct2/paint/Paint.cpp index 5283c1359b..7073ec4f36 100644 --- a/src/openrct2/paint/Paint.cpp +++ b/src/openrct2/paint/Paint.cpp @@ -527,7 +527,7 @@ static void paint_attached_ps(rct_drawpixelinfo* dpi, paint_struct* ps, uint32_t uint32_t imageId = paint_ps_colourify_image(attached_ps->image_id, ps->sprite_type, viewFlags); if (attached_ps->flags & PAINT_STRUCT_FLAG_IS_MASKED) { - gfx_draw_sprite_raw_masked(dpi, screenCoords.x, screenCoords.y, imageId, attached_ps->colour_image_id); + gfx_draw_sprite_raw_masked(dpi, screenCoords, imageId, attached_ps->colour_image_id); } else { @@ -632,7 +632,7 @@ static void paint_ps_image(rct_drawpixelinfo* dpi, paint_struct* ps, uint32_t im { if (ps->flags & PAINT_STRUCT_FLAG_IS_MASKED) { - return gfx_draw_sprite_raw_masked(dpi, x, y, imageId, ps->colour_image_id); + return gfx_draw_sprite_raw_masked(dpi, { x, y }, imageId, ps->colour_image_id); } gfx_draw_sprite(dpi, imageId, { x, y }, ps->tertiary_colour);