aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs44
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs118
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs74
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs106
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs14
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs8
8 files changed, 184 insertions, 184 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
index 84d44a1..6a39bb9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/AsyncCommandManager.cs
@@ -81,64 +81,64 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
81 81
82 public Dataserver DataserverPlugin 82 public Dataserver DataserverPlugin
83 { 83 {
84 get 84 get
85 { 85 {
86 lock (staticLock) 86 lock (staticLock)
87 return m_Dataserver[m_ScriptEngine]; 87 return m_Dataserver[m_ScriptEngine];
88 } 88 }
89 } 89 }
90 90
91 public Timer TimerPlugin 91 public Timer TimerPlugin
92 { 92 {
93 get 93 get
94 { 94 {
95 lock (staticLock) 95 lock (staticLock)
96 return m_Timer[m_ScriptEngine]; 96 return m_Timer[m_ScriptEngine];
97 } 97 }
98 } 98 }
99 99
100 public HttpRequest HttpRequestPlugin 100 public HttpRequest HttpRequestPlugin
101 { 101 {
102 get 102 get
103 { 103 {
104 lock (staticLock) 104 lock (staticLock)
105 return m_HttpRequest[m_ScriptEngine]; 105 return m_HttpRequest[m_ScriptEngine];
106 } 106 }
107 } 107 }
108 108
109 public Listener ListenerPlugin 109 public Listener ListenerPlugin
110 { 110 {
111 get 111 get
112 { 112 {
113 lock (staticLock) 113 lock (staticLock)
114 return m_Listener[m_ScriptEngine]; 114 return m_Listener[m_ScriptEngine];
115 } 115 }
116 } 116 }
117 117
118 public SensorRepeat SensorRepeatPlugin 118 public SensorRepeat SensorRepeatPlugin
119 { 119 {
120 get 120 get
121 { 121 {
122 lock (staticLock) 122 lock (staticLock)
123 return m_SensorRepeat[m_ScriptEngine]; 123 return m_SensorRepeat[m_ScriptEngine];
124 } 124 }
125 } 125 }
126 126
127 public XmlRequest XmlRequestPlugin 127 public XmlRequest XmlRequestPlugin
128 { 128 {
129 get 129 get
130 { 130 {
131 lock (staticLock) 131 lock (staticLock)
132 return m_XmlRequest[m_ScriptEngine]; 132 return m_XmlRequest[m_ScriptEngine];
133 } 133 }
134 } 134 }
135 135
136 public IScriptEngine[] ScriptEngines 136 public IScriptEngine[] ScriptEngines
137 { 137 {
138 get 138 get
139 { 139 {
140 lock (staticLock) 140 lock (staticLock)
141 return m_ScriptEngines.ToArray(); 141 return m_ScriptEngines.ToArray();
142 } 142 }
143 } 143 }
144 144
@@ -387,7 +387,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
387 } 387 }
388 } 388 }
389 389
390 390
391 391
392 public static Object[] GetSerializationData(IScriptEngine engine, UUID itemID) 392 public static Object[] GetSerializationData(IScriptEngine engine, UUID itemID)
393 { 393 {
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 5269bf9..8f9ff03 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -100,7 +100,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
100 100
101 protected IScriptEngine m_ScriptEngine; 101 protected IScriptEngine m_ScriptEngine;
102 protected SceneObjectPart m_host; 102 protected SceneObjectPart m_host;
103 103
104 /// <summary> 104 /// <summary>
105 /// The item that hosts this script 105 /// The item that hosts this script
106 /// </summary> 106 /// </summary>
@@ -298,7 +298,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
298 m_host = host; 298 m_host = host;
299 m_item = item; 299 m_item = item;
300 m_debuggerSafe = m_ScriptEngine.Config.GetBoolean("DebuggerSafe", false); 300 m_debuggerSafe = m_ScriptEngine.Config.GetBoolean("DebuggerSafe", false);
301 301
302 LoadConfig(); 302 LoadConfig();
303 303
304 m_TransferModule = 304 m_TransferModule =
@@ -400,7 +400,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
400 } 400 }
401 401
402 IConfig smtpConfig = seConfigSource.Configs["SMTP"]; 402 IConfig smtpConfig = seConfigSource.Configs["SMTP"];
403 if (smtpConfig != null) 403 if (smtpConfig != null)
404 { 404 {
405 // there's an smtp config, so load in the snooze time. 405 // there's an smtp config, so load in the snooze time.
406 EMAIL_PAUSE_TIME = smtpConfig.GetInt("email_pause_time", EMAIL_PAUSE_TIME); 406 EMAIL_PAUSE_TIME = smtpConfig.GetInt("email_pause_time", EMAIL_PAUSE_TIME);
@@ -666,7 +666,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
666 case ScriptBaseClass.LINK_SET: 666 case ScriptBaseClass.LINK_SET:
667 return new List<SceneObjectPart>(part.ParentGroup.Parts); 667 return new List<SceneObjectPart>(part.ParentGroup.Parts);
668 668
669 case ScriptBaseClass.LINK_ROOT: 669 case ScriptBaseClass.LINK_ROOT:
670 ret.Add(part.ParentGroup.RootPart); 670 ret.Add(part.ParentGroup.RootPart);
671 return ret; 671 return ret;
672 672
@@ -807,8 +807,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
807 m_host.AddScriptLPS(1); 807 m_host.AddScriptLPS(1);
808 lock (Util.RandomClass) 808 lock (Util.RandomClass)
809 { 809 {
810 return Util.RandomClass.NextDouble() * mag; 810 return Util.RandomClass.NextDouble() * mag;
811 } 811 }
812 } 812 }
813 813
814 public LSL_Integer llFloor(double f) 814 public LSL_Integer llFloor(double f)
@@ -1097,7 +1097,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1097 m_host.AddScriptLPS(1); 1097 m_host.AddScriptLPS(1);
1098 /* This method is more accurate than the SL one, and thus causes problems 1098 /* This method is more accurate than the SL one, and thus causes problems
1099 for scripts that deal with the SL inaccuracy around 180-degrees -.- .._. 1099 for scripts that deal with the SL inaccuracy around 180-degrees -.- .._.
1100 1100
1101 double dotProduct = LSL_Vector.Dot(a, b); 1101 double dotProduct = LSL_Vector.Dot(a, b);
1102 LSL_Vector crossProduct = LSL_Vector.Cross(a, b); 1102 LSL_Vector crossProduct = LSL_Vector.Cross(a, b);
1103 double magProduct = LSL_Vector.Mag(a) * LSL_Vector.Mag(b); 1103 double magProduct = LSL_Vector.Mag(a) * LSL_Vector.Mag(b);
@@ -1115,12 +1115,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1115 1115
1116 return new LSL_Rotation((float)x, (float)y, (float)z, (float)w); 1116 return new LSL_Rotation((float)x, (float)y, (float)z, (float)w);
1117 */ 1117 */
1118 1118
1119 // This method mimics the 180 errors found in SL 1119 // This method mimics the 180 errors found in SL
1120 // See www.euclideanspace.com... angleBetween 1120 // See www.euclideanspace.com... angleBetween
1121 LSL_Vector vec_a = a; 1121 LSL_Vector vec_a = a;
1122 LSL_Vector vec_b = b; 1122 LSL_Vector vec_b = b;
1123 1123
1124 // Eliminate zero length 1124 // Eliminate zero length
1125 LSL_Float vec_a_mag = LSL_Vector.Mag(vec_a); 1125 LSL_Float vec_a_mag = LSL_Vector.Mag(vec_a);
1126 LSL_Float vec_b_mag = LSL_Vector.Mag(vec_b); 1126 LSL_Float vec_b_mag = LSL_Vector.Mag(vec_b);
@@ -1129,7 +1129,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1129 { 1129 {
1130 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f); 1130 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f);
1131 } 1131 }
1132 1132
1133 // Normalize 1133 // Normalize
1134 vec_a = llVecNorm(vec_a); 1134 vec_a = llVecNorm(vec_a);
1135 vec_b = llVecNorm(vec_b); 1135 vec_b = llVecNorm(vec_b);
@@ -1137,13 +1137,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1137 // Calculate axis and rotation angle 1137 // Calculate axis and rotation angle
1138 LSL_Vector axis = vec_a % vec_b; 1138 LSL_Vector axis = vec_a % vec_b;
1139 LSL_Float cos_theta = vec_a * vec_b; 1139 LSL_Float cos_theta = vec_a * vec_b;
1140 1140
1141 // Check if parallel 1141 // Check if parallel
1142 if (cos_theta > 0.99999) 1142 if (cos_theta > 0.99999)
1143 { 1143 {
1144 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f); 1144 return new LSL_Rotation(0.0f, 0.0f, 0.0f, 1.0f);
1145 } 1145 }
1146 1146
1147 // Check if anti-parallel 1147 // Check if anti-parallel
1148 else if (cos_theta < -0.99999) 1148 else if (cos_theta < -0.99999)
1149 { 1149 {
@@ -1164,7 +1164,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1164 return new LSL_Rotation(x,y,z,s); 1164 return new LSL_Rotation(x,y,z,s);
1165 } 1165 }
1166 } 1166 }
1167 1167
1168 public void llWhisper(int channelID, string text) 1168 public void llWhisper(int channelID, string text)
1169 { 1169 {
1170 m_host.AddScriptLPS(1); 1170 m_host.AddScriptLPS(1);
@@ -1261,7 +1261,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1261 { 1261 {
1262 World.SimChat(Utils.StringToBytes(text), 1262 World.SimChat(Utils.StringToBytes(text),
1263 ChatTypeEnum.Shout, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true); 1263 ChatTypeEnum.Shout, channelID, m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, true);
1264 1264
1265 } 1265 }
1266 1266
1267 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 1267 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
@@ -1830,7 +1830,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1830 { 1830 {
1831 m_host.AddScriptLPS(1); 1831 m_host.AddScriptLPS(1);
1832 SceneObjectGroup group = m_host.ParentGroup; 1832 SceneObjectGroup group = m_host.ParentGroup;
1833 1833
1834 if (group == null || group.IsDeleted || group.inTransit) 1834 if (group == null || group.IsDeleted || group.inTransit)
1835 return 1.0f; 1835 return 1.0f;
1836 1836
@@ -1841,7 +1841,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1841 { 1841 {
1842 m_host.AddScriptLPS(1); 1842 m_host.AddScriptLPS(1);
1843 SceneObjectGroup group = m_host.ParentGroup; 1843 SceneObjectGroup group = m_host.ParentGroup;
1844 1844
1845 if (group == null || group.IsDeleted || group.inTransit) 1845 if (group == null || group.IsDeleted || group.inTransit)
1846 return 1.0f; 1846 return 1.0f;
1847 1847
@@ -1970,7 +1970,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1970 string userAgent = m_UrlModule.GetHttpHeader(new UUID(id), "user-agent"); 1970 string userAgent = m_UrlModule.GetHttpHeader(new UUID(id), "user-agent");
1971 if (userAgent.IndexOf("SecondLife") < 0) 1971 if (userAgent.IndexOf("SecondLife") < 0)
1972 return; // Not the embedded browser. Is this check good enough? 1972 return; // Not the embedded browser. Is this check good enough?
1973 1973
1974 // Use the IP address of the client and check against the request 1974 // Use the IP address of the client and check against the request
1975 // seperate logins from the same IP will allow all of them to get non-text/plain as long 1975 // seperate logins from the same IP will allow all of them to get non-text/plain as long
1976 // as the owner is in the region. Same as SL! 1976 // as the owner is in the region. Same as SL!
@@ -2030,7 +2030,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2030 m_UrlModule.HttpContentType(new UUID(id),type); 2030 m_UrlModule.HttpContentType(new UUID(id),type);
2031 } 2031 }
2032 } 2032 }
2033*/ 2033*/
2034 public void SetTexGen(SceneObjectPart part, int face,int style) 2034 public void SetTexGen(SceneObjectPart part, int face,int style)
2035 { 2035 {
2036 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted) 2036 if (part == null || part.ParentGroup == null || part.ParentGroup.IsDeleted)
@@ -2774,7 +2774,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2774 public void llSetRot(LSL_Rotation rot) 2774 public void llSetRot(LSL_Rotation rot)
2775 { 2775 {
2776 m_host.AddScriptLPS(1); 2776 m_host.AddScriptLPS(1);
2777 2777
2778 // try to let this work as in SL... 2778 // try to let this work as in SL...
2779 if (m_host.ParentID == 0 || (m_host.ParentGroup != null && m_host == m_host.ParentGroup.RootPart)) 2779 if (m_host.ParentID == 0 || (m_host.ParentGroup != null && m_host == m_host.ParentGroup.RootPart))
2780 { 2780 {
@@ -2960,7 +2960,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2960 m_host.AddScriptLPS(1); 2960 m_host.AddScriptLPS(1);
2961 m_host.SetVelocity(new Vector3((float)vel.x, (float)vel.y, (float)vel.z), local != 0); 2961 m_host.SetVelocity(new Vector3((float)vel.x, (float)vel.y, (float)vel.z), local != 0);
2962 } 2962 }
2963 2963
2964 public void llSetAngularVelocity(LSL_Vector avel, int local) 2964 public void llSetAngularVelocity(LSL_Vector avel, int local)
2965 { 2965 {
2966 m_host.AddScriptLPS(1); 2966 m_host.AddScriptLPS(1);
@@ -3129,7 +3129,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3129 { 3129 {
3130 m_SoundModule.SendSound( 3130 m_SoundModule.SendSound(
3131 m_host.UUID, 3131 m_host.UUID,
3132 ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound), 3132 ScriptUtils.GetAssetIdFromKeyOrItemName(m_host, sound, AssetType.Sound),
3133 volume, false, 0, 3133 volume, false, 0,
3134 0, false, false); 3134 0, false, false);
3135 } 3135 }
@@ -3602,7 +3602,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3602// LSL_Vector up = new LSL_Vector(0.0, 0.0, 1.0); 3602// LSL_Vector up = new LSL_Vector(0.0, 0.0, 1.0);
3603 // find normalized left axis parallel to horizon 3603 // find normalized left axis parallel to horizon
3604// LSL_Vector left = llVecNorm(LSL_Vector.Cross(up, dir)); 3604// LSL_Vector left = llVecNorm(LSL_Vector.Cross(up, dir));
3605 3605
3606 LSL_Vector left = new LSL_Vector(-dir.y, dir.x, 0.0f); 3606 LSL_Vector left = new LSL_Vector(-dir.y, dir.x, 0.0f);
3607 left = llVecNorm(left); 3607 left = llVecNorm(left);
3608 // make up orthogonal to left and dir 3608 // make up orthogonal to left and dir
@@ -3851,7 +3851,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3851 ScriptSleep(2000); 3851 ScriptSleep(2000);
3852 return; 3852 return;
3853 } 3853 }
3854 3854
3855 // We may be able to use ClientView.SendInstantMessage here, but we need a client instance. 3855 // We may be able to use ClientView.SendInstantMessage here, but we need a client instance.
3856 // InstantMessageModule.OnInstantMessage searches through a list of scenes for a client matching the toAgent, 3856 // InstantMessageModule.OnInstantMessage searches through a list of scenes for a client matching the toAgent,
3857 // but I don't think we have a list of scenes available from here. 3857 // but I don't think we have a list of scenes available from here.
@@ -3864,7 +3864,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3864 UUID friendTransactionID = UUID.Random(); 3864 UUID friendTransactionID = UUID.Random();
3865 3865
3866 //m_pendingFriendRequests.Add(friendTransactionID, fromAgentID); 3866 //m_pendingFriendRequests.Add(friendTransactionID, fromAgentID);
3867 3867
3868 GridInstantMessage msg = new GridInstantMessage(); 3868 GridInstantMessage msg = new GridInstantMessage();
3869 msg.fromAgentID = new Guid(m_host.OwnerID.ToString()); // fromAgentID.Guid; 3869 msg.fromAgentID = new Guid(m_host.OwnerID.ToString()); // fromAgentID.Guid;
3870 msg.toAgentID = new Guid(user); // toAgentID.Guid; 3870 msg.toAgentID = new Guid(user); // toAgentID.Guid;
@@ -4217,7 +4217,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4217 } 4217 }
4218 4218
4219 ScenePresence presence = World.GetScenePresence(agentID); 4219 ScenePresence presence = World.GetScenePresence(agentID);
4220 4220
4221 if (presence != null) 4221 if (presence != null)
4222 { 4222 {
4223 // If permissions are being requested from an NPC and were not implicitly granted above then 4223 // If permissions are being requested from an NPC and were not implicitly granted above then
@@ -4285,7 +4285,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4285 m_host.TaskInventory.LockItemsForWrite(true); 4285 m_host.TaskInventory.LockItemsForWrite(true);
4286 m_host.TaskInventory[m_item.ItemID].PermsMask = answer; 4286 m_host.TaskInventory[m_item.ItemID].PermsMask = answer;
4287 m_host.TaskInventory.LockItemsForWrite(false); 4287 m_host.TaskInventory.LockItemsForWrite(false);
4288 4288
4289 m_ScriptEngine.PostScriptEvent(m_item.ItemID, new EventParams( 4289 m_ScriptEngine.PostScriptEvent(m_item.ItemID, new EventParams(
4290 "run_time_permissions", new Object[] { 4290 "run_time_permissions", new Object[] {
4291 new LSL_Integer(answer) }, 4291 new LSL_Integer(answer) },
@@ -4363,7 +4363,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4363 UUID targetID; 4363 UUID targetID;
4364 4364
4365 if (!UUID.TryParse(target, out targetID)) 4365 if (!UUID.TryParse(target, out targetID))
4366 return; 4366 return;
4367 4367
4368 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID); 4368 SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID);
4369 if (targetPart == null) 4369 if (targetPart == null)
@@ -4493,7 +4493,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4493 } 4493 }
4494 } 4494 }
4495 finally { } 4495 finally { }
4496 4496
4497 newRoot.ParentGroup.HasGroupChanged = true; 4497 newRoot.ParentGroup.HasGroupChanged = true;
4498 newRoot.ParentGroup.ScheduleGroupForFullUpdate(); 4498 newRoot.ParentGroup.ScheduleGroupForFullUpdate();
4499 } 4499 }
@@ -4515,7 +4515,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4515 m_host.AddScriptLPS(1); 4515 m_host.AddScriptLPS(1);
4516 4516
4517 TaskInventoryItem item = m_item; 4517 TaskInventoryItem item = m_item;
4518 4518
4519 if ((item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0 4519 if ((item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0
4520 && !m_automaticLinkPermission) 4520 && !m_automaticLinkPermission)
4521 { 4521 {
@@ -4634,7 +4634,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4634 count = count + 1; 4634 count = count + 1;
4635 } 4635 }
4636 } 4636 }
4637 4637
4638 m_host.TaskInventory.LockItemsForRead(false); 4638 m_host.TaskInventory.LockItemsForRead(false);
4639 return count; 4639 return count;
4640 } 4640 }
@@ -4729,7 +4729,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4729 4729
4730 if (agentItem == null) 4730 if (agentItem == null)
4731 { 4731 {
4732 llSay(0, message); 4732 llSay(0, message);
4733 return; 4733 return;
4734 } 4734 }
4735 4735
@@ -4758,7 +4758,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4758 if (m_TransferModule != null) 4758 if (m_TransferModule != null)
4759 m_TransferModule.SendInstantMessage(msg, delegate(bool success) {}); 4759 m_TransferModule.SendInstantMessage(msg, delegate(bool success) {});
4760 } 4760 }
4761 4761
4762 //This delay should only occur when giving inventory to avatars. 4762 //This delay should only occur when giving inventory to avatars.
4763 ScriptSleep(m_sleepMsOnGiveInventory); 4763 ScriptSleep(m_sleepMsOnGiveInventory);
4764 } 4764 }
@@ -5064,7 +5064,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5064 // Can't TP sitting avatars 5064 // Can't TP sitting avatars
5065 if (presence.ParentID != 0) // Sitting 5065 if (presence.ParentID != 0) // Sitting
5066 return; 5066 return;
5067 5067
5068 if (m_item.PermsGranter == agentId) 5068 if (m_item.PermsGranter == agentId)
5069 { 5069 {
5070 // If attached using llAttachToAvatarTemp, cowardly refuse 5070 // If attached using llAttachToAvatarTemp, cowardly refuse
@@ -5190,7 +5190,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5190 5190
5191 string movementAnimation = presence.Animator.CurrentMovementAnimation; 5191 string movementAnimation = presence.Animator.CurrentMovementAnimation;
5192 string lslMovementAnimation; 5192 string lslMovementAnimation;
5193 5193
5194 if (MovementAnimationsForLSL.TryGetValue(movementAnimation, out lslMovementAnimation)) 5194 if (MovementAnimationsForLSL.TryGetValue(movementAnimation, out lslMovementAnimation))
5195 return lslMovementAnimation; 5195 return lslMovementAnimation;
5196 } 5196 }
@@ -5531,7 +5531,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5531 rot.Normalize(); 5531 rot.Normalize();
5532 5532
5533 double angle = 2 * Math.Acos(rot.s); 5533 double angle = 2 * Math.Acos(rot.s);
5534 if (angle > Math.PI) 5534 if (angle > Math.PI)
5535 angle = 2 * Math.PI - angle; 5535 angle = 2 * Math.PI - angle;
5536 5536
5537 return angle; 5537 return angle;
@@ -6916,10 +6916,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6916 SceneObjectPart part = World.GetSceneObjectPart(uuid); 6916 SceneObjectPart part = World.GetSceneObjectPart(uuid);
6917 if (part != null) 6917 if (part != null)
6918 { 6918 {
6919 6919
6920 if(part.ParentGroup.IsAttachment) 6920 if(part.ParentGroup.IsAttachment)
6921 { 6921 {
6922 uuid = part.ParentGroup.AttachedAvatar; 6922 uuid = part.ParentGroup.AttachedAvatar;
6923 } 6923 }
6924 else 6924 else
6925 { 6925 {
@@ -10266,7 +10266,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10266 } 10266 }
10267 break; 10267 break;
10268 10268
10269 case ScriptBaseClass.PRIM_ROTATION: 10269 case ScriptBaseClass.PRIM_ROTATION:
10270 if (remain < 1) 10270 if (remain < 1)
10271 return new LSL_List(); 10271 return new LSL_List();
10272 10272
@@ -10329,7 +10329,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10329 catch (InvalidCastException e) 10329 catch (InvalidCastException e)
10330 { 10330 {
10331 Error( 10331 Error(
10332 originFunc, 10332 originFunc,
10333 string.Format("Error running rule #{0}: arg #{1} - ", rulesParsed, idx - idxStart) + e.Message); 10333 string.Format("Error running rule #{0}: arg #{1} - ", rulesParsed, idx - idxStart) + e.Message);
10334 } 10334 }
10335 10335
@@ -10433,7 +10433,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10433 } 10433 }
10434 while (str2.EndsWith("=")) 10434 while (str2.EndsWith("="))
10435 str2 = str2.Substring(0, str2.Length - 1); 10435 str2 = str2.Substring(0, str2.Length - 1);
10436 10436
10437 byte[] d1 = new byte[str1.Length]; 10437 byte[] d1 = new byte[str1.Length];
10438 byte[] d2 = new byte[str2.Length]; 10438 byte[] d2 = new byte[str2.Length];
10439 10439
@@ -10638,7 +10638,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10638 10638
10639 Vector3 box = presence.Appearance.AvatarBoxSize * 0.5f; 10639 Vector3 box = presence.Appearance.AvatarBoxSize * 0.5f;
10640 10640
10641 if (presence.Animator.Animations.ImplicitDefaultAnimation.AnimID 10641 if (presence.Animator.Animations.ImplicitDefaultAnimation.AnimID
10642 == DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"]) 10642 == DefaultAvatarAnimations.AnimsUUID["SIT_GROUND_CONSTRAINED"])
10643/* 10643/*
10644 { 10644 {
@@ -10803,7 +10803,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
10803 10803
10804 List<SceneObjectPart> parts; 10804 List<SceneObjectPart> parts;
10805 List<ScenePresence> avatars; 10805 List<ScenePresence> avatars;
10806 10806
10807 LSL_List res = new LSL_List(); 10807 LSL_List res = new LSL_List();
10808 LSL_List remaining = new LSL_List(); 10808 LSL_List remaining = new LSL_List();
10809 10809
@@ -12887,7 +12887,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
12887 return; 12887 return;
12888 } 12888 }
12889 } 12889 }
12890 12890
12891 ScenePresence avatar = World.GetScenePresence(detectedParams.Key); 12891 ScenePresence avatar = World.GetScenePresence(detectedParams.Key);
12892 if (avatar != null) 12892 if (avatar != null)
12893 { 12893 {
@@ -13239,7 +13239,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13239 13239
13240 byte[] d2 = new Byte[data1.Length]; 13240 byte[] d2 = new Byte[data1.Length];
13241 int pos = 0; 13241 int pos = 0;
13242 13242
13243 if (data1.Length <= data2.Length) 13243 if (data1.Length <= data2.Length)
13244 { 13244 {
13245 Array.Copy(data2, 0, d2, 0, data1.Length); 13245 Array.Copy(data2, 0, d2, 0, data1.Length);
@@ -13636,7 +13636,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13636 13636
13637 LSL_List ret = new LSL_List(); 13637 LSL_List ret = new LSL_List();
13638 UUID key = new UUID(); 13638 UUID key = new UUID();
13639 13639
13640 13640
13641 if (UUID.TryParse(id, out key)) 13641 if (UUID.TryParse(id, out key))
13642 { 13642 {
@@ -13824,7 +13824,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13824 case ScriptBaseClass.OBJECT_NAME: 13824 case ScriptBaseClass.OBJECT_NAME:
13825 ret.Add(new LSL_String(obj.Name)); 13825 ret.Add(new LSL_String(obj.Name));
13826 break; 13826 break;
13827 case ScriptBaseClass.OBJECT_DESC: 13827 case ScriptBaseClass.OBJECT_DESC:
13828 ret.Add(new LSL_String(obj.Description)); 13828 ret.Add(new LSL_String(obj.Description));
13829 break; 13829 break;
13830 case ScriptBaseClass.OBJECT_POS: 13830 case ScriptBaseClass.OBJECT_POS:
@@ -13865,7 +13865,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
13865 } 13865 }
13866 else 13866 else
13867 { 13867 {
13868 vel = obj.Velocity; 13868 vel = obj.Velocity;
13869 } 13869 }
13870 13870
13871 ret.Add(vel); 13871 ret.Add(vel);
@@ -14263,8 +14263,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14263 ossl.CheckThreatLevel(ThreatLevel.High, "print"); 14263 ossl.CheckThreatLevel(ThreatLevel.High, "print");
14264 m_log.Info("LSL print():" + str); 14264 m_log.Info("LSL print():" + str);
14265 } 14265 }
14266 } 14266 }
14267 14267
14268 public LSL_Integer llGetLinkNumberOfSides(LSL_Integer link) 14268 public LSL_Integer llGetLinkNumberOfSides(LSL_Integer link)
14269 { 14269 {
14270 List<SceneObjectPart> parts = GetLinkParts(link); 14270 List<SceneObjectPart> parts = GetLinkParts(link);
@@ -14488,7 +14488,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14488 { 14488 {
14489 // get work copies 14489 // get work copies
14490 float sx = rayStart.X; 14490 float sx = rayStart.X;
14491 float ex = rayEnd.X; 14491 float ex = rayEnd.X;
14492 float sy = rayStart.Y; 14492 float sy = rayStart.Y;
14493 float ey = rayEnd.Y; 14493 float ey = rayEnd.Y;
14494 14494
@@ -14497,7 +14497,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14497 14497
14498 // region size info 14498 // region size info
14499 float rsx = World.RegionInfo.RegionSizeX; 14499 float rsx = World.RegionInfo.RegionSizeX;
14500 14500
14501 float tmp; 14501 float tmp;
14502 14502
14503 // region bounds 14503 // region bounds
@@ -14513,7 +14513,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14513 sy += dy * dx; 14513 sy += dy * dx;
14514 sx = 0; 14514 sx = 0;
14515 } 14515 }
14516 else if(sx >= rsx) 14516 else if(sx >= rsx)
14517 { 14517 {
14518 if(ex >= rsx) // totally outside 14518 if(ex >= rsx) // totally outside
14519 return null; 14519 return null;
@@ -14537,7 +14537,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14537 sx += dy * dx; 14537 sx += dy * dx;
14538 sy = 0; 14538 sy = 0;
14539 } 14539 }
14540 else if(sy >= rsy) 14540 else if(sy >= rsy)
14541 { 14541 {
14542 if(dy >= 0) // out and going away 14542 if(dy >= 0) // out and going away
14543 return null; 14543 return null;
@@ -14875,7 +14875,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14875 { 14875 {
14876 return a.Depth.CompareTo(b.Depth); 14876 return a.Depth.CompareTo(b.Depth);
14877 }); 14877 });
14878 14878
14879 int values = 0; 14879 int values = 0;
14880 SceneObjectGroup thisgrp = m_host.ParentGroup; 14880 SceneObjectGroup thisgrp = m_host.ParentGroup;
14881 14881
@@ -14931,7 +14931,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
14931 list.Add(new LSL_Integer(values)); 14931 list.Add(new LSL_Integer(values));
14932 return list; 14932 return list;
14933 } 14933 }
14934 14934
14935 14935
14936 /// <summary> 14936 /// <summary>
14937 /// Implementation of llCastRay similar to SL 2015-04-21. 14937 /// Implementation of llCastRay similar to SL 2015-04-21.
@@ -15076,7 +15076,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
15076 isNonphysical = !isPhysical; 15076 isNonphysical = !isPhysical;
15077 isPhantom = ((part.Flags & PrimFlags.Phantom) != 0) || 15077 isPhantom = ((part.Flags & PrimFlags.Phantom) != 0) ||
15078 (part.VolumeDetectActive); 15078 (part.VolumeDetectActive);
15079 15079
15080 if (isPhysical && rejectPhysical) 15080 if (isPhysical && rejectPhysical)
15081 continue; 15081 continue;
15082 if (isNonphysical && rejectNonphysical) 15082 if (isNonphysical && rejectNonphysical)
@@ -16291,7 +16291,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
16291 pos = sitroot.AbsolutePosition + pos * sitroot.GetWorldRotation(); 16291 pos = sitroot.AbsolutePosition + pos * sitroot.GetWorldRotation();
16292 } 16292 }
16293 else 16293 else
16294 pos = avatar.AbsolutePosition; 16294 pos = avatar.AbsolutePosition;
16295 16295
16296 res.Add(new LSL_Vector(pos.X,pos.Y,pos.Z)); 16296 res.Add(new LSL_Vector(pos.X,pos.Y,pos.Z));
16297 break; 16297 break;
@@ -16471,7 +16471,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
16471 res.Add(new LSL_String("")); 16471 res.Add(new LSL_String(""));
16472 break; 16472 break;
16473 16473
16474 case (int)ScriptBaseClass.PRIM_ROT_LOCAL: 16474 case (int)ScriptBaseClass.PRIM_ROT_LOCAL:
16475 Quaternion lrot = avatar.Rotation; 16475 Quaternion lrot = avatar.Rotation;
16476 res.Add(new LSL_Rotation(lrot.X, lrot.Y, lrot.Z, lrot.W)); 16476 res.Add(new LSL_Rotation(lrot.X, lrot.Y, lrot.Z, lrot.W));
16477 break; 16477 break;
@@ -16577,7 +16577,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
16577 presence.SetAnimationOverride("ALL", UUID.Zero); 16577 presence.SetAnimationOverride("ALL", UUID.Zero);
16578 return; 16578 return;
16579 } 16579 }
16580 16580
16581 string state = String.Empty; 16581 string state = String.Empty;
16582 16582
16583 foreach (KeyValuePair<string, string> kvp in MovementAnimationsForLSL) 16583 foreach (KeyValuePair<string, string> kvp in MovementAnimationsForLSL)
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
index 8cd065b..cec595d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LS_Api.cs
@@ -831,6 +831,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
831 } 831 }
832 832
833 return success; 833 return success;
834 } 834 }
835 } 835 }
836} 836}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index 1e26036..692bec0 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -107,14 +107,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
107 /// Dumps an error message on the debug console. 107 /// Dumps an error message on the debug console.
108 /// </summary> 108 /// </summary>
109 /// <param name='message'></param> 109 /// <param name='message'></param>
110 internal void MODShoutError(string message) 110 internal void MODShoutError(string message)
111 { 111 {
112 if (message.Length > 1023) 112 if (message.Length > 1023)
113 message = message.Substring(0, 1023); 113 message = message.Substring(0, 1023);
114 114
115 World.SimChat( 115 World.SimChat(
116 Utils.StringToBytes(message), 116 Utils.StringToBytes(message),
117 ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL, 117 ChatTypeEnum.Shout, ScriptBaseClass.DEBUG_CHANNEL,
118 m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, false); 118 m_host.ParentGroup.RootPart.AbsolutePosition, m_host.Name, m_host.UUID, false);
119 119
120 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>(); 120 IWorldComm wComm = m_ScriptEngine.World.RequestModuleInterface<IWorldComm>();
@@ -122,7 +122,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
122 } 122 }
123 123
124 /// <summary> 124 /// <summary>
125 /// 125 ///
126 /// </summary> 126 /// </summary>
127 /// <param name="fname">The name of the function to invoke</param> 127 /// <param name="fname">The name of the function to invoke</param>
128 /// <param name="parms">List of parameters</param> 128 /// <param name="parms">List of parameters</param>
@@ -130,9 +130,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
130 public void modInvokeN(string fname, params object[] parms) 130 public void modInvokeN(string fname, params object[] parms)
131 { 131 {
132// m_log.DebugFormat( 132// m_log.DebugFormat(
133// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 133// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
134// fname, 134// fname,
135// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 135// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
136// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 136// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
137 137
138 Type returntype = m_comms.LookupReturnType(fname); 138 Type returntype = m_comms.LookupReturnType(fname);
@@ -145,9 +145,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
145 public LSL_String modInvokeS(string fname, params object[] parms) 145 public LSL_String modInvokeS(string fname, params object[] parms)
146 { 146 {
147// m_log.DebugFormat( 147// m_log.DebugFormat(
148// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 148// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
149// fname, 149// fname,
150// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 150// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
151// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 151// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
152 152
153 Type returntype = m_comms.LookupReturnType(fname); 153 Type returntype = m_comms.LookupReturnType(fname);
@@ -161,9 +161,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
161 public LSL_Integer modInvokeI(string fname, params object[] parms) 161 public LSL_Integer modInvokeI(string fname, params object[] parms)
162 { 162 {
163// m_log.DebugFormat( 163// m_log.DebugFormat(
164// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 164// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
165// fname, 165// fname,
166// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 166// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
167// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 167// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
168 168
169 Type returntype = m_comms.LookupReturnType(fname); 169 Type returntype = m_comms.LookupReturnType(fname);
@@ -173,13 +173,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
173 int result = (int)modInvoke(fname,parms); 173 int result = (int)modInvoke(fname,parms);
174 return new LSL_Integer(result); 174 return new LSL_Integer(result);
175 } 175 }
176 176
177 public LSL_Float modInvokeF(string fname, params object[] parms) 177 public LSL_Float modInvokeF(string fname, params object[] parms)
178 { 178 {
179// m_log.DebugFormat( 179// m_log.DebugFormat(
180// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 180// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
181// fname, 181// fname,
182// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 182// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
183// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 183// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
184 184
185 Type returntype = m_comms.LookupReturnType(fname); 185 Type returntype = m_comms.LookupReturnType(fname);
@@ -193,9 +193,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
193 public LSL_Key modInvokeK(string fname, params object[] parms) 193 public LSL_Key modInvokeK(string fname, params object[] parms)
194 { 194 {
195// m_log.DebugFormat( 195// m_log.DebugFormat(
196// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 196// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
197// fname, 197// fname,
198// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 198// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
199// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 199// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
200 200
201 Type returntype = m_comms.LookupReturnType(fname); 201 Type returntype = m_comms.LookupReturnType(fname);
@@ -209,9 +209,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
209 public LSL_Vector modInvokeV(string fname, params object[] parms) 209 public LSL_Vector modInvokeV(string fname, params object[] parms)
210 { 210 {
211// m_log.DebugFormat( 211// m_log.DebugFormat(
212// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 212// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
213// fname, 213// fname,
214// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 214// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
215// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 215// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
216 216
217 Type returntype = m_comms.LookupReturnType(fname); 217 Type returntype = m_comms.LookupReturnType(fname);
@@ -225,9 +225,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
225 public LSL_Rotation modInvokeR(string fname, params object[] parms) 225 public LSL_Rotation modInvokeR(string fname, params object[] parms)
226 { 226 {
227// m_log.DebugFormat( 227// m_log.DebugFormat(
228// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 228// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
229// fname, 229// fname,
230// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 230// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
231// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 231// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
232 232
233 Type returntype = m_comms.LookupReturnType(fname); 233 Type returntype = m_comms.LookupReturnType(fname);
@@ -241,9 +241,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
241 public LSL_List modInvokeL(string fname, params object[] parms) 241 public LSL_List modInvokeL(string fname, params object[] parms)
242 { 242 {
243// m_log.DebugFormat( 243// m_log.DebugFormat(
244// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 244// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
245// fname, 245// fname,
246// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 246// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
247// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 247// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
248 248
249 Type returntype = m_comms.LookupReturnType(fname); 249 Type returntype = m_comms.LookupReturnType(fname);
@@ -308,22 +308,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
308 } 308 }
309 309
310// m_log.DebugFormat( 310// m_log.DebugFormat(
311// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type", 311// "[MOD API]: Invoking dynamic function {0}, args '{1}' with {2} return type",
312// fname, 312// fname,
313// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())), 313// string.Join(",", Array.ConvertAll<object, string>(parms, o => o.ToString())),
314// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType); 314// ((MethodInfo)MethodBase.GetCurrentMethod()).ReturnType);
315 315
316 Type[] signature = m_comms.LookupTypeSignature(fname); 316 Type[] signature = m_comms.LookupTypeSignature(fname);
317 if (signature.Length != parms.Length) 317 if (signature.Length != parms.Length)
318 MODError(String.Format("wrong number of parameters to function {0}",fname)); 318 MODError(String.Format("wrong number of parameters to function {0}",fname));
319 319
320 object[] convertedParms = new object[parms.Length]; 320 object[] convertedParms = new object[parms.Length];
321 for (int i = 0; i < parms.Length; i++) 321 for (int i = 0; i < parms.Length; i++)
322 convertedParms[i] = ConvertFromLSL(parms[i], signature[i], fname); 322 convertedParms[i] = ConvertFromLSL(parms[i], signature[i], fname);
323 323
324 // now call the function, the contract with the function is that it will always return 324 // now call the function, the contract with the function is that it will always return
325 // non-null but don't trust it completely 325 // non-null but don't trust it completely
326 try 326 try
327 { 327 {
328 object result = m_comms.InvokeOperation(m_host.UUID, m_item.ItemID, fname, convertedParms); 328 object result = m_comms.InvokeOperation(m_host.UUID, m_item.ItemID, fname, convertedParms);
329 if (result != null) 329 if (result != null)
@@ -342,7 +342,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
342 342
343 return null; 343 return null;
344 } 344 }
345 345
346 /// <summary> 346 /// <summary>
347 /// Send a command to functions registered on an event 347 /// Send a command to functions registered on an event
348 /// </summary> 348 /// </summary>
@@ -365,7 +365,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
365 /// </summary> 365 /// </summary>
366 protected object ConvertFromLSL(object lslparm, Type type, string fname) 366 protected object ConvertFromLSL(object lslparm, Type type, string fname)
367 { 367 {
368 368
369 if(lslparm.GetType() == type) 369 if(lslparm.GetType() == type)
370 return lslparm; 370 return lslparm;
371 371
@@ -429,7 +429,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
429 for (int i = 0; i < plist.Length; i++) 429 for (int i = 0; i < plist.Length; i++)
430 { 430 {
431 if (plist[i] is LSL_String) 431 if (plist[i] is LSL_String)
432 result[i] = (string)(LSL_String)plist[i]; 432 result[i] = (string)(LSL_String)plist[i];
433 else if (plist[i] is LSL_Integer) 433 else if (plist[i] is LSL_Integer)
434 result[i] = (int)(LSL_Integer)plist[i]; 434 result[i] = (int)(LSL_Integer)plist[i];
435 // The int check exists because of the many plain old int script constants in ScriptBase which 435 // The int check exists because of the many plain old int script constants in ScriptBase which
@@ -451,7 +451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
451 return result; 451 return result;
452 } 452 }
453 } 453 }
454 454
455 MODError(String.Format("{0}: parameter type mismatch; expecting {1}, type(parm)={2}", fname, type.Name, lslparm.GetType())); 455 MODError(String.Format("{0}: parameter type mismatch; expecting {1}, type(parm)={2}", fname, type.Name, lslparm.GetType()));
456 return null; 456 return null;
457 } 457 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index ba5a46d..066f6a4 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -142,7 +142,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
142 internal float m_ScriptDelayFactor = 1.0f; 142 internal float m_ScriptDelayFactor = 1.0f;
143 internal float m_ScriptDistanceFactor = 1.0f; 143 internal float m_ScriptDistanceFactor = 1.0f;
144 internal bool m_debuggerSafe = false; 144 internal bool m_debuggerSafe = false;
145 internal Dictionary<string, FunctionPerms > m_FunctionPerms = new Dictionary<string, FunctionPerms >(); 145 internal Dictionary<string, FunctionPerms > m_FunctionPerms = new Dictionary<string, FunctionPerms >();
146 protected IUrlModule m_UrlModule = null; 146 protected IUrlModule m_UrlModule = null;
147 147
148 public void Initialize( 148 public void Initialize(
@@ -418,7 +418,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
418 //Only gods may use the function 418 //Only gods may use the function
419 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GOD")) 419 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GOD"))
420 { 420 {
421 if (World.Permissions.IsGod(ownerID)) 421 if (World.Permissions.IsGod(ownerID))
422 { 422 {
423 return String.Empty; 423 return String.Empty;
424 } 424 }
@@ -427,7 +427,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
427 //Only grid gods may use the function 427 //Only grid gods may use the function
428 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD")) 428 if (m_FunctionPerms[function].AllowedOwnerClasses.Contains("GRID_GOD"))
429 { 429 {
430 if (World.Permissions.IsGridGod(ownerID)) 430 if (World.Permissions.IsGridGod(ownerID))
431 { 431 {
432 return String.Empty; 432 return String.Empty;
433 } 433 }
@@ -856,11 +856,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
856 // { 856 // {
857 857
858 // We will launch the teleport on a new thread so that when the script threads are terminated 858 // We will launch the teleport on a new thread so that when the script threads are terminated
859 // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. 859 // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting.
860 Util.FireAndForget( 860 Util.FireAndForget(
861 o => World.RequestTeleportLocation( 861 o => World.RequestTeleportLocation(
862 presence.ControllingClient, regionName, position, 862 presence.ControllingClient, regionName, position,
863 lookat, (uint)TPFlags.ViaLocation), 863 lookat, (uint)TPFlags.ViaLocation),
864 null, "OSSL_Api.TeleportAgentByRegionCoords"); 864 null, "OSSL_Api.TeleportAgentByRegionCoords");
865 865
866 ScriptSleep(5000); 866 ScriptSleep(5000);
@@ -906,8 +906,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
906 // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting. 906 // before teleport in ScriptInstance.GetXMLState(), we don't end up aborting the one doing the teleporting.
907 Util.FireAndForget( 907 Util.FireAndForget(
908 o => World.RequestTeleportLocation( 908 o => World.RequestTeleportLocation(
909 presence.ControllingClient, regionHandle, 909 presence.ControllingClient, regionHandle,
910 position, lookat, (uint)TPFlags.ViaLocation), 910 position, lookat, (uint)TPFlags.ViaLocation),
911 null, "OSSL_Api.TeleportAgentByRegionName"); 911 null, "OSSL_Api.TeleportAgentByRegionName");
912 912
913 ScriptSleep(5000); 913 ScriptSleep(5000);
@@ -972,13 +972,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
972 m_host.AddScriptLPS(1); 972 m_host.AddScriptLPS(1);
973 973
974 UUID targetID = new UUID(target); 974 UUID targetID = new UUID(target);
975 975
976 ForceSit(avatar, targetID); 976 ForceSit(avatar, targetID);
977 } 977 }
978 978
979 public void ForceSit(string avatar, UUID targetID) 979 public void ForceSit(string avatar, UUID targetID)
980 { 980 {
981 UUID agentID; 981 UUID agentID;
982 982
983 if (!UUID.TryParse(avatar, out agentID)) 983 if (!UUID.TryParse(avatar, out agentID))
984 return; 984 return;
@@ -1015,7 +1015,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1015 ScenePresence target = (ScenePresence)World.Entities[avatarID]; 1015 ScenePresence target = (ScenePresence)World.Entities[avatarID];
1016 return target.ControllingClient.RemoteEndPoint.Address.ToString(); 1016 return target.ControllingClient.RemoteEndPoint.Address.ToString();
1017 } 1017 }
1018 1018
1019 // fall through case, just return nothing 1019 // fall through case, just return nothing
1020 return ""; 1020 return "";
1021 } 1021 }
@@ -1058,7 +1058,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1058 ScenePresence target = null; 1058 ScenePresence target = null;
1059 if ((World.Entities[avatarID] is ScenePresence)) 1059 if ((World.Entities[avatarID] is ScenePresence))
1060 target = (ScenePresence)World.Entities[avatarID]; 1060 target = (ScenePresence)World.Entities[avatarID];
1061 1061
1062 if (target == null) 1062 if (target == null)
1063 return; 1063 return;
1064 1064
@@ -1115,8 +1115,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1115 else 1115 else
1116 animID = UUID.Zero; 1116 animID = UUID.Zero;
1117 } 1117 }
1118 1118
1119 1119
1120 if (animID == UUID.Zero) 1120 if (animID == UUID.Zero)
1121 target.Animator.RemoveAnimation(animation); 1121 target.Animator.RemoveAnimation(animation);
1122 else 1122 else
@@ -1257,7 +1257,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1257 public string osSetPenColor(string drawList, string color) 1257 public string osSetPenColor(string drawList, string color)
1258 { 1258 {
1259 CheckThreatLevel(ThreatLevel.None, "osSetPenColor"); 1259 CheckThreatLevel(ThreatLevel.None, "osSetPenColor");
1260 1260
1261 m_host.AddScriptLPS(1); 1261 m_host.AddScriptLPS(1);
1262 drawList += "PenColor " + color + "; "; 1262 drawList += "PenColor " + color + "; ";
1263 return drawList; 1263 return drawList;
@@ -1780,7 +1780,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1780 } 1780 }
1781 return result; 1781 return result;
1782 } 1782 }
1783 1783
1784 private ArrayList osdToArray(OSDArray list) 1784 private ArrayList osdToArray(OSDArray list)
1785 { 1785 {
1786 ArrayList result = new ArrayList(); 1786 ArrayList result = new ArrayList();
@@ -1834,7 +1834,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1834 m_host.AddScriptLPS(1); 1834 m_host.AddScriptLPS(1);
1835 1835
1836 Object decoded = osParseJSONNew(JSON); 1836 Object decoded = osParseJSONNew(JSON);
1837 1837
1838 if ( decoded is Hashtable ) { 1838 if ( decoded is Hashtable ) {
1839 return (Hashtable) decoded; 1839 return (Hashtable) decoded;
1840 } else if ( decoded is ArrayList ) { 1840 } else if ( decoded is ArrayList ) {
@@ -1902,7 +1902,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1902 { 1902 {
1903// CheckThreatLevel(ThreatLevel.VeryHigh, "osDie"); 1903// CheckThreatLevel(ThreatLevel.VeryHigh, "osDie");
1904 // if this is restricted to objects rezzed by this host level can be reduced 1904 // if this is restricted to objects rezzed by this host level can be reduced
1905 1905
1906 CheckThreatLevel(ThreatLevel.Low, "osDie"); 1906 CheckThreatLevel(ThreatLevel.Low, "osDie");
1907 m_host.AddScriptLPS(1); 1907 m_host.AddScriptLPS(1);
1908 1908
@@ -1931,7 +1931,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1931 1931
1932 if (sceneOG.OwnerID != m_host.OwnerID) 1932 if (sceneOG.OwnerID != m_host.OwnerID)
1933 return; 1933 return;
1934 1934
1935 // harakiri check 1935 // harakiri check
1936 if(sceneOG.UUID == m_host.ParentGroup.UUID) 1936 if(sceneOG.UUID == m_host.ParentGroup.UUID)
1937 throw new SelfDeleteException(); 1937 throw new SelfDeleteException();
@@ -2042,16 +2042,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2042 if (assetID != UUID.Zero) 2042 if (assetID != UUID.Zero)
2043 { 2043 {
2044 StringBuilder notecardData = new StringBuilder(); 2044 StringBuilder notecardData = new StringBuilder();
2045 2045
2046 for (int count = 0; count < NotecardCache.GetLines(assetID); count++) 2046 for (int count = 0; count < NotecardCache.GetLines(assetID); count++)
2047 { 2047 {
2048 string line = NotecardCache.GetLine(assetID, count) + "\n"; 2048 string line = NotecardCache.GetLine(assetID, count) + "\n";
2049 2049
2050 // m_log.DebugFormat("[OSSL]: From notecard {0} loading line {1}", notecardNameOrUuid, line); 2050 // m_log.DebugFormat("[OSSL]: From notecard {0} loading line {1}", notecardNameOrUuid, line);
2051 2051
2052 notecardData.Append(line); 2052 notecardData.Append(line);
2053 } 2053 }
2054 2054
2055 return notecardData.ToString(); 2055 return notecardData.ToString();
2056 } 2056 }
2057 2057
@@ -2086,7 +2086,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2086 2086
2087 if (a == null) 2087 if (a == null)
2088 { 2088 {
2089 // Whoops, it's still possible here that the notecard name was properly 2089 // Whoops, it's still possible here that the notecard name was properly
2090 // formatted like a UUID but isn't an asset UUID so lets look it up by name after all 2090 // formatted like a UUID but isn't an asset UUID so lets look it up by name after all
2091 assetID = SearchTaskInventoryForAssetId(notecardNameOrUuid); 2091 assetID = SearchTaskInventoryForAssetId(notecardNameOrUuid);
2092 if (assetID == UUID.Zero) 2092 if (assetID == UUID.Zero)
@@ -2291,7 +2291,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2291 } 2291 }
2292 } 2292 }
2293 } 2293 }
2294 2294
2295 return ""; 2295 return "";
2296 } 2296 }
2297 2297
@@ -2429,7 +2429,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2429 m_host.AddScriptLPS(1); 2429 m_host.AddScriptLPS(1);
2430 2430
2431 IConfigSource config = m_ScriptEngine.ConfigSource; 2431 IConfigSource config = m_ScriptEngine.ConfigSource;
2432 string HomeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI", 2432 string HomeURI = Util.GetConfigVarFromSections<string>(config, "HomeURI",
2433 new string[] { "Startup", "Hypergrid" }, String.Empty); 2433 new string[] { "Startup", "Hypergrid" }, String.Empty);
2434 2434
2435 if (!string.IsNullOrEmpty(HomeURI)) 2435 if (!string.IsNullOrEmpty(HomeURI))
@@ -2705,12 +2705,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2705 { 2705 {
2706 CheckThreatLevel(ThreatLevel.High, "osNpcCreate"); 2706 CheckThreatLevel(ThreatLevel.High, "osNpcCreate");
2707 m_host.AddScriptLPS(1); 2707 m_host.AddScriptLPS(1);
2708 2708
2709 // have to get the npc module also here to set the default Not Owned 2709 // have to get the npc module also here to set the default Not Owned
2710 INPCModule module = World.RequestModuleInterface<INPCModule>(); 2710 INPCModule module = World.RequestModuleInterface<INPCModule>();
2711 if(module == null) 2711 if(module == null)
2712 return new LSL_Key(UUID.Zero.ToString()); 2712 return new LSL_Key(UUID.Zero.ToString());
2713 2713
2714 bool owned = (module.NPCOptionFlags & NPCOptionsFlags.AllowNotOwned) == 0; 2714 bool owned = (module.NPCOptionFlags & NPCOptionsFlags.AllowNotOwned) == 0;
2715 2715
2716 return NpcCreate(firstname, lastname, position, notecard, owned, false, false); 2716 return NpcCreate(firstname, lastname, position, notecard, owned, false, false);
@@ -2795,7 +2795,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2795 groupTitle = "- NPC -"; 2795 groupTitle = "- NPC -";
2796 } 2796 }
2797 } 2797 }
2798 2798
2799 if((createFlags & NPCOptionsFlags.AllowCloneOtherAvatars) != 0) 2799 if((createFlags & NPCOptionsFlags.AllowCloneOtherAvatars) != 0)
2800 { 2800 {
2801 UUID id; 2801 UUID id;
@@ -2973,7 +2973,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2973 2973
2974 if (!module.CheckPermissions(npcId, m_host.OwnerID)) 2974 if (!module.CheckPermissions(npcId, m_host.OwnerID))
2975 return; 2975 return;
2976 2976
2977 module.MoveToTarget(npcId, World, pos, false, true, false); 2977 module.MoveToTarget(npcId, World, pos, false, true, false);
2978 } 2978 }
2979 } 2979 }
@@ -3202,7 +3202,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3202 if (!module.CheckPermissions(npcId, m_host.OwnerID)) 3202 if (!module.CheckPermissions(npcId, m_host.OwnerID))
3203 return; 3203 return;
3204 3204
3205 module.DeleteNPC(npcId, World); 3205 module.DeleteNPC(npcId, World);
3206 } 3206 }
3207 } 3207 }
3208 catch { } 3208 catch { }
@@ -3259,7 +3259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3259 { 3259 {
3260 CheckThreatLevel(ThreatLevel.High, "osNpcTouch"); 3260 CheckThreatLevel(ThreatLevel.High, "osNpcTouch");
3261 m_host.AddScriptLPS(1); 3261 m_host.AddScriptLPS(1);
3262 3262
3263 INPCModule module = World.RequestModuleInterface<INPCModule>(); 3263 INPCModule module = World.RequestModuleInterface<INPCModule>();
3264 int linkNum = link_num.value; 3264 int linkNum = link_num.value;
3265 if (module != null || (linkNum < 0 && linkNum != ScriptBaseClass.LINK_THIS)) 3265 if (module != null || (linkNum < 0 && linkNum != ScriptBaseClass.LINK_THIS))
@@ -3400,7 +3400,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3400 bool isMale = vpShapeMale > 0.5f; 3400 bool isMale = vpShapeMale > 0.5f;
3401 return new LSL_String(isMale ? "male" : "female"); 3401 return new LSL_String(isMale ? "male" : "female");
3402 } 3402 }
3403 3403
3404 /// <summary> 3404 /// <summary>
3405 /// Get current region's map texture UUID 3405 /// Get current region's map texture UUID
3406 /// </summary> 3406 /// </summary>
@@ -3441,7 +3441,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3441 3441
3442 return key.ToString(); 3442 return key.ToString();
3443 } 3443 }
3444 3444
3445 /// <summary> 3445 /// <summary>
3446 /// Return information regarding various simulator statistics (sim fps, physics fps, time 3446 /// Return information regarding various simulator statistics (sim fps, physics fps, time
3447 /// dilation, total number of prims, total number of active scripts, script lps, various 3447 /// dilation, total number of prims, total number of active scripts, script lps, various
@@ -3455,7 +3455,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3455 m_host.AddScriptLPS(1); 3455 m_host.AddScriptLPS(1);
3456 LSL_List ret = new LSL_List(); 3456 LSL_List ret = new LSL_List();
3457 float[] stats = World.StatsReporter.LastReportedSimStats; 3457 float[] stats = World.StatsReporter.LastReportedSimStats;
3458 3458
3459 for (int i = 0; i < 21; i++) 3459 for (int i = 0; i < 21; i++)
3460 { 3460 {
3461 ret.Add(new LSL_Float(stats[i])); 3461 ret.Add(new LSL_Float(stats[i]));
@@ -3488,7 +3488,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3488 3488
3489 return (int)pws; 3489 return (int)pws;
3490 } 3490 }
3491 3491
3492 public void osSetSpeed(string UUID, LSL_Float SpeedModifier) 3492 public void osSetSpeed(string UUID, LSL_Float SpeedModifier)
3493 { 3493 {
3494 CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed"); 3494 CheckThreatLevel(ThreatLevel.Moderate, "osSetSpeed");
@@ -3498,7 +3498,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3498 if (avatar != null) 3498 if (avatar != null)
3499 avatar.SpeedModifier = (float)SpeedModifier; 3499 avatar.SpeedModifier = (float)SpeedModifier;
3500 } 3500 }
3501 3501
3502 public void osKickAvatar(string FirstName, string SurName, string alert) 3502 public void osKickAvatar(string FirstName, string SurName, string alert)
3503 { 3503 {
3504 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar"); 3504 CheckThreatLevel(ThreatLevel.Severe, "osKickAvatar");
@@ -3528,7 +3528,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3528 if (presence != null) health = presence.Health; 3528 if (presence != null) health = presence.Health;
3529 return health; 3529 return health;
3530 } 3530 }
3531 3531
3532 public void osCauseDamage(string avatar, double damage) 3532 public void osCauseDamage(string avatar, double damage)
3533 { 3533 {
3534 CheckThreatLevel(ThreatLevel.High, "osCauseDamage"); 3534 CheckThreatLevel(ThreatLevel.High, "osCauseDamage");
@@ -3537,7 +3537,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3537 UUID avatarId = new UUID(avatar); 3537 UUID avatarId = new UUID(avatar);
3538 Vector3 pos = m_host.GetWorldPosition(); 3538 Vector3 pos = m_host.GetWorldPosition();
3539 3539
3540 ScenePresence presence = World.GetScenePresence(avatarId); 3540 ScenePresence presence = World.GetScenePresence(avatarId);
3541 if (presence != null) 3541 if (presence != null)
3542 { 3542 {
3543 LandData land = World.GetLandData(pos); 3543 LandData land = World.GetLandData(pos);
@@ -3556,7 +3556,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3556 } 3556 }
3557 } 3557 }
3558 } 3558 }
3559 3559
3560 public void osCauseHealing(string avatar, double healing) 3560 public void osCauseHealing(string avatar, double healing)
3561 { 3561 {
3562 CheckThreatLevel(ThreatLevel.High, "osCauseHealing"); 3562 CheckThreatLevel(ThreatLevel.High, "osCauseHealing");
@@ -3625,7 +3625,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3625 CheckThreatLevel(ThreatLevel.High, "osGetPrimitiveParams"); 3625 CheckThreatLevel(ThreatLevel.High, "osGetPrimitiveParams");
3626 m_host.AddScriptLPS(1); 3626 m_host.AddScriptLPS(1);
3627 InitLSL(); 3627 InitLSL();
3628 3628
3629 return m_LSL_Api.GetPrimitiveParamsEx(prim, rules); 3629 return m_LSL_Api.GetPrimitiveParamsEx(prim, rules);
3630 } 3630 }
3631 3631
@@ -3634,12 +3634,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3634 CheckThreatLevel(ThreatLevel.High, "osSetPrimitiveParams"); 3634 CheckThreatLevel(ThreatLevel.High, "osSetPrimitiveParams");
3635 m_host.AddScriptLPS(1); 3635 m_host.AddScriptLPS(1);
3636 InitLSL(); 3636 InitLSL();
3637 3637
3638 m_LSL_Api.SetPrimitiveParamsEx(prim, rules, "osSetPrimitiveParams"); 3638 m_LSL_Api.SetPrimitiveParamsEx(prim, rules, "osSetPrimitiveParams");
3639 } 3639 }
3640 3640
3641 /// <summary> 3641 /// <summary>
3642 /// Set parameters for light projection in host prim 3642 /// Set parameters for light projection in host prim
3643 /// </summary> 3643 /// </summary>
3644 public void osSetProjectionParams(bool projection, LSL_Key texture, double fov, double focus, double amb) 3644 public void osSetProjectionParams(bool projection, LSL_Key texture, double fov, double focus, double amb)
3645 { 3645 {
@@ -3723,7 +3723,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3723 /// Get the description from an inventory item 3723 /// Get the description from an inventory item
3724 /// </summary> 3724 /// </summary>
3725 /// <param name="inventoryName"></param> 3725 /// <param name="inventoryName"></param>
3726 /// <returns>Item description</returns> 3726 /// <returns>Item description</returns>
3727 public LSL_String osGetInventoryDesc(string item) 3727 public LSL_String osGetInventoryDesc(string item)
3728 { 3728 {
3729 m_host.AddScriptLPS(1); 3729 m_host.AddScriptLPS(1);
@@ -3921,7 +3921,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3921 if (item.InvType != (int)InventoryType.Object) 3921 if (item.InvType != (int)InventoryType.Object)
3922 { 3922 {
3923 // FIXME: Temporary null check for regression tests since they dont' have the infrastructure to set 3923 // FIXME: Temporary null check for regression tests since they dont' have the infrastructure to set
3924 // up the api reference. 3924 // up the api reference.
3925 if (m_LSL_Api != null) 3925 if (m_LSL_Api != null)
3926 ((LSL_Api)m_LSL_Api).llSay(0, string.Format("Unable to attach, item '{0}' is not an object.", itemName)); 3926 ((LSL_Api)m_LSL_Api).llSay(0, string.Format("Unable to attach, item '{0}' is not an object.", itemName));
3927 3927
@@ -4002,10 +4002,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4002 UUID targetUUID; 4002 UUID targetUUID;
4003 if(!UUID.TryParse(avatar.ToString(), out targetUUID)) 4003 if(!UUID.TryParse(avatar.ToString(), out targetUUID))
4004 return; 4004 return;
4005 4005
4006 if(targetUUID == UUID.Zero) 4006 if(targetUUID == UUID.Zero)
4007 return; 4007 return;
4008 4008
4009 ScenePresence target; 4009 ScenePresence target;
4010 if(!World.TryGetScenePresence(targetUUID, out target)) 4010 if(!World.TryGetScenePresence(targetUUID, out target))
4011 return; 4011 return;
@@ -4068,7 +4068,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4068 return; 4068 return;
4069 } 4069 }
4070 4070
4071 bool optionObjCreator = (options & 4071 bool optionObjCreator = (options &
4072 ScriptBaseClass.OS_ATTACH_MSG_OBJECT_CREATOR) != 0; 4072 ScriptBaseClass.OS_ATTACH_MSG_OBJECT_CREATOR) != 0;
4073 bool optionScriptCreator = (options & 4073 bool optionScriptCreator = (options &
4074 ScriptBaseClass.OS_ATTACH_MSG_SCRIPT_CREATOR) != 0; 4074 ScriptBaseClass.OS_ATTACH_MSG_SCRIPT_CREATOR) != 0;
@@ -4316,7 +4316,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4316 { 4316 {
4317 CheckThreatLevel(ThreatLevel.Moderate, "osRequestSecureURL"); 4317 CheckThreatLevel(ThreatLevel.Moderate, "osRequestSecureURL");
4318 m_host.AddScriptLPS(1); 4318 m_host.AddScriptLPS(1);
4319 4319
4320 Hashtable opts = new Hashtable(); 4320 Hashtable opts = new Hashtable();
4321 for (int i = 0 ; i < options.Length ; i++) 4321 for (int i = 0 ; i < options.Length ; i++)
4322 { 4322 {
@@ -4334,7 +4334,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4334 { 4334 {
4335 CheckThreatLevel(ThreatLevel.Moderate, "osRequestSecureURL"); 4335 CheckThreatLevel(ThreatLevel.Moderate, "osRequestSecureURL");
4336 m_host.AddScriptLPS(1); 4336 m_host.AddScriptLPS(1);
4337 4337
4338 Hashtable opts = new Hashtable(); 4338 Hashtable opts = new Hashtable();
4339 for (int i = 0 ; i < options.Length ; i++) 4339 for (int i = 0 ; i < options.Length ; i++)
4340 { 4340 {
@@ -4362,7 +4362,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4362 m_host.CollisionSoundType = 0; // full return to default sounds 4362 m_host.CollisionSoundType = 0; // full return to default sounds
4363 else 4363 else
4364 m_host.CollisionSoundType = 2; // default sounds with volume 4364 m_host.CollisionSoundType = 2; // default sounds with volume
4365 m_host.aggregateScriptEvents(); 4365 m_host.aggregateScriptEvents();
4366 return; 4366 return;
4367 } 4367 }
4368 // TODO: Parameter check logic required. 4368 // TODO: Parameter check logic required.
@@ -4376,7 +4376,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4376 else 4376 else
4377 m_host.CollisionSoundType = -1; 4377 m_host.CollisionSoundType = -1;
4378 4378
4379 m_host.aggregateScriptEvents(); 4379 m_host.aggregateScriptEvents();
4380 } 4380 }
4381 4381
4382 // still not very usefull, detector is lost on rez, restarts, etc 4382 // still not very usefull, detector is lost on rez, restarts, etc
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
index 7bfe27b..d401ed8 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/SensorRepeat.cs
@@ -351,7 +351,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
351 // your head but the sensor will stay with your (global) 351 // your head but the sensor will stay with your (global)
352 // avatar rotation and position. 352 // avatar rotation and position.
353 // Position of a sensor in a child prim attached to an avatar 353 // Position of a sensor in a child prim attached to an avatar
354 // will be still wrong. 354 // will be still wrong.
355 ScenePresence avatar = m_CmdManager.m_ScriptEngine.World.GetScenePresence(SensePoint.ParentGroup.AttachedAvatar); 355 ScenePresence avatar = m_CmdManager.m_ScriptEngine.World.GetScenePresence(SensePoint.ParentGroup.AttachedAvatar);
356 356
357 // Don't proceed if the avatar for this attachment has since been removed from the scene. 357 // Don't proceed if the avatar for this attachment has since been removed from the scene.
@@ -473,7 +473,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
473 473
474 SceneObjectPart SensePoint = ts.host; 474 SceneObjectPart SensePoint = ts.host;
475 Vector3 fromRegionPos = SensePoint.GetWorldPosition(); 475 Vector3 fromRegionPos = SensePoint.GetWorldPosition();
476 476
477 Quaternion q = SensePoint.GetWorldRotation(); 477 Quaternion q = SensePoint.GetWorldRotation();
478 if (SensePoint.ParentGroup.IsAttachment) 478 if (SensePoint.ParentGroup.IsAttachment)
479 { 479 {
@@ -486,7 +486,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
486 // your head but the sensor will stay with your (global) 486 // your head but the sensor will stay with your (global)
487 // avatar rotation and position. 487 // avatar rotation and position.
488 // Position of a sensor in a child prim attached to an avatar 488 // Position of a sensor in a child prim attached to an avatar
489 // will be still wrong. 489 // will be still wrong.
490 ScenePresence avatar = m_CmdManager.m_ScriptEngine.World.GetScenePresence(SensePoint.ParentGroup.AttachedAvatar); 490 ScenePresence avatar = m_CmdManager.m_ScriptEngine.World.GetScenePresence(SensePoint.ParentGroup.AttachedAvatar);
491 491
492 // Don't proceed if the avatar for this attachment has since been removed from the scene. 492 // Don't proceed if the avatar for this attachment has since been removed from the scene.
@@ -502,7 +502,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
502 bool attached = (SensePoint.ParentGroup.AttachmentPoint != 0); 502 bool attached = (SensePoint.ParentGroup.AttachmentPoint != 0);
503 Vector3 toRegionPos; 503 Vector3 toRegionPos;
504 double dis; 504 double dis;
505 505
506 Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence => 506 Action<ScenePresence> senseEntity = new Action<ScenePresence>(presence =>
507 { 507 {
508// m_log.DebugFormat( 508// m_log.DebugFormat(
@@ -542,7 +542,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
542 542
543 if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0) 543 if (presence.IsDeleted || presence.IsChildAgent || presence.GodLevel > 0.0)
544 return; 544 return;
545 545
546 // if the object the script is in is attached and the avatar is the owner 546 // if the object the script is in is attached and the avatar is the owner
547 // then this one is not wanted 547 // then this one is not wanted
548 if (attached && presence.UUID == SensePoint.OwnerID) 548 if (attached && presence.UUID == SensePoint.OwnerID)
@@ -700,7 +700,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
700 DateTime.Now.ToUniversalTime().AddSeconds(ts.interval); 700 DateTime.Now.ToUniversalTime().AddSeconds(ts.interval);
701 701
702 AddSenseRepeater(ts); 702 AddSenseRepeater(ts);
703 703
704 idx += 6; 704 idx += 6;
705 } 705 }
706 } 706 }
@@ -716,6 +716,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
716 } 716 }
717 717
718 return retList; 718 return retList;
719 } 719 }
720 } 720 }
721} 721}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs
index 5b1fdc0..cae1c14 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Timer.cs
@@ -200,6 +200,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
200 } 200 }
201 201
202 return retList; 202 return retList;
203 } 203 }
204 } 204 }
205} 205}
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
index 16805e4..e6676b4 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Properties/AssemblyInfo.cs
@@ -2,7 +2,7 @@
2using System.Runtime.CompilerServices; 2using System.Runtime.CompilerServices;
3using System.Runtime.InteropServices; 3using System.Runtime.InteropServices;
4 4
5// General Information about an assembly is controlled through the following 5// General Information about an assembly is controlled through the following
6// set of attributes. Change these attribute values to modify the information 6// set of attributes. Change these attribute values to modify the information
7// associated with an assembly. 7// associated with an assembly.
8[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.Api")] 8[assembly: AssemblyTitle("OpenSim.Region.ScriptEngine.Shared.Api")]
@@ -14,8 +14,8 @@ using System.Runtime.InteropServices;
14[assembly: AssemblyTrademark("")] 14[assembly: AssemblyTrademark("")]
15[assembly: AssemblyCulture("")] 15[assembly: AssemblyCulture("")]
16 16
17// Setting ComVisible to false makes the types in this assembly not visible 17// Setting ComVisible to false makes the types in this assembly not visible
18// to COM components. If you need to access a type in this assembly from 18// to COM components. If you need to access a type in this assembly from
19// COM, set the ComVisible attribute to true on that type. 19// COM, set the ComVisible attribute to true on that type.
20[assembly: ComVisible(false)] 20[assembly: ComVisible(false)]
21 21
@@ -25,7 +25,7 @@ using System.Runtime.InteropServices;
25// Version information for an assembly consists of the following four values: 25// Version information for an assembly consists of the following four values:
26// 26//
27// Major Version 27// Major Version
28// Minor Version 28// Minor Version
29// Build Number 29// Build Number
30// Revision 30// Revision
31// 31//