@@ -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