Add SOG.HasPrivateAttachmentPoint to tell if a SOG has a private attachment point. HUDs attachment points are private.
Change SOP.SendFullUpdateToClient() and SoundModule.PlayAttachedSound() to use this rather than different magic number formulations. This also corrects a bug in PlayAttachedSound() where the code assumed that all attachment points over 30 were HUDs. It appears this is no longer true with Neck and Root (Avatar Center)0.7.3-extended
parent
d8d8b8fc9b
commit
1c5ad8e9ab
|
@ -78,11 +78,8 @@ namespace OpenSim.Region.CoreModules.World.Sound
|
|||
|
||||
if (grp.IsAttachment)
|
||||
{
|
||||
if (grp.AttachmentPoint > 30) // HUD
|
||||
{
|
||||
if (sp.ControllingClient.AgentId != grp.OwnerID)
|
||||
return;
|
||||
}
|
||||
if (grp.HasPrivateAttachmentPoint && sp.ControllingClient.AgentId != grp.OwnerID)
|
||||
return;
|
||||
|
||||
if (sp.ControllingClient.AgentId == grp.OwnerID)
|
||||
dis = 0;
|
||||
|
|
|
@ -180,6 +180,22 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// If this scene object has an attachment point then indicate whether there is a point where
|
||||
/// attachments are perceivable by avatars other than the avatar to which this object is attached.
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// HUDs are not perceivable by other avatars.
|
||||
/// </remarks>
|
||||
public bool HasPrivateAttachmentPoint
|
||||
{
|
||||
get
|
||||
{
|
||||
return AttachmentPoint >= (uint)OpenMetaverse.AttachmentPoint.HUDCenter2
|
||||
&& AttachmentPoint <= (uint)OpenMetaverse.AttachmentPoint.HUDBottomRight;
|
||||
}
|
||||
}
|
||||
|
||||
public void ClearPartAttachmentData()
|
||||
{
|
||||
AttachmentPoint = 0;
|
||||
|
|
|
@ -2898,8 +2898,9 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (ParentGroup.IsDeleted)
|
||||
return;
|
||||
|
||||
if (ParentGroup.IsAttachment && (ParentGroup.AttachedAvatar != remoteClient.AgentId) &&
|
||||
(ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38))
|
||||
if (ParentGroup.IsAttachment
|
||||
&& ParentGroup.AttachedAvatar != remoteClient.AgentId
|
||||
&& ParentGroup.HasPrivateAttachmentPoint)
|
||||
return;
|
||||
|
||||
if (remoteClient.AgentId == OwnerID)
|
||||
|
|
Loading…
Reference in New Issue