aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs44
1 files changed, 25 insertions, 19 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index d90d5dd..80bb461 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -13765,23 +13765,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13765 ret.Add(new LSL_Vector(Vector3.Zero)); 13765 ret.Add(new LSL_Vector(Vector3.Zero));
13766 break; 13766 break;
13767 case ScriptBaseClass.OBJECT_PRIM_COUNT: 13767 case ScriptBaseClass.OBJECT_PRIM_COUNT:
13768 LSL_List AttachmentsPrimList = new LSL_List(); 13768 List<SceneObjectGroup> Attachments = av.GetAttachments();
13769 List<SceneObjectGroup> Attachments; 13769 int count = 0;
13770 Attachments = av.GetAttachments(); 13770 try
13771 foreach (SceneObjectGroup Attachment in Attachments) 13771 {
13772 AttachmentsPrimList.Add(new LSL_Integer(Attachment.PrimCount)); 13772 foreach (SceneObjectGroup Attachment in Attachments)
13773 ret.Add(new LSL_Integer(AttachmentsPrimList.Sum())); 13773 count += Attachment.PrimCount;
13774 } catch { };
13775 ret.Add(new LSL_Integer(count));
13774 break; 13776 break;
13775 case ScriptBaseClass.OBJECT_TOTAL_INVENTORY_COUNT: 13777 case ScriptBaseClass.OBJECT_TOTAL_INVENTORY_COUNT:
13776 LSL_List AttachmentsPrimsInventoryList = new LSL_List(); 13778 List<SceneObjectGroup> invAttachments = av.GetAttachments();
13777 foreach (SceneObjectGroup Attachment in av.GetAttachments()) 13779 int invcount = 0;
13780 try
13778 { 13781 {
13779 Attachment.ForEachPart(delegate(SceneObjectPart part) 13782 foreach (SceneObjectGroup Attachment in invAttachments)
13780 { 13783 {
13781 AttachmentsPrimsInventoryList.Add(new LSL_Integer(part.Inventory.Count)); 13784 SceneObjectPart[] parts = Attachment.Parts;
13782 }); 13785 int nparts = parts.Count();
13783 } 13786 for(int i = 0; i < nparts; i++)
13784 ret.Add(new LSL_Integer(AttachmentsPrimsInventoryList.Sum())); 13787 invcount += parts[i].Inventory.Count;
13788 }
13789 } catch { };
13790 ret.Add(new LSL_Integer(invcount));
13785 break; 13791 break;
13786 case ScriptBaseClass.OBJECT_GROUP_TAG: 13792 case ScriptBaseClass.OBJECT_GROUP_TAG:
13787 ret.Add(new LSL_String(av.Grouptitle)); 13793 ret.Add(new LSL_String(av.Grouptitle));
@@ -13968,12 +13974,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13968 ret.Add(new LSL_Integer(obj.ParentGroup.PrimCount)); 13974 ret.Add(new LSL_Integer(obj.ParentGroup.PrimCount));
13969 break; 13975 break;
13970 case ScriptBaseClass.OBJECT_TOTAL_INVENTORY_COUNT: 13976 case ScriptBaseClass.OBJECT_TOTAL_INVENTORY_COUNT:
13971 LSL_List ObjectPrimsInventoryList = new LSL_List(); 13977 SceneObjectPart[] parts = obj.ParentGroup.Parts;
13972 obj.ParentGroup.ForEachPart(delegate(SceneObjectPart part) 13978 int nparts = parts.Count();
13973 { 13979 int count = 0;
13974 ObjectPrimsInventoryList.Add(new LSL_Integer(part.Inventory.Count)); 13980 for(int i = 0; i < nparts; i++)
13975 }); 13981 count += parts[i].Inventory.Count;
13976 ret.Add(ObjectPrimsInventoryList.Sum()); 13982 ret.Add(new LSL_Integer(count));
13977 break; 13983 break;
13978 case ScriptBaseClass.OBJECT_GROUP_TAG: 13984 case ScriptBaseClass.OBJECT_GROUP_TAG:
13979 ret.Add(new LSL_String(String.Empty)); 13985 ret.Add(new LSL_String(String.Empty));