diff options
author | Mike Mazur | 2008-07-31 07:11:41 +0000 |
---|---|---|
committer | Mike Mazur | 2008-07-31 07:11:41 +0000 |
commit | 57ec7a26cda361eeac9d7f010194cfe0dfa6c281 (patch) | |
tree | eb8bb3680e3cb7db5449c3703835e6454e43ebbb /OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | |
parent | Allow assignments in if/while/do-while control statements. Fix issue 1862. (diff) | |
download | opensim-SC_OLD-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.zip opensim-SC_OLD-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.tar.gz opensim-SC_OLD-57ec7a26cda361eeac9d7f010194cfe0dfa6c281.tar.bz2 opensim-SC_OLD-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/LSL_Types.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 24 |
1 files changed, 24 insertions, 0 deletions
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; |