diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index 0f7d039..0efdd77 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5464,15 +5464,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5464 | 5464 | ||
5465 | Vector3 p0 = new Vector3(pos.X, pos.Y, | 5465 | Vector3 p0 = new Vector3(pos.X, pos.Y, |
5466 | (float)llGround( | 5466 | (float)llGround( |
5467 | new LSL_Vector(pos.X, pos.Y, pos.Z) | 5467 | new LSL_Vector(offset.x, offset.y, offset.z) |
5468 | )); | 5468 | )); |
5469 | Vector3 p1 = new Vector3(pos.X + 1, pos.Y, | 5469 | Vector3 p1 = new Vector3(pos.X + 1, pos.Y, |
5470 | (float)llGround( | 5470 | (float)llGround( |
5471 | new LSL_Vector(pos.X + 1, pos.Y, pos.Z) | 5471 | new LSL_Vector(offset.x + 1, offset.y, offset.z) |
5472 | )); | 5472 | )); |
5473 | Vector3 p2 = new Vector3(pos.X, pos.Y + 1, | 5473 | Vector3 p2 = new Vector3(pos.X, pos.Y + 1, |
5474 | (float)llGround( | 5474 | (float)llGround( |
5475 | new LSL_Vector(pos.X, pos.Y + 1, pos.Z) | 5475 | new LSL_Vector(offset.x, offset.y + 1, offset.z) |
5476 | )); | 5476 | )); |
5477 | 5477 | ||
5478 | Vector3 v0 = new Vector3(p1.X - p0.X, p1.Y - p0.Y, p1.Z - p0.Z); | 5478 | Vector3 v0 = new Vector3(p1.X - p0.X, p1.Y - p0.Y, p1.Z - p0.Z); |
@@ -5485,6 +5485,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5485 | tv.X = (v0.Y * v1.Z) - (v0.Z * v1.Y); | 5485 | tv.X = (v0.Y * v1.Z) - (v0.Z * v1.Y); |
5486 | tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z); | 5486 | tv.Y = (v0.Z * v1.X) - (v0.X * v1.Z); |
5487 | tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X); | 5487 | tv.Z = (v0.X * v1.Y) - (v0.Y * v1.X); |
5488 | if ((tv.X == 0) && (tv.Y == 0)) | ||
5489 | tv.Z = 0; | ||
5488 | 5490 | ||
5489 | return new LSL_Vector(tv.X, tv.Y, tv.Z); | 5491 | return new LSL_Vector(tv.X, tv.Y, tv.Z); |
5490 | } | 5492 | } |