diff --git a/src/openrct2-ui/windows/GuestList.cpp b/src/openrct2-ui/windows/GuestList.cpp index ad64703a38..7e321c2d8c 100644 --- a/src/openrct2-ui/windows/GuestList.cpp +++ b/src/openrct2-ui/windows/GuestList.cpp @@ -684,14 +684,18 @@ static void window_guest_list_paint(rct_window* w, rct_drawpixelinfo* dpi) i += g_peep_animation_entries[PEEP_SPRITE_TYPE_NORMAL].sprite_animation->base_image + 1; i |= 0xA1600000; gfx_draw_sprite( - dpi, i, (window_guest_list_widgets[WIDX_TAB_1].left + window_guest_list_widgets[WIDX_TAB_1].right) / 2 + w->windowPos.x, - window_guest_list_widgets[WIDX_TAB_1].bottom - 6 + w->windowPos.y, 0); + dpi, i, + w->windowPos + + ScreenCoordsXY{ (window_guest_list_widgets[WIDX_TAB_1].left + window_guest_list_widgets[WIDX_TAB_1].right) / 2, + window_guest_list_widgets[WIDX_TAB_1].bottom - 6 }, + 0); // Tab 2 image i = (_window_guest_list_selected_tab == 1 ? w->list_information_type / 4 : 0); gfx_draw_sprite( - dpi, SPR_TAB_GUESTS_0 + i, window_guest_list_widgets[WIDX_TAB_2].left + w->windowPos.x, - window_guest_list_widgets[WIDX_TAB_2].top + w->windowPos.y, 0); + dpi, SPR_TAB_GUESTS_0 + i, + w->windowPos + ScreenCoordsXY{ window_guest_list_widgets[WIDX_TAB_2].left, window_guest_list_widgets[WIDX_TAB_2].top }, + 0); // Filter description auto screenCoords = w->windowPos + ScreenCoordsXY{ 6, window_guest_list_widgets[WIDX_TAB_CONTENT_PANEL].top + 3 }; @@ -775,11 +779,11 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, { case VIEW_ACTIONS: // Guest face - gfx_draw_sprite(dpi, get_peep_face_sprite_small(peep), 118, y + 1, 0); + gfx_draw_sprite(dpi, get_peep_face_sprite_small(peep), { 118, y + 1 }, 0); // Tracking icon if (peep->PeepFlags & PEEP_FLAGS_TRACKING) - gfx_draw_sprite(dpi, STR_ENTER_SELECTION_SIZE, 112, y + 1, 0); + gfx_draw_sprite(dpi, STR_ENTER_SELECTION_SIZE, { 112, y + 1 }, 0); // Action ft = Formatter::Common(); @@ -838,7 +842,7 @@ static void window_guest_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, for (uint32_t j = 0; j < 56 && j < numGuests; j++) gfx_draw_sprite( dpi, _window_guest_list_groups_guest_faces[i * 56 + j] + SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY, - j * 8, y + 12, 0); + { static_cast(j) * 8, y + 12 }, 0); // Draw action std::memcpy( diff --git a/src/openrct2-ui/windows/InstallTrack.cpp b/src/openrct2-ui/windows/InstallTrack.cpp index 633900165e..6f269b6f9c 100644 --- a/src/openrct2-ui/windows/InstallTrack.cpp +++ b/src/openrct2-ui/windows/InstallTrack.cpp @@ -236,7 +236,7 @@ static void window_install_track_paint(rct_window* w, rct_drawpixelinfo* dpi) g1temp.flags = G1_FLAG_BMP; gfx_set_g1_element(SPR_TEMP, &g1temp); drawing_engine_invalidate_image(SPR_TEMP); - gfx_draw_sprite(dpi, SPR_TEMP, screenPos.x, screenPos.y, 0); + gfx_draw_sprite(dpi, SPR_TEMP, screenPos, 0); screenPos = w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->bottom - 12 }; diff --git a/src/openrct2-ui/windows/Land.cpp b/src/openrct2-ui/windows/Land.cpp index 8245268270..438e093516 100644 --- a/src/openrct2-ui/windows/Land.cpp +++ b/src/openrct2-ui/windows/Land.cpp @@ -358,7 +358,7 @@ static void window_land_paint(rct_window* w, rct_drawpixelinfo* dpi) { screenCoords = { w->windowPos.x + previewWidget->left, w->windowPos.y + previewWidget->top }; int32_t sprite = gLandToolSize % 2 == 0 ? SPR_G2_MOUNTAIN_TOOL_EVEN : SPR_G2_MOUNTAIN_TOOL_ODD; - gfx_draw_sprite(dpi, sprite, screenCoords.x, screenCoords.y, 0); + gfx_draw_sprite(dpi, sprite, screenCoords, 0); widget_draw(dpi, w, WIDX_DECREMENT); widget_draw(dpi, w, WIDX_INCREMENT); } diff --git a/src/openrct2-ui/windows/Map.cpp b/src/openrct2-ui/windows/Map.cpp index ffeb328a6d..180d39d92b 100644 --- a/src/openrct2-ui/windows/Map.cpp +++ b/src/openrct2-ui/windows/Map.cpp @@ -834,7 +834,7 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi) 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); + screenCoords, 0); } if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && !gCheatsSandboxMode) @@ -886,7 +886,7 @@ static void window_map_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_ g1temp.y_offset = -8; gfx_set_g1_element(SPR_TEMP, &g1temp); drawing_engine_invalidate_image(SPR_TEMP); - gfx_draw_sprite(dpi, SPR_TEMP, 0, 0, 0); + gfx_draw_sprite(dpi, SPR_TEMP, { 0, 0 }, 0); if (w->selected_tab == PAGE_PEEPS) { @@ -1007,7 +1007,7 @@ static void window_map_draw_tab_images(rct_window* w, rct_drawpixelinfo* dpi) image += w->list_information_type / 4; gfx_draw_sprite( - dpi, image, w->windowPos.x + w->widgets[WIDX_PEOPLE_TAB].left, w->windowPos.y + w->widgets[WIDX_PEOPLE_TAB].top, 0); + dpi, image, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_PEOPLE_TAB].left, w->widgets[WIDX_PEOPLE_TAB].top }, 0); // Ride/stall tab image (animated) image = SPR_TAB_RIDE_0; @@ -1015,7 +1015,7 @@ static void window_map_draw_tab_images(rct_window* w, rct_drawpixelinfo* dpi) image += w->list_information_type / 4; gfx_draw_sprite( - dpi, image, w->windowPos.x + w->widgets[WIDX_RIDES_TAB].left, w->windowPos.y + w->widgets[WIDX_RIDES_TAB].top, 0); + dpi, image, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_RIDES_TAB].left, w->widgets[WIDX_RIDES_TAB].top }, 0); } /** diff --git a/src/openrct2-ui/windows/MapGen.cpp b/src/openrct2-ui/windows/MapGen.cpp index 00dc34e78a..9f96c3ca38 100644 --- a/src/openrct2-ui/windows/MapGen.cpp +++ b/src/openrct2-ui/windows/MapGen.cpp @@ -1399,7 +1399,7 @@ static void window_mapgen_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w, } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/Multiplayer.cpp b/src/openrct2-ui/windows/Multiplayer.cpp index 679ef6b364..1e43948d1a 100644 --- a/src/openrct2-ui/windows/Multiplayer.cpp +++ b/src/openrct2-ui/windows/Multiplayer.cpp @@ -1078,7 +1078,7 @@ static void window_multiplayer_draw_tab_image(rct_window* w, rct_drawpixelinfo* } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/Network.cpp b/src/openrct2-ui/windows/Network.cpp index 2159267b63..12028fb17e 100644 --- a/src/openrct2-ui/windows/Network.cpp +++ b/src/openrct2-ui/windows/Network.cpp @@ -476,7 +476,7 @@ static void window_network_draw_tab_image(rct_window* w, rct_drawpixelinfo* dpi, } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/NewRide.cpp b/src/openrct2-ui/windows/NewRide.cpp index ef0e34305b..83c10df0da 100644 --- a/src/openrct2-ui/windows/NewRide.cpp +++ b/src/openrct2-ui/windows/NewRide.cpp @@ -659,7 +659,7 @@ static void window_new_ride_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w spriteIndex |= w->colours[1] << 19; gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/News.cpp b/src/openrct2-ui/windows/News.cpp index d9c4222a1c..2847c057d3 100644 --- a/src/openrct2-ui/windows/News.cpp +++ b/src/openrct2-ui/windows/News.cpp @@ -271,8 +271,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 // Subject button if ((news_type_properties[newsItem.Type] & NEWS_TYPE_HAS_SUBJECT) && !(newsItem.Flags & NEWS_FLAG_HAS_BUTTON)) { - int32_t x = 328; - int32_t yy = y + lineHeight + 4; + auto screenCoords = ScreenCoordsXY{ 328, y + lineHeight + 4 }; int32_t press = 0; if (w->news.var_480 != -1) @@ -281,18 +280,19 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 if (i == w->news.var_480 && w->news.var_482 == 1) press = INSET_RECT_FLAG_BORDER_INSET; } - gfx_fill_rect_inset(dpi, x, yy, x + 23, yy + 23, w->colours[2], press); + gfx_fill_rect_inset( + dpi, screenCoords.x, screenCoords.y, screenCoords.x + 23, screenCoords.y + 23, w->colours[2], press); switch (newsItem.Type) { case NEWS_ITEM_RIDE: - gfx_draw_sprite(dpi, SPR_RIDE, x, yy, 0); + gfx_draw_sprite(dpi, SPR_RIDE, screenCoords, 0); break; case NEWS_ITEM_PEEP: case NEWS_ITEM_PEEP_ON_RIDE: { rct_drawpixelinfo cliped_dpi; - if (!clip_drawpixelinfo(&cliped_dpi, dpi, x + 1, yy + 1, 22, 22)) + if (!clip_drawpixelinfo(&cliped_dpi, dpi, screenCoords.x + 1, screenCoords.y + 1, 22, 22)) { break; } @@ -305,7 +305,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 if (peep == nullptr) break; - int32_t clip_x = 10, clip_y = 19; + auto clipCoords = ScreenCoordsXY{ 10, 19 }; // If normal peep set sprite to normal (no food) // If staff set sprite to staff sprite @@ -315,7 +315,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 sprite_type = peep->SpriteType; if (peep->StaffType == STAFF_TYPE_ENTERTAINER) { - clip_y += 3; + clipCoords.y += 3; } } @@ -323,23 +323,23 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 image_id += 0xA0000001; image_id |= (peep->TshirtColour << 19) | (peep->TrousersColour << 24); - gfx_draw_sprite(&cliped_dpi, image_id, clip_x, clip_y, 0); + gfx_draw_sprite(&cliped_dpi, image_id, clipCoords, 0); break; } case NEWS_ITEM_MONEY: - gfx_draw_sprite(dpi, SPR_FINANCE, x, yy, 0); + gfx_draw_sprite(dpi, SPR_FINANCE, screenCoords, 0); break; case NEWS_ITEM_RESEARCH: - gfx_draw_sprite(dpi, newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE, x, yy, 0); + gfx_draw_sprite(dpi, newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE, screenCoords, 0); break; case NEWS_ITEM_PEEPS: - gfx_draw_sprite(dpi, SPR_GUESTS, x, yy, 0); + gfx_draw_sprite(dpi, SPR_GUESTS, screenCoords, 0); break; case NEWS_ITEM_AWARD: - gfx_draw_sprite(dpi, SPR_AWARD, x, yy, 0); + gfx_draw_sprite(dpi, SPR_AWARD, screenCoords, 0); break; case NEWS_ITEM_GRAPH: - gfx_draw_sprite(dpi, SPR_GRAPH, x, yy, 0); + gfx_draw_sprite(dpi, SPR_GRAPH, screenCoords, 0); break; } } @@ -347,8 +347,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 // Location button if ((news_type_properties[newsItem.Type] & NEWS_TYPE_HAS_LOCATION) && !(newsItem.Flags & NEWS_FLAG_HAS_BUTTON)) { - int32_t x = 352; - int32_t yy = y + lineHeight + 4; + auto screenCoords = ScreenCoordsXY{ 352, y + lineHeight + 4 }; int32_t press = 0; if (w->news.var_480 != -1) @@ -357,8 +356,9 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32 if (i == w->news.var_480 && w->news.var_482 == 2) press = 0x20; } - gfx_fill_rect_inset(dpi, x, yy, x + 23, yy + 23, w->colours[2], press); - gfx_draw_sprite(dpi, SPR_LOCATE, x, yy, 0); + gfx_fill_rect_inset( + dpi, screenCoords.x, screenCoords.y, screenCoords.x + 23, screenCoords.y + 23, w->colours[2], press); + gfx_draw_sprite(dpi, SPR_LOCATE, screenCoords, 0); } y += itemHeight; diff --git a/src/openrct2-ui/windows/NewsOptions.cpp b/src/openrct2-ui/windows/NewsOptions.cpp index 2d3f7076cb..9f13d4fc89 100644 --- a/src/openrct2-ui/windows/NewsOptions.cpp +++ b/src/openrct2-ui/windows/NewsOptions.cpp @@ -291,7 +291,7 @@ static void window_news_options_draw_tab_image(rct_window* w, rct_drawpixelinfo* } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/Options.cpp b/src/openrct2-ui/windows/Options.cpp index 60e28e86ca..05095654b5 100644 --- a/src/openrct2-ui/windows/Options.cpp +++ b/src/openrct2-ui/windows/Options.cpp @@ -2175,7 +2175,7 @@ static void window_options_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w, } // Draw normal, enabled sprite. - gfx_draw_sprite(dpi, spriteIndex, screenCoords.x, screenCoords.y, 0); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0); } else { diff --git a/src/openrct2-ui/windows/Park.cpp b/src/openrct2-ui/windows/Park.cpp index 54e81ca3f6..b4726ca954 100644 --- a/src/openrct2-ui/windows/Park.cpp +++ b/src/openrct2-ui/windows/Park.cpp @@ -867,7 +867,7 @@ static void window_park_entrance_paint(rct_window* w, rct_drawpixelinfo* dpi) { window_draw_viewport(dpi, w); if (w->viewport->flags & VIEWPORT_FLAG_SOUND_ON) - gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos.x + 2, w->windowPos.y + 2, 0); + gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos + ScreenCoordsXY{ 2, 2 }, 0); } // Draw park closed / open label @@ -1746,7 +1746,7 @@ static void window_park_awards_paint(rct_window* w, rct_drawpixelinfo* dpi) if (award->Time == 0) continue; - gfx_draw_sprite(dpi, ParkAwards[award->Type].sprite, screenCoords.x, screenCoords.y, 0); + gfx_draw_sprite(dpi, ParkAwards[award->Type].sprite, screenCoords, 0); gfx_draw_string_left_wrapped( dpi, nullptr, screenCoords + ScreenCoordsXY{ 34, 6 }, 180, ParkAwards[award->Type].text, COLOUR_BLACK); @@ -1829,8 +1829,8 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) // Entrance tab if (!(w->disabled_widgets & (1 << WIDX_TAB_1))) gfx_draw_sprite( - dpi, SPR_TAB_PARK_ENTRANCE, w->windowPos.x + w->widgets[WIDX_TAB_1].left, - w->windowPos.y + w->widgets[WIDX_TAB_1].top, 0); + dpi, SPR_TAB_PARK_ENTRANCE, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top }, 0); // Rating tab if (!(w->disabled_widgets & (1 << WIDX_TAB_2))) @@ -1839,13 +1839,13 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (w->page == WINDOW_PARK_PAGE_RATING) sprite_idx += (w->frame_no / 8) % 8; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_2].left, w->windowPos.y + w->widgets[WIDX_TAB_2].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top }, 0); gfx_draw_sprite( - dpi, SPR_RATING_HIGH, w->windowPos.x + w->widgets[WIDX_TAB_2].left + 7, - w->windowPos.y + w->widgets[WIDX_TAB_2].top + 1, 0); + dpi, SPR_RATING_HIGH, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 7, w->widgets[WIDX_TAB_2].top + 1 }, 0); gfx_draw_sprite( - dpi, SPR_RATING_LOW, w->windowPos.x + w->widgets[WIDX_TAB_2].left + 16, - w->windowPos.y + w->widgets[WIDX_TAB_2].top + 12, 0); + dpi, SPR_RATING_LOW, + w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 16, w->widgets[WIDX_TAB_2].top + 12 }, 0); } // Guests tab @@ -1855,7 +1855,7 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (w->page == WINDOW_PARK_PAGE_GUESTS) sprite_idx += (w->frame_no / 8) % 8; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_3].left, w->windowPos.y + w->widgets[WIDX_TAB_3].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top }, 0); sprite_idx = g_peep_animation_entries[PEEP_SPRITE_TYPE_NORMAL].sprite_animation->base_image + 1; if (w->page == WINDOW_PARK_PAGE_GUESTS) @@ -1863,8 +1863,11 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) sprite_idx |= 0xA9E00000; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + (w->widgets[WIDX_TAB_3].left + w->widgets[WIDX_TAB_3].right) / 2, - w->windowPos.y + w->widgets[WIDX_TAB_3].bottom - 9, 0); + dpi, sprite_idx, + w->windowPos + + ScreenCoordsXY{ (w->widgets[WIDX_TAB_3].left + w->widgets[WIDX_TAB_3].right) / 2, + w->widgets[WIDX_TAB_3].bottom - 9 }, + 0); } // Price tab @@ -1874,7 +1877,7 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (w->page == WINDOW_PARK_PAGE_PRICE) sprite_idx += (w->frame_no / 2) % 8; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_4].left, w->windowPos.y + w->widgets[WIDX_TAB_4].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_4].left, w->widgets[WIDX_TAB_4].top }, 0); } // Statistics tab @@ -1884,7 +1887,7 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (w->page == WINDOW_PARK_PAGE_STATS) sprite_idx += (w->frame_no / 4) % 7; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_5].left, w->windowPos.y + w->widgets[WIDX_TAB_5].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_5].left, w->widgets[WIDX_TAB_5].top }, 0); } // Objective tab @@ -1894,13 +1897,13 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (w->page == WINDOW_PARK_PAGE_OBJECTIVE) sprite_idx += (w->frame_no / 4) % 16; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_6].left, w->windowPos.y + w->widgets[WIDX_TAB_6].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_6].left, w->widgets[WIDX_TAB_6].top }, 0); } // Awards tab if (!(w->disabled_widgets & (1 << WIDX_TAB_7))) gfx_draw_sprite( - dpi, SPR_TAB_AWARDS, w->windowPos.x + w->widgets[WIDX_TAB_7].left, w->windowPos.y + w->widgets[WIDX_TAB_7].top, 0); + dpi, SPR_TAB_AWARDS, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_7].left, w->widgets[WIDX_TAB_7].top }, 0); } #pragma endregion diff --git a/src/openrct2-ui/windows/Player.cpp b/src/openrct2-ui/windows/Player.cpp index 862faf2921..bf0fa5b6da 100644 --- a/src/openrct2-ui/windows/Player.cpp +++ b/src/openrct2-ui/windows/Player.cpp @@ -613,24 +613,22 @@ static void window_player_set_page(rct_window* w, int32_t page) static void window_player_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) { rct_widget* widget; - int32_t x, y, imageId; + int32_t imageId; // Tab 1 if (!widget_is_disabled(w, WIDX_TAB_1)) { widget = &w->widgets[WIDX_TAB_1]; - x = widget->left + w->windowPos.x; - y = widget->top + w->windowPos.y; + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; imageId = SPR_PEEP_LARGE_FACE_NORMAL; - gfx_draw_sprite(dpi, imageId, x, y, 0); + gfx_draw_sprite(dpi, imageId, screenCoords, 0); } // Tab 2 if (!widget_is_disabled(w, WIDX_TAB_2)) { widget = &w->widgets[WIDX_TAB_2]; - x = widget->left + w->windowPos.x; - y = widget->top + w->windowPos.y; + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; imageId = SPR_TAB_FINANCES_SUMMARY_0; if (w->page == WINDOW_PLAYER_PAGE_STATISTICS) @@ -638,7 +636,7 @@ static void window_player_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) imageId += (w->frame_no / 2) & 7; } - gfx_draw_sprite(dpi, imageId, x, y, 0); + gfx_draw_sprite(dpi, imageId, screenCoords, 0); } } diff --git a/src/openrct2-ui/windows/Research.cpp b/src/openrct2-ui/windows/Research.cpp index d66effb40a..57db081c47 100644 --- a/src/openrct2-ui/windows/Research.cpp +++ b/src/openrct2-ui/windows/Research.cpp @@ -681,7 +681,7 @@ static void window_research_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } diff --git a/src/openrct2-ui/windows/Ride.cpp b/src/openrct2-ui/windows/Ride.cpp index cff617077a..86ebc4cf15 100644 --- a/src/openrct2-ui/windows/Ride.cpp +++ b/src/openrct2-ui/windows/Ride.cpp @@ -1258,7 +1258,7 @@ static void window_ride_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w, in } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } @@ -1294,7 +1294,7 @@ static void window_ride_draw_tab_main(rct_drawpixelinfo* dpi, rct_window* w) break; } gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + w->widgets[widgetIndex].left, w->windowPos.y + w->widgets[widgetIndex].top, + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0); } } @@ -1311,24 +1311,21 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) if (!(w->disabled_widgets & (1LL << widgetIndex))) { - int32_t x = widget->left + 1; - int32_t y = widget->top + 1; - int32_t width = widget->right - x; - int32_t height = widget->bottom - 3 - y; + auto screenCoords = ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; + int32_t width = widget->right - screenCoords.x; + int32_t height = widget->bottom - 3 - screenCoords.y; if (w->page == WINDOW_RIDE_PAGE_VEHICLE) height += 4; - x += w->windowPos.x; - y += w->windowPos.y; + screenCoords += w->windowPos; rct_drawpixelinfo clipDPI; - if (!clip_drawpixelinfo(&clipDPI, dpi, x, y, width, height)) + if (!clip_drawpixelinfo(&clipDPI, dpi, screenCoords.x, screenCoords.y, width, height)) { return; } - x = (widget->right - widget->left) / 2; - y = (widget->bottom - widget->top) - 12; + screenCoords = ScreenCoordsXY{ (widget->right - widget->left) / 2, (widget->bottom - widget->top) - 12 }; auto ride = get_ride(w->number); if (ride == nullptr) @@ -1343,8 +1340,8 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) clipDPI.zoom_level = 1; clipDPI.width *= 2; clipDPI.height *= 2; - x *= 2; - y *= 2; + screenCoords.x *= 2; + screenCoords.y *= 2; clipDPI.x *= 2; clipDPI.y *= 2; } @@ -1352,7 +1349,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) // For any suspended rides, move image higher in the vehicle tab on the rides window if (RideTypeDescriptors[ride->type].HasFlag(RIDE_TYPE_FLAG_IS_SUSPENDED)) { - y /= 4; + screenCoords.y /= 4; } const uint8_t vehicle = ride_entry_get_vehicle_at_position( @@ -1371,7 +1368,7 @@ static void window_ride_draw_tab_vehicle(rct_drawpixelinfo* dpi, rct_window* w) spriteIndex |= (vehicleColour.additional_1 << 24) | (vehicleColour.main << 19); spriteIndex |= IMAGE_TYPE_REMAP_2_PLUS; - gfx_draw_sprite(&clipDPI, spriteIndex, x, y, vehicleColour.additional_2); + gfx_draw_sprite(&clipDPI, spriteIndex, screenCoords, vehicleColour.additional_2); } } @@ -1395,7 +1392,7 @@ static void window_ride_draw_tab_customer(rct_drawpixelinfo* dpi, rct_window* w) spriteIndex |= 0xA9E00000; gfx_draw_sprite( - dpi, spriteIndex, w->windowPos.x + (widget->left + widget->right) / 2, w->windowPos.y + widget->bottom - 6, 0); + dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ (widget->left + widget->right) / 2, widget->bottom - 6 }, 0); } } @@ -2916,7 +2913,7 @@ static void window_ride_main_paint(rct_window* w, rct_drawpixelinfo* dpi) { window_draw_viewport(dpi, w); if (w->viewport->flags & VIEWPORT_FLAG_SOUND_ON) - gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos.x + 2, w->windowPos.y + 2, 0); + gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos + ScreenCoordsXY{ 2, 2 }, 0); } // View dropdown @@ -3324,7 +3321,7 @@ static void window_ride_vehicle_scrollpaint(rct_window* w, rct_drawpixelinfo* dp rct_vehicle_paintinfo* current = nextSpriteToDraw; while (--current >= _sprites_to_draw) - gfx_draw_sprite(dpi, current->sprite_index, current->x, current->y, current->tertiary_colour); + gfx_draw_sprite(dpi, current->sprite_index, { current->x, current->y }, current->tertiary_colour); startX += 36; } @@ -4317,8 +4314,7 @@ static void window_ride_maintenance_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_widget* widget = &window_ride_maintenance_widgets[WIDX_LOCATE_MECHANIC]; auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; gfx_draw_sprite( - dpi, (gStaffMechanicColour << 24) | IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS | SPR_MECHANIC, screenCoords.x, - screenCoords.y, 0); + dpi, (gStaffMechanicColour << 24) | IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS | SPR_MECHANIC, screenCoords, 0); // Inspection label widget = &window_ride_maintenance_widgets[WIDX_INSPECTION_INTERVAL]; @@ -5069,14 +5065,13 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) auto rideEntry = ride->GetRideEntry(); if (rideEntry == nullptr || rideEntry->shop_item[0] == SHOP_ITEM_NONE) { - int32_t x = w->windowPos.x + widget->left; - int32_t y = w->windowPos.y + widget->top; + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; // Track if (ride->type == RIDE_TYPE_MAZE) { int32_t spriteIndex = MazeOptions[trackColour.supports].sprite; - gfx_draw_sprite(dpi, spriteIndex, x, y, 0); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0); } else { @@ -5084,7 +5079,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) if (spriteIndex != 0) { spriteIndex |= SPRITE_ID_PALETTE_COLOUR_2(trackColour.main, trackColour.additional); - gfx_draw_sprite(dpi, spriteIndex, x, y, 0); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0); } // Supports @@ -5092,20 +5087,20 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) if (spriteIndex != 0) { spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(trackColour.supports); - gfx_draw_sprite(dpi, spriteIndex, x, y, 0); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0); } } } else { - int32_t x = w->windowPos.x + (widget->left + widget->right) / 2 - 8; - int32_t y = w->windowPos.y + (widget->bottom + widget->top) / 2 - 6; + auto screenCoords = w->windowPos + + ScreenCoordsXY{ (widget->left + widget->right) / 2 - 8, (widget->bottom + widget->top) / 2 - 6 }; uint8_t shopItem = rideEntry->shop_item[1] == SHOP_ITEM_NONE ? rideEntry->shop_item[0] : rideEntry->shop_item[1]; int32_t spriteIndex = ShopItems[shopItem].Image; spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(ride->track_colour[0].main); - gfx_draw_sprite(dpi, spriteIndex, x, y, 0); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0); } // Entrance preview @@ -5132,14 +5127,14 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi) spriteIndex += stationObj->BaseImageId; // Back - gfx_draw_sprite(&clippedDpi, spriteIndex, 34, 20, terniaryColour); + gfx_draw_sprite(&clippedDpi, spriteIndex, { 34, 20 }, terniaryColour); // Front - gfx_draw_sprite(&clippedDpi, spriteIndex + 4, 34, 20, terniaryColour); + gfx_draw_sprite(&clippedDpi, spriteIndex + 4, { 34, 20 }, terniaryColour); // Glass if (terniaryColour != 0) - gfx_draw_sprite(&clippedDpi, ((spriteIndex + 20) & 0x7FFFF) + terniaryColour, 34, 20, terniaryColour); + gfx_draw_sprite(&clippedDpi, ((spriteIndex + 20) & 0x7FFFF) + terniaryColour, { 34, 20 }, terniaryColour); } } @@ -5169,8 +5164,8 @@ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi gfx_fill_rect(dpi, dpi->x, dpi->y, dpi->x + dpi->width - 1, dpi->y + dpi->height - 1, PALETTE_INDEX_12); // ? - int32_t x = (vehiclePreviewWidget->right - vehiclePreviewWidget->left) / 2; - int32_t y = vehiclePreviewWidget->bottom - vehiclePreviewWidget->top - 15; + auto screenCoords = ScreenCoordsXY{ (vehiclePreviewWidget->right - vehiclePreviewWidget->left) / 2, + vehiclePreviewWidget->bottom - vehiclePreviewWidget->top - 15 }; // ? auto trainCarIndex = (ride->colour_scheme_type & 3) == RIDE_COLOUR_SCHEME_DIFFERENT_PER_CAR ? w->vehicleIndex @@ -5179,7 +5174,7 @@ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi rct_ride_entry_vehicle* rideVehicleEntry = &rideEntry->vehicles[ride_entry_get_vehicle_at_position( ride->subtype, ride->num_cars_per_train, trainCarIndex)]; - y += rideVehicleEntry->tab_height; + screenCoords.y += rideVehicleEntry->tab_height; // Draw the coloured spinning vehicle uint32_t spriteIndex = (rideVehicleEntry->flags & VEHICLE_ENTRY_FLAG_11) ? w->frame_no / 4 : w->frame_no / 2; @@ -5188,7 +5183,7 @@ static void window_ride_colour_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi spriteIndex += rideVehicleEntry->base_image_id; spriteIndex |= (vehicleColour.additional_1 << 24) | (vehicleColour.main << 19); spriteIndex |= IMAGE_TYPE_REMAP_2_PLUS; - gfx_draw_sprite(dpi, spriteIndex, x, y, vehicleColour.additional_2); + gfx_draw_sprite(dpi, spriteIndex, screenCoords, vehicleColour.additional_2); } #pragma endregion diff --git a/src/openrct2-ui/windows/RideList.cpp b/src/openrct2-ui/windows/RideList.cpp index 12a823a74a..2037c2dbb3 100644 --- a/src/openrct2-ui/windows/RideList.cpp +++ b/src/openrct2-ui/windows/RideList.cpp @@ -765,21 +765,21 @@ static void window_ride_list_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* if (w->page == PAGE_RIDES) sprite_idx += w->frame_no / 4; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_1].left, w->windowPos.y + w->widgets[WIDX_TAB_1].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top }, 0); // Shops and stalls tab sprite_idx = SPR_TAB_SHOPS_AND_STALLS_0; if (w->page == PAGE_SHOPS_AND_STALLS) sprite_idx += w->frame_no / 4; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_2].left, w->windowPos.y + w->widgets[WIDX_TAB_2].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top }, 0); // Information kiosks and facilities tab sprite_idx = SPR_TAB_KIOSKS_AND_FACILITIES_0; if (w->page == PAGE_KIOSKS_AND_FACILITIES) sprite_idx += (w->frame_no / 4) % 8; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_TAB_3].left, w->windowPos.y + w->widgets[WIDX_TAB_3].top, 0); + dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top }, 0); } /** diff --git a/src/openrct2-ui/windows/Scenery.cpp b/src/openrct2-ui/windows/Scenery.cpp index bd6cd46853..153c46d5da 100644 --- a/src/openrct2-ui/windows/Scenery.cpp +++ b/src/openrct2-ui/windows/Scenery.cpp @@ -1124,8 +1124,10 @@ void window_scenery_paint(rct_window* w, rct_drawpixelinfo* dpi) uint32_t imageId = ((w->colours[1] << 19) | window_scenery_widgets[selectedWidgetId].image) + 1ul; gfx_draw_sprite( - dpi, imageId, w->windowPos.x + window_scenery_widgets[selectedWidgetId].left, - w->windowPos.y + window_scenery_widgets[selectedWidgetId].top, selectedWidgetId); + dpi, imageId, + w->windowPos + + ScreenCoordsXY{ window_scenery_widgets[selectedWidgetId].left, window_scenery_widgets[selectedWidgetId].top }, + selectedWidgetId); ScenerySelection selectedSceneryEntry = w->scenery.SelectedScenery; if (selectedSceneryEntry.IsUndefined()) @@ -1245,8 +1247,8 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s uint32_t imageId = sceneryEntry->image + gWindowSceneryRotation * 2; imageId |= (gWindowSceneryPrimaryColour << 19) | IMAGE_TYPE_REMAP; - gfx_draw_sprite(&clipdpi, imageId, 0x21, 0x28, w->colours[1]); - gfx_draw_sprite(&clipdpi, imageId + 1, 0x21, 0x28, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x21, 0x28 }, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId + 1, { 0x21, 0x28 }, w->colours[1]); } else if (currentSceneryGlobal.SceneryType == SCENERY_TYPE_LARGE) { @@ -1255,7 +1257,7 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s imageId |= (gWindowSceneryPrimaryColour << 19) | IMAGE_TYPE_REMAP; imageId |= (gWindowScenerySecondaryColour << 24) | IMAGE_TYPE_REMAP_2_PLUS; - gfx_draw_sprite(&clipdpi, imageId, 0x21, 0, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x21, 0 }, w->colours[1]); } else if (currentSceneryGlobal.SceneryType == SCENERY_TYPE_WALL) { @@ -1272,10 +1274,10 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s { imageId |= (gWindowScenerySecondaryColour << 24) | IMAGE_TYPE_REMAP_2_PLUS; } - gfx_draw_sprite(&clipdpi, imageId, 0x2F, spriteTop, tertiaryColour); + gfx_draw_sprite(&clipdpi, imageId, { 0x2F, spriteTop }, tertiaryColour); imageId = (sceneryEntry->image + 0x40000006) | (GlassPaletteIds[gWindowSceneryPrimaryColour] << 19); - gfx_draw_sprite(&clipdpi, imageId, 0x2F, spriteTop, tertiaryColour); + gfx_draw_sprite(&clipdpi, imageId, { 0x2F, spriteTop }, tertiaryColour); } else { @@ -1291,11 +1293,11 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s tertiaryColour = gWindowSceneryTertiaryColour; } } - gfx_draw_sprite(&clipdpi, imageId, 0x2F, spriteTop, tertiaryColour); + gfx_draw_sprite(&clipdpi, imageId, { 0x2F, spriteTop }, tertiaryColour); if (sceneryEntry->wall.flags & WALL_SCENERY_IS_DOOR) { - gfx_draw_sprite(&clipdpi, imageId + 1, 0x2F, spriteTop, tertiaryColour); + gfx_draw_sprite(&clipdpi, imageId + 1, { 0x2F, spriteTop }, tertiaryColour); } } } @@ -1304,7 +1306,7 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s sceneryEntry = get_footpath_item_entry(currentSceneryGlobal.EntryIndex); uint32_t imageId = sceneryEntry->image; - gfx_draw_sprite(&clipdpi, imageId, 0x0B, 0x10, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x0B, 0x10 }, w->colours[1]); } else { @@ -1329,20 +1331,20 @@ void window_scenery_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t s spriteTop -= 0x0C; } - gfx_draw_sprite(&clipdpi, imageId, 0x20, spriteTop, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x20, spriteTop }, w->colours[1]); if (scenery_small_entry_has_flag(sceneryEntry, SMALL_SCENERY_FLAG_HAS_GLASS)) { imageId = ((sceneryEntry->image + gWindowSceneryRotation) + 0x40000004) + (GlassPaletteIds[gWindowSceneryPrimaryColour] << 19); - gfx_draw_sprite(&clipdpi, imageId, 0x20, spriteTop, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x20, spriteTop }, w->colours[1]); } if (scenery_small_entry_has_flag(sceneryEntry, SMALL_SCENERY_FLAG_ANIMATED_FG)) { imageId = (sceneryEntry->image + gWindowSceneryRotation) + 4; - gfx_draw_sprite(&clipdpi, imageId, 0x20, spriteTop, w->colours[1]); + gfx_draw_sprite(&clipdpi, imageId, { 0x20, spriteTop }, w->colours[1]); } } } diff --git a/src/openrct2-ui/windows/ServerList.cpp b/src/openrct2-ui/windows/ServerList.cpp index d1fb649d8d..eacf1f8311 100644 --- a/src/openrct2-ui/windows/ServerList.cpp +++ b/src/openrct2-ui/windows/ServerList.cpp @@ -489,14 +489,14 @@ static void window_server_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi bool correctVersion = serverDetails.Version == network_get_version(); compatibilitySpriteId = correctVersion ? SPR_G2_RCT1_OPEN_BUTTON_2 : SPR_G2_RCT1_CLOSE_BUTTON_2; } - gfx_draw_sprite(dpi, compatibilitySpriteId, right, screenCoords.y + 1, 0); + gfx_draw_sprite(dpi, compatibilitySpriteId, { right, screenCoords.y + 1 }, 0); right -= 4; // Draw lock icon right -= 8; if (serverDetails.RequiresPassword) { - gfx_draw_sprite(dpi, SPR_G2_LOCKED, right, screenCoords.y + 4, 0); + gfx_draw_sprite(dpi, SPR_G2_LOCKED, { right, screenCoords.y + 4 }, 0); } right -= 6; diff --git a/src/openrct2-ui/windows/Staff.cpp b/src/openrct2-ui/windows/Staff.cpp index 28c449200d..722bec7c95 100644 --- a/src/openrct2-ui/windows/Staff.cpp +++ b/src/openrct2-ui/windows/Staff.cpp @@ -943,7 +943,7 @@ void window_staff_overview_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_viewport* viewport = w->viewport; if (viewport->flags & VIEWPORT_FLAG_SOUND_ON) { - gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos.x + 2, w->windowPos.y + 2, 0); + gfx_draw_sprite(dpi, SPR_HEARING_VIEWPORT, w->windowPos + ScreenCoordsXY{ 2, 2 }, 0); } } @@ -967,8 +967,6 @@ void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) return; rct_widget* widget = &w->widgets[WIDX_TAB_2]; - int32_t x = widget->left + w->windowPos.x; - int32_t y = widget->top + w->windowPos.y; int32_t image_id = SPR_TAB_STAFF_OPTIONS_0; @@ -977,7 +975,8 @@ void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) image_id += (w->frame_no / 2) % 7; } - gfx_draw_sprite(dpi, image_id, x, y, 0); + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; + gfx_draw_sprite(dpi, image_id, screenCoords, 0); } /** @@ -990,8 +989,6 @@ void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) return; rct_widget* widget = &w->widgets[WIDX_TAB_3]; - int32_t x = widget->left + w->windowPos.x; - int32_t y = widget->top + w->windowPos.y; int32_t image_id = SPR_TAB_STATS_0; @@ -1000,7 +997,8 @@ void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) image_id += (w->frame_no / 4) % 7; } - gfx_draw_sprite(dpi, image_id, x, y, 0); + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top }; + gfx_draw_sprite(dpi, image_id, screenCoords, 0); } /** @@ -1014,24 +1012,22 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) rct_widget* widget = &w->widgets[WIDX_TAB_1]; int32_t width = widget->right - widget->left - 1; int32_t height = widget->bottom - widget->top - 1; - int32_t x = widget->left + 1 + w->windowPos.x; - int32_t y = widget->top + 1 + w->windowPos.y; + auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left + 1, widget->top + 1 }; if (w->page == WINDOW_STAFF_OVERVIEW) height++; rct_drawpixelinfo clip_dpi; - if (!clip_drawpixelinfo(&clip_dpi, dpi, x, y, width, height)) + if (!clip_drawpixelinfo(&clip_dpi, dpi, screenCoords.x, screenCoords.y, width, height)) { return; } - x = 14; - y = 20; + screenCoords = ScreenCoordsXY{ 20, 14 }; Peep* peep = GET_PEEP(w->number); if (peep->AssignedPeepType == PEEP_TYPE_STAFF && peep->StaffType == STAFF_TYPE_ENTERTAINER) - y++; + screenCoords.y++; int32_t ebx = g_peep_animation_entries[peep->SpriteType].sprite_animation->base_image + 1; @@ -1045,14 +1041,14 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) ebx += eax; int32_t sprite_id = ebx | SPRITE_ID_PALETTE_COLOUR_2(peep->TshirtColour, peep->TrousersColour); - gfx_draw_sprite(&clip_dpi, sprite_id, x, y, 0); + gfx_draw_sprite(&clip_dpi, sprite_id, screenCoords, 0); // If holding a balloon if (ebx >= 0x2A1D && ebx < 0x2A3D) { ebx += 32; ebx |= SPRITE_ID_PALETTE_COLOUR_1(peep->BalloonColour); - gfx_draw_sprite(&clip_dpi, ebx, x, y, 0); + gfx_draw_sprite(&clip_dpi, ebx, screenCoords, 0); } // If holding umbrella @@ -1060,7 +1056,7 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebx += 32; ebx |= SPRITE_ID_PALETTE_COLOUR_1(peep->UmbrellaColour); - gfx_draw_sprite(&clip_dpi, ebx, x, y, 0); + gfx_draw_sprite(&clip_dpi, ebx, screenCoords, 0); } // If wearing hat @@ -1068,7 +1064,7 @@ void window_staff_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dpi) { ebx += 32; ebx |= SPRITE_ID_PALETTE_COLOUR_1(peep->HatColour); - gfx_draw_sprite(&clip_dpi, ebx, x, y, 0); + gfx_draw_sprite(&clip_dpi, ebx, screenCoords, 0); } } diff --git a/src/openrct2-ui/windows/StaffList.cpp b/src/openrct2-ui/windows/StaffList.cpp index 7c57caf83c..4e53d2cf77 100644 --- a/src/openrct2-ui/windows/StaffList.cpp +++ b/src/openrct2-ui/windows/StaffList.cpp @@ -574,11 +574,12 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) i |= SPRITE_ID_PALETTE_COLOUR_1(gStaffHandymanColour); gfx_draw_sprite( dpi, i, - (window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].left - + window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].right) - / 2 - + w->windowPos.x, - window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].bottom - 6 + w->windowPos.y, 0); + w->windowPos + + ScreenCoordsXY{ (window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].left + + window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].right) + / 2, + window_staff_list_widgets[WIDX_STAFF_LIST_HANDYMEN_TAB].bottom - 6 }, + 0); // Mechanic tab image i = (selectedTab == 1 ? (w->list_information_type & ~3) : 0); @@ -586,11 +587,12 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) i |= SPRITE_ID_PALETTE_COLOUR_1(gStaffMechanicColour); gfx_draw_sprite( dpi, i, - (window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].left - + window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].right) - / 2 - + w->windowPos.x, - window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].bottom - 6 + w->windowPos.y, 0); + w->windowPos + + ScreenCoordsXY{ (window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].left + + window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].right) + / 2, + window_staff_list_widgets[WIDX_STAFF_LIST_MECHANICS_TAB].bottom - 6 }, + 0); // Security tab image i = (selectedTab == 2 ? (w->list_information_type & ~3) : 0); @@ -598,11 +600,12 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) i |= SPRITE_ID_PALETTE_COLOUR_1(gStaffSecurityColour); gfx_draw_sprite( dpi, i, - (window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].left - + window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].right) - / 2 - + w->windowPos.x, - window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].bottom - 6 + w->windowPos.y, 0); + w->windowPos + + ScreenCoordsXY{ (window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].left + + window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].right) + / 2, + window_staff_list_widgets[WIDX_STAFF_LIST_SECURITY_TAB].bottom - 6 }, + 0); rct_drawpixelinfo sprite_dpi; if (clip_drawpixelinfo( @@ -616,7 +619,7 @@ void window_staff_list_paint(rct_window* w, rct_drawpixelinfo* dpi) // Entertainers tab image i = (selectedTab == 3 ? (w->list_information_type & ~3) : 0); i += g_peep_animation_entries[PEEP_SPRITE_TYPE_ENTERTAINER_ELEPHANT].sprite_animation->base_image + 1; - gfx_draw_sprite(&sprite_dpi, i, 0x0F, 0x17, 0); + gfx_draw_sprite(&sprite_dpi, i, { 0x0F, 0x17 }, 0); } if (!(gParkFlags & PARK_FLAGS_NO_MONEY)) @@ -708,7 +711,7 @@ void window_staff_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_ // True if a patrol path is set for the worker if (gStaffModes[peep->StaffId] & 2) { - gfx_draw_sprite(dpi, SPR_STAFF_PATROL_PATH, nameColumnSize + 5, y, 0); + gfx_draw_sprite(dpi, SPR_STAFF_PATROL_PATH, { nameColumnSize + 5, y }, 0); } auto staffOrderIcon_x = nameColumnSize + 20; @@ -721,7 +724,7 @@ void window_staff_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_ { if (staffOrders & 1) { - gfx_draw_sprite(dpi, staffOrderSprite, staffOrderIcon_x, y, 0); + gfx_draw_sprite(dpi, staffOrderSprite, { staffOrderIcon_x, y }, 0); } staffOrders = staffOrders >> 1; staffOrderIcon_x += 9; @@ -731,7 +734,7 @@ void window_staff_list_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_ } else { - gfx_draw_sprite(dpi, staffCostumeSprites[peep->SpriteType - 4], staffOrderIcon_x, y, 0); + gfx_draw_sprite(dpi, staffCostumeSprites[peep->SpriteType - 4], { staffOrderIcon_x, y }, 0); } } diff --git a/src/openrct2-ui/windows/Themes.cpp b/src/openrct2-ui/windows/Themes.cpp index 0a73fc7ff4..813d611f8b 100644 --- a/src/openrct2-ui/windows/Themes.cpp +++ b/src/openrct2-ui/windows/Themes.cpp @@ -316,8 +316,10 @@ static void window_themes_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w) if (_selected_tab == i) sprite_idx += w->frame_no / window_themes_tab_animation_divisor[_selected_tab]; gfx_draw_sprite( - dpi, sprite_idx, w->windowPos.x + w->widgets[WIDX_THEMES_SETTINGS_TAB + i].left, - w->windowPos.y + w->widgets[WIDX_THEMES_SETTINGS_TAB + i].top, 0); + dpi, sprite_idx, + w->windowPos + + ScreenCoordsXY{ w->widgets[WIDX_THEMES_SETTINGS_TAB + i].left, w->widgets[WIDX_THEMES_SETTINGS_TAB + i].top }, + 0); } } @@ -913,7 +915,7 @@ void window_themes_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32_t sc { image = SPRITE_ID_PALETTE_COLOUR_1(colour & ~COLOUR_FLAG_TRANSLUCENT) | SPR_PALETTE_BTN_PRESSED; } - gfx_draw_sprite(dpi, image, _button_offset_x + 12 * j, screenCoords.y + _button_offset_y, 0); + gfx_draw_sprite(dpi, image, { _button_offset_x + 12 * j, screenCoords.y + _button_offset_y }, 0); gfx_fill_rect_inset( dpi, _button_offset_x + 12 * j, screenCoords.y + _check_offset_y, _button_offset_x + 12 * j + 9, diff --git a/src/openrct2-ui/windows/TitleEditor.cpp b/src/openrct2-ui/windows/TitleEditor.cpp index 59fa4ffa6a..9a0c38c6af 100644 --- a/src/openrct2-ui/windows/TitleEditor.cpp +++ b/src/openrct2-ui/windows/TitleEditor.cpp @@ -1053,8 +1053,7 @@ static void window_title_editor_draw_tab_images(rct_drawpixelinfo* dpi, rct_wind { for (int32_t i = 0; i < WINDOW_TITLE_EDITOR_TAB_COUNT; i++) { - int32_t x = 0; - int32_t y = 0; + auto screenCoords = ScreenCoordsXY{ 0, 0 }; int32_t spriteId = window_title_editor_tab_sprites[i]; if (w->selected_tab == i) { @@ -1062,12 +1061,14 @@ static void window_title_editor_draw_tab_images(rct_drawpixelinfo* dpi, rct_wind } if (i == 1) { - x = 4; - y = 1; + screenCoords = ScreenCoordsXY{ 4, 1 }; } gfx_draw_sprite( - dpi, spriteId, w->windowPos.x + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].left + x, - w->windowPos.y + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top + y, 0); + dpi, spriteId, + w->windowPos + screenCoords + + ScreenCoordsXY{ w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].left, + w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top }, + 0); } } diff --git a/src/openrct2-ui/windows/TitleLogo.cpp b/src/openrct2-ui/windows/TitleLogo.cpp index 0cd4e069d1..d45fa24214 100644 --- a/src/openrct2-ui/windows/TitleLogo.cpp +++ b/src/openrct2-ui/windows/TitleLogo.cpp @@ -97,8 +97,7 @@ static void window_title_menu_mouseup(rct_window* w, rct_widgetindex widgetIndex */ static void window_title_logo_paint(rct_window* w, rct_drawpixelinfo* dpi) { - int32_t x = 2; - int32_t y = 2; - gfx_draw_sprite(dpi, SPR_G2_LOGO, w->windowPos.x + x, w->windowPos.y + y, 0); - gfx_draw_sprite(dpi, SPR_G2_TITLE, w->windowPos.x + x + 104, w->windowPos.y + y + 18, 0); + auto screenCoords = w->windowPos + ScreenCoordsXY{ 2, 2 }; + gfx_draw_sprite(dpi, SPR_G2_LOGO, screenCoords, 0); + gfx_draw_sprite(dpi, SPR_G2_TITLE, screenCoords + ScreenCoordsXY{ 104, 18 }, 0); } diff --git a/src/openrct2-ui/windows/TitleScenarioSelect.cpp b/src/openrct2-ui/windows/TitleScenarioSelect.cpp index 7b956d69b7..bee675996b 100644 --- a/src/openrct2-ui/windows/TitleScenarioSelect.cpp +++ b/src/openrct2-ui/windows/TitleScenarioSelect.cpp @@ -615,7 +615,7 @@ static void window_scenarioselect_scrollpaint(rct_window* w, rct_drawpixelinfo* if (isCompleted) { // Draw completion tick - gfx_draw_sprite(dpi, SPR_MENU_CHECKMARK, wide ? 500 : 395, y + 1, 0); + gfx_draw_sprite(dpi, SPR_MENU_CHECKMARK, { wide ? 500 : 395, y + 1 }, 0); // Draw completion score const utf8* completedByName = "???"; diff --git a/src/openrct2-ui/windows/TopToolbar.cpp b/src/openrct2-ui/windows/TopToolbar.cpp index 63e7b48b29..d289e48f81 100644 --- a/src/openrct2-ui/windows/TopToolbar.cpp +++ b/src/openrct2-ui/windows/TopToolbar.cpp @@ -856,7 +856,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi) if (widget_is_pressed(w, WIDX_STAFF)) imgId++; imgId |= SPRITE_ID_PALETTE_COLOUR_2(gStaffHandymanColour, gStaffMechanicColour); - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 0); + gfx_draw_sprite(dpi, imgId, screenPos, 0); } // Draw fast forward button @@ -867,27 +867,28 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi) if (widget_is_pressed(w, WIDX_FASTFORWARD)) screenPos.y++; imgId = SPR_G2_FASTFORWARD; - gfx_draw_sprite(dpi, imgId, screenPos.x + 6, screenPos.y + 3, 0); + gfx_draw_sprite(dpi, imgId, screenPos + ScreenCoordsXY{ 6, 3 }, 0); for (int32_t i = 0; i < gGameSpeed && gGameSpeed <= 4; i++) { - gfx_draw_sprite(dpi, SPR_G2_SPEED_ARROW, screenPos.x + 5 + i * 5, screenPos.y + 15, 0); + gfx_draw_sprite(dpi, SPR_G2_SPEED_ARROW, screenPos + ScreenCoordsXY{ 5 + i * 5, 15 }, 0); } for (int32_t i = 0; i < 3 && i < gGameSpeed - 4 && gGameSpeed >= 5; i++) { - gfx_draw_sprite(dpi, SPR_G2_HYPER_ARROW, screenPos.x + 5 + i * 6, screenPos.y + 15, 0); + gfx_draw_sprite(dpi, SPR_G2_HYPER_ARROW, screenPos + ScreenCoordsXY{ 5 + i * 6, 15 }, 0); } } // Draw cheats button if (window_top_toolbar_widgets[WIDX_CHEATS].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_CHEATS].left - 1, - w->windowPos.y + window_top_toolbar_widgets[WIDX_CHEATS].top - 1 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_CHEATS].left - 1, + window_top_toolbar_widgets[WIDX_CHEATS].top - 1 }; if (widget_is_pressed(w, WIDX_CHEATS)) screenPos.y++; imgId = SPR_G2_SANDBOX; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 3); + gfx_draw_sprite(dpi, imgId, screenPos, 3); // Draw an overlay if clearance checks are disabled if (gCheatsDisableClearanceChecks) @@ -901,69 +902,72 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi) // Draw chat button if (window_top_toolbar_widgets[WIDX_CHAT].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_CHAT].left, - w->windowPos.y + window_top_toolbar_widgets[WIDX_CHAT].top - 2 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_CHAT].left, window_top_toolbar_widgets[WIDX_CHAT].top - 2 }; if (widget_is_pressed(w, WIDX_CHAT)) screenPos.y++; imgId = SPR_G2_CHAT; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 3); + gfx_draw_sprite(dpi, imgId, screenPos, 3); } // Draw debug button if (window_top_toolbar_widgets[WIDX_DEBUG].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_DEBUG].left, - w->windowPos.y + window_top_toolbar_widgets[WIDX_DEBUG].top - 1 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_DEBUG].left, window_top_toolbar_widgets[WIDX_DEBUG].top - 1 }; if (widget_is_pressed(w, WIDX_DEBUG)) screenPos.y++; imgId = SPR_TAB_GEARS_0; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 3); + gfx_draw_sprite(dpi, imgId, screenPos, 3); } // Draw research button if (window_top_toolbar_widgets[WIDX_RESEARCH].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_RESEARCH].left - 1, - w->windowPos.y + window_top_toolbar_widgets[WIDX_RESEARCH].top }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_RESEARCH].left - 1, + window_top_toolbar_widgets[WIDX_RESEARCH].top }; if (widget_is_pressed(w, WIDX_RESEARCH)) screenPos.y++; imgId = SPR_TAB_FINANCES_RESEARCH_0; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 0); + gfx_draw_sprite(dpi, imgId, screenPos, 0); } // Draw finances button if (window_top_toolbar_widgets[WIDX_FINANCES].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_FINANCES].left + 3, - w->windowPos.y + window_top_toolbar_widgets[WIDX_FINANCES].top + 1 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_FINANCES].left + 3, + window_top_toolbar_widgets[WIDX_FINANCES].top + 1 }; if (widget_is_pressed(w, WIDX_FINANCES)) screenPos.y++; imgId = SPR_FINANCE; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 0); + gfx_draw_sprite(dpi, imgId, screenPos, 0); } // Draw news button if (window_top_toolbar_widgets[WIDX_NEWS].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_NEWS].left + 3, - w->windowPos.y + window_top_toolbar_widgets[WIDX_NEWS].top + 0 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_NEWS].left + 3, window_top_toolbar_widgets[WIDX_NEWS].top + 0 }; if (widget_is_pressed(w, WIDX_NEWS)) screenPos.y++; imgId = SPR_G2_TAB_NEWS; - gfx_draw_sprite(dpi, imgId, screenPos.x, screenPos.y, 0); + gfx_draw_sprite(dpi, imgId, screenPos, 0); } // Draw network button if (window_top_toolbar_widgets[WIDX_NETWORK].type != WWT_EMPTY) { - screenPos = { w->windowPos.x + window_top_toolbar_widgets[WIDX_NETWORK].left + 3, - w->windowPos.y + window_top_toolbar_widgets[WIDX_NETWORK].top + 0 }; + screenPos = w->windowPos + + ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_NETWORK].left + 3, + window_top_toolbar_widgets[WIDX_NETWORK].top + 0 }; if (widget_is_pressed(w, WIDX_NETWORK)) screenPos.y++; // Draw (de)sync icon. imgId = (network_is_desynchronised() ? SPR_G2_MULTIPLAYER_DESYNC : SPR_G2_MULTIPLAYER_SYNC); - gfx_draw_sprite(dpi, imgId, screenPos.x + 3, screenPos.y + 11, 0); + gfx_draw_sprite(dpi, imgId, screenPos + ScreenCoordsXY{ 3, 11 }, 0); // Draw number of players. int32_t player_count = network_get_num_players(); diff --git a/src/openrct2-ui/windows/TrackDesignPlace.cpp b/src/openrct2-ui/windows/TrackDesignPlace.cpp index 9a918deeb7..9b7b3adc70 100644 --- a/src/openrct2-ui/windows/TrackDesignPlace.cpp +++ b/src/openrct2-ui/windows/TrackDesignPlace.cpp @@ -522,14 +522,14 @@ static void window_track_place_paint(rct_window* w, rct_drawpixelinfo* dpi) g1temp.width = TRACK_MINI_PREVIEW_WIDTH; g1temp.height = TRACK_MINI_PREVIEW_HEIGHT; gfx_set_g1_element(SPR_TEMP, &g1temp); - gfx_draw_sprite(&clippedDpi, SPR_TEMP | SPRITE_ID_PALETTE_COLOUR_1(NOT_TRANSLUCENT(w->colours[0])), 0, 0, 0); + gfx_draw_sprite(&clippedDpi, SPR_TEMP | SPRITE_ID_PALETTE_COLOUR_1(NOT_TRANSLUCENT(w->colours[0])), { 0, 0 }, 0); } // Price if (_window_track_place_last_cost != MONEY32_UNDEFINED && !(gParkFlags & PARK_FLAGS_NO_MONEY)) { gfx_draw_string_centred( - dpi, STR_COST_LABEL, { w->windowPos.x + 88, w->windowPos.y + 94 }, COLOUR_BLACK, &_window_track_place_last_cost); + dpi, STR_COST_LABEL, w->windowPos + ScreenCoordsXY{ 88, 94 }, COLOUR_BLACK, &_window_track_place_last_cost); } } diff --git a/src/openrct2-ui/windows/TrackList.cpp b/src/openrct2-ui/windows/TrackList.cpp index 067ca3577c..060fe9e26d 100644 --- a/src/openrct2-ui/windows/TrackList.cpp +++ b/src/openrct2-ui/windows/TrackList.cpp @@ -549,7 +549,7 @@ static void window_track_list_paint(rct_window* w, rct_drawpixelinfo* dpi) g1temp.flags = G1_FLAG_BMP; gfx_set_g1_element(SPR_TEMP, &g1temp); drawing_engine_invalidate_image(SPR_TEMP); - gfx_draw_sprite(dpi, SPR_TEMP, trackPreview.x, trackPreview.y, 0); + gfx_draw_sprite(dpi, SPR_TEMP, trackPreview, 0); screenPos.y = w->windowPos.y + widget->bottom - 12; diff --git a/src/openrct2/drawing/Drawing.cpp b/src/openrct2/drawing/Drawing.cpp index cb9720a386..bd4e3b58c4 100644 --- a/src/openrct2/drawing/Drawing.cpp +++ b/src/openrct2/drawing/Drawing.cpp @@ -745,7 +745,7 @@ void gfx_draw_pickedup_peep(rct_drawpixelinfo* dpi) { if (gPickupPeepImage != UINT32_MAX) { - gfx_draw_sprite(dpi, gPickupPeepImage, gPickupPeepX, gPickupPeepY, 0); + gfx_draw_sprite(dpi, gPickupPeepImage, { gPickupPeepX, gPickupPeepY }, 0); } } diff --git a/src/openrct2/drawing/Drawing.h b/src/openrct2/drawing/Drawing.h index 987dfc3657..680bf8d21b 100644 --- a/src/openrct2/drawing/Drawing.h +++ b/src/openrct2/drawing/Drawing.h @@ -629,7 +629,6 @@ size_t ImageListGetMaximum(); 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, int32_t x, int32_t y, uint32_t tertiary_colour); 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_sprite_raw_masked(rct_drawpixelinfo* dpi, int32_t x, int32_t y, int32_t maskImage, int32_t colourImage); diff --git a/src/openrct2/drawing/NewDrawing.cpp b/src/openrct2/drawing/NewDrawing.cpp index 31080f11ab..e2db564ed6 100644 --- a/src/openrct2/drawing/NewDrawing.cpp +++ b/src/openrct2/drawing/NewDrawing.cpp @@ -254,11 +254,6 @@ void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image, const Scree } } -void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image, int32_t x, int32_t y, uint32_t tertiary_colour) -{ - gfx_draw_sprite(dpi, image, { x, y }, tertiary_colour); -} - void FASTCALL gfx_draw_glyph(rct_drawpixelinfo* dpi, int32_t image, int32_t x, int32_t y, const PaletteMap& paletteMap) { auto drawingEngine = dpi->DrawingEngine;