From c83ce3cd00b89a62628c358550f88b17a2e0f29d Mon Sep 17 00:00:00 2001 From: RealBadAngel Date: Mon, 5 Nov 2012 23:28:01 +0100 Subject: [PATCH] Update src/guiFormSpecMenu.cpp Added to formspec backgrounds: background[pos_x,pos_y;size_x,size_y;background_image] When backgrounds are used in formspec no item slot rectangles are drawn. --- src/guiFormSpecMenu.cpp | 45 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp index affbd1a34..ed0fad58b 100644 --- a/src/guiFormSpecMenu.cpp +++ b/src/guiFormSpecMenu.cpp @@ -278,9 +278,26 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) <<", geom=("<setVisible(false); + /* + Draw backgrounds + */ + for(u32 i=0; itsrc()->getTextureRaw(spec.name); + // Image size on screen + core::rect imgrect(0, 0, spec.geom.X, spec.geom.Y); + // Image rectangle on screen + core::rect rect = imgrect + spec.pos; + const video::SColor color(255,255,255,255); + const video::SColor colors[] = {color,color,color,color}; + driver->draw2DImage(texture, rect, + core::rect(core::position2d(0,0), + core::dimension2di(texture->getOriginalSize())), + NULL/*&AbsoluteClippingRect*/, colors, true); + } + /* Draw images */ @@ -715,8 +752,11 @@ void GUIFormSpecMenu::drawMenu() Draw items Phase 0: Item slot rectangles Phase 1: Item images; prepare tooltip + If backgrounds used, do not draw Item slot rectangles */ - for(int phase=0; phase<=1; phase++) + int start_phase=0; + if (m_backgrounds.size() > 0) start_phase=1; + for(int phase=start_phase; phase<=1; phase++) for(u32 i=0; iOnEvent(event) : false; } -