diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2024-07-26 21:49:36 +0300 |
---|---|---|
committer | Andrey Kleshchev <117672381+akleshchev@users.noreply.github.com> | 2024-07-29 07:43:22 +0300 |
commit | ed6148d6c6c554223dc4b2dab0c729d3b5698158 (patch) | |
tree | 98a6c77089588800933698d2759d4e9e28009744 | |
parent | 817bc25b2732dc23295e6a7ac0da5ad142e33434 (diff) |
viewer#2113 Optional disable eyes/head follow cursor/lookat
Intended for photography, but there is curently no nice way to present
it so it's in debug options until we get some critical mass of features
that can be collected into a single whole.
-rw-r--r-- | indra/newview/app_settings/settings.xml | 11 | ||||
-rw-r--r-- | indra/newview/llhudeffectlookat.cpp | 21 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 10 |
3 files changed, 40 insertions, 2 deletions
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 97cab58eb1..9e5d3f09bd 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -14219,6 +14219,17 @@ <key>Value</key> <integer>0</integer> </map> + <key>DisableLookAtAnimation</key> + <map> + <key>Comment</key> + <string>Avatar follows cursor with avatars eyes, when disabled, avatar will look forward</string> + <key>Persist</key> + <integer>0</integer> + <key>Type</key> + <string>Boolean</string> + <key>Value</key> + <integer>0</integer> + </map> <key>WebProfileFloaterRect</key> <map> <key>Comment</key> 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; } diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 347638249b..941f0c6bb7 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -3967,6 +3967,16 @@ function="World.EnvPreset" parameter="AllowSelectAvatar" /> </menu_item_check> <menu_item_check + label="Disable Look At Animation" + name="Disable Look At Animation"> + <menu_item_check.on_check + function="CheckControl" + parameter="DisableLookAtAnimation" /> + <menu_item_check.on_click + function="ToggleControl" + parameter="DisableLookAtAnimation" /> + </menu_item_check> + <menu_item_check label="Render Only Friends" name="Render Only Friends"> <menu_item_check.on_check |