summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrad Payne (Vir Linden) <vir@lindenlab.com>2017-09-26 15:39:22 +0100
committerBrad Payne (Vir Linden) <vir@lindenlab.com>2017-09-26 15:39:22 +0100
commit2851793e670bbdff79f97534206bd3d7b4ae003d (patch)
tree037603ed02cff66fd166875b92b63edceedca5b8
parent59e0c9be7137cfc9a6aec635acc9c0da9e854a24 (diff)
SL-800 - also need to add attachment overrides in the complementary case
-rw-r--r--indra/newview/llvoavatar.cpp4
-rw-r--r--indra/newview/llvovolume.cpp5
2 files changed, 7 insertions, 2 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index fdce66e2c6..0fcb4ffc55 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -5717,7 +5717,7 @@ void LLVOAvatar::rebuildAttachmentOverrides()
//-----------------------------------------------------------------------------
void LLVOAvatar::addAttachmentOverridesForObject(LLViewerObject *vo)
{
- if (vo->getAvatar() != this)
+ if (vo->getAvatar() != this && vo->getAvatarAncestor() != this)
{
LL_WARNS("Avatar") << "called with invalid avatar" << LL_ENDL;
return;
@@ -5936,7 +5936,7 @@ void LLVOAvatar::showAttachmentOverrides(bool verbose) const
// AXON handle NPC case
void LLVOAvatar::removeAttachmentOverridesForObject(LLViewerObject *vo)
{
- if (vo->getAvatar() != this)
+ if (vo->getAvatar() != this && vo->getAvatarAncestor() != this)
{
LL_WARNS("Avatar") << "called with invalid avatar" << LL_ENDL;
return;
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index e8122c0748..121fb9c11e 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -3348,6 +3348,11 @@ void LLVOVolume::setExtendedMeshFlags(U32 flags)
// Making a rigged mesh into an animated object
getAvatarAncestor()->removeAttachmentOverridesForObject(this);
}
+ else
+ {
+ // Making an animated object into a rigged mesh
+ getAvatarAncestor()->addAttachmentOverridesForObject(this);
+ }
}
}
}