diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-08-23 00:31:18 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-08-23 00:33:38 +0300 |
commit | e4f443a57a1b1ecd95282de2908824078d19dea5 (patch) | |
tree | 6697dc3700950be8de4a774d98525bf8ca43940d /src | |
parent | d4df20a913c6663a4f42294e06e8c482fc947259 (diff) | |
download | minetest-e4f443a57a1b1ecd95282de2908824078d19dea5.tar.gz minetest-e4f443a57a1b1ecd95282de2908824078d19dea5.tar.bz2 minetest-e4f443a57a1b1ecd95282de2908824078d19dea5.zip |
Inventory transparency; very loosely based on sapier's commits.
Also contains some commented-out code for testing out different looks
in the future.
Diffstat (limited to 'src')
-rw-r--r-- | src/game.cpp | 62 | ||||
-rw-r--r-- | src/guiInventoryMenu.cpp | 25 |
2 files changed, 70 insertions, 17 deletions
diff --git a/src/game.cpp b/src/game.cpp index 7c77996b8..dc3ed2456 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -319,17 +319,61 @@ void draw_hotbar(video::IVideoDriver *driver, gui::IGUIFont *font, if(g_selected_item == i) { - driver->draw2DRectangle(video::SColor(255,255,0,0), - core::rect<s32>(rect.UpperLeftCorner - v2s32(1,1)*padding, - rect.LowerRightCorner + v2s32(1,1)*padding), - NULL); - } - else - { - video::SColor bgcolor2(128,0,0,0); - driver->draw2DRectangle(bgcolor2, rect, NULL); + video::SColor c_outside(255,255,0,0); + //video::SColor c_outside(255,0,0,0); + //video::SColor c_inside(255,192,192,192); + s32 x1 = rect.UpperLeftCorner.X; + s32 y1 = rect.UpperLeftCorner.Y; + s32 x2 = rect.LowerRightCorner.X; + s32 y2 = rect.LowerRightCorner.Y; + // Black base borders + driver->draw2DRectangle(c_outside, + core::rect<s32>( + v2s32(x1 - padding, y1 - padding), + v2s32(x2 + padding, y1) + ), NULL); + driver->draw2DRectangle(c_outside, + core::rect<s32>( + v2s32(x1 - padding, y2), + v2s32(x2 + padding, y2 + padding) + ), NULL); + driver->draw2DRectangle(c_outside, + core::rect<s32>( + v2s32(x1 - padding, y1), + v2s32(x1, y2) + ), NULL); + driver->draw2DRectangle(c_outside, + core::rect<s32>( + v2s32(x2, y1), + v2s32(x2 + padding, y2) + ), NULL); + /*// Light inside borders + driver->draw2DRectangle(c_inside, + core::rect<s32>( + v2s32(x1 - padding/2, y1 - padding/2), + v2s32(x2 + padding/2, y1) + ), NULL); + driver->draw2DRectangle(c_inside, + core::rect<s32>( + v2s32(x1 - padding/2, y2), + v2s32(x2 + padding/2, y2 + padding/2) + ), NULL); + driver->draw2DRectangle(c_inside, + core::rect<s32>( + v2s32(x1 - padding/2, y1), + v2s32(x1, y2) + ), NULL); + driver->draw2DRectangle(c_inside, + core::rect<s32>( + v2s32(x2, y1), + v2s32(x2 + padding/2, y2) + ), NULL); + */ } + video::SColor bgcolor2(128,0,0,0); + driver->draw2DRectangle(bgcolor2, rect, NULL); + if(item != NULL) { drawInventoryItem(driver, font, item, rect, NULL); diff --git a/src/guiInventoryMenu.cpp b/src/guiInventoryMenu.cpp index f90a2e959..8faf3d005 100644 --- a/src/guiInventoryMenu.cpp +++ b/src/guiInventoryMenu.cpp @@ -41,7 +41,7 @@ void drawInventoryItem(video::IVideoDriver *driver, driver->draw2DImage(texture, rect, core::rect<s32>(core::position2d<s32>(0,0), core::dimension2di(texture->getOriginalSize())), - clip, colors, false); + clip, colors, true); } else { @@ -241,22 +241,31 @@ void GUIInventoryMenu::drawList(const ListDrawSpec &s) if(m_selected_item != NULL && m_selected_item->listname == s.listname && m_selected_item->i == i) { + /*s32 border = imgsize.X/12; + driver->draw2DRectangle(video::SColor(255,192,192,192), + core::rect<s32>(rect.UpperLeftCorner - v2s32(1,1)*border, + rect.LowerRightCorner + v2s32(1,1)*border), + NULL); + driver->draw2DRectangle(video::SColor(255,0,0,0), + core::rect<s32>(rect.UpperLeftCorner - v2s32(1,1)*((border+1)/2), + rect.LowerRightCorner + v2s32(1,1)*((border+1)/2)), + NULL);*/ + s32 border = 2; driver->draw2DRectangle(video::SColor(255,255,0,0), - core::rect<s32>(rect.UpperLeftCorner - v2s32(2,2), - rect.LowerRightCorner + v2s32(2,2)), + core::rect<s32>(rect.UpperLeftCorner - v2s32(1,1)*border, + rect.LowerRightCorner + v2s32(1,1)*border), &AbsoluteClippingRect); } + video::SColor bgcolor(255,128,128,128); + driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect); + if(item) { drawInventoryItem(driver, font, item, rect, &AbsoluteClippingRect); } - else - { - video::SColor bgcolor(255,128,128,128); - driver->draw2DRectangle(bgcolor, rect, &AbsoluteClippingRect); - } + } } |