summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/newview/llvoavatar.cpp5
-rw-r--r--indra/newview/llvovolume.cpp11
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();
}