summaryrefslogtreecommitdiff
path: root/src/hud.cpp
diff options
context:
space:
mode:
authorRealBadAngel <maciej.kasatkin@yahoo.com>2014-05-05 07:45:20 +0200
committerRealBadAngel <maciej.kasatkin@o2.pl>2014-05-05 09:03:37 +0200
commit6f511b1d05d3e1668967a528b77a9e81e31b3c78 (patch)
tree052c6e1d8d94690ea3b682513660cd62ee6b3e8c /src/hud.cpp
parent09e8bbea03c72cfc21560f953561183b9d29be6a (diff)
downloadminetest-6f511b1d05d3e1668967a528b77a9e81e31b3c78.tar.gz
minetest-6f511b1d05d3e1668967a528b77a9e81e31b3c78.tar.bz2
minetest-6f511b1d05d3e1668967a528b77a9e81e31b3c78.zip
Bugfix: make waypoints respect camera offset
Diffstat (limited to 'src/hud.cpp')
-rw-r--r--src/hud.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/hud.cpp b/src/hud.cpp
index bbec4489e..c385211f2 100644
--- a/src/hud.cpp
+++ b/src/hud.cpp
@@ -46,7 +46,7 @@ Hud::Hud(video::IVideoDriver *driver, scene::ISceneManager* smgr,
this->gamedef = gamedef;
this->player = player;
this->inventory = inventory;
-
+
m_screensize = v2u32(0, 0);
m_displaycenter = v2s32(0, 0);
m_hotbar_imagesize = floor(HOTBAR_IMAGE_SIZE * porting::getDisplayDensity() + 0.5);
@@ -222,7 +222,7 @@ void Hud::drawItems(v2s32 upperleftpos, s32 itemcount, s32 offset,
}
-void Hud::drawLuaElements() {
+void Hud::drawLuaElements(v3s16 camera_offset) {
for (size_t i = 0; i != player->hud.size(); i++) {
HudElement *e = player->hud[i];
if (!e)
@@ -277,6 +277,7 @@ void Hud::drawLuaElements() {
v3f w_pos = e->world_pos * BS;
float distance = floor(10 * p_pos.getDistanceFrom(e->world_pos)) / 10;
scene::ICameraSceneNode* camera = smgr->getActiveCamera();
+ w_pos -= intToFloat(camera_offset, BS);
core::matrix4 trans = camera->getProjectionMatrix();
trans *= camera->getViewMatrix();
f32 transformed_pos[4] = { w_pos.X, w_pos.Y, w_pos.Z, 1.0f };