aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-06-14 01:12:16 +0100
committerJustin Clark-Casey (justincc)2012-06-14 01:20:55 +0100
commita4290048e5333d34910fd8c4dfd6cb9b5819d1c1 (patch)
tree2615edb0a04edff9f3d412f0f0b7b4a3b676537e /OpenSim/Region
parentminor: remove unnecessary IsAttachment = false setting for new object in Uplo... (diff)
downloadopensim-SC-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.zip
opensim-SC-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.tar.gz
opensim-SC-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.tar.bz2
opensim-SC-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.tar.xz
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)
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Sound/SoundModule.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs16
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs5
3 files changed, 21 insertions, 7 deletions
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
index 93b1005..d768a1a 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModule.cs
@@ -78,11 +78,8 @@ namespace OpenSim.Region.CoreModules.World.Sound
78 78
79 if (grp.IsAttachment) 79 if (grp.IsAttachment)
80 { 80 {
81 if (grp.AttachmentPoint > 30) // HUD 81 if (grp.HasPrivateAttachmentPoint && sp.ControllingClient.AgentId != grp.OwnerID)
82 { 82 return;
83 if (sp.ControllingClient.AgentId != grp.OwnerID)
84 return;
85 }
86 83
87 if (sp.ControllingClient.AgentId == grp.OwnerID) 84 if (sp.ControllingClient.AgentId == grp.OwnerID)
88 dis = 0; 85 dis = 0;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 20d7a01..619296e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -180,6 +180,22 @@ namespace OpenSim.Region.Framework.Scenes
180 } 180 }
181 } 181 }
182 182
183 /// <summary>
184 /// If this scene object has an attachment point then indicate whether there is a point where
185 /// attachments are perceivable by avatars other than the avatar to which this object is attached.
186 /// </summary>
187 /// <remarks>
188 /// HUDs are not perceivable by other avatars.
189 /// </remarks>
190 public bool HasPrivateAttachmentPoint
191 {
192 get
193 {
194 return AttachmentPoint >= (uint)OpenMetaverse.AttachmentPoint.HUDCenter2
195 && AttachmentPoint <= (uint)OpenMetaverse.AttachmentPoint.HUDBottomRight;
196 }
197 }
198
183 public void ClearPartAttachmentData() 199 public void ClearPartAttachmentData()
184 { 200 {
185 AttachmentPoint = 0; 201 AttachmentPoint = 0;
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 17c7661..7640fc0 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -2573,8 +2573,9 @@ namespace OpenSim.Region.Framework.Scenes
2573 if (ParentGroup.IsDeleted) 2573 if (ParentGroup.IsDeleted)
2574 return; 2574 return;
2575 2575
2576 if (ParentGroup.IsAttachment && (ParentGroup.AttachedAvatar != remoteClient.AgentId) && 2576 if (ParentGroup.IsAttachment
2577 (ParentGroup.AttachmentPoint >= 31) && (ParentGroup.AttachmentPoint <= 38)) 2577 && ParentGroup.AttachedAvatar != remoteClient.AgentId
2578 && ParentGroup.HasPrivateAttachmentPoint)
2578 return; 2579 return;
2579 2580
2580 if (remoteClient.AgentId == OwnerID) 2581 if (remoteClient.AgentId == OwnerID)