From 7d38f4940c39b217bcf6b90b7811933099916de9 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Wed, 22 May 2013 20:01:57 +0100 Subject: Implement llSetSoundQueueing(). This is controlled by the viewer, not the server. So as per http://wiki.secondlife.com/wiki/LlSetSoundQueueing, only two sounds can be queued per prim. You probably need to use llPreloadSound() for best results --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 347a2b5..b1c1cbb 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -219,6 +219,14 @@ namespace OpenSim.Region.Framework.Scenes public double SoundRadius; + /// + /// Should sounds played from this prim be queued? + /// + /// + /// This should only be changed by sound modules. It is up to sound modules as to how they interpret this setting. + /// + public bool SoundQueueing { get; set; } + public uint TimeStampFull; public uint TimeStampLastActivity; // Will be used for AutoReturn @@ -2429,7 +2437,7 @@ namespace OpenSim.Region.Framework.Scenes if (soundModule != null) { soundModule.SendSound(UUID, CollisionSound, - CollisionSoundVolume, true, (byte)0, 0, false, + CollisionSoundVolume, true, 0, 0, false, false); } } -- cgit v1.1 From 9b56f993261954fe9918bd0c9205a41e058183a1 Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Thu, 23 May 2013 23:52:07 +0100 Subject: Fix bug where a cloned object would report the wrong llGetNumberOfPrims() when avatars had been sitting on the original and a different avatar sat on the copy within the same opensim session. This was because the sitting avatars list was being cloned rather than reset. Addresses http://opensimulator.org/mantis/view.php?id=6649 --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 1 + 1 file changed, 1 insertion(+) (limited to 'OpenSim/Region/Framework/Scenes') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 38fa26a..2d4218d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -1500,6 +1500,7 @@ namespace OpenSim.Region.Framework.Scenes dupe.IsAttachment = true; dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); + dupe.m_sittingAvatars = new List(); if (!userExposed) { -- cgit v1.1 From 02fe05f346f3c4acad0116e702ed197a52b3fb4d Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 24 May 2013 00:41:47 +0100 Subject: Fix issue where llSetPayPrice on either one of a clone prim in the same OpenSimulator session would change the prices on both prims. This is because the PayPrice array refernence was being memberwise cloned and not the array itself. Addresses http://opensimulator.org/mantis/view.php?id=6639 --- OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'OpenSim/Region/Framework/Scenes') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index b1c1cbb..ea8c3c5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs @@ -1799,6 +1799,8 @@ namespace OpenSim.Region.Framework.Scenes Array.Copy(Shape.ExtraParams, extraP, extraP.Length); dupe.Shape.ExtraParams = extraP; + dupe.PayPrice = (int[])PayPrice.Clone(); + dupe.DynAttrs.CopyFrom(DynAttrs); if (userExposed) -- cgit v1.1 From eb2bd9d203dbc9d202ae62594fcbdb53d38031ac Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 24 May 2013 00:46:58 +0100 Subject: minor: Remove unnecessary duplication of AbsolutePosition Vector3 in SOG.Copy() As a struct, Vector3 has already been cloned by MemberwiseClone() --- OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 1 - 1 file changed, 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes') diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 2d4218d..df23cc5 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs @@ -1499,7 +1499,6 @@ namespace OpenSim.Region.Framework.Scenes if (!userExposed) dupe.IsAttachment = true; - dupe.AbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); dupe.m_sittingAvatars = new List(); if (!userExposed) -- cgit v1.1 From a087dbed7f57f3ec431782dd51ba43110a0f4ae3 Mon Sep 17 00:00:00 2001 From: Mic Bowman Date: Fri, 24 May 2013 13:26:07 -0700 Subject: One more appearance change: drop sending the SendAppearance packet to avatar when it becomes root. This packet shows up in the viewer logs as an error and appears to cause problems for completing the texture rebake process for v1 viewers in some cases. --- OpenSim/Region/Framework/Scenes/ScenePresence.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'OpenSim/Region/Framework/Scenes') diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 9e9089b..e1a8941 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs @@ -2711,7 +2711,9 @@ namespace OpenSim.Region.Framework.Scenes // again here... this comes after the cached appearance check because the avatars // appearance goes into the avatar update packet SendAvatarDataToAllAgents(); - SendAppearanceToAgent(this); + + // This invocation always shows up in the viewer logs as an error. + // SendAppearanceToAgent(this); // If we are using the the cached appearance then send it out to everyone if (cachedappearance) -- cgit v1.1