From cf41956cad3eea6152ef282c66d04991558d1a90 Mon Sep 17 00:00:00 2001 From: David Cernat Date: Thu, 1 Jun 2017 21:45:36 +0300 Subject: [PATCH] [Client] Prevent framerate drops caused by invalid rotation values --- apps/openmw/mwmp/DedicatedActor.cpp | 11 ++++++++--- apps/openmw/mwmp/DedicatedPlayer.cpp | 12 ++++++++---- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/apps/openmw/mwmp/DedicatedActor.cpp b/apps/openmw/mwmp/DedicatedActor.cpp index fa0709190..56da06d1e 100644 --- a/apps/openmw/mwmp/DedicatedActor.cpp +++ b/apps/openmw/mwmp/DedicatedActor.cpp @@ -104,9 +104,14 @@ void DedicatedActor::setMovementSettings() move->mPosition[0] = direction.pos[0]; move->mPosition[1] = direction.pos[1]; move->mPosition[2] = direction.pos[2]; - move->mRotation[0] = direction.rot[0]; - move->mRotation[1] = direction.rot[1]; - move->mRotation[2] = direction.rot[2]; + + // Make sure the values are valid, or we'll get an infinite error loop + if (!isnan(direction.rot[0]) && !isnan(direction.rot[1]) && !isnan(direction.rot[2])) + { + move->mRotation[0] = direction.rot[0]; + move->mRotation[1] = direction.rot[1]; + move->mRotation[2] = direction.rot[2]; + } } void DedicatedActor::setPosition() diff --git a/apps/openmw/mwmp/DedicatedPlayer.cpp b/apps/openmw/mwmp/DedicatedPlayer.cpp index 5ba963965..666a1bcfa 100644 --- a/apps/openmw/mwmp/DedicatedPlayer.cpp +++ b/apps/openmw/mwmp/DedicatedPlayer.cpp @@ -123,10 +123,14 @@ void DedicatedPlayer::move(float dt) move->mPosition[0] = direction.pos[0]; move->mPosition[1] = direction.pos[1]; move->mPosition[2] = direction.pos[2]; - move->mRotation[0] = direction.rot[0]; - move->mRotation[1] = direction.rot[1]; - move->mRotation[2] = direction.rot[2]; - + + // Make sure the values are valid, or we'll get an infinite error loop + if (!isnan(direction.rot[0]) && !isnan(direction.rot[1]) && !isnan(direction.rot[2])) + { + move->mRotation[0] = direction.rot[0]; + move->mRotation[1] = direction.rot[1]; + move->mRotation[2] = direction.rot[2]; + } } void DedicatedPlayer::setAnimFlags()