aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs')
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs11
1 files changed, 8 insertions, 3 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
index 1ea52c5..91e03ac 100644
--- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs
@@ -262,7 +262,12 @@ namespace OpenSim.Region.ScriptEngine.Shared
262 public static Vector3 Norm(Vector3 vector) 262 public static Vector3 Norm(Vector3 vector)
263 { 263 {
264 double mag = Mag(vector); 264 double mag = Mag(vector);
265 return new Vector3(vector.x / mag, vector.y / mag, vector.z / mag); 265 if (mag > 0.0)
266 {
267 double invMag = 1.0 / mag;
268 return vector * invMag;
269 }
270 return new Vector3(0, 0, 0);
266 } 271 }
267 272
268 #endregion 273 #endregion
@@ -663,13 +668,13 @@ namespace OpenSim.Region.ScriptEngine.Shared
663 Object[] ret; 668 Object[] ret;
664 669
665 if (start < 0) 670 if (start < 0)
666 start=m_data.Length-start; 671 start=m_data.Length+start;
667 672
668 if (start < 0) 673 if (start < 0)
669 start=0; 674 start=0;
670 675
671 if (end < 0) 676 if (end < 0)
672 end=m_data.Length-end; 677 end=m_data.Length+end;
673 if (end < 0) 678 if (end < 0)
674 end=0; 679 end=0;
675 680