aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs23
1 files changed, 9 insertions, 14 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 3f523a4..337e862 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -24,7 +24,7 @@
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */ 26 */
27 27
28using System; 28using System;
29using System.Collections; 29using System.Collections;
30using System.Collections.Generic; 30using System.Collections.Generic;
@@ -617,7 +617,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
617 } 617 }
618 618
619 int actualPrimCount = part.ParentGroup.PrimCount; 619 int actualPrimCount = part.ParentGroup.PrimCount;
620 List<UUID> sittingAvatars = part.ParentGroup.GetSittingAvatars(); 620 List<ScenePresence> sittingAvatars = part.ParentGroup.GetSittingAvatars();
621 int adjustedPrimCount = actualPrimCount + sittingAvatars.Count; 621 int adjustedPrimCount = actualPrimCount + sittingAvatars.Count;
622 622
623 // Special case for a single prim. In this case the linknum is zero. However, this will not match a single 623 // Special case for a single prim. In this case the linknum is zero. However, this will not match a single
@@ -646,11 +646,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
646 } 646 }
647 else 647 else
648 { 648 {
649 ScenePresence sp = World.GetScenePresence(sittingAvatars[linknum - actualPrimCount - 1]); 649 return sittingAvatars[linknum - actualPrimCount - 1];
650 if (sp != null)
651 return sp;
652 else
653 return null;
654 } 650 }
655 } 651 }
656 else 652 else
@@ -4146,7 +4142,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4146 } 4142 }
4147 else 4143 else
4148 { 4144 {
4149 if (m_host.ParentGroup.GetSittingAvatars().SingleOrDefault(id => id == agentID) != null) 4145 if (m_host.ParentGroup.GetSittingAvatars().SingleOrDefault(sp => sp.UUID == agentID) != null)
4150 { 4146 {
4151 // When agent is sitting, certain permissions are implicit if requested from sitting agent 4147 // When agent is sitting, certain permissions are implicit if requested from sitting agent
4152 implicitPerms = ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION | 4148 implicitPerms = ScriptBaseClass.PERMISSION_TRIGGER_ANIMATION |
@@ -6915,11 +6911,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6915 if (UUID.TryParse(id, out key)) 6911 if (UUID.TryParse(id, out key))
6916 { 6912 {
6917 ScenePresence av = World.GetScenePresence(key); 6913 ScenePresence av = World.GetScenePresence(key);
6918 List<UUID> sittingAvatars = m_host.ParentGroup.GetSittingAvatars(); 6914 List<ScenePresence> sittingAvatars = m_host.ParentGroup.GetSittingAvatars();
6919 6915
6920 if (av != null) 6916 if (av != null)
6921 { 6917 {
6922 if (sittingAvatars.Contains(key)) 6918 if (sittingAvatars.Contains(av))
6923 { 6919 {
6924 // if the avatar is sitting on this object, then 6920 // if the avatar is sitting on this object, then
6925 // we can unsit them. We don't want random scripts unsitting random people 6921 // we can unsit them. We don't want random scripts unsitting random people
@@ -10316,9 +10312,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10316 public LSL_Integer llGetNumberOfPrims() 10312 public LSL_Integer llGetNumberOfPrims()
10317 { 10313 {
10318 m_host.AddScriptLPS(1); 10314 m_host.AddScriptLPS(1);
10319 int avatarCount = m_host.ParentGroup.GetLinkedAvatars().Count; 10315
10320 10316 return m_host.ParentGroup.PrimCount + m_host.ParentGroup.GetSittingAvatarsCount();
10321 return m_host.ParentGroup.PrimCount + avatarCount;
10322 } 10317 }
10323 10318
10324 /// <summary> 10319 /// <summary>
@@ -14457,7 +14452,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14457 UUID userId = UUID.Zero; 14452 UUID userId = UUID.Zero;
14458 int msAvailable = 0; 14453 int msAvailable = 0;
14459 // Throttle per owner when attachment or "vehicle" (sat upon) 14454 // Throttle per owner when attachment or "vehicle" (sat upon)
14460 if (m_host.ParentGroup.IsAttachment || m_host.ParentGroup.GetSittingAvatars().Count > 0) 14455 if (m_host.ParentGroup.IsAttachment || m_host.ParentGroup.GetSittingAvatarsCount() > 0)
14461 { 14456 {
14462 userId = m_host.OwnerID; 14457 userId = m_host.OwnerID;
14463 msAvailable = m_msPerAvatarInCastRay; 14458 msAvailable = m_msPerAvatarInCastRay;