From 1c604445ba4f25f4ed2cf92e105e2a57e291bfcf Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Tue, 5 Feb 2013 06:59:01 -0800 Subject: [PATCH] Store movement vectors as they get returned --- apps/openmw/mwmechanics/actors.cpp | 16 ++++++---------- apps/openmw/mwmechanics/actors.hpp | 7 ++++++- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/apps/openmw/mwmechanics/actors.cpp b/apps/openmw/mwmechanics/actors.cpp index e829d4679..e01303c02 100644 --- a/apps/openmw/mwmechanics/actors.cpp +++ b/apps/openmw/mwmechanics/actors.cpp @@ -258,19 +258,15 @@ namespace MWMechanics if(!paused) { - PtrControllerMap::iterator player(mActors.end()); + mMovement.reserve(mActors.size()); + for(PtrControllerMap::iterator iter(mActors.begin());iter != mActors.end();++iter) { - if(iter->first.getRefData().getHandle() == "player") - { - /* Make sure player updates last (in case a cell transition occurs) */ - player = iter; - continue; - } - iter->second.update(duration); + Ogre::Vector3 movement = iter->second.update(duration); + mMovement.push_back(std::make_pair(iter->first, movement)); } - if(player != mActors.end()) - player->second.update(duration); + + mMovement.clear(); } } diff --git a/apps/openmw/mwmechanics/actors.hpp b/apps/openmw/mwmechanics/actors.hpp index 8c3df6c28..6968f3401 100644 --- a/apps/openmw/mwmechanics/actors.hpp +++ b/apps/openmw/mwmechanics/actors.hpp @@ -25,9 +25,14 @@ namespace MWMechanics { typedef std::map PtrControllerMap; PtrControllerMap mActors; - float mDuration; + + typedef std::vector > PtrMovementList; + PtrMovementList mMovement; + std::map mDeathCount; + float mDuration; + void updateNpc (const MWWorld::Ptr& ptr, float duration, bool paused); void adjustMagicEffects (const MWWorld::Ptr& creature);