diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/rlvhandler.cpp | 52 |
1 files changed, 26 insertions, 26 deletions
diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 8eee7e36a6..2cc06b3bbc 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -307,6 +307,30 @@ ECmdRet ForceHandler<EBehaviour::Unsit>::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; } +template<> template<> +ECmdRet ForceHandler<EBehaviour::RemOutfit>::onCommand(const RlvCommand& rlvCmd) +{ + std::vector<std::string> optionList; + auto option = rlvCmd.getOption(); + if (option.empty()) + { + LLAppearanceMgr::instance().removeAllClothesFromAvatar(); + } + else + { + LLWearableType::EType type = LLWearableType::getInstance()->typeNameToType(option); + if (type >= LLWearableType::WT_SHAPE + && type < LLWearableType::WT_COUNT + && (gAgentWearables.getWearableCount(type) > 0)) + { + U32 wearable_index = gAgentWearables.getWearableCount(type) - 1; + LLUUID item_id = gAgentWearables.getWearableItemID(type,wearable_index); + LLAppearanceMgr::instance().removeItemFromAvatar(item_id); + } + } + return ECmdRet::Succeeded; +} + #define RESTRAINED_LOVE_OUTFIT(A) \ auto folderID = gInventory.getRootFolderID();\ LLNameCategoryCollector has_name("#RLV");\ @@ -334,34 +358,10 @@ ECmdRet ForceHandler<EBehaviour::Unsit>::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; #define RESTRAINED_LOVE_REPLACE \ - LLAppearanceMgr::instance().replaceCurrentOutfit(folderID); + LLAppearanceMgr::instance().replaceCurrentOutfit(folderID); #define RESTRAINED_LOVE_ADD \ - LLAppearanceMgr::instance().addCategoryToCurrentOutfit(folderID); - -template<> template<> -ECmdRet ForceHandler<EBehaviour::RemOutfit>::onCommand(const RlvCommand& rlvCmd) -{ - std::vector<std::string> optionList; - auto option = rlvCmd.getOption(); - if (option.empty()) - { - LLAppearanceMgr::instance().removeAllClothesFromAvatar(); - } - else - { - LLWearableType::EType type = LLWearableType::getInstance()->typeNameToType(option); - if (type >= LLWearableType::WT_SHAPE - && type < LLWearableType::WT_COUNT - && (gAgentWearables.getWearableCount(type) > 0)) - { - U32 wearable_index = gAgentWearables.getWearableCount(type) - 1; - LLUUID item_id = gAgentWearables.getWearableItemID(type,wearable_index); - LLAppearanceMgr::instance().removeItemFromAvatar(item_id); - } - } - return ECmdRet::Succeeded; -} + LLAppearanceMgr::instance().addCategoryToCurrentOutfit(folderID); template<> template<> ECmdRet ForceHandler<EBehaviour::Attach>::onCommand(const RlvCommand& rlvCmd) |