From c2dfa4860400713ff0602a76d742040fe74f4165 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Wed, 21 Sep 2016 14:18:14 +0100 Subject: [PATCH] missing file --- .../Region/ScriptEngine/Shared/LSL_Types.cs | 67 +++++++++++-------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs index dfe05492c0..20c45adb48 100644 --- a/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Shared/LSL_Types.cs @@ -562,7 +562,7 @@ namespace OpenSim.Region.ScriptEngine.Shared else if (o is LSL_Types.LSLString) size += ((LSL_Types.LSLString)o).m_string == null ? 0 : ((LSL_Types.LSLString)o).m_string.Length; else if (o is LSL_Types.key) - size += ((LSL_Types.key)o).value.Length; + size += ((LSL_Types.key)o).m_string.Length; else if (o is LSL_Types.Vector3) size += 32; else if (o is LSL_Types.Quaternion) @@ -653,7 +653,7 @@ namespace OpenSim.Region.ScriptEngine.Shared { if (Data[itemIndex] is LSL_Types.key) { - return (LSL_Types.key)Data[itemIndex]; + return (LSL_Types.LSLString)Data[itemIndex]; } else { @@ -661,6 +661,18 @@ namespace OpenSim.Region.ScriptEngine.Shared } } + public LSL_Types.key GetLSLKeyItem(int itemIndex) + { + if (Data[itemIndex] is LSL_Types.key) + { + return (LSL_Types.key)Data[itemIndex]; + } + else + { + return new LSL_Types.key(Data[itemIndex].ToString()); + } + } + public LSL_Types.LSLInteger GetLSLIntegerItem(int itemIndex) { if (Data[itemIndex] is LSL_Types.LSLInteger) @@ -986,7 +998,7 @@ namespace OpenSim.Region.ScriptEngine.Shared { key l = (key)left; key r = (key)right; - ret = String.CompareOrdinal(l.value, r.value); + ret = String.CompareOrdinal(l.m_string, r.m_string); } else if (left is LSLString) { @@ -1415,27 +1427,27 @@ namespace OpenSim.Region.ScriptEngine.Shared [Serializable] public struct key { - public string value; + public string m_string; #region Constructors public key(string s) { - value = s; + m_string = s; } public key(LSLString s) { - value = s.m_string; + m_string = s.m_string; } public key(UUID val) { - value = val.ToString(); + m_string = val.ToString(); } public key(key val) { - value = val.value; + m_string = val.m_string; } #endregion @@ -1448,19 +1460,18 @@ namespace OpenSim.Region.ScriptEngine.Shared static public implicit operator Boolean(key k) { - if (String.IsNullOrEmpty(k.value)) + if (String.IsNullOrEmpty(k.m_string)) return false; - int len = k.value.Length; - if((k.value[0] == '{' && len != 38) || (len != 36 && len != 32)) + int len = k.m_string.Length; + if(len != 36 && len != 32) return false; - if (k.value == "00000000-0000-0000-0000-000000000000") - { + if (k.m_string == "00000000-0000-0000-0000-000000000000") return false; - } + Regex isuuid = new Regex(@"^[0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12}$", RegexOptions.Compiled); - if (isuuid.IsMatch(k.value)) + if (isuuid.IsMatch(k.m_string)) { return true; } @@ -1494,32 +1505,34 @@ namespace OpenSim.Region.ScriptEngine.Shared { return new key(id); } - + // warning some funtions have versions for string and UUID paramenters + // a cast must be used on those + // like GetSceneObjectPart() static public implicit operator string(key k) { - return k.value; + return k.m_string; } static public implicit operator LSLString(key k) { - return new LSLString(k.value); + return new LSLString(k.m_string); } static public implicit operator UUID(key k) { UUID uuid; - if(!UUID.TryParse(k, out uuid)) - return UUID.Zero; + UUID.TryParse(k, out uuid); return uuid; } - + public static bool operator ==(key k1, key k2) { - return k1.value == k2.value; + return (k1.m_string == k2.m_string); } + public static bool operator !=(key k1, key k2) { - return k1.value != k2.value; + return (k1.m_string != k2.m_string); } #endregion @@ -1528,17 +1541,17 @@ namespace OpenSim.Region.ScriptEngine.Shared public override bool Equals(object o) { - return o.ToString() == value; + return (m_string == o.ToString()); } public override int GetHashCode() { - return value.GetHashCode(); + return m_string.GetHashCode(); } public override string ToString() { - return value; + return m_string; } #endregion @@ -1649,6 +1662,7 @@ namespace OpenSim.Region.ScriptEngine.Shared { return new LSLString(d); } + static public explicit operator LSLString(int i) { @@ -1713,7 +1727,6 @@ namespace OpenSim.Region.ScriptEngine.Shared public int IndexOf(string value) { return m_string.IndexOf(value); } public int Length { get { return m_string.Length; } } - #endregion }