diff options
| author | Erik Kundiman <erik@megapahit.org> | 2025-06-30 19:34:07 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2025-06-30 19:34:07 +0800 | 
| commit | 2ed42e44bd6bc78b93c0a38abc2c073a10263c9b (patch) | |
| tree | 81c4f551724080d25ebd93412ba1cdbc0a1fc4fb /indra/newview | |
| parent | d0e3c7a40395ea5ad7f7a9982ce4dbf464e24caa (diff) | |
Minimal @sit=<y/n> command implementation
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/llagent.cpp | 6 | ||||
| -rw-r--r-- | indra/newview/llagent.h | 3 | ||||
| -rw-r--r-- | indra/newview/llviewermenu.cpp | 2 | ||||
| -rw-r--r-- | indra/newview/rlvhandler.cpp | 7 | ||||
| -rw-r--r-- | indra/newview/rlvhelper.cpp | 1 | 
5 files changed, 15 insertions, 4 deletions
| diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index b8b5ba2264..3a4e29afc1 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -387,6 +387,7 @@ LLAgent::LLAgent() :      mbTeleportKeepsLookAt(false),      mAllowedToStand(true), +    mAllowedToSit(true),      mAgentAccess(new LLAgentAccess(gSavedSettings)),      mGodLevelChangeSignal(), @@ -971,8 +972,7 @@ bool LLAgent::isSitting()  void LLAgent::standUp()  { -    if (mAllowedToStand) -        setControlFlags(AGENT_CONTROL_STAND_UP); +    if (mAllowedToStand) setControlFlags(AGENT_CONTROL_STAND_UP);  }  void LLAgent::changeParcels() @@ -1346,7 +1346,7 @@ LLVector3d LLAgent::getPosGlobalFromAgent(const LLVector3 &pos_agent) const  void LLAgent::sitDown()  { -    setControlFlags(AGENT_CONTROL_SIT_ON_GROUND); +    if (mAllowedToSit) setControlFlags(AGENT_CONTROL_SIT_ON_GROUND);  } diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index 74d8719047..ca8aaaee86 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -448,8 +448,11 @@ public:      void            sitDown();      bool            isAllowedToStand() const      { return mAllowedToStand; }      void            setAllowedToStand(bool allow) { mAllowedToStand = allow; } +    bool            isAllowedToSit() const        { return mAllowedToSit; } +    void            setAllowedToSit(bool allow)   { mAllowedToSit = allow; }  private:      bool            mAllowedToStand; +    bool            mAllowedToSit;      //--------------------------------------------------------------------      // Do Not Disturb diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 63527d8594..cb2a8a54b7 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -4506,7 +4506,7 @@ void handle_object_sit(LLViewerObject* object, const LLVector3& offset)  {      // get object selection offset -    if (object && object->getPCode() == LL_PCODE_VOLUME) +    if (gAgent.isAllowedToSit() && object && object->getPCode() == LL_PCODE_VOLUME)      {          gMessageSystem->newMessageFast(_PREHASH_AgentRequestSit); 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 @@ -269,6 +269,13 @@ ECmdRet CommandHandlerBaseImpl<EParamType::AddRem>::processCommand(const RlvComm  }  template<> template<> +ECmdRet BehaviourToggleHandler<EBehaviour::Sit>::onCommand(const RlvCommand& rlvCmd, bool& toggle) +{ +    gAgent.setAllowedToSit(toggle); +    return ECmdRet::Succeeded; +} + +template<> template<>  ECmdRet BehaviourToggleHandler<EBehaviour::Unsit>::onCommand(const RlvCommand& rlvCmd, bool& toggle)  {      gAgent.setAllowedToStand(toggle); diff --git a/indra/newview/rlvhelper.cpp b/indra/newview/rlvhelper.cpp index 7c5f939d31..f26b5a115f 100644 --- a/indra/newview/rlvhelper.cpp +++ b/indra/newview/rlvhelper.cpp @@ -60,6 +60,7 @@ BehaviourDictionary::BehaviourDictionary()      addEntry(new ForceProcessor<EBehaviour::Unsit>("unsit"));      // AddRem +    addEntry(new BehaviourProcessor<EBehaviour::Sit>("sit"));      addEntry(new BehaviourProcessor<EBehaviour::Unsit>("unsit"));      // Populate mString2InfoMap (the tuple <behaviour, type> should be unique) | 
