aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandObject.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs71
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Permissions.cs29
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs3
-rw-r--r--OpenSim/Region/RegionCombinerModule/RegionCombinerPermissionModule.cs11
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs390
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs2
8 files changed, 220 insertions, 295 deletions
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
index 1c65965..b8c35f7 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs
@@ -915,7 +915,7 @@ namespace OpenSim.Region.CoreModules.World.Land
915 915
916 foreach (List<SceneObjectGroup> ol in returns.Values) 916 foreach (List<SceneObjectGroup> ol in returns.Values)
917 { 917 {
918 if (m_scene.Permissions.CanUseObjectReturn(this, type, remote_client, ol)) 918 if (m_scene.Permissions.CanReturnObjects(this, remote_client.AgentId, ol))
919 m_scene.returnObjects(ol.ToArray(), remote_client.AgentId); 919 m_scene.returnObjects(ol.ToArray(), remote_client.AgentId);
920 } 920 }
921 } 921 }
diff --git a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
index 1533462..7159dc6 100644
--- a/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
+++ b/OpenSim/Region/CoreModules/World/Permissions/PermissionsModule.cs
@@ -200,7 +200,7 @@ namespace OpenSim.Region.CoreModules.World.Permissions
200 m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; //FULLY IMPLEMENTED 200 m_scene.Permissions.OnIssueEstateCommand += CanIssueEstateCommand; //FULLY IMPLEMENTED
201 m_scene.Permissions.OnMoveObject += CanMoveObject; //MAYBE FULLY IMPLEMENTED 201 m_scene.Permissions.OnMoveObject += CanMoveObject; //MAYBE FULLY IMPLEMENTED
202 m_scene.Permissions.OnObjectEntry += CanObjectEntry; 202 m_scene.Permissions.OnObjectEntry += CanObjectEntry;
203 m_scene.Permissions.OnReturnObject += CanReturnObject; //NOT YET IMPLEMENTED 203 m_scene.Permissions.OnReturnObjects += CanReturnObjects; //NOT YET IMPLEMENTED
204 m_scene.Permissions.OnRezObject += CanRezObject; //MAYBE FULLY IMPLEMENTED 204 m_scene.Permissions.OnRezObject += CanRezObject; //MAYBE FULLY IMPLEMENTED
205 m_scene.Permissions.OnRunConsoleCommand += CanRunConsoleCommand; 205 m_scene.Permissions.OnRunConsoleCommand += CanRunConsoleCommand;
206 m_scene.Permissions.OnRunScript += CanRunScript; //NOT YET IMPLEMENTED 206 m_scene.Permissions.OnRunScript += CanRunScript; //NOT YET IMPLEMENTED
@@ -230,7 +230,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
230 m_scene.Permissions.OnDeleteUserInventory += CanDeleteUserInventory; //NOT YET IMPLEMENTED 230 m_scene.Permissions.OnDeleteUserInventory += CanDeleteUserInventory; //NOT YET IMPLEMENTED
231 231
232 m_scene.Permissions.OnTeleport += CanTeleport; //NOT YET IMPLEMENTED 232 m_scene.Permissions.OnTeleport += CanTeleport; //NOT YET IMPLEMENTED
233 m_scene.Permissions.OnUseObjectReturn += CanUseObjectReturn; //NOT YET IMPLEMENTED
234 233
235 m_scene.AddCommand(this, "bypass permissions", 234 m_scene.AddCommand(this, "bypass permissions",
236 "bypass permissions <true / false>", 235 "bypass permissions <true / false>",
@@ -1258,12 +1257,15 @@ namespace OpenSim.Region.CoreModules.World.Permissions
1258 return false; 1257 return false;
1259 } 1258 }
1260 1259
1261 private bool CanReturnObject(UUID objectID, UUID returnerID, Scene scene) 1260 private bool CanReturnObjects(ILandObject land, UUID user, List<SceneObjectGroup> objects, Scene scene)
1262 { 1261 {
1262 if (objects.Count == 0)
1263 return false;
1264
1263 DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name); 1265 DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
1264 if (m_bypassPermissions) return m_bypassPermissionsValue; 1266 if (m_bypassPermissions) return m_bypassPermissionsValue;
1265 1267
1266 return GenericObjectPermission(returnerID, objectID, false); 1268 return GenericObjectPermission(user, objects[0].UUID, false);
1267 } 1269 }
1268 1270
1269 private bool CanRezObject(int objectCount, UUID owner, Vector3 objectPosition, Scene scene) 1271 private bool CanRezObject(int objectCount, UUID owner, Vector3 objectPosition, Scene scene)
@@ -1730,67 +1732,6 @@ namespace OpenSim.Region.CoreModules.World.Permissions
1730 return GenericObjectPermission(agentID, prim, false); 1732 return GenericObjectPermission(agentID, prim, false);
1731 } 1733 }
1732 1734
1733 private bool CanUseObjectReturn(ILandObject parcel, uint type, IClientAPI client, List<SceneObjectGroup> retlist, Scene scene)
1734 {
1735 DebugPermissionInformation(MethodInfo.GetCurrentMethod().Name);
1736 if (m_bypassPermissions) return m_bypassPermissionsValue;
1737
1738 long powers = 0;
1739 if (parcel.LandData.GroupID != UUID.Zero)
1740 client.GetGroupPowers(parcel.LandData.GroupID);
1741
1742 switch (type)
1743 {
1744 case (uint)ObjectReturnType.Owner:
1745 // Don't let group members return owner's objects, ever
1746 //
1747 if (parcel.LandData.IsGroupOwned)
1748 {
1749 if ((powers & (long)GroupPowers.ReturnGroupOwned) != 0)
1750 return true;
1751 }
1752 else
1753 {
1754 if (parcel.LandData.OwnerID != client.AgentId)
1755 return false;
1756 }
1757 return GenericParcelOwnerPermission(client.AgentId, parcel, (ulong)GroupPowers.ReturnGroupOwned);
1758 case (uint)ObjectReturnType.Group:
1759 if (parcel.LandData.OwnerID != client.AgentId)
1760 {
1761 // If permissionis granted through a group...
1762 //
1763 if ((powers & (long)GroupPowers.ReturnGroupSet) != 0)
1764 {
1765 foreach (SceneObjectGroup g in new List<SceneObjectGroup>(retlist))
1766 {
1767 // check for and remove group owned objects unless
1768 // the user also has permissions to return those
1769 //
1770 if (g.OwnerID == g.GroupID &&
1771 ((powers & (long)GroupPowers.ReturnGroupOwned) == 0))
1772 {
1773 retlist.Remove(g);
1774 }
1775 }
1776 // And allow the operation
1777 //
1778 return true;
1779 }
1780 }
1781 return GenericParcelOwnerPermission(client.AgentId, parcel, (ulong)GroupPowers.ReturnGroupSet);
1782 case (uint)ObjectReturnType.Other:
1783 if ((powers & (long)GroupPowers.ReturnNonGroup) != 0)
1784 return true;
1785 return GenericParcelOwnerPermission(client.AgentId, parcel, (ulong)GroupPowers.ReturnNonGroup);
1786 case (uint)ObjectReturnType.List:
1787 break;
1788 }
1789
1790 return GenericParcelOwnerPermission(client.AgentId, parcel, 0);
1791 // Is it correct to be less restrictive for lists of objects to be returned?
1792 }
1793
1794 private bool CanCompileScript(UUID ownerUUID, int scriptType, Scene scene) { 1735 private bool CanCompileScript(UUID ownerUUID, int scriptType, Scene scene) {
1795 //m_log.DebugFormat("check if {0} is allowed to compile {1}", ownerUUID, scriptType); 1736 //m_log.DebugFormat("check if {0} is allowed to compile {1}", ownerUUID, scriptType);
1796 switch (scriptType) { 1737 switch (scriptType) {
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
index b2b061e..ffbf745 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs
@@ -1581,9 +1581,10 @@ namespace OpenSim.Region.Framework.Scenes
1581 if (remoteClient != null) 1581 if (remoteClient != null)
1582 { 1582 {
1583 permissionToTake = 1583 permissionToTake =
1584 Permissions.CanReturnObject( 1584 Permissions.CanReturnObjects(
1585 grp.UUID, 1585 null,
1586 remoteClient.AgentId); 1586 remoteClient.AgentId,
1587 new List<SceneObjectGroup>() {grp});
1587 permissionToDelete = permissionToTake; 1588 permissionToDelete = permissionToTake;
1588 1589
1589 if (permissionToDelete) 1590 if (permissionToDelete)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
index d1d6b6a..7dab04f 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.Permissions.cs
@@ -48,7 +48,7 @@ namespace OpenSim.Region.Framework.Scenes
48 public delegate bool EditObjectInventoryHandler(UUID objectID, UUID editorID, Scene scene); 48 public delegate bool EditObjectInventoryHandler(UUID objectID, UUID editorID, Scene scene);
49 public delegate bool MoveObjectHandler(UUID objectID, UUID moverID, Scene scene); 49 public delegate bool MoveObjectHandler(UUID objectID, UUID moverID, Scene scene);
50 public delegate bool ObjectEntryHandler(UUID objectID, bool enteringRegion, Vector3 newPoint, Scene scene); 50 public delegate bool ObjectEntryHandler(UUID objectID, bool enteringRegion, Vector3 newPoint, Scene scene);
51 public delegate bool ReturnObjectHandler(UUID objectID, UUID returnerID, Scene scene); 51 public delegate bool ReturnObjectsHandler(ILandObject land, UUID user, List<SceneObjectGroup> objects, Scene scene);
52 public delegate bool InstantMessageHandler(UUID user, UUID target, Scene startScene); 52 public delegate bool InstantMessageHandler(UUID user, UUID target, Scene startScene);
53 public delegate bool InventoryTransferHandler(UUID user, UUID target, Scene startScene); 53 public delegate bool InventoryTransferHandler(UUID user, UUID target, Scene startScene);
54 public delegate bool ViewScriptHandler(UUID script, UUID objectID, UUID user, Scene scene); 54 public delegate bool ViewScriptHandler(UUID script, UUID objectID, UUID user, Scene scene);
@@ -81,7 +81,6 @@ namespace OpenSim.Region.Framework.Scenes
81 public delegate bool CopyUserInventoryHandler(UUID itemID, UUID userID); 81 public delegate bool CopyUserInventoryHandler(UUID itemID, UUID userID);
82 public delegate bool DeleteUserInventoryHandler(UUID itemID, UUID userID); 82 public delegate bool DeleteUserInventoryHandler(UUID itemID, UUID userID);
83 public delegate bool TeleportHandler(UUID userID, Scene scene); 83 public delegate bool TeleportHandler(UUID userID, Scene scene);
84 public delegate bool UseObjectReturnHandler(ILandObject landData, uint type, IClientAPI client, List<SceneObjectGroup> retlist, Scene scene);
85 #endregion 84 #endregion
86 85
87 public class ScenePermissions 86 public class ScenePermissions
@@ -107,7 +106,7 @@ namespace OpenSim.Region.Framework.Scenes
107 public event EditObjectInventoryHandler OnEditObjectInventory; 106 public event EditObjectInventoryHandler OnEditObjectInventory;
108 public event MoveObjectHandler OnMoveObject; 107 public event MoveObjectHandler OnMoveObject;
109 public event ObjectEntryHandler OnObjectEntry; 108 public event ObjectEntryHandler OnObjectEntry;
110 public event ReturnObjectHandler OnReturnObject; 109 public event ReturnObjectsHandler OnReturnObjects;
111 public event InstantMessageHandler OnInstantMessage; 110 public event InstantMessageHandler OnInstantMessage;
112 public event InventoryTransferHandler OnInventoryTransfer; 111 public event InventoryTransferHandler OnInventoryTransfer;
113 public event ViewScriptHandler OnViewScript; 112 public event ViewScriptHandler OnViewScript;
@@ -140,7 +139,6 @@ namespace OpenSim.Region.Framework.Scenes
140 public event CopyUserInventoryHandler OnCopyUserInventory; 139 public event CopyUserInventoryHandler OnCopyUserInventory;
141 public event DeleteUserInventoryHandler OnDeleteUserInventory; 140 public event DeleteUserInventoryHandler OnDeleteUserInventory;
142 public event TeleportHandler OnTeleport; 141 public event TeleportHandler OnTeleport;
143 public event UseObjectReturnHandler OnUseObjectReturn;
144 #endregion 142 #endregion
145 143
146 #region Object Permission Checks 144 #region Object Permission Checks
@@ -377,15 +375,15 @@ namespace OpenSim.Region.Framework.Scenes
377 #endregion 375 #endregion
378 376
379 #region RETURN OBJECT 377 #region RETURN OBJECT
380 public bool CanReturnObject(UUID objectID, UUID returnerID) 378 public bool CanReturnObjects(ILandObject land, UUID user, List<SceneObjectGroup> objects)
381 { 379 {
382 ReturnObjectHandler handler = OnReturnObject; 380 ReturnObjectsHandler handler = OnReturnObjects;
383 if (handler != null) 381 if (handler != null)
384 { 382 {
385 Delegate[] list = handler.GetInvocationList(); 383 Delegate[] list = handler.GetInvocationList();
386 foreach (ReturnObjectHandler h in list) 384 foreach (ReturnObjectsHandler h in list)
387 { 385 {
388 if (h(objectID, returnerID, m_scene) == false) 386 if (h(land, user, objects, m_scene) == false)
389 return false; 387 return false;
390 } 388 }
391 } 389 }
@@ -949,20 +947,5 @@ namespace OpenSim.Region.Framework.Scenes
949 } 947 }
950 return true; 948 return true;
951 } 949 }
952
953 public bool CanUseObjectReturn(ILandObject landData, uint type , IClientAPI client, List<SceneObjectGroup> retlist)
954 {
955 UseObjectReturnHandler handler = OnUseObjectReturn;
956 if (handler != null)
957 {
958 Delegate[] list = handler.GetInvocationList();
959 foreach (UseObjectReturnHandler h in list)
960 {
961 if (h(landData, type, client, retlist, m_scene) == false)
962 return false;
963 }
964 }
965 return true;
966 }
967 } 950 }
968} 951}
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
index 92f060b..0b8771c 100644
--- a/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
+++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerModule.cs
@@ -922,7 +922,7 @@ namespace OpenSim.Region.RegionCombinerModule
922 VirtualRegion.Permissions.OnIssueEstateCommand += BigRegion.PermissionModule.CanIssueEstateCommand; //FULLY IMPLEMENTED 922 VirtualRegion.Permissions.OnIssueEstateCommand += BigRegion.PermissionModule.CanIssueEstateCommand; //FULLY IMPLEMENTED
923 VirtualRegion.Permissions.OnMoveObject += BigRegion.PermissionModule.CanMoveObject; //MAYBE FULLY IMPLEMENTED 923 VirtualRegion.Permissions.OnMoveObject += BigRegion.PermissionModule.CanMoveObject; //MAYBE FULLY IMPLEMENTED
924 VirtualRegion.Permissions.OnObjectEntry += BigRegion.PermissionModule.CanObjectEntry; 924 VirtualRegion.Permissions.OnObjectEntry += BigRegion.PermissionModule.CanObjectEntry;
925 VirtualRegion.Permissions.OnReturnObject += BigRegion.PermissionModule.CanReturnObject; //NOT YET IMPLEMENTED 925 VirtualRegion.Permissions.OnReturnObjects += BigRegion.PermissionModule.CanReturnObjects; //NOT YET IMPLEMENTED
926 VirtualRegion.Permissions.OnRezObject += BigRegion.PermissionModule.CanRezObject; //MAYBE FULLY IMPLEMENTED 926 VirtualRegion.Permissions.OnRezObject += BigRegion.PermissionModule.CanRezObject; //MAYBE FULLY IMPLEMENTED
927 VirtualRegion.Permissions.OnRunConsoleCommand += BigRegion.PermissionModule.CanRunConsoleCommand; 927 VirtualRegion.Permissions.OnRunConsoleCommand += BigRegion.PermissionModule.CanRunConsoleCommand;
928 VirtualRegion.Permissions.OnRunScript += BigRegion.PermissionModule.CanRunScript; //NOT YET IMPLEMENTED 928 VirtualRegion.Permissions.OnRunScript += BigRegion.PermissionModule.CanRunScript; //NOT YET IMPLEMENTED
@@ -948,7 +948,6 @@ namespace OpenSim.Region.RegionCombinerModule
948 VirtualRegion.Permissions.OnEditUserInventory += BigRegion.PermissionModule.CanEditUserInventory; //NOT YET IMPLEMENTED 948 VirtualRegion.Permissions.OnEditUserInventory += BigRegion.PermissionModule.CanEditUserInventory; //NOT YET IMPLEMENTED
949 VirtualRegion.Permissions.OnDeleteUserInventory += BigRegion.PermissionModule.CanDeleteUserInventory; //NOT YET IMPLEMENTED 949 VirtualRegion.Permissions.OnDeleteUserInventory += BigRegion.PermissionModule.CanDeleteUserInventory; //NOT YET IMPLEMENTED
950 VirtualRegion.Permissions.OnTeleport += BigRegion.PermissionModule.CanTeleport; //NOT YET IMPLEMENTED 950 VirtualRegion.Permissions.OnTeleport += BigRegion.PermissionModule.CanTeleport; //NOT YET IMPLEMENTED
951 VirtualRegion.Permissions.OnUseObjectReturn += BigRegion.PermissionModule.CanUseObjectReturn; //NOT YET IMPLEMENTED
952 } 951 }
953 952
954 #region console commands 953 #region console commands
diff --git a/OpenSim/Region/RegionCombinerModule/RegionCombinerPermissionModule.cs b/OpenSim/Region/RegionCombinerModule/RegionCombinerPermissionModule.cs
index 4d1af57..393322d 100644
--- a/OpenSim/Region/RegionCombinerModule/RegionCombinerPermissionModule.cs
+++ b/OpenSim/Region/RegionCombinerModule/RegionCombinerPermissionModule.cs
@@ -135,9 +135,9 @@ namespace OpenSim.Region.RegionCombinerModule
135 return m_rootScene.Permissions.CanObjectEntry(objectid, enteringregion, newpoint); 135 return m_rootScene.Permissions.CanObjectEntry(objectid, enteringregion, newpoint);
136 } 136 }
137 137
138 public bool CanReturnObject(UUID objectid, UUID returnerid, Scene scene) 138 public bool CanReturnObjects(ILandObject land, UUID user, List<SceneObjectGroup> objects, Scene scene)
139 { 139 {
140 return m_rootScene.Permissions.CanReturnObject(objectid, returnerid); 140 return m_rootScene.Permissions.CanReturnObjects(land, user, objects);
141 } 141 }
142 142
143 public bool CanRezObject(int objectcount, UUID owner, Vector3 objectposition, Scene scene) 143 public bool CanRezObject(int objectcount, UUID owner, Vector3 objectposition, Scene scene)
@@ -265,11 +265,6 @@ namespace OpenSim.Region.RegionCombinerModule
265 return m_rootScene.Permissions.CanTeleport(userid); 265 return m_rootScene.Permissions.CanTeleport(userid);
266 } 266 }
267 267
268 public bool CanUseObjectReturn(ILandObject landdata, uint type, IClientAPI client, List<SceneObjectGroup> retlist, Scene scene)
269 {
270 return m_rootScene.Permissions.CanUseObjectReturn(landdata, type, client, retlist);
271 }
272
273 #endregion 268 #endregion
274 } 269 }
275} \ No newline at end of file 270}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 8e5c203..10ebf67 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -221,8 +221,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
221 221
222 public List<SceneObjectPart> GetLinkParts(int linkType) 222 public List<SceneObjectPart> GetLinkParts(int linkType)
223 { 223 {
224 List<SceneObjectPart> ret = new List<SceneObjectPart>(); 224 List<SceneObjectPart> ret = new List<SceneObjectPart>();
225 if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted) 225 if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted)
226 return ret; 226 return ret;
227 ret.Add(m_host); 227 ret.Add(m_host);
228 228
@@ -1115,6 +1115,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1115 return detectedParams.TouchUV; 1115 return detectedParams.TouchUV;
1116 } 1116 }
1117 1117
1118 [DebuggerNonUserCode]
1118 public virtual void llDie() 1119 public virtual void llDie()
1119 { 1120 {
1120 m_host.AddScriptLPS(1); 1121 m_host.AddScriptLPS(1);
@@ -1190,8 +1191,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1190 } 1191 }
1191 1192
1192 public void llSetStatus(int status, int value) 1193 public void llSetStatus(int status, int value)
1193 { 1194 {
1194 if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted) 1195 if (m_host == null || m_host.ParentGroup == null || m_host.ParentGroup.IsDeleted)
1195 return; 1196 return;
1196 m_host.AddScriptLPS(1); 1197 m_host.AddScriptLPS(1);
1197 1198
@@ -1367,7 +1368,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1367 } 1368 }
1368 1369
1369 protected void SetScale(SceneObjectPart part, LSL_Vector scale) 1370 protected void SetScale(SceneObjectPart part, LSL_Vector scale)
1370 { 1371 {
1371 // TODO: this needs to trigger a persistance save as well 1372 // TODO: this needs to trigger a persistance save as well
1372 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1373 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1373 return; 1374 return;
@@ -1426,8 +1427,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1426 } 1427 }
1427 1428
1428 protected void SetColor(SceneObjectPart part, LSL_Vector color, int face) 1429 protected void SetColor(SceneObjectPart part, LSL_Vector color, int face)
1429 { 1430 {
1430 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1431 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1431 return; 1432 return;
1432 1433
1433 Primitive.TextureEntry tex = part.Shape.Textures; 1434 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1471,8 +1472,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1471 } 1472 }
1472 1473
1473 public void SetTexGen(SceneObjectPart part, int face,int style) 1474 public void SetTexGen(SceneObjectPart part, int face,int style)
1474 { 1475 {
1475 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1476 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1476 return; 1477 return;
1477 1478
1478 Primitive.TextureEntry tex = part.Shape.Textures; 1479 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1504,8 +1505,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1504 } 1505 }
1505 1506
1506 public void SetGlow(SceneObjectPart part, int face, float glow) 1507 public void SetGlow(SceneObjectPart part, int face, float glow)
1507 { 1508 {
1508 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1509 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1509 return; 1510 return;
1510 1511
1511 Primitive.TextureEntry tex = part.Shape.Textures; 1512 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1532,8 +1533,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1532 } 1533 }
1533 1534
1534 public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) 1535 public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump)
1535 { 1536 {
1536 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1537 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1537 return; 1538 return;
1538 1539
1539 Shininess sval = new Shininess(); 1540 Shininess sval = new Shininess();
@@ -1584,8 +1585,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1584 } 1585 }
1585 1586
1586 public void SetFullBright(SceneObjectPart part, int face, bool bright) 1587 public void SetFullBright(SceneObjectPart part, int face, bool bright)
1587 { 1588 {
1588 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1589 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1589 return; 1590 return;
1590 1591
1591 Primitive.TextureEntry tex = part.Shape.Textures; 1592 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1654,8 +1655,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1654 } 1655 }
1655 1656
1656 protected void SetAlpha(SceneObjectPart part, double alpha, int face) 1657 protected void SetAlpha(SceneObjectPart part, double alpha, int face)
1657 { 1658 {
1658 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1659 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1659 return; 1660 return;
1660 1661
1661 Primitive.TextureEntry tex = part.Shape.Textures; 1662 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1702,8 +1703,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1702 /// <param name="Force"></param> 1703 /// <param name="Force"></param>
1703 protected void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, 1704 protected void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
1704 float wind, float tension, LSL_Vector Force) 1705 float wind, float tension, LSL_Vector Force)
1705 { 1706 {
1706 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1707 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1707 return; 1708 return;
1708 1709
1709 if (flexi) 1710 if (flexi)
@@ -1737,8 +1738,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1737 /// <param name="radius"></param> 1738 /// <param name="radius"></param>
1738 /// <param name="falloff"></param> 1739 /// <param name="falloff"></param>
1739 protected void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff) 1740 protected void SetPointLight(SceneObjectPart part, bool light, LSL_Vector color, float intensity, float radius, float falloff)
1740 { 1741 {
1741 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1742 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1742 return; 1743 return;
1743 1744
1744 if (light) 1745 if (light)
@@ -1823,8 +1824,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1823 } 1824 }
1824 1825
1825 protected void SetTexture(SceneObjectPart part, string texture, int face) 1826 protected void SetTexture(SceneObjectPart part, string texture, int face)
1826 { 1827 {
1827 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1828 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1828 return; 1829 return;
1829 1830
1830 UUID textureID=new UUID(); 1831 UUID textureID=new UUID();
@@ -1871,8 +1872,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1871 } 1872 }
1872 1873
1873 protected void ScaleTexture(SceneObjectPart part, double u, double v, int face) 1874 protected void ScaleTexture(SceneObjectPart part, double u, double v, int face)
1874 { 1875 {
1875 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1876 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1876 return; 1877 return;
1877 1878
1878 Primitive.TextureEntry tex = part.Shape.Textures; 1879 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1910,8 +1911,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1910 } 1911 }
1911 1912
1912 protected void OffsetTexture(SceneObjectPart part, double u, double v, int face) 1913 protected void OffsetTexture(SceneObjectPart part, double u, double v, int face)
1913 { 1914 {
1914 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1915 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1915 return; 1916 return;
1916 1917
1917 Primitive.TextureEntry tex = part.Shape.Textures; 1918 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -1949,8 +1950,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1949 } 1950 }
1950 1951
1951 protected void RotateTexture(SceneObjectPart part, double rotation, int face) 1952 protected void RotateTexture(SceneObjectPart part, double rotation, int face)
1952 { 1953 {
1953 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 1954 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
1954 return; 1955 return;
1955 1956
1956 Primitive.TextureEntry tex = part.Shape.Textures; 1957 Primitive.TextureEntry tex = part.Shape.Textures;
@@ -2022,8 +2023,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2022 } 2023 }
2023 2024
2024 protected void SetPos(SceneObjectPart part, LSL_Vector targetPos) 2025 protected void SetPos(SceneObjectPart part, LSL_Vector targetPos)
2025 { 2026 {
2026 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 2027 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
2027 return; 2028 return;
2028 2029
2029 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos) 2030 // Capped movemment if distance > 10m (http://wiki.secondlife.com/wiki/LlSetPos)
@@ -2119,8 +2120,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2119 } 2120 }
2120 2121
2121 protected void SetRot(SceneObjectPart part, Quaternion rot) 2122 protected void SetRot(SceneObjectPart part, Quaternion rot)
2122 { 2123 {
2123 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 2124 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
2124 return; 2125 return;
2125 2126
2126 part.UpdateRotation(rot); 2127 part.UpdateRotation(rot);
@@ -4016,7 +4017,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4016 bucket); 4017 bucket);
4017 4018
4018 if (m_TransferModule != null) 4019 if (m_TransferModule != null)
4019 m_TransferModule.SendInstantMessage(msg, delegate(bool success) {}); 4020 m_TransferModule.SendInstantMessage(msg, delegate(bool success) {});
4020 4021
4021 //This delay should only occur when giving inventory to avatars. 4022 //This delay should only occur when giving inventory to avatars.
4022 ScriptSleep(3000); 4023 ScriptSleep(3000);
@@ -4192,6 +4193,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4192 ScenePresence presence = World.GetScenePresence(agentId); 4193 ScenePresence presence = World.GetScenePresence(agentId);
4193 if (presence != null) 4194 if (presence != null)
4194 { 4195 {
4196 // agent must not be a god
4197 if (presence.GodLevel >= 200) return;
4198
4195 // agent must be over the owners land 4199 // agent must be over the owners land
4196 if (m_host.OwnerID == World.LandChannel.GetLandObject( 4200 if (m_host.OwnerID == World.LandChannel.GetLandObject(
4197 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID) 4201 presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
@@ -6662,9 +6666,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6662 } 6666 }
6663 6667
6664 protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist) 6668 protected ObjectShapePacket.ObjectDataBlock SetPrimitiveBlockShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist)
6665 { 6669 {
6666 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 6670 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
6667 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 6671 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
6668 return shapeBlock; 6672 return shapeBlock;
6669 6673
6670 if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT && 6674 if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT &&
@@ -6735,8 +6739,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6735 } 6739 }
6736 6740
6737 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge) 6741 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector taper_b, LSL_Vector topshear, byte fudge)
6738 { 6742 {
6739 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 6743 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
6740 return; 6744 return;
6741 6745
6742 ObjectShapePacket.ObjectDataBlock shapeBlock; 6746 ObjectShapePacket.ObjectDataBlock shapeBlock;
@@ -6787,8 +6791,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6787 } 6791 }
6788 6792
6789 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge) 6793 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector dimple, byte fudge)
6790 { 6794 {
6791 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 6795 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
6792 return; 6796 return;
6793 6797
6794 ObjectShapePacket.ObjectDataBlock shapeBlock; 6798 ObjectShapePacket.ObjectDataBlock shapeBlock;
@@ -6832,8 +6836,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6832 } 6836 }
6833 6837
6834 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge) 6838 protected void SetPrimitiveShapeParams(SceneObjectPart part, int holeshape, LSL_Vector cut, float hollow, LSL_Vector twist, LSL_Vector holesize, LSL_Vector topshear, LSL_Vector profilecut, LSL_Vector taper_a, float revolutions, float radiusoffset, float skew, byte fudge)
6835 { 6839 {
6836 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 6840 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
6837 return; 6841 return;
6838 6842
6839 ObjectShapePacket.ObjectDataBlock shapeBlock; 6843 ObjectShapePacket.ObjectDataBlock shapeBlock;
@@ -6956,8 +6960,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6956 } 6960 }
6957 6961
6958 protected void SetPrimitiveShapeParams(SceneObjectPart part, string map, int type) 6962 protected void SetPrimitiveShapeParams(SceneObjectPart part, string map, int type)
6959 { 6963 {
6960 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 6964 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
6961 return; 6965 return;
6962 6966
6963 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 6967 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
@@ -6993,13 +6997,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6993 } 6997 }
6994 6998
6995 public void llSetPrimitiveParams(LSL_List rules) 6999 public void llSetPrimitiveParams(LSL_List rules)
6996 { 7000 {
6997 m_host.AddScriptLPS(1); 7001 m_host.AddScriptLPS(1);
6998 SetPrimParams(m_host, rules); 7002 SetPrimParams(m_host, rules);
6999 } 7003 }
7000 7004
7001 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules) 7005 public void llSetLinkPrimitiveParams(int linknumber, LSL_List rules)
7002 { 7006 {
7003 m_host.AddScriptLPS(1); 7007 m_host.AddScriptLPS(1);
7004 7008
7005 List<SceneObjectPart> parts = GetLinkParts(linknumber); 7009 List<SceneObjectPart> parts = GetLinkParts(linknumber);
@@ -7014,8 +7018,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7014 } 7018 }
7015 7019
7016 protected void SetPrimParams(SceneObjectPart part, LSL_List rules) 7020 protected void SetPrimParams(SceneObjectPart part, LSL_List rules)
7017 { 7021 {
7018 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 7022 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
7019 return; 7023 return;
7020 7024
7021 int idx = 0; 7025 int idx = 0;
@@ -7848,96 +7852,96 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7848 } 7852 }
7849 break; 7853 break;
7850 7854
7851 case (int)ScriptBaseClass.PRIM_BUMP_SHINY: 7855 case (int)ScriptBaseClass.PRIM_BUMP_SHINY:
7852 if (remain < 1) 7856 if (remain < 1)
7853 return res; 7857 return res;
7854 face = (int)rules.GetLSLIntegerItem(idx++); 7858 face = (int)rules.GetLSLIntegerItem(idx++);
7855 7859
7856 tex = part.Shape.Textures; 7860 tex = part.Shape.Textures;
7857 int shiny; 7861 int shiny;
7858 if (face == ScriptBaseClass.ALL_SIDES) 7862 if (face == ScriptBaseClass.ALL_SIDES)
7859 { 7863 {
7860 for (face = 0; face < GetNumberOfSides(part); face++) 7864 for (face = 0; face < GetNumberOfSides(part); face++)
7861 { 7865 {
7862 Shininess shinyness = tex.GetFace((uint)face).Shiny; 7866 Shininess shinyness = tex.GetFace((uint)face).Shiny;
7863 if (shinyness == Shininess.High) 7867 if (shinyness == Shininess.High)
7864 { 7868 {
7865 shiny = ScriptBaseClass.PRIM_SHINY_HIGH; 7869 shiny = ScriptBaseClass.PRIM_SHINY_HIGH;
7866 } 7870 }
7867 else if (shinyness == Shininess.Medium) 7871 else if (shinyness == Shininess.Medium)
7868 { 7872 {
7869 shiny = ScriptBaseClass.PRIM_SHINY_MEDIUM; 7873 shiny = ScriptBaseClass.PRIM_SHINY_MEDIUM;
7870 } 7874 }
7871 else if (shinyness == Shininess.Low) 7875 else if (shinyness == Shininess.Low)
7872 { 7876 {
7873 shiny = ScriptBaseClass.PRIM_SHINY_LOW; 7877 shiny = ScriptBaseClass.PRIM_SHINY_LOW;
7874 } 7878 }
7875 else 7879 else
7876 { 7880 {
7877 shiny = ScriptBaseClass.PRIM_SHINY_NONE; 7881 shiny = ScriptBaseClass.PRIM_SHINY_NONE;
7878 } 7882 }
7879 res.Add(new LSL_Integer(shiny)); 7883 res.Add(new LSL_Integer(shiny));
7880 res.Add(new LSL_Integer((int)tex.GetFace((uint)face).Bump)); 7884 res.Add(new LSL_Integer((int)tex.GetFace((uint)face).Bump));
7881 } 7885 }
7882 } 7886 }
7883 else 7887 else
7884 { 7888 {
7885 Shininess shinyness = tex.GetFace((uint)face).Shiny; 7889 Shininess shinyness = tex.GetFace((uint)face).Shiny;
7886 if (shinyness == Shininess.High) 7890 if (shinyness == Shininess.High)
7887 { 7891 {
7888 shiny = ScriptBaseClass.PRIM_SHINY_HIGH; 7892 shiny = ScriptBaseClass.PRIM_SHINY_HIGH;
7889 } 7893 }
7890 else if (shinyness == Shininess.Medium) 7894 else if (shinyness == Shininess.Medium)
7891 { 7895 {
7892 shiny = ScriptBaseClass.PRIM_SHINY_MEDIUM; 7896 shiny = ScriptBaseClass.PRIM_SHINY_MEDIUM;
7893 } 7897 }
7894 else if (shinyness == Shininess.Low) 7898 else if (shinyness == Shininess.Low)
7895 { 7899 {
7896 shiny = ScriptBaseClass.PRIM_SHINY_LOW; 7900 shiny = ScriptBaseClass.PRIM_SHINY_LOW;
7897 } 7901 }
7898 else 7902 else
7899 { 7903 {
7900 shiny = ScriptBaseClass.PRIM_SHINY_NONE; 7904 shiny = ScriptBaseClass.PRIM_SHINY_NONE;
7901 } 7905 }
7902 res.Add(new LSL_Integer(shiny)); 7906 res.Add(new LSL_Integer(shiny));
7903 res.Add(new LSL_Integer((int)tex.GetFace((uint)face).Bump)); 7907 res.Add(new LSL_Integer((int)tex.GetFace((uint)face).Bump));
7904 } 7908 }
7905 break; 7909 break;
7906 7910
7907 case (int)ScriptBaseClass.PRIM_FULLBRIGHT: 7911 case (int)ScriptBaseClass.PRIM_FULLBRIGHT:
7908 if (remain < 1) 7912 if (remain < 1)
7909 return res; 7913 return res;
7910 face = (int)rules.GetLSLIntegerItem(idx++); 7914 face = (int)rules.GetLSLIntegerItem(idx++);
7911 7915
7912 tex = part.Shape.Textures; 7916 tex = part.Shape.Textures;
7913 int fullbright; 7917 int fullbright;
7914 if (face == ScriptBaseClass.ALL_SIDES) 7918 if (face == ScriptBaseClass.ALL_SIDES)
7915 { 7919 {
7916 for (face = 0; face < GetNumberOfSides(part); face++) 7920 for (face = 0; face < GetNumberOfSides(part); face++)
7917 { 7921 {
7918 if (tex.GetFace((uint)face).Fullbright == true) 7922 if (tex.GetFace((uint)face).Fullbright == true)
7919 { 7923 {
7920 fullbright = ScriptBaseClass.TRUE; 7924 fullbright = ScriptBaseClass.TRUE;
7921 } 7925 }
7922 else 7926 else
7923 { 7927 {
7924 fullbright = ScriptBaseClass.FALSE; 7928 fullbright = ScriptBaseClass.FALSE;
7925 } 7929 }
7926 res.Add(new LSL_Integer(fullbright)); 7930 res.Add(new LSL_Integer(fullbright));
7927 } 7931 }
7928 } 7932 }
7929 else 7933 else
7930 { 7934 {
7931 if (tex.GetFace((uint)face).Fullbright == true) 7935 if (tex.GetFace((uint)face).Fullbright == true)
7932 { 7936 {
7933 fullbright = ScriptBaseClass.TRUE; 7937 fullbright = ScriptBaseClass.TRUE;
7934 } 7938 }
7935 else 7939 else
7936 { 7940 {
7937 fullbright = ScriptBaseClass.FALSE; 7941 fullbright = ScriptBaseClass.FALSE;
7938 } 7942 }
7939 res.Add(new LSL_Integer(fullbright)); 7943 res.Add(new LSL_Integer(fullbright));
7940 } 7944 }
7941 break; 7945 break;
7942 7946
7943 case (int)ScriptBaseClass.PRIM_FLEXIBLE: 7947 case (int)ScriptBaseClass.PRIM_FLEXIBLE:
@@ -7958,37 +7962,37 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7958 break; 7962 break;
7959 7963
7960 case (int)ScriptBaseClass.PRIM_TEXGEN: 7964 case (int)ScriptBaseClass.PRIM_TEXGEN:
7961 // (PRIM_TEXGEN_DEFAULT, PRIM_TEXGEN_PLANAR) 7965 // (PRIM_TEXGEN_DEFAULT, PRIM_TEXGEN_PLANAR)
7962 if (remain < 1) 7966 if (remain < 1)
7963 return res; 7967 return res;
7964 face = (int)rules.GetLSLIntegerItem(idx++); 7968 face = (int)rules.GetLSLIntegerItem(idx++);
7965 7969
7966 tex = part.Shape.Textures; 7970 tex = part.Shape.Textures;
7967 if (face == ScriptBaseClass.ALL_SIDES) 7971 if (face == ScriptBaseClass.ALL_SIDES)
7968 { 7972 {
7969 for (face = 0; face < GetNumberOfSides(part); face++) 7973 for (face = 0; face < GetNumberOfSides(part); face++)
7970 { 7974 {
7971 if (tex.GetFace((uint)face).TexMapType == MappingType.Planar) 7975 if (tex.GetFace((uint)face).TexMapType == MappingType.Planar)
7972 { 7976 {
7973 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_PLANAR)); 7977 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_PLANAR));
7974 } 7978 }
7975 else 7979 else
7976 { 7980 {
7977 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_DEFAULT)); 7981 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_DEFAULT));
7978 } 7982 }
7979 } 7983 }
7980 } 7984 }
7981 else 7985 else
7982 { 7986 {
7983 if (tex.GetFace((uint)face).TexMapType == MappingType.Planar) 7987 if (tex.GetFace((uint)face).TexMapType == MappingType.Planar)
7984 { 7988 {
7985 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_PLANAR)); 7989 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_PLANAR));
7986 } 7990 }
7987 else 7991 else
7988 { 7992 {
7989 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_DEFAULT)); 7993 res.Add(new LSL_Integer(ScriptBaseClass.PRIM_TEXGEN_DEFAULT));
7990 } 7994 }
7991 } 7995 }
7992 break; 7996 break;
7993 7997
7994 case (int)ScriptBaseClass.PRIM_POINT_LIGHT: 7998 case (int)ScriptBaseClass.PRIM_POINT_LIGHT:
@@ -8006,26 +8010,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
8006 res.Add(new LSL_Float(shape.LightFalloff)); // falloff 8010 res.Add(new LSL_Float(shape.LightFalloff)); // falloff
8007 break; 8011 break;
8008 8012
8009 case (int)ScriptBaseClass.PRIM_GLOW: 8013 case (int)ScriptBaseClass.PRIM_GLOW:
8010 if (remain < 1) 8014 if (remain < 1)
8011 return res; 8015 return res;
8012 face = (int)rules.GetLSLIntegerItem(idx++); 8016 face = (int)rules.GetLSLIntegerItem(idx++);
8013 8017
8014 tex = part.Shape.Textures; 8018 tex = part.Shape.Textures;
8015 float primglow; 8019 float primglow;
8016 if (face == ScriptBaseClass.ALL_SIDES) 8020 if (face == ScriptBaseClass.ALL_SIDES)
8017 { 8021 {
8018 for (face = 0; face < GetNumberOfSides(part); face++) 8022 for (face = 0; face < GetNumberOfSides(part); face++)
8019 { 8023 {
8020 primglow = tex.GetFace((uint)face).Glow; 8024 primglow = tex.GetFace((uint)face).Glow;
8021 res.Add(new LSL_Float(primglow)); 8025 res.Add(new LSL_Float(primglow));
8022 } 8026 }
8023 } 8027 }
8024 else 8028 else
8025 { 8029 {
8026 primglow = tex.GetFace((uint)face).Glow; 8030 primglow = tex.GetFace((uint)face).Glow;
8027 res.Add(new LSL_Float(primglow)); 8031 res.Add(new LSL_Float(primglow));
8028 } 8032 }
8029 break; 8033 break;
8030 case (int)ScriptBaseClass.PRIM_TEXT: 8034 case (int)ScriptBaseClass.PRIM_TEXT:
8031 Color4 textColor = part.GetTextColor(); 8035 Color4 textColor = part.GetTextColor();
@@ -9187,7 +9191,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
9187 m_host.AddScriptLPS(1); 9191 m_host.AddScriptLPS(1);
9188 9192
9189 if (quick_pay_buttons.Data.Length < 4) 9193 if (quick_pay_buttons.Data.Length < 4)
9190 { 9194 {
9191 int x; 9195 int x;
9192 for (x=quick_pay_buttons.Data.Length; x<= 4; x++) 9196 for (x=quick_pay_buttons.Data.Length; x<= 4; x++)
9193 { 9197 {
@@ -9195,12 +9199,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
9195 } 9199 }
9196 } 9200 }
9197 int[] nPrice = new int[5]; 9201 int[] nPrice = new int[5];
9198 nPrice[0]=price; 9202 nPrice[0]=price;
9199 nPrice[1] = (LSL_Integer)quick_pay_buttons.Data[0]; 9203 nPrice[1] = (LSL_Integer)quick_pay_buttons.Data[0];
9200 nPrice[2] = (LSL_Integer)quick_pay_buttons.Data[1]; 9204 nPrice[2] = (LSL_Integer)quick_pay_buttons.Data[1];
9201 nPrice[3] = (LSL_Integer)quick_pay_buttons.Data[2]; 9205 nPrice[3] = (LSL_Integer)quick_pay_buttons.Data[2];
9202 nPrice[4] = (LSL_Integer)quick_pay_buttons.Data[3]; 9206 nPrice[4] = (LSL_Integer)quick_pay_buttons.Data[3];
9203 m_host.ParentGroup.RootPart.PayPrice = nPrice; 9207 m_host.ParentGroup.RootPart.PayPrice = nPrice;
9204 m_host.ParentGroup.HasGroupChanged = true; 9208 m_host.ParentGroup.HasGroupChanged = true;
9205 } 9209 }
9206 9210
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
index 3339995..e86d08c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Stub.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.Diagnostics; //for [DebuggerNonUserCode]
29using System.Runtime.Remoting.Lifetime; 30using System.Runtime.Remoting.Lifetime;
30using System.Threading; 31using System.Threading;
31using System.Reflection; 32using System.Reflection;
@@ -309,6 +310,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
309 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel); 310 m_LSL_Functions.llDialog(avatar, message, buttons, chat_channel);
310 } 311 }
311 312
313 [DebuggerNonUserCode]
312 public void llDie() 314 public void llDie()
313 { 315 {
314 m_LSL_Functions.llDie(); 316 m_LSL_Functions.llDie();