summaryrefslogtreecommitdiff
path: root/src/camera.h
diff options
context:
space:
mode:
authorKahrl <kahrl@gmx.net>2011-09-21 01:42:52 +0200
committerKahrl <kahrl@gmx.net>2011-09-21 01:42:52 +0200
commit36af9bb027ed6846227282587e3414ea3d30f6c5 (patch)
tree1c9aed78e1ce2899ae6c7997989be86a376d2582 /src/camera.h
parent6599002149f58c03b807cd1378ec17278dbdc09d (diff)
downloadminetest-36af9bb027ed6846227282587e3414ea3d30f6c5.tar.gz
minetest-36af9bb027ed6846227282587e3414ea3d30f6c5.tar.bz2
minetest-36af9bb027ed6846227282587e3414ea3d30f6c5.zip
Create a separate scene manager for the wielded tool. This fixes the glitchyness in large map coordinates and some depth buffer problems. (The tool doesn't bob anymore when walking, this will be fixed later.) Fix MSVC build (thanks to dannydark).
Diffstat (limited to 'src/camera.h')
-rw-r--r--src/camera.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/camera.h b/src/camera.h
index 026f92874..fbee4a378 100644
--- a/src/camera.h
+++ b/src/camera.h
@@ -63,12 +63,6 @@ public:
return m_cameranode;
}
- // Get wielded item scene node.
- inline ExtrudedSpriteSceneNode* getWieldNode() const
- {
- return m_wieldnode;
- }
-
// Get the camera position (in absolute scene coordinates).
// This has view bobbing applied.
inline v3f getPosition() const
@@ -124,12 +118,19 @@ public:
// Pass 0 for left click, 1 for right click
void setDigging(s32 button);
+ // Draw the wielded tool.
+ // This has to happen *after* the main scene is drawn.
+ // Warning: This clears the Z buffer.
+ void drawWieldedTool();
+
private:
// Scene manager and nodes
scene::ISceneManager* m_smgr;
scene::ISceneNode* m_playernode;
scene::ISceneNode* m_headnode;
scene::ICameraSceneNode* m_cameranode;
+
+ scene::ISceneManager* m_wieldmgr;
ExtrudedSpriteSceneNode* m_wieldnode;
// draw control