From f49f90906c76f4581b1caa225ee841fd60b1c04d Mon Sep 17 00:00:00 2001 From: Tiger Wang Date: Tue, 21 Apr 2020 23:16:28 +0100 Subject: Reduced packet spam when entities idle * Try not to send look packets when nothing's changed. --- src/Mobs/Monster.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/Mobs/Monster.cpp') diff --git a/src/Mobs/Monster.cpp b/src/Mobs/Monster.cpp index 75bda197f..1c3b3a45e 100644 --- a/src/Mobs/Monster.cpp +++ b/src/Mobs/Monster.cpp @@ -490,14 +490,22 @@ void cMonster::CalcLeashActions(std::chrono::milliseconds a_Dt) void cMonster::SetPitchAndYawFromDestination(bool a_IsFollowingPath) { Vector3d BodyDistance; - if (!a_IsFollowingPath && (GetTarget() != nullptr)) + if (!a_IsFollowingPath) { + if (GetTarget() == nullptr) + { + // Avoid dirtying head position when nothing will change + // Thus avoids creating unnecessary network traffic + return; + } + BodyDistance = GetTarget()->GetPosition() - GetPosition(); } else { BodyDistance = m_NextWayPointPosition - GetPosition(); } + double BodyRotation, BodyPitch; BodyDistance.Normalize(); VectorToEuler(BodyDistance.x, BodyDistance.y, BodyDistance.z, BodyRotation, BodyPitch); -- cgit v1.2.3