summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatar.cpp
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2020-07-24 18:54:41 +0100
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2020-07-24 18:54:41 +0100
commitd760f693ca3a01946380e7d5d352c18eabf4c055 (patch)
tree3772cd3b11f3629ea770556cc35d58b771c645f7 /indra/newview/llvoavatar.cpp
parent6037847ea133c6faed0ff4bea023d72f5799d9e1 (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.cpp16
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();