Skip to content

Commit 2443f1e

Browse files
committed
Fix overlays for 2D-drawn items
fixes #11248
1 parent 7c2826c commit 2443f1e

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/client/hud.cpp

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -997,6 +997,8 @@ void drawItemStack(
997997

998998
const ItemDefinition &def = item.getDefinition(client->idef());
999999

1000+
bool draw_overlay = false;
1001+
10001002
// Render as mesh if animated or no inventory image
10011003
if ((enable_animations && rotation_kind < IT_ROT_NONE) || def.inventory_image.empty()) {
10021004
ItemMesh *imesh = client->idef()->getWieldMesh(def.name, client);
@@ -1089,6 +1091,8 @@ void drawItemStack(
10891091
driver->setTransform(video::ETS_VIEW, oldViewMat);
10901092
driver->setTransform(video::ETS_PROJECTION, oldProjMat);
10911093
driver->setViewPort(oldViewPort);
1094+
1095+
draw_overlay = def.type == ITEM_NODE && def.inventory_image.empty();
10921096
} else { // Otherwise just draw as 2D
10931097
video::ITexture *texture = client->idef()->getInventoryTexture(def.name, client);
10941098
if (!texture)
@@ -1100,11 +1104,12 @@ void drawItemStack(
11001104
draw2DImageFilterScaled(driver, texture, rect,
11011105
core::rect<s32>({0, 0}, core::dimension2di(texture->getOriginalSize())),
11021106
clip, colors, true);
1107+
1108+
draw_overlay = true;
11031109
}
11041110

11051111
// draw the inventory_overlay
1106-
if (def.type == ITEM_NODE && def.inventory_image.empty() &&
1107-
!def.inventory_overlay.empty()) {
1112+
if (!def.inventory_overlay.empty() && draw_overlay) {
11081113
ITextureSource *tsrc = client->getTextureSource();
11091114
video::ITexture *overlay_texture = tsrc->getTexture(def.inventory_overlay);
11101115
core::dimension2d<u32> dimens = overlay_texture->getOriginalSize();

0 commit comments

Comments
 (0)