mirror of
https://github.com/OpenMW/openmw.git
synced 2025-06-25 10:11:33 +00:00
Cancel stagger and attack animations simultaneously
This commit is contained in:
parent
10ee0e6e1b
commit
af12736baf
1 changed files with 8 additions and 5 deletions
|
@ -1483,7 +1483,7 @@ bool CharacterController::updateWeaponState()
|
||||||
}
|
}
|
||||||
|
|
||||||
mAnimation->play(mCurrentWeapon, priorityWeapon,
|
mAnimation->play(mCurrentWeapon, priorityWeapon,
|
||||||
MWRender::Animation::BlendMask_All, true,
|
MWRender::Animation::BlendMask_All, false,
|
||||||
1, startKey, stopKey,
|
1, startKey, stopKey,
|
||||||
0.0f, 0);
|
0.0f, 0);
|
||||||
mUpperBodyState = UpperBodyState::Casting;
|
mUpperBodyState = UpperBodyState::Casting;
|
||||||
|
@ -1608,7 +1608,7 @@ bool CharacterController::updateWeaponState()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!animPlaying)
|
if(!animPlaying || complete >= 1.f)
|
||||||
{
|
{
|
||||||
if (mUpperBodyState == UpperBodyState::Equipping ||
|
if (mUpperBodyState == UpperBodyState::Equipping ||
|
||||||
mUpperBodyState == UpperBodyState::AttackEnd ||
|
mUpperBodyState == UpperBodyState::AttackEnd ||
|
||||||
|
@ -1622,12 +1622,16 @@ bool CharacterController::updateWeaponState()
|
||||||
if (mUpperBodyState != UpperBodyState::Equipping && isRecovery())
|
if (mUpperBodyState != UpperBodyState::Equipping && isRecovery())
|
||||||
mAnimation->disable(mCurrentHit);
|
mAnimation->disable(mCurrentHit);
|
||||||
|
|
||||||
|
if (animPlaying)
|
||||||
|
mAnimation->disable(mCurrentWeapon);
|
||||||
|
|
||||||
mUpperBodyState = UpperBodyState::WeaponEquipped;
|
mUpperBodyState = UpperBodyState::WeaponEquipped;
|
||||||
}
|
}
|
||||||
else if (mUpperBodyState == UpperBodyState::Unequipping)
|
else if (mUpperBodyState == UpperBodyState::Unequipping)
|
||||||
mUpperBodyState = UpperBodyState::None;
|
mUpperBodyState = UpperBodyState::None;
|
||||||
}
|
}
|
||||||
else if(complete >= 1.0f && !isRandomAttackAnimation(mCurrentWeapon))
|
|
||||||
|
if (complete >= 1.0f && !isRandomAttackAnimation(mCurrentWeapon))
|
||||||
{
|
{
|
||||||
std::string start, stop;
|
std::string start, stop;
|
||||||
switch(mUpperBodyState)
|
switch(mUpperBodyState)
|
||||||
|
@ -1686,9 +1690,8 @@ bool CharacterController::updateWeaponState()
|
||||||
|
|
||||||
if(!start.empty())
|
if(!start.empty())
|
||||||
{
|
{
|
||||||
bool autodisable = mUpperBodyState == UpperBodyState::AttackEnd;
|
|
||||||
mAnimation->disable(mCurrentWeapon);
|
mAnimation->disable(mCurrentWeapon);
|
||||||
mAnimation->play(mCurrentWeapon, priorityWeapon, MWRender::Animation::BlendMask_All, autodisable, weapSpeed, start, stop, 0.0f, 0);
|
mAnimation->play(mCurrentWeapon, priorityWeapon, MWRender::Animation::BlendMask_All, false, weapSpeed, start, stop, 0.0f, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(complete >= 1.0f && isRandomAttackAnimation(mCurrentWeapon))
|
else if(complete >= 1.0f && isRandomAttackAnimation(mCurrentWeapon))
|
||||||
|
|
Loading…
Reference in a new issue