fixing a bug in SceneObjectPart.SendSound where sounds would always come from the root prim rather than the source prim

integration
SignpostMarv 2012-10-15 16:11:26 +01:00 committed by Justin Clark-Casey (justincc)
parent 57940087d1
commit af39af1cc4
1 changed files with 8 additions and 9 deletions

View File

@ -2659,7 +2659,6 @@ namespace OpenSim.Region.Framework.Scenes
volume = Util.Clip((float)volume, 0, 1); volume = Util.Clip((float)volume, 0, 1);
UUID objectID = ParentGroup.RootPart.UUID;
UUID parentID = ParentGroup.UUID; UUID parentID = ParentGroup.UUID;
UUID soundID = UUID.Zero; UUID soundID = UUID.Zero;
@ -2690,21 +2689,21 @@ namespace OpenSim.Region.Framework.Scenes
if (isMaster) if (isMaster)
{ {
if (triggered) if (triggered)
soundModule.TriggerSound(soundID, OwnerID, objectID, parentID, volume, position, regionHandle, radius); soundModule.TriggerSound(soundID, OwnerID, UUID, parentID, volume, position, regionHandle, radius);
else else
soundModule.PlayAttachedSound(soundID, OwnerID, objectID, volume, position, flags, radius); soundModule.PlayAttachedSound(soundID, OwnerID, UUID, volume, position, flags, radius);
ParentGroup.PlaySoundMasterPrim = this; ParentGroup.PlaySoundMasterPrim = this;
if (triggered) if (triggered)
soundModule.TriggerSound(soundID, OwnerID, objectID, parentID, volume, position, regionHandle, radius); soundModule.TriggerSound(soundID, OwnerID, UUID, parentID, volume, position, regionHandle, radius);
else else
soundModule.PlayAttachedSound(soundID, OwnerID, objectID, volume, position, flags, radius); soundModule.PlayAttachedSound(soundID, OwnerID, UUID, volume, position, flags, radius);
foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims) foreach (SceneObjectPart prim in ParentGroup.PlaySoundSlavePrims)
{ {
position = prim.AbsolutePosition; // region local position = prim.AbsolutePosition; // region local
if (triggered) if (triggered)
soundModule.TriggerSound(soundID, OwnerID, objectID, parentID, volume, position, regionHandle, radius); soundModule.TriggerSound(soundID, OwnerID, prim.UUID, parentID, volume, position, regionHandle, radius);
else else
soundModule.PlayAttachedSound(soundID, OwnerID, objectID, volume, position, flags, radius); soundModule.PlayAttachedSound(soundID, OwnerID, prim.UUID, volume, position, flags, radius);
} }
ParentGroup.PlaySoundSlavePrims.Clear(); ParentGroup.PlaySoundSlavePrims.Clear();
ParentGroup.PlaySoundMasterPrim = null; ParentGroup.PlaySoundMasterPrim = null;
@ -2717,9 +2716,9 @@ namespace OpenSim.Region.Framework.Scenes
else else
{ {
if (triggered) if (triggered)
soundModule.TriggerSound(soundID, OwnerID, objectID, parentID, volume, position, regionHandle, radius); soundModule.TriggerSound(soundID, OwnerID, UUID, parentID, volume, position, regionHandle, radius);
else else
soundModule.PlayAttachedSound(soundID, OwnerID, objectID, volume, position, flags, radius); soundModule.PlayAttachedSound(soundID, OwnerID, UUID, volume, position, flags, radius);
} }
} }