diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index aaa6c7aeb..f843be66e 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -1229,12 +1229,17 @@ bool CharacterController::updateWeaponState() && mUpperBodyState != UpperCharState_UnEquipingWeap && !isStillWeapon) { - // Note: we do not disable unequipping animation automatically to avoid body desync - getWeaponGroup(mWeaponType, weapgroup); - mAnimation->play(weapgroup, priorityWeapon, - MWRender::Animation::BlendMask_All, false, - 1.0f, "unequip start", "unequip stop", 0.0f, 0); - mUpperBodyState = UpperCharState_UnEquipingWeap; + // We can not play un-equip animation when we switch to HtH + // because we already un-equipped weapon + if (weaptype != WeapType_HandToHand || mWeaponType == WeapType_Spell) + { + // Note: we do not disable unequipping animation automatically to avoid body desync + getWeaponGroup(mWeaponType, weapgroup); + mAnimation->play(weapgroup, priorityWeapon, + MWRender::Animation::BlendMask_All, false, + 1.0f, "unequip start", "unequip stop", 0.0f, 0); + mUpperBodyState = UpperCharState_UnEquipingWeap; + } if(!downSoundId.empty()) {