aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared
diff options
context:
space:
mode:
authorMike Mazur2008-07-31 07:11:41 +0000
committerMike Mazur2008-07-31 07:11:41 +0000
commit57ec7a26cda361eeac9d7f010194cfe0dfa6c281 (patch)
treeeb8bb3680e3cb7db5449c3703835e6454e43ebbb /OpenSim/Region/ScriptEngine/Shared
parentAllow assignments in if/while/do-while control statements. Fix issue 1862. (diff)
downloadopensim-SC-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.zip
opensim-SC-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.tar.gz
opensim-SC-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.tar.bz2
opensim-SC-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.tar.xz
-make ZERO_VECTOR and ZERO_ROTATION static readonly properties so they can be
used in scripts -cast from bool to LSL{Integer,Float,String} so functions such as `integer isZero(integer x) { return (x == 0); }` work -progress on issue 1863
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs4
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs24
2 files changed, 26 insertions, 2 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
index f02e970..fd9e1aa 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs
@@ -416,8 +416,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
416 public const int OBJECT_CREATOR = 8; 416 public const int OBJECT_CREATOR = 8;
417 417
418 // Can not be public const? 418 // Can not be public const?
419 public vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0); 419 public static readonly vector ZERO_VECTOR = new vector(0.0, 0.0, 0.0);
420 public rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0); 420 public static readonly rotation ZERO_ROTATION = new rotation(0.0, 0, 0.0, 1.0);
421 421
422 } 422 }
423} 423}
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index 25f6957..d15aa81 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -1186,6 +1186,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
1186 return new LSLString(f); 1186 return new LSLString(f);
1187 } 1187 }
1188 1188
1189 static public explicit operator LSLString(bool b)
1190 {
1191 if (b)
1192 return new LSLString("1");
1193 else
1194 return new LSLString("0");
1195 }
1196
1189 public static implicit operator Vector3(LSLString s) 1197 public static implicit operator Vector3(LSLString s)
1190 { 1198 {
1191 return new Vector3(s.m_string); 1199 return new Vector3(s.m_string);
@@ -1303,6 +1311,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
1303 return new LSLInteger(f.value); 1311 return new LSLInteger(f.value);
1304 } 1312 }
1305 1313
1314 static public implicit operator LSLInteger(bool b)
1315 {
1316 if (b)
1317 return new LSLInteger(1);
1318 else
1319 return new LSLInteger(0);
1320 }
1321
1306 static public bool operator ==(LSLInteger i1, LSLInteger i2) 1322 static public bool operator ==(LSLInteger i1, LSLInteger i2)
1307 { 1323 {
1308 bool ret = i1.value == i2.value; 1324 bool ret = i1.value == i2.value;
@@ -1481,6 +1497,14 @@ namespace OpenSim.Region.ScriptEngine.Shared
1481 return new LSLFloat(d); 1497 return new LSLFloat(d);
1482 } 1498 }
1483 1499
1500 static public implicit operator LSLFloat(bool b)
1501 {
1502 if (b)
1503 return new LSLFloat(1.0);
1504 else
1505 return new LSLFloat(0.0);
1506 }
1507
1484 static public bool operator ==(LSLFloat f1, LSLFloat f2) 1508 static public bool operator ==(LSLFloat f1, LSLFloat f2)
1485 { 1509 {
1486 return f1.value == f2.value; 1510 return f1.value == f2.value;