aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorJeff Ames2008-08-18 00:39:10 +0000
committerJeff Ames2008-08-18 00:39:10 +0000
commit6ef9d4da901a346c232458317cca6268da888e2e (patch)
treedd1d935b10f34f261839da9f9879c02322e8ede7 /OpenSim/Region/ScriptEngine/Shared
parentUpdate svn properties, minor formatting cleanup. (diff)
downloadopensim-SC_OLD-6ef9d4da901a346c232458317cca6268da888e2e.zip
opensim-SC_OLD-6ef9d4da901a346c232458317cca6268da888e2e.tar.gz
opensim-SC_OLD-6ef9d4da901a346c232458317cca6268da888e2e.tar.bz2
opensim-SC_OLD-6ef9d4da901a346c232458317cca6268da888e2e.tar.xz
Formatting cleanup.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs226
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs28
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs74
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs6
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs22
12 files changed, 185 insertions, 187 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 9604828..4de207a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -348,23 +348,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
348 a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting 348 a vector pointing along the X axis, first rotating it 3 degrees around the global Z axis, then rotating the resulting
349 vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis. 349 vector 2 degrees around the global Y axis, and finally rotating that 1 degree around the global X axis.
350 */ 350 */
351 351
352 /* How we arrived at this llEuler2Rot 352 /* How we arrived at this llEuler2Rot
353 * 353 *
354 * Experiment in SL to determine conventions: 354 * Experiment in SL to determine conventions:
355 * llEuler2Rot(<PI,0,0>)=<1,0,0,0> 355 * llEuler2Rot(<PI,0,0>)=<1,0,0,0>
356 * llEuler2Rot(<0,PI,0>)=<0,1,0,0> 356 * llEuler2Rot(<0,PI,0>)=<0,1,0,0>
357 * llEuler2Rot(<0,0,PI>)=<0,0,1,0> 357 * llEuler2Rot(<0,0,PI>)=<0,0,1,0>
358 * 358 *
359 * Important facts about Quaternions 359 * Important facts about Quaternions
360 * - multiplication is non-commutative (a*b != b*a) 360 * - multiplication is non-commutative (a*b != b*a)
361 * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication 361 * - http://en.wikipedia.org/wiki/Quaternion#Basis_multiplication
362 * 362 *
363 * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot): 363 * Above SL experiment gives (c1,c2,c3,s1,s2,s3 as defined in our llEuler2Rot):
364 * Qx = c1+i*s1 364 * Qx = c1+i*s1
365 * Qy = c2+j*s2; 365 * Qy = c2+j*s2;
366 * Qz = c3+k*s3; 366 * Qz = c3+k*s3;
367 * 367 *
368 * Rotations applied in order (from above) Z, Y, X 368 * Rotations applied in order (from above) Z, Y, X
369 * Q = (Qz * Qy) * Qx 369 * Q = (Qz * Qy) * Qx
370 * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3) 370 * ((c1+i*s1)*(c2+j*s2))*(c3+k*s3)
@@ -376,23 +376,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
376 * y=j*(c1*s2*c3-s1*c2*s3) 376 * y=j*(c1*s2*c3-s1*c2*s3)
377 * z=k*(s1*s2*c3+c1*c2*s3) 377 * z=k*(s1*s2*c3+c1*c2*s3)
378 * s= c1*c2*c3-s1*s2*s3 378 * s= c1*c2*c3-s1*s2*s3
379 * 379 *
380 * This implementation agrees with the functions found here: 380 * This implementation agrees with the functions found here:
381 * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions 381 * http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryRotationFunctions
382 * And with the results in SL. 382 * And with the results in SL.
383 * 383 *
384 * It's also possible to calculate llEuler2Rot by direct multiplication of 384 * It's also possible to calculate llEuler2Rot by direct multiplication of
385 * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function 385 * the Qz, Qy, and Qx vectors (as above - and done in the "accurate" function
386 * from the wiki). 386 * from the wiki).
387 * Apparently in some cases this is better from a numerical precision perspective? 387 * Apparently in some cases this is better from a numerical precision perspective?
388 */ 388 */
389 389
390 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) 390 public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v)
391 { 391 {
392 m_host.AddScriptLPS(1); 392 m_host.AddScriptLPS(1);
393 393
394 double x,y,z,s; 394 double x,y,z,s;
395 395
396 double c1 = Math.Cos(v.x/2.0); 396 double c1 = Math.Cos(v.x/2.0);
397 double c2 = Math.Cos(v.y/2.0); 397 double c2 = Math.Cos(v.y/2.0);
398 double c3 = Math.Cos(v.z/2.0); 398 double c3 = Math.Cos(v.z/2.0);
@@ -404,7 +404,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
404 y = c1*s2*c3-s1*c2*s3; 404 y = c1*s2*c3-s1*c2*s3;
405 z = s1*s2*c3+c1*c2*s3; 405 z = s1*s2*c3+c1*c2*s3;
406 s = c1*c2*c3-s1*s2*s3; 406 s = c1*c2*c3-s1*s2*s3;
407 407
408 return new LSL_Types.Quaternion(x, y, z, s); 408 return new LSL_Types.Quaternion(x, y, z, s);
409 } 409 }
410 410
@@ -414,7 +414,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
414 double x, y, z, s; 414 double x, y, z, s;
415 int f = 0; 415 int f = 0;
416 // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s> 416 // Important Note: q1=<x,y,z,s> is equal to q2=<-x,-y,-z,-s>
417 // Computing quaternion x,y,z,s values 417 // Computing quaternion x,y,z,s values
418 x = ((fwd.x - left.y - up.z + 1) / 4); 418 x = ((fwd.x - left.y - up.z + 1) / 4);
419 x *= x; 419 x *= x;
420 x = Math.Sqrt(Math.Sqrt(x)); 420 x = Math.Sqrt(Math.Sqrt(x));
@@ -428,7 +428,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
428 s *= s; 428 s *= s;
429 s = Math.Sqrt(Math.Sqrt(s)); 429 s = Math.Sqrt(Math.Sqrt(s));
430 430
431 // Set f for signs detection 431 // Set f for signs detection
432 if (fwd.y + left.x >= 0) { f += 1; } 432 if (fwd.y + left.x >= 0) { f += 1; }
433 if (fwd.z + up.x >= 0) { f += 2; } 433 if (fwd.z + up.x >= 0) { f += 2; }
434 if (left.z - up.y >= 0) { f += 4; } 434 if (left.z - up.y >= 0) { f += 4; }
@@ -1013,9 +1013,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1013 return; 1013 return;
1014 } 1014 }
1015 } 1015 }
1016 1016
1017 public void SetGlow(SceneObjectPart part, int face, float glow) 1017 public void SetGlow(SceneObjectPart part, int face, float glow)
1018 { 1018 {
1019 LLObject.TextureEntry tex = part.Shape.Textures; 1019 LLObject.TextureEntry tex = part.Shape.Textures;
1020 if (face > -1) 1020 if (face > -1)
1021 { 1021 {
@@ -1023,7 +1023,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1023 tex.FaceTextures[face].Glow = glow; 1023 tex.FaceTextures[face].Glow = glow;
1024 part.UpdateTexture(tex); 1024 part.UpdateTexture(tex);
1025 return; 1025 return;
1026 } 1026 }
1027 else if (face == -1) 1027 else if (face == -1)
1028 { 1028 {
1029 for (uint i = 0; i < 32; i++) 1029 for (uint i = 0; i < 32; i++)
@@ -1038,15 +1038,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1038 return; 1038 return;
1039 } 1039 }
1040 } 1040 }
1041 1041
1042 public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump) 1042 public void SetShiny(SceneObjectPart part, int face, int shiny, Bumpiness bump)
1043 { 1043 {
1044 1044
1045 Shininess sval = new Shininess(); 1045 Shininess sval = new Shininess();
1046 1046
1047 switch (shiny) 1047 switch (shiny)
1048 { 1048 {
1049 case 0: 1049 case 0:
1050 sval = Shininess.None; 1050 sval = Shininess.None;
1051 break; 1051 break;
1052 case 1: 1052 case 1:
@@ -1062,7 +1062,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1062 sval = Shininess.None; 1062 sval = Shininess.None;
1063 break; 1063 break;
1064 } 1064 }
1065 1065
1066 LLObject.TextureEntry tex = part.Shape.Textures; 1066 LLObject.TextureEntry tex = part.Shape.Textures;
1067 if (face > -1) 1067 if (face > -1)
1068 { 1068 {
@@ -1070,8 +1070,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1070 tex.FaceTextures[face].Shiny = sval; 1070 tex.FaceTextures[face].Shiny = sval;
1071 tex.FaceTextures[face].Bump = bump; 1071 tex.FaceTextures[face].Bump = bump;
1072 part.UpdateTexture(tex); 1072 part.UpdateTexture(tex);
1073 return; 1073 return;
1074 } 1074 }
1075 else if (face == -1) 1075 else if (face == -1)
1076 { 1076 {
1077 for (uint i = 0; i < 32; i++) 1077 for (uint i = 0; i < 32; i++)
@@ -1088,8 +1088,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1088 return; 1088 return;
1089 } 1089 }
1090 } 1090 }
1091 1091
1092 public void SetFullBright(SceneObjectPart part, int face, bool bright) 1092 public void SetFullBright(SceneObjectPart part, int face, bool bright)
1093 { 1093 {
1094 LLObject.TextureEntry tex = part.Shape.Textures; 1094 LLObject.TextureEntry tex = part.Shape.Textures;
1095 if (face > -1) 1095 if (face > -1)
@@ -1106,14 +1106,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1106 if (tex.FaceTextures[i] != null) 1106 if (tex.FaceTextures[i] != null)
1107 { 1107 {
1108 tex.FaceTextures[i].Fullbright = bright; 1108 tex.FaceTextures[i].Fullbright = bright;
1109 } 1109 }
1110 } 1110 }
1111 tex.DefaultTexture.Fullbright = bright; 1111 tex.DefaultTexture.Fullbright = bright;
1112 part.UpdateTexture(tex); 1112 part.UpdateTexture(tex);
1113 return; 1113 return;
1114 } 1114 }
1115 } 1115 }
1116 1116
1117 public double llGetAlpha(int face) 1117 public double llGetAlpha(int face)
1118 { 1118 {
1119 m_host.AddScriptLPS(1); 1119 m_host.AddScriptLPS(1);
@@ -1169,7 +1169,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1169 1169
1170 /// <summary> 1170 /// <summary>
1171 /// Set flexi parameters of a part. 1171 /// Set flexi parameters of a part.
1172 /// 1172 ///
1173 /// FIXME: Much of this code should probably be within the part itself. 1173 /// FIXME: Much of this code should probably be within the part itself.
1174 /// </summary> 1174 /// </summary>
1175 /// <param name="part"></param> 1175 /// <param name="part"></param>
@@ -1179,7 +1179,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1179 /// <param name="friction"></param> 1179 /// <param name="friction"></param>
1180 /// <param name="wind"></param> 1180 /// <param name="wind"></param>
1181 /// <param name="tension"></param> 1181 /// <param name="tension"></param>
1182 /// <param name="Force"></param> 1182 /// <param name="Force"></param>
1183 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction, 1183 private void SetFlexi(SceneObjectPart part, bool flexi, int softness, float gravity, float friction,
1184 float wind, float tension, LSL_Types.Vector3 Force) 1184 float wind, float tension, LSL_Types.Vector3 Force)
1185 { 1185 {
@@ -1230,7 +1230,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1230 1230
1231 /// <summary> 1231 /// <summary>
1232 /// Set a light point on a part 1232 /// Set a light point on a part
1233 /// 1233 ///
1234 /// FIXME: Much of this code should probably be in SceneObjectGroup 1234 /// FIXME: Much of this code should probably be in SceneObjectGroup
1235 /// </summary> 1235 /// </summary>
1236 /// <param name="part"></param> 1236 /// <param name="part"></param>
@@ -1238,7 +1238,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1238 /// <param name="color"></param> 1238 /// <param name="color"></param>
1239 /// <param name="intensity"></param> 1239 /// <param name="intensity"></param>
1240 /// <param name="radius"></param> 1240 /// <param name="radius"></param>
1241 /// <param name="falloff"></param> 1241 /// <param name="falloff"></param>
1242 private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff) 1242 private void SetPointLight(SceneObjectPart part, bool light, LSL_Types.Vector3 color, float intensity, float radius, float falloff)
1243 { 1243 {
1244 if (part == null) 1244 if (part == null)
@@ -2880,13 +2880,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2880 bool found = false; 2880 bool found = false;
2881 LLUUID destId = LLUUID.Zero; 2881 LLUUID destId = LLUUID.Zero;
2882 LLUUID objId = LLUUID.Zero; 2882 LLUUID objId = LLUUID.Zero;
2883 2883
2884 if (!LLUUID.TryParse(destination, out destId)) 2884 if (!LLUUID.TryParse(destination, out destId))
2885 { 2885 {
2886 llSay(0, "Could not parse key " + destination); 2886 llSay(0, "Could not parse key " + destination);
2887 return; 2887 return;
2888 } 2888 }
2889 2889
2890 // move the first object found with this inventory name 2890 // move the first object found with this inventory name
2891 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) 2891 foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory)
2892 { 2892 {
@@ -4451,7 +4451,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4451 private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues() 4451 private Primitive.ParticleSystem getNewParticleSystemWithSLDefaultValues()
4452 { 4452 {
4453 Primitive.ParticleSystem ps = new Primitive.ParticleSystem(); 4453 Primitive.ParticleSystem ps = new Primitive.ParticleSystem();
4454 4454
4455 // TODO find out about the other defaults and add them here 4455 // TODO find out about the other defaults and add them here
4456 ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); 4456 ps.PartStartColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f);
4457 ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f); 4457 ps.PartEndColor = new LLColor(1.0f, 1.0f, 1.0f, 1.0f);
@@ -4465,7 +4465,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4465 ps.PartMaxAge = 10.0f; 4465 ps.PartMaxAge = 10.0f;
4466 return ps; 4466 return ps;
4467 } 4467 }
4468 4468
4469 public void llParticleSystem(LSL_Types.list rules) 4469 public void llParticleSystem(LSL_Types.list rules)
4470 { 4470 {
4471 m_host.AddScriptLPS(1); 4471 m_host.AddScriptLPS(1);
@@ -4660,7 +4660,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4660 itemList.Add(itemID); 4660 itemList.Add(itemID);
4661 } 4661 }
4662 } 4662 }
4663 4663
4664 if (itemList.Count == 0) 4664 if (itemList.Count == 0)
4665 return; 4665 return;
4666 4666
@@ -4936,11 +4936,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4936 m_host.AddScriptLPS(1); 4936 m_host.AddScriptLPS(1);
4937 return Util.Md5Hash(src + ":" + nonce.ToString()); 4937 return Util.Md5Hash(src + ":" + nonce.ToString());
4938 } 4938 }
4939 4939
4940 private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist) 4940 private ObjectShapePacket.ObjectDataBlock SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist)
4941 { 4941 {
4942 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 4942 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
4943 4943
4944 if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT && 4944 if (holeshape != (int)ScriptBaseClass.PRIM_HOLE_DEFAULT &&
4945 holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE && 4945 holeshape != (int)ScriptBaseClass.PRIM_HOLE_CIRCLE &&
4946 holeshape != (int)ScriptBaseClass.PRIM_HOLE_SQUARE && 4946 holeshape != (int)ScriptBaseClass.PRIM_HOLE_SQUARE &&
@@ -4998,23 +4998,23 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
4998 } 4998 }
4999 shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x); 4999 shapeBlock.PathTwistBegin = (sbyte)(200 * twist.x);
5000 shapeBlock.PathTwist = (sbyte)(200 * twist.y); 5000 shapeBlock.PathTwist = (sbyte)(200 * twist.y);
5001 5001
5002 shapeBlock.ObjectLocalID = m_host.LocalId; 5002 shapeBlock.ObjectLocalID = m_host.LocalId;
5003 5003
5004 // retain pathcurve 5004 // retain pathcurve
5005 shapeBlock.PathCurve = m_host.Shape.PathCurve; 5005 shapeBlock.PathCurve = m_host.Shape.PathCurve;
5006 5006
5007 return shapeBlock; 5007 return shapeBlock;
5008 } 5008 }
5009 5009
5010 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge) 5010 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 taper_b, LSL_Types.Vector3 topshear, byte fudge)
5011 { 5011 {
5012 ObjectShapePacket.ObjectDataBlock shapeBlock; 5012 ObjectShapePacket.ObjectDataBlock shapeBlock;
5013 5013
5014 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); 5014 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist);
5015 5015
5016 shapeBlock.ProfileCurve += fudge; 5016 shapeBlock.ProfileCurve += fudge;
5017 5017
5018 if (taper_b.x < 0f) 5018 if (taper_b.x < 0f)
5019 { 5019 {
5020 taper_b.x = 0f; 5020 taper_b.x = 0f;
@@ -5051,25 +5051,25 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5051 } 5051 }
5052 shapeBlock.PathShearX = (byte)(100 * topshear.x); 5052 shapeBlock.PathShearX = (byte)(100 * topshear.x);
5053 shapeBlock.PathShearY = (byte)(100 * topshear.y); 5053 shapeBlock.PathShearY = (byte)(100 * topshear.y);
5054 5054
5055 m_host.UpdateShape(shapeBlock); 5055 m_host.UpdateShape(shapeBlock);
5056 } 5056 }
5057 5057
5058 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge) 5058 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 dimple, byte fudge)
5059 { 5059 {
5060 ObjectShapePacket.ObjectDataBlock shapeBlock; 5060 ObjectShapePacket.ObjectDataBlock shapeBlock;
5061 5061
5062 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); 5062 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist);
5063 5063
5064 // profile/path swapped for a sphere 5064 // profile/path swapped for a sphere
5065 shapeBlock.PathBegin = shapeBlock.ProfileBegin; 5065 shapeBlock.PathBegin = shapeBlock.ProfileBegin;
5066 shapeBlock.PathEnd = shapeBlock.ProfileEnd; 5066 shapeBlock.PathEnd = shapeBlock.ProfileEnd;
5067 5067
5068 shapeBlock.ProfileCurve += fudge; 5068 shapeBlock.ProfileCurve += fudge;
5069 5069
5070 shapeBlock.PathScaleX = 100; 5070 shapeBlock.PathScaleX = 100;
5071 shapeBlock.PathScaleY = 100; 5071 shapeBlock.PathScaleY = 100;
5072 5072
5073 if (dimple.x < 0f) 5073 if (dimple.x < 0f)
5074 { 5074 {
5075 dimple.x = 0f; 5075 dimple.x = 0f;
@@ -5092,22 +5092,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5092 } 5092 }
5093 shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x); 5093 shapeBlock.ProfileBegin = (ushort)(50000 * dimple.x);
5094 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y)); 5094 shapeBlock.ProfileEnd = (ushort)(50000 * (1 - dimple.y));
5095 5095
5096 m_host.UpdateShape(shapeBlock); 5096 m_host.UpdateShape(shapeBlock);
5097 } 5097 }
5098 5098
5099 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge) 5099 private void SetPrimitiveShapeParams(int holeshape, LSL_Types.Vector3 cut, float hollow, LSL_Types.Vector3 twist, LSL_Types.Vector3 holesize, LSL_Types.Vector3 topshear, LSL_Types.Vector3 profilecut, LSL_Types.Vector3 taper_a, float revolutions, float radiusoffset, float skew, byte fudge)
5100 { 5100 {
5101 ObjectShapePacket.ObjectDataBlock shapeBlock; 5101 ObjectShapePacket.ObjectDataBlock shapeBlock;
5102 5102
5103 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist); 5103 shapeBlock = SetPrimitiveShapeParams(holeshape, cut, hollow, twist);
5104 5104
5105 shapeBlock.ProfileCurve += fudge; 5105 shapeBlock.ProfileCurve += fudge;
5106 5106
5107 // profile/path swapped for a torrus, tube, ring 5107 // profile/path swapped for a torrus, tube, ring
5108 shapeBlock.PathBegin = shapeBlock.ProfileBegin; 5108 shapeBlock.PathBegin = shapeBlock.ProfileBegin;
5109 shapeBlock.PathEnd = shapeBlock.ProfileEnd; 5109 shapeBlock.PathEnd = shapeBlock.ProfileEnd;
5110 5110
5111 if (holesize.x < 0.05f) 5111 if (holesize.x < 0.05f)
5112 { 5112 {
5113 holesize.x = 0.05f; 5113 holesize.x = 0.05f;
@@ -5212,15 +5212,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5212 skew = 0.95f; 5212 skew = 0.95f;
5213 } 5213 }
5214 shapeBlock.PathSkew = (sbyte)(100 * skew); 5214 shapeBlock.PathSkew = (sbyte)(100 * skew);
5215 5215
5216 m_host.UpdateShape(shapeBlock); 5216 m_host.UpdateShape(shapeBlock);
5217 } 5217 }
5218 5218
5219 private void SetPrimitiveShapeParams(string map, int type) 5219 private void SetPrimitiveShapeParams(string map, int type)
5220 { 5220 {
5221 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock(); 5221 ObjectShapePacket.ObjectDataBlock shapeBlock = new ObjectShapePacket.ObjectDataBlock();
5222 LLUUID sculptId; 5222 LLUUID sculptId;
5223 5223
5224 if (!LLUUID.TryParse(map, out sculptId)) 5224 if (!LLUUID.TryParse(map, out sculptId))
5225 { 5225 {
5226 llSay(0, "Could not parse key " + map); 5226 llSay(0, "Could not parse key " + map);
@@ -5230,7 +5230,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5230 shapeBlock.ObjectLocalID = m_host.LocalId; 5230 shapeBlock.ObjectLocalID = m_host.LocalId;
5231 shapeBlock.PathScaleX = 100; 5231 shapeBlock.PathScaleX = 100;
5232 shapeBlock.PathScaleY = 150; 5232 shapeBlock.PathScaleY = 150;
5233 5233
5234 if (type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER && 5234 if (type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_CYLINDER &&
5235 type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE && 5235 type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_PLANE &&
5236 type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE && 5236 type != (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE &&
@@ -5239,7 +5239,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5239 // default 5239 // default
5240 type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE; 5240 type = (int)ScriptBaseClass.PRIM_SCULPT_TYPE_SPHERE;
5241 } 5241 }
5242 5242
5243 // retain pathcurve 5243 // retain pathcurve
5244 shapeBlock.PathCurve = m_host.Shape.PathCurve; 5244 shapeBlock.PathCurve = m_host.Shape.PathCurve;
5245 5245
@@ -5256,7 +5256,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5256 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules) 5256 public void llSetLinkPrimitiveParams(int linknumber, LSL_Types.list rules)
5257 { 5257 {
5258 m_host.AddScriptLPS(1); 5258 m_host.AddScriptLPS(1);
5259 5259
5260 if (m_host.ParentGroup == null) 5260 if (m_host.ParentGroup == null)
5261 return; 5261 return;
5262 5262
@@ -5302,13 +5302,13 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5302 SetRot(part, q); 5302 SetRot(part, q);
5303 5303
5304 break; 5304 break;
5305 5305
5306 case (int)ScriptBaseClass.PRIM_TYPE: 5306 case (int)ScriptBaseClass.PRIM_TYPE:
5307 if (remain < 3) 5307 if (remain < 3)
5308 return; 5308 return;
5309 5309
5310 code = Convert.ToInt32(rules.Data[idx++]); 5310 code = Convert.ToInt32(rules.Data[idx++]);
5311 5311
5312 remain = rules.Length - idx; 5312 remain = rules.Length - idx;
5313 float hollow; 5313 float hollow;
5314 LSL_Types.Vector3 twist; 5314 LSL_Types.Vector3 twist;
@@ -5319,9 +5319,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5319 float skew; 5319 float skew;
5320 LSL_Types.Vector3 holesize; 5320 LSL_Types.Vector3 holesize;
5321 LSL_Types.Vector3 profilecut; 5321 LSL_Types.Vector3 profilecut;
5322 5322
5323 switch (code) 5323 switch (code)
5324 { 5324 {
5325 case (int)ScriptBaseClass.PRIM_TYPE_BOX: 5325 case (int)ScriptBaseClass.PRIM_TYPE_BOX:
5326 if (remain < 6) 5326 if (remain < 6)
5327 return; 5327 return;
@@ -5335,7 +5335,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5335 m_host.Shape.PathCurve = (byte) Extrusion.Straight; 5335 m_host.Shape.PathCurve = (byte) Extrusion.Straight;
5336 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1); 5336 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 1);
5337 break; 5337 break;
5338 5338
5339 case (int)ScriptBaseClass.PRIM_TYPE_CYLINDER: 5339 case (int)ScriptBaseClass.PRIM_TYPE_CYLINDER:
5340 if (remain < 6) 5340 if (remain < 6)
5341 return; 5341 return;
@@ -5350,12 +5350,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5350 m_host.Shape.PathCurve = (byte) Extrusion.Straight; 5350 m_host.Shape.PathCurve = (byte) Extrusion.Straight;
5351 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0); 5351 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, topshear, 0);
5352 break; 5352 break;
5353 5353
5354 case (int)ScriptBaseClass.PRIM_TYPE_PRISM: 5354 case (int)ScriptBaseClass.PRIM_TYPE_PRISM:
5355 if (remain < 6) 5355 if (remain < 6)
5356 return; 5356 return;
5357 5357
5358 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 5358 face = Convert.ToInt32(rules.Data[idx++]); // holeshape
5359 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 5359 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut
5360 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 5360 hollow = (float)Convert.ToDouble(rules.Data[idx++]);
5361 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5361 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString());
@@ -5377,12 +5377,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5377 m_host.Shape.PathCurve = (byte) Extrusion.Curve1; 5377 m_host.Shape.PathCurve = (byte) Extrusion.Curve1;
5378 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5); 5378 SetPrimitiveShapeParams(face, v, hollow, twist, taper_b, 5);
5379 break; 5379 break;
5380 5380
5381 case (int)ScriptBaseClass.PRIM_TYPE_TORUS: 5381 case (int)ScriptBaseClass.PRIM_TYPE_TORUS:
5382 if (remain < 11) 5382 if (remain < 11)
5383 return; 5383 return;
5384 5384
5385 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 5385 face = Convert.ToInt32(rules.Data[idx++]); // holeshape
5386 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 5386 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut
5387 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 5387 hollow = (float)Convert.ToDouble(rules.Data[idx++]);
5388 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5388 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString());
@@ -5396,12 +5396,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5396 m_host.Shape.PathCurve = (byte) Extrusion.Curve1; 5396 m_host.Shape.PathCurve = (byte) Extrusion.Curve1;
5397 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0); 5397 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 0);
5398 break; 5398 break;
5399 5399
5400 case (int)ScriptBaseClass.PRIM_TYPE_TUBE: 5400 case (int)ScriptBaseClass.PRIM_TYPE_TUBE:
5401 if (remain < 11) 5401 if (remain < 11)
5402 return; 5402 return;
5403 5403
5404 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 5404 face = Convert.ToInt32(rules.Data[idx++]); // holeshape
5405 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 5405 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut
5406 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 5406 hollow = (float)Convert.ToDouble(rules.Data[idx++]);
5407 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5407 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString());
@@ -5415,12 +5415,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5415 m_host.Shape.PathCurve = (byte) Extrusion.Curve1; 5415 m_host.Shape.PathCurve = (byte) Extrusion.Curve1;
5416 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1); 5416 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 1);
5417 break; 5417 break;
5418 5418
5419 case (int)ScriptBaseClass.PRIM_TYPE_RING: 5419 case (int)ScriptBaseClass.PRIM_TYPE_RING:
5420 if (remain < 11) 5420 if (remain < 11)
5421 return; 5421 return;
5422 5422
5423 face = Convert.ToInt32(rules.Data[idx++]); // holeshape 5423 face = Convert.ToInt32(rules.Data[idx++]); // holeshape
5424 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut 5424 v = new LSL_Types.Vector3(rules.Data[idx++].ToString()); //cut
5425 hollow = (float)Convert.ToDouble(rules.Data[idx++]); 5425 hollow = (float)Convert.ToDouble(rules.Data[idx++]);
5426 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString()); 5426 twist = new LSL_Types.Vector3(rules.Data[idx++].ToString());
@@ -5434,7 +5434,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5434 m_host.Shape.PathCurve = (byte) Extrusion.Curve1; 5434 m_host.Shape.PathCurve = (byte) Extrusion.Curve1;
5435 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3); 5435 SetPrimitiveShapeParams(face, v, hollow, twist, holesize, topshear, profilecut, taper_b, revolutions, radiusoffset, skew, 3);
5436 break; 5436 break;
5437 5437
5438 case (int)ScriptBaseClass.PRIM_TYPE_SCULPT: 5438 case (int)ScriptBaseClass.PRIM_TYPE_SCULPT:
5439 if (remain < 2) 5439 if (remain < 2)
5440 return; 5440 return;
@@ -5445,7 +5445,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5445 SetPrimitiveShapeParams(map, face); 5445 SetPrimitiveShapeParams(map, face);
5446 break; 5446 break;
5447 } 5447 }
5448 5448
5449 break; 5449 break;
5450 5450
5451 case (int)ScriptBaseClass.PRIM_TEXTURE: 5451 case (int)ScriptBaseClass.PRIM_TEXTURE:
@@ -5509,31 +5509,31 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5509 return; 5509 return;
5510 face = Convert.ToInt32(rules.Data[idx++]); 5510 face = Convert.ToInt32(rules.Data[idx++]);
5511 float glow = (float)Convert.ToDouble(rules.Data[idx++]); 5511 float glow = (float)Convert.ToDouble(rules.Data[idx++]);
5512 5512
5513 SetGlow(part, face, glow); 5513 SetGlow(part, face, glow);
5514 5514
5515 break; 5515 break;
5516 case (int)ScriptBaseClass.PRIM_BUMP_SHINY: 5516 case (int)ScriptBaseClass.PRIM_BUMP_SHINY:
5517 if (remain < 3) 5517 if (remain < 3)
5518 return; 5518 return;
5519 face = Convert.ToInt32(rules.Data[idx++]); 5519 face = Convert.ToInt32(rules.Data[idx++]);
5520 int shiny = Convert.ToInt32(rules.Data[idx++]); 5520 int shiny = Convert.ToInt32(rules.Data[idx++]);
5521 Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]); 5521 Bumpiness bump = (Bumpiness)Convert.ToByte(rules.Data[idx++]);
5522 5522
5523 SetShiny(part, face, shiny, bump); 5523 SetShiny(part, face, shiny, bump);
5524 5524
5525 break; 5525 break;
5526 case (int)ScriptBaseClass.PRIM_FULLBRIGHT: 5526 case (int)ScriptBaseClass.PRIM_FULLBRIGHT:
5527 if (remain < 2) 5527 if (remain < 2)
5528 return; 5528 return;
5529 face = Convert.ToInt32(rules.Data[idx++]); 5529 face = Convert.ToInt32(rules.Data[idx++]);
5530 string bv = rules.Data[idx++].ToString(); 5530 string bv = rules.Data[idx++].ToString();
5531 bool st; 5531 bool st;
5532 if (bv.Equals("1")) 5532 if (bv.Equals("1"))
5533 st = true; 5533 st = true;
5534 else 5534 else
5535 st = false; 5535 st = false;
5536 5536
5537 SetFullBright(part, face , st); 5537 SetFullBright(part, face , st);
5538 break; 5538 break;
5539 case (int)ScriptBaseClass.PRIM_MATERIAL: 5539 case (int)ScriptBaseClass.PRIM_MATERIAL:
@@ -5552,29 +5552,29 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5552 case (int)ScriptBaseClass.PRIM_PHANTOM: 5552 case (int)ScriptBaseClass.PRIM_PHANTOM:
5553 if (remain < 1) 5553 if (remain < 1)
5554 return; 5554 return;
5555 5555
5556 string ph = rules.Data[idx++].ToString(); 5556 string ph = rules.Data[idx++].ToString();
5557 bool phantom; 5557 bool phantom;
5558 5558
5559 if (ph.Equals("1")) 5559 if (ph.Equals("1"))
5560 phantom = true; 5560 phantom = true;
5561 else 5561 else
5562 phantom = false; 5562 phantom = false;
5563 5563
5564 part.ScriptSetPhantomStatus(phantom); 5564 part.ScriptSetPhantomStatus(phantom);
5565 part.ScheduleFullUpdate(); 5565 part.ScheduleFullUpdate();
5566 break; 5566 break;
5567 case (int)ScriptBaseClass.PRIM_PHYSICS: 5567 case (int)ScriptBaseClass.PRIM_PHYSICS:
5568 if (remain < 1) 5568 if (remain < 1)
5569 return; 5569 return;
5570 string phy = rules.Data[idx++].ToString(); 5570 string phy = rules.Data[idx++].ToString();
5571 bool physics; 5571 bool physics;
5572 5572
5573 if (phy.Equals("1")) 5573 if (phy.Equals("1"))
5574 physics = true; 5574 physics = true;
5575 else 5575 else
5576 physics = false; 5576 physics = false;
5577 5577
5578 m_host.ScriptSetPhysicsStatus(physics); 5578 m_host.ScriptSetPhysicsStatus(physics);
5579 part.ScheduleFullUpdate(); 5579 part.ScheduleFullUpdate();
5580 break; 5580 break;
@@ -5645,7 +5645,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
5645 public LSL_Types.list llGetAnimationList( string id ) 5645 public LSL_Types.list llGetAnimationList( string id )
5646 { 5646 {
5647 m_host.AddScriptLPS(1); 5647 m_host.AddScriptLPS(1);
5648 5648
5649 LSL_Types.list l = new LSL_Types.list(); 5649 LSL_Types.list l = new LSL_Types.list();
5650 ScenePresence av = World.GetScenePresence(id); 5650 ScenePresence av = World.GetScenePresence(id);
5651 if (av == null) 5651 if (av == null)
@@ -6758,7 +6758,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6758 //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later) 6758 //PARCEL_MEDIA_COMMAND_LOOP_SET float loop Use this to get or set the parcel's media loop duration. (1.19.1 RC0 or later)
6759 m_host.AddScriptLPS(1); 6759 m_host.AddScriptLPS(1);
6760 for (int i = 0; i < commandList.Data.Length; i++) 6760 for (int i = 0; i < commandList.Data.Length; i++)
6761 { 6761 {
6762 switch ((ParcelMediaCommandEnum)commandList.Data[i]) 6762 switch ((ParcelMediaCommandEnum)commandList.Data[i])
6763 { 6763 {
6764 case ParcelMediaCommandEnum.Play: 6764 case ParcelMediaCommandEnum.Play:
@@ -6768,7 +6768,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6768 if (!agent.IsChildAgent) 6768 if (!agent.IsChildAgent)
6769 { 6769 {
6770 agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0); 6770 agent.ControllingClient.SendParcelMediaCommand((uint)(4), ParcelMediaCommandEnum.Play, 0);
6771 } 6771 }
6772 } 6772 }
6773 break; 6773 break;
6774 case ParcelMediaCommandEnum.Stop: 6774 case ParcelMediaCommandEnum.Stop:
@@ -6799,7 +6799,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6799 { 6799 {
6800 //Set the new media URL only if the user is the owner of the land 6800 //Set the new media URL only if the user is the owner of the land
6801 osSetParcelMediaURL(commandList.Data[i + 1].ToString()); 6801 osSetParcelMediaURL(commandList.Data[i + 1].ToString());
6802 6802
6803 List<ScenePresence> scenePresenceList = World.GetScenePresences(); 6803 List<ScenePresence> scenePresenceList = World.GetScenePresences();
6804 LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y); 6804 LandData landData = World.GetLandData(m_host.AbsolutePosition.X, m_host.AbsolutePosition.Y);
6805 //Send an update of the mediaURL to all the clients that are in the parcel 6805 //Send an update of the mediaURL to all the clients that are in the parcel
@@ -6810,8 +6810,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6810 //Send parcel media update to the client 6810 //Send parcel media update to the client
6811 agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1); 6811 agent.ControllingClient.SendParcelMediaUpdate(landData.MediaURL, landData.MediaID, landData.MediaAutoScale, "", landData.Description, 0, 0, 1);
6812 } 6812 }
6813 } 6813 }
6814 6814
6815 } 6815 }
6816 i++; 6816 i++;
6817 } 6817 }
@@ -6821,7 +6821,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6821 NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString()); 6821 NotImplemented("llParcelMediaCommandList parameter do not supported yet: " + Enum.Parse(mediaCommandEnum.GetType(), commandList.Data[i].ToString()).ToString());
6822 break; 6822 break;
6823 }//end switch 6823 }//end switch
6824 6824
6825 } 6825 }
6826 6826
6827 6827
@@ -6864,7 +6864,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6864 } 6864 }
6865 } 6865 }
6866 return list; 6866 return list;
6867 6867
6868 } 6868 }
6869 6869
6870 public LSL_Types.LSLInteger llModPow(int a, int b, int c) 6870 public LSL_Types.LSLInteger llModPow(int a, int b, int c)
@@ -6908,7 +6908,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
6908 { 6908 {
6909 m_host.AddScriptLPS(1); 6909 m_host.AddScriptLPS(1);
6910 LLUUID invItemID=InventorySelf(); 6910 LLUUID invItemID=InventorySelf();
6911 if (invItemID == LLUUID.Zero) 6911 if (invItemID == LLUUID.Zero)
6912 return new LSL_Types.Vector3(); 6912 return new LSL_Types.Vector3();
6913 if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero) 6913 if (m_host.TaskInventory[invItemID].PermsGranter == LLUUID.Zero)
6914 return new LSL_Types.Vector3(); 6914 return new LSL_Types.Vector3();
@@ -7036,8 +7036,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7036 public void llSetCameraParams(LSL_Types.list rules) 7036 public void llSetCameraParams(LSL_Types.list rules)
7037 { 7037 {
7038 m_host.AddScriptLPS(1); 7038 m_host.AddScriptLPS(1);
7039 7039
7040 // our key in the object we are in 7040 // our key in the object we are in
7041 LLUUID invItemID=InventorySelf(); 7041 LLUUID invItemID=InventorySelf();
7042 if (invItemID == LLUUID.Zero) return; 7042 if (invItemID == LLUUID.Zero) return;
7043 7043
@@ -7051,10 +7051,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7051 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; 7051 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return;
7052 7052
7053 ScenePresence presence = World.GetScenePresence(agentID); 7053 ScenePresence presence = World.GetScenePresence(agentID);
7054 7054
7055 // we are not interested in child-agents 7055 // we are not interested in child-agents
7056 if (presence.IsChildAgent) return; 7056 if (presence.IsChildAgent) return;
7057 7057
7058 SortedDictionary<int, float> parameters = new SortedDictionary<int, float>(); 7058 SortedDictionary<int, float> parameters = new SortedDictionary<int, float>();
7059 object[] data = rules.Data; 7059 object[] data = rules.Data;
7060 for (int i = 0; i < data.Length; ++i) { 7060 for (int i = 0; i < data.Length; ++i) {
@@ -7067,8 +7067,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7067 case ScriptBaseClass.CAMERA_FOCUS_OFFSET: 7067 case ScriptBaseClass.CAMERA_FOCUS_OFFSET:
7068 case ScriptBaseClass.CAMERA_POSITION: 7068 case ScriptBaseClass.CAMERA_POSITION:
7069 LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i]; 7069 LSL_Types.Vector3 v = (LSL_Types.Vector3)data[i];
7070 parameters.Add(type + 1, (float)v.x); 7070 parameters.Add(type + 1, (float)v.x);
7071 parameters.Add(type + 2, (float)v.y); 7071 parameters.Add(type + 2, (float)v.y);
7072 parameters.Add(type + 3, (float)v.z); 7072 parameters.Add(type + 3, (float)v.z);
7073 break; 7073 break;
7074 default: 7074 default:
@@ -7088,7 +7088,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7088 { 7088 {
7089 m_host.AddScriptLPS(1); 7089 m_host.AddScriptLPS(1);
7090 7090
7091 // our key in the object we are in 7091 // our key in the object we are in
7092 LLUUID invItemID=InventorySelf(); 7092 LLUUID invItemID=InventorySelf();
7093 if (invItemID == LLUUID.Zero) return; 7093 if (invItemID == LLUUID.Zero) return;
7094 7094
@@ -7102,10 +7102,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
7102 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return; 7102 if ((m_host.TaskInventory[invItemID].PermsMask & ScriptBaseClass.PERMISSION_CONTROL_CAMERA) == 0) return;
7103 7103
7104 ScenePresence presence = World.GetScenePresence(agentID); 7104 ScenePresence presence = World.GetScenePresence(agentID);
7105 7105
7106 // we are not interested in child-agents 7106 // we are not interested in child-agents
7107 if (presence.IsChildAgent) return; 7107 if (presence.IsChildAgent) return;
7108 7108
7109 presence.ControllingClient.SendClearFollowCamProperties(objectID); 7109 presence.ControllingClient.SendClearFollowCamProperties(objectID);
7110 } 7110 }
7111 7111
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs
index 6c88ae86..52d277e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/Dataserver.cs
@@ -89,7 +89,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
89 { 89 {
90 if (!DataserverRequests.ContainsKey(identifier)) 90 if (!DataserverRequests.ContainsKey(identifier))
91 return; 91 return;
92 92
93 ds=DataserverRequests[identifier]; 93 ds=DataserverRequests[identifier];
94 DataserverRequests.Remove(identifier); 94 DataserverRequests.Remove(identifier);
95 } 95 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs
index 89bf51c..3f3cf39 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/Plugins/XmlRequest.cs
@@ -70,7 +70,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Plugins
70 new LSL_Types.LSLInteger(rInfo.GetIntValue()), 70 new LSL_Types.LSLInteger(rInfo.GetIntValue()),
71 new LSL_Types.LSLString(rInfo.GetStrVal()) 71 new LSL_Types.LSLString(rInfo.GetStrVal())
72 }; 72 };
73 73
74 foreach (AsyncCommandManager m in m_CmdManager.Managers) 74 foreach (AsyncCommandManager m in m_CmdManager.Managers)
75 { 75 {
76 if (m.m_ScriptEngine.PostScriptEvent( 76 if (m.m_ScriptEngine.PostScriptEvent(
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
index 5b32cde..c28aa9a 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/ScriptBase.cs
@@ -81,7 +81,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
81 return; 81 return;
82 82
83 MethodInfo mi = inits[api]; 83 MethodInfo mi = inits[api];
84 84
85 Object[] args = new Object[1]; 85 Object[] args = new Object[1];
86 args[0] = data; 86 args[0] = data;
87 87
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs
index 681b2f2..d6a339b 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/IndexedAnswers.cs
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
54 { 54 {
55 _arity = arity; 55 _arity = arity;
56 } 56 }
57 57
58 /// <summary> 58 /// <summary>
59 /// Append the answer to the list and update the indexes, if any. 59 /// Append the answer to the list and update the indexes, if any.
60 /// Elements of answer must be ground, since arguments with unbound variables make this 60 /// Elements of answer must be ground, since arguments with unbound variables make this
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs
index a2fe7ec..9f5ae3d 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/PrologException.cs
@@ -1,20 +1,20 @@
1/* 1/*
2 * Copyright (C) 2007-2008, Jeff Thompson 2 * Copyright (C) 2007-2008, Jeff Thompson
3 * 3 *
4 * All rights reserved. 4 * All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met: 7 * modification, are permitted provided that the following conditions are met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above copyright 11 * * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
14 * * Neither the name of the copyright holder nor the names of its contributors 14 * * Neither the name of the copyright holder nor the names of its contributors
15 * may be used to endorse or promote products derived from this software 15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission. 16 * without specific prior written permission.
17 * 17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -54,7 +54,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
54 /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding. 54 /// This uses YP.makeCopy to copy the ErrorTerm and Message so that they are valid after unbinding.
55 /// </summary> 55 /// </summary>
56 /// <param name="ErrorTerm">the error term of the error</param> 56 /// <param name="ErrorTerm">the error term of the error</param>
57 /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an 57 /// <param name="Messsage">the message term of the error. If this is a string, it is converted to an
58 /// Atom so it can be used by Prolog code. 58 /// Atom so it can be used by Prolog code.
59 /// Message, converted to a string, is use as the printable exception message. 59 /// Message, converted to a string, is use as the printable exception message.
60 /// </param> 60 /// </param>
@@ -66,7 +66,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
66 _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore()); 66 _term = YP.makeCopy(new Functor2(Atom.a("error"), ErrorTerm, Message), new Variable.CopyStore());
67 } 67 }
68 68
69 public class TypeErrorInfo 69 public class TypeErrorInfo
70 { 70 {
71 public readonly Atom _Type; 71 public readonly Atom _Type;
72 public readonly object _Culprit; 72 public readonly object _Culprit;
@@ -116,14 +116,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
116 /// <returns></returns> 116 /// <returns></returns>
117 public object getProcedureName() 117 public object getProcedureName()
118 { 118 {
119 if (!(_Type._name == "procedure" && 119 if (!(_Type._name == "procedure" &&
120 _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH)) 120 _Culprit is Functor2 && ((Functor2)_Culprit)._name == Atom.SLASH))
121 return null; 121 return null;
122 return ((Functor2)_Culprit)._arg1; 122 return ((Functor2)_Culprit)._arg1;
123 } 123 }
124 124
125 /// <summary> 125 /// <summary>
126 /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity. 126 /// If _Type is procedure and _Culprit is name/arity and arity is an integer, return the arity.
127 /// Otherwise return -1. 127 /// Otherwise return -1.
128 /// </summary> 128 /// </summary>
129 /// <returns></returns> 129 /// <returns></returns>
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
index 97c9087..2e90d74 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/YieldProlog/YP.cs
@@ -1,20 +1,20 @@
1/* 1/*
2 * Copyright (C) 2007-2008, Jeff Thompson 2 * Copyright (C) 2007-2008, Jeff Thompson
3 * 3 *
4 * All rights reserved. 4 * All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are met: 7 * modification, are permitted provided that the following conditions are met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * * Redistributions in binary form must reproduce the above copyright 11 * * Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the 12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution. 13 * documentation and/or other materials provided with the distribution.
14 * * Neither the name of the copyright holder nor the names of its contributors 14 * * Neither the name of the copyright holder nor the names of its contributors
15 * may be used to endorse or promote products derived from this software 15 * may be used to endorse or promote products derived from this software
16 * without specific prior written permission. 16 * without specific prior written permission.
17 * 17 *
18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 20 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
@@ -147,7 +147,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
147 /// <summary> 147 /// <summary>
148 /// Convert term to an int. 148 /// Convert term to an int.
149 /// If term is a single-element List, use its first element 149 /// If term is a single-element List, use its first element
150 /// (to handle the char types like "a"). 150 /// (to handle the char types like "a").
151 /// If can't convert, throw a PrologException for type_error evaluable (because this is only 151 /// If can't convert, throw a PrologException for type_error evaluable (because this is only
152 /// called from arithmetic functions). 152 /// called from arithmetic functions).
153 /// </summary> 153 /// </summary>
@@ -172,8 +172,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
172 { 172 {
173 throw new PrologException 173 throw new PrologException
174 (new Functor2 174 (new Functor2
175 ("type_error", Atom.a("evaluable"), 175 ("type_error", Atom.a("evaluable"),
176 new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)), 176 new Functor2(Atom.SLASH, getFunctorName(term), getFunctorArgs(term).Length)),
177 "Term must be an integer"); 177 "Term must be an integer");
178 } 178 }
179 } 179 }
@@ -181,7 +181,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
181 /// <summary> 181 /// <summary>
182 /// Convert term to a double. This may convert an int to a double, etc. 182 /// Convert term to a double. This may convert an int to a double, etc.
183 /// If term is a single-element List, use its first element 183 /// If term is a single-element List, use its first element
184 /// (to handle the char types like "a"). 184 /// (to handle the char types like "a").
185 /// If can't convert, throw a PrologException for type_error evaluable (because this is only 185 /// If can't convert, throw a PrologException for type_error evaluable (because this is only
186 /// called from arithmetic functions). 186 /// called from arithmetic functions).
187 /// </summary> 187 /// </summary>
@@ -195,7 +195,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
195 // Assume it is a char type like "a". 195 // Assume it is a char type like "a".
196 term = YP.getValue(((Functor2)term)._arg1); 196 term = YP.getValue(((Functor2)term)._arg1);
197 if (term is Variable) 197 if (term is Variable)
198 throw new PrologException(Atom.a("instantiation_error"), 198 throw new PrologException(Atom.a("instantiation_error"),
199 "Expected a number but the argument is an unbound variable"); 199 "Expected a number but the argument is an unbound variable");
200 200
201 try 201 try
@@ -776,8 +776,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
776 if (term1TypeCode == -2) 776 if (term1TypeCode == -2)
777 { 777 {
778 // Variable. 778 // Variable.
779 // We always check for equality first because we want to be sure 779 // We always check for equality first because we want to be sure
780 // that less than returns false if the terms are equal, in 780 // that less than returns false if the terms are equal, in
781 // case that the less than check really behaves like less than or equal. 781 // case that the less than check really behaves like less than or equal.
782 if ((Variable)Term1 != (Variable)Term2) 782 if ((Variable)Term1 != (Variable)Term2)
783 // The hash code should be unique to a Variable object. 783 // The hash code should be unique to a Variable object.
@@ -820,8 +820,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
820 } 820 }
821 821
822 /// <summary> 822 /// <summary>
823 /// Type code is -2 if term is a Variable, 0 if it is an Atom, 823 /// Type code is -2 if term is a Variable, 0 if it is an Atom,
824 /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, 824 /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3,
825 /// 4 if it is Functor. 825 /// 4 if it is Functor.
826 /// Otherwise, type code is -1. 826 /// Otherwise, type code is -1.
827 /// This does not call YP.getValue(term). 827 /// This does not call YP.getValue(term).
@@ -1167,7 +1167,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1167 "Arg 2 List has an element which is an unbound variable"); 1167 "Arg 2 List has an element which is an unbound variable");
1168 if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1)) 1168 if (!(listAtom is Atom && ((Atom)listAtom)._name.Length == 1))
1169 throw new PrologException 1169 throw new PrologException
1170 (new Functor2("type_error", Atom.a("character"), listAtom), 1170 (new Functor2("type_error", Atom.a("character"), listAtom),
1171 "Arg 2 List has an element which is not a one character atom"); 1171 "Arg 2 List has an element which is not a one character atom");
1172 charArray[i] = ((Atom)listAtom)._name[0]; 1172 charArray[i] = ((Atom)listAtom)._name[0];
1173 } 1173 }
@@ -1209,7 +1209,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1209 int codeInt; 1209 int codeInt;
1210 if (!getInt(codeArray[i], out codeInt) || codeInt < 0) 1210 if (!getInt(codeArray[i], out codeInt) || codeInt < 0)
1211 throw new PrologException 1211 throw new PrologException
1212 (new Functor1("representation_error", Atom.a("character_code")), 1212 (new Functor1("representation_error", Atom.a("character_code")),
1213 "Element of Arg 2 List is not a character code"); 1213 "Element of Arg 2 List is not a character code");
1214 charArray[i] = (char)codeInt; 1214 charArray[i] = (char)codeInt;
1215 } 1215 }
@@ -1323,7 +1323,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1323 { 1323 {
1324 if (!YP.number(Number)) 1324 if (!YP.number(Number))
1325 throw new PrologException 1325 throw new PrologException
1326 (new Functor2("type_error", Atom.a("number"), Number), 1326 (new Functor2("type_error", Atom.a("number"), Number),
1327 "Arg 1 Number is not var or number"); 1327 "Arg 1 Number is not var or number");
1328 // We just checked, so convertDouble shouldn't throw an exception. 1328 // We just checked, so convertDouble shouldn't throw an exception.
1329 numberString = YP.doubleToString(YP.convertDouble(Number)); 1329 numberString = YP.doubleToString(YP.convertDouble(Number));
@@ -1413,7 +1413,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1413 { 1413 {
1414 if (!(Char is Atom) || ((Atom)Char)._name.Length != 1) 1414 if (!(Char is Atom) || ((Atom)Char)._name.Length != 1)
1415 throw new PrologException 1415 throw new PrologException
1416 (new Functor2("type_error", Atom.a("character"), Char), 1416 (new Functor2("type_error", Atom.a("character"), Char),
1417 "Arg 1 Char is not var or one-character atom"); 1417 "Arg 1 Char is not var or one-character atom");
1418 1418
1419 if (Code is Variable) 1419 if (Code is Variable)
@@ -1795,7 +1795,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1795 IndexedAnswers indexedAnswers; 1795 IndexedAnswers indexedAnswers;
1796 if (!_predicatesStore.TryGetValue(nameArity, out clauses)) 1796 if (!_predicatesStore.TryGetValue(nameArity, out clauses))
1797 { 1797 {
1798 // Create an IndexedAnswers as the only clause of the predicate. 1798 // Create an IndexedAnswers as the only clause of the predicate.
1799 _predicatesStore[nameArity] = (clauses = new List<IClause>()); 1799 _predicatesStore[nameArity] = (clauses = new List<IClause>());
1800 clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); 1800 clauses.Add(indexedAnswers = new IndexedAnswers(values.Length));
1801 } 1801 }
@@ -1826,7 +1826,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1826 IndexedAnswers indexedAnswers; 1826 IndexedAnswers indexedAnswers;
1827 if (!_predicatesStore.TryGetValue(nameArity, out clauses)) 1827 if (!_predicatesStore.TryGetValue(nameArity, out clauses))
1828 { 1828 {
1829 // Create an IndexedAnswers as the only clause of the predicate. 1829 // Create an IndexedAnswers as the only clause of the predicate.
1830 _predicatesStore[nameArity] = (clauses = new List<IClause>()); 1830 _predicatesStore[nameArity] = (clauses = new List<IClause>());
1831 clauses.Add(indexedAnswers = new IndexedAnswers(values.Length)); 1831 clauses.Add(indexedAnswers = new IndexedAnswers(values.Length));
1832 } 1832 }
@@ -1855,7 +1855,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1855 { 1855 {
1856 List<IClause> clauses; 1856 List<IClause> clauses;
1857 if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) 1857 if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses))
1858 return unknownPredicate(name, arguments.Length, 1858 return unknownPredicate(name, arguments.Length,
1859 "Undefined dynamic predicate: " + name + "/" + arguments.Length); 1859 "Undefined dynamic predicate: " + name + "/" + arguments.Length);
1860 1860
1861 if (clauses.Count == 1) 1861 if (clauses.Count == 1)
@@ -1889,7 +1889,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1889 } 1889 }
1890 1890
1891 /// <summary> 1891 /// <summary>
1892 /// If _prologFlags["unknown"] is fail then return fail(), else if 1892 /// If _prologFlags["unknown"] is fail then return fail(), else if
1893 /// _prologFlags["unknown"] is warning then write the message to YP.write and 1893 /// _prologFlags["unknown"] is warning then write the message to YP.write and
1894 /// return fail(), else throw a PrologException for existence_error. . 1894 /// return fail(), else throw a PrologException for existence_error. .
1895 /// </summary> 1895 /// </summary>
@@ -1917,7 +1917,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
1917 } 1917 }
1918 1918
1919 /// <summary> 1919 /// <summary>
1920 /// This is deprecated and just calls matchDynamic. This matches all clauses, 1920 /// This is deprecated and just calls matchDynamic. This matches all clauses,
1921 /// not just the ones defined with assertFact. 1921 /// not just the ones defined with assertFact.
1922 /// </summary> 1922 /// </summary>
1923 /// <param name="name"></param> 1923 /// <param name="name"></param>
@@ -2066,7 +2066,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2066 /// dynamic predicate. 2066 /// dynamic predicate.
2067 /// </summary> 2067 /// </summary>
2068 /// <param name="NameSlashArity"></param> 2068 /// <param name="NameSlashArity"></param>
2069 /// <param name="declaringClass">if not null, used to resolve references to the default 2069 /// <param name="declaringClass">if not null, used to resolve references to the default
2070 /// module Atom.a("")</param> 2070 /// module Atom.a("")</param>
2071 /// <returns></returns> 2071 /// <returns></returns>
2072 public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass) 2072 public static IEnumerable<bool> current_predicate(object NameSlashArity, Type declaringClass)
@@ -2078,7 +2078,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2078 Functor2 NameArityFunctor = NameSlashArity as Functor2; 2078 Functor2 NameArityFunctor = NameSlashArity as Functor2;
2079 if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH)) 2079 if (!(NameArityFunctor != null && NameArityFunctor._name == Atom.SLASH))
2080 throw new PrologException 2080 throw new PrologException
2081 (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity), 2081 (new Functor2("type_error", Atom.a("predicate_indicator"), NameSlashArity),
2082 "Must be a name/arity predicate indicator"); 2082 "Must be a name/arity predicate indicator");
2083 object name = YP.getValue(NameArityFunctor._arg1); 2083 object name = YP.getValue(NameArityFunctor._arg1);
2084 object arity = YP.getValue(NameArityFunctor._arg2); 2084 object arity = YP.getValue(NameArityFunctor._arg2);
@@ -2163,12 +2163,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2163 } 2163 }
2164 2164
2165 /// <summary> 2165 /// <summary>
2166 /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from 2166 /// If Goal is a simple predicate, call YP.getFunctorName(Goal) using arguments from
2167 /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error. 2167 /// YP.getFunctorArgs(Goal). If not found, this throws a PrologException for existence_error.
2168 /// Otherwise, compile the goal as a single clause predicate and invoke it. 2168 /// Otherwise, compile the goal as a single clause predicate and invoke it.
2169 /// </summary> 2169 /// </summary>
2170 /// <param name="Goal"></param> 2170 /// <param name="Goal"></param>
2171 /// <param name="declaringClass">if not null, used to resolve references to the default 2171 /// <param name="declaringClass">if not null, used to resolve references to the default
2172 /// module Atom.a("")</param> 2172 /// module Atom.a("")</param>
2173 /// <returns></returns> 2173 /// <returns></returns>
2174 public static IEnumerable<bool> getIterator(object Goal, Type declaringClass) 2174 public static IEnumerable<bool> getIterator(object Goal, Type declaringClass)
@@ -2259,7 +2259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2259 (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom"); 2259 (new Functor2("type_error", Atom.a("atom"), Key), "Arg 1 Key is not an atom");
2260 if (!_prologFlags.ContainsKey(((Atom)Key)._name)) 2260 if (!_prologFlags.ContainsKey(((Atom)Key)._name))
2261 throw new PrologException 2261 throw new PrologException
2262 (new Functor2("domain_error", Atom.a("prolog_flag"), Key), 2262 (new Functor2("domain_error", Atom.a("prolog_flag"), Key),
2263 "Arg 1 Key is not a recognized flag"); 2263 "Arg 1 Key is not a recognized flag");
2264 2264
2265 foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name])) 2265 foreach (bool l1 in YP.unify(Value, _prologFlags[((Atom)Key)._name]))
@@ -2343,7 +2343,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2343 string results = ""; 2343 string results = "";
2344 for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch()) 2344 for (Match m = Regex.Match(inData,inPattern); m.Success; m=m.NextMatch())
2345 { 2345 {
2346 //Console.WriteLine( m ); 2346 //Console.WriteLine( m );
2347 results += presep+ m + postsep; 2347 results += presep+ m + postsep;
2348 } 2348 }
2349 return results; 2349 return results;
@@ -2662,7 +2662,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2662 #pragma warning restore 0168 2662 #pragma warning restore 0168
2663 } 2663 }
2664 } 2664 }
2665 2665
2666 /// <summary> 2666 /// <summary>
2667 /// CodeListReader extends TextReader and overrides Read to read the next code from 2667 /// CodeListReader extends TextReader and overrides Read to read the next code from
2668 /// the CodeList which is a Prolog list of integer character codes. 2668 /// the CodeList which is a Prolog list of integer character codes.
@@ -2683,7 +2683,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.YieldProlog
2683 /// <returns></returns> 2683 /// <returns></returns>
2684 public override int Read() 2684 public override int Read()
2685 { 2685 {
2686 Functor2 CodeListPair = _CodeList as Functor2; 2686 Functor2 CodeListPair = _CodeList as Functor2;
2687 int code; 2687 int code;
2688 if (!(CodeListPair != null && CodeListPair._name == Atom.DOT && 2688 if (!(CodeListPair != null && CodeListPair._name == Atom.DOT &&
2689 getInt(CodeListPair._arg1, out code))) 2689 getInt(CodeListPair._arg1, out code)))
diff --git a/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs b/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs
index f9b160d..0f79019 100644
--- a/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/AssemblyResolver.cs
@@ -54,11 +54,11 @@ namespace OpenSim.Region.ScriptEngine.Shared
54 { 54 {
55 string path = Path.Combine(Directory.GetCurrentDirectory(), 55 string path = Path.Combine(Directory.GetCurrentDirectory(),
56 Path.Combine(s, assemblyName))+".dll"; 56 Path.Combine(s, assemblyName))+".dll";
57 57
58 if (File.Exists(path)) 58 if (File.Exists(path))
59 return Assembly.LoadFrom(path); 59 return Assembly.LoadFrom(path);
60 } 60 }
61 61
62 return null; 62 return null;
63 } 63 }
64 } 64 }
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
index 4962023..db90f3e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/Compiler.cs
@@ -412,8 +412,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
412 412
413 private static string CreateYPCompilerScript(string compileScript) 413 private static string CreateYPCompilerScript(string compileScript)
414 { 414 {
415
416
417 compileScript = String.Empty + 415 compileScript = String.Empty +
418 "using OpenSim.Region.ScriptEngine.Shared.YieldProlog; " + 416 "using OpenSim.Region.ScriptEngine.Shared.YieldProlog; " +
419 "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\r\n" + 417 "using OpenSim.Region.ScriptEngine.Shared; using System.Collections.Generic;\r\n" +
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs
index 57e8776..45f92e3 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/LSL2CSConverter.cs
@@ -87,9 +87,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
87 string quote = String.Empty; 87 string quote = String.Empty;
88 bool last_was_escape = false; 88 bool last_was_escape = false;
89 int quote_replaced_count = 0; 89 int quote_replaced_count = 0;
90 90
91 string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";"); 91 string removefwnoncomments = nonCommentFwsl.Replace(Script, "\"\";");
92 92
93 string removecomments = conelinecomments.Replace(removefwnoncomments, ""); 93 string removecomments = conelinecomments.Replace(removefwnoncomments, "");
94 removecomments = cstylecomments.Replace(removecomments, ""); 94 removecomments = cstylecomments.Replace(removecomments, "");
95 string[] localscript = removecomments.Split('"'); 95 string[] localscript = removecomments.Split('"');
@@ -120,7 +120,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
120 // checks for alpha.alpha way of referring to objects in C# 120 // checks for alpha.alpha way of referring to objects in C#
121 // ignores alpha.x alpha.y, alpha.z for refering to vector components 121 // ignores alpha.x alpha.y, alpha.z for refering to vector components
122 Match SecurityM; 122 Match SecurityM;
123 123
124 // BROKEN: this check is very wrong. It block's any url in strings. 124 // BROKEN: this check is very wrong. It block's any url in strings.
125 SecurityM = Regex.Match(checkscript, @"(?:[a-zA-Z])\.(?:[a-rt-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline); 125 SecurityM = Regex.Match(checkscript, @"(?:[a-zA-Z])\.(?:[a-rt-wA-Z]|[a-zA-Z][a-zA-Z])", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
126 126
diff --git a/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs b/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs
index 831b918..22b3742 100644
--- a/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/CodeTools/YP2CSConverter.cs
@@ -61,7 +61,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.CodeTools
61 myCode = myCode.Substring(0, cs_pointer); 61 myCode = myCode.Substring(0, cs_pointer);
62 } 62 }
63 myCode.Replace("//yp", "%YPCode"); 63 myCode.Replace("//yp", "%YPCode");
64 64
65 StringWriter myCS_SW = new StringWriter(); 65 StringWriter myCS_SW = new StringWriter();
66 StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n"); 66 StringReader myCode_SR = new StringReader(" yp_nop_header_nop. \n "+myCode + "\n");
67 67
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index 8326e16..5497e2c 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -1335,22 +1335,22 @@ namespace OpenSim.Region.ScriptEngine.Shared
1335 bool ret = i1.value != i2.value; 1335 bool ret = i1.value != i2.value;
1336 return ret; 1336 return ret;
1337 } 1337 }
1338 1338
1339 static public LSLInteger operator +(LSLInteger i1, int i2) 1339 static public LSLInteger operator +(LSLInteger i1, int i2)
1340 { 1340 {
1341 return new LSLInteger(i1.value + i2); 1341 return new LSLInteger(i1.value + i2);
1342 } 1342 }
1343 1343
1344 static public LSLInteger operator -(LSLInteger i1, int i2) 1344 static public LSLInteger operator -(LSLInteger i1, int i2)
1345 { 1345 {
1346 return new LSLInteger(i1.value - i2); 1346 return new LSLInteger(i1.value - i2);
1347 } 1347 }
1348 1348
1349 static public LSLInteger operator *(LSLInteger i1, int i2) 1349 static public LSLInteger operator *(LSLInteger i1, int i2)
1350 { 1350 {
1351 return new LSLInteger(i1.value * i2); 1351 return new LSLInteger(i1.value * i2);
1352 } 1352 }
1353 1353
1354 static public LSLInteger operator /(LSLInteger i1, int i2) 1354 static public LSLInteger operator /(LSLInteger i1, int i2)
1355 { 1355 {
1356 return new LSLInteger(i1.value / i2); 1356 return new LSLInteger(i1.value / i2);
@@ -1360,22 +1360,22 @@ namespace OpenSim.Region.ScriptEngine.Shared
1360 { 1360 {
1361 return new LSLFloat((double)i1.value + f); 1361 return new LSLFloat((double)i1.value + f);
1362 } 1362 }
1363 1363
1364 static public LSLFloat operator -(LSLInteger i1, double f) 1364 static public LSLFloat operator -(LSLInteger i1, double f)
1365 { 1365 {
1366 return new LSLFloat((double)i1.value - f); 1366 return new LSLFloat((double)i1.value - f);
1367 } 1367 }
1368 1368
1369 static public LSLFloat operator *(LSLInteger i1, double f) 1369 static public LSLFloat operator *(LSLInteger i1, double f)
1370 { 1370 {
1371 return new LSLFloat((double)i1.value * f); 1371 return new LSLFloat((double)i1.value * f);
1372 } 1372 }
1373 1373
1374 static public LSLFloat operator /(LSLInteger i1, double f) 1374 static public LSLFloat operator /(LSLInteger i1, double f)
1375 { 1375 {
1376 return new LSLFloat((double)i1.value / f); 1376 return new LSLFloat((double)i1.value / f);
1377 } 1377 }
1378 1378
1379 static public LSLInteger operator -(LSLInteger i) 1379 static public LSLInteger operator -(LSLInteger i)
1380 { 1380 {
1381 return new LSLInteger(-i.value); 1381 return new LSLInteger(-i.value);
@@ -1536,17 +1536,17 @@ namespace OpenSim.Region.ScriptEngine.Shared
1536 f.value--; 1536 f.value--;
1537 return f; 1537 return f;
1538 } 1538 }
1539 1539
1540 static public LSLFloat operator +(LSLFloat f, int i) 1540 static public LSLFloat operator +(LSLFloat f, int i)
1541 { 1541 {
1542 return new LSLFloat(f.value + (double)i); 1542 return new LSLFloat(f.value + (double)i);
1543 } 1543 }
1544 1544
1545 static public LSLFloat operator -(LSLFloat f, int i) 1545 static public LSLFloat operator -(LSLFloat f, int i)
1546 { 1546 {
1547 return new LSLFloat(f.value - (double)i); 1547 return new LSLFloat(f.value - (double)i);
1548 } 1548 }
1549 1549
1550 static public LSLFloat operator *(LSLFloat f, int i) 1550 static public LSLFloat operator *(LSLFloat f, int i)
1551 { 1551 {
1552 return new LSLFloat(f.value * (double)i); 1552 return new LSLFloat(f.value * (double)i);