From 3891bc43e084b9bd1c345638dfbbffa9d71658c9 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Mon, 17 Jan 2011 02:40:53 +0200 Subject: fine-tuning of map generator and server and stuff. --- src/player.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/player.cpp') diff --git a/src/player.cpp b/src/player.cpp index 3c06283a0..72e44f0e0 100644 --- a/src/player.cpp +++ b/src/player.cpp @@ -46,6 +46,20 @@ Player::~Player() // Y direction is ignored void Player::accelerate(v3f target_speed, f32 max_increase) { + v3f d_wanted = target_speed - m_speed; + d_wanted.Y = 0; + f32 dl_wanted = d_wanted.getLength(); + f32 dl = dl_wanted; + if(dl > max_increase) + dl = max_increase; + + v3f d = d_wanted.normalize() * dl; + + m_speed.X += d.X; + m_speed.Z += d.Z; + //m_speed += d; + +#if 0 // old code if(m_speed.X < target_speed.X - max_increase) m_speed.X += max_increase; else if(m_speed.X > target_speed.X + max_increase) @@ -63,6 +77,7 @@ void Player::accelerate(v3f target_speed, f32 max_increase) m_speed.Z = target_speed.Z; else if(m_speed.Z > target_speed.Z) m_speed.Z = target_speed.Z; +#endif } /* @@ -209,7 +224,7 @@ void LocalPlayer::move(f32 dtime, Map &map) position += m_speed * dtime; // Skip collision detection if player is non-local - if(isLocal() == false) + if(isLocal() == false || HAXMODE) { setPosition(position); return; @@ -286,10 +301,6 @@ void LocalPlayer::move(f32 dtime, Map &map) { // Doing nothing here will block the player from // walking over map borders - - // Go over borders in debug mode - if(HAXMODE) - continue; } core::aabbox3d nodebox = Map::getNodeBox( -- cgit v1.2.3