This commit is contained in:
Lars Müller 2024-12-30 18:00:57 +01:00 committed by GitHub
commit 8f4f0b70f0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 3 additions and 37 deletions

View File

@ -1368,49 +1368,21 @@ void Client::sendPlayerPos()
if (!player)
return;
// Save bandwidth by only updating position when
// player is not dead and something changed
// Don't send anything when player is dead:
// The server would ignore it anyways
if (m_activeobjects_received && player->isDead())
return;
ClientMap &map = m_env.getClientMap();
u8 camera_fov = std::fmin(255.0f, map.getCameraFov() * 80.0f);
u8 wanted_range = std::fmin(255.0f,
std::ceil(map.getWantedRange() * (1.0f / MAP_BLOCKSIZE)));
u32 keyPressed = player->control.getKeysPressed();
bool camera_inverted = m_camera->getCameraMode() == CAMERA_MODE_THIRD_FRONT;
f32 movement_speed = player->control.movement_speed;
f32 movement_dir = player->control.movement_direction;
if (
player->last_position == player->getPosition() &&
player->last_speed == player->getSpeed() &&
player->last_pitch == player->getPitch() &&
player->last_yaw == player->getYaw() &&
player->last_keyPressed == keyPressed &&
player->last_camera_fov == camera_fov &&
player->last_camera_inverted == camera_inverted &&
player->last_wanted_range == wanted_range &&
player->last_movement_speed == movement_speed &&
player->last_movement_dir == movement_dir)
return;
player->last_position = player->getPosition();
player->last_speed = player->getSpeed();
player->last_pitch = player->getPitch();
player->last_yaw = player->getYaw();
player->last_keyPressed = keyPressed;
player->last_camera_fov = camera_fov;
player->last_camera_inverted = camera_inverted;
player->last_wanted_range = wanted_range;
player->last_movement_speed = movement_speed;
player->last_movement_dir = movement_dir;
NetworkPacket pkt(TOSERVER_PLAYERPOS, 12 + 12 + 4 + 4 + 4 + 1 + 1 + 1 + 4 + 4);
writePlayerPos(player, &map, &pkt, camera_inverted);
writePlayerPos(player, &m_env.getClientMap(), &pkt, camera_inverted);
Send(&pkt);
}

View File

@ -83,12 +83,6 @@ public:
v3f last_speed;
float last_pitch = 0.0f;
float last_yaw = 0.0f;
u32 last_keyPressed = 0;
u8 last_camera_fov = 0;
u8 last_wanted_range = 0;
bool last_camera_inverted = false;
f32 last_movement_speed = 0.0f;
f32 last_movement_dir = 0.0f;
float camera_impact = 0.0f;