LocalPlayer::accelerateHorizontal: cleanups
[oweals/minetest.git] / src / camera.cpp
index 35aaeaad4ef4059d586de477633d141f69527540..efd8a338952b79adefd276eee92f9a9623d4b1f5 100644 (file)
@@ -215,7 +215,8 @@ static inline v2f dir(const v2f &pos_dist)
 
 void Camera::addArmInertia(f32 player_yaw)
 {
-       m_cam_vel.X = std::fabs((m_last_cam_pos.X - player_yaw) / 0.016f) * 0.01f;
+       m_cam_vel.X = std::fabs(rangelim(m_last_cam_pos.X - player_yaw,
+               -100.0f, 100.0f) / 0.016f) * 0.01f;
        m_cam_vel.Y = std::fabs((m_last_cam_pos.Y - m_camera_direction.Y) / 0.016f);
        f32 gap_X = std::fabs(WIELDMESH_OFFSET_X - m_wieldmesh_offset.X);
        f32 gap_Y = std::fabs(WIELDMESH_OFFSET_Y - m_wieldmesh_offset.Y);
@@ -616,7 +617,7 @@ void Camera::drawNametags()
                        // shadow can remain.
                        continue;
                }
-               v3f pos = nametag->parent_node->getAbsolutePosition() + v3f(0.0, 1.1 * BS, 0.0);
+               v3f pos = nametag->parent_node->getAbsolutePosition() + nametag->nametag_pos * BS;
                f32 transformed_pos[4] = { pos.X, pos.Y, pos.Z, 1.0f };
                trans.multiplyWith1x4Matrix(transformed_pos);
                if (transformed_pos[3] > 0) {
@@ -640,9 +641,10 @@ void Camera::drawNametags()
 }
 
 Nametag *Camera::addNametag(scene::ISceneNode *parent_node,
-               std::string nametag_text, video::SColor nametag_color)
+               const std::string &nametag_text, video::SColor nametag_color,
+               const v3f &pos)
 {
-       Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color);
+       Nametag *nametag = new Nametag(parent_node, nametag_text, nametag_color, pos);
        m_nametags.push_back(nametag);
        return nametag;
 }