mirror of https://github.com/OpenRCT2/OpenRCT2.git
Allow passing ImageId into gfx_draw_sprite()
This commit is contained in:
parent
ccfa22c230
commit
a5a63f839a
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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++;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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]);
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 };
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
{
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -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 = "???";
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 });
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue