diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 32d72e5c1d8589acb573eeff89469bdf6d8f1487..3bb7f18b987f61104747bab942846d1e96e3e23b 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -3311,10 +3311,11 @@ void LLAgent::teleportRequest( // Landmark ID = LLUUID::null means teleport home void LLAgent::teleportViaLandmark(const LLUUID& landmark_asset_id) { -// [RLVa:KB] - Checked: 2010-04-01 (RLVa-1.2.0c) | Modified: RLVa-1.0.0d - // TODO-RLVa: [RLVa-1.2.1] Allow teleporting home if @tplm=n restricted but not @tploc=n restricted and vice versa? +// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) | Modified: RLVa-1.2.1a + // NOTE: we'll allow teleporting home unless both @tplm=n *and* @tploc=n restricted if ( (rlv_handler_t::isEnabled()) && - ( (gRlvHandler.hasBehaviour(RLV_BHVR_TPLM)) || + ( ( (landmark_asset_id.notNull()) ? gRlvHandler.hasBehaviour(RLV_BHVR_TPLM) + : gRlvHandler.hasBehaviour(RLV_BHVR_TPLM) && gRlvHandler.hasBehaviour(RLV_BHVR_TPLOC) ) || ((gRlvHandler.hasBehaviour(RLV_BHVR_UNSIT)) && (isAgentAvatarValid()) && (gAgentAvatarp->isSitting())) )) { return; diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 2651ab967125caf2b8284503cff86aa25fde1ec4..298f50f2bf27099e3b54a37588f01a3bbb82de16 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -75,6 +75,10 @@ #include "llwindow.h" // copyTextToClipboard() +// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) +#include "rlvhandler.h" +// [/RLVa:KB] + //--------------------------------------------------------------------------- // Constants //--------------------------------------------------------------------------- @@ -434,6 +438,10 @@ void LLFloaterWorldMap::draw() // childSetEnabled("Clear", (BOOL)tracking_status); childSetEnabled("Show Destination", (BOOL)tracking_status || LLWorldMap::getInstance()->isTracking()); childSetEnabled("copy_slurl", (mSLURL.isValid()) ); +// [RLVa:KB] - Checked: 2010-08-22 (RLVa-1.2.1a) | Added: RLVa-1.2.1a + childSetEnabled("Go Home", + (!rlv_handler_t::isEnabled()) || !(gRlvHandler.hasBehaviour(RLV_BHVR_TPLM) && gRlvHandler.hasBehaviour(RLV_BHVR_TPLOC))); +// [/RLVa:KB] setMouseOpaque(TRUE); getDragHandle()->setMouseOpaque(TRUE); diff --git a/indra/newview/rlvui.cpp b/indra/newview/rlvui.cpp index 3fc008ffa59e06b3598f629d51ccb7ce3517aaa2..1100ef60e5e7b685f93c0e49b9a3e1e1a38c76c8 100644 --- a/indra/newview/rlvui.cpp +++ b/indra/newview/rlvui.cpp @@ -69,6 +69,10 @@ RlvUIEnabler::RlvUIEnabler() m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_SHOWWORLDMAP, boost::bind(&RlvUIEnabler::onToggleShowWorldMap, this))); m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_UNSIT, boost::bind(&RlvUIEnabler::onToggleUnsit, this))); + // onToggleTp + m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_TPLOC, boost::bind(&RlvUIEnabler::onToggleTp, this))); + m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_TPLM, boost::bind(&RlvUIEnabler::onToggleTp, this))); + // onUpdateLoginLastLocation #ifdef RLV_EXTENSION_STARTLOCATION m_Handlers.insert(std::pair<ERlvBehaviour, behaviour_handler_t>(RLV_BHVR_TPLOC, boost::bind(&RlvUIEnabler::onUpdateLoginLastLocation, this))); @@ -323,6 +327,16 @@ void RlvUIEnabler::onToggleShowWorldMap() removeGenericFloaterFilter("world_map"); } +// Checked: 2010-08-22 (RLVa-1.2.1a) | Added: RLVa-1.2.1a +void RlvUIEnabler::onToggleTp() +{ + // Disable the navigation bar "Home" button if both @tplm=n *and* @tploc=n restricted + LLButton* pNavBarHomeBtn = LLNavigationBar::getInstance()->getChild<LLButton>("home_btn"); + RLV_ASSERT(pNavBarHomeBtn); + if (pNavBarHomeBtn) + pNavBarHomeBtn->setEnabled(!(gRlvHandler.hasBehaviour(RLV_BHVR_TPLM) && gRlvHandler.hasBehaviour(RLV_BHVR_TPLOC))); +} + // Checked: 2010-03-01 (RLVa-1.2.0c) | Added: RLVa-1.2.0a void RlvUIEnabler::onToggleUnsit() { diff --git a/indra/newview/rlvui.h b/indra/newview/rlvui.h index 9625ec90b792611f0033074791f7383d6b7e6980..6c6a6a40eb2ebdba22854c7fccd143502d3e8891 100644 --- a/indra/newview/rlvui.h +++ b/indra/newview/rlvui.h @@ -52,6 +52,7 @@ protected: void onToggleShowMinimap(); // showminimap void onToggleShowNames(); // shownames void onToggleShowWorldMap(); // showworldmap + void onToggleTp(); // tploc and tplm void onToggleUnsit(); // unsit void onToggleViewXXX(); // viewnote, viewscript, viewtexture void onUpdateLoginLastLocation(); // tploc and unsit