From cf6e3ab9330b60f35a41a4021864b7b489a6fbe5 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Mon, 19 Aug 2013 09:36:51 -0700 Subject: [PATCH] Fix a potential divide-by-zero --- apps/openmw/mwmechanics/character.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 14cc67486..ec2bb1b59 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -885,7 +885,12 @@ void CharacterController::update(float duration) if(mAnimation && !mSkipAnim) { - Ogre::Vector3 moved = mAnimation->runAnimation(duration) / duration; + Ogre::Vector3 moved = mAnimation->runAnimation(duration); + if(duration > 0.0f) + moved /= duration; + else + moved = Ogre::Vector3(0.0f); + // Ensure we're moving in generally the right direction if(mMovementSpeed > 0.f) { @@ -899,6 +904,7 @@ void CharacterController::update(float duration) (movement.z > 0.0f && movement.z > moved.z*2.0f)) moved.z = movement.z; } + // Update movement if(moved.squaredLength() > 1.0f) world->queueMovement(mPtr, moved); }