diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index 9004db09303e30805ae0bbecb9e9137e1daf1d7d..ae3fc94cd608d88720c56b46329c0b65b7fea345 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -666,8 +666,20 @@ bool LLToolPie::walkToClickedLocation() mPick.mPosGlobal = gAgent.getPositionGlobal() + LLVector3d(LLViewerCamera::instance().getAtAxis()) * SELF_CLICK_WALK_DISTANCE; } - if ((mPick.mPickType == LLPickInfo::PICK_LAND && !mPick.mPosGlobal.isExactlyZero()) || - (mPick.mObjectID.notNull() && !mPick.mPosGlobal.isExactlyZero())) +// if ((mPick.mPickType == LLPickInfo::PICK_LAND && !mPick.mPosGlobal.isExactlyZero()) || +// (mPick.mObjectID.notNull() && !mPick.mPosGlobal.isExactlyZero())) +// [RLVa:KB] - Checked: RLVa-2.0.0 + bool fValidPick = ((mPick.mPickType == LLPickInfo::PICK_LAND && !mPick.mPosGlobal.isExactlyZero()) || + (mPick.mObjectID.notNull() && !mPick.mPosGlobal.isExactlyZero())); + + if ( (fValidPick) && (RlvActions::isRlvEnabled()) && (!RlvActions::canTeleportToLocal(mPick.mPosGlobal)) ) + { + RlvUtil::notifyBlocked(RlvStringKeys::Blocked::AutoPilot); + fValidPick = false; + } + + if (fValidPick) +// [/RLVa:KB] { gAgentCamera.setFocusOnAvatar(TRUE, TRUE); diff --git a/indra/newview/llviewerinput.cpp b/indra/newview/llviewerinput.cpp index c0eaa88f543a7e6d8660e237ddd890f6378057c8..760d3dd7e0a11f7f797c10f7f73af61dccc6813c 100644 --- a/indra/newview/llviewerinput.cpp +++ b/indra/newview/llviewerinput.cpp @@ -104,14 +104,18 @@ bool agent_push_down( EKeystate s ) static void agent_check_temporary_run(LLAgent::EDoubleTapRunMode mode) { - if (gAgent.mDoubleTapRunMode == mode && - gAgent.getRunning() && - !gAgent.getAlwaysRun()) - { - // Turn off temporary running. - gAgent.clearRunning(); - gAgent.sendWalkRun(gAgent.getRunning()); - } +// [RLVa:KB] - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i + if ( (gAgent.mDoubleTapRunMode == mode) && (gAgent.getTempRun()) ) + gAgent.clearTempRun(); +// [/RLVa:KB] +// if (gAgent.mDoubleTapRunMode == mode && +// gAgent.getRunning() && +// !gAgent.getAlwaysRun()) +// { +// // Turn off temporary running. +// gAgent.clearRunning(); +// gAgent.sendWalkRun(gAgent.getRunning()); +// } } static void agent_handle_doubletap_run(EKeystate s, LLAgent::EDoubleTapRunMode mode) @@ -131,8 +135,11 @@ static void agent_handle_doubletap_run(EKeystate s, LLAgent::EDoubleTapRunMode m { // Same walk-key was pushed again quickly; this is a // double-tap so engage temporary running. - gAgent.setRunning(); - gAgent.sendWalkRun(gAgent.getRunning()); +// gAgent.setRunning(); +// gAgent.sendWalkRun(gAgent.getRunning()); +// [RLVa:KB] - Checked: 2011-05-11 (RLVa-1.3.0i) | Added: RLVa-1.3.0i + gAgent.setTempRun(); +// [/RLVa:KB] } // Pressing any walk-key resets the double-tap timer @@ -662,16 +669,22 @@ bool run_forward(EKeystate s) } if (!gAgent.getRunning()) { - gAgent.setRunning(); - gAgent.sendWalkRun(true); +// [RLVa:KB] - @temprun + gAgent.setTempRun(); +// [/RLVa:KB] +// gAgent.setRunning(); +// gAgent.sendWalkRun(true); } } else if(KEYSTATE_UP == s) { if (gAgent.mDoubleTapRunMode == LLAgent::DOUBLETAP_FORWARD) gAgent.mDoubleTapRunMode = LLAgent::DOUBLETAP_NONE; - gAgent.clearRunning(); - gAgent.sendWalkRun(false); +// [RLVa:KB] - @temprun + gAgent.clearTempRun(); +// [/RLVa:KB] +// gAgent.clearRunning(); +// gAgent.sendWalkRun(false); } agent_push_forward(s); return true; @@ -687,16 +700,22 @@ bool run_backward(EKeystate s) } if (!gAgent.getRunning()) { - gAgent.setRunning(); - gAgent.sendWalkRun(true); +// [RLVa:KB] - @temprun + gAgent.setTempRun(); +// [/RLVa:KB] +// gAgent.setRunning(); +// gAgent.sendWalkRun(true); } } else if (KEYSTATE_UP == s) { if (gAgent.mDoubleTapRunMode == LLAgent::DOUBLETAP_BACKWARD) gAgent.mDoubleTapRunMode = LLAgent::DOUBLETAP_NONE; - gAgent.clearRunning(); - gAgent.sendWalkRun(false); +// [RLVa:KB] - @temprun + gAgent.clearTempRun(); +// [/RLVa:KB] +// gAgent.clearRunning(); +// gAgent.sendWalkRun(false); } agent_push_backward(s); return true; @@ -712,16 +731,22 @@ bool run_left(EKeystate s) } if (!gAgent.getRunning()) { - gAgent.setRunning(); - gAgent.sendWalkRun(true); +// [RLVa:KB] - @temprun + gAgent.setTempRun(); +// [/RLVa:KB] +// gAgent.setRunning(); +// gAgent.sendWalkRun(true); } } else if (KEYSTATE_UP == s) { if (gAgent.mDoubleTapRunMode == LLAgent::DOUBLETAP_SLIDELEFT) gAgent.mDoubleTapRunMode = LLAgent::DOUBLETAP_NONE; - gAgent.clearRunning(); - gAgent.sendWalkRun(false); +// [RLVa:KB] - @temprun + gAgent.clearTempRun(); +// [/RLVa:KB] +// gAgent.clearRunning(); +// gAgent.sendWalkRun(false); } agent_slide_left(s); return true; @@ -737,16 +762,22 @@ bool run_right(EKeystate s) } if (!gAgent.getRunning()) { - gAgent.setRunning(); - gAgent.sendWalkRun(true); +// [RLVa:KB] - @temprun + gAgent.setTempRun(); +// [/RLVa:KB] +// gAgent.setRunning(); +// gAgent.sendWalkRun(true); } } else if (KEYSTATE_UP == s) { if (gAgent.mDoubleTapRunMode == LLAgent::DOUBLETAP_SLIDERIGHT) gAgent.mDoubleTapRunMode = LLAgent::DOUBLETAP_NONE; - gAgent.clearRunning(); - gAgent.sendWalkRun(false); +// [RLVa:KB] - @temprun + gAgent.clearTempRun(); +// [/RLVa:KB] +// gAgent.clearRunning(); +// gAgent.sendWalkRun(false); } agent_slide_right(s); return true; @@ -758,15 +789,21 @@ bool toggle_run(EKeystate s) bool run = gAgent.getAlwaysRun(); if (run) { - gAgent.clearAlwaysRun(); - gAgent.clearRunning(); +// [RLVa:KB] - @alwaysrun + gAgent.clearAlwaysRun(); +// [/RLVa:KB] +// gAgent.clearAlwaysRun(); +// gAgent.clearRunning(); } else { - gAgent.setAlwaysRun(); - gAgent.setRunning(); +// [RLVa:KB] - @alwaysrun + gAgent.setAlwaysRun(); +// [/RLVa:KB] +// gAgent.setAlwaysRun(); +// gAgent.setRunning(); } - gAgent.sendWalkRun(!run); +// gAgent.sendWalkRun(!run); return true; }