summaryrefslogtreecommitdiff
path: root/indra/newview/llpanelvolume.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llpanelvolume.cpp')
-rw-r--r--indra/newview/llpanelvolume.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index 2bad5d4235..a306a0a9ac 100644
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -769,6 +769,13 @@ void LLPanelVolume::sendIsMirror()
LL_INFOS() << "update mirror sent" << LL_ENDL;
}
+void notify_cant_select_reflection_probe()
+{
+ if (!gSavedSettings.getBOOL("SelectReflectionProbes"))
+ {
+ LLNotificationsUtil::add("CantSelectReflectionProbe");
+ }
+}
void LLPanelVolume::sendIsReflectionProbe()
{
@@ -788,6 +795,20 @@ void LLPanelVolume::sendIsReflectionProbe()
}
else
{
+ if (value)
+ {
+ notify_cant_select_reflection_probe();
+ }
+ else if (objectp->flagPhantom())
+ {
+ LLViewerObject* root = objectp->getRootEdit();
+ bool in_linkeset = root != objectp || objectp->numChildren() > 0;
+ if (in_linkeset)
+ {
+ // In linkset with a phantom flag
+ objectp->setFlags(FLAGS_PHANTOM, FALSE);
+ }
+ }
volobjp->setIsReflectionProbe(value);
}
}
@@ -804,6 +825,7 @@ void LLPanelVolume::doSendIsReflectionProbe(const LLSD & notification, const LLS
}
LLVOVolume* volobjp = (LLVOVolume*)objectp;
+ notify_cant_select_reflection_probe();
volobjp->setIsReflectionProbe(true);
{ // has become a reflection probe, slam to a 10m sphere and pop up a message
@@ -1235,6 +1257,17 @@ void LLPanelVolume::onPasteLight()
}
else
{
+ if (objectp->flagPhantom())
+ {
+ LLViewerObject* root = objectp->getRootEdit();
+ bool in_linkeset = root != objectp || objectp->numChildren() > 0;
+ if (in_linkeset)
+ {
+ // In linkset with a phantom flag
+ objectp->setFlags(FLAGS_PHANTOM, FALSE);
+ }
+ }
+
volobjp->setIsReflectionProbe(false);
}
}