Make GfxDrawSprite() take reference

This commit is contained in:
Gymnasiast 2023-04-03 20:38:28 +02:00 committed by duncanspumpkin
parent 437329bb13
commit 9c2d5b9fef
64 changed files with 213 additions and 213 deletions

View File

@ -144,7 +144,7 @@ static void WidgetFrameDraw(DrawPixelInfo* dpi, WindowBase& w, WidgetIndex widge
// Draw the resize sprite at the bottom right corner
leftTop = w.windowPos + ScreenCoordsXY{ widget.right - 18, widget.bottom - 18 };
GfxDrawSprite(dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
GfxDrawSprite(*dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
}
/**
@ -175,7 +175,7 @@ static void WidgetResizeDraw(DrawPixelInfo* dpi, WindowBase& w, WidgetIndex widg
// Draw the resize sprite at the bottom right corner
leftTop = w.windowPos + ScreenCoordsXY{ widget.right - 18, widget.bottom - 18 };
GfxDrawSprite(dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
GfxDrawSprite(*dpi, ImageId(SPR_RESIZE, colour & 0x7F), leftTop);
}
/**
@ -256,7 +256,7 @@ static void WidgetTabDraw(DrawPixelInfo* dpi, WindowBase& w, WidgetIndex widgetI
auto image = widget.image.WithIndex(newIndex).WithPrimary(colour);
// Draw disabled image
GfxDrawSprite(dpi, image, leftTop);
GfxDrawSprite(*dpi, image, leftTop);
}
/**
@ -844,7 +844,7 @@ static void WidgetDrawImage(DrawPixelInfo* dpi, WindowBase& w, WidgetIndex widge
else
image = image.WithPrimary(colour);
GfxDrawSprite(dpi, image, screenCoords);
GfxDrawSprite(*dpi, image, screenCoords);
}
}

View File

@ -439,7 +439,7 @@ namespace OpenRCT2::Scripting
std::memset(dpi.bits, 0, bufferSize);
// Draw the original image if we are creating a new one
GfxDrawSprite(&dpi, ImageId(id), { 0, 0 });
GfxDrawSprite(dpi, ImageId(id), { 0, 0 });
}
else
{

View File

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

View File

@ -205,7 +205,7 @@ namespace OpenRCT2::Scripting
}
}
GfxDrawSprite(&_dpi, img.WithTertiary(_tertiaryColour.value_or(0)), { x, y });
GfxDrawSprite(_dpi, img.WithTertiary(_tertiaryColour.value_or(0)), { x, y });
}
void line(int32_t x1, int32_t y1, int32_t x2, int32_t y2)

View File

@ -201,7 +201,7 @@ private:
// Draw logo on placeholder widget
ScreenCoordsXY logoCoords = windowPos
+ ScreenCoordsXY(widgets[WIDX_OPENRCT2_LOGO].left, widgets[WIDX_OPENRCT2_LOGO].top);
GfxDrawSprite(&dpi, ImageId(SPR_G2_LOGO), logoCoords);
GfxDrawSprite(dpi, ImageId(SPR_G2_LOGO), logoCoords);
// Version info
utf8 buffer[256];
utf8* ch = buffer;
@ -255,7 +255,7 @@ private:
DrawTextBasic(dpi, screenCoords, STR_LICENSED_TO_INFOGRAMES_INTERACTIVE_INC, {}, { TextAlignment::CENTRE });
// Images
GfxDrawSprite(&dpi, ImageId(SPR_CREDITS_CHRIS_SAWYER_SMALL), { windowPos.x + 92, yPage + 24 });
GfxDrawSprite(dpi, ImageId(SPR_CREDITS_CHRIS_SAWYER_SMALL), { windowPos.x + 92, yPage + 24 });
// Licence
}

View File

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

View File

@ -187,7 +187,7 @@ public:
: ImageId::FromUInt32(static_cast<uint32_t>(gDropdownItems[i].Args));
if (item == Dropdown::FormatColourPicker && highlightedIndex == i)
image = image.WithIndexOffset(1);
GfxDrawSprite(&dpi, image, screenCoords);
GfxDrawSprite(dpi, image, screenCoords);
}
else
{

View File

@ -295,7 +295,7 @@ private:
GfxFillRectInset(&dpi, { topLeft, bottomRight }, colours[1], INSET_RECT_F_30);
GfxDrawSprite(
&dpi, ImageId(SPR_PREVIOUS),
dpi, ImageId(SPR_PREVIOUS),
windowPos + ScreenCoordsXY{ widgets[WIDX_PREVIOUS_IMAGE].left + 6, widgets[WIDX_PREVIOUS_IMAGE].top + 6 });
colour_t textColour = NOT_TRANSLUCENT(colours[1]);
@ -332,7 +332,7 @@ private:
GfxFillRectInset(&dpi, { topLeft, bottomRight }, colours[1], INSET_RECT_F_30);
GfxDrawSprite(
&dpi, ImageId(SPR_NEXT),
dpi, ImageId(SPR_NEXT),
windowPos + ScreenCoordsXY{ widgets[WIDX_NEXT_IMAGE].right - 29, widgets[WIDX_NEXT_IMAGE].top + 6 });
colour_t textColour = NOT_TRANSLUCENT(colours[1]);

View File

@ -352,7 +352,7 @@ public:
// Tab image
auto screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top };
GfxDrawSprite(&dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0 + (frame_no / 2) % 8), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0 + (frame_no / 2) % 8), screenPos);
// Pre-researched items label
screenPos = windowPos

View File

@ -968,7 +968,7 @@ public:
{
auto image = ImageId(ObjectSelectionPages[i].Image);
auto screenPos = windowPos + ScreenCoordsXY{ widget.left, widget.top };
GfxDrawSprite(&dpi, image, screenPos);
GfxDrawSprite(dpi, image, screenPos);
}
}
@ -998,7 +998,7 @@ public:
spriteIndex += (i == 4 ? ThrillRidesTabAnimationSequence[frame] : frame);
auto screenPos = windowPos + ScreenCoordsXY{ widget.left, widget.top };
GfxDrawSprite(&dpi, ImageId(spriteIndex, colours[1]), screenPos);
GfxDrawSprite(dpi, ImageId(spriteIndex, colours[1]), screenPos);
}
}

View File

@ -344,7 +344,7 @@ private:
if (page == WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_MAIN)
spriteIndex += (frame_no / 4) % 16;
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
GfxDrawSprite(*dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 2
if (!IsWidgetDisabled(WIDX_TAB_2))
@ -354,7 +354,7 @@ private:
if (page == WINDOW_EDITOR_OBJECTIVE_OPTIONS_PAGE_RIDES)
spriteIndex += (frame_no / 4) % 16;
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
GfxDrawSprite(*dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
}
}

View File

@ -333,7 +333,7 @@ private:
if (page == WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_FINANCIAL)
spriteIndex += (frame_no / 2) % 8;
GfxDrawSprite(&dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 2
widget = &widgets[WIDX_TAB_2];
@ -341,12 +341,12 @@ private:
if (page == WINDOW_EDITOR_SCENARIO_OPTIONS_PAGE_GUESTS)
spriteIndex += (frame_no / 4) % 8;
GfxDrawSprite(&dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
// Tab 3
widget = &widgets[WIDX_TAB_3];
spriteIndex = SPR_TAB_PARK;
GfxDrawSprite(&dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget->left, widget->top });
}
void SetPage(int32_t newPage)

View File

@ -1014,7 +1014,7 @@ public:
}
GfxDrawSprite(
&dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widgets[widgetIndex].left, widgets[widgetIndex].top });
dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widgets[widgetIndex].left, widgets[widgetIndex].top });
}
}

View File

@ -482,7 +482,7 @@ public:
screenCoords = this->windowPos
+ ScreenCoordsXY{ window_footpath_widgets[WIDX_CONSTRUCT].midX(),
window_footpath_widgets[WIDX_CONSTRUCT].bottom - 60 };
GfxDrawSprite(&dpi, ImageId(image), screenCoords);
GfxDrawSprite(dpi, ImageId(image), screenCoords);
}
// Draw build this... label
@ -623,7 +623,7 @@ private:
void WindowFootpathDrawDropdownButton(DrawPixelInfo* dpi, WidgetIndex widgetIndex, ImageIndex image)
{
const auto& widget = widgets[widgetIndex];
GfxDrawSprite(dpi, ImageId(image), { windowPos.x + widget.left, windowPos.y + widget.top });
GfxDrawSprite(*dpi, ImageId(image), { windowPos.x + widget.left, windowPos.y + widget.top });
}
/**

View File

@ -466,8 +466,8 @@ static void WindowGameBottomToolbarDrawParkRating(
}
// Draw thumbs on the sides
GfxDrawSprite(dpi, ImageId(SPR_RATING_LOW), coords - ScreenCoordsXY{ 14, 0 });
GfxDrawSprite(dpi, ImageId(SPR_RATING_HIGH), coords + ScreenCoordsXY{ 114, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_RATING_LOW), coords - ScreenCoordsXY{ 14, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_RATING_HIGH), coords + ScreenCoordsXY{ 114, 0 });
}
static void WindowGameBottomToolbarDrawRightPanel(DrawPixelInfo* dpi, WindowBase* w)
@ -525,7 +525,7 @@ static void WindowGameBottomToolbarDrawRightPanel(DrawPixelInfo* dpi, WindowBase
// Current weather
auto currentWeatherSpriteId = ClimateGetWeatherSpriteId(gClimateCurrent);
GfxDrawSprite(dpi, ImageId(currentWeatherSpriteId), screenCoords);
GfxDrawSprite(*dpi, ImageId(currentWeatherSpriteId), screenCoords);
// Next weather
auto nextWeatherSpriteId = ClimateGetWeatherSpriteId(gClimateNext);
@ -533,8 +533,8 @@ static void WindowGameBottomToolbarDrawRightPanel(DrawPixelInfo* dpi, WindowBase
{
if (gClimateUpdateTimer < 960)
{
GfxDrawSprite(dpi, ImageId(SPR_NEXT_WEATHER), screenCoords + ScreenCoordsXY{ 27, 5 });
GfxDrawSprite(dpi, ImageId(nextWeatherSpriteId), screenCoords + ScreenCoordsXY{ 40, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_NEXT_WEATHER), screenCoords + ScreenCoordsXY{ 27, 5 });
GfxDrawSprite(*dpi, ImageId(nextWeatherSpriteId), screenCoords + ScreenCoordsXY{ 40, 0 });
}
}
}
@ -571,7 +571,7 @@ static void WindowGameBottomToolbarDrawNewsItem(DrawPixelInfo* dpi, WindowBase*
switch (newsItem->Type)
{
case News::ItemType::Ride:
GfxDrawSprite(dpi, ImageId(SPR_RIDE), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_RIDE), screenCoords);
break;
case News::ItemType::PeepOnRide:
case News::ItemType::Peep:
@ -601,41 +601,41 @@ static void WindowGameBottomToolbarDrawNewsItem(DrawPixelInfo* dpi, WindowBase*
image_id_base++;
auto image_id = ImageId(image_id_base, peep->TshirtColour, peep->TrousersColour);
GfxDrawSprite(&cliped_dpi, image_id, clipCoords);
GfxDrawSprite(cliped_dpi, image_id, clipCoords);
auto* guest = peep->As<Guest>();
if (guest != nullptr)
{
if (image_id_base >= 0x2A1D && image_id_base < 0x2A3D)
{
GfxDrawSprite(&cliped_dpi, ImageId(image_id_base + 32, guest->BalloonColour), clipCoords);
GfxDrawSprite(cliped_dpi, ImageId(image_id_base + 32, guest->BalloonColour), clipCoords);
}
else if (image_id_base >= 0x2BBD && image_id_base < 0x2BDD)
{
GfxDrawSprite(&cliped_dpi, ImageId(image_id_base + 32, guest->UmbrellaColour), clipCoords);
GfxDrawSprite(cliped_dpi, ImageId(image_id_base + 32, guest->UmbrellaColour), clipCoords);
}
else if (image_id_base >= 0x29DD && image_id_base < 0x29FD)
{
GfxDrawSprite(&cliped_dpi, ImageId(image_id_base + 32, guest->HatColour), clipCoords);
GfxDrawSprite(cliped_dpi, ImageId(image_id_base + 32, guest->HatColour), clipCoords);
}
}
break;
}
case News::ItemType::Money:
case News::ItemType::Campaign:
GfxDrawSprite(dpi, ImageId(SPR_FINANCE), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_FINANCE), screenCoords);
break;
case News::ItemType::Research:
GfxDrawSprite(dpi, ImageId(newsItem->Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
GfxDrawSprite(*dpi, ImageId(newsItem->Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
break;
case News::ItemType::Peeps:
GfxDrawSprite(dpi, ImageId(SPR_GUESTS), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_GUESTS), screenCoords);
break;
case News::ItemType::Award:
GfxDrawSprite(dpi, ImageId(SPR_AWARD), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_AWARD), screenCoords);
break;
case News::ItemType::Graph:
GfxDrawSprite(dpi, ImageId(SPR_GRAPH), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_GRAPH), screenCoords);
break;
case News::ItemType::Null:
case News::ItemType::Blank:

View File

@ -552,7 +552,7 @@ private:
animationFrame += animationFrameOffset;
auto spriteId = ImageId(animationFrame, peep->TshirtColour, peep->TrousersColour);
GfxDrawSprite(&clipDpi, spriteId, screenCoords);
GfxDrawSprite(clipDpi, spriteId, screenCoords);
auto* guest = peep->As<Guest>();
if (guest != nullptr)
@ -560,19 +560,19 @@ private:
// If holding a balloon
if (animationFrame >= 0x2A1D && animationFrame < 0x2A3D)
{
GfxDrawSprite(&clipDpi, ImageId(animationFrame + 32, guest->BalloonColour), screenCoords);
GfxDrawSprite(clipDpi, ImageId(animationFrame + 32, guest->BalloonColour), screenCoords);
}
// If holding umbrella
if (animationFrame >= 0x2BBD && animationFrame < 0x2BDD)
{
GfxDrawSprite(&clipDpi, ImageId(animationFrame + 32, guest->UmbrellaColour), screenCoords);
GfxDrawSprite(clipDpi, ImageId(animationFrame + 32, guest->UmbrellaColour), screenCoords);
}
// If wearing hat
if (animationFrame >= 0x29DD && animationFrame < 0x29FD)
{
GfxDrawSprite(&clipDpi, ImageId(animationFrame + 32, guest->HatColour), screenCoords);
GfxDrawSprite(clipDpi, ImageId(animationFrame + 32, guest->HatColour), screenCoords);
}
}
}
@ -755,7 +755,7 @@ private:
WindowDrawViewport(&dpi, *this);
if (viewport->flags & VIEWPORT_FLAG_SOUND_ON)
{
GfxDrawSprite(&dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
GfxDrawSprite(dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
}
}
@ -1016,7 +1016,7 @@ private:
break;
}
}
GfxDrawSprite(&dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
}
void OnUpdateStats()
@ -1219,7 +1219,7 @@ private:
imageId += (frame_no / 4) & 0xF;
}
GfxDrawSprite(&dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
}
void OnUpdateRides()
@ -1394,7 +1394,7 @@ private:
imageId += (frame_no / 2) & 0x7;
}
GfxDrawSprite(&dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
}
void OnUpdateFinance()
@ -1532,7 +1532,7 @@ private:
imageId += (frame_no / 2) & 0x7;
}
GfxDrawSprite(&dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
}
void OnUpdateThoughts()
@ -1607,7 +1607,7 @@ private:
const auto& widget = widgets[WIDX_TAB_6];
auto screenCoords = windowPos + ScreenCoordsXY{ widget.left, widget.top };
GfxDrawSprite(&dpi, ImageId(SPR_TAB_GUEST_INVENTORY), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_TAB_GUEST_INVENTORY), screenCoords);
}
void OnUpdateInventory()
@ -1802,7 +1802,7 @@ private:
imageId += (frame_no / 2) & 0x3;
}
GfxDrawSprite(&dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
}
void OnUpdateDebug()

View File

@ -645,13 +645,13 @@ private:
auto i = (_selectedTab == TabId::Individual ? _tabAnimationIndex & ~3 : 0);
i += GetPeepAnimation(PeepSpriteType::Normal).base_image + 1;
GfxDrawSprite(
&dpi, ImageId(i, COLOUR_GREY, COLOUR_DARK_OLIVE_GREEN),
dpi, ImageId(i, COLOUR_GREY, COLOUR_DARK_OLIVE_GREEN),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].midX(), widgets[WIDX_TAB_1].bottom - 6 });
// Tab 2 image
i = (_selectedTab == TabId::Summarised ? _tabAnimationIndex / 4 : 0);
GfxDrawSprite(
&dpi, ImageId(SPR_TAB_GUESTS_0 + i),
dpi, ImageId(SPR_TAB_GUESTS_0 + i),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
}
@ -687,11 +687,11 @@ private:
{
case GuestViewType::Actions:
// Guest face
GfxDrawSprite(&dpi, ImageId(GetPeepFaceSpriteSmall(peep)), { 118, y + 1 });
GfxDrawSprite(dpi, ImageId(GetPeepFaceSpriteSmall(peep)), { 118, y + 1 });
// Tracking icon
if (peep->PeepFlags & PEEP_FLAGS_TRACKING)
GfxDrawSprite(&dpi, ImageId(STR_ENTER_SELECTION_SIZE), { 112, y + 1 });
GfxDrawSprite(dpi, ImageId(STR_ENTER_SELECTION_SIZE), { 112, y + 1 });
// Action
ft = Formatter();
@ -747,7 +747,7 @@ private:
for (uint32_t j = 0; j < std::size(group.Faces) && j < group.NumGuests; j++)
{
GfxDrawSprite(
&dpi, ImageId(group.Faces[j] + SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY),
dpi, ImageId(group.Faces[j] + SPR_PEEP_SMALL_FACE_VERY_VERY_UNHAPPY),
{ static_cast<int32_t>(j) * 8, y + 12 });
}

View File

@ -163,7 +163,7 @@ public:
g1temp.flags = G1_FLAG_HAS_TRANSPARENCY;
GfxSetG1Element(SPR_TEMP, &g1temp);
DrawingEngineInvalidateImage(SPR_TEMP);
GfxDrawSprite(&dpi, ImageId(SPR_TEMP), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_TEMP), screenPos);
screenPos = windowPos + ScreenCoordsXY{ widget->midX(), widget->bottom - 12 };

View File

@ -252,7 +252,7 @@ public:
{
screenCoords = { windowPos.x + previewWidget->left, windowPos.y + previewWidget->top };
auto sprite = ImageId(gLandToolSize % 2 == 0 ? SPR_G2_MOUNTAIN_TOOL_EVEN : SPR_G2_MOUNTAIN_TOOL_ODD);
GfxDrawSprite(&dpi, sprite, screenCoords);
GfxDrawSprite(dpi, sprite, screenCoords);
WidgetDraw(&dpi, *this, WIDX_DECREMENT);
WidgetDraw(&dpi, *this, WIDX_INCREMENT);
}
@ -334,7 +334,7 @@ private:
void DrawDropdownButton(DrawPixelInfo& dpi, WidgetIndex widgetIndex, ImageId image)
{
const auto& widget = widgets[widgetIndex];
GfxDrawSprite(&dpi, image, { windowPos.x + widget.left, windowPos.y + widget.top });
GfxDrawSprite(dpi, image, { windowPos.x + widget.left, windowPos.y + widget.top });
}
};

View File

@ -715,7 +715,7 @@ public:
g1temp.y_offset = -8;
GfxSetG1Element(SPR_TEMP, &g1temp);
DrawingEngineInvalidateImage(SPR_TEMP);
GfxDrawSprite(&dpi, ImageId(SPR_TEMP), { 0, 0 });
GfxDrawSprite(dpi, ImageId(SPR_TEMP), { 0, 0 });
if (selected_tab == PAGE_PEEPS)
{
@ -875,7 +875,7 @@ public:
screenCoords = windowPos
+ ScreenCoordsXY{ widgets[WIDX_PEOPLE_STARTING_POSITION].left + 12,
widgets[WIDX_PEOPLE_STARTING_POSITION].top + 18 };
GfxDrawSprite(&dpi, ImageId(SPR_6410, COLOUR_BRIGHT_RED, COLOUR_LIGHT_BROWN), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_6410, COLOUR_BRIGHT_RED, COLOUR_LIGHT_BROWN), screenCoords);
}
if (!(gScreenFlags & SCREEN_FLAGS_SCENARIO_EDITOR) && !gCheatsSandboxMode)
@ -1283,7 +1283,7 @@ private:
guestTabImage += list_information_type / 4;
GfxDrawSprite(
dpi, ImageId(guestTabImage),
*dpi, ImageId(guestTabImage),
windowPos + ScreenCoordsXY{ widgets[WIDX_PEOPLE_TAB].left, widgets[WIDX_PEOPLE_TAB].top });
// Ride/stall tab image (animated)
@ -1292,7 +1292,7 @@ private:
rideTabImage += list_information_type / 4;
GfxDrawSprite(
dpi, ImageId(rideTabImage),
*dpi, ImageId(rideTabImage),
windowPos + ScreenCoordsXY{ widgets[WIDX_RIDES_TAB].left, widgets[WIDX_RIDES_TAB].top });
}

View File

@ -386,7 +386,7 @@ private:
}
GfxDrawSprite(
&dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widgets[widgetIndex].left, widgets[widgetIndex].top });
dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widgets[widgetIndex].left, widgets[widgetIndex].top });
}
}
@ -659,7 +659,7 @@ private:
}
else
{
GfxDrawSprite(&dpi, image, pos);
GfxDrawSprite(dpi, image, pos);
}
}

View File

@ -1016,7 +1016,7 @@ static void WindowMultiplayerDrawTabImage(WindowBase* w, DrawPixelInfo* dpi, int
}
GfxDrawSprite(
dpi, ImageId(spriteIndex),
*dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -986,7 +986,7 @@ private:
spriteIndex += tab == THRILL_TAB ? ThrillRidesTabAnimationSequence[frame] : frame;
GfxDrawSprite(
&dpi, ImageId(spriteIndex, colours[1]),
dpi, ImageId(spriteIndex, colours[1]),
windowPos + ScreenCoordsXY{ widgets[widgetIndex].left, widgets[widgetIndex].top });
}
}

View File

@ -226,7 +226,7 @@ public:
switch (newsItem.Type)
{
case News::ItemType::Ride:
GfxDrawSprite(&dpi, ImageId(SPR_RIDE), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_RIDE), screenCoords);
break;
case News::ItemType::Peep:
case News::ItemType::PeepOnRide:
@ -260,24 +260,24 @@ public:
ImageIndex imageId = GetPeepAnimation(spriteType).base_image + 1;
auto image = ImageId(imageId, peep->TshirtColour, peep->TrousersColour);
GfxDrawSprite(&cliped_dpi, image, clipCoords);
GfxDrawSprite(cliped_dpi, image, clipCoords);
break;
}
case News::ItemType::Money:
case News::ItemType::Campaign:
GfxDrawSprite(&dpi, ImageId(SPR_FINANCE), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_FINANCE), screenCoords);
break;
case News::ItemType::Research:
GfxDrawSprite(&dpi, ImageId(newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
GfxDrawSprite(dpi, ImageId(newsItem.Assoc < 0x10000 ? SPR_NEW_SCENERY : SPR_NEW_RIDE), screenCoords);
break;
case News::ItemType::Peeps:
GfxDrawSprite(&dpi, ImageId(SPR_GUESTS), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_GUESTS), screenCoords);
break;
case News::ItemType::Award:
GfxDrawSprite(&dpi, ImageId(SPR_AWARD), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_AWARD), screenCoords);
break;
case News::ItemType::Graph:
GfxDrawSprite(&dpi, ImageId(SPR_GRAPH), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_GRAPH), screenCoords);
break;
case News::ItemType::Null:
case News::ItemType::Blank:
@ -299,7 +299,7 @@ public:
press = 0x20;
}
GfxFillRectInset(&dpi, { screenCoords, screenCoords + ScreenCoordsXY{ 23, 23 } }, colours[2], press);
GfxDrawSprite(&dpi, ImageId(SPR_LOCATE), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_LOCATE), screenCoords);
}
y += itemHeight;

View File

@ -242,7 +242,7 @@ private:
}
const auto& widget = widgets[widgetIndex];
GfxDrawSprite(dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget.left, widget.top });
GfxDrawSprite(*dpi, ImageId(spriteIndex), windowPos + ScreenCoordsXY{ widget.left, widget.top });
}
}

View File

@ -2095,7 +2095,7 @@ private:
}
// Draw normal, enabled sprite.
GfxDrawSprite(dpi, ImageId(spriteIndex), screenCoords);
GfxDrawSprite(*dpi, ImageId(spriteIndex), screenCoords);
}
else
{

View File

@ -595,7 +595,7 @@ private:
{
WindowDrawViewport(&dpi, *this);
if (viewport->flags & VIEWPORT_FLAG_SOUND_ON)
GfxDrawSprite(&dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
GfxDrawSprite(dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
}
// Draw park closed / open label
@ -1159,7 +1159,7 @@ private:
for (const auto& award : GetAwards())
{
GfxDrawSprite(&dpi, ImageId(_parkAwards[EnumValue(award.Type)].sprite), screenCoords);
GfxDrawSprite(dpi, ImageId(_parkAwards[EnumValue(award.Type)].sprite), screenCoords);
DrawTextWrapped(dpi, screenCoords + ScreenCoordsXY{ 34, 6 }, 180, _parkAwards[EnumValue(award.Type)].text);
screenCoords.y += 32;
@ -1217,7 +1217,7 @@ private:
if (!WidgetIsDisabled(*this, WIDX_TAB_1))
{
GfxDrawSprite(
&dpi, ImageId(SPR_TAB_PARK_ENTRANCE),
dpi, ImageId(SPR_TAB_PARK_ENTRANCE),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top });
}
@ -1227,12 +1227,12 @@ private:
ImageId spriteIdx(SPR_TAB_GRAPH_0);
if (page == WINDOW_PARK_PAGE_RATING)
spriteIdx = spriteIdx.WithIndexOffset((frame_no / 8) % 8);
GfxDrawSprite(&dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
GfxDrawSprite(dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
GfxDrawSprite(
&dpi, ImageId(SPR_RATING_HIGH),
dpi, ImageId(SPR_RATING_HIGH),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left + 7, widgets[WIDX_TAB_2].top + 1 });
GfxDrawSprite(
&dpi, ImageId(SPR_RATING_LOW),
dpi, ImageId(SPR_RATING_LOW),
windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left + 16, widgets[WIDX_TAB_2].top + 12 });
}
@ -1242,14 +1242,14 @@ private:
ImageId spriteIdx(SPR_TAB_GRAPH_0);
if (page == WINDOW_PARK_PAGE_GUESTS)
spriteIdx = spriteIdx.WithIndexOffset((frame_no / 8) % 8);
GfxDrawSprite(&dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top });
GfxDrawSprite(dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top });
ImageId peepImage(GetPeepAnimation(PeepSpriteType::Normal).base_image + 1, COLOUR_BRIGHT_RED, COLOUR_TEAL);
if (page == WINDOW_PARK_PAGE_GUESTS)
peepImage = peepImage.WithIndexOffset(_peepAnimationFrame & 0xFFFFFFFC);
GfxDrawSprite(
&dpi, peepImage, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].midX(), widgets[WIDX_TAB_3].bottom - 9 });
dpi, peepImage, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].midX(), widgets[WIDX_TAB_3].bottom - 9 });
}
// Price tab
@ -1258,7 +1258,7 @@ private:
ImageId spriteIdx(SPR_TAB_ADMISSION_0);
if (page == WINDOW_PARK_PAGE_PRICE)
spriteIdx = spriteIdx.WithIndexOffset((frame_no / 2) % 8);
GfxDrawSprite(&dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_4].left, widgets[WIDX_TAB_4].top });
GfxDrawSprite(dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_4].left, widgets[WIDX_TAB_4].top });
}
// Statistics tab
@ -1267,7 +1267,7 @@ private:
ImageId spriteIdx(SPR_TAB_STATS_0);
if (page == WINDOW_PARK_PAGE_STATS)
spriteIdx = spriteIdx.WithIndexOffset((frame_no / 4) % 7);
GfxDrawSprite(&dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_5].left, widgets[WIDX_TAB_5].top });
GfxDrawSprite(dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_5].left, widgets[WIDX_TAB_5].top });
}
// Objective tab
@ -1276,14 +1276,14 @@ private:
ImageId spriteIdx(SPR_TAB_OBJECTIVE_0);
if (page == WINDOW_PARK_PAGE_OBJECTIVE)
spriteIdx = spriteIdx.WithIndexOffset((frame_no / 4) % 16);
GfxDrawSprite(&dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_6].left, widgets[WIDX_TAB_6].top });
GfxDrawSprite(dpi, spriteIdx, windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_6].left, widgets[WIDX_TAB_6].top });
}
// Awards tab
if (!WidgetIsDisabled(*this, WIDX_TAB_7))
{
GfxDrawSprite(
&dpi, ImageId(SPR_TAB_AWARDS), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_7].left, widgets[WIDX_TAB_7].top });
dpi, ImageId(SPR_TAB_AWARDS), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_7].left, widgets[WIDX_TAB_7].top });
}
}
};

View File

@ -267,7 +267,7 @@ private:
{
widget = &this->widgets[WIDX_TAB_1];
auto screenCoords = windowPos + ScreenCoordsXY{ widget->left, widget->top };
GfxDrawSprite(dpi, ImageId(SPR_PEEP_LARGE_FACE_NORMAL), screenCoords);
GfxDrawSprite(*dpi, ImageId(SPR_PEEP_LARGE_FACE_NORMAL), screenCoords);
}
// Tab 2
@ -282,7 +282,7 @@ private:
imageId += (frame_no / 2) & 7;
}
GfxDrawSprite(dpi, ImageId(imageId), screenCoords);
GfxDrawSprite(*dpi, ImageId(imageId), screenCoords);
}
}

View File

@ -608,7 +608,7 @@ static void WindowResearchDrawTabImage(DrawPixelInfo* dpi, WindowBase* w, int32_
}
GfxDrawSprite(
dpi, ImageId(spriteIndex),
*dpi, ImageId(spriteIndex),
w->windowPos + ScreenCoordsXY{ w->widgets[widgetIndex].left, w->widgets[widgetIndex].top });
}
}

View File

@ -875,7 +875,7 @@ static void WindowRideDrawTabImage(DrawPixelInfo* dpi, WindowBase* w, int32_t pa
}
const auto& widget = w->widgets[widgetIndex];
GfxDrawSprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget.left, widget.top });
GfxDrawSprite(*dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget.left, widget.top });
}
}
@ -912,7 +912,7 @@ static void WindowRideDrawTabMain(DrawPixelInfo* dpi, WindowBase* w)
}
const auto& widget = w->widgets[widgetIndex];
GfxDrawSprite(dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget.left, widget.top });
GfxDrawSprite(*dpi, ImageId(spriteIndex), w->windowPos + ScreenCoordsXY{ widget.left, widget.top });
}
}
}
@ -984,7 +984,7 @@ static void WindowRideDrawTabVehicle(DrawPixelInfo* dpi, WindowBase* w)
imageIndex *= carEntry.base_num_frames;
imageIndex += carEntry.base_image_id;
auto imageId = ImageId(imageIndex, vehicleColour.Body, vehicleColour.Trim, vehicleColour.Tertiary);
GfxDrawSprite(&clipDPI, imageId, screenCoords);
GfxDrawSprite(clipDPI, imageId, screenCoords);
}
}
@ -1006,7 +1006,7 @@ static void WindowRideDrawTabCustomer(DrawPixelInfo* dpi, WindowBase* w)
spriteIndex += GetPeepAnimation(PeepSpriteType::Normal).base_image + 1;
GfxDrawSprite(
dpi, ImageId(spriteIndex, COLOUR_BRIGHT_RED, COLOUR_TEAL),
*dpi, ImageId(spriteIndex, COLOUR_BRIGHT_RED, COLOUR_TEAL),
w->windowPos + ScreenCoordsXY{ widget.midX(), widget.bottom - 6 });
}
}
@ -2592,7 +2592,7 @@ static void WindowRideMainPaint(WindowBase* w, DrawPixelInfo* dpi)
{
WindowDrawViewport(dpi, *w);
if (w->viewport->flags & VIEWPORT_FLAG_SOUND_ON)
GfxDrawSprite(dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
GfxDrawSprite(*dpi, ImageId(SPR_HEARING_VIEWPORT), w->windowPos + ScreenCoordsXY{ 2, 2 });
}
// View dropdown
@ -3038,7 +3038,7 @@ static void WindowRideVehicleScrollpaint(WindowBase* w, DrawPixelInfo* dpi, int3
VehicleDrawInfo* current = nextSpriteToDraw;
while (--current >= trainCarImages)
GfxDrawSprite(dpi, current->imageId, { current->x, current->y });
GfxDrawSprite(*dpi, current->imageId, { current->x, current->y });
startX += 36;
}
@ -4130,7 +4130,7 @@ static void WindowRideMaintenancePaint(WindowBase* w, DrawPixelInfo* dpi)
Widget* widget = &window_ride_maintenance_widgets[WIDX_LOCATE_MECHANIC];
auto screenCoords = w->windowPos + ScreenCoordsXY{ widget->left, widget->top };
auto image = ImageId(SPR_MECHANIC, COLOUR_BLACK, gStaffMechanicColour);
GfxDrawSprite(dpi, image, screenCoords);
GfxDrawSprite(*dpi, image, screenCoords);
// Inspection label
widget = &window_ride_maintenance_widgets[WIDX_INSPECTION_INTERVAL];
@ -4909,7 +4909,7 @@ static void WindowRideColourPaint(WindowBase* w, DrawPixelInfo* dpi)
const auto& rtd = ride->GetRideTypeDescriptor();
if (rtd.HasFlag(RIDE_TYPE_FLAG_IS_MAZE))
{
GfxDrawSprite(dpi, ImageId(MazeOptions[trackColour.supports].sprite), screenCoords);
GfxDrawSprite(*dpi, ImageId(MazeOptions[trackColour.supports].sprite), screenCoords);
}
else
{
@ -4917,14 +4917,14 @@ static void WindowRideColourPaint(WindowBase* w, DrawPixelInfo* dpi)
int32_t spriteIndex = typeDescriptor.ColourPreview.Track;
if (spriteIndex != 0)
{
GfxDrawSprite(dpi, ImageId(spriteIndex, trackColour.main, trackColour.additional), screenCoords);
GfxDrawSprite(*dpi, ImageId(spriteIndex, trackColour.main, trackColour.additional), screenCoords);
}
// Supports
spriteIndex = typeDescriptor.ColourPreview.Supports;
if (spriteIndex != 0)
{
GfxDrawSprite(dpi, ImageId(spriteIndex, trackColour.supports), screenCoords);
GfxDrawSprite(*dpi, ImageId(spriteIndex, trackColour.supports), screenCoords);
}
}
}
@ -4948,11 +4948,11 @@ static void WindowRideColourPaint(WindowBase* w, DrawPixelInfo* dpi)
}
}
GfxDrawSprite(dpi, ImageId(GetShopItemDescriptor(shopItem).Image, spriteColour), screenCoords);
GfxDrawSprite(*dpi, ImageId(GetShopItemDescriptor(shopItem).Image, spriteColour), screenCoords);
}
else
{
GfxDrawSprite(dpi, ImageId(GetShopItemDescriptor(shopItem).Image, ride->track_colour[0].main), screenCoords);
GfxDrawSprite(*dpi, ImageId(GetShopItemDescriptor(shopItem).Image, ride->track_colour[0].main), screenCoords);
}
}
@ -4974,16 +4974,16 @@ static void WindowRideColourPaint(WindowBase* w, DrawPixelInfo* dpi)
auto imageId = ImageId(stationObj->BaseImageId, trackColour.main, trackColour.additional);
// Back
GfxDrawSprite(&clippedDpi, imageId, { 34, 20 });
GfxDrawSprite(clippedDpi, imageId, { 34, 20 });
// Front
GfxDrawSprite(&clippedDpi, imageId.WithIndexOffset(4), { 34, 20 });
GfxDrawSprite(clippedDpi, imageId.WithIndexOffset(4), { 34, 20 });
// Glass
if (stationObj->Flags & STATION_OBJECT_FLAGS::IS_TRANSPARENT)
{
auto glassImageId = ImageId(stationObj->BaseImageId + 20).WithTransparency(trackColour.main);
GfxDrawSprite(&clippedDpi, glassImageId, { 34, 20 });
GfxDrawSprite(clippedDpi, glassImageId, { 34, 20 });
}
}
}
@ -5031,7 +5031,7 @@ static void WindowRideColourScrollpaint(WindowBase* w, DrawPixelInfo* dpi, int32
imageIndex *= carEntry.base_num_frames;
imageIndex += carEntry.base_image_id;
auto imageId = ImageId(imageIndex, vehicleColour.Body, vehicleColour.Trim, vehicleColour.Tertiary);
GfxDrawSprite(dpi, imageId, screenCoords);
GfxDrawSprite(*dpi, imageId, screenCoords);
}
#pragma endregion

View File

@ -748,21 +748,21 @@ private:
if (page == PAGE_RIDES)
sprite_idx += frame_no / 4;
GfxDrawSprite(
dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top });
*dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_1].left, widgets[WIDX_TAB_1].top });
// Shops and stalls tab
sprite_idx = SPR_TAB_SHOPS_AND_STALLS_0;
if (page == PAGE_SHOPS_AND_STALLS)
sprite_idx += frame_no / 4;
GfxDrawSprite(
dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
*dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_2].left, widgets[WIDX_TAB_2].top });
// Information kiosks and facilities tab
sprite_idx = SPR_TAB_KIOSKS_AND_FACILITIES_0;
if (page == PAGE_KIOSKS_AND_FACILITIES)
sprite_idx += (frame_no / 4) % 8;
GfxDrawSprite(
dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top });
*dpi, ImageId(sprite_idx), windowPos + ScreenCoordsXY{ widgets[WIDX_TAB_3].left, widgets[WIDX_TAB_3].top });
}
/**

View File

@ -474,7 +474,7 @@ public:
if (isCompleted)
{
// Draw completion tick
GfxDrawSprite(&dpi, ImageId(SPR_MENU_CHECKMARK), { widgets[WIDX_SCENARIOLIST].width() - 45, y + 1 });
GfxDrawSprite(dpi, ImageId(SPR_MENU_CHECKMARK), { widgets[WIDX_SCENARIOLIST].width() - 45, y + 1 });
// Draw completion score
u8string completedByName = "???";

View File

@ -1466,7 +1466,7 @@ private:
if (_tabEntries[tabIndex].IsAll())
{
auto imageId = ImageId(SPR_G2_INFINITY, FilterPaletteID::PaletteNull);
GfxDrawSprite(&dpi, imageId, offset + widgetCoordsXY + ScreenCoordsXY(2, 6));
GfxDrawSprite(dpi, imageId, offset + widgetCoordsXY + ScreenCoordsXY(2, 6));
}
}
}
@ -1477,8 +1477,8 @@ private:
{
auto bannerEntry = OpenRCT2::ObjectManager::GetObjectEntry<BannerSceneryEntry>(scenerySelection.EntryIndex);
auto imageId = ImageId(bannerEntry->image + gWindowSceneryRotation * 2, gWindowSceneryPrimaryColour);
GfxDrawSprite(&dpi, imageId, { 33, 40 });
GfxDrawSprite(&dpi, imageId.WithIndexOffset(1), { 33, 40 });
GfxDrawSprite(dpi, imageId, { 33, 40 });
GfxDrawSprite(dpi, imageId.WithIndexOffset(1), { 33, 40 });
}
else if (scenerySelection.SceneryType == SCENERY_TYPE_LARGE)
{
@ -1490,7 +1490,7 @@ private:
imageId = imageId.WithSecondary(gWindowScenerySecondaryColour);
if (sceneryEntry->flags & LARGE_SCENERY_FLAG_HAS_TERTIARY_COLOUR)
imageId = imageId.WithTertiary(gWindowSceneryTertiaryColour);
GfxDrawSprite(&dpi, imageId, { 33, 0 });
GfxDrawSprite(dpi, imageId, { 33, 0 });
}
else if (scenerySelection.SceneryType == SCENERY_TYPE_WALL)
{
@ -1504,10 +1504,10 @@ private:
{
imageId = imageId.WithSecondary(gWindowScenerySecondaryColour);
}
GfxDrawSprite(&dpi, imageId, { 47, spriteTop });
GfxDrawSprite(dpi, imageId, { 47, spriteTop });
auto glassImageId = ImageId(wallEntry->image + 6).WithTransparency(gWindowSceneryPrimaryColour);
GfxDrawSprite(&dpi, glassImageId, { 47, spriteTop });
GfxDrawSprite(dpi, glassImageId, { 47, spriteTop });
}
else
{
@ -1520,11 +1520,11 @@ private:
imageId = imageId.WithTertiary(gWindowSceneryTertiaryColour);
}
}
GfxDrawSprite(&dpi, imageId, { 47, spriteTop });
GfxDrawSprite(dpi, imageId, { 47, spriteTop });
if (wallEntry->flags & WALL_SCENERY_IS_DOOR)
{
GfxDrawSprite(&dpi, imageId.WithIndexOffset(1), { 47, spriteTop });
GfxDrawSprite(dpi, imageId.WithIndexOffset(1), { 47, spriteTop });
}
}
}
@ -1532,7 +1532,7 @@ private:
{
auto* pathBitEntry = OpenRCT2::ObjectManager::GetObjectEntry<PathBitEntry>(scenerySelection.EntryIndex);
auto imageId = ImageId(pathBitEntry->image);
GfxDrawSprite(&dpi, imageId, { 11, 16 });
GfxDrawSprite(dpi, imageId, { 11, 16 });
}
else
{
@ -1557,19 +1557,19 @@ private:
spriteTop -= 12;
}
GfxDrawSprite(&dpi, imageId, { 32, spriteTop });
GfxDrawSprite(dpi, imageId, { 32, spriteTop });
if (sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_HAS_GLASS))
{
imageId = ImageId(sceneryEntry->image + 4 + gWindowSceneryRotation)
.WithTransparency(gWindowSceneryPrimaryColour);
GfxDrawSprite(&dpi, imageId, { 32, spriteTop });
GfxDrawSprite(dpi, imageId, { 32, spriteTop });
}
if (sceneryEntry->HasFlag(SMALL_SCENERY_FLAG_ANIMATED_FG))
{
imageId = ImageId(sceneryEntry->image + 4 + gWindowSceneryRotation);
GfxDrawSprite(&dpi, imageId, { 32, spriteTop });
GfxDrawSprite(dpi, imageId, { 32, spriteTop });
}
}
}

View File

@ -406,14 +406,14 @@ public:
bool correctVersion = serverDetails.Version == NetworkGetVersion();
compatibilitySpriteId = correctVersion ? SPR_G2_RCT1_OPEN_BUTTON_2 : SPR_G2_RCT1_CLOSE_BUTTON_2;
}
GfxDrawSprite(&dpi, ImageId(compatibilitySpriteId), { right, screenCoords.y + 1 });
GfxDrawSprite(dpi, ImageId(compatibilitySpriteId), { right, screenCoords.y + 1 });
right -= 4;
// Draw lock icon
right -= 8;
if (serverDetails.RequiresPassword)
{
GfxDrawSprite(&dpi, ImageId(SPR_G2_LOCKED), { right, screenCoords.y + 4 });
GfxDrawSprite(dpi, ImageId(SPR_G2_LOCKED), { right, screenCoords.y + 4 });
}
right -= 6;

View File

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

View File

@ -522,7 +522,7 @@ private:
if (viewport->flags & VIEWPORT_FLAG_SOUND_ON)
{
GfxDrawSprite(dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
GfxDrawSprite(*dpi, ImageId(SPR_HEARING_VIEWPORT), windowPos + ScreenCoordsXY{ 2, 2 });
}
}
@ -580,7 +580,7 @@ private:
}
imageIndex += offset;
GfxDrawSprite(&clip_dpi, ImageId(imageIndex, staff->TshirtColour, staff->TrousersColour), screenCoords);
GfxDrawSprite(clip_dpi, ImageId(imageIndex, staff->TshirtColour, staff->TrousersColour), screenCoords);
}
void OverviewResize()
@ -1215,7 +1215,7 @@ private:
}
// Draw normal, enabled sprite.
GfxDrawSprite(dpi, ImageId(baseImageId), screenCoords);
GfxDrawSprite(*dpi, ImageId(baseImageId), screenCoords);
}
}

View File

@ -420,7 +420,7 @@ public:
// True if a patrol path is set for the worker
if (peep->HasPatrolArea())
{
GfxDrawSprite(&dpi, ImageId(SPR_STAFF_PATROL_PATH), { nameColumnSize + 5, y });
GfxDrawSprite(dpi, ImageId(SPR_STAFF_PATROL_PATH), { nameColumnSize + 5, y });
}
auto staffOrderIcon_x = nameColumnSize + 20;
@ -433,7 +433,7 @@ public:
{
if (staffOrders & 1)
{
GfxDrawSprite(&dpi, ImageId(staffOrderSprite), { staffOrderIcon_x, y });
GfxDrawSprite(dpi, ImageId(staffOrderSprite), { staffOrderIcon_x, y });
}
staffOrders = staffOrders >> 1;
staffOrderIcon_x += 9;
@ -443,7 +443,7 @@ public:
}
else
{
GfxDrawSprite(&dpi, ImageId(GetEntertainerCostumeSprite(peep->SpriteType)), { staffOrderIcon_x, y });
GfxDrawSprite(dpi, ImageId(GetEntertainerCostumeSprite(peep->SpriteType)), { staffOrderIcon_x, y });
}
}
@ -599,7 +599,7 @@ private:
auto imageId = (_selectedTab == tabIndex ? (_tabAnimationIndex & ~3) : 0);
imageId += GetPeepAnimation(type).base_image + 1;
GfxDrawSprite(
&dpi, ImageId(imageId, colour), windowPos + ScreenCoordsXY{ (widget.left + widget.right) / 2, widget.bottom - 6 });
dpi, ImageId(imageId, colour), windowPos + ScreenCoordsXY{ (widget.left + widget.right) / 2, widget.bottom - 6 });
}
void DrawTabImage(DrawPixelInfo& dpi, int32_t tabIndex, PeepSpriteType type) const
@ -613,7 +613,7 @@ private:
{
auto imageId = (_selectedTab == 3 ? (_tabAnimationIndex & ~3) : 0);
imageId += GetPeepAnimation(type).base_image + 1;
GfxDrawSprite(&clippedDpi, ImageId(imageId), { 15, 23 });
GfxDrawSprite(clippedDpi, ImageId(imageId), { 15, 23 });
}
}

View File

@ -815,7 +815,7 @@ public:
const bool isPressed = (i == _colour_index_1 && j == _colour_index_2);
auto image = ImageId(
isPressed ? SPR_PALETTE_BTN_PRESSED : SPR_PALETTE_BTN, colour & ~COLOUR_FLAG_TRANSLUCENT);
GfxDrawSprite(&dpi, image, { _button_offset_x + 12 * j, screenCoords.y + _button_offset_y });
GfxDrawSprite(dpi, image, { _button_offset_x + 12 * j, screenCoords.y + _button_offset_y });
ScreenCoordsXY topLeft{ _button_offset_x + 12 * j, screenCoords.y + _check_offset_y };
ScreenCoordsXY bottomRight{ _button_offset_x + 12 * j + 9, screenCoords.y + _check_offset_y + 10 };
@ -876,7 +876,7 @@ public:
if (_selected_tab == i)
sprite_idx += frame_no / window_themes_tab_animation_divisor[_selected_tab];
GfxDrawSprite(
dpi, ImageId(sprite_idx),
*dpi, ImageId(sprite_idx),
windowPos
+ ScreenCoordsXY{ widgets[WIDX_THEMES_SETTINGS_TAB + i].left, widgets[WIDX_THEMES_SETTINGS_TAB + i].top });
}

View File

@ -60,8 +60,8 @@ public:
void OnDraw(DrawPixelInfo& dpi) override
{
auto screenCoords = windowPos + ScreenCoordsXY{ 2, 2 };
GfxDrawSprite(&dpi, ImageId(SPR_G2_LOGO), screenCoords);
GfxDrawSprite(&dpi, ImageId(SPR_G2_TITLE), screenCoords + ScreenCoordsXY{ 104, 18 });
GfxDrawSprite(dpi, ImageId(SPR_G2_LOGO), screenCoords);
GfxDrawSprite(dpi, ImageId(SPR_G2_TITLE), screenCoords + ScreenCoordsXY{ 104, 18 });
}
};

View File

@ -3190,7 +3190,7 @@ public:
imgId = SPR_TOOLBAR_STAFF;
if (WidgetIsPressed(*this, WIDX_STAFF))
imgId++;
GfxDrawSprite(&dpi, ImageId(imgId, gStaffHandymanColour, gStaffMechanicColour), screenPos);
GfxDrawSprite(dpi, ImageId(imgId, gStaffHandymanColour, gStaffMechanicColour), screenPos);
}
// Draw fast forward button
@ -3199,15 +3199,15 @@ public:
screenPos = { windowPos.x + widgets[WIDX_FASTFORWARD].left + 0, windowPos.y + widgets[WIDX_FASTFORWARD].top + 0 };
if (WidgetIsPressed(*this, WIDX_FASTFORWARD))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_G2_FASTFORWARD), screenPos + ScreenCoordsXY{ 6, 3 });
GfxDrawSprite(dpi, ImageId(SPR_G2_FASTFORWARD), screenPos + ScreenCoordsXY{ 6, 3 });
for (int32_t i = 0; i < gGameSpeed && gGameSpeed <= 4; i++)
{
GfxDrawSprite(&dpi, ImageId(SPR_G2_SPEED_ARROW), screenPos + ScreenCoordsXY{ 5 + i * 5, 15 });
GfxDrawSprite(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++)
{
GfxDrawSprite(&dpi, ImageId(SPR_G2_HYPER_ARROW), screenPos + ScreenCoordsXY{ 5 + i * 6, 15 });
GfxDrawSprite(dpi, ImageId(SPR_G2_HYPER_ARROW), screenPos + ScreenCoordsXY{ 5 + i * 6, 15 });
}
}
@ -3217,7 +3217,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_CHEATS].left - 1, widgets[WIDX_CHEATS].top - 1 };
if (WidgetIsPressed(*this, WIDX_CHEATS))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_G2_SANDBOX), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_G2_SANDBOX), screenPos);
// Draw an overlay if clearance checks are disabled
if (gCheatsDisableClearanceChecks)
@ -3234,7 +3234,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_CHAT].left, widgets[WIDX_CHAT].top - 2 };
if (WidgetIsPressed(*this, WIDX_CHAT))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_G2_CHAT), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_G2_CHAT), screenPos);
}
// Draw debug button
@ -3243,7 +3243,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_DEBUG].left, widgets[WIDX_DEBUG].top - 1 };
if (WidgetIsPressed(*this, WIDX_DEBUG))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_TAB_GEARS_0), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_TAB_GEARS_0), screenPos);
}
// Draw research button
@ -3252,7 +3252,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_RESEARCH].left - 1, widgets[WIDX_RESEARCH].top };
if (WidgetIsPressed(*this, WIDX_RESEARCH))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_TAB_FINANCES_RESEARCH_0), screenPos);
}
// Draw finances button
@ -3261,7 +3261,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_FINANCES].left + 3, widgets[WIDX_FINANCES].top + 1 };
if (WidgetIsPressed(*this, WIDX_FINANCES))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_FINANCE), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_FINANCE), screenPos);
}
// Draw news button
@ -3270,7 +3270,7 @@ public:
screenPos = windowPos + ScreenCoordsXY{ widgets[WIDX_NEWS].left + 3, widgets[WIDX_NEWS].top + 0 };
if (WidgetIsPressed(*this, WIDX_NEWS))
screenPos.y++;
GfxDrawSprite(&dpi, ImageId(SPR_G2_TAB_NEWS), screenPos);
GfxDrawSprite(dpi, ImageId(SPR_G2_TAB_NEWS), screenPos);
}
// Draw network button
@ -3282,7 +3282,7 @@ public:
// Draw (de)sync icon.
imgId = (NetworkIsDesynchronised() ? SPR_G2_MULTIPLAYER_DESYNC : SPR_G2_MULTIPLAYER_SYNC);
GfxDrawSprite(&dpi, ImageId(imgId), screenPos + ScreenCoordsXY{ 3, 11 });
GfxDrawSprite(dpi, ImageId(imgId), screenPos + ScreenCoordsXY{ 3, 11 });
// Draw number of players.
auto ft = Formatter();

View File

@ -300,7 +300,7 @@ public:
g1temp.height = TRACK_MINI_PREVIEW_HEIGHT;
GfxSetG1Element(SPR_TEMP, &g1temp);
DrawingEngineInvalidateImage(SPR_TEMP);
GfxDrawSprite(&clippedDpi, ImageId(SPR_TEMP, NOT_TRANSLUCENT(this->colours[0])), { 0, 0 });
GfxDrawSprite(clippedDpi, ImageId(SPR_TEMP, NOT_TRANSLUCENT(this->colours[0])), { 0, 0 });
}
// Price

View File

@ -502,7 +502,7 @@ public:
g1temp.flags = G1_FLAG_HAS_TRANSPARENCY;
GfxSetG1Element(SPR_TEMP, &g1temp);
DrawingEngineInvalidateImage(SPR_TEMP);
GfxDrawSprite(&dpi, ImageId(SPR_TEMP), trackPreview);
GfxDrawSprite(dpi, ImageId(SPR_TEMP), trackPreview);
screenPos.y = windowPos.y + tdWidget.bottom - 12;

View File

@ -152,7 +152,7 @@ public:
const auto& widget = widgets[WIDX_HIDE_STAFF];
auto screenCoords = windowPos + ScreenCoordsXY{ widget.left, widget.top };
auto image = ImageId(SPR_MECHANIC, COLOUR_BLACK, gStaffMechanicColour);
GfxDrawSprite(&dpi, image, screenCoords);
GfxDrawSprite(dpi, image, screenCoords);
}
private:

View File

@ -191,10 +191,10 @@ void IntroDraw(DrawPixelInfo* dpi)
BORDER_COLOUR_PUBLISHER);
// Draw Infogrames logo
GfxDrawSprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_00), { (screenWidth / 2) - 320 + 69, _introStateCounter + 69 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_10), { (screenWidth / 2) - 320 + 319, _introStateCounter + 69 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_01), { (screenWidth / 2) - 320 + 69, _introStateCounter + 319 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_INFOGRAMES_11), { (screenWidth / 2) - 320 + 319, _introStateCounter + 319 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_INFOGRAMES_00), { (screenWidth / 2) - 320 + 69, _introStateCounter + 69 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_INFOGRAMES_10), { (screenWidth / 2) - 320 + 319, _introStateCounter + 69 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_INFOGRAMES_01), { (screenWidth / 2) - 320 + 69, _introStateCounter + 319 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_INFOGRAMES_11), { (screenWidth / 2) - 320 + 319, _introStateCounter + 319 });
break;
case IntroState::DeveloperBegin:
GfxClear(dpi, BACKROUND_COLOUR_DARK);
@ -204,8 +204,8 @@ void IntroDraw(DrawPixelInfo* dpi)
GfxClear(dpi, BACKROUND_COLOUR_DARK);
// Draw Chris Sawyer logo
GfxDrawSprite(dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_00), { (screenWidth / 2) - 320 + 70, _introStateCounter });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_10), { (screenWidth / 2) - 320 + 320, _introStateCounter });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_00), { (screenWidth / 2) - 320 + 70, _introStateCounter });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_CHRIS_SAWYER_10), { (screenWidth / 2) - 320 + 320, _introStateCounter });
break;
case IntroState::LogoFadeIn:
if (_introStateCounter <= 0xFF00)
@ -294,10 +294,10 @@ static void ScreenIntroDrawLogo(DrawPixelInfo* dpi)
DrawingEngineInvalidateImage(SPR_INTRO_LOGO_21);
GfxClear(dpi, BACKROUND_COLOUR_LOGO);
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_00), { imageX + 0, 0 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_10), { imageX + 220, 0 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_20), { imageX + 440, 0 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_01), { imageX + 0, 240 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_11), { imageX + 220, 240 });
GfxDrawSprite(dpi, ImageId(SPR_INTRO_LOGO_21), { imageX + 440, 240 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_00), { imageX + 0, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_10), { imageX + 220, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_20), { imageX + 440, 0 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_01), { imageX + 0, 240 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_11), { imageX + 220, 240 });
GfxDrawSprite(*dpi, ImageId(SPR_INTRO_LOGO_21), { imageX + 440, 240 });
}

View File

@ -768,7 +768,7 @@ static void TTFProcessFormatCode(DrawPixelInfo& dpi, const FmtString::Token& tok
{
if (!(info->flags & TEXT_DRAW_FLAG_NO_DRAW))
{
GfxDrawSprite(&dpi, imageId, { info->x, info->y });
GfxDrawSprite(dpi, imageId, { info->x, info->y });
}
info->x += g1->width;
}

View File

@ -895,7 +895,7 @@ void GfxDrawPickedUpPeep(DrawPixelInfo* dpi)
{
if (gPickupPeepImage.HasValue())
{
GfxDrawSprite(dpi, gPickupPeepImage, { gPickupPeepX, gPickupPeepY });
GfxDrawSprite(*dpi, gPickupPeepImage, { gPickupPeepX, gPickupPeepY });
}
}

View File

@ -542,7 +542,7 @@ bool IsCsgLoaded();
void FASTCALL GfxSpriteToBuffer(DrawPixelInfo& dpi, const DrawSpriteArgs& args);
void FASTCALL GfxBmpSpriteToBuffer(DrawPixelInfo& dpi, const DrawSpriteArgs& args);
void FASTCALL GfxRleSpriteToBuffer(DrawPixelInfo& dpi, const DrawSpriteArgs& args);
void FASTCALL GfxDrawSprite(DrawPixelInfo* dpi, const ImageId image_id, const ScreenCoordsXY& coords);
void FASTCALL GfxDrawSprite(DrawPixelInfo& dpi, const ImageId image_id, const ScreenCoordsXY& coords);
void FASTCALL GfxDrawGlyph(DrawPixelInfo* dpi, const ImageId image, const ScreenCoordsXY& coords, const PaletteMap& paletteMap);
void FASTCALL GfxDrawSpriteSolid(DrawPixelInfo* dpi, const ImageId image, const ScreenCoordsXY& coords, uint8_t colour);
void FASTCALL GfxDrawSpriteRawMasked(

View File

@ -233,13 +233,13 @@ void GfxDrawDashedLine(
}
}
void FASTCALL GfxDrawSprite(DrawPixelInfo* dpi, const ImageId imageId, const ScreenCoordsXY& coords)
void FASTCALL GfxDrawSprite(DrawPixelInfo& dpi, const ImageId imageId, const ScreenCoordsXY& coords)
{
auto drawingEngine = dpi->DrawingEngine;
auto drawingEngine = dpi.DrawingEngine;
if (drawingEngine != nullptr)
{
IDrawingContext* dc = drawingEngine->GetDrawingContext();
dc->DrawSprite(dpi, imageId, coords.x, coords.y);
dc->DrawSprite(&dpi, imageId, coords.x, coords.y);
}
}

View File

@ -81,8 +81,8 @@ void BannerObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height
auto image0 = ImageId(_legacyType.image, COLOUR_BORDEAUX_RED);
auto image1 = ImageId(_legacyType.image + 1, COLOUR_BORDEAUX_RED);
GfxDrawSprite(&dpi, image0, screenCoords + ScreenCoordsXY{ -12, 8 });
GfxDrawSprite(&dpi, image1, screenCoords + ScreenCoordsXY{ -12, 8 });
GfxDrawSprite(dpi, image0, screenCoords + ScreenCoordsXY{ -12, 8 });
GfxDrawSprite(dpi, image1, screenCoords + ScreenCoordsXY{ -12, 8 });
}
void BannerObject::ReadJson(IReadObjectContext* context, json_t& root)

View File

@ -46,9 +46,9 @@ void EntranceObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t heig
{
auto screenCoords = ScreenCoordsXY{ width / 2, height / 2 };
GfxDrawSprite(&dpi, ImageId(_legacyType.image_id + 1), screenCoords + ScreenCoordsXY{ -32, 14 });
GfxDrawSprite(&dpi, ImageId(_legacyType.image_id + 0), screenCoords + ScreenCoordsXY{ 0, 28 });
GfxDrawSprite(&dpi, ImageId(_legacyType.image_id + 2), screenCoords + ScreenCoordsXY{ 32, 44 });
GfxDrawSprite(dpi, ImageId(_legacyType.image_id + 1), screenCoords + ScreenCoordsXY{ -32, 14 });
GfxDrawSprite(dpi, ImageId(_legacyType.image_id + 0), screenCoords + ScreenCoordsXY{ 0, 28 });
GfxDrawSprite(dpi, ImageId(_legacyType.image_id + 2), screenCoords + ScreenCoordsXY{ 32, 44 });
}
void EntranceObject::ReadJson(IReadObjectContext* context, json_t& root)

View File

@ -83,7 +83,7 @@ void FootpathItemObject::Unload()
void FootpathItemObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height) const
{
auto screenCoords = ScreenCoordsXY{ width / 2, height / 2 };
GfxDrawSprite(&dpi, ImageId(_legacyType.image), screenCoords - ScreenCoordsXY{ 22, 24 });
GfxDrawSprite(dpi, ImageId(_legacyType.image), screenCoords - ScreenCoordsXY{ 22, 24 });
}
static PathBitDrawType ParseDrawType(const std::string& s)

View File

@ -72,8 +72,8 @@ void FootpathObject::Unload()
void FootpathObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height) const
{
auto screenCoords = ScreenCoordsXY{ width / 2, height / 2 };
GfxDrawSprite(&dpi, ImageId(_pathSurfaceDescriptor.PreviewImage), screenCoords - ScreenCoordsXY{ 49, 17 });
GfxDrawSprite(&dpi, ImageId(_queueSurfaceDescriptor.PreviewImage), screenCoords + ScreenCoordsXY{ 4, -17 });
GfxDrawSprite(dpi, ImageId(_pathSurfaceDescriptor.PreviewImage), screenCoords - ScreenCoordsXY{ 49, 17 });
GfxDrawSprite(dpi, ImageId(_queueSurfaceDescriptor.PreviewImage), screenCoords + ScreenCoordsXY{ 4, -17 });
}
void FootpathObject::ReadJson(IReadObjectContext* context, json_t& root)

View File

@ -61,20 +61,20 @@ void FootpathRailingsObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int3
for (int i = 0; i < 2; i++)
{
auto h = i * 16;
GfxDrawSprite(&dpi, img, { x - 8, y + 8 + h });
GfxDrawSprite(&dpi, img, { x + 8, y + 16 + h });
GfxDrawSprite(dpi, img, { x - 8, y + 8 + h });
GfxDrawSprite(dpi, img, { x + 8, y + 16 + h });
}
GfxDrawSprite(&dpi, helper.WithIndex(BridgeImageId + 5), { x, y - 17 });
GfxDrawSprite(&dpi, ImageId(RailingsImageId + 1), { x + 4, y - 14 });
GfxDrawSprite(&dpi, ImageId(RailingsImageId + 1), { x + 27, y - 2 });
GfxDrawSprite(dpi, helper.WithIndex(BridgeImageId + 5), { x, y - 17 });
GfxDrawSprite(dpi, ImageId(RailingsImageId + 1), { x + 4, y - 14 });
GfxDrawSprite(dpi, ImageId(RailingsImageId + 1), { x + 27, y - 2 });
}
else
{
GfxDrawSprite(&dpi, helper.WithIndex(BridgeImageId + 22), { x + 0, y + 16 });
GfxDrawSprite(&dpi, helper.WithIndex(BridgeImageId + 49), { x, y - 17 });
GfxDrawSprite(&dpi, ImageId(RailingsImageId + 1), { x + 4, y - 14 });
GfxDrawSprite(&dpi, ImageId(RailingsImageId + 1), { x + 27, y - 3 });
GfxDrawSprite(dpi, helper.WithIndex(BridgeImageId + 22), { x + 0, y + 16 });
GfxDrawSprite(dpi, helper.WithIndex(BridgeImageId + 49), { x, y - 17 });
GfxDrawSprite(dpi, ImageId(RailingsImageId + 1), { x + 4, y - 14 });
GfxDrawSprite(dpi, ImageId(RailingsImageId + 1), { x + 27, y - 3 });
}
}

View File

@ -46,9 +46,9 @@ void FootpathSurfaceObject::Unload()
void FootpathSurfaceObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height) const
{
auto screenCoords = ScreenCoordsXY{ width / 2 - 16, height / 2 };
GfxDrawSprite(&dpi, ImageId(BaseImageId + 3), screenCoords);
GfxDrawSprite(&dpi, ImageId(BaseImageId + 16), { screenCoords.x + 32, screenCoords.y - 16 });
GfxDrawSprite(&dpi, ImageId(BaseImageId + 8), { screenCoords.x + 32, screenCoords.y + 16 });
GfxDrawSprite(dpi, ImageId(BaseImageId + 3), screenCoords);
GfxDrawSprite(dpi, ImageId(BaseImageId + 16), { screenCoords.x + 32, screenCoords.y - 16 });
GfxDrawSprite(dpi, ImageId(BaseImageId + 8), { screenCoords.x + 32, screenCoords.y + 16 });
}
void FootpathSurfaceObject::ReadJson(IReadObjectContext* context, json_t& root)

View File

@ -155,7 +155,7 @@ void LargeSceneryObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t
if (_legacyType.flags & LARGE_SCENERY_FLAG_HAS_TERTIARY_COLOUR)
image = image.WithTertiary(COLOUR_DARK_BROWN);
GfxDrawSprite(&dpi, image, screenCoords);
GfxDrawSprite(dpi, image, screenCoords);
}
std::vector<LargeSceneryTile> LargeSceneryObject::ReadTiles(OpenRCT2::IStream* stream)

View File

@ -93,7 +93,7 @@ void MusicObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height)
int32_t x = width / 2;
int32_t y = height / 2;
if (_hasPreview)
GfxDrawSprite(&dpi, ImageId(_previewImageId), { 0, 0 });
GfxDrawSprite(dpi, ImageId(_previewImageId), { 0, 0 });
else
DrawTextBasic(dpi, { x, y }, STR_WINDOW_NO_IMAGE, {}, { TextAlignment::CENTRE });
}

View File

@ -346,7 +346,7 @@ void RideObject::DrawPreview(DrawPixelInfo& dpi, [[maybe_unused]] int32_t width,
imageId++;
}
GfxDrawSprite(&dpi, ImageId(imageId), { 0, 0 });
GfxDrawSprite(dpi, ImageId(imageId), { 0, 0 });
}
std::string RideObject::GetDescription() const

View File

@ -76,7 +76,7 @@ void SceneryGroupObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t
auto screenCoords = ScreenCoordsXY{ width / 2, height / 2 };
const auto imageId = ImageId(_legacyType.image + 1, COLOUR_DARK_GREEN);
GfxDrawSprite(&dpi, imageId, screenCoords - ScreenCoordsXY{ 15, 14 });
GfxDrawSprite(dpi, imageId, screenCoords - ScreenCoordsXY{ 15, 14 });
}
static std::optional<uint8_t> GetSceneryType(const ObjectType type)

View File

@ -119,12 +119,12 @@ void SmallSceneryObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t
screenCoords.y -= 12;
}
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
if (_legacyType.HasFlag(SMALL_SCENERY_FLAG_HAS_GLASS))
{
imageId = ImageId(_legacyType.image + 4).WithTransparency(COLOUR_BORDEAUX_RED);
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
}
if (_legacyType.HasFlag(SMALL_SCENERY_FLAG_ANIMATED_FG))
@ -134,7 +134,7 @@ void SmallSceneryObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t
{
imageId = imageId.WithSecondary(COLOUR_YELLOW);
}
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
}
}

View File

@ -64,16 +64,16 @@ void StationObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t heigh
imageId = imageId.WithSecondary(colour1);
}
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
if (Flags & STATION_OBJECT_FLAGS::IS_TRANSPARENT)
{
GfxDrawSprite(&dpi, tImageId, screenCoords);
GfxDrawSprite(dpi, tImageId, screenCoords);
}
GfxDrawSprite(&dpi, imageId.WithIndexOffset(4), screenCoords);
GfxDrawSprite(dpi, imageId.WithIndexOffset(4), screenCoords);
if (Flags & STATION_OBJECT_FLAGS::IS_TRANSPARENT)
{
GfxDrawSprite(&dpi, tImageId.WithIndexOffset(4), screenCoords);
GfxDrawSprite(dpi, tImageId.WithIndexOffset(4), screenCoords);
}
}

View File

@ -43,8 +43,8 @@ void TerrainEdgeObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t h
auto screenCoords = ScreenCoordsXY{ width / 2, height / 2 };
auto imageId = ImageId(BaseImageId + 5);
GfxDrawSprite(&dpi, imageId, screenCoords + ScreenCoordsXY{ 8, -8 });
GfxDrawSprite(&dpi, imageId, screenCoords + ScreenCoordsXY{ 8, 8 });
GfxDrawSprite(dpi, imageId, screenCoords + ScreenCoordsXY{ 8, -8 });
GfxDrawSprite(dpi, imageId, screenCoords + ScreenCoordsXY{ 8, 8 });
}
void TerrainEdgeObject::ReadJson(IReadObjectContext* context, json_t& root)

View File

@ -70,7 +70,7 @@ void TerrainSurfaceObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_
}
for (int32_t j = 0; j < 4; j++)
{
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
screenCoords.x += 64;
}
screenCoords.y += 16;

View File

@ -81,16 +81,16 @@ void WallObject::DrawPreview(DrawPixelInfo& dpi, int32_t width, int32_t height)
imageId = imageId.WithSecondary(COLOUR_YELLOW);
}
GfxDrawSprite(&dpi, imageId, screenCoords);
GfxDrawSprite(dpi, imageId, screenCoords);
if (_legacyType.flags & WALL_SCENERY_HAS_GLASS)
{
auto glassImageId = imageId.WithTransparency(COLOUR_BORDEAUX_RED).WithIndexOffset(6);
GfxDrawSprite(&dpi, glassImageId, screenCoords);
GfxDrawSprite(dpi, glassImageId, screenCoords);
}
else if (_legacyType.flags & WALL_SCENERY_IS_DOOR)
{
GfxDrawSprite(&dpi, imageId.WithIndexOffset(1), screenCoords);
GfxDrawSprite(dpi, imageId.WithIndexOffset(1), screenCoords);
}
}

View File

@ -509,7 +509,7 @@ static void PaintDrawStruct(PaintSession& session, PaintStruct* ps)
}
else
{
GfxDrawSprite(dpi, imageId, { x, y });
GfxDrawSprite(*dpi, imageId, { x, y });
}
if (ps->children != nullptr)
@ -559,7 +559,7 @@ static void PaintAttachedPS(DrawPixelInfo* dpi, PaintStruct* ps, uint32_t viewFl
}
else
{
GfxDrawSprite(dpi, imageId, screenCoords);
GfxDrawSprite(*dpi, imageId, screenCoords);
}
}
}
@ -640,7 +640,7 @@ static void PaintPSImageWithBoundingBoxes(DrawPixelInfo* dpi, PaintStruct* ps, I
GfxDrawLine(dpi, { screenCoordBackTop, screenCoordLeftTop }, colour);
GfxDrawLine(dpi, { screenCoordBackTop, screenCoordRightTop }, colour);
GfxDrawSprite(dpi, imageId, { x, y });
GfxDrawSprite(*dpi, imageId, { x, y });
// vertical front
GfxDrawLine(dpi, { screenCoordFrontTop, screenCoordFrontBottom }, colour);