From b1d2961edb593393da5ae88e275be7bb2568969b Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Fri, 11 Jul 2025 14:31:55 +0800 Subject: @attachover:=force implementation See f4e04a3e7bac42a8cb18e9c70b67bf97ce020d8c --- indra/newview/rlvhandler.cpp | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index f3306b0f21..066543987f 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -331,6 +331,33 @@ ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; } +template<> template<> +ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) +{ + auto rlvFolderID = findDescendentCategoryIDByName(gInventory.getRootFolderID(), "#RLV"); + if (rlvFolderID == LLUUID::null) + return ECmdRet::FailedNoSharedRoot; + std::vector optionList; + auto option = rlvCmd.getOption(); + if (!option.empty()) + { + auto folderID = findDescendentCategoryIDByName(rlvFolderID, option); + if (folderID == LLUUID::null) + { + Util::parseStringList(option, optionList, "/"); + auto iter = optionList.begin(); + for(; optionList.end() != iter; ++iter) + { + auto name = *iter; + if (!name.empty()) + folderID = findDescendentCategoryIDByName(folderID, name); + } + } + LLAppearanceMgr::instance().addCategoryToCurrentOutfit(folderID); + } + return ECmdRet::Succeeded; +} + // AddRem ECmdRet CommandHandlerBaseImpl::processCommand(const RlvCommand& rlvCmd, BhvrHandlerFunc* pHandler, BhvrToggleHandlerFunc* pToggleHandler) -- cgit v1.2.3