Add an option, in beacons floater, to show chat range spheres (whisper, say, shout) in 3D world around avatar
Signed-off-by: PanteraPolnocy <panterapolnocy@gmail.com>master
parent
ace3433d4b
commit
c4305eba15
|
|
@ -26271,6 +26271,17 @@ Change of this parameter will affect the layout of buttons in notification toast
|
|||
<key>Value</key>
|
||||
<integer>1</integer>
|
||||
</map>
|
||||
<key>FSShowChatRangeSpheres</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Show chat range spheres (whisper, say, shout) in 3D world around avatar</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>FSUseReadOfflineMsgsCap</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
|
|
|||
|
|
@ -96,6 +96,12 @@
|
|||
#include "llpresetsmanager.h"
|
||||
#include "fsdata.h"
|
||||
|
||||
// <FS:PP> Render chat range spheres in 3D world
|
||||
#include "lfsimfeaturehandler.h"
|
||||
#include "llrendersphere.h"
|
||||
#include "lluicolortable.h"
|
||||
// </FS:PP>
|
||||
|
||||
#include <filesystem>
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
|
|
@ -1767,6 +1773,55 @@ void draw_axes()
|
|||
gGL.popMatrix();
|
||||
}
|
||||
|
||||
// <FS:PP> Render chat range spheres in 3D world
|
||||
static void renderChatRangeSphere(const LLVector3& center, F32 radius, const LLColor4& color)
|
||||
{
|
||||
gGL.matrixMode(LLRender::MM_MODELVIEW);
|
||||
gGL.pushMatrix();
|
||||
{
|
||||
gGL.translatef(center.mV[VX], center.mV[VY], center.mV[VZ]);
|
||||
gDebugProgram.bind();
|
||||
LLGLEnable blend(GL_BLEND);
|
||||
LLGLDepthTest depth(GL_TRUE, GL_TRUE);
|
||||
gGL.color4fv(color.mV);
|
||||
gGL.diffuseColor4fv(color.mV);
|
||||
gGL.pushMatrix();
|
||||
{
|
||||
gGL.scalef(radius, radius, radius);
|
||||
glCullFace(GL_FRONT);
|
||||
gSphere.render();
|
||||
glCullFace(GL_BACK);
|
||||
gSphere.render();
|
||||
}
|
||||
gGL.popMatrix();
|
||||
gUIProgram.bind();
|
||||
}
|
||||
gGL.popMatrix();
|
||||
}
|
||||
|
||||
static void drawChatRangeSpheres()
|
||||
{
|
||||
static LLCachedControl<bool> show_spheres(gSavedSettings, "FSShowChatRangeSpheres", false);
|
||||
if (!show_spheres() || !isAgentAvatarValid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
LFSimFeatureHandler& simfeatures = LFSimFeatureHandler::instance();
|
||||
F32 whisper_range = (F32)simfeatures.whisperRange();
|
||||
F32 say_range = (F32)simfeatures.sayRange();
|
||||
F32 shout_range = (F32)simfeatures.shoutRange();
|
||||
|
||||
LLVector3 avatar_pos = gAgent.getPositionAgent();
|
||||
static LLUIColor whisper_color = LLUIColorTable::instance().getColor("MapWhisperRingColor", LLColor4::blue);
|
||||
static LLUIColor say_color = LLUIColorTable::instance().getColor("MapChatRingColor", LLColor4::yellow);
|
||||
static LLUIColor shout_color = LLUIColorTable::instance().getColor("MapShoutRingColor", LLColor4::red);
|
||||
renderChatRangeSphere(avatar_pos, whisper_range, whisper_color);
|
||||
renderChatRangeSphere(avatar_pos, say_range, say_color);
|
||||
renderChatRangeSphere(avatar_pos, shout_range, shout_color);
|
||||
}
|
||||
// </FS:PP>
|
||||
|
||||
void render_ui_3d()
|
||||
{
|
||||
LL_PROFILE_ZONE_SCOPED_CATEGORY_UI;
|
||||
|
|
@ -1799,6 +1854,10 @@ void render_ui_3d()
|
|||
draw_axes();
|
||||
}
|
||||
|
||||
// <FS:PP> Render chat range spheres in 3D world
|
||||
drawChatRangeSpheres();
|
||||
// </FS:PP>
|
||||
|
||||
gViewerWindow->renderSelections(false, false, true); // Non HUD call in render_hud_elements
|
||||
|
||||
if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater
|
||||
legacy_header_height="18"
|
||||
height="363"
|
||||
height="381"
|
||||
layout="topleft"
|
||||
name="beacons"
|
||||
help_topic="beacons"
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
width="240">
|
||||
<panel
|
||||
follows="left|top|right|bottom"
|
||||
height="358"
|
||||
height="376"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="beacons_panel"
|
||||
|
|
@ -49,6 +49,13 @@
|
|||
<check_box.commit_callback
|
||||
function="Beacons.UICheck" />
|
||||
</check_box>
|
||||
<check_box
|
||||
control_name="FSShowChatRangeSpheres"
|
||||
top_pad="2"
|
||||
height="16"
|
||||
layout="topleft"
|
||||
label="Chat range spheres"
|
||||
name="FSShowChatRangeSpheres" />
|
||||
<view_border
|
||||
bevel_style="in"
|
||||
height="0"
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
</text>
|
||||
<check_box label="Bryły brzegowe świateł sceny" name="lights_bounding_boxes"/>
|
||||
<check_box label="Narożniki regionu" name="fsregioncornerbeacons" />
|
||||
<check_box label="Sfery zasięgu czatu" name="FSShowChatRangeSpheres" />
|
||||
<check_box label="Emitery" name="beacons"/>
|
||||
<check_box label="Podświetlenia" name="highlights"/>
|
||||
<check_box label="Pokazuj objaśnienia emiterów" name="FSRenderBeaconText"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue