From a0fb5cdaa7ba44dae0cef86819bde0d995e68cd7 Mon Sep 17 00:00:00 2001 From: Inusaito Sayori Date: Thu, 4 Jun 2015 12:21:49 -0400 Subject: [PATCH] [RLVa] Hide avatar-render-specific ui for people who are out of camavdist Hides lookat lines, nametags, and overhead voice indicators for hidden avs. While this isn't necessarily according to spec, this keeps the ui from looking out of place with no avatar to show with it View without space changes? Meh, doesn't matter so much. --- indra/newview/llhudeffectlookat.cpp | 10 +++++++--- indra/newview/llvoavatar.cpp | 12 +++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp index 75707d686..054183159 100644 --- a/indra/newview/llhudeffectlookat.cpp +++ b/indra/newview/llhudeffectlookat.cpp @@ -545,9 +545,13 @@ void LLHUDEffectLookAt::render() const std::string targname = (*mAttentions)[mTargetType].mName; if (targname != "None" && targname != "Idle" && targname != "AutoListen") { - LLVector3 dist = (mSourceObject->getWorldPosition() - mTargetPos) * 10/3; - gGL.vertex3f(0.f, 0.f, 0.f); - gGL.vertex3f(dist.mV[VX], dist.mV[VY], dist.mV[VZ] + 0.5f); + const LLVector3& source_pos(mSourceObject->getWorldPosition()); + if (!gRlvHandler.hasBehaviour(RLV_BHVR_CAMAVDIST) || (gAgent.getPosGlobalFromAgent(source_pos) - gAgent.getPositionGlobal()).magVec() <= gRlvHandler.camPole(RLV_BHVR_CAMAVDIST)) + { + LLVector3 dist = (source_pos - mTargetPos) * 10/3; + gGL.vertex3f(0.f, 0.f, 0.f); + gGL.vertex3f(dist.mV[VX], dist.mV[VY], dist.mV[VZ] + 0.5f); + } } } } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 25e554a8a..bfb8f58cf 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2593,7 +2593,7 @@ void LLVOAvatar::idleUpdateVoiceVisualizer(bool voice_enabled) render_visualizer = false; } } - else if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS)) // RLVa:LF - You get nothing now! + else if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS) || (gRlvHandler.hasBehaviour(RLV_BHVR_CAMAVDIST) && (gAgent.getPosGlobalFromAgent(getCharacterPosition()) - gAgent.getPosGlobalFromAgent(gAgentAvatarp->getRenderPosition())).magVec() > gRlvHandler.camPole(RLV_BHVR_CAMAVDIST))) // RLVa:LF - You get nothing now! { render_visualizer = false; } @@ -3079,6 +3079,11 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last) // [RLVa:KB] - Checked: 2010-04-04 (RLVa-1.2.2a) | Added: RLVa-0.2.0b if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS)) return; // No tags + if (gRlvHandler.hasBehaviour(RLV_BHVR_CAMAVDIST) && (gAgent.getPosGlobalFromAgent(getCharacterPosition()) - gAgent.getPosGlobalFromAgent(gAgentAvatarp->getRenderPosition())).magVec() > gRlvHandler.camPole(RLV_BHVR_CAMAVDIST)) + { + clearNameTag(); // Dynamically remove this avatar's tag + return; + } bool fRlvShowNames = gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES); // [/RLVa:KB] BOOL visible_avatar = isVisible() || mNeedsAnimUpdate; @@ -3283,6 +3288,11 @@ void LLVOAvatar::idleUpdateNameTagText(BOOL new_name) // [RLVa:KB] - Checked: 2010-10-31 (RLVa-1.2.2a) | Added: RLVa-1.2.2a if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS)) return; // No tags + if (gRlvHandler.hasBehaviour(RLV_BHVR_CAMAVDIST) && (gAgent.getPosGlobalFromAgent(getCharacterPosition()) - gAgent.getPosGlobalFromAgent(gAgentAvatarp->getRenderPosition())).magVec() > gRlvHandler.camPole(RLV_BHVR_CAMAVDIST)) + { + clearNameTag(); // Dynamically remove this avatar's tag + return; + } bool fRlvShowNames = gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES); // [/RLVa:KB] bool is_away = mSignaledAnimations.find(ANIM_AGENT_AWAY) != mSignaledAnimations.end();