diff options
| author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-06-18 20:50:54 +0300 | 
|---|---|---|
| committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2020-06-18 21:06:00 +0300 | 
| commit | 9c57f89a7b214c9dda345a5a6cc94276e2061d1e (patch) | |
| tree | 32dae8e4403c228e018b05903f34aadd596a548a /indra | |
| parent | 1b744fb2a64f04332590b566783da2f955005414 (diff) | |
SL-13481 Fixed mouselook teleport not having up to date data
Diffstat (limited to 'indra')
| -rw-r--r-- | indra/newview/lltoolpie.cpp | 31 | 
1 files changed, 27 insertions, 4 deletions
| diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp index dd429d4ccf..0839ea6cf5 100644 --- a/indra/newview/lltoolpie.cpp +++ b/indra/newview/lltoolpie.cpp @@ -547,10 +547,23 @@ bool LLToolPie::walkToClickedLocation()      }      LLPickInfo saved_pick = mPick; -    mPick = gViewerWindow->pickImmediate(mHoverPick.mMousePt.mX, mHoverPick.mMousePt.mY, -        FALSE /* ignore transparent */, -        FALSE /* ignore rigged */, -        FALSE /* ignore particles */); +    if (gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK) +    { +        mPick = gViewerWindow->pickImmediate(mHoverPick.mMousePt.mX, mHoverPick.mMousePt.mY, +            FALSE /* ignore transparent */, +            FALSE /* ignore rigged */, +            FALSE /* ignore particles */); +    } +    else +    { +        // We do not handle hover in mouselook as we do in other modes, so +        // use croshair's position to do a pick +        mPick = gViewerWindow->pickImmediate(gViewerWindow->getWorldViewRectScaled().getWidth() / 2, +            gViewerWindow->getWorldViewRectScaled().getHeight() / 2, +            FALSE /* ignore transparent */, +            FALSE /* ignore rigged */, +            FALSE /* ignore particles */); +    }      if (mPick.mPickType == LLPickInfo::PICK_OBJECT)      { @@ -609,6 +622,16 @@ bool LLToolPie::walkToClickedLocation()  bool LLToolPie::teleportToClickedLocation()  { +    if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK) +    { +        // We do not handle hover in mouselook as we do in other modes, so +        // use croshair's position to do a pick +        BOOL pick_rigged = false; +        mHoverPick = gViewerWindow->pickImmediate(gViewerWindow->getWorldViewRectScaled().getWidth() / 2, +                                                  gViewerWindow->getWorldViewRectScaled().getHeight() / 2, +                                                  FALSE, +                                                  pick_rigged); +    }      LLViewerObject* objp = mHoverPick.getObject();      LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL; | 
