Skip to content
Snippets Groups Projects
Commit 15b86a6b authored by MirceaKitsune's avatar MirceaKitsune Committed by Perttu Ahola
Browse files

Don't send player position from client to server if the player hasn't moved

parent eeb09002
Branches
Tags
No related merge requests found
......@@ -1976,10 +1976,24 @@ void Client::sendPlayerPos()
{
//JMutexAutoLock envlock(m_env_mutex); //bulk comment-out
Player *myplayer = m_env.getLocalPlayer();
LocalPlayer *myplayer = m_env.getLocalPlayer();
if(myplayer == NULL)
return;
// Save bandwidth by only updating position when something changed
if(myplayer->last_position == myplayer->getPosition() &&
myplayer->last_speed == myplayer->getSpeed() &&
myplayer->last_pitch == myplayer->getPitch() &&
myplayer->last_yaw == myplayer->getYaw() &&
myplayer->last_keyPressed == myplayer->keyPressed)
return;
myplayer->last_position = myplayer->getPosition();
myplayer->last_speed = myplayer->getSpeed();
myplayer->last_pitch = myplayer->getPitch();
myplayer->last_yaw = myplayer->getYaw();
myplayer->last_keyPressed = myplayer->keyPressed;
u16 our_peer_id;
{
//JMutexAutoLock lock(m_con_mutex); //bulk comment-out
......
......@@ -36,6 +36,11 @@ LocalPlayer::LocalPlayer(IGameDef *gamedef):
Player(gamedef),
isAttached(false),
overridePosition(v3f(0,0,0)),
last_position(v3f(0,0,0)),
last_speed(v3f(0,0,0)),
last_pitch(0),
last_yaw(0),
last_keyPressed(0),
m_sneak_node(32767,32767,32767),
m_sneak_node_exists(false),
m_old_node_below(32767,32767,32767),
......
......@@ -44,6 +44,14 @@ class LocalPlayer : public Player
void applyControl(float dtime);
v3s16 getStandingNodePos();
// Used to check if anything changed and prevent sending packets if not
v3f last_position;
v3f last_speed;
float last_pitch;
float last_yaw;
unsigned int last_keyPressed;
private:
// This is used for determining the sneaking range
v3s16 m_sneak_node;
......
......@@ -220,7 +220,7 @@ class Player
}
u32 keyPressed;
protected:
IGameDef *m_gamedef;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment