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 /OpenSim/Region | |
parent | minor: remove unnecessary IsAttachment = false setting for new object in Uplo... (diff) | |
download | opensim-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.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) |