From c851748c416ecfb06afd35b62b0063395e4cea0b Mon Sep 17 00:00:00 2001 From: Kitty Barnett Date: Sat, 9 Oct 2010 00:20:35 +0200 Subject: [PATCH] - internal : RlvForceWear::forceFolder() should check that a wearable can actually be worn before adding it to the wear queue -> lack of the above check doesn't actually cause issues since LLAppearanceMgr::updateCOF() will still block the wear attempt but it's better with it in place --HG-- branch : RLVa --- indra/newview/rlvhelper.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index 4909020de5..d468123497 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -360,9 +360,14 @@ void RlvForceWear::forceFolder(const LLViewerInventoryCategory* pFolder, EWearAc case LLAssetType::AT_CLOTHING: if (isWearAction(eAction)) { - // The check for whether we're replacing a currently worn composite item happens in onWearableArrived() - if (!isAddWearable(pItem)) - addWearable(pRlvItem, f.getWearAction(pRlvItem->getParentUUID())); + ERlvWearMask eWearMask = gRlvWearableLocks.canWear(pRlvItem); + if ( ((ACTION_WEAR_REPLACE == eCurAction) && (eWearMask & RLV_WEAR_REPLACE)) || + ((ACTION_WEAR_ADD == eCurAction) && (eWearMask & RLV_WEAR_ADD)) ) + { + // The check for whether we're replacing a currently worn composite item happens in onWearableArrived() + if (!isAddWearable(pItem)) + addWearable(pRlvItem, eCurAction); + } } else {