aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
diff options
context:
space:
mode:
authorteravus2012-11-15 10:05:16 -0500
committerteravus2012-11-15 10:05:16 -0500
commite9153e1d1aae50024d8cd05fe14a9bce34343a0e (patch)
treebc111d34f95a26b99c7e34d9e495dc14d1802cc3 /OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
parentMerge master into teravuswork (diff)
downloadopensim-SC-e9153e1d1aae50024d8cd05fe14a9bce34343a0e.zip
opensim-SC-e9153e1d1aae50024d8cd05fe14a9bce34343a0e.tar.gz
opensim-SC-e9153e1d1aae50024d8cd05fe14a9bce34343a0e.tar.bz2
opensim-SC-e9153e1d1aae50024d8cd05fe14a9bce34343a0e.tar.xz
Revert "Merge master into teravuswork", it should have been avination, not master.
This reverts commit dfac269032300872c4d0dc507f4f9062d102b0f4, reversing changes made to 619c39e5144f15aca129d6d999bcc5c34133ee64.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs40
1 files changed, 22 insertions, 18 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
index 8f34833..7844c75 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/MOD_Api.cs
@@ -95,13 +95,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
95 95
96 internal void MODError(string msg) 96 internal void MODError(string msg)
97 { 97 {
98 throw new ScriptException("MOD Runtime Error: " + msg); 98 throw new Exception("MOD Runtime Error: " + msg);
99 } 99 }
100 100
101 /// <summary> 101 //
102 /// Dumps an error message on the debug console. 102 //Dumps an error message on the debug console.
103 /// </summary> 103 //
104 /// <param name='message'></param> 104
105 internal void MODShoutError(string message) 105 internal void MODShoutError(string message)
106 { 106 {
107 if (message.Length > 1023) 107 if (message.Length > 1023)
@@ -254,7 +254,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
254 254
255 object[] convertedParms = new object[parms.Length]; 255 object[] convertedParms = new object[parms.Length];
256 for (int i = 0; i < parms.Length; i++) 256 for (int i = 0; i < parms.Length; i++)
257 convertedParms[i] = ConvertFromLSL(parms[i],signature[i], fname); 257 convertedParms[i] = ConvertFromLSL(parms[i],signature[i]);
258 258
259 // now call the function, the contract with the function is that it will always return 259 // now call the function, the contract with the function is that it will always return
260 // non-null but don't trust it completely 260 // non-null but don't trust it completely
@@ -294,7 +294,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
294 294
295 /// <summary> 295 /// <summary>
296 /// </summary> 296 /// </summary>
297 protected object ConvertFromLSL(object lslparm, Type type, string fname) 297 protected object ConvertFromLSL(object lslparm, Type type)
298 { 298 {
299 // ---------- String ---------- 299 // ---------- String ----------
300 if (lslparm is LSL_String) 300 if (lslparm is LSL_String)
@@ -310,7 +310,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
310 // ---------- Integer ---------- 310 // ---------- Integer ----------
311 else if (lslparm is LSL_Integer) 311 else if (lslparm is LSL_Integer)
312 { 312 {
313 if (type == typeof(int) || type == typeof(float)) 313 if (type == typeof(int))
314 return (int)(LSL_Integer)lslparm; 314 return (int)(LSL_Integer)lslparm;
315 } 315 }
316 316
@@ -333,7 +333,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
333 { 333 {
334 if (type == typeof(OpenMetaverse.Quaternion)) 334 if (type == typeof(OpenMetaverse.Quaternion))
335 { 335 {
336 return (OpenMetaverse.Quaternion)((LSL_Rotation)lslparm); 336 LSL_Rotation rot = (LSL_Rotation)lslparm;
337 return new OpenMetaverse.Quaternion((float)rot.x,(float)rot.y,(float)rot.z,(float)rot.s);
337 } 338 }
338 } 339 }
339 340
@@ -342,7 +343,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
342 { 343 {
343 if (type == typeof(OpenMetaverse.Vector3)) 344 if (type == typeof(OpenMetaverse.Vector3))
344 { 345 {
345 return (OpenMetaverse.Vector3)((LSL_Vector)lslparm); 346 LSL_Vector vect = (LSL_Vector)lslparm;
347 return new OpenMetaverse.Vector3((float)vect.x,(float)vect.y,(float)vect.z);
346 } 348 }
347 } 349 }
348 350
@@ -359,27 +361,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
359 result[i] = (string)(LSL_String)plist[i]; 361 result[i] = (string)(LSL_String)plist[i];
360 else if (plist[i] is LSL_Integer) 362 else if (plist[i] is LSL_Integer)
361 result[i] = (int)(LSL_Integer)plist[i]; 363 result[i] = (int)(LSL_Integer)plist[i];
362 // The int check exists because of the many plain old int script constants in ScriptBase which
363 // are not LSL_Integers.
364 else if (plist[i] is int)
365 result[i] = plist[i];
366 else if (plist[i] is LSL_Float) 364 else if (plist[i] is LSL_Float)
367 result[i] = (float)(LSL_Float)plist[i]; 365 result[i] = (float)(LSL_Float)plist[i];
368 else if (plist[i] is LSL_Key) 366 else if (plist[i] is LSL_Key)
369 result[i] = new UUID((LSL_Key)plist[i]); 367 result[i] = new UUID((LSL_Key)plist[i]);
370 else if (plist[i] is LSL_Rotation) 368 else if (plist[i] is LSL_Rotation)
371 result[i] = (Quaternion)((LSL_Rotation)plist[i]); 369 {
370 LSL_Rotation rot = (LSL_Rotation)plist[i];
371 result[i] = new OpenMetaverse.Quaternion((float)rot.x,(float)rot.y,(float)rot.z,(float)rot.s);
372 }
372 else if (plist[i] is LSL_Vector) 373 else if (plist[i] is LSL_Vector)
373 result[i] = (Vector3)((LSL_Vector)plist[i]); 374 {
375 LSL_Vector vect = (LSL_Vector)plist[i];
376 result[i] = new OpenMetaverse.Vector3((float)vect.x,(float)vect.y,(float)vect.z);
377 }
374 else 378 else
375 MODError(String.Format("{0}: unknown LSL list element type", fname)); 379 MODError("unknown LSL list element type");
376 } 380 }
377 381
378 return result; 382 return result;
379 } 383 }
380 } 384 }
381 385
382 MODError(String.Format("{1}: parameter type mismatch; expecting {0}",type.Name, fname)); 386 MODError(String.Format("parameter type mismatch; expecting {0}",type.Name));
383 return null; 387 return null;
384 } 388 }
385 389