aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/localplayer.cpp33
-rw-r--r--src/localplayer.h5
-rw-r--r--src/player.cpp35
-rw-r--r--src/player.h3
4 files changed, 37 insertions, 39 deletions
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
index 60aec95d4..524c6272e 100644
--- a/src/localplayer.cpp
+++ b/src/localplayer.cpp
@@ -622,3 +622,36 @@ v3s16 LocalPlayer::getStandingNodePos()
return floatToInt(getPosition() - v3f(0, BS, 0), BS);
}
+// Horizontal acceleration (X and Z), Y direction is ignored
+void LocalPlayer::accelerateHorizontal(const v3f &target_speed, const f32 max_increase)
+{
+ if (max_increase == 0)
+ return;
+
+ v3f d_wanted = target_speed - m_speed;
+ d_wanted.Y = 0;
+ f32 dl = d_wanted.getLength();
+ if (dl > max_increase)
+ dl = max_increase;
+
+ v3f d = d_wanted.normalize() * dl;
+
+ m_speed.X += d.X;
+ m_speed.Z += d.Z;
+}
+
+// Vertical acceleration (Y), X and Z directions are ignored
+void LocalPlayer::accelerateVertical(const v3f &target_speed, const f32 max_increase)
+{
+ if (max_increase == 0)
+ return;
+
+ f32 d_wanted = target_speed.Y - m_speed.Y;
+ if (d_wanted > max_increase)
+ d_wanted = max_increase;
+ else if (d_wanted < -max_increase)
+ d_wanted = -max_increase;
+
+ m_speed.Y += d_wanted;
+}
+
diff --git a/src/localplayer.h b/src/localplayer.h
index 40a7f089e..3ae0c4e51 100644
--- a/src/localplayer.h
+++ b/src/localplayer.h
@@ -45,7 +45,7 @@ public:
bool isAttached;
v3f overridePosition;
-
+
void move(f32 dtime, Environment *env, f32 pos_max_d);
void move(f32 dtime, Environment *env, f32 pos_max_d,
std::vector<CollisionInfo> *collision_info);
@@ -81,6 +81,9 @@ public:
}
private:
+ void accelerateHorizontal(const v3f &target_speed, const f32 max_increase);
+ void accelerateVertical(const v3f &target_speed, const f32 max_increase);
+
// This is used for determining the sneaking range
v3s16 m_sneak_node;
// Whether the player is allowed to sneak
diff --git a/src/player.cpp b/src/player.cpp
index dd5e04509..623dde230 100644
--- a/src/player.cpp
+++ b/src/player.cpp
@@ -111,41 +111,6 @@ Player::~Player()
clearHud();
}
-// Horizontal acceleration (X and Z), Y direction is ignored
-void Player::accelerateHorizontal(v3f target_speed, f32 max_increase)
-{
- if(max_increase == 0)
- return;
-
- v3f d_wanted = target_speed - m_speed;
- d_wanted.Y = 0;
- f32 dl = d_wanted.getLength();
- if(dl > max_increase)
- dl = max_increase;
-
- v3f d = d_wanted.normalize() * dl;
-
- m_speed.X += d.X;
- m_speed.Z += d.Z;
-
-}
-
-// Vertical acceleration (Y), X and Z directions are ignored
-void Player::accelerateVertical(v3f target_speed, f32 max_increase)
-{
- if(max_increase == 0)
- return;
-
- f32 d_wanted = target_speed.Y - m_speed.Y;
- if(d_wanted > max_increase)
- d_wanted = max_increase;
- else if(d_wanted < -max_increase)
- d_wanted = -max_increase;
-
- m_speed.Y += d_wanted;
-
-}
-
v3s16 Player::getLightPosition() const
{
return floatToInt(m_position + v3f(0,BS+BS/2,0), BS);
diff --git a/src/player.h b/src/player.h
index 0d99297ca..50267c72c 100644
--- a/src/player.h
+++ b/src/player.h
@@ -119,9 +119,6 @@ public:
m_speed = speed;
}
- void accelerateHorizontal(v3f target_speed, f32 max_increase);
- void accelerateVertical(v3f target_speed, f32 max_increase);
-
v3f getPosition()
{
return m_position;