summaryrefslogtreecommitdiff
path: root/src/hud.cpp
diff options
context:
space:
mode:
authorrubenwardy <rubenwardy@gmail.com>2016-04-12 12:54:08 +0100
committerCraig Robbins <kde.psych@gmail.com>2016-04-12 23:10:28 +1000
commitb5f6d41eedca983a98470fdb97b5732e08802d24 (patch)
tree2badf86143a78f59b387bd3c05e5d89dc34bdf4f /src/hud.cpp
parent4fdf66bbf4d90846844ee3f6d41acb31ce06ca8b (diff)
downloadminetest-b5f6d41eedca983a98470fdb97b5732e08802d24.tar.gz
minetest-b5f6d41eedca983a98470fdb97b5732e08802d24.tar.bz2
minetest-b5f6d41eedca983a98470fdb97b5732e08802d24.zip
Fix inventory hud scaling
Diffstat (limited to 'src/hud.cpp')
-rw-r--r--src/hud.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/hud.cpp b/src/hud.cpp
index a7d94cb84..502865caa 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -208,15 +208,18 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount,
s32 width = (itemcount - inv_offset) * (m_hotbar_imagesize + m_padding * 2);
if (direction == HUD_DIR_TOP_BOTTOM || direction == HUD_DIR_BOTTOM_TOP) {
- width = m_hotbar_imagesize + m_padding * 2;
- height = (itemcount - inv_offset) * (m_hotbar_imagesize + m_padding * 2);
+ s32 tmp = height;
+ height = width;
+ width = tmp;
}
// Position of upper left corner of bar
- v2s32 pos = upperleftpos + screen_offset;
+ v2s32 pos = screen_offset;
pos.X *= m_hud_scaling * porting::getDisplayDensity();
pos.Y *= m_hud_scaling * porting::getDisplayDensity();
+ pos += upperleftpos;
+ // Store hotbar_image in member variable, used by drawItem()
if (hotbar_image != player->hotbar_image) {
hotbar_image = player->hotbar_image;
if (hotbar_image != "")
@@ -225,6 +228,7 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount,
use_hotbar_image = false;
}
+ // Store hotbar_selected_image in member variable, used by drawItem()
if (hotbar_selected_image != player->hotbar_selected_image) {
hotbar_selected_image = player->hotbar_selected_image;
if (hotbar_selected_image != "")
@@ -233,7 +237,7 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount,
use_hotbar_selected_image = false;
}
- /* draw customized item background */
+ // draw customized item background
if (use_hotbar_image) {
core::rect<s32> imgrect2(-m_padding/2, -m_padding/2,
width+m_padding/2, height+m_padding/2);
@@ -245,12 +249,12 @@ void Hud::drawItems(v2s32 upperleftpos, v2s32 screen_offset, s32 itemcount,
NULL, hbar_colors, true);
}
+ // Draw items
+ core::rect<s32> imgrect(0, 0, m_hotbar_imagesize, m_hotbar_imagesize);
for (s32 i = inv_offset; i < itemcount && (size_t)i < mainlist->getSize(); i++) {
- v2s32 steppos;
s32 fullimglen = m_hotbar_imagesize + m_padding * 2;
- core::rect<s32> imgrect(0, 0, m_hotbar_imagesize, m_hotbar_imagesize);
-
+ v2s32 steppos;
switch (direction) {
case HUD_DIR_RIGHT_LEFT:
steppos = v2s32(-(m_padding + (i - inv_offset) * fullimglen), m_padding);