diff --git a/indra/newview/alchatcommand.cpp b/indra/newview/alchatcommand.cpp index 41dfa26d5d99fbc3c4f9fe5412aaf577bee94352..cfcf726fb4e085fb9670d2fc298922b6ea539bf5 100644 --- a/indra/newview/alchatcommand.cpp +++ b/indra/newview/alchatcommand.cpp @@ -135,17 +135,7 @@ bool ALChatCommand::parseCommand(std::string data) msg->nextBlockFast(_PREHASH_AgentData); msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - LLUUID group_id = gAgent.getGroupID(); - if (gSavedSettings.getBOOL("AlchemyRezUnderLandGroup")) - { - LLParcel* land_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); - // Is the agent in the land group - if (gAgent.isInGroup(land_parcel->getGroupID())) - group_id = land_parcel->getGroupID(); - // Is the agent in the land group (the group owns the land) - else if (gAgent.isInGroup(land_parcel->getOwnerID())) - group_id = land_parcel->getOwnerID(); - } + LLUUID group_id = gAgent.getGroupForRezzing(); msg->addUUIDFast(_PREHASH_GroupID, group_id); msg->nextBlockFast(_PREHASH_ObjectData); msg->addU8Fast(_PREHASH_PCode, LL_PCODE_VOLUME); diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml index 5bf29f2db7be2d5d30bd33a69ac5e207284b0a57..b2aa387070871d47c2fbddf7e5dcfecab7bb8bc7 100644 --- a/indra/newview/app_settings/settings_alchemy.xml +++ b/indra/newview/app_settings/settings_alchemy.xml @@ -255,6 +255,28 @@ <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> diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 26edbec4ea364aa9d21c77d1cb00148336327b81..f7e50950cec04f07502ccddca9fa007a48ec44a0 100644 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -5195,4 +5195,19 @@ void LLTeleportRequestViaLocationLookAt::restartTeleport() // gAgent.doTeleportViaLocationLookAt(getPosGlobal()); } +LLUUID LLAgent::getGroupForRezzing() +{ + if (gSavedSettings.getBOOL("AlchemyRezUnderLandGroup")) + { + LLParcel* land_parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); + // Is the agent in the land group + if (gAgent.isInGroup(land_parcel->getGroupID())) + return land_parcel->getGroupID(); + // Is the agent in the land group (the group owns the land) + else if (gAgent.isInGroup(land_parcel->getOwnerID())) + return land_parcel->getOwnerID(); + } + return LLUUID::null; +} + // EOF diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h index fb5ef12c65907db4ea46904a380e7924f40e4a39..77ff3507fbf826e9f396c432dcd55b06e0a347ad 100644 --- a/indra/newview/llagent.h +++ b/indra/newview/llagent.h @@ -905,6 +905,7 @@ class LLAgent : public LLOldEvents::LLObservable public: void setHideGroupTitle(BOOL hide) { mHideGroupTitle = hide; } BOOL isGroupTitleHidden() const { return mHideGroupTitle; } + LLUUID getGroupForRezzing(); private: std::string mGroupTitle; // Honorific, like "Sir" BOOL mHideGroupTitle; diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp index 62314039b4c448184f9b4be5e9fb5f8ff29e2bd1..6f5561b13e7075586a7556af68b5f972e93a4a54 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,15 @@ void LLHUDText::refreshAllObjectText(EObjectTextFilter eObjFilter) } } // [/RLVa:KB] + +void LLHUDText::onFadeSettingsChanged() +{ + for (LLHUDText* text : sTextObjects) + { + 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 1a548cf9de7c278e38f5a6cbccb9e859b03082c2..7043d7afad3c179be5f8cc8a53d6a110bf74293c 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/llselectmgr.cpp b/indra/newview/llselectmgr.cpp index 1a327a3778acc0e802abf027dffe1f8704717a19..86c31e22a8877e1546d6b11a009af7f076165024 100644 --- a/indra/newview/llselectmgr.cpp +++ b/indra/newview/llselectmgr.cpp @@ -4077,7 +4077,7 @@ void LLSelectMgr::packDuplicateOnRayHead(void *user_data) msg->nextBlockFast(_PREHASH_AgentData); msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); - msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID() ); + msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupForRezzing() ); msg->addVector3Fast(_PREHASH_RayStart, data->mRayStartRegion ); msg->addVector3Fast(_PREHASH_RayEnd, data->mRayEndRegion ); msg->addBOOLFast(_PREHASH_BypassRaycast, data->mBypassRaycast ); diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp index f65ae6d63785866230bcbf6cf774183a8423d844..00703d4fe2d345c8b3f83f2c5d72ed65dacb04fe 100644 --- a/indra/newview/lltooldraganddrop.cpp +++ b/indra/newview/lltooldraganddrop.cpp @@ -1330,7 +1330,7 @@ void LLToolDragAndDrop::dropObject(LLViewerObject* raycast_target, msg->nextBlockFast(_PREHASH_AgentData); msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); + msg->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupForRezzing()); msg->nextBlock("RezData"); // if it's being rezzed from task inventory, we need to enable diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp index 34d33743b9403b080d656a27f122c4577133ab91..b87659ad3691c37042536bdd4b323828d4a733bc 100644 --- a/indra/newview/lltoolplacer.cpp +++ b/indra/newview/lltoolplacer.cpp @@ -245,7 +245,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) gMessageSystem->nextBlockFast(_PREHASH_AgentData); gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); - gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupID()); + gMessageSystem->addUUIDFast(_PREHASH_GroupID, gAgent.getGroupForRezzing()); gMessageSystem->nextBlockFast(_PREHASH_ObjectData); gMessageSystem->addU8Fast(_PREHASH_Material, material); diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index fc5abcdbe4817d97a48142f3629453b05896164d..a5f26dced310cff4a474120b7fbd32aa722b1802 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 diff --git a/indra/newview/skins/default/xui/en/floater_preferences.xml b/indra/newview/skins/default/xui/en/floater_preferences.xml index 0608a822152eb79f34e4df7dfa9482399df19287..d687bfaa2852eda2917cbbb3ba94171151bdeb68 100644 --- a/indra/newview/skins/default/xui/en/floater_preferences.xml +++ b/indra/newview/skins/default/xui/en/floater_preferences.xml @@ -174,6 +174,11 @@ https://accounts.secondlife.com/change_email/ label="Skinning" layout="topleft" name="skins" /> + <panel + filename="panel_preferences_interface.xml" + label="Interface" + layout="topleft" + name="interface" /> </tab_container> </floater> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml index c0686fea9e0554db9933b450042afc91fe6450dc..b1679025d2784224cc4f53efc4c730d2256c5f29 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml @@ -258,19 +258,6 @@ <check_box.commit_callback function="Pref.RenderOptionUpdate" /> </check_box> - <check_box - control_name="AlchemyCinematicModeHideHoverText" - height="16" - initial_value="true" - label="Hide Hover Text in Cinematic Mode" - layout="topleft" - left="30" - name="HideHoverTextInCinematicMode" - top_delta="24" - width="256"> - <check_box.commit_callback - function="Pref.RenderOptionUpdate" /> - </check_box> <slider control_name="IndirectMaxComplexity" tool_tip="Controls at what point a visually complex avatar is drawn as a JellyDoll" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_interface.xml b/indra/newview/skins/default/xui/en/panel_preferences_interface.xml new file mode 100644 index 0000000000000000000000000000000000000000..e2b7a386feadaca62a33519cb8f5e8829b3af16c --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_preferences_interface.xml @@ -0,0 +1,120 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel + border="true" + follows="left|top|right|bottom" + height="408" + label="Interface" + layout="topleft" + left="102" + name="Interface panel" + top="1" + width="517"> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left="30" + name="Network:" + mouse_opaque="false" + top="10" + width="300"> + Floating Text: + </text> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left="50" + name="Maximum bandwidth" + mouse_opaque="false" + top_pad="10" + width="200"> + Fade Distance + </text> + <slider + can_edit_text="true" + control_name="AlchemyHudTextFadeDistance" + decimal_digits="2" + follows="left|top" + height="15" + increment="0.05" + initial_value="4.0" + layout="topleft" + left_delta="150" + max_val="128" + min_val="1" + name="text_draw_distance" + top_delta="0" + width="180" /> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left_pad="6" + mouse_opaque="false" + name="text_box2" + top_delta="1" + width="200"> + m + </text> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left="50" + name="Maximum bandwidth" + mouse_opaque="false" + top_pad="10" + width="200"> + Fade Range + </text> + <slider + can_edit_text="true" + control_name="AlchemyHudTextFadeRange" + decimal_digits="2" + follows="left|top" + height="15" + increment="0.05" + initial_value="8.0" + layout="topleft" + left_delta="150" + max_val="64" + min_val="1" + name="text_draw_distance" + top_delta="0" + width="180" /> + <text + type="string" + length="1" + follows="left|top" + height="10" + layout="topleft" + left_pad="6" + mouse_opaque="false" + name="text_box2" + top_delta="1" + width="200"> + m + </text> + <check_box + control_name="AlchemyCinematicModeHideHoverText" + height="16" + initial_value="true" + label="Hide in Cinematic Mode" + layout="topleft" + left="45" + name="HideHoverTextInCinematicMode" + top_delta="20" + width="256"> + <check_box.commit_callback + function="Pref.RenderOptionUpdate" /> + </check_box> +</panel>