From 3831d3a8dc9ce85e6128d5943df781c4ef9e0157 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Sat, 28 Jun 2025 20:28:41 +0800 Subject: Basic scaffolding to support force commands --- indra/newview/rlvhandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 6c4b439105..63914064cf 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -109,6 +109,7 @@ ECmdRet RlvHandler::processCommand(std::reference_wrapper rlvC switch (rlvCmd.get().getParamType()) { case EParamType::Reply: + case EParamType::Force: eRet = rlvCmd.get().processCommand(); break; case EParamType::Unknown: @@ -222,4 +223,11 @@ ECmdRet ReplyHandler::onCommand(const RlvCommand& rlvCmd return ECmdRet::Succeeded; } +// Force + +ECmdRet CommandHandlerBaseImpl::processCommand(const RlvCommand& rlvCmd, ForceHandlerFunc* pHandler) +{ + return (*pHandler)(rlvCmd); +} + // ============================================================================ -- cgit v1.2.3 From 70732b62c9fcdb57b36492945dd63ee072fbb7ab Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Sat, 28 Jun 2025 20:31:50 +0800 Subject: Minimal @sit:=force command implementation --- indra/newview/rlvhandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 63914064cf..52448d8495 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -30,6 +30,7 @@ #include "llstartup.h" #include "llviewercontrol.h" #include "llviewerobject.h" +#include "llviewermenu.h" #include "rlvcommon.h" #include "rlvhandler.h" @@ -230,4 +231,11 @@ ECmdRet CommandHandlerBaseImpl::processCommand(const RlvComma return (*pHandler)(rlvCmd); } +template<> template<> +ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) +{ + handle_object_sit(LLUUID{rlvCmd.getOption()}); + return ECmdRet::Succeeded; +} + // ============================================================================ -- cgit v1.2.3 From e87685aacfd2873f6b41b8036ee63a9ed67e2be2 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Sun, 29 Jun 2025 09:43:05 +0800 Subject: Minimal @unsit=force command implementation --- indra/newview/rlvhandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 52448d8495..3394362c93 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -238,4 +238,11 @@ ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; } +template<> template<> +ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) +{ + gAgent.standUp(); + return ECmdRet::Succeeded; +} + // ============================================================================ -- cgit v1.2.3 From 6ad39e2c3b3df0ebc54f1056f4659b1a51b62f1e Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 30 Jun 2025 09:32:20 +0800 Subject: Basic scaffolding to support add/remove commands plus reorder header inclusions alphabetically. --- indra/newview/rlvhandler.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 3394362c93..869ada40ab 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -29,8 +29,8 @@ #include "llagent.h" #include "llstartup.h" #include "llviewercontrol.h" -#include "llviewerobject.h" #include "llviewermenu.h" +#include "llviewerobject.h" #include "rlvcommon.h" #include "rlvhandler.h" @@ -111,6 +111,8 @@ ECmdRet RlvHandler::processCommand(std::reference_wrapper rlvC { case EParamType::Reply: case EParamType::Force: + case EParamType::Remove: + case EParamType::Add: eRet = rlvCmd.get().processCommand(); break; case EParamType::Unknown: @@ -245,4 +247,17 @@ ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; } +// AddRem + +ECmdRet CommandHandlerBaseImpl::processCommand(const RlvCommand& rlvCmd, BhvrHandlerFunc* pHandler, BhvrToggleHandlerFunc* pToggleHandler) +{ + auto param = rlvCmd.getParam(); + bool toggle = false; + if (param == "y") + toggle = true; + else if (param != "n") + return ECmdRet::FailedParam; + return (*pHandler)(rlvCmd, toggle); +} + // ============================================================================ -- cgit v1.2.3 From d6e7979612be80b24441fa84678adb476fda8405 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 30 Jun 2025 14:20:07 +0800 Subject: Minimal @sitground=force command implementation Untested cause I couldn't find any force ground sit command on the attachment I got access to. --- indra/newview/rlvhandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 869ada40ab..49b89c8cdf 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -240,6 +240,13 @@ ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) return ECmdRet::Succeeded; } +template<> template<> +ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) +{ + gAgent.sitDown(); + return ECmdRet::Succeeded; +} + template<> template<> ECmdRet ForceHandler::onCommand(const RlvCommand& rlvCmd) { -- cgit v1.2.3 From d0e3c7a40395ea5ad7f7a9982ce4dbf464e24caa Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 30 Jun 2025 18:09:32 +0800 Subject: Minimal @unsit= command implementation Hides the Stand up button too, but doesn't prevent teleporting yet. --- indra/newview/rlvhandler.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 49b89c8cdf..01f5d28ced 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -28,6 +28,7 @@ #include "llviewerprecompiledheaders.h" #include "llagent.h" #include "llstartup.h" +#include "llmoveview.h" #include "llviewercontrol.h" #include "llviewermenu.h" #include "llviewerobject.h" @@ -267,4 +268,14 @@ ECmdRet CommandHandlerBaseImpl::processCommand(const RlvComm return (*pHandler)(rlvCmd, toggle); } +template<> template<> +ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& rlvCmd, bool& toggle) +{ + gAgent.setAllowedToStand(toggle); + if (gAgent.isSitting()) + LLPanelStandStopFlying::getInstance()->setVisibleStandButton(toggle); + return ECmdRet::Succeeded; +} + +template<> template<> // ============================================================================ -- cgit v1.2.3 From 2ed42e44bd6bc78b93c0a38abc2c073a10263c9b Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 30 Jun 2025 19:34:07 +0800 Subject: Minimal @sit= command implementation --- indra/newview/rlvhandler.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 01f5d28ced..dce1471100 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -268,6 +268,13 @@ ECmdRet CommandHandlerBaseImpl::processCommand(const RlvComm return (*pHandler)(rlvCmd, toggle); } +template<> template<> +ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& rlvCmd, bool& toggle) +{ + gAgent.setAllowedToSit(toggle); + return ECmdRet::Succeeded; +} + template<> template<> ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& rlvCmd, bool& toggle) { -- cgit v1.2.3 From 90117b89f6eef8785a1701ed79527f8175c55752 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Mon, 30 Jun 2025 22:33:00 +0800 Subject: Minimal @getsitid= implementation --- indra/newview/rlvhandler.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index dce1471100..cdde43debf 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -227,6 +227,16 @@ ECmdRet ReplyHandler::onCommand(const RlvCommand& rlvCmd return ECmdRet::Succeeded; } +template<> template<> +ECmdRet ReplyHandler::onCommand(const RlvCommand& rlvCmd, std::string& strReply) +{ + if (gAgent.isSitting()) + gAgent.getSitObjectID().toString(strReply); + else + strReply = "00000000-0000-0000-0000-000000000000"; + return ECmdRet::Succeeded; +} + // Force ECmdRet CommandHandlerBaseImpl::processCommand(const RlvCommand& rlvCmd, ForceHandlerFunc* pHandler) -- cgit v1.2.3 From 71c8547184458fb5b2a79cec28787a6999cad4a6 Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Tue, 1 Jul 2025 11:21:45 +0800 Subject: Fix commit d0e3c7a40395ea5ad7f7a9982ce4dbf464e24caa Accidentally git added a line that wasn't meant to be staged yet. --- indra/newview/rlvhandler.cpp | 1 - 1 file changed, 1 deletion(-) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index cdde43debf..122a87ec43 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -294,5 +294,4 @@ ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& r return ECmdRet::Succeeded; } -template<> template<> // ============================================================================ -- cgit v1.2.3 From 40de4208328bcac51782302e7028ec2dd057224e Mon Sep 17 00:00:00 2001 From: Erik Kundiman Date: Thu, 3 Jul 2025 10:31:01 +0800 Subject: Partial @detach= command implementation Only greying out the detach option on the contextual menu popped up by right clicking the attachment in the 3D view/world, and not yet preventing detachment from the inventory/wearing panels. --- indra/newview/rlvhandler.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indra/newview/rlvhandler.cpp') diff --git a/indra/newview/rlvhandler.cpp b/indra/newview/rlvhandler.cpp index 122a87ec43..67739ec72f 100644 --- a/indra/newview/rlvhandler.cpp +++ b/indra/newview/rlvhandler.cpp @@ -32,6 +32,7 @@ #include "llviewercontrol.h" #include "llviewermenu.h" #include "llviewerobject.h" +#include "llviewerobjectlist.h" #include "rlvcommon.h" #include "rlvhandler.h" @@ -294,4 +295,11 @@ ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& r return ECmdRet::Succeeded; } +template<> template<> +ECmdRet BehaviourToggleHandler::onCommand(const RlvCommand& rlvCmd, bool& toggle) +{ + gObjectList.findObject(rlvCmd.getObjectID())->setLocked(!toggle); + return ECmdRet::Succeeded; +} + // ============================================================================ -- cgit v1.2.3