diff --git a/indra/newview/rlvcommon.h b/indra/newview/rlvcommon.h index a0e99b7154a02adcee4b8d1093576bf762b08d64..f29fe3abb48ac09630066c5717b38daa9f7f9cce 100644 --- a/indra/newview/rlvcommon.h +++ b/indra/newview/rlvcommon.h @@ -151,12 +151,12 @@ class RlvCommandHandler { public: virtual ~RlvCommandHandler() {} - virtual bool onAddRemCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } - virtual bool onClearCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } - virtual bool onReplyCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } - virtual bool onForceCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } + virtual bool onAddRemCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } + virtual bool onClearCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } + virtual bool onReplyCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } + virtual bool onForceCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { return false; } }; -typedef bool (RlvCommandHandler::*rlvCommandHandler)(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); +typedef bool (RlvCommandHandler::*rlvCommandHandler)(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); // ============================================================================ // Generic menu enablers diff --git a/indra/newview/rlvextensions.cpp b/indra/newview/rlvextensions.cpp index de2a1e8c2369fd34c99acb52504c1da463bd949d..2e38ecd06b5d93164b43fc3f3f5001a8e0d54e6d 100644 --- a/indra/newview/rlvextensions.cpp +++ b/indra/newview/rlvextensions.cpp @@ -54,19 +54,19 @@ RlvExtGetSet::RlvExtGetSet() } // Checked: 2009-05-17 (RLVa-0.2.0a) -bool RlvExtGetSet::onForceCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) +bool RlvExtGetSet::onForceCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { - return processCommand(idObj, rlvCmd, cmdRet); + return processCommand(rlvCmd, cmdRet); } // Checked: 2009-05-17 (RLVa-0.2.0a) -bool RlvExtGetSet::onReplyCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) +bool RlvExtGetSet::onReplyCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet) { - return processCommand(idObj, rlvCmd, cmdRet); + return processCommand(rlvCmd, cmdRet); } // Checked: 2009-12-23 (RLVa-1.1.0k) | Modified: RLVa-1.1.0k -bool RlvExtGetSet::processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& eRet) +bool RlvExtGetSet::processCommand(const RlvCommand& rlvCmd, ERlvCmdRet& eRet) { std::string strBehaviour = rlvCmd.getBehaviour(), strGetSet, strSetting; int idxSetting = strBehaviour.find('_'); @@ -88,7 +88,7 @@ bool RlvExtGetSet::processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, } else if ( ("set" == strGetSet) && (RLV_TYPE_FORCE == rlvCmd.getParamType()) ) { - if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETDEBUG, idObj)) + if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETDEBUG, rlvCmd.getObjectID())) eRet = onSetDebug(strSetting, rlvCmd.getOption()); return true; } @@ -103,7 +103,7 @@ bool RlvExtGetSet::processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, } else if ( ("set" == strGetSet) && (RLV_TYPE_FORCE == rlvCmd.getParamType()) ) { - if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETENV, idObj)) + if (!gRlvHandler.hasBehaviourExcept(RLV_BHVR_SETENV, rlvCmd.getObjectID())) eRet = onSetEnv(strSetting, rlvCmd.getOption()); return true; } diff --git a/indra/newview/rlvextensions.h b/indra/newview/rlvextensions.h index ff7c550efaca0500fdd193866c70cfa3f4a55ab2..ed6bfc4928ae6fba54ecab51dad7fd2cb9d16658 100644 --- a/indra/newview/rlvextensions.h +++ b/indra/newview/rlvextensions.h @@ -33,8 +33,8 @@ public: RlvExtGetSet(); virtual ~RlvExtGetSet() {} - virtual bool onForceCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); - virtual bool onReplyCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); + virtual bool onForceCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); + virtual bool onReplyCommand(const RlvCommand& rlvCmd, ERlvCmdRet& cmdRet); protected: std::string onGetDebug(std::string strSetting); std::string onGetPseudoDebug(const std::string& strSetting); @@ -44,7 +44,7 @@ protected: std::string onGetEnv(std::string strSetting); ERlvCmdRet onSetEnv(std::string strSetting, const std::string& strValue); - bool processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& eRet); + bool processCommand(const RlvCommand& rlvCmd, ERlvCmdRet& eRet); public: enum { DBG_READ = 0x01, DBG_WRITE = 0x02, DBG_PERSIST = 0x04, DBG_PSEUDO = 0x08 }; diff --git a/indra/newview/rlvfloaters.cpp b/indra/newview/rlvfloaters.cpp index 0a5550dc8b7353270e9b1d18f341603796707f54..16b8b857cdcd617d926e9be26de635fe1f247677 100644 --- a/indra/newview/rlvfloaters.cpp +++ b/indra/newview/rlvfloaters.cpp @@ -53,7 +53,7 @@ std::string rlvGetItemNameFromObjID(const LLUUID& idObj, bool fIncludeAttachPt = // Checked: 2010-04-18 (RLVa-1.2.0e) | Modified: RLVa-1.2.0e void RlvFloaterBehaviours::onOpen(const LLSD& sdKey) { - m_ConnRlvCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvFloaterBehaviours::onRlvCommand, this, _2, _3)); + m_ConnRlvCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvFloaterBehaviours::onRlvCommand, this, _1, _2)); refreshAll(); } @@ -149,7 +149,7 @@ void RlvFloaterBehaviours::onAvatarNameLookup(const LLUUID& idAgent, const std:: // Checked: 2010-03-11 (RLVa-1.2.0a) | Added: RLVa-1.2.0a void RlvFloaterLocks::onOpen(const LLSD& sdKey) { - m_ConnRlvCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvFloaterLocks::onRlvCommand, this, _2, _3)); + m_ConnRlvCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvFloaterLocks::onRlvCommand, this, _1, _2)); refreshAll(); } diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 49f51522a9efa95772d63b286134ac721e74352f..4ae46cde15ad0cab9143f54d30104edd5a26e47c 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -159,13 +159,13 @@ void RlvHandler::clearCommandHandlers() } // Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.1.0f -bool RlvHandler::notifyCommandHandlers(rlvCommandHandler f, const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& eRet, bool fNotifyAll) const +bool RlvHandler::notifyCommandHandlers(rlvCommandHandler f, const RlvCommand& rlvCmd, ERlvCmdRet& eRet, bool fNotifyAll) const { std::list<RlvCommandHandler*>::const_iterator itHandler = m_CommandHandlers.begin(); bool fContinue = true; eRet = RLV_RET_UNKNOWN; while ( (itHandler != m_CommandHandlers.end()) && ((fContinue) || (fNotifyAll)) ) { ERlvCmdRet eCmdRet = RLV_RET_UNKNOWN; - if ((fContinue = !((*itHandler)->*f)(idObj, rlvCmd, eCmdRet)) == false) + if ((fContinue = !((*itHandler)->*f)(rlvCmd, eCmdRet)) == false) eRet = eCmdRet; ++itHandler; } @@ -174,10 +174,10 @@ bool RlvHandler::notifyCommandHandlers(rlvCommandHandler f, const LLUUID& idObj, } // Checked: 2009-11-25 (RLVa-1.1.0f) | Modified: RLVa-1.1.0f -ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, bool fFromObj) +ERlvCmdRet RlvHandler::processCommand(const RlvCommand& rlvCmd, bool fFromObj) { #ifdef RLV_DEBUG - RLV_INFOS << "[" << idObj << "]: " << rlvCmd.asString() << RLV_ENDL; + RLV_INFOS << "[" << rlvCmd.getObjectID() << "]: " << rlvCmd.asString() << RLV_ENDL; #endif // RLV_DEBUG if (!rlvCmd.isValid()) @@ -191,7 +191,7 @@ ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlv // Using a stack for executing commands solves a few problems: // - if we passed RlvObject::m_UUID for idObj somewhere and process a @clear then idObj points to invalid/cleared memory at the end // - if command X triggers command Y along the way then getCurrentCommand()/getCurrentObject() still return Y even when finished - m_CurCommandStack.push(&rlvCmd); m_CurObjectStack.push(idObj); + m_CurCommandStack.push(&rlvCmd); m_CurObjectStack.push(rlvCmd.getObjectID()); const LLUUID& idCurObj = m_CurObjectStack.top(); ERlvCmdRet eRet = RLV_RET_UNKNOWN; @@ -230,7 +230,7 @@ ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlv if (fAdded) { // If FALSE then this was a duplicate, there's no need to handle those if (!m_pGCTimer) m_pGCTimer = new RlvGCTimer(); - eRet = processAddRemCommand(idCurObj, rlvCmd); + eRet = processAddRemCommand(rlvCmd); // notifyBehaviourObservers(rlvCmd, !fFromObj); } else @@ -251,7 +251,7 @@ ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlv #endif // RLV_DEBUG if (fRemoved) { // Don't handle non-sensical removes - eRet = processAddRemCommand(idCurObj, rlvCmd); + eRet = processAddRemCommand(rlvCmd); // notifyBehaviourObservers(rlvCmd, !fFromObj); if (0 == itObj->second.m_Commands.size()) @@ -269,13 +269,13 @@ ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlv } break; case RLV_TYPE_CLEAR: // Checked: 2009-11-25 (RLVa-1.1.0f) | Modified: RLVa-1.1.0f - eRet = processClearCommand(idCurObj, rlvCmd); + eRet = processClearCommand(rlvCmd); break; case RLV_TYPE_FORCE: // Checked: 2009-11-26 (RLVa-1.1.0f) | Modified: RLVa-1.1.0f - eRet = processForceCommand(idCurObj, rlvCmd); + eRet = processForceCommand(rlvCmd); break; case RLV_TYPE_REPLY: // Checked: 2009-11-25 (RLVa-1.1.0f) | Modified: RLVa-1.1.0f - eRet = processReplyCommand(idCurObj, rlvCmd); + eRet = processReplyCommand(rlvCmd); break; case RLV_TYPE_UNKNOWN: // Checked: 2009-11-25 (RLVa-1.1.0f) | Modified: RLVa-1.1.0f default: @@ -284,7 +284,7 @@ ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const RlvCommand& rlv } RLV_ASSERT(RLV_RET_UNKNOWN != eRet); - m_OnCommand(idCurObj, rlvCmd, eRet, !fFromObj); + m_OnCommand(rlvCmd, eRet, !fFromObj); #ifdef RLV_DEBUG RLV_INFOS << "\t--> command " << ((eRet & RLV_RET_SUCCESS) ? "succeeded" : "failed") << RLV_ENDL; @@ -306,17 +306,17 @@ void RlvHandler::processRetainedCommands(ERlvBehaviour eBhvrFilter /*=RLV_BHVR_U if ( ((RLV_BHVR_UNKNOWN == eBhvrFilter) || (cmd.rlvCmd.getBehaviourType() == eBhvrFilter)) && ((RLV_TYPE_UNKNOWN == eTypeFilter) || (cmd.rlvCmd.getParamType() == eTypeFilter)) ) { - processCommand(cmd.idObject, cmd.rlvCmd, true); + processCommand(cmd.rlvCmd, true); m_Retained.erase(itCurCmd); } } } -ERlvCmdRet RlvHandler::processClearCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) +ERlvCmdRet RlvHandler::processClearCommand(const RlvCommand& rlvCmd) { const std::string& strFilter = rlvCmd.getParam(); std::string strCmdRem; - rlv_object_map_t::const_iterator itObj = m_Objects.find(idObj); + rlv_object_map_t::const_iterator itObj = m_Objects.find(rlvCmd.getObjectID()); if (itObj != m_Objects.end()) // No sense in clearing if we don't have any commands for this object { const RlvObject& rlvObj = itObj->second; bool fContinue = true; @@ -329,14 +329,14 @@ ERlvCmdRet RlvHandler::processClearCommand(const LLUUID& idObj, const RlvCommand if ( (strFilter.empty()) || (std::string::npos != strCmdRem.find(strFilter)) ) { fContinue = (rlvObj.m_Commands.size() > 1); // rlvObj will become invalid once we remove the last command - processCommand(idObj, strCmdRem.append("=y"), false); + processCommand(rlvCmd.getObjectID(), strCmdRem.append("=y"), false); } } } // Let our observers know about clear commands ERlvCmdRet eRet = RLV_RET_SUCCESS; - notifyCommandHandlers(&RlvCommandHandler::onClearCommand, idObj, rlvCmd, eRet, true); + notifyCommandHandlers(&RlvCommandHandler::onClearCommand, rlvCmd, eRet, true); return RLV_RET_SUCCESS; // Don't fail clear commands even if the object didn't exist since it confuses people } @@ -950,7 +950,7 @@ void RlvHandler::clearState() #define VERIFY_OPTION_REF(x) { if (!(x)) { eRet = RLV_RET_FAILED_OPTION; break; } fRefCount = true; } // Checked: 2010-03-03 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a -ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) +ERlvCmdRet RlvHandler::processAddRemCommand(const RlvCommand& rlvCmd) { // NOTE: - at this point the command has already been: // * added to the RlvObject @@ -962,14 +962,14 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman switch (eBhvr) { case RLV_BHVR_DETACH: // @detach[:<option>]=n|y - eRet = onAddRemDetach(idObj, rlvCmd, fRefCount); + eRet = onAddRemDetach(rlvCmd, fRefCount); break; case RLV_BHVR_ADDATTACH: // @addattach[:<option>]=n|y case RLV_BHVR_REMATTACH: // @addattach[:<option>]=n|y - eRet = onAddRemAttach(idObj, rlvCmd, fRefCount); + eRet = onAddRemAttach(rlvCmd, fRefCount); break; case RLV_BHVR_SETENV: // @setenv=n|y - eRet = onAddRemSetEnv(idObj, rlvCmd, fRefCount); + eRet = onAddRemSetEnv(rlvCmd, fRefCount); break; case RLV_BHVR_ADDOUTFIT: // @addoutfit[:<layer>]=n|y - Checked: 2010-08-29 (RLVa-1.2.1c) | Modified: RLVa-1.2.1c case RLV_BHVR_REMOUTFIT: // @remoutfit[:<layer>]=n|y - Checked: 2010-08-29 (RLVa-1.2.1c) | Modified: RLVa-1.2.1c @@ -984,9 +984,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman if ( (rlvCmdOption.isEmpty()) || ((LLWearableType::EType)idxType == rlvCmdOption.getWearableType()) ) { if (RLV_TYPE_ADD == eType) - gRlvWearableLocks.addWearableTypeLock((LLWearableType::EType)idxType, idObj, eLock); + gRlvWearableLocks.addWearableTypeLock((LLWearableType::EType)idxType, rlvCmd.getObjectID(), eLock); else - gRlvWearableLocks.removeWearableTypeLock((LLWearableType::EType)idxType, idObj, eLock); + gRlvWearableLocks.removeWearableTypeLock((LLWearableType::EType)idxType, rlvCmd.getObjectID(), eLock); } } } @@ -999,9 +999,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman VERIFY_OPTION_REF( (LLStringUtil::convertToS32(strOption, nChannel)) && (RlvUtil::isValidReplyChannel(nChannel)) ); if (RLV_TYPE_ADD == eType) - addException(idObj, eBhvr, nChannel); + addException(rlvCmd.getObjectID(), eBhvr, nChannel); else - removeException(idObj, eBhvr, nChannel); + removeException(rlvCmd.getObjectID(), eBhvr, nChannel); } break; case RLV_BHVR_SENDCHANNEL: // @sendchannel[:<channel>]=n|y - Checked: 2010-03-26 (RLVa-1.2.0b) | Modified: RLVa-1.1.0h @@ -1011,9 +1011,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman if ( (LLStringUtil::convertToS32(strOption, nChannel)) && (nChannel > 0) ) { if (RLV_TYPE_ADD == eType) - addException(idObj, eBhvr, nChannel); + addException(rlvCmd.getObjectID(), eBhvr, nChannel); else - removeException(idObj, eBhvr, nChannel); + removeException(rlvCmd.getObjectID(), eBhvr, nChannel); break; } VERIFY_OPTION_REF(strOption.empty()); @@ -1026,9 +1026,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman VERIFY_OPTION_REF( (!strOption.empty()) && (rlvParseNotifyOption(strOption, nChannel, strFilter)) ); if (RLV_TYPE_ADD == eType) - RlvBehaviourNotifyHandler::getInstance()->addNotify(idObj, nChannel, strFilter); + RlvBehaviourNotifyHandler::getInstance()->addNotify(rlvCmd.getObjectID(), nChannel, strFilter); else - RlvBehaviourNotifyHandler::getInstance()->removeNotify(idObj, nChannel, strFilter); + RlvBehaviourNotifyHandler::getInstance()->removeNotify(rlvCmd.getObjectID(), nChannel, strFilter); } break; case RLV_BHVR_SHOWHOVERTEXT: // @showhovertext:<uuid>=n|y - Checked: 2010-03-27 (RLVa-1.2.0b) | Modified: RLVa-1.1.0h @@ -1038,9 +1038,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman VERIFY_OPTION_REF(idException.notNull()); if (RLV_TYPE_ADD == eType) - addException(idObj, eBhvr, idException); + addException(rlvCmd.getObjectID(), eBhvr, idException); else - removeException(idObj, eBhvr, idException); + removeException(rlvCmd.getObjectID(), eBhvr, idException); // Clear/restore the object's hover text as needed LLViewerObject* pObj = gObjectList.findObject(idException); @@ -1056,9 +1056,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman VERIFY_OPTION_REF(idException.notNull()); if (RLV_TYPE_ADD == eType) - addException(idObj, eBhvr, idException); + addException(rlvCmd.getObjectID(), eBhvr, idException); else - removeException(idObj, eBhvr, idException); + removeException(rlvCmd.getObjectID(), eBhvr, idException); } break; #endif // RLV_EXTENSION_CMD_TOUCHXXX @@ -1117,9 +1117,9 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman if (idException.notNull()) // If there's an option then it should specify a valid UUID { if (RLV_TYPE_ADD == eType) - addException(idObj, eBhvr, idException); + addException(rlvCmd.getObjectID(), eBhvr, idException); else - removeException(idObj, eBhvr, idException); + removeException(rlvCmd.getObjectID(), eBhvr, idException); break; } VERIFY_OPTION_REF(strOption.empty()); @@ -1127,7 +1127,7 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman break; case RLV_BHVR_UNKNOWN: // Pass unknown commands on to registered command handlers - return (notifyCommandHandlers(&RlvCommandHandler::onAddRemCommand, idObj, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; + return (notifyCommandHandlers(&RlvCommandHandler::onAddRemCommand, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; default: // Fail with "Invalid param" if none of the above handled it eRet = RLV_RET_FAILED_PARAM; @@ -1140,13 +1140,13 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman if (RLV_TYPE_ADD == eType) { if (rlvCmd.isStrict()) - addException(idObj, RLV_BHVR_PERMISSIVE, eBhvr); + addException(rlvCmd.getObjectID(), RLV_BHVR_PERMISSIVE, eBhvr); m_Behaviours[eBhvr]++; } else { if (rlvCmd.isStrict()) - removeException(idObj, RLV_BHVR_PERMISSIVE, eBhvr); + removeException(rlvCmd.getObjectID(), RLV_BHVR_PERMISSIVE, eBhvr); m_Behaviours[eBhvr]--; } @@ -1167,7 +1167,7 @@ ERlvCmdRet RlvHandler::processAddRemCommand(const LLUUID& idObj, const RlvComman } // Checked: 2010-03-03 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a -ERlvCmdRet RlvHandler::onAddRemAttach(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount) +ERlvCmdRet RlvHandler::onAddRemAttach(const RlvCommand& rlvCmd, bool& fRefCount) { RLV_ASSERT( (RLV_TYPE_ADD == rlvCmd.getParamType()) || (RLV_TYPE_REMOVE == rlvCmd.getParamType()) ); RLV_ASSERT( (RLV_BHVR_ADDATTACH == rlvCmd.getBehaviourType()) || (RLV_BHVR_REMATTACH == rlvCmd.getBehaviourType()) ); @@ -1187,9 +1187,9 @@ ERlvCmdRet RlvHandler::onAddRemAttach(const LLUUID& idObj, const RlvCommand& rlv if ( (0 == idxAttachPt) || (itAttach->first == idxAttachPt) ) { if (RLV_TYPE_ADD == rlvCmd.getParamType()) - gRlvAttachmentLocks.addAttachmentPointLock(itAttach->first, idObj, eLock); + gRlvAttachmentLocks.addAttachmentPointLock(itAttach->first, rlvCmd.getObjectID(), eLock); else - gRlvAttachmentLocks.removeAttachmentPointLock(itAttach->first, idObj, eLock); + gRlvAttachmentLocks.removeAttachmentPointLock(itAttach->first, rlvCmd.getObjectID(), eLock); } } @@ -1198,7 +1198,7 @@ ERlvCmdRet RlvHandler::onAddRemAttach(const LLUUID& idObj, const RlvCommand& rlv } // Checked: 2010-02-28 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a -ERlvCmdRet RlvHandler::onAddRemDetach(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount) +ERlvCmdRet RlvHandler::onAddRemDetach(const RlvCommand& rlvCmd, bool& fRefCount) { RLV_ASSERT( (RLV_TYPE_ADD == rlvCmd.getParamType()) || (RLV_TYPE_REMOVE == rlvCmd.getParamType()) ); RLV_ASSERT(RLV_BHVR_DETACH == rlvCmd.getBehaviourType()); @@ -1210,13 +1210,13 @@ ERlvCmdRet RlvHandler::onAddRemDetach(const LLUUID& idObj, const RlvCommand& rlv // - if it hasn't rezzed yet then it's a @detach=n from a non-attachment and RlvHandler::onAttach() takes care of it // * @detach=y: - if it ever rezzed as an attachment we'll have cached the UUID of its root // - if it never rezzed as an attachment there won't be a lock to remove - rlv_object_map_t::const_iterator itObj = m_Objects.find(idObj); + rlv_object_map_t::const_iterator itObj = m_Objects.find(rlvCmd.getObjectID()); if ( (itObj != m_Objects.end()) && (itObj->second.m_fLookup) && (itObj->second.m_idxAttachPt) ) { if (RLV_TYPE_ADD == rlvCmd.getParamType()) - gRlvAttachmentLocks.addAttachmentLock(itObj->second.m_idRoot, idObj); + gRlvAttachmentLocks.addAttachmentLock(itObj->second.m_idRoot, itObj->first); else - gRlvAttachmentLocks.removeAttachmentLock(itObj->second.m_idRoot, idObj); + gRlvAttachmentLocks.removeAttachmentLock(itObj->second.m_idRoot, itObj->first); } } else // @detach:<attachpt>=n|y - RLV_LOCK_ADD and RLV_LOCK_REMOVE locks an attachment *point* @@ -1227,9 +1227,9 @@ ERlvCmdRet RlvHandler::onAddRemDetach(const LLUUID& idObj, const RlvCommand& rlv return RLV_RET_FAILED_OPTION; if (RLV_TYPE_ADD == rlvCmd.getParamType()) - gRlvAttachmentLocks.addAttachmentPointLock(idxAttachPt, idObj, (ERlvLockMask)(RLV_LOCK_ADD | RLV_LOCK_REMOVE)); + gRlvAttachmentLocks.addAttachmentPointLock(idxAttachPt, rlvCmd.getObjectID(), (ERlvLockMask)(RLV_LOCK_ADD | RLV_LOCK_REMOVE)); else - gRlvAttachmentLocks.removeAttachmentPointLock(idxAttachPt, idObj, (ERlvLockMask)(RLV_LOCK_ADD | RLV_LOCK_REMOVE)); + gRlvAttachmentLocks.removeAttachmentPointLock(idxAttachPt, rlvCmd.getObjectID(), (ERlvLockMask)(RLV_LOCK_ADD | RLV_LOCK_REMOVE)); } fRefCount = false; // Don't reference count @detach[:<option>]=n @@ -1237,7 +1237,7 @@ ERlvCmdRet RlvHandler::onAddRemDetach(const LLUUID& idObj, const RlvCommand& rlv } // Checked: 2010-03-18 (RLVa-1.2.0e) | Modified: RLVa-1.2.0a -ERlvCmdRet RlvHandler::onAddRemSetEnv(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount) +ERlvCmdRet RlvHandler::onAddRemSetEnv(const RlvCommand& rlvCmd, bool& fRefCount) { // Sanity check - there shouldn't be an option if (!rlvCmd.getOption().empty()) @@ -1270,7 +1270,7 @@ ERlvCmdRet RlvHandler::onAddRemSetEnv(const LLUUID& idObj, const RlvCommand& rlv // // Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.1.0j -ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) const +ERlvCmdRet RlvHandler::processForceCommand(const RlvCommand& rlvCmd) const { RLV_ASSERT(RLV_TYPE_FORCE == rlvCmd.getParamType()); @@ -1278,20 +1278,20 @@ ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand switch (rlvCmd.getBehaviourType()) { case RLV_BHVR_DETACH: // @detach[:<option>]=force - Checked: 2009-12-21 (RLVa-1.1.0k) | Modified: RLVa-1.1.0j - eRet = onForceRemAttach(idObj, rlvCmd); + eRet = onForceRemAttach(rlvCmd); if (RLV_RET_SUCCESS != eRet) eRet = onForceWear(rlvCmd.getOption(), false, false); break; case RLV_BHVR_REMATTACH: // @remattach[:<option>]=force - eRet = onForceRemAttach(idObj, rlvCmd); + eRet = onForceRemAttach(rlvCmd); break; case RLV_BHVR_REMOUTFIT: // @remoutfit[:<option>]=force - eRet = onForceRemOutfit(idObj, rlvCmd); + eRet = onForceRemOutfit(rlvCmd); break; case RLV_BHVR_UNSIT: // @unsit=force - Checked: 2010-03-18 (RLVa-1.2.0c) | Modified: RLVa-0.2.0g { VERIFY_OPTION(rlvCmd.getOption().empty()); - if ( (isAgentAvatarValid()) && (gAgentAvatarp->isSitting()) && (!hasBehaviourExcept(RLV_BHVR_UNSIT, idObj)) ) + if ( (isAgentAvatarValid()) && (gAgentAvatarp->isSitting()) && (!hasBehaviourExcept(RLV_BHVR_UNSIT, rlvCmd.getObjectID())) ) { gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); send_agent_update(TRUE, TRUE); // See behaviour notes on why we have to force an agent update here @@ -1299,7 +1299,7 @@ ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand } break; case RLV_BHVR_SIT: // @sit:<option>=force - eRet = onForceSit(idObj, rlvCmd); + eRet = onForceSit(rlvCmd); break; case RLV_BHVR_TPTO: // @tpto:<option>=force - Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.0.0h { @@ -1373,7 +1373,7 @@ ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand { VERIFY_OPTION(rlvCmd.getOption().empty()); // NOTE: @detachme should respect locks but shouldn't respect things like nostrip - const LLViewerObject* pAttachObj = gObjectList.findObject(idObj); + const LLViewerObject* pAttachObj = gObjectList.findObject(rlvCmd.getObjectID()); if ( (pAttachObj) && (pAttachObj->isAttachment()) && (!gRlvAttachmentLocks.isLockedAttachment(pAttachObj)) ) { gMessageSystem->newMessage("ObjectDetach"); @@ -1389,7 +1389,7 @@ ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand break; case RLV_BHVR_UNKNOWN: // Pass unknown commands on to registered command handlers - return (notifyCommandHandlers(&RlvCommandHandler::onForceCommand, idObj, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; + return (notifyCommandHandlers(&RlvCommandHandler::onForceCommand, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; default: // Fail with "Invalid param" if none of the above handled it eRet = RLV_RET_FAILED_PARAM; @@ -1399,7 +1399,7 @@ ERlvCmdRet RlvHandler::processForceCommand(const LLUUID& idObj, const RlvCommand } // Checked: 2010-08-29 (RLVa-1.2.1c) | Modified: RLVa-1.2.1c -ERlvCmdRet RlvHandler::onForceRemAttach(const LLUUID& idObj, const RlvCommand& rlvCmd) const +ERlvCmdRet RlvHandler::onForceRemAttach(const RlvCommand& rlvCmd) const { RLV_ASSERT(RLV_TYPE_FORCE == rlvCmd.getParamType()); RLV_ASSERT( (RLV_BHVR_REMATTACH == rlvCmd.getBehaviourType()) || (RLV_BHVR_DETACH == rlvCmd.getBehaviourType()) ); @@ -1434,7 +1434,7 @@ ERlvCmdRet RlvHandler::onForceRemAttach(const LLUUID& idObj, const RlvCommand& r } // Checked: 2010-08-29 (RLVa-1.2.1c) | Modified: RLVa-1.2.1c -ERlvCmdRet RlvHandler::onForceRemOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd) const +ERlvCmdRet RlvHandler::onForceRemOutfit(const RlvCommand& rlvCmd) const { RlvCommandOptionGeneric rlvCmdOption(rlvCmd.getOption()); if ( (!rlvCmdOption.isWearableType()) && (!rlvCmdOption.isEmpty()) ) @@ -1449,7 +1449,7 @@ ERlvCmdRet RlvHandler::onForceRemOutfit(const LLUUID& idObj, const RlvCommand& r } // Checked: 2010-03-18 (RLVa-1.2.0c) | Modified: RLVa-1.1.0j -ERlvCmdRet RlvHandler::onForceSit(const LLUUID& idObj, const RlvCommand& rlvCmd) const +ERlvCmdRet RlvHandler::onForceSit(const RlvCommand& rlvCmd) const { LLViewerObject* pObj = NULL; LLUUID idTarget(rlvCmd.getOption()); // Sanity checking - we need to know about the object and it should identify a prim/linkset @@ -1511,7 +1511,7 @@ ERlvCmdRet RlvHandler::onForceWear(const LLViewerInventoryCategory* pFolder, boo // // Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.1.0f -ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) const +ERlvCmdRet RlvHandler::processReplyCommand(const RlvCommand& rlvCmd) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); @@ -1533,7 +1533,7 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand strReply = RlvStrings::getVersionNum(); break; case RLV_BHVR_GETATTACH: // @getattach[:<layer>]=<channel> - eRet = onGetAttach(idObj, rlvCmd, strReply); + eRet = onGetAttach(rlvCmd, strReply); break; #ifdef RLV_EXTENSION_CMD_GETXXXNAMES case RLV_BHVR_GETATTACHNAMES: // @getattachnames[:<grp>]=<channel> @@ -1543,7 +1543,7 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand break; #endif // RLV_EXTENSION_CMD_GETXXXNAMES case RLV_BHVR_GETOUTFIT: // @getoutfit[:<layer>]=<channel> - eRet = onGetOutfit(idObj, rlvCmd, strReply); + eRet = onGetOutfit(rlvCmd, strReply); break; #ifdef RLV_EXTENSION_CMD_GETXXXNAMES case RLV_BHVR_GETOUTFITNAMES: // @getoutfitnames=<channel> @@ -1556,17 +1556,17 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand #ifdef RLV_EXTENSION_CMD_FINDFOLDERS case RLV_BHVR_FINDFOLDERS: // @findfolders:<criteria>=<channel> #endif // RLV_EXTENSION_CMD_FINDFOLDERS - eRet = onFindFolder(idObj, rlvCmd, strReply); + eRet = onFindFolder(rlvCmd, strReply); break; case RLV_BHVR_GETPATH: // @getpath[:<option>]=<channel> case RLV_BHVR_GETPATHNEW: // @getpathnew[:<option>]=<channel> - eRet = onGetPath(idObj, rlvCmd, strReply); + eRet = onGetPath(rlvCmd, strReply); break; case RLV_BHVR_GETINV: // @getinv[:<path>]=<channel> - eRet = onGetInv(idObj, rlvCmd, strReply); + eRet = onGetInv(rlvCmd, strReply); break; case RLV_BHVR_GETINVWORN: // @getinvworn[:<path>]=<channel> - eRet = onGetInvWorn(idObj, rlvCmd, strReply); + eRet = onGetInvWorn(rlvCmd, strReply); break; case RLV_BHVR_GETSITID: // @getsitid=<channel> - Checked: 2010-03-09 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a { @@ -1584,7 +1584,7 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand case RLV_BHVR_GETSTATUS: // @getstatus[:<option>]=<channel> - Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.1.0f { // NOTE: specification says response should start with '/' but RLV-1.16.1 returns an empty string when no rules are set - rlv_object_map_t::const_iterator itObj = m_Objects.find(idObj); + rlv_object_map_t::const_iterator itObj = m_Objects.find(rlvCmd.getObjectID()); if (itObj != m_Objects.end()) strReply = itObj->second.getStatusString(rlvCmd.getOption()); } @@ -1598,7 +1598,7 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand break; case RLV_BHVR_UNKNOWN: // Pass unknown commands on to registered command handlers - return (notifyCommandHandlers(&RlvCommandHandler::onReplyCommand, idObj, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; + return (notifyCommandHandlers(&RlvCommandHandler::onReplyCommand, rlvCmd, eRet, false)) ? eRet : RLV_RET_FAILED_UNKNOWN; default: // Fail with "Invalid param" if none of the above handled it return RLV_RET_FAILED_PARAM; @@ -1613,7 +1613,7 @@ ERlvCmdRet RlvHandler::processReplyCommand(const LLUUID& idObj, const RlvCommand } // Checked: 2010-04-07 (RLVa-1.2.0d) | Modified: RLVa-1.1.0f -ERlvCmdRet RlvHandler::onFindFolder(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onFindFolder(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT( (RLV_BHVR_FINDFOLDER == rlvCmd.getBehaviourType()) || (RLV_BHVR_FINDFOLDERS == rlvCmd.getBehaviourType()) ); @@ -1656,7 +1656,7 @@ ERlvCmdRet RlvHandler::onFindFolder(const LLUUID& idObj, const RlvCommand& rlvCm } // Checked: 2010-03-19 (RLVa-1.2.0c) | Modified: RLVa-1.1.0e -ERlvCmdRet RlvHandler::onGetAttach(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetAttach(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT(RLV_BHVR_GETATTACH == rlvCmd.getBehaviourType()); @@ -1680,7 +1680,7 @@ ERlvCmdRet RlvHandler::onGetAttach(const LLUUID& idObj, const RlvCommand& rlvCmd if ( (0 == idxAttachPt) || (itAttach->first == idxAttachPt) ) { bool fWorn = (pAttachPt->getNumObjects()) && - ( (!RlvSettings::getHideLockedAttach()) || (RlvForceWear::isForceDetachable(pAttachPt, true, idObj)) ); + ( (!RlvSettings::getHideLockedAttach()) || (RlvForceWear::isForceDetachable(pAttachPt, true, rlvCmd.getObjectID())) ); strReply.push_back( (fWorn) ? '1' : '0' ); } } @@ -1688,7 +1688,7 @@ ERlvCmdRet RlvHandler::onGetAttach(const LLUUID& idObj, const RlvCommand& rlvCmd } // Checked: 2010-03-19 (RLVa-1.2.0a) | Added: RLVa-1.1.0e -ERlvCmdRet RlvHandler::onGetAttachNames(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetAttachNames(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT( (RLV_BHVR_GETATTACHNAMES == rlvCmd.getBehaviourType()) || (RLV_BHVR_GETADDATTACHNAMES == rlvCmd.getBehaviourType()) || @@ -1718,7 +1718,7 @@ ERlvCmdRet RlvHandler::onGetAttachNames(const LLUUID& idObj, const RlvCommand& r break; */ case RLV_BHVR_GETREMATTACHNAMES: // Every attachment point that can be detached (but ignore any locks set by the issuer) - fAdd = RlvForceWear::isForceDetachable(pAttachPt, true, idObj); + fAdd = RlvForceWear::isForceDetachable(pAttachPt, true, rlvCmd.getObjectID()); break; default: break; @@ -1736,7 +1736,7 @@ ERlvCmdRet RlvHandler::onGetAttachNames(const LLUUID& idObj, const RlvCommand& r } // Checked: 2010-03-09 (RLVa-1.2.0a) | Modified: RLVa-1.1.0f -ERlvCmdRet RlvHandler::onGetInv(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetInv(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT(RLV_BHVR_GETINV == rlvCmd.getBehaviourType()); @@ -1771,7 +1771,7 @@ ERlvCmdRet RlvHandler::onGetInv(const LLUUID& idObj, const RlvCommand& rlvCmd, s struct rlv_wear_info { U32 cntWorn, cntTotal, cntChildWorn, cntChildTotal; }; // Checked: 2010-04-05 (RLVa-1.2.0d) | Modified: RLVa-1.1.0f -ERlvCmdRet RlvHandler::onGetInvWorn(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetInvWorn(const RlvCommand& rlvCmd, std::string& strReply) const { // Sanity check - gAgentAvatarp can't be NULL [see RlvForceWear::isWearingItem()] if (!isAgentAvatarValid()) @@ -1846,7 +1846,7 @@ ERlvCmdRet RlvHandler::onGetInvWorn(const LLUUID& idObj, const RlvCommand& rlvCm } // Checked: 2010-03-19 (RLVa-1.2.0c) | Modified: RLVa-1.2.0a -ERlvCmdRet RlvHandler::onGetOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetOutfit(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT(RLV_BHVR_GETOUTFIT == rlvCmd.getBehaviourType()); @@ -1873,7 +1873,7 @@ ERlvCmdRet RlvHandler::onGetOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd bool fWorn = (gAgentWearables.getWearableCount(wtRlvTypes[idxType]) > 0) && ( (!RlvSettings::getHideLockedLayers()) || (LLAssetType::AT_BODYPART == LLWearableType::getAssetType(wtRlvTypes[idxType])) || - (RlvForceWear::isForceRemovable(wtRlvTypes[idxType], true, idObj)) ); + (RlvForceWear::isForceRemovable(wtRlvTypes[idxType], true, rlvCmd.getObjectID())) ); strReply.push_back( (fWorn) ? '1' : '0' ); } } @@ -1881,7 +1881,7 @@ ERlvCmdRet RlvHandler::onGetOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd } // Checked: 2009-11-21 (RLVa-1.1.0f) | Added: RLVa-1.1.0e -ERlvCmdRet RlvHandler::onGetOutfitNames(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetOutfitNames(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT( (RLV_BHVR_GETOUTFITNAMES == rlvCmd.getBehaviourType()) || (RLV_BHVR_GETADDOUTFITNAMES == rlvCmd.getBehaviourType()) || @@ -1923,7 +1923,7 @@ ERlvCmdRet RlvHandler::onGetOutfitNames(const LLUUID& idObj, const RlvCommand& r } // Checked: 2010-08-30 (RLVa-1.2.1c) | Modified: RLVa-1.2.1c -ERlvCmdRet RlvHandler::onGetPath(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const +ERlvCmdRet RlvHandler::onGetPath(const RlvCommand& rlvCmd, std::string& strReply) const { RLV_ASSERT(RLV_TYPE_REPLY == rlvCmd.getParamType()); RLV_ASSERT( (RLV_BHVR_GETPATH == rlvCmd.getBehaviourType()) || (RLV_BHVR_GETPATHNEW == rlvCmd.getBehaviourType()) ); diff --git a/indra/newview/rlvhandler.h b/indra/newview/rlvhandler.h index 9f3ffbee5ac8a30dc59d416839b72ac66edfbe21..98a11551a95726cc141a7e72f275513cdec231f7 100644 --- a/indra/newview/rlvhandler.h +++ b/indra/newview/rlvhandler.h @@ -125,14 +125,14 @@ public: typedef boost::signals2::signal<void (ERlvBehaviour, ERlvParamType)> rlv_behaviour_signal_t; boost::signals2::connection setBehaviourCallback(const rlv_behaviour_signal_t::slot_type& cb ) { return m_OnBehaviour.connect(cb); } // The command signal is triggered whenever a command is processed - typedef boost::signals2::signal<void (const LLUUID&, const RlvCommand&, ERlvCmdRet, bool)> rlv_command_signal_t; + typedef boost::signals2::signal<void (const RlvCommand&, ERlvCmdRet, bool)> rlv_command_signal_t; boost::signals2::connection setCommandCallback(const rlv_command_signal_t::slot_type& cb ) { return m_OnCommand.connect(cb); } void addCommandHandler(RlvCommandHandler* pHandler); void removeCommandHandler(RlvCommandHandler* pHandler); protected: void clearCommandHandlers(); - bool notifyCommandHandlers(rlvCommandHandler f, const LLUUID& idObj, const RlvCommand& rlvCmd, ERlvCmdRet& eRet, bool fNotifyAll) const; + bool notifyCommandHandlers(rlvCommandHandler f, const RlvCommand& rlvCmd, ERlvCmdRet& eRet, bool fNotifyAll) const; // Externally invoked event handlers public: @@ -149,31 +149,31 @@ public: * Command processing */ protected: - ERlvCmdRet processCommand(const LLUUID& idObj, const RlvCommand& rlvCmd, bool fFromObj); - ERlvCmdRet processClearCommand(const LLUUID& idObj, const RlvCommand& rlvCmd); - ERlvCmdRet processForceCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) const; + ERlvCmdRet processCommand(const RlvCommand& rlvCmd, bool fFromObj); + ERlvCmdRet processClearCommand(const RlvCommand& rlvCmd); // Command handlers (RLV_TYPE_ADD and RLV_TYPE_CLEAR) - ERlvCmdRet processAddRemCommand(const LLUUID& idObj, const RlvCommand& rlvCmd); - ERlvCmdRet onAddRemAttach(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount); - ERlvCmdRet onAddRemDetach(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount); - ERlvCmdRet onAddRemSetEnv(const LLUUID& idObj, const RlvCommand& rlvCmd, bool& fRefCount); + ERlvCmdRet processAddRemCommand(const RlvCommand& rlvCmd); + ERlvCmdRet onAddRemAttach(const RlvCommand& rlvCmd, bool& fRefCount); + ERlvCmdRet onAddRemDetach(const RlvCommand& rlvCmd, bool& fRefCount); + ERlvCmdRet onAddRemSetEnv(const RlvCommand& rlvCmd, bool& fRefCount); // Command handlers (RLV_TYPE_FORCE) - ERlvCmdRet onForceRemAttach(const LLUUID& idObj, const RlvCommand& rlvCmd) const; - ERlvCmdRet onForceRemOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd) const; - ERlvCmdRet onForceSit(const LLUUID& idObj, const RlvCommand& rlvCmd) const; + ERlvCmdRet processForceCommand(const RlvCommand& rlvCmd) const; + ERlvCmdRet onForceRemAttach(const RlvCommand& rlvCmd) const; + ERlvCmdRet onForceRemOutfit(const RlvCommand& rlvCmd) const; + ERlvCmdRet onForceSit(const RlvCommand& rlvCmd) const; ERlvCmdRet onForceWear(const std::string& strPath, bool fAttach, bool fMatchAll) const; ERlvCmdRet onForceWear(const LLViewerInventoryCategory* pFolder, bool fAttach, bool fMatchAll) const; // Command handlers (RLV_TYPE_REPLY) - ERlvCmdRet processReplyCommand(const LLUUID& idObj, const RlvCommand& rlvCmd) const; - ERlvCmdRet onFindFolder(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetAttach(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetAttachNames(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetInv(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetInvWorn(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetOutfit(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetOutfitNames(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; - ERlvCmdRet onGetPath(const LLUUID& idObj, const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet processReplyCommand(const RlvCommand& rlvCmd) const; + ERlvCmdRet onFindFolder(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetAttach(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetAttachNames(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetInv(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetInvWorn(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetOutfit(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetOutfitNames(const RlvCommand& rlvCmd, std::string& strReply) const; + ERlvCmdRet onGetPath(const RlvCommand& rlvCmd, std::string& strReply) const; // -------------------------------- @@ -349,7 +349,7 @@ inline ERlvCmdRet RlvHandler::processCommand(const LLUUID& idObj, const std::str m_Retained.push_back(RlvRetainedCommand(idObj, RlvCommand(idObj, strCommand))); return RLV_RET_RETAINED; } - return processCommand(idObj, RlvCommand(idObj, strCommand), fFromObj); + return processCommand(RlvCommand(idObj, strCommand), fFromObj); } // ============================================================================ diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index d1e71eb225a39fb7cc38f0486c818ac9657744c2..6d1a003e19a4c6ba8fccc68011bd760c13f0c772 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -828,11 +828,11 @@ RlvBehaviourNotifyHandler::RlvBehaviourNotifyHandler() { // NOTE: the reason we use rlv_command_signal_t instead of the better-suited rlv_behaviour_signal_t is because // RLV will notify scripts about "invalid" commands so we need to as well - m_ConnCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvBehaviourNotifyHandler::onCommand, this, _1, _2, _3, _4)); + m_ConnCommand = gRlvHandler.setCommandCallback(boost::bind(&RlvBehaviourNotifyHandler::onCommand, this, _1, _2, _3)); } // Checked: 2010-03-03 (RLVa-1.2.0a) | Modified: RLVa-1.2.0a -void RlvBehaviourNotifyHandler::onCommand(const LLUUID& idRlvObj, const RlvCommand& rlvCmd, ERlvCmdRet eRet, bool fInternal) +void RlvBehaviourNotifyHandler::onCommand(const RlvCommand& rlvCmd, ERlvCmdRet eRet, bool fInternal) { if (fInternal) return; diff --git a/indra/newview/rlvhelper.h b/indra/newview/rlvhelper.h index 1e95d30db2eb2189bd305806cb5231197af8eacb..93d7a7966836bddf423c3293db730e7df08e556f 100644 --- a/indra/newview/rlvhelper.h +++ b/indra/newview/rlvhelper.h @@ -309,7 +309,7 @@ public: delete this; // Delete ourself if we have nothing to do } protected: - void onCommand(const LLUUID& idRlvObj, const RlvCommand& rlvCmd, ERlvCmdRet eRet, bool fInternal); + void onCommand(const RlvCommand& rlvCmd, ERlvCmdRet eRet, bool fInternal); protected: struct notifyData