aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs')
-rw-r--r--OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs b/OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs
index 670794d..0225d6f 100644
--- a/OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs
+++ b/OpenSim/Region/CoreModules/World/Sound/SoundModuleNonShared.cs
@@ -25,6 +25,7 @@
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27using System; 27using System;
28using System.Collections.Generic;
28using System.Reflection; 29using System.Reflection;
29 30
30using Nini.Config; 31using Nini.Config;
@@ -223,6 +224,25 @@ namespace OpenSim.Region.CoreModules.World.Sound
223 } 224 }
224 } 225 }
225 226
227 public virtual void PreloadSound(UUID soundID, UUID objectID, float radius)
228 {
229 SceneObjectPart part;
230 if (soundID == UUID.Zero
231 || !m_scene.TryGetSceneObjectPart(objectID, out part))
232 {
233 return;
234 }
235
236 if (radius == 0)
237 radius = MaxDistance;
238
239 m_scene.ForEachRootScenePresence(delegate(ScenePresence sp)
240 {
241 if (!(Util.GetDistanceTo(sp.AbsolutePosition, part.AbsolutePosition) >= MaxDistance))
242 sp.ControllingClient.SendPreLoadSound(objectID, objectID, soundID);
243 });
244 }
245
226 #endregion 246 #endregion
227 } 247 }
228} 248}