diff options
author | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2020-07-24 18:54:41 +0100 |
---|---|---|
committer | Brad Payne (Vir Linden) <vir@lindenlab.com> | 2020-07-24 18:54:41 +0100 |
commit | d760f693ca3a01946380e7d5d352c18eabf4c055 (patch) | |
tree | 3772cd3b11f3629ea770556cc35d58b771c645f7 /indra/newview/llvoavatar.cpp | |
parent | 6037847ea133c6faed0ff4bea023d72f5799d9e1 (diff) |
SL-13000 - fix for animation transitions when switching to/from jellydoll
Diffstat (limited to 'indra/newview/llvoavatar.cpp')
-rw-r--r-- | indra/newview/llvoavatar.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 3156e0e724..32a168de5f 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -10688,10 +10688,6 @@ void LLVOAvatar::setOverallAppearanceJellyDoll() if (isControlAvatar()) return; - LLVector3 pelvis_pos = getJoint("mPelvis")->getPosition(); - resetSkeleton(false); - getJoint("mPelvis")->setPosition(pelvis_pos); - // stop current animations { for ( LLVOAvatar::AnimIterator anim_it= mPlayingAnimations.begin(); @@ -10699,11 +10695,19 @@ void LLVOAvatar::setOverallAppearanceJellyDoll() ++anim_it) { { - stopMotion(anim_it->first); + stopMotion(anim_it->first, TRUE); } } } processAnimationStateChanges(); + + // Start any needed anims for jellydoll + updateOverallAppearanceAnimations(); + + LLVector3 pelvis_pos = getJoint("mPelvis")->getPosition(); + resetSkeleton(false); + getJoint("mPelvis")->setPosition(pelvis_pos); + } void LLVOAvatar::setOverallAppearanceInvisible() @@ -10769,7 +10773,7 @@ void LLVOAvatar::updateOverallAppearanceAnimations() if (!is_playing) { // Anim was not requested for this av by sim, but may be playing locally - stopMotion(*it); + stopMotion(*it, TRUE); } } mJellyAnims.clear(); |