diff options
author | Kyler Eastridge <felix.wolfz@gmail.com> | 2025-07-28 04:33:34 +0100 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2025-07-29 20:12:46 +0300 |
commit | 5785bfdb700c618365ea22c4deb3e6330d31c3d2 (patch) | |
tree | 449476b0bf8e0f687da968640e2f9ce126e1124a | |
parent | 5c8fdad01fdbc68af3c38cfe147c87e9b4d6df7b (diff) |
Fix look at target privacy causing head to get stuck
-rw-r--r-- | indra/newview/llhudeffectlookat.cpp | 14 | ||||
-rw-r--r-- | indra/newview/llhudeffectpointat.cpp | 12 |
2 files changed, 20 insertions, 6 deletions
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp index a8fde33a25..e7894e6c84 100644 --- a/indra/newview/llhudeffectlookat.cpp +++ b/indra/newview/llhudeffectlookat.cpp @@ -393,14 +393,22 @@ void LLHUDEffectLookAt::setTargetPosGlobal(const LLVector3d &target_pos_global) //----------------------------------------------------------------------------- bool LLHUDEffectLookAt::setLookAt(ELookAtType target_type, LLViewerObject *object, LLVector3 position) { - static LLCachedControl<bool> enable_lookat_hints(gSavedSettings, "EnableLookAtHints", true); - if (!enable_lookat_hints) + if (!mSourceObject) { return false; } - if (!mSourceObject) + static LLCachedControl<bool> enable_lookat_hints(gSavedSettings, "EnableLookAtHints", true); + if (!enable_lookat_hints) { + if (mTargetType != LOOKAT_TARGET_IDLE) + { + mTargetObject = gAgentAvatarp; + mTargetType = LOOKAT_TARGET_IDLE; + mTargetOffsetGlobal.set(2.f, 0.f, 0.f); + setDuration(3.f); + setNeedsSendToSim(true); + } return false; } diff --git a/indra/newview/llhudeffectpointat.cpp b/indra/newview/llhudeffectpointat.cpp index 23ab0e873d..b6515df3e1 100644 --- a/indra/newview/llhudeffectpointat.cpp +++ b/indra/newview/llhudeffectpointat.cpp @@ -222,14 +222,20 @@ void LLHUDEffectPointAt::setTargetPosGlobal(const LLVector3d &target_pos_global) //----------------------------------------------------------------------------- bool LLHUDEffectPointAt::setPointAt(EPointAtType target_type, LLViewerObject *object, LLVector3 position) { - static LLCachedControl<bool> enable_selection_hints(gSavedSettings, "EnableSelectionHints", true); - if (!enable_selection_hints) + if (!mSourceObject) { return false; } - if (!mSourceObject) + static LLCachedControl<bool> enable_selection_hints(gSavedSettings, "EnableSelectionHints", true); + if (!enable_selection_hints) { + if (mTargetType != POINTAT_TARGET_NONE) + { + clearPointAtTarget(); + setDuration(1.f); + setNeedsSendToSim(true); + } return false; } |