diff options
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 5 | ||||
| -rw-r--r-- | indra/newview/llvovolume.cpp | 11 | 
2 files changed, 14 insertions, 2 deletions
| diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 2c330daa27..40fb05abc4 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5902,6 +5902,7 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo)  	if (vobj->isMesh() &&  		((vobj->getVolume() && !vobj->getVolume()->isMeshAssetLoaded()) || !gMeshRepo.meshRezEnabled()))  	{ +        LL_DEBUGS("AnimatedObjects") << "failed to add attachment overrides for root object " << root_object->getID() << " mesh asset not loaded" << LL_ENDL;  		return;  	}  	const LLMeshSkinInfo*  pSkinData = vobj->getSkinInfo(); @@ -5968,6 +5969,10 @@ void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo)  			}							  		}  	} +    else +    { +        LL_DEBUGS("AnimatedObjects") << "failed to add attachment overrides for root object " << root_object->getID() << " not mesh or no pSkinData" << LL_ENDL; +    }  	//Rebuild body data if we altered joints/pelvis  	if ( pelvisGotSet )  diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp index 8fcb498fca..c007b446f7 100644 --- a/indra/newview/llvovolume.cpp +++ b/indra/newview/llvovolume.cpp @@ -3474,9 +3474,16 @@ void LLVOVolume::afterReparent()      if (isAnimatedObject() && getControlAvatar())      { -        LL_DEBUGS("AnimatedObjects") << "adding attachment overrides, parent is animated object"  +        LL_DEBUGS("AnimatedObjects") << "adding attachment overrides, parent is animated object "               << ((LLViewerObject*)getParent())->getID() << LL_ENDL; -        //getControlAvatar()->addAttachmentOverridesForObject(this); + +        // MAINT-8239 - doing a full rebuild whenever parent is set +        // makes the joint overrides load more robustly. In theory, +        // addAttachmentOverrides should be sufficient, but in +        // practice doing a full rebuild helps compensate for +        // notifyMeshLoaded() not being called reliably enough. +         +        // was: getControlAvatar()->addAttachmentOverridesForObject(this);          getControlAvatar()->rebuildAttachmentOverrides();          getControlAvatar()->updateAnimations();      } | 
