diff options
-rw-r--r-- | src/content_cao.cpp | 1 | ||||
-rw-r--r-- | src/localplayer.cpp | 23 | ||||
-rw-r--r-- | src/nodedef.cpp | 2 |
3 files changed, 16 insertions, 10 deletions
diff --git a/src/content_cao.cpp b/src/content_cao.cpp index 821862c9b..c3575af1f 100644 --- a/src/content_cao.cpp +++ b/src/content_cao.cpp @@ -1538,7 +1538,6 @@ public: { LocalPlayer *player = m_env->getLocalPlayer(); player->isAttached = true; - player->overridePosition = m_attachment_position; } } } diff --git a/src/localplayer.cpp b/src/localplayer.cpp index ecfa4467c..63400cc29 100644 --- a/src/localplayer.cpp +++ b/src/localplayer.cpp @@ -34,6 +34,8 @@ with this program; if not, write to the Free Software Foundation, Inc., LocalPlayer::LocalPlayer(IGameDef *gamedef): Player(gamedef), + isAttached(false), + overridePosition(v3f(0,0,0)), m_sneak_node(32767,32767,32767), m_sneak_node_exists(false), m_old_node_below(32767,32767,32767), @@ -53,6 +55,12 @@ LocalPlayer::~LocalPlayer() void LocalPlayer::move(f32 dtime, Map &map, f32 pos_max_d, core::list<CollisionInfo> *collision_info) { + INodeDefManager *nodemgr = m_gamedef->ndef(); + + v3f position = getPosition(); + + v3f old_speed = m_speed; + // Copy parent position if local player is attached if(isAttached) { @@ -60,12 +68,6 @@ void LocalPlayer::move(f32 dtime, Map &map, f32 pos_max_d, return; } - INodeDefManager *nodemgr = m_gamedef->ndef(); - - v3f position = getPosition(); - - v3f old_speed = m_speed; - // Skip collision detection if a special movement mode is used bool fly_allowed = m_gamedef->checkLocalPrivilege("fly"); bool free_move = fly_allowed && g_settings->getBool("free_move"); @@ -359,7 +361,14 @@ void LocalPlayer::applyControl(float dtime) setPitch(control.pitch); setYaw(control.yaw); - + + // Nullify speed and don't run positioning code if the player is attached + if(isAttached) + { + setSpeed(v3f(0,0,0)); + return; + } + v3f move_direction = v3f(0,0,1); move_direction.rotateXZBy(getYaw()); diff --git a/src/nodedef.cpp b/src/nodedef.cpp index 53deea11b..180219ba8 100644 --- a/src/nodedef.cpp +++ b/src/nodedef.cpp @@ -254,7 +254,6 @@ void ContentFeatures::serialize(std::ostream &os) os<<serializeString(liquid_alternative_flowing); os<<serializeString(liquid_alternative_source); writeU8(os, liquid_viscosity); - writeU8(os, liquid_renewable); writeU8(os, light_source); writeU32(os, damage_per_second); node_box.serialize(os); @@ -312,7 +311,6 @@ void ContentFeatures::deSerialize(std::istream &is) liquid_alternative_flowing = deSerializeString(is); liquid_alternative_source = deSerializeString(is); liquid_viscosity = readU8(is); - liquid_renewable = readU8(is); light_source = readU8(is); damage_per_second = readU32(is); node_box.deSerialize(is); |