From 091cee673f25d0bd6dcdcb8dfe5254c22784d58f Mon Sep 17 00:00:00 2001 From: XenHat <commits@xenh.at> Date: Tue, 26 Jan 2021 15:05:34 -0500 Subject: [PATCH] Add option to control hover text fade distance and range. No UI yet. --- .../newview/app_settings/settings_alchemy.xml | 24 ++++++++++++++++++- indra/newview/llhudtext.cpp | 19 ++++++++++++--- indra/newview/llhudtext.h | 1 + indra/newview/llviewercontrol.cpp | 3 +++ 4 files changed, 43 insertions(+), 4 deletions(-) diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml index 5bf29f2db7b..6baa80dc1b9 100644 --- a/indra/newview/app_settings/settings_alchemy.xml +++ b/indra/newview/app_settings/settings_alchemy.xml @@ -255,9 +255,31 @@ <key>Value</key> <integer>0</integer> </map> + <key>AlchemyHudTextFadeDistance</key> + <map> + <key>Comment</key> + <string>Distance at which hover text starts fading.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>4.0</real> + </map> + <key>AlchemyHudTextFadeRange</key> + <map> + <key>Comment</key> + <string>Distance over which hover text will fade out.</string> + <key>Persist</key> + <integer>1</integer> + <key>Type</key> + <string>F32</string> + <key>Value</key> + <real>8.0</real> + </map> <key>AlchemyLookAtShow</key> <map> - <key>Comment</key> + <key>Comment</key> <string>If true, avatar look at beacons will be displayed</string> <key>Persist</key> <integer>1</integer> diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index 62314039b4c..f4b5d0bd7cd 100644 --- a/indra/newview/llhudtext.cpp +++ b/indra/newview/llhudtext.cpp @@ -89,8 +89,8 @@ LLHUDText::LLHUDText(const U8 type) : { mColor = LLColor4(1.f, 1.f, 1.f, 1.f); mDoFade = TRUE; - mFadeDistance = 8.f; - mFadeRange = 4.f; + mFadeDistance = gSavedSettings.getF32("AlchemyHudTextFadeDistance"); + mFadeRange = gSavedSettings.getF32("AlchemyHudTextFadeRange"); mZCompare = TRUE; mOffscreen = FALSE; mRadius = 0.1f; @@ -129,7 +129,7 @@ void LLHUDText::renderText() LLColor4 text_color = mColor; if (mDoFade) { - if (mLastDistance > mFadeDistance) + if (mLastDistance > mFadeDistance && mFadeRange > 0.f) { alpha_factor = llmax(0.f, 1.f - (mLastDistance - mFadeDistance)/mFadeRange); text_color.mV[3] = text_color.mV[3]*alpha_factor; @@ -690,3 +690,16 @@ void LLHUDText::refreshAllObjectText(EObjectTextFilter eObjFilter) } } // [/RLVa:KB] + +void LLHUDText::onFadeSettingsChanged() +{ + for (TextObjectIterator it = sTextObjects.begin(); it != sTextObjects.end(); ++it) + { + LLHUDText* text = *it; + if (text) + { + text->mFadeDistance = gSavedSettings.getF32("AlchemyHudTextFadeDistance"); + text->mFadeRange = gSavedSettings.getF32("AlchemyHudTextFadeRange"); + } + } +} \ No newline at end of file diff --git a/indra/newview/llhudtext.h b/indra/newview/llhudtext.h index 1a548cf9de7..7043d7afad3 100644 --- a/indra/newview/llhudtext.h +++ b/indra/newview/llhudtext.h @@ -131,6 +131,7 @@ class LLHUDText final : public LLHUDObject enum EObjectTextFilter { OTF_NONE, OTF_HUD_ATTACHMENTS }; static void refreshAllObjectText(EObjectTextFilter eObjFilter = OTF_NONE); // [/RLVa:KB] + static void onFadeSettingsChanged(); protected: LLHUDText(const U8 type); diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index fc5abcdbe48..a5f26dced31 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -43,6 +43,7 @@ #include "llfeaturemanager.h" #include "llviewershadermgr.h" +#include "llhudtext.h" #include "llsky.h" #include "llvieweraudio.h" #include "llviewermenu.h" @@ -799,6 +800,8 @@ void settings_setup_listeners() // [RLVa:KB] - Checked: 2015-12-27 (RLVa-1.5.0) gSavedSettings.getControl(RlvSettingNames::Main)->getSignal()->connect(boost::bind(&RlvSettings::onChangedSettingMain, _2)); // [/RLVa:KB] + gSavedSettings.getControl("AlchemyHudTextFadeDistance")->getSignal()->connect(boost::bind(&LLHUDText::onFadeSettingsChanged)); + gSavedSettings.getControl("AlchemyHudTextFadeRange")->getSignal()->connect(boost::bind(&LLHUDText::onFadeSettingsChanged)); } #if TEST_CACHED_CONTROL -- GitLab