summaryrefslogtreecommitdiff
path: root/indra/newview/llvoavatarself.cpp
diff options
context:
space:
mode:
authorLoren Shih <seraph@lindenlab.com>2010-09-08 13:36:42 -0400
committerLoren Shih <seraph@lindenlab.com>2010-09-08 13:36:42 -0400
commit074f4c8c59eebbf109c2846c35cdab05f3997db8 (patch)
tree06324180244953c174d2ac1dcd916b48d5c59206 /indra/newview/llvoavatarself.cpp
parent16031c354ff37462acac4d2dd1effe0af9a8745a (diff)
VWR-22901 FIXED Backwards compatibility for multiattachments
Better handling of invalid attachment points. You can now detach points that are incompatible with your viewer, versus having those permanently in the COF>
Diffstat (limited to 'indra/newview/llvoavatarself.cpp')
-rw-r--r--indra/newview/llvoavatarself.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index a231afad3f..ec5c95469e 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -1163,12 +1163,24 @@ BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)
gMessageSystem->addUUIDFast(_PREHASH_ItemID, item_id);
gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
- // this object might have been selected, so let the selection manager know it's gone now
+ // This object might have been selected, so let the selection manager know it's gone now
LLViewerObject *found_obj = gObjectList.findObject(item_id);
if (found_obj)
{
LLSelectMgr::getInstance()->remove(found_obj);
}
+
+ // Error checking in case this object was attached to an invalid point
+ // In that case, just remove the item from COF preemptively since detach
+ // will fail.
+ if (isAgentAvatarValid())
+ {
+ const LLViewerObject *attached_obj = gAgentAvatarp->getWornAttachment(item_id);
+ if (!attached_obj)
+ {
+ LLAppearanceMgr::instance().removeCOFItemLinks(item_id, false);
+ }
+ }
return TRUE;
}
return FALSE;