summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/content_cao.cpp1
-rw-r--r--src/localplayer.cpp23
-rw-r--r--src/nodedef.cpp2
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);