diff options
| author | prep <prep@lindenlab.com> | 2010-12-06 17:15:56 -0500 | 
|---|---|---|
| committer | prep <prep@lindenlab.com> | 2010-12-06 17:15:56 -0500 | 
| commit | cb8dbaf0ef0c66294440aa209997de1a8bce382d (patch) | |
| tree | 71478098d2cb5bdb70297474d07df85e5fbf5248 | |
| parent | 40e3f15988a2c4ed99673f1f4ea449bab179048a (diff) | |
Fix for SH-542
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 18 | ||||
| -rw-r--r-- | indra/newview/llvoavatar.h | 1 | ||||
| -rw-r--r-- | indra/newview/llvoavatarself.cpp | 1 | 
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);  } | 
