summaryrefslogtreecommitdiff
path: root/indra/newview/llaudiosourcevo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llaudiosourcevo.cpp')
-rw-r--r--indra/newview/llaudiosourcevo.cpp18
1 files changed, 17 insertions, 1 deletions
diff --git a/indra/newview/llaudiosourcevo.cpp b/indra/newview/llaudiosourcevo.cpp
index 9d83e5d80e..21407bf31a 100644
--- a/indra/newview/llaudiosourcevo.cpp
+++ b/indra/newview/llaudiosourcevo.cpp
@@ -50,7 +50,23 @@ void LLAudioSourceVO::updateGain()
BOOL mute = FALSE;
if (gParcelMgr)
{
- LLVector3d pos_global = mObjectp->getPositionGlobal();
+ LLVector3d pos_global;
+
+ if (mObjectp->isAttachment())
+ {
+ LLViewerObject* parent = mObjectp;
+ while (parent
+ && !parent->isAvatar())
+ {
+ parent = (LLViewerObject*)parent->getParent();
+ }
+ if (parent)
+ pos_global = parent->getPositionGlobal();
+ }
+
+ else
+ pos_global = mObjectp->getPositionGlobal();
+
if (!gParcelMgr->canHearSound(pos_global))
{
mute = TRUE;