diff options
Diffstat (limited to 'indra/newview/llaudiosourcevo.cpp')
-rw-r--r-- | indra/newview/llaudiosourcevo.cpp | 18 |
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; |