diff options
3 files changed, 56 insertions, 37 deletions
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index ee5d52c..a33fe0f 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -3989,7 +3989,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
3989 | break; | 3989 | break; |
3990 | 3990 | ||
3991 | case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_PATTERN: | 3991 | case (int)BuiltIn_Commands_BaseClass.PSYS_SRC_PATTERN: |
3992 | int tmpi = (int)rules.Data[i + 1]; | 3992 | int tmpi = int.Parse(rules.Data[i + 1].ToString()); |
3993 | prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi; | 3993 | prules.Pattern = (Primitive.ParticleSystem.SourcePattern)tmpi; |
3994 | break; | 3994 | break; |
3995 | 3995 | ||
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs index 5337d7f..edd16a7 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs | |||
@@ -704,6 +704,37 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
704 | } | 704 | } |
705 | return ret; | 705 | return ret; |
706 | } | 706 | } |
707 | |||
708 | private string ToSoup() | ||
709 | { | ||
710 | string output; | ||
711 | output = String.Empty; | ||
712 | if (m_data.Length == 0) | ||
713 | { | ||
714 | return String.Empty; | ||
715 | } | ||
716 | foreach (object o in m_data) | ||
717 | { | ||
718 | output = output + o.ToString(); | ||
719 | } | ||
720 | return output; | ||
721 | } | ||
722 | |||
723 | public static explicit operator String(list l) | ||
724 | { | ||
725 | return l.ToSoup(); | ||
726 | } | ||
727 | |||
728 | public static explicit operator LSLString(list l) | ||
729 | { | ||
730 | return new LSLString(l.ToSoup()); | ||
731 | } | ||
732 | |||
733 | public override string ToString() | ||
734 | { | ||
735 | return ToSoup(); | ||
736 | } | ||
737 | |||
707 | #endregion | 738 | #endregion |
708 | 739 | ||
709 | #region Statistic Methods | 740 | #region Statistic Methods |
@@ -935,36 +966,6 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
935 | } | 966 | } |
936 | } | 967 | } |
937 | 968 | ||
938 | public override string ToString() | ||
939 | { | ||
940 | string output; | ||
941 | output = String.Empty; | ||
942 | if (m_data.Length == 0) | ||
943 | { | ||
944 | return String.Empty; | ||
945 | } | ||
946 | foreach (object o in m_data) | ||
947 | { | ||
948 | output = output + o.ToString(); | ||
949 | } | ||
950 | return output; | ||
951 | |||
952 | } | ||
953 | |||
954 | public static explicit operator string(list l) | ||
955 | { | ||
956 | string output; | ||
957 | output = String.Empty; | ||
958 | if (l.m_data.Length == 0) | ||
959 | { | ||
960 | return String.Empty; | ||
961 | } | ||
962 | foreach (object o in l.m_data) | ||
963 | { | ||
964 | output = output + o.ToString(); | ||
965 | } | ||
966 | return output; | ||
967 | } | ||
968 | } | 969 | } |
969 | 970 | ||
970 | // | 971 | // |
@@ -1200,11 +1201,17 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1200 | } | 1201 | } |
1201 | 1202 | ||
1202 | #endregion | 1203 | #endregion |
1203 | static public implicit operator Int32(LSLInteger i) | 1204 | |
1205 | static public implicit operator int(LSLInteger i) | ||
1204 | { | 1206 | { |
1205 | return i.value; | 1207 | return i.value; |
1206 | } | 1208 | } |
1207 | 1209 | ||
1210 | static public implicit operator uint(LSLInteger i) | ||
1211 | { | ||
1212 | return (uint)i.value; | ||
1213 | } | ||
1214 | |||
1208 | static public explicit operator LSLString(LSLInteger i) | 1215 | static public explicit operator LSLString(LSLInteger i) |
1209 | { | 1216 | { |
1210 | return new LSLString(i.ToString()); | 1217 | return new LSLString(i.ToString()); |
@@ -1255,10 +1262,10 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
1255 | return i; | 1262 | return i; |
1256 | } | 1263 | } |
1257 | 1264 | ||
1258 | //static public implicit operator System.Double(LSLInteger i) | 1265 | static public implicit operator System.Double(LSLInteger i) |
1259 | //{ | 1266 | { |
1260 | // return (double)i.value; | 1267 | return (double)i.value; |
1261 | //} | 1268 | } |
1262 | 1269 | ||
1263 | #region Overriders | 1270 | #region Overriders |
1264 | 1271 | ||
diff --git a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs index 30b3e8f..1b1a5fa 100644 --- a/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs +++ b/OpenSim/Region/ScriptEngine/Common/ScriptEngineBase/EventQueueThreadClass.cs | |||
@@ -295,7 +295,19 @@ namespace OpenSim.Region.ScriptEngine.Common.ScriptEngineBase | |||
295 | if (e.InnerException != null) | 295 | if (e.InnerException != null) |
296 | { | 296 | { |
297 | // Send inner exception | 297 | // Send inner exception |
298 | text += e.InnerException.Message.ToString(); | 298 | string[] lines=e.InnerException.ToString().Replace("\r", "").Split('\n'); |
299 | int line=0; | ||
300 | foreach(string t in lines) | ||
301 | { | ||
302 | int idx=t.IndexOf("SecondLife.Script."); | ||
303 | if(idx != -1) | ||
304 | { | ||
305 | int colon=t.IndexOf(":"); | ||
306 | line=Convert.ToInt32(t.Substring(colon+1)); | ||
307 | break; | ||
308 | } | ||
309 | } | ||
310 | text += e.InnerException.Message.ToString()+" in line "+line.ToString(); | ||
299 | } | 311 | } |
300 | else | 312 | else |
301 | { | 313 | { |