From f1b4c2e400743dfb207f8b9bbad19e50af6b95ed Mon Sep 17 00:00:00 2001 From: "Alex \"rainChu\" Haddad" Date: Wed, 2 Oct 2013 07:03:39 -0400 Subject: [PATCH] Fixed first person offset to use world transform It slipped my mind that some necks might not be perfectly vertical. --- apps/openmw/mwrender/camera.cpp | 2 +- apps/openmw/mwrender/npcanimation.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwrender/camera.cpp b/apps/openmw/mwrender/camera.cpp index 232b95c69..9af3987a8 100644 --- a/apps/openmw/mwrender/camera.cpp +++ b/apps/openmw/mwrender/camera.cpp @@ -190,7 +190,7 @@ namespace MWRender void Camera::setSneakOffset() { if(mAnimation) - mAnimation->addFirstPersonOffset(Ogre::Vector3(-9.8f, 0.f, 0.f)); + mAnimation->addFirstPersonOffset(Ogre::Vector3(0.f, 0.f, -9.8f)); } float Camera::getYaw() diff --git a/apps/openmw/mwrender/npcanimation.cpp b/apps/openmw/mwrender/npcanimation.cpp index 84e89773c..9ffe53eab 100644 --- a/apps/openmw/mwrender/npcanimation.cpp +++ b/apps/openmw/mwrender/npcanimation.cpp @@ -457,7 +457,7 @@ Ogre::Vector3 NpcAnimation::runAnimation(float timepassed) // This has to be done before this function ends; // updateSkeletonInstance, below, touches the hands. - node->translate(mFirstPersonOffset); + node->translate(mFirstPersonOffset, Ogre::Node::TS_WORLD); } mFirstPersonOffset = 0.f; // reset the X, Y, Z offset for the next frame.