summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatarself.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llvoavatarself.cpp')
-rw-r--r--indra/newview/llvoavatarself.cpp18
1 files changed, 14 insertions, 4 deletions
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index b6655dd078..aa5d82a096 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -700,13 +700,23 @@ void LLVOAvatarSelf::idleUpdate(LLAgent &agent, const F64 &time)
// virtual
LLJoint *LLVOAvatarSelf::getJoint(const std::string &name)
{
- if (mScreenp)
+ LLJoint *jointp = NULL;
+ jointp = LLVOAvatar::getJoint(name);
+ if (!jointp && mScreenp)
{
- LLJoint* jointp = mScreenp->findJoint(name);
- if (jointp) return jointp;
+ jointp = mScreenp->findJoint(name);
+ if (jointp)
+ {
+ mJointMap[name] = jointp;
+ }
}
- return LLVOAvatar::getJoint(name);
+ if (jointp && jointp != mScreenp && jointp != mRoot)
+ {
+ llassert(LLVOAvatar::getJoint((S32)jointp->getJointNum())==jointp);
+ }
+ return jointp;
}
+
// virtual
BOOL LLVOAvatarSelf::setVisualParamWeight(const LLVisualParam *which_param, F32 weight)
{