From ffcb7fb280f737e1f678dbb8401b9316d643881b Mon Sep 17 00:00:00 2001 From: mrcheko Date: Fri, 10 Jan 2014 19:04:07 +0200 Subject: [PATCH] fix for bug scrawl mentioned --- apps/openmw/mwmechanics/character.cpp | 4 ++-- apps/openmw/mwrender/animation.hpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 75fdc2550..019054af2 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -181,7 +181,7 @@ void CharacterController::refreshCurrentAnims(CharacterState idle, CharacterStat mCurrentHit = sHitList[iHit]; if(mPtr.getRefData().getHandle()=="player" && !mAnimation->hasAnimation(mCurrentHit)) { - //only 4 different hit animations if player is in 1st person + //only 3 different hit animations if player is in 1st person int iHit = rand() % (sHitListSize-3); mCurrentHit = sHitList[iHit]; } @@ -489,7 +489,7 @@ bool CharacterController::updateNpcState(bool onground, bool inwater, bool isrun const bool isWerewolf = stats.isWerewolf(); bool forcestateupdate = false; - if(weaptype != mWeaponType) + if(weaptype != mWeaponType && mHitState != CharState_KnockDown) { forcestateupdate = true; diff --git a/apps/openmw/mwrender/animation.hpp b/apps/openmw/mwrender/animation.hpp index a682f3960..4ba68dd85 100644 --- a/apps/openmw/mwrender/animation.hpp +++ b/apps/openmw/mwrender/animation.hpp @@ -258,6 +258,7 @@ public: /** Returns true if the named animation group is playing. */ bool isPlaying(const std::string &groupname) const; + //Checks if playing any animation which shouldn't be stopped when switching camera view modes bool allowSwitchViewMode() const; /** Gets info about the given animation group.