diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | 145 |
1 files changed, 45 insertions, 100 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index ea2a551..398e73d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs | |||
@@ -141,9 +141,9 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
141 | return new Vector3(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z); | 141 | return new Vector3(lhs.x - rhs.x, lhs.y - rhs.y, lhs.z - rhs.z); |
142 | } | 142 | } |
143 | 143 | ||
144 | public static Vector3 operator *(Vector3 lhs, Vector3 rhs) | 144 | public static LSLFloat operator *(Vector3 lhs, Vector3 rhs) |
145 | { | 145 | { |
146 | return new Vector3(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z); | 146 | return Dot(lhs, rhs); |
147 | } | 147 | } |
148 | 148 | ||
149 | public static Vector3 operator %(Vector3 v1, Vector3 v2) | 149 | public static Vector3 operator %(Vector3 v1, Vector3 v2) |
@@ -989,22 +989,22 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
989 | // BELOW IS WORK IN PROGRESS... IT WILL CHANGE, SO DON'T USE YET! :) | 989 | // BELOW IS WORK IN PROGRESS... IT WILL CHANGE, SO DON'T USE YET! :) |
990 | // | 990 | // |
991 | 991 | ||
992 | // public struct StringTest | 992 | public struct StringTest |
993 | // { | 993 | { |
994 | // // Our own little string | 994 | // Our own little string |
995 | // internal string actualString; | 995 | internal string actualString; |
996 | // public static implicit operator bool(StringTest mString) | 996 | public static implicit operator bool(StringTest mString) |
997 | // { | 997 | { |
998 | // if (mString.actualString.Length == 0) | 998 | if (mString.actualString.Length == 0) |
999 | // return true; | 999 | return true; |
1000 | // return false; | 1000 | return false; |
1001 | // } | 1001 | } |
1002 | // public override string ToString() | 1002 | public override string ToString() |
1003 | // { | 1003 | { |
1004 | // return actualString; | 1004 | return actualString; |
1005 | // } | 1005 | } |
1006 | // | 1006 | |
1007 | // } | 1007 | } |
1008 | 1008 | ||
1009 | [Serializable] | 1009 | [Serializable] |
1010 | public struct key | 1010 | public struct key |
@@ -1106,11 +1106,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1106 | m_string = s; | 1106 | m_string = s; |
1107 | } | 1107 | } |
1108 | 1108 | ||
1109 | public LSLString(int i) | ||
1110 | { | ||
1111 | m_string=i.ToString(); | ||
1112 | } | ||
1113 | |||
1114 | public LSLString(double d) | 1109 | public LSLString(double d) |
1115 | { | 1110 | { |
1116 | string s=String.Format("{0:0.000000}", d); | 1111 | string s=String.Format("{0:0.000000}", d); |
@@ -1180,11 +1175,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1180 | return new LSLInteger(Convert.ToInt32(s.m_string)); | 1175 | return new LSLInteger(Convert.ToInt32(s.m_string)); |
1181 | } | 1176 | } |
1182 | 1177 | ||
1183 | public static explicit operator LSLString(int i) | ||
1184 | { | ||
1185 | return new LSLString(i); | ||
1186 | } | ||
1187 | |||
1188 | public static explicit operator LSLString(double d) | 1178 | public static explicit operator LSLString(double d) |
1189 | { | 1179 | { |
1190 | return new LSLString(d); | 1180 | return new LSLString(d); |
@@ -1250,19 +1240,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1250 | value = (int)d; | 1240 | value = (int)d; |
1251 | } | 1241 | } |
1252 | 1242 | ||
1253 | public LSLInteger(Object o) | ||
1254 | { | ||
1255 | if (!(o is Int32)) | ||
1256 | value = 0; | ||
1257 | else | ||
1258 | value = (int)o; | ||
1259 | } | ||
1260 | |||
1261 | public LSLInteger(string s) | ||
1262 | { | ||
1263 | value = int.Parse(s); | ||
1264 | } | ||
1265 | |||
1266 | #endregion | 1243 | #endregion |
1267 | 1244 | ||
1268 | #region Operators | 1245 | #region Operators |
@@ -1282,11 +1259,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1282 | return new LSLString(i.ToString()); | 1259 | return new LSLString(i.ToString()); |
1283 | } | 1260 | } |
1284 | 1261 | ||
1285 | static public explicit operator string(LSLInteger i) | ||
1286 | { | ||
1287 | return i.ToString(); | ||
1288 | } | ||
1289 | |||
1290 | static public implicit operator Boolean(LSLInteger i) | 1262 | static public implicit operator Boolean(LSLInteger i) |
1291 | { | 1263 | { |
1292 | if (i.value == 0) | 1264 | if (i.value == 0) |
@@ -1376,6 +1348,18 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1376 | return new LSLInteger(-i.value); | 1348 | return new LSLInteger(-i.value); |
1377 | } | 1349 | } |
1378 | 1350 | ||
1351 | public override bool Equals(Object o) | ||
1352 | { | ||
1353 | if (!(o is LSLInteger)) | ||
1354 | return false; | ||
1355 | return value == ((LSLInteger)o).value; | ||
1356 | } | ||
1357 | |||
1358 | public override int GetHashCode() | ||
1359 | { | ||
1360 | return value; | ||
1361 | } | ||
1362 | |||
1379 | static public LSLInteger operator &(LSLInteger i1, LSLInteger i2) | 1363 | static public LSLInteger operator &(LSLInteger i1, LSLInteger i2) |
1380 | { | 1364 | { |
1381 | int ret = i1.value & i2.value; | 1365 | int ret = i1.value & i2.value; |
@@ -1400,11 +1384,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1400 | return (double)i.value; | 1384 | return (double)i.value; |
1401 | } | 1385 | } |
1402 | 1386 | ||
1403 | static public implicit operator LSLFloat(LSLInteger i) | ||
1404 | { | ||
1405 | return new LSLFloat((double)i.value); | ||
1406 | } | ||
1407 | |||
1408 | public static bool operator true(LSLInteger i) | 1387 | public static bool operator true(LSLInteger i) |
1409 | { | 1388 | { |
1410 | return i.value != 0; | 1389 | return i.value != 0; |
@@ -1424,24 +1403,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1424 | return this.value.ToString(); | 1403 | return this.value.ToString(); |
1425 | } | 1404 | } |
1426 | 1405 | ||
1427 | public override bool Equals(object o) | ||
1428 | { | ||
1429 | if (o is Int32) | ||
1430 | { | ||
1431 | return value == (Int32)o; | ||
1432 | } | ||
1433 | if (o is LSLInteger) | ||
1434 | { | ||
1435 | return value == ((LSLInteger)o).value; | ||
1436 | } | ||
1437 | return false; | ||
1438 | } | ||
1439 | |||
1440 | public override int GetHashCode() | ||
1441 | { | ||
1442 | return value.GetHashCode(); | ||
1443 | } | ||
1444 | |||
1445 | #endregion | 1406 | #endregion |
1446 | } | 1407 | } |
1447 | 1408 | ||
@@ -1454,28 +1415,12 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1454 | 1415 | ||
1455 | public LSLFloat(int i) | 1416 | public LSLFloat(int i) |
1456 | { | 1417 | { |
1457 | value = (double)i; | 1418 | this.value = (double)i; |
1458 | } | 1419 | } |
1459 | 1420 | ||
1460 | public LSLFloat(double d) | 1421 | public LSLFloat(double d) |
1461 | { | 1422 | { |
1462 | value = d; | 1423 | this.value = d; |
1463 | } | ||
1464 | |||
1465 | public LSLFloat(string s) | ||
1466 | { | ||
1467 | value = double.Parse(s); | ||
1468 | } | ||
1469 | |||
1470 | public LSLFloat(Object o) | ||
1471 | { | ||
1472 | if (!((o is double) || (o is float))) | ||
1473 | { | ||
1474 | value = 0.0; | ||
1475 | return; | ||
1476 | } | ||
1477 | |||
1478 | value = (double)o; | ||
1479 | } | 1424 | } |
1480 | 1425 | ||
1481 | #endregion | 1426 | #endregion |
@@ -1534,19 +1479,6 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1534 | return f1.value != f2.value; | 1479 | return f1.value != f2.value; |
1535 | } | 1480 | } |
1536 | 1481 | ||
1537 | public override bool Equals(Object o) | ||
1538 | { | ||
1539 | if (!(o is LSLFloat)) | ||
1540 | return false; | ||
1541 | |||
1542 | return value == ((LSLFloat)o).value; | ||
1543 | } | ||
1544 | |||
1545 | public override int GetHashCode() | ||
1546 | { | ||
1547 | return (int)value; | ||
1548 | } | ||
1549 | |||
1550 | static public LSLFloat operator ++(LSLFloat f) | 1482 | static public LSLFloat operator ++(LSLFloat f) |
1551 | { | 1483 | { |
1552 | f.value++; | 1484 | f.value++; |
@@ -1618,6 +1550,19 @@ namespace OpenSim.Region.ScriptEngine.Shared | |||
1618 | return String.Format("{0:0.000000}", this.value); | 1550 | return String.Format("{0:0.000000}", this.value); |
1619 | } | 1551 | } |
1620 | 1552 | ||
1553 | public override bool Equals(Object o) | ||
1554 | { | ||
1555 | if (!(o is LSLFloat)) | ||
1556 | return false; | ||
1557 | return value == ((LSLFloat)o).value; | ||
1558 | } | ||
1559 | |||
1560 | public override int GetHashCode() | ||
1561 | { | ||
1562 | return Convert.ToInt32(value); | ||
1563 | } | ||
1564 | |||
1565 | |||
1621 | #endregion | 1566 | #endregion |
1622 | } | 1567 | } |
1623 | } | 1568 | } |