diff options
author | Loren Shih <seraph@lindenlab.com> | 2010-09-08 13:36:42 -0400 |
---|---|---|
committer | Loren Shih <seraph@lindenlab.com> | 2010-09-08 13:36:42 -0400 |
commit | 074f4c8c59eebbf109c2846c35cdab05f3997db8 (patch) | |
tree | 06324180244953c174d2ac1dcd916b48d5c59206 /indra/newview/llvoavatarself.cpp | |
parent | 16031c354ff37462acac4d2dd1effe0af9a8745a (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.cpp | 14 |
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; |