diff options
author | Nicky <nicky.dasmijn@posteo.nl> | 2024-08-03 14:30:06 +0200 |
---|---|---|
committer | Nicky <nicky.dasmijn@posteo.nl> | 2024-08-03 14:30:06 +0200 |
commit | 04c47b95323a8022785e58fec03c14769ddfa6af (patch) | |
tree | 2e781e03d8af6bc231f9340b1e289234c363ff20 /indra/newview/llhudeffectlookat.cpp | |
parent | f480075e1ffbcc026843a3d14fd6533aad1e7126 (diff) | |
parent | 2ee039c736f64c91bb4f16e403360cddb0089707 (diff) |
Merge remote-tracking branch 'll/marchcat/b-develop' into feature/warning_cleansweep
Diffstat (limited to 'indra/newview/llhudeffectlookat.cpp')
-rw-r--r-- | indra/newview/llhudeffectlookat.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp index c8b7e00776..d0d2ee191a 100644 --- a/indra/newview/llhudeffectlookat.cpp +++ b/indra/newview/llhudeffectlookat.cpp @@ -36,6 +36,7 @@ #include "llvoavatar.h" #include "lldrawable.h" #include "llviewerobjectlist.h" +#include "llviewercontrol.h" #include "llrendersphere.h" #include "llselectmgr.h" #include "llglheaders.h" @@ -561,8 +562,16 @@ void LLHUDEffectLookAt::update() { if (calcTargetPosition()) { + static LLCachedControl<bool> disable_look_at(gSavedSettings, "DisableLookAtAnimation", true); LLMotion* head_motion = ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->findMotion(ANIM_AGENT_HEAD_ROT); - if (!head_motion || head_motion->isStopped()) + if (disable_look_at()) + { + if (head_motion) + { + ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->stopMotion(ANIM_AGENT_HEAD_ROT); + } + } + else if (!head_motion || head_motion->isStopped()) { ((LLVOAvatar*)(LLViewerObject*)mSourceObject)->startMotion(ANIM_AGENT_HEAD_ROT); } @@ -665,7 +674,15 @@ bool LLHUDEffectLookAt::calcTargetPosition() if (!mTargetPos.isFinite()) return false; - source_avatar->setAnimationData("LookAtPoint", (void *)&mTargetPos); + static LLCachedControl<bool> disable_look_at(gSavedSettings, "DisableLookAtAnimation", true); + if (disable_look_at()) + { + source_avatar->removeAnimationData("LookAtPoint"); + } + else + { + source_avatar->setAnimationData("LookAtPoint", (void*)&mTargetPos); + } return true; } |