diff options
author | Justin Clark-Casey (justincc) | 2012-06-14 01:12:16 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-06-14 01:20:55 +0100 |
commit | a4290048e5333d34910fd8c4dfd6cb9b5819d1c1 (patch) | |
tree | 2615edb0a04edff9f3d412f0f0b7b4a3b676537e | |
parent | minor: remove unnecessary IsAttachment = false setting for new object in Uplo... (diff) | |
download | opensim-SC_OLD-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.zip opensim-SC_OLD-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.tar.gz opensim-SC_OLD-a4290048e5333d34910fd8c4dfd6cb9b5819d1c1.tar.bz2 opensim-SC_OLD-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)
-rw-r--r-- | OpenSim/Region/CoreModules/World/Sound/SoundModule.cs | 7 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 16 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 5 |
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) |