summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKyler Eastridge <felix.wolfz@gmail.com>2025-07-28 04:33:34 +0100
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2025-07-29 20:12:46 +0300
commit5785bfdb700c618365ea22c4deb3e6330d31c3d2 (patch)
tree449476b0bf8e0f687da968640e2f9ce126e1124a
parent5c8fdad01fdbc68af3c38cfe147c87e9b4d6df7b (diff)
Fix look at target privacy causing head to get stuck
-rw-r--r--indra/newview/llhudeffectlookat.cpp14
-rw-r--r--indra/newview/llhudeffectpointat.cpp12
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;
}