summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorprep <prep@lindenlab.com>2010-12-06 17:15:56 -0500
committerprep <prep@lindenlab.com>2010-12-06 17:15:56 -0500
commitcb8dbaf0ef0c66294440aa209997de1a8bce382d (patch)
tree71478098d2cb5bdb70297474d07df85e5fbf5248
parent40e3f15988a2c4ed99673f1f4ea449bab179048a (diff)
Fix for SH-542
-rw-r--r--indra/newview/llvoavatar.cpp18
-rw-r--r--indra/newview/llvoavatar.h1
-rw-r--r--indra/newview/llvoavatarself.cpp1
3 files changed, 20 insertions, 0 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 34345f2471..f868797a58 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -5974,6 +5974,24 @@ void LLVOAvatar::resetHUDAttachments()
}
}
+void LLVOAvatar::rebuildRiggedAttachments( void )
+{
+ for ( attachment_map_t::iterator iter = mAttachmentPoints.begin(); iter != mAttachmentPoints.end(); ++iter )
+ {
+ LLViewerJointAttachment* pAttachment = iter->second;
+ LLViewerJointAttachment::attachedobjs_vec_t::iterator attachmentIterEnd = pAttachment->mAttachedObjects.end();
+
+ for ( LLViewerJointAttachment::attachedobjs_vec_t::iterator attachmentIter = pAttachment->mAttachedObjects.begin();
+ attachmentIter != attachmentIterEnd; ++attachmentIter)
+ {
+ const LLViewerObject* pAttachedObject = *attachmentIter;
+ if ( pAttachment && pAttachedObject->mDrawable.notNull() )
+ {
+ gPipeline.markRebuild(pAttachedObject->mDrawable);
+ }
+ }
+ }
+}
//-----------------------------------------------------------------------------
// detachObject()
//-----------------------------------------------------------------------------
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 833c30d6db..2e41940f28 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -690,6 +690,7 @@ public:
protected:
LLViewerJointAttachment* getTargetAttachmentPoint(LLViewerObject* viewer_object);
void lazyAttach();
+ void rebuildRiggedAttachments( void );
//--------------------------------------------------------------------
// Map of attachment points, by ID
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 5054aa3c9e..935bd4a588 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -625,6 +625,7 @@ BOOL LLVOAvatarSelf::updateCharacter(LLAgent &agent)
mScreenp->updateWorldMatrixChildren();
resetHUDAttachments();
}
+ LLVOAvatar::rebuildRiggedAttachments();
return LLVOAvatar::updateCharacter(agent);
}