Allow passing ImageId into gfx_draw_sprite()

This commit is contained in:
Michael Steenbeek 2021-03-23 11:58:09 +01:00 committed by GitHub
parent ccfa22c230
commit a5a63f839a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
43 changed files with 183 additions and 214 deletions

View File

@ -135,7 +135,7 @@ static void WidgetFrameDraw(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetind
// Draw the resize sprite at the bottom right corner
leftTop = w->windowPos + ScreenCoordsXY{ widget->right - 18, widget->bottom - 18 };
gfx_draw_sprite(dpi, SPR_RESIZE | IMAGE_TYPE_REMAP | ((colour & 0x7F) << 19), leftTop, 0);
gfx_draw_sprite(dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
}
/**
@ -166,7 +166,7 @@ static void WidgetResizeDraw(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetin
// Draw the resize sprite at the bottom right corner
leftTop = w->windowPos + ScreenCoordsXY{ widget->right - 18, widget->bottom - 18 };
gfx_draw_sprite(dpi, SPR_RESIZE | IMAGE_TYPE_REMAP | ((colour & 0x7F) << 19), leftTop, 0);
gfx_draw_sprite(dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
}
/**
@ -246,7 +246,7 @@ static void WidgetTabDraw(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetindex
uint32_t image = widget->image + 2;
// Draw disabled image
gfx_draw_sprite(dpi, image | (colour << 19), leftTop, 0);
gfx_draw_sprite(dpi, ImageId(image, colour), leftTop);
}
/**
@ -835,7 +835,7 @@ static void WidgetDrawImage(rct_drawpixelinfo* dpi, rct_window* w, rct_widgetind
else
image |= colour << 19;
gfx_draw_sprite(dpi, image, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId::FromUInt32(image), screenCoords);
}
}

View File

@ -866,7 +866,7 @@ namespace OpenRCT2::Ui::Windows
auto imageOffset = frame % tab.imageFrameCount;
image = image.WithIndex(image.GetIndex() + imageOffset);
}
gfx_draw_sprite(&dpi, image.ToUInt32(), leftTop, image.GetTertiary());
gfx_draw_sprite(&dpi, image, leftTop);
}
tabIndex++;
}

View File

@ -227,7 +227,8 @@ namespace OpenRCT2::Scripting
img = img.WithSecondary(*_secondaryColour);
}
}
gfx_draw_sprite(&_dpi, static_cast<int32_t>(img.ToUInt32()), { x, y }, _ternaryColour.value_or(0));
gfx_draw_sprite(&_dpi, img.WithTertiary(_ternaryColour.value_or(0)), { x, y });
}
void line(int32_t x1, int32_t y1, int32_t x2, int32_t y2)

View File

@ -200,7 +200,7 @@ static void window_about_openrct2_paint(rct_window* w, rct_drawpixelinfo* dpi)
+ lineHeight;
rct_size16 logoSize = gfx_get_sprite_size(SPR_G2_LOGO);
gfx_draw_sprite(dpi, SPR_G2_LOGO, aboutCoords - ScreenCoordsXY{ logoSize.width / 2, 0 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_G2_LOGO), aboutCoords - ScreenCoordsXY{ logoSize.width / 2, 0 });
aboutCoords.y += logoSize.height + lineHeight * 2;
// About OpenRCT2 text
@ -297,7 +297,7 @@ static void window_about_rct2_paint(rct_window* w, rct_drawpixelinfo* dpi)
DrawTextBasic(dpi, screenCoords, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, {}, { TextAlignment::CENTRE });
// Images
gfx_draw_sprite(dpi, SPR_CREDITS_CHRIS_SAWYER_SMALL, { w->windowPos.x + 92, yPage + 24 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_CREDITS_CHRIS_SAWYER_SMALL), { w->windowPos.x + 92, yPage + 24 });
// Licence
}

View File

@ -754,7 +754,7 @@ private:
if (page == WINDOW_CHEATS_PAGE_MONEY)
sprite_idx += (frame_no / 2) % 8;
gfx_draw_sprite(
&dpi, sprite_idx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top }, 0);
&dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top });
}
// Guests tab
@ -764,15 +764,14 @@ private:
if (page == WINDOW_CHEATS_PAGE_GUESTS)
sprite_idx += (frame_no / 3) % 8;
gfx_draw_sprite(
&dpi, sprite_idx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top }, 0);
&dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
}
// Misc tab
if (!IsWidgetDisabled(WIDX_TAB_3))
{
uint32_t sprite_idx = SPR_TAB_PARK;
gfx_draw_sprite(
&dpi, sprite_idx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top }, 0);
&dpi, ImageId(SPR_TAB_PARK), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top });
}
// Rides tab
@ -782,7 +781,7 @@ private:
if (page == WINDOW_CHEATS_PAGE_RIDES)
sprite_idx += (frame_no / 4) % 16;
gfx_draw_sprite(
&dpi, sprite_idx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_4].left, widgets[WIDX_TAB_4].top }, 0);
&dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_4].left, widgets[WIDX_TAB_4].top });
}
}

View File

@ -345,9 +345,8 @@ static void window_dropdown_paint(rct_window* w, rct_drawpixelinfo* dpi)
image++;
gfx_draw_sprite(
dpi, image,
w->windowPos + ScreenCoordsXY{ 2 + (cell_x * _dropdown_item_width), 2 + (cell_y * _dropdown_item_height) },
0);
dpi, ImageId::FromUInt32(image),
w->windowPos + ScreenCoordsXY{ 2 + (cell_x * _dropdown_item_width), 2 + (cell_y * _dropdown_item_height) });
}
else
{

View File

@ -441,11 +441,10 @@ void window_editor_bottom_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
if (drawPreviousButton)
{
gfx_draw_sprite(
dpi, SPR_PREVIOUS,
dpi, ImageId(SPR_PREVIOUS),
w->windowPos
+ ScreenCoordsXY{ window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].left + 6,
window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].top + 6 },
0);
window_editor_bottom_toolbar_widgets[WIDX_PREVIOUS_IMAGE].top + 6 });
colour_t textColour = NOT_TRANSLUCENT(w->colours[1]);
if (gHoverWidget.window_classification == WC_BOTTOM_TOOLBAR
@ -471,11 +470,10 @@ void window_editor_bottom_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
if ((drawPreviousButton || drawNextButton) && gS6Info.editor_step != EditorStep::RollercoasterDesigner)
{
gfx_draw_sprite(
dpi, SPR_NEXT,
dpi, ImageId(SPR_NEXT),
w->windowPos
+ ScreenCoordsXY{ window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].right - 29,
window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].top + 6 },
0);
window_editor_bottom_toolbar_widgets[WIDX_NEXT_IMAGE].top + 6 });
colour_t textColour = NOT_TRANSLUCENT(w->colours[1]);

View File

@ -504,7 +504,7 @@ static void window_editor_inventions_list_paint(rct_window* w, rct_drawpixelinfo
// Tab image
auto screenPos = w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top };
gfx_draw_sprite(dpi, SPR_TAB_FINANCES_RESEARCH_0 + (w->frame_no / 2) % 8, screenPos, 0);
gfx_draw_sprite(dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0 + (w->frame_no / 2) % 8), screenPos);
// Pre-researched items label
screenPos = w->windowPos

View File

@ -953,9 +953,9 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
widget = &w->widgets[WIDX_TAB_1 + i];
if (widget->type != WindowWidgetType::Empty)
{
auto image = ObjectSelectionPages[i].Image;
auto image = ImageId(ObjectSelectionPages[i].Image);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
gfx_draw_sprite(dpi, image, screenPos, 0);
gfx_draw_sprite(dpi, image, screenPos);
}
}
@ -983,7 +983,7 @@ static void window_editor_object_selection_paint(rct_window* w, rct_drawpixelinf
spriteIndex += (i == 4 ? ThrillRidesTabAnimationSequence[frame] : frame);
auto screenPos = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
gfx_draw_sprite(dpi, spriteIndex | (w->colours[1] << 19), screenPos, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex, w->colours[1]), screenPos);
}
}

View File

@ -267,7 +267,7 @@ static void window_editor_objective_options_draw_tab_images(rct_window* w, rct_d
if (w->page == WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_MAIN)
spriteIndex += (w->frame_no / 4) % 16;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->left, widget->top }, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 2
if (!(w->disabled_widgets & (1 << WIDX_TAB_2)))
@ -277,7 +277,7 @@ static void window_editor_objective_options_draw_tab_images(rct_window* w, rct_d
if (w->page == WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_RIDES)
spriteIndex += (w->frame_no / 4) % 16;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->left, widget->top }, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->left, widget->top });
}
}

View File

@ -376,7 +376,7 @@ static void window_editor_scenario_options_draw_tab_images(rct_window* w, rct_dr
if (w->page == WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_FINANCIAL)
spriteIndex += (w->frame_no / 2) % 8;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->left, widget->top }, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 2
widget = &w->widgets[WIDX_TAB_2];
@ -384,12 +384,12 @@ static void window_editor_scenario_options_draw_tab_images(rct_window* w, rct_dr
if (w->page == WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_GUESTS)
spriteIndex += (w->frame_no / 4) % 8;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->left, widget->top }, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 3
widget = &w->widgets[WIDX_TAB_3];
spriteIndex = SPR_TAB_PARK;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->left, widget->top }, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->left, widget->top });
}
/**

View File

@ -1364,7 +1364,8 @@ static void window_finances_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -612,7 +612,7 @@ static void window_footpath_paint(rct_window* w, rct_drawpixelinfo* dpi)
screenCoords = w->windowPos
+ ScreenCoordsXY{ window_footpath_widgets[WIDX_CONSTRUCT].midX(),
window_footpath_widgets[WIDX_CONSTRUCT].bottom - 60 };
gfx_draw_sprite(dpi, image, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image), screenCoords);
// Draw build this... label
screenCoords = w->windowPos

View File

@ -472,8 +472,8 @@ static void window_game_bottom_toolbar_draw_park_rating(
}
// Draw thumbs on the sides
gfx_draw_sprite(dpi, SPR_RATING_LOW, { x - 14, y }, 0);
gfx_draw_sprite(dpi, SPR_RATING_HIGH, { x + 114, y }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_RATING_LOW), { x - 14, y });
gfx_draw_sprite(dpi, ImageId(SPR_RATING_HIGH), { x + 114, y });
}
static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi, rct_window* w)
@ -528,7 +528,7 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi,
// Current weather
auto currentWeatherSpriteId = climate_get_weather_sprite_id(gClimateCurrent);
gfx_draw_sprite(dpi, currentWeatherSpriteId, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(currentWeatherSpriteId), screenCoords);
// Next weather
auto nextWeatherSpriteId = climate_get_weather_sprite_id(gClimateNext);
@ -536,8 +536,8 @@ static void window_game_bottom_toolbar_draw_right_panel(rct_drawpixelinfo* dpi,
{
if (gClimateUpdateTimer < 960)
{
gfx_draw_sprite(dpi, SPR_NEXT_WEATHER, screenCoords + ScreenCoordsXY{ 27, 5 }, 0);
gfx_draw_sprite(dpi, nextWeatherSpriteId, screenCoords + ScreenCoordsXY{ 40, 0 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_NEXT_WEATHER), screenCoords + ScreenCoordsXY{ 27, 5 });
gfx_draw_sprite(dpi, ImageId(nextWeatherSpriteId), screenCoords + ScreenCoordsXY{ 40, 0 });
}
}
}
@ -573,7 +573,7 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc
switch (newsItem->Type)
{
case News::ItemType::Ride:
gfx_draw_sprite(dpi, SPR_RIDE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_RIDE), screenCoords);
break;
case News::ItemType::PeepOnRide:
case News::ItemType::Peep:
@ -602,48 +602,37 @@ static void window_game_bottom_toolbar_draw_news_item(rct_drawpixelinfo* dpi, rc
image_id_base += w->frame_no & 0xFFFFFFFC;
image_id_base++;
uint32_t image_id = image_id_base;
image_id |= SPRITE_ID_PALETTE_COLOUR_2(peep->TshirtColour, peep->TrousersColour);
gfx_draw_sprite(&cliped_dpi, image_id, clipCoords, 0);
auto image_id = ImageId(image_id_base, peep->TshirtColour, peep->TrousersColour);
gfx_draw_sprite(&cliped_dpi, image_id, clipCoords);
if (image_id_base >= 0x2A1D && image_id_base < 0x2A3D)
{
image_id_base += 32;
image_id_base |= SPRITE_ID_PALETTE_COLOUR_1(peep->BalloonColour);
gfx_draw_sprite(&cliped_dpi, image_id_base, clipCoords, 0);
gfx_draw_sprite(&cliped_dpi, ImageId(image_id_base + 32, peep->BalloonColour), clipCoords);
}
else if (image_id_base >= 0x2BBD && image_id_base < 0x2BDD)
{
image_id_base += 32;
image_id_base |= SPRITE_ID_PALETTE_COLOUR_1(peep->UmbrellaColour);
gfx_draw_sprite(&cliped_dpi, image_id_base, clipCoords, 0);
gfx_draw_sprite(&cliped_dpi, ImageId(image_id_base + 32, peep->UmbrellaColour), clipCoords);
}
else if (image_id_base >= 0x29DD && image_id_base < 0x29FD)
{
image_id_base += 32;
image_id_base |= SPRITE_ID_PALETTE_COLOUR_1(peep->HatColour);
gfx_draw_sprite(&cliped_dpi, image_id_base, clipCoords, 0);
gfx_draw_sprite(&cliped_dpi, ImageId(image_id_base + 32, peep->HatColour), clipCoords);
}
break;
}
case News::ItemType::Money:
gfx_draw_sprite(dpi, SPR_FINANCE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_FINANCE), screenCoords);
break;
case News::ItemType::Research:
gfx_draw_sprite(dpi, (newsItem->Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(newsItem->Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
break;
case News::ItemType::Peeps:
gfx_draw_sprite(dpi, SPR_GUESTS, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_GUESTS), screenCoords);
break;
case News::ItemType::Award:
gfx_draw_sprite(dpi, SPR_AWARD, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_AWARD), screenCoords);
break;
case News::ItemType::Graph:
gfx_draw_sprite(dpi, SPR_GRAPH, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_GRAPH), screenCoords);
break;
case News::ItemType::Null:
case News::ItemType::Blank:

View File

@ -772,31 +772,25 @@ static void window_guest_overview_tab_paint(rct_window* w, rct_drawpixelinfo* dp
}
animationFrame += animationFrameOffset;
int32_t sprite_id = animationFrame | SPRITE_ID_PALETTE_COLOUR_2(peep->TshirtColour, peep->TrousersColour);
gfx_draw_sprite(&clip_dpi, sprite_id, screenCoords, 0);
auto sprite_id = ImageId(animationFrame, peep->TshirtColour, peep->TrousersColour);
gfx_draw_sprite(&clip_dpi, sprite_id, screenCoords);
// If holding a balloon
if (animationFrame >= 0x2A1D && animationFrame < 0x2A3D)
{
animationFrame += 32;
animationFrame |= SPRITE_ID_PALETTE_COLOUR_1(peep->BalloonColour);
gfx_draw_sprite(&clip_dpi, animationFrame, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(animationFrame + 32, peep->BalloonColour), screenCoords);
}
// If holding umbrella
if (animationFrame >= 0x2BBD && animationFrame < 0x2BDD)
{
animationFrame += 32;
animationFrame |= SPRITE_ID_PALETTE_COLOUR_1(peep->UmbrellaColour);
gfx_draw_sprite(&clip_dpi, animationFrame, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(animationFrame + 32, peep->UmbrellaColour), screenCoords);
}
// If wearing hat
if (animationFrame >= 0x29DD && animationFrame < 0x29FD)
{
animationFrame += 32;
animationFrame |= SPRITE_ID_PALETTE_COLOUR_1(peep->HatColour);
gfx_draw_sprite(&clip_dpi, animationFrame, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(animationFrame + 32, peep->HatColour), screenCoords);
}
}
@ -835,7 +829,7 @@ static void window_guest_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
break;
}
}
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -857,7 +851,7 @@ static void window_guest_rides_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
image_id += (w->frame_no / 4) & 0xF;
}
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -879,7 +873,7 @@ static void window_guest_finance_tab_paint(rct_window* w, rct_drawpixelinfo* dpi
image_id += (w->frame_no / 2) & 0x7;
}
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -901,7 +895,7 @@ static void window_guest_thoughts_tab_paint(rct_window* w, rct_drawpixelinfo* dp
image_id += (w->frame_no / 2) & 0x7;
}
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -916,9 +910,7 @@ static void window_guest_inventory_tab_paint(rct_window* w, rct_drawpixelinfo* d
rct_widget* widget = &w->widgets[WIDX_TAB_6];
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
int32_t image_id = SPR_TAB_GUEST_INVENTORY;
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_TAB_GUEST_INVENTORY), screenCoords);
}
static void window_guest_debug_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
@ -935,7 +927,7 @@ static void window_guest_debug_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
image_id += (w->frame_no / 2) & 0x3;
}
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -960,7 +952,7 @@ void window_guest_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 + ScreenCoordsXY{ 2, 2 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
}
}

View File

@ -643,12 +643,15 @@ private:
auto i = (_selectedTab == TabId::Individual ? _tabAnimationIndex & ~3 : 0);
i += GetPeepAnimation(PeepSpriteType::Normal).base_image + 1;
i |= 0xA1600000;
gfx_draw_sprite(&dpi, i, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].midX(), widgets[WIDX_TAB_1].bottom - 6 }, 0);
gfx_draw_sprite(
&dpi, ImageId::FromUInt32(i),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].midX(), widgets[WIDX_TAB_1].bottom - 6 });
// Tab 2 image
i = (_selectedTab == TabId::Summarised ? _tabAnimationIndex / 4 : 0);
gfx_draw_sprite(
&dpi, SPR_TAB_GUESTS_0 + i, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top }, 0);
&dpi, ImageId(SPR_TAB_GUESTS_0 + i),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
}
void DrawScrollIndividual(rct_drawpixelinfo& dpi)
@ -683,11 +686,11 @@ private:
{
case GuestViewType::Actions:
// Guest face
gfx_draw_sprite(&dpi, get_peep_face_sprite_small(peep), { 118, y + 1 }, 0);
gfx_draw_sprite(&dpi, ImageId(get_peep_face_sprite_small(peep)), { 118, y + 1 });
// Tracking icon
if (peep->PeepFlags & PEEP_FLAGS_TRACKING)
gfx_draw_sprite(&dpi, STR_ENTER_SELECTION_SIZE, { 112, y + 1 }, 0);
gfx_draw_sprite(&dpi, ImageId(STR_ENTER_SELECTION_SIZE), { 112, y + 1 });
// Action
ft = Formatter();
@ -743,8 +746,8 @@ private:
for (uint32_t j = 0; j < std::size(group.Faces) && j < group.NumGuests; j++)
{
gfx_draw_sprite(
&dpi, group.Faces[j] + SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY, { static_cast<int32_t>(j) * 8, y + 12 },
0);
&dpi, ImageId(group.Faces[j] + SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY),
{ static_cast<int32_t>(j) * 8, y + 12 });
}
// Draw action

View File

@ -208,7 +208,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, 0);
gfx_draw_sprite(dpi, ImageId(SPR_TEMP), screenPos);
screenPos = w->windowPos + ScreenCoordsXY{ widget->midX(), widget->bottom - 12 };

View File

@ -272,8 +272,8 @@ public:
else if (gLandMountainMode)
{
screenCoords = { windowPos.x + previewWidget->left, 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, 0);
auto sprite = ImageId(gLandToolSize % 2 == 0 ? SPR_G2_MOUNTAIN_TOOL_EVEN : SPR_G2_MOUNTAIN_TOOL_ODD);
gfx_draw_sprite(&dpi, sprite, screenCoords);
WidgetDraw(&dpi, this, WIDX_DECREMENT);
WidgetDraw(&dpi, this, WIDX_INCREMENT);
}

View File

@ -832,9 +832,7 @@ static void window_map_paint(rct_window* w, rct_drawpixelinfo* dpi)
screenCoords = w->windowPos
+ ScreenCoordsXY{ w->widgets[WIDX_PEOPLE_STARTING_POSITION].left + 12,
w->widgets[WIDX_PEOPLE_STARTING_POSITION].top + 18 };
gfx_draw_sprite(
dpi, IMAGE_TYPE_REMAP | IMAGE_TYPE_REMAP_2_PLUS | (COLOUR_LIGHT_BROWN << 24) | (COLOUR_BRIGHT_RED << 19) | SPR_6410,
screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_6410, COLOUR_BRIGHT_RED, COLOUR_LIGHT_BROWN), screenCoords);
}
if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && !gCheatsSandboxMode)
@ -886,7 +884,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, ImageId(SPR_TEMP), { 0, 0 });
if (w->selected_tab == PAGE_PEEPS)
{
@ -1007,7 +1005,8 @@ 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 + ScreenCoordsXY{ w->widgets[WIDX_PEOPLE_TAB].left, w->widgets[WIDX_PEOPLE_TAB].top }, 0);
dpi, ImageId(image),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_PEOPLE_TAB].left, w->widgets[WIDX_PEOPLE_TAB].top });
// Ride/stall tab image (animated)
image = SPR_TAB_RIDE_0;
@ -1015,7 +1014,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 + ScreenCoordsXY{ w->widgets[WIDX_RIDES_TAB].left, w->widgets[WIDX_RIDES_TAB].top }, 0);
dpi, ImageId(image), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_RIDES_TAB].left, w->widgets[WIDX_RIDES_TAB].top });
}
/**

View File

@ -1319,7 +1319,8 @@ static void window_mapgen_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w,
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -999,7 +999,8 @@ static void window_multiplayer_draw_tab_image(rct_window* w, rct_drawpixelinfo*
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -613,10 +613,9 @@ static void window_new_ride_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w
spriteIndex += page == WINDOW_NEW_RIDE_PAGE_THRILL ? ThrillRidesTabAnimationSequence[frame] : frame;
spriteIndex |= w->colours[1] << 19;
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex, w->colours[1]),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -268,7 +268,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32
switch (newsItem.Type)
{
case News::ItemType::Ride:
gfx_draw_sprite(dpi, SPR_RIDE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_RIDE), screenCoords);
break;
case News::ItemType::Peep:
case News::ItemType::PeepOnRide:
@ -301,23 +301,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, clipCoords, 0);
gfx_draw_sprite(&cliped_dpi, ImageId::FromUInt32(image_id), clipCoords);
break;
}
case News::ItemType::Money:
gfx_draw_sprite(dpi, SPR_FINANCE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_FINANCE), screenCoords);
break;
case News::ItemType::Research:
gfx_draw_sprite(dpi, newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
break;
case News::ItemType::Peeps:
gfx_draw_sprite(dpi, SPR_GUESTS, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_GUESTS), screenCoords);
break;
case News::ItemType::Award:
gfx_draw_sprite(dpi, SPR_AWARD, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_AWARD), screenCoords);
break;
case News::ItemType::Graph:
gfx_draw_sprite(dpi, SPR_GRAPH, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_GRAPH), screenCoords);
break;
case News::ItemType::Null:
case News::ItemType::Blank:
@ -339,7 +339,7 @@ static void window_news_scrollpaint(rct_window* w, rct_drawpixelinfo* dpi, int32
press = 0x20;
}
gfx_fill_rect_inset(dpi, { screenCoords, screenCoords + ScreenCoordsXY{ 23, 23 } }, w->colours[2], press);
gfx_draw_sprite(dpi, SPR_LOCATE, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_LOCATE), screenCoords);
}
y += itemHeight;

View File

@ -266,7 +266,8 @@ static void window_news_options_draw_tab_image(rct_window* w, rct_drawpixelinfo*
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -2324,7 +2324,7 @@ static void window_options_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w,
}
// Draw normal, enabled sprite.
gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex), screenCoords);
}
else
{

View File

@ -719,7 +719,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 + ScreenCoordsXY{ 2, 2 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
}
// Draw park closed / open label
@ -1618,7 +1618,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, 0);
gfx_draw_sprite(dpi, ImageId(ParkAwards[award->Type].sprite), screenCoords);
DrawTextWrapped(dpi, screenCoords + ScreenCoordsXY{ 34, 6 }, 180, ParkAwards[award->Type].text);
screenCoords.y += 32;
@ -1696,8 +1696,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top }, 0);
dpi, ImageId(SPR_TAB_PARK_ENTRANCE),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top });
// Rating tab
if (!(w->disabled_widgets & (1 << WIDX_TAB_2)))
@ -1706,13 +1706,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top });
gfx_draw_sprite(
dpi, SPR_RATING_HIGH,
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 7, w->widgets[WIDX_TAB_2].top + 1 }, 0);
dpi, ImageId(SPR_RATING_HIGH),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 7, w->widgets[WIDX_TAB_2].top + 1 });
gfx_draw_sprite(
dpi, SPR_RATING_LOW,
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 16, w->widgets[WIDX_TAB_2].top + 12 }, 0);
dpi, ImageId(SPR_RATING_LOW),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left + 16, w->widgets[WIDX_TAB_2].top + 12 });
}
// Guests tab
@ -1722,7 +1722,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top });
sprite_idx = GetPeepAnimation(PeepSpriteType::Normal).base_image + 1;
if (w->page == WINDOW_PARK_PAGE_GUESTS)
@ -1730,8 +1730,8 @@ static void window_park_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w)
sprite_idx |= 0xA9E00000;
gfx_draw_sprite(
dpi, sprite_idx, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].midX(), w->widgets[WIDX_TAB_3].bottom - 9 },
0);
dpi, ImageId::FromUInt32(sprite_idx),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].midX(), w->widgets[WIDX_TAB_3].bottom - 9 });
}
// Price tab
@ -1741,7 +1741,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_4].left, w->widgets[WIDX_TAB_4].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_4].left, w->widgets[WIDX_TAB_4].top });
}
// Statistics tab
@ -1751,7 +1751,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_5].left, w->widgets[WIDX_TAB_5].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_5].left, w->widgets[WIDX_TAB_5].top });
}
// Objective tab
@ -1761,13 +1761,14 @@ 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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_6].left, w->widgets[WIDX_TAB_6].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_6].left, w->widgets[WIDX_TAB_6].top });
}
// Awards tab
if (!(w->disabled_widgets & (1 << WIDX_TAB_7)))
gfx_draw_sprite(
dpi, SPR_TAB_AWARDS, w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_7].left, w->widgets[WIDX_TAB_7].top }, 0);
dpi, ImageId(SPR_TAB_AWARDS),
w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_7].left, w->widgets[WIDX_TAB_7].top });
}
#pragma endregion

View File

@ -567,15 +567,13 @@ 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 imageId;
// Tab 1
if (!WidgetIsDisabled(w, WIDX_TAB_1))
{
widget = &w->widgets[WIDX_TAB_1];
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
imageId = SPR_PEEP_LARGE_FACE_NORMAL;
gfx_draw_sprite(dpi, imageId, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(SPR_PEEP_LARGE_FACE_NORMAL), screenCoords);
}
// Tab 2
@ -583,14 +581,14 @@ static void window_player_draw_tab_images(rct_drawpixelinfo* dpi, rct_window* w)
{
widget = &w->widgets[WIDX_TAB_2];
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
imageId = SPR_TAB_FINANCES_SUMMARY_0;
int32_t imageId = SPR_TAB_FINANCES_SUMMARY_0;
if (w->page == WINDOW_PLAYER_PAGE_STATISTICS)
{
imageId += (w->frame_no / 2) & 7;
}
gfx_draw_sprite(dpi, imageId, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(imageId), screenCoords);
}
}

View File

@ -627,7 +627,8 @@ static void window_research_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -942,7 +942,8 @@ static void window_ride_draw_tab_image(rct_drawpixelinfo* dpi, rct_window* w, in
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top }, 0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}
@ -978,8 +979,8 @@ static void window_ride_draw_tab_main(rct_drawpixelinfo* dpi, rct_window* w)
break;
}
gfx_draw_sprite(
dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top },
0);
dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}
}
@ -1052,7 +1053,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, screenCoords, vehicleColour.additional_2);
gfx_draw_sprite(&clipDPI, ImageId::FromUInt32(spriteIndex, vehicleColour.additional_2), screenCoords);
}
}
@ -1075,7 +1076,8 @@ static void window_ride_draw_tab_customer(rct_drawpixelinfo* dpi, rct_window* w)
spriteIndex += 1;
spriteIndex |= 0xA9E00000;
gfx_draw_sprite(dpi, spriteIndex, w->windowPos + ScreenCoordsXY{ widget->midX(), widget->bottom - 6 }, 0);
gfx_draw_sprite(
dpi, ImageId::FromUInt32(spriteIndex), w->windowPos + ScreenCoordsXY{ widget->midX(), widget->bottom - 6 });
}
}
@ -2604,7 +2606,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 + ScreenCoordsXY{ 2, 2 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
}
// View dropdown
@ -4786,8 +4788,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Track
if (ride->type == RIDE_TYPE_MAZE)
{
int32_t spriteIndex = MazeOptions[trackColour.supports].sprite;
gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(MazeOptions[trackColour.supports].sprite), screenCoords);
}
else
{
@ -4795,16 +4796,14 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
int32_t spriteIndex = typeDescriptor.ColourPreview.Track;
if (spriteIndex != 0)
{
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_2(trackColour.main, trackColour.additional);
gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex, trackColour.main, trackColour.additional), screenCoords);
}
// Supports
spriteIndex = typeDescriptor.ColourPreview.Supports;
if (spriteIndex != 0)
{
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(trackColour.supports);
gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(spriteIndex, trackColour.supports), screenCoords);
}
}
}
@ -4814,10 +4813,7 @@ static void window_ride_colour_paint(rct_window* w, rct_drawpixelinfo* dpi)
+ ScreenCoordsXY{ (widget->left + widget->right) / 2 - 8, (widget->bottom + widget->top) / 2 - 6 };
ShopItem shopItem = rideEntry->shop_item[1] == ShopItem::None ? rideEntry->shop_item[0] : rideEntry->shop_item[1];
int32_t spriteIndex = GetShopItemDescriptor(shopItem).Image;
spriteIndex |= SPRITE_ID_PALETTE_COLOUR_1(ride->track_colour[0].main);
gfx_draw_sprite(dpi, spriteIndex, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(GetShopItemDescriptor(shopItem).Image, ride->track_colour[0].main), screenCoords);
}
// Entrance preview
@ -4898,7 +4894,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, screenCoords, vehicleColour.additional_2);
gfx_draw_sprite(dpi, ImageId::FromUInt32(spriteIndex, vehicleColour.additional_2), screenCoords);
}
#pragma endregion

View File

@ -764,21 +764,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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_1].left, w->widgets[WIDX_TAB_1].top });
// 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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_2].left, w->widgets[WIDX_TAB_2].top });
// 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 + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top }, 0);
dpi, ImageId(sprite_idx), w->windowPos + ScreenCoordsXY{ w->widgets[WIDX_TAB_3].left, w->widgets[WIDX_TAB_3].top });
}
/**

View File

@ -614,7 +614,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, ImageId(SPR_MENU_CHECKMARK), { wide ? 500 : 395, y + 1 });
// Draw completion score
const utf8* completedByName = "???";

View File

@ -493,14 +493,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, ImageId(compatibilitySpriteId), { right, screenCoords.y + 1 });
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, ImageId(SPR_G2_LOCKED), { right, screenCoords.y + 4 });
}
right -= 6;

View File

@ -492,7 +492,7 @@ private:
}
const auto& widget = widgets[widgetIndex];
gfx_draw_sprite(&dpi, imageId, windowPos + ScreenCoordsXY{ widget.left, widget.top }, 0);
gfx_draw_sprite(&dpi, ImageId(imageId), windowPos + ScreenCoordsXY{ widget.left, widget.top });
}
}
}

View File

@ -928,7 +928,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 + ScreenCoordsXY{ 2, 2 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
}
}
@ -965,7 +965,7 @@ void window_staff_options_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
}
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -987,7 +987,7 @@ void window_staff_stats_tab_paint(rct_window* w, rct_drawpixelinfo* dpi)
}
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
gfx_draw_sprite(dpi, image_id, screenCoords, 0);
gfx_draw_sprite(dpi, ImageId(image_id), screenCoords);
}
/**
@ -1033,31 +1033,24 @@ 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, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(ebx, peep->TshirtColour, peep->TrousersColour), screenCoords);
// 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, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(ebx + 32, peep->BalloonColour), screenCoords);
}
// If holding umbrella
if (ebx >= 0x2BBD && ebx < 0x2BDD)
{
ebx += 32;
ebx |= SPRITE_ID_PALETTE_COLOUR_1(peep->UmbrellaColour);
gfx_draw_sprite(&clip_dpi, ebx, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(ebx + 32, peep->UmbrellaColour), screenCoords);
}
// If wearing hat
if (ebx >= 0x29DD && ebx < 0x29FD)
{
ebx += 32;
ebx |= SPRITE_ID_PALETTE_COLOUR_1(peep->HatColour);
gfx_draw_sprite(&clip_dpi, ebx, screenCoords, 0);
gfx_draw_sprite(&clip_dpi, ImageId(ebx + 32, peep->HatColour), screenCoords);
}
}

View File

@ -416,7 +416,7 @@ public:
// True if a patrol path is set for the worker
if (gStaffModes[peep->StaffId] == StaffMode::Patrol)
{
gfx_draw_sprite(&dpi, SPR_STAFF_PATROL_PATH, { nameColumnSize + 5, y }, 0);
gfx_draw_sprite(&dpi, ImageId(SPR_STAFF_PATROL_PATH), { nameColumnSize + 5, y });
}
auto staffOrderIcon_x = nameColumnSize + 20;
@ -429,7 +429,7 @@ public:
{
if (staffOrders & 1)
{
gfx_draw_sprite(&dpi, staffOrderSprite, { staffOrderIcon_x, y }, 0);
gfx_draw_sprite(&dpi, ImageId(staffOrderSprite), { staffOrderIcon_x, y });
}
staffOrders = staffOrders >> 1;
staffOrderIcon_x += 9;
@ -439,7 +439,7 @@ public:
}
else
{
gfx_draw_sprite(&dpi, GetEntertainerCostumeSprite(peep->SpriteType), { staffOrderIcon_x, y }, 0);
gfx_draw_sprite(&dpi, ImageId(GetEntertainerCostumeSprite(peep->SpriteType)), { staffOrderIcon_x, y });
}
}
@ -517,8 +517,8 @@ private:
const auto& widget = widgets[widgetIndex];
auto imageId = (_selectedTab == tabIndex ? (_tabAnimationIndex & ~3) : 0);
imageId += GetPeepAnimation(type).base_image + 1;
imageId |= SPRITE_ID_PALETTE_COLOUR_1(colour);
gfx_draw_sprite(&dpi, imageId, windowPos + ScreenCoordsXY{ (widget.left + widget.right) / 2, widget.bottom - 6 }, 0);
gfx_draw_sprite(
&dpi, ImageId(imageId, colour), windowPos + ScreenCoordsXY{ (widget.left + widget.right) / 2, widget.bottom - 6 });
}
void DrawTabImage(rct_drawpixelinfo& dpi, int32_t tabIndex, PeepSpriteType type) const
@ -532,7 +532,7 @@ private:
{
auto imageId = (_selectedTab == 3 ? (_tabAnimationIndex & ~3) : 0);
imageId += GetPeepAnimation(type).base_image + 1;
gfx_draw_sprite(&clippedDpi, imageId, { 15, 23 }, 0);
gfx_draw_sprite(&clippedDpi, ImageId(imageId), { 15, 23 });
}
}

View File

@ -1064,11 +1064,10 @@ static void window_title_editor_draw_tab_images(rct_drawpixelinfo* dpi, rct_wind
screenCoords = ScreenCoordsXY{ 4, 1 };
}
gfx_draw_sprite(
dpi, spriteId,
dpi, ImageId(spriteId),
w->windowPos + screenCoords
+ ScreenCoordsXY{ w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].left,
w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top },
0);
w->widgets[WIDX_TITLE_EDITOR_PRESETS_TAB + i].top });
}
}

View File

@ -73,6 +73,6 @@ static void window_title_menu_mouseup(rct_window* w, rct_widgetindex widgetIndex
static void window_title_logo_paint(rct_window* w, rct_drawpixelinfo* dpi)
{
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);
gfx_draw_sprite(dpi, ImageId(SPR_G2_LOGO), screenCoords);
gfx_draw_sprite(dpi, ImageId(SPR_G2_TITLE), screenCoords + ScreenCoordsXY{ 104, 18 });
}

View File

@ -863,8 +863,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
imgId = SPR_TOOLBAR_STAFF;
if (WidgetIsPressed(w, WIDX_STAFF))
imgId++;
imgId |= SPRITE_ID_PALETTE_COLOUR_2(gStaffHandymanColour, gStaffMechanicColour);
gfx_draw_sprite(dpi, imgId, screenPos, 0);
gfx_draw_sprite(dpi, ImageId(imgId, gStaffHandymanColour, gStaffMechanicColour), screenPos);
}
// Draw fast forward button
@ -874,16 +873,15 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
w->windowPos.y + window_top_toolbar_widgets[WIDX_FASTFORWARD].top + 0 };
if (WidgetIsPressed(w, WIDX_FASTFORWARD))
screenPos.y++;
imgId = SPR_G2_FASTFORWARD;
gfx_draw_sprite(dpi, imgId, screenPos + ScreenCoordsXY{ 6, 3 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_G2_FASTFORWARD), screenPos + ScreenCoordsXY{ 6, 3 });
for (int32_t i = 0; i < gGameSpeed && gGameSpeed <= 4; i++)
{
gfx_draw_sprite(dpi, SPR_G2_SPEED_ARROW, screenPos + ScreenCoordsXY{ 5 + i * 5, 15 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_G2_SPEED_ARROW), screenPos + ScreenCoordsXY{ 5 + i * 5, 15 });
}
for (int32_t i = 0; i < 3 && i < gGameSpeed - 4 && gGameSpeed >= 5; i++)
{
gfx_draw_sprite(dpi, SPR_G2_HYPER_ARROW, screenPos + ScreenCoordsXY{ 5 + i * 6, 15 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_G2_HYPER_ARROW), screenPos + ScreenCoordsXY{ 5 + i * 6, 15 });
}
}
@ -895,8 +893,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
window_top_toolbar_widgets[WIDX_CHEATS].top - 1 };
if (WidgetIsPressed(w, WIDX_CHEATS))
screenPos.y++;
imgId = SPR_G2_SANDBOX;
gfx_draw_sprite(dpi, imgId, screenPos, 3);
gfx_draw_sprite(dpi, ImageId(SPR_G2_SANDBOX), screenPos);
// Draw an overlay if clearance checks are disabled
if (gCheatsDisableClearanceChecks)
@ -914,8 +911,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
+ ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_CHAT].left, window_top_toolbar_widgets[WIDX_CHAT].top - 2 };
if (WidgetIsPressed(w, WIDX_CHAT))
screenPos.y++;
imgId = SPR_G2_CHAT;
gfx_draw_sprite(dpi, imgId, screenPos, 3);
gfx_draw_sprite(dpi, ImageId(SPR_G2_CHAT), screenPos);
}
// Draw debug button
@ -925,8 +921,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
+ ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_DEBUG].left, window_top_toolbar_widgets[WIDX_DEBUG].top - 1 };
if (WidgetIsPressed(w, WIDX_DEBUG))
screenPos.y++;
imgId = SPR_TAB_GEARS_0;
gfx_draw_sprite(dpi, imgId, screenPos, 3);
gfx_draw_sprite(dpi, ImageId(SPR_TAB_GEARS_0), screenPos);
}
// Draw research button
@ -937,8 +932,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
window_top_toolbar_widgets[WIDX_RESEARCH].top };
if (WidgetIsPressed(w, WIDX_RESEARCH))
screenPos.y++;
imgId = SPR_TAB_FINANCES_RESEARCH_0;
gfx_draw_sprite(dpi, imgId, screenPos, 0);
gfx_draw_sprite(dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0), screenPos);
}
// Draw finances button
@ -949,8 +943,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
window_top_toolbar_widgets[WIDX_FINANCES].top + 1 };
if (WidgetIsPressed(w, WIDX_FINANCES))
screenPos.y++;
imgId = SPR_FINANCE;
gfx_draw_sprite(dpi, imgId, screenPos, 0);
gfx_draw_sprite(dpi, ImageId(SPR_FINANCE), screenPos);
}
// Draw news button
@ -960,8 +953,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
+ ScreenCoordsXY{ window_top_toolbar_widgets[WIDX_NEWS].left + 3, window_top_toolbar_widgets[WIDX_NEWS].top + 0 };
if (WidgetIsPressed(w, WIDX_NEWS))
screenPos.y++;
imgId = SPR_G2_TAB_NEWS;
gfx_draw_sprite(dpi, imgId, screenPos, 0);
gfx_draw_sprite(dpi, ImageId(SPR_G2_TAB_NEWS), screenPos);
}
// Draw network button
@ -975,7 +967,7 @@ static void window_top_toolbar_paint(rct_window* w, rct_drawpixelinfo* dpi)
// Draw (de)sync icon.
imgId = (network_is_desynchronised() ? SPR_G2_MULTIPLAYER_DESYNC : SPR_G2_MULTIPLAYER_SYNC);
gfx_draw_sprite(dpi, imgId, screenPos + ScreenCoordsXY{ 3, 11 }, 0);
gfx_draw_sprite(dpi, ImageId(imgId), screenPos + ScreenCoordsXY{ 3, 11 });
// Draw number of players.
auto ft = Formatter();

View File

@ -490,7 +490,7 @@ 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, ImageId(SPR_TEMP, NOT_TRANSLUCENT(w->colours[0])), { 0, 0 });
}
// Price

View File

@ -532,7 +532,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, 0);
gfx_draw_sprite(dpi, ImageId(SPR_TEMP), trackPreview);
screenPos.y = w->windowPos.y + widget->bottom - 12;

View File

@ -189,10 +189,10 @@ void intro_draw(rct_drawpixelinfo* dpi)
BORDER_COLOUR_PUBLISHER);
// Draw Infogrames logo
gfx_draw_sprite(dpi, SPR_INTRO_INFOGRAMES_00, { (screenWidth / 2) - 320 + 69, _introStateCounter + 69 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_INFOGRAMES_10, { (screenWidth / 2) - 320 + 319, _introStateCounter + 69 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_INFOGRAMES_01, { (screenWidth / 2) - 320 + 69, _introStateCounter + 319 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_INFOGRAMES_11, { (screenWidth / 2) - 320 + 319, _introStateCounter + 319 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_00), { (screenWidth / 2) - 320 + 69, _introStateCounter + 69 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_10), { (screenWidth / 2) - 320 + 319, _introStateCounter + 69 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_01), { (screenWidth / 2) - 320 + 69, _introStateCounter + 319 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_11), { (screenWidth / 2) - 320 + 319, _introStateCounter + 319 });
break;
case IntroState::DeveloperBegin:
gfx_clear(dpi, BACKROUND_COLOUR_DARK);
@ -202,8 +202,8 @@ void intro_draw(rct_drawpixelinfo* dpi)
gfx_clear(dpi, BACKROUND_COLOUR_DARK);
// Draw Chris Sawyer logo
gfx_draw_sprite(dpi, SPR_INTRO_CHRIS_SAWYER_00, { (screenWidth / 2) - 320 + 70, _introStateCounter }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_CHRIS_SAWYER_10, { (screenWidth / 2) - 320 + 320, _introStateCounter }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_00), { (screenWidth / 2) - 320 + 70, _introStateCounter });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_10), { (screenWidth / 2) - 320 + 320, _introStateCounter });
break;
case IntroState::LogoFadeIn:
if (_introStateCounter <= 0xFF00)
@ -292,10 +292,10 @@ static void screen_intro_draw_logo(rct_drawpixelinfo* dpi)
drawing_engine_invalidate_image(SPR_INTRO_LOGO_21);
gfx_clear(dpi, BACKROUND_COLOUR_LOGO);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_00, { imageX + 0, 0 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_10, { imageX + 220, 0 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_20, { imageX + 440, 0 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_01, { imageX + 0, 240 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_11, { imageX + 220, 240 }, 0);
gfx_draw_sprite(dpi, SPR_INTRO_LOGO_21, { imageX + 440, 240 }, 0);
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_00), { imageX + 0, 0 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_10), { imageX + 220, 0 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_20), { imageX + 440, 0 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_01), { imageX + 0, 240 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_11), { imageX + 220, 240 });
gfx_draw_sprite(dpi, ImageId(SPR_INTRO_LOGO_21), { imageX + 440, 240 });
}

View File

@ -719,6 +719,7 @@ 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, ImageId image_id, const ScreenCoordsXY& coords);
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);

View File

@ -245,6 +245,11 @@ void gfx_draw_dashed_line(
}
}
void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, ImageId image_id, const ScreenCoordsXY& coords)
{
gfx_draw_sprite(dpi, image_id.ToUInt32(), coords, image_id.GetTertiary());
}
void FASTCALL gfx_draw_sprite(rct_drawpixelinfo* dpi, int32_t image, const ScreenCoordsXY& coords, uint32_t tertiary_colour)
{
auto drawingEngine = dpi->DrawingEngine;