diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/camera.cpp | 2 | ||||
-rw-r--r-- | src/content_cao.cpp | 1 | ||||
-rw-r--r-- | src/localplayer.cpp | 1 | ||||
-rw-r--r-- | src/localplayer.h | 4 |
4 files changed, 8 insertions, 0 deletions
diff --git a/src/camera.cpp b/src/camera.cpp index b1e588415..138b022c0 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -218,6 +218,8 @@ void Camera::update(LocalPlayer* player, f32 frametime, v2u32 screensize, // Smooth the movement when walking up stairs v3f old_player_position = m_playernode->getPosition(); v3f player_position = player->getPosition(); + if (player->isAttached && player->parent) + player_position = player->parent->getPosition(); //if(player->touching_ground && player_position.Y > old_player_position.Y) if(player->touching_ground && player_position.Y > old_player_position.Y) diff --git a/src/content_cao.cpp b/src/content_cao.cpp index ee1009b6c..84fc0bf79 100644 --- a/src/content_cao.cpp +++ b/src/content_cao.cpp @@ -1129,6 +1129,7 @@ public: { LocalPlayer *player = m_env->getLocalPlayer(); player->overridePosition = getParent()->getPosition(); + m_env->getLocalPlayer()->parent = getParent(); } } else diff --git a/src/localplayer.cpp b/src/localplayer.cpp index ee9b41c58..a90ae6967 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -35,6 +35,7 @@ with this program; if not, write to the Free Software Foundation, Inc., LocalPlayer::LocalPlayer(IGameDef *gamedef): Player(gamedef), + parent(0), isAttached(false), overridePosition(v3f(0,0,0)), last_position(v3f(0,0,0)), diff --git a/src/localplayer.h b/src/localplayer.h index 17434d379..9ac2bc682 100644 --- a/src/localplayer.h +++ b/src/localplayer.h @@ -25,6 +25,8 @@ with this program; if not, write to the Free Software Foundation, Inc., class ClientEnvironment; +class ClientActiveObject; + class LocalPlayer : public Player { public: @@ -35,6 +37,8 @@ public: { return true; } + + ClientActiveObject *parent; bool isAttached; |