From afea5f22055fd645e95c4e1dcad01e68716fa049 Mon Sep 17 00:00:00 2001
From: Sean Dague
Date: Thu, 13 Sep 2007 11:41:42 +0000
Subject: remove ^M, as native storage should be UNIX format, and ^M in/out
mashing will happen on the windows side now that eol-style is correct
---
.../ScriptEngine/DotNetEngine/AppDomainManager.cs | 394 ++---
OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs | 118 +-
.../DotNetEngine/Compiler/LSL/Compiler.cs | 226 +--
.../DotNetEngine/Compiler/LSL/LSL2CSConverter.cs | 530 +++----
.../DotNetEngine/Compiler/LSL/LSL_BaseClass.cs | 1566 ++++++++++----------
.../DotNetEngine/Compiler/LSO/Common.cs | 168 +--
.../DotNetEngine/Compiler/LSO/Engine.cs | 600 ++++----
.../Compiler/LSO/IL_common_functions.cs | 112 +-
.../DotNetEngine/Compiler/LSO/LSL_BaseClass.cs | 120 +-
.../Compiler/LSO/LSL_BaseClass_Builtins.cs | 746 +++++-----
.../Compiler/LSO/LSL_BaseClass_OPCODES.cs | 700 ++++-----
.../DotNetEngine/Compiler/LSO/LSL_CLRInterface.cs | 158 +-
.../Compiler/LSO/LSL_OPCODE_IL_processor.cs | 872 +++++------
.../DotNetEngine/Compiler/LSO/LSO_Enums.cs | 1114 +++++++-------
.../DotNetEngine/Compiler/LSO/LSO_Parser.cs | 1444 +++++++++---------
.../DotNetEngine/Compiler/LSO/LSO_Struct.cs | 270 ++--
.../Compiler/Server_API/LSL_BuiltIn_Commands.cs | 1540 +++++++++----------
.../ScriptEngine/DotNetEngine/EventManager.cs | 262 ++--
.../ScriptEngine/DotNetEngine/EventQueueManager.cs | 642 ++++----
.../ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs | 296 ++--
.../DotNetEngine/Properties/AssemblyInfo.cs | 70 +-
.../ScriptEngine/DotNetEngine/ScriptEngine.cs | 264 ++--
.../ScriptEngine/DotNetEngine/ScriptManager.cs | 816 +++++-----
.../TempDotNetMicroThreadingCodeInjector.cs | 90 +-
24 files changed, 6559 insertions(+), 6559 deletions(-)
(limited to 'OpenSim/Region/ScriptEngine/DotNetEngine')
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs
index 96670f1..b0b4662 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/AppDomainManager.cs
@@ -1,197 +1,197 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Reflection;
-using System.Threading;
-using System.Runtime.Remoting;
-using System.IO;
-using OpenSim.Region.Environment.Scenes;
-using OpenSim.Region.Environment.Scenes.Scripting;
-using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL;
-using OpenSim.Region.ScriptEngine.Common;
-using libsecondlife;
-
-namespace OpenSim.Region.ScriptEngine.DotNetEngine
-{
- public class AppDomainManager
- {
- private int maxScriptsPerAppDomain = 1;
- ///
- /// Internal list of all AppDomains
- ///
- private List appDomains = new List();
- ///
- /// Structure to keep track of data around AppDomain
- ///
- private class AppDomainStructure
- {
- ///
- /// The AppDomain itself
- ///
- public AppDomain CurrentAppDomain;
- ///
- /// Number of scripts loaded into AppDomain
- ///
- public int ScriptsLoaded;
- ///
- /// Number of dead scripts
- ///
- public int ScriptsWaitingUnload;
- }
- ///
- /// Current AppDomain
- ///
- private AppDomainStructure currentAD;
- private object getLock = new object(); // Mutex
- private object freeLock = new object(); // Mutex
-
- //private ScriptEngine m_scriptEngine;
- //public AppDomainManager(ScriptEngine scriptEngine)
- public AppDomainManager()
- {
- //m_scriptEngine = scriptEngine;
- }
-
- ///
- /// Find a free AppDomain, creating one if necessary
- ///
- /// Free AppDomain
- private AppDomainStructure GetFreeAppDomain()
- {
- Console.WriteLine("Finding free AppDomain");
- lock (getLock)
- {
- // Current full?
- if (currentAD != null && currentAD.ScriptsLoaded >= maxScriptsPerAppDomain)
- {
- // Add it to AppDomains list and empty current
- appDomains.Add(currentAD);
- currentAD = null;
- }
- // No current
- if (currentAD == null)
- {
- // Create a new current AppDomain
- currentAD = new AppDomainStructure();
- currentAD.CurrentAppDomain = PrepareNewAppDomain();
- }
-
- Console.WriteLine("Scripts loaded in this Appdomain: " + currentAD.ScriptsLoaded);
- return currentAD;
- } // lock
- }
-
- private int AppDomainNameCount;
- ///
- /// Create and prepare a new AppDomain for scripts
- ///
- /// The new AppDomain
- private AppDomain PrepareNewAppDomain()
- {
- // Create and prepare a new AppDomain
- AppDomainNameCount++;
- // TODO: Currently security match current appdomain
-
- // Construct and initialize settings for a second AppDomain.
- AppDomainSetup ads = new AppDomainSetup();
- ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
- ads.DisallowBindingRedirects = false;
- ads.DisallowCodeDownload = true;
- ads.ShadowCopyFiles = "true"; // Enabled shadowing
- ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
-
- AppDomain AD = AppDomain.CreateDomain("ScriptAppDomain_" + AppDomainNameCount, null, ads);
-
- // Return the new AppDomain
- return AD;
-
- }
-
- ///
- /// Unload appdomains that are full and have only dead scripts
- ///
- private void UnloadAppDomains()
- {
- lock (freeLock)
- {
- // Go through all
- foreach (AppDomainStructure ads in new System.Collections.ArrayList(appDomains))
- {
- // Don't process current AppDomain
- if (ads.CurrentAppDomain != currentAD.CurrentAppDomain)
- {
- // Not current AppDomain
- // Is number of unloaded bigger or equal to number of loaded?
- if (ads.ScriptsLoaded <= ads.ScriptsWaitingUnload)
- {
- Console.WriteLine("Found empty AppDomain, unloading");
- // Remove from internal list
- appDomains.Remove(ads);
-#if DEBUG
- long m = GC.GetTotalMemory(true);
-#endif
- // Unload
- AppDomain.Unload(ads.CurrentAppDomain);
-#if DEBUG
- Console.WriteLine("AppDomain unload freed " + (m - GC.GetTotalMemory(true)) + " bytes of memory");
-#endif
- }
- }
- } // foreach
- } // lock
- }
-
-
-
- public OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass LoadScript(string FileName)
- {
- // Find next available AppDomain to put it in
- AppDomainStructure FreeAppDomain = GetFreeAppDomain();
-
- Console.WriteLine("Loading into AppDomain: " + FileName);
- LSL_BaseClass mbrt = (LSL_BaseClass)FreeAppDomain.CurrentAppDomain.CreateInstanceFromAndUnwrap(FileName, "SecondLife.Script");
- //Console.WriteLine("ScriptEngine AppDomainManager: is proxy={0}", RemotingServices.IsTransparentProxy(mbrt));
- FreeAppDomain.ScriptsLoaded++;
-
- return mbrt;
- }
-
-
- ///
- /// Increase "dead script" counter for an AppDomain
- ///
- ///
- //[Obsolete("Needs fixing, needs a real purpose in life!!!")]
- public void StopScript(AppDomain ad)
- {
- lock (freeLock)
- {
- Console.WriteLine("Stopping script in AppDomain");
- // Check if it is current AppDomain
- if (currentAD.CurrentAppDomain == ad)
- {
- // Yes - increase
- currentAD.ScriptsWaitingUnload++;
- return;
- }
-
- // Lopp through all AppDomains
- foreach (AppDomainStructure ads in new System.Collections.ArrayList(appDomains))
- {
- if (ads.CurrentAppDomain == ad)
- {
- // Found it
- ads.ScriptsWaitingUnload++;
- break;
- }
- } // foreach
- } // lock
-
- UnloadAppDomains(); // Outsite lock, has its own GetLock
-
-
- }
-
-
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Reflection;
+using System.Threading;
+using System.Runtime.Remoting;
+using System.IO;
+using OpenSim.Region.Environment.Scenes;
+using OpenSim.Region.Environment.Scenes.Scripting;
+using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL;
+using OpenSim.Region.ScriptEngine.Common;
+using libsecondlife;
+
+namespace OpenSim.Region.ScriptEngine.DotNetEngine
+{
+ public class AppDomainManager
+ {
+ private int maxScriptsPerAppDomain = 1;
+ ///
+ /// Internal list of all AppDomains
+ ///
+ private List appDomains = new List();
+ ///
+ /// Structure to keep track of data around AppDomain
+ ///
+ private class AppDomainStructure
+ {
+ ///
+ /// The AppDomain itself
+ ///
+ public AppDomain CurrentAppDomain;
+ ///
+ /// Number of scripts loaded into AppDomain
+ ///
+ public int ScriptsLoaded;
+ ///
+ /// Number of dead scripts
+ ///
+ public int ScriptsWaitingUnload;
+ }
+ ///
+ /// Current AppDomain
+ ///
+ private AppDomainStructure currentAD;
+ private object getLock = new object(); // Mutex
+ private object freeLock = new object(); // Mutex
+
+ //private ScriptEngine m_scriptEngine;
+ //public AppDomainManager(ScriptEngine scriptEngine)
+ public AppDomainManager()
+ {
+ //m_scriptEngine = scriptEngine;
+ }
+
+ ///
+ /// Find a free AppDomain, creating one if necessary
+ ///
+ /// Free AppDomain
+ private AppDomainStructure GetFreeAppDomain()
+ {
+ Console.WriteLine("Finding free AppDomain");
+ lock (getLock)
+ {
+ // Current full?
+ if (currentAD != null && currentAD.ScriptsLoaded >= maxScriptsPerAppDomain)
+ {
+ // Add it to AppDomains list and empty current
+ appDomains.Add(currentAD);
+ currentAD = null;
+ }
+ // No current
+ if (currentAD == null)
+ {
+ // Create a new current AppDomain
+ currentAD = new AppDomainStructure();
+ currentAD.CurrentAppDomain = PrepareNewAppDomain();
+ }
+
+ Console.WriteLine("Scripts loaded in this Appdomain: " + currentAD.ScriptsLoaded);
+ return currentAD;
+ } // lock
+ }
+
+ private int AppDomainNameCount;
+ ///
+ /// Create and prepare a new AppDomain for scripts
+ ///
+ /// The new AppDomain
+ private AppDomain PrepareNewAppDomain()
+ {
+ // Create and prepare a new AppDomain
+ AppDomainNameCount++;
+ // TODO: Currently security match current appdomain
+
+ // Construct and initialize settings for a second AppDomain.
+ AppDomainSetup ads = new AppDomainSetup();
+ ads.ApplicationBase = AppDomain.CurrentDomain.BaseDirectory;
+ ads.DisallowBindingRedirects = false;
+ ads.DisallowCodeDownload = true;
+ ads.ShadowCopyFiles = "true"; // Enabled shadowing
+ ads.ConfigurationFile = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
+
+ AppDomain AD = AppDomain.CreateDomain("ScriptAppDomain_" + AppDomainNameCount, null, ads);
+
+ // Return the new AppDomain
+ return AD;
+
+ }
+
+ ///
+ /// Unload appdomains that are full and have only dead scripts
+ ///
+ private void UnloadAppDomains()
+ {
+ lock (freeLock)
+ {
+ // Go through all
+ foreach (AppDomainStructure ads in new System.Collections.ArrayList(appDomains))
+ {
+ // Don't process current AppDomain
+ if (ads.CurrentAppDomain != currentAD.CurrentAppDomain)
+ {
+ // Not current AppDomain
+ // Is number of unloaded bigger or equal to number of loaded?
+ if (ads.ScriptsLoaded <= ads.ScriptsWaitingUnload)
+ {
+ Console.WriteLine("Found empty AppDomain, unloading");
+ // Remove from internal list
+ appDomains.Remove(ads);
+#if DEBUG
+ long m = GC.GetTotalMemory(true);
+#endif
+ // Unload
+ AppDomain.Unload(ads.CurrentAppDomain);
+#if DEBUG
+ Console.WriteLine("AppDomain unload freed " + (m - GC.GetTotalMemory(true)) + " bytes of memory");
+#endif
+ }
+ }
+ } // foreach
+ } // lock
+ }
+
+
+
+ public OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass LoadScript(string FileName)
+ {
+ // Find next available AppDomain to put it in
+ AppDomainStructure FreeAppDomain = GetFreeAppDomain();
+
+ Console.WriteLine("Loading into AppDomain: " + FileName);
+ LSL_BaseClass mbrt = (LSL_BaseClass)FreeAppDomain.CurrentAppDomain.CreateInstanceFromAndUnwrap(FileName, "SecondLife.Script");
+ //Console.WriteLine("ScriptEngine AppDomainManager: is proxy={0}", RemotingServices.IsTransparentProxy(mbrt));
+ FreeAppDomain.ScriptsLoaded++;
+
+ return mbrt;
+ }
+
+
+ ///
+ /// Increase "dead script" counter for an AppDomain
+ ///
+ ///
+ //[Obsolete("Needs fixing, needs a real purpose in life!!!")]
+ public void StopScript(AppDomain ad)
+ {
+ lock (freeLock)
+ {
+ Console.WriteLine("Stopping script in AppDomain");
+ // Check if it is current AppDomain
+ if (currentAD.CurrentAppDomain == ad)
+ {
+ // Yes - increase
+ currentAD.ScriptsWaitingUnload++;
+ return;
+ }
+
+ // Lopp through all AppDomains
+ foreach (AppDomainStructure ads in new System.Collections.ArrayList(appDomains))
+ {
+ if (ads.CurrentAppDomain == ad)
+ {
+ // Found it
+ ads.ScriptsWaitingUnload++;
+ break;
+ }
+ } // foreach
+ } // lock
+
+ UnloadAppDomains(); // Outsite lock, has its own GetLock
+
+
+ }
+
+
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs
index 5722d62..49ce8b8 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs
@@ -1,59 +1,59 @@
-/*
-* Copyright (c) Contributors, http://opensimulator.org/
-* See CONTRIBUTORS.TXT for a full list of copyright holders.
-*
-* Redistribution and use in source and binary forms, with or without
-* modification, are permitted provided that the following conditions are met:
-* * Redistributions of source code must retain the above copyright
-* notice, this list of conditions and the following disclaimer.
-* * Redistributions in binary form must reproduce the above copyright
-* notice, this list of conditions and the following disclaimer in the
-* documentation and/or other materials provided with the distribution.
-* * Neither the name of the OpenSim Project nor the
-* names of its contributors may be used to endorse or promote products
-* derived from this software without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
-* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
-* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
-* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-*/
-/* Original code: Tedd Hansen */
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace OpenSim.Region.ScriptEngine.DotNetEngine
-{
- public static class Common
- {
- static public bool debug = true;
- static public ScriptEngine mySE;
-
- //public delegate void SendToDebugEventDelegate(string Message);
- //public delegate void SendToLogEventDelegate(string Message);
- //static public event SendToDebugEventDelegate SendToDebugEvent;
- //static public event SendToLogEventDelegate SendToLogEvent;
-
- static public void SendToDebug(string Message)
- {
- //if (Debug == true)
- mySE.Log.Verbose("ScriptEngine", "Debug: " + Message);
- //SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
- }
- static public void SendToLog(string Message)
- {
- //if (Debug == true)
- mySE.Log.Verbose("ScriptEngine", "LOG: " + Message);
- //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
- }
- }
-
-}
+/*
+* Copyright (c) Contributors, http://opensimulator.org/
+* See CONTRIBUTORS.TXT for a full list of copyright holders.
+*
+* Redistribution and use in source and binary forms, with or without
+* modification, are permitted provided that the following conditions are met:
+* * Redistributions of source code must retain the above copyright
+* notice, this list of conditions and the following disclaimer.
+* * Redistributions in binary form must reproduce the above copyright
+* notice, this list of conditions and the following disclaimer in the
+* documentation and/or other materials provided with the distribution.
+* * Neither the name of the OpenSim Project nor the
+* names of its contributors may be used to endorse or promote products
+* derived from this software without specific prior written permission.
+*
+* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
+* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
+* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+/* Original code: Tedd Hansen */
+using System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace OpenSim.Region.ScriptEngine.DotNetEngine
+{
+ public static class Common
+ {
+ static public bool debug = true;
+ static public ScriptEngine mySE;
+
+ //public delegate void SendToDebugEventDelegate(string Message);
+ //public delegate void SendToLogEventDelegate(string Message);
+ //static public event SendToDebugEventDelegate SendToDebugEvent;
+ //static public event SendToLogEventDelegate SendToLogEvent;
+
+ static public void SendToDebug(string Message)
+ {
+ //if (Debug == true)
+ mySE.Log.Verbose("ScriptEngine", "Debug: " + Message);
+ //SendToDebugEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
+ }
+ static public void SendToLog(string Message)
+ {
+ //if (Debug == true)
+ mySE.Log.Verbose("ScriptEngine", "LOG: " + Message);
+ //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message);
+ }
+ }
+
+}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
index a488b91..b63a6ce 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs
@@ -1,113 +1,113 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.IO;
-using Microsoft.CSharp;
-using System.CodeDom.Compiler;
-using System.Reflection;
-
-namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
-{
-
- public class Compiler
- {
- private LSL2CSConverter LSL_Converter = new LSL2CSConverter();
- private CSharpCodeProvider codeProvider = new CSharpCodeProvider();
- private static UInt64 scriptCompileCounter = 0;
- //private ICodeCompiler icc = codeProvider.CreateCompiler();
- public string CompileFromFile(string LSOFileName)
- {
- switch (System.IO.Path.GetExtension(LSOFileName).ToLower())
- {
- case ".txt":
- case ".lsl":
- Common.SendToDebug("Source code is LSL, converting to CS");
- return CompileFromLSLText(File.ReadAllText(LSOFileName));
- case ".cs":
- Common.SendToDebug("Source code is CS");
- return CompileFromCSText(File.ReadAllText(LSOFileName));
- default:
- throw new Exception("Unknown script type.");
- }
- }
- ///
- /// Converts script from LSL to CS and calls CompileFromCSText
- ///
- /// LSL script
- /// Filename to .dll assembly
- public string CompileFromLSLText(string Script)
- {
- return CompileFromCSText(LSL_Converter.Convert(Script));
- }
- ///
- /// Compile CS script to .Net assembly (.dll)
- ///
- /// CS script
- /// Filename to .dll assembly
- public string CompileFromCSText(string Script)
- {
-
-
- // Output assembly name
- scriptCompileCounter++;
- string OutFile = Path.Combine("ScriptEngines", "Script_" + scriptCompileCounter + ".dll");
- try
- {
- System.IO.File.Delete(OutFile);
- }
- catch (Exception e)
- {
- Console.WriteLine("Exception attempting to delete old compiled script: " + e.ToString());
- }
- //string OutFile = Path.Combine("ScriptEngines", "SecondLife.Script.dll");
-
- // DEBUG - write source to disk
- try
- {
- File.WriteAllText(Path.Combine("ScriptEngines", "debug_" + Path.GetFileNameWithoutExtension(OutFile) + ".cs"), Script);
- }
- catch { }
-
- // Do actual compile
- System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
- parameters.IncludeDebugInformation = true;
- // Add all available assemblies
- foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
- {
- //Console.WriteLine("Adding assembly: " + asm.Location);
- //parameters.ReferencedAssemblies.Add(asm.Location);
- }
-
- string rootPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
- string rootPathSE = Path.GetDirectoryName(this.GetType().Assembly.Location);
- //Console.WriteLine("Assembly location: " + rootPath);
- parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Common.dll"));
- parameters.ReferencedAssemblies.Add(Path.Combine(rootPathSE, "OpenSim.Region.ScriptEngine.DotNetEngine.dll"));
-
- //parameters.ReferencedAssemblies.Add("OpenSim.Region.Environment");
- parameters.GenerateExecutable = false;
- parameters.OutputAssembly = OutFile;
- parameters.IncludeDebugInformation = false;
- CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, Script);
-
- // Go through errors
- // TODO: Return errors to user somehow
- if (results.Errors.Count > 0)
- {
-
- string errtext = "";
- foreach (CompilerError CompErr in results.Errors)
- {
- errtext += "Line number " + (CompErr.Line - 1) +
- ", Error Number: " + CompErr.ErrorNumber +
- ", '" + CompErr.ErrorText + "'\r\n";
- }
- throw new Exception(errtext);
- }
-
-
- return OutFile;
- }
-
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.IO;
+using Microsoft.CSharp;
+using System.CodeDom.Compiler;
+using System.Reflection;
+
+namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
+{
+
+ public class Compiler
+ {
+ private LSL2CSConverter LSL_Converter = new LSL2CSConverter();
+ private CSharpCodeProvider codeProvider = new CSharpCodeProvider();
+ private static UInt64 scriptCompileCounter = 0;
+ //private ICodeCompiler icc = codeProvider.CreateCompiler();
+ public string CompileFromFile(string LSOFileName)
+ {
+ switch (System.IO.Path.GetExtension(LSOFileName).ToLower())
+ {
+ case ".txt":
+ case ".lsl":
+ Common.SendToDebug("Source code is LSL, converting to CS");
+ return CompileFromLSLText(File.ReadAllText(LSOFileName));
+ case ".cs":
+ Common.SendToDebug("Source code is CS");
+ return CompileFromCSText(File.ReadAllText(LSOFileName));
+ default:
+ throw new Exception("Unknown script type.");
+ }
+ }
+ ///
+ /// Converts script from LSL to CS and calls CompileFromCSText
+ ///
+ /// LSL script
+ /// Filename to .dll assembly
+ public string CompileFromLSLText(string Script)
+ {
+ return CompileFromCSText(LSL_Converter.Convert(Script));
+ }
+ ///
+ /// Compile CS script to .Net assembly (.dll)
+ ///
+ /// CS script
+ /// Filename to .dll assembly
+ public string CompileFromCSText(string Script)
+ {
+
+
+ // Output assembly name
+ scriptCompileCounter++;
+ string OutFile = Path.Combine("ScriptEngines", "Script_" + scriptCompileCounter + ".dll");
+ try
+ {
+ System.IO.File.Delete(OutFile);
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Exception attempting to delete old compiled script: " + e.ToString());
+ }
+ //string OutFile = Path.Combine("ScriptEngines", "SecondLife.Script.dll");
+
+ // DEBUG - write source to disk
+ try
+ {
+ File.WriteAllText(Path.Combine("ScriptEngines", "debug_" + Path.GetFileNameWithoutExtension(OutFile) + ".cs"), Script);
+ }
+ catch { }
+
+ // Do actual compile
+ System.CodeDom.Compiler.CompilerParameters parameters = new CompilerParameters();
+ parameters.IncludeDebugInformation = true;
+ // Add all available assemblies
+ foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
+ {
+ //Console.WriteLine("Adding assembly: " + asm.Location);
+ //parameters.ReferencedAssemblies.Add(asm.Location);
+ }
+
+ string rootPath = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
+ string rootPathSE = Path.GetDirectoryName(this.GetType().Assembly.Location);
+ //Console.WriteLine("Assembly location: " + rootPath);
+ parameters.ReferencedAssemblies.Add(Path.Combine(rootPath, "OpenSim.Region.ScriptEngine.Common.dll"));
+ parameters.ReferencedAssemblies.Add(Path.Combine(rootPathSE, "OpenSim.Region.ScriptEngine.DotNetEngine.dll"));
+
+ //parameters.ReferencedAssemblies.Add("OpenSim.Region.Environment");
+ parameters.GenerateExecutable = false;
+ parameters.OutputAssembly = OutFile;
+ parameters.IncludeDebugInformation = false;
+ CompilerResults results = codeProvider.CompileAssemblyFromSource(parameters, Script);
+
+ // Go through errors
+ // TODO: Return errors to user somehow
+ if (results.Errors.Count > 0)
+ {
+
+ string errtext = "";
+ foreach (CompilerError CompErr in results.Errors)
+ {
+ errtext += "Line number " + (CompErr.Line - 1) +
+ ", Error Number: " + CompErr.ErrorNumber +
+ ", '" + CompErr.ErrorText + "'\r\n";
+ }
+ throw new Exception(errtext);
+ }
+
+
+ return OutFile;
+ }
+
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
index 3adb7e2..c70448b 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs
@@ -1,265 +1,265 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Text.RegularExpressions;
-
-namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
-{
- public class LSL2CSConverter
- {
- //private Regex rnw = new Regex(@"[a-zA-Z0-9_\-]", RegexOptions.Compiled);
- private Dictionary dataTypes = new Dictionary();
- private Dictionary quotes = new Dictionary();
-
- public LSL2CSConverter()
- {
- // Only the types we need to convert
- dataTypes.Add("void", "void");
- dataTypes.Add("integer", "int");
- dataTypes.Add("float", "double");
- dataTypes.Add("string", "string");
- dataTypes.Add("key", "string");
- dataTypes.Add("vector", "LSL_Types.Vector3");
- dataTypes.Add("rotation", "LSL_Types.Quaternion");
- dataTypes.Add("list", "list");
- dataTypes.Add("null", "null");
-
- }
-
- public string Convert(string Script)
- {
- string Return = "";
- Script = " \r\n" + Script;
-
- //
- // Prepare script for processing
- //
-
- // Clean up linebreaks
- Script = Regex.Replace(Script, @"\r\n", "\n");
- Script = Regex.Replace(Script, @"\n", "\r\n");
-
-
- // QUOTE REPLACEMENT
- // temporarily replace quotes so we can work our magic on the script without
- // always considering if we are inside our outside ""'s
- string _Script = "";
- string C;
- bool in_quote = false;
- bool quote_replaced = false;
- string quote_replacement_string = "Q_U_O_T_E_REPLACEMENT_";
- string quote = "";
- bool last_was_escape = false;
- int quote_replaced_count = 0;
- for (int p = 0; p < Script.Length; p++)
- {
-
- C = Script.Substring(p, 1);
- while (true)
- {
- // found " and last was not \ so this is not an escaped \"
- if (C == "\"" && last_was_escape == false)
- {
- // Toggle inside/outside quote
- in_quote = !in_quote;
- if (in_quote)
- {
- quote_replaced_count++;
- }
- else
- {
- if (quote == "")
- {
- // We didn't replace quote, probably because of empty string?
- _Script += quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
- }
- // We just left a quote
- quotes.Add(quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]), quote);
- quote = "";
- }
- break;
- }
-
- if (!in_quote)
- {
- // We are not inside a quote
- quote_replaced = false;
-
- }
- else
- {
- // We are inside a quote
- if (!quote_replaced)
- {
- // Replace quote
- _Script += quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
- quote_replaced = true;
- }
- quote += C;
- break;
- }
- _Script += C;
- break;
- }
- last_was_escape = false;
- if (C == @"\")
- {
- last_was_escape = true;
- }
- }
- Script = _Script;
- //
- // END OF QUOTE REPLACEMENT
- //
-
-
-
- //
- // PROCESS STATES
- // Remove state definitions and add state names to start of each event within state
- //
- int ilevel = 0;
- int lastlevel = 0;
- string ret = "";
- string cache = "";
- bool in_state = false;
- string current_statename = "";
- for (int p = 0; p < Script.Length; p++)
- {
- C = Script.Substring(p, 1);
- while (true)
- {
- // inc / dec level
- if (C == @"{")
- ilevel++;
- if (C == @"}")
- ilevel--;
- if (ilevel < 0)
- ilevel = 0;
- cache += C;
-
- // if level == 0, add to return
- if (ilevel == 1 && lastlevel == 0)
- {
- // 0 => 1: Get last
- Match m = Regex.Match(cache, @"(?![a-zA-Z_]+)\s*([a-zA-Z_]+)[^a-zA-Z_\(\)]*{", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- in_state = false;
- if (m.Success)
- {
- // Go back to level 0, this is not a state
- in_state = true;
- current_statename = m.Groups[1].Captures[0].Value;
- //Console.WriteLine("Current statename: " + current_statename);
- cache = Regex.Replace(cache, @"(?(?![a-zA-Z_]+)\s*)" + @"([a-zA-Z_]+)(?[^a-zA-Z_\(\)]*){", "${s1}${s2}", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- }
- ret += cache;
- cache = "";
- }
- if (ilevel == 0 && lastlevel == 1)
- {
- // 1 => 0: Remove last }
- if (in_state == true)
- {
- cache = cache.Remove(cache.Length - 1, 1);
- //cache = Regex.Replace(cache, "}$", "", RegexOptions.Multiline | RegexOptions.Singleline);
-
- //Replace function names
- // void dataserver(key query_id, string data) {
- //cache = Regex.Replace(cache, @"([^a-zA-Z_]\s*)((?!if|switch|for)[a-zA-Z_]+\s*\([^\)]*\)[^{]*{)", "$1" + "" + "$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- //Console.WriteLine("Replacing using statename: " + current_statename);
- cache = Regex.Replace(cache, @"^(\s*)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1public " + current_statename + "_event_$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- }
-
- ret += cache;
- cache = "";
- in_state = true;
- current_statename = "";
- }
-
- break;
- }
- lastlevel = ilevel;
- }
- ret += cache;
- cache = "";
-
- Script = ret;
- ret = "";
-
-
-
- foreach (string key in dataTypes.Keys)
- {
- string val;
- dataTypes.TryGetValue(key, out val);
-
- // Replace CAST - (integer) with (int)
- Script = Regex.Replace(Script, @"\(" + key + @"\)", @"(" + val + ")", RegexOptions.Compiled | RegexOptions.Multiline);
- // Replace return types and function variables - integer a() and f(integer a, integer a)
- Script = Regex.Replace(Script, @"(^|;|}|[\(,])(\s*)" + key + @"(\s*)", @"$1$2" + val + "$3", RegexOptions.Compiled | RegexOptions.Multiline);
- }
-
- // Add "void" in front of functions that needs it
- Script = Regex.Replace(Script, @"^(\s*public\s+)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1void $2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- // Replace and
- Script = Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Quaternion($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- Script = Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Vector3($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
- // Replace List []'s
- Script = Regex.Replace(Script, @"\[([^\]]*)\]", @"List.Parse($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
-
- // Replace (string) to .ToString() //
- Script = Regex.Replace(Script, @"\(string\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.ToString()", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
- Script = Regex.Replace(Script, @"\((float|int)\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.Parse($2)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
-
-
- // REPLACE BACK QUOTES
- foreach (string key in quotes.Keys)
- {
- string val;
- quotes.TryGetValue(key, out val);
- Script = Script.Replace(key, "\"" + val + "\"");
- }
-
-
- // Add namespace, class name and inheritance
-
- Return = "";// +
- //"using System; " +
- //"using System.Collections.Generic; " +
- //"using System.Text; " +
- //"using OpenSim.Region.ScriptEngine.Common; " +
- //"using integer = System.Int32; " +
- //"using key = System.String; ";
-
- //// Make a Using out of DataTypes
- //// Using integer = System.Int32;
- //string _val;
- //foreach (string key in DataTypes.Keys)
- //{
- // DataTypes.TryGetValue(key, out _val);
- // if (key != _val)
- // {
- // Return += "using " + key + " = " + _val + "; ";
- // }
- //}
-
-
- Return += "" +
- "namespace SecondLife { ";
- Return += "" +
- //"[Serializable] " +
- "public class Script : OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass { ";
- Return += @"public Script() { } ";
- Return += Script;
- Return += "} }\r\n";
-
- return Return;
- }
-
-
- }
-}
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Text.RegularExpressions;
+
+namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
+{
+ public class LSL2CSConverter
+ {
+ //private Regex rnw = new Regex(@"[a-zA-Z0-9_\-]", RegexOptions.Compiled);
+ private Dictionary dataTypes = new Dictionary();
+ private Dictionary quotes = new Dictionary();
+
+ public LSL2CSConverter()
+ {
+ // Only the types we need to convert
+ dataTypes.Add("void", "void");
+ dataTypes.Add("integer", "int");
+ dataTypes.Add("float", "double");
+ dataTypes.Add("string", "string");
+ dataTypes.Add("key", "string");
+ dataTypes.Add("vector", "LSL_Types.Vector3");
+ dataTypes.Add("rotation", "LSL_Types.Quaternion");
+ dataTypes.Add("list", "list");
+ dataTypes.Add("null", "null");
+
+ }
+
+ public string Convert(string Script)
+ {
+ string Return = "";
+ Script = " \r\n" + Script;
+
+ //
+ // Prepare script for processing
+ //
+
+ // Clean up linebreaks
+ Script = Regex.Replace(Script, @"\r\n", "\n");
+ Script = Regex.Replace(Script, @"\n", "\r\n");
+
+
+ // QUOTE REPLACEMENT
+ // temporarily replace quotes so we can work our magic on the script without
+ // always considering if we are inside our outside ""'s
+ string _Script = "";
+ string C;
+ bool in_quote = false;
+ bool quote_replaced = false;
+ string quote_replacement_string = "Q_U_O_T_E_REPLACEMENT_";
+ string quote = "";
+ bool last_was_escape = false;
+ int quote_replaced_count = 0;
+ for (int p = 0; p < Script.Length; p++)
+ {
+
+ C = Script.Substring(p, 1);
+ while (true)
+ {
+ // found " and last was not \ so this is not an escaped \"
+ if (C == "\"" && last_was_escape == false)
+ {
+ // Toggle inside/outside quote
+ in_quote = !in_quote;
+ if (in_quote)
+ {
+ quote_replaced_count++;
+ }
+ else
+ {
+ if (quote == "")
+ {
+ // We didn't replace quote, probably because of empty string?
+ _Script += quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
+ }
+ // We just left a quote
+ quotes.Add(quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]), quote);
+ quote = "";
+ }
+ break;
+ }
+
+ if (!in_quote)
+ {
+ // We are not inside a quote
+ quote_replaced = false;
+
+ }
+ else
+ {
+ // We are inside a quote
+ if (!quote_replaced)
+ {
+ // Replace quote
+ _Script += quote_replacement_string + quote_replaced_count.ToString().PadLeft(5, "0".ToCharArray()[0]);
+ quote_replaced = true;
+ }
+ quote += C;
+ break;
+ }
+ _Script += C;
+ break;
+ }
+ last_was_escape = false;
+ if (C == @"\")
+ {
+ last_was_escape = true;
+ }
+ }
+ Script = _Script;
+ //
+ // END OF QUOTE REPLACEMENT
+ //
+
+
+
+ //
+ // PROCESS STATES
+ // Remove state definitions and add state names to start of each event within state
+ //
+ int ilevel = 0;
+ int lastlevel = 0;
+ string ret = "";
+ string cache = "";
+ bool in_state = false;
+ string current_statename = "";
+ for (int p = 0; p < Script.Length; p++)
+ {
+ C = Script.Substring(p, 1);
+ while (true)
+ {
+ // inc / dec level
+ if (C == @"{")
+ ilevel++;
+ if (C == @"}")
+ ilevel--;
+ if (ilevel < 0)
+ ilevel = 0;
+ cache += C;
+
+ // if level == 0, add to return
+ if (ilevel == 1 && lastlevel == 0)
+ {
+ // 0 => 1: Get last
+ Match m = Regex.Match(cache, @"(?![a-zA-Z_]+)\s*([a-zA-Z_]+)[^a-zA-Z_\(\)]*{", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+
+ in_state = false;
+ if (m.Success)
+ {
+ // Go back to level 0, this is not a state
+ in_state = true;
+ current_statename = m.Groups[1].Captures[0].Value;
+ //Console.WriteLine("Current statename: " + current_statename);
+ cache = Regex.Replace(cache, @"(?(?![a-zA-Z_]+)\s*)" + @"([a-zA-Z_]+)(?[^a-zA-Z_\(\)]*){", "${s1}${s2}", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+ }
+ ret += cache;
+ cache = "";
+ }
+ if (ilevel == 0 && lastlevel == 1)
+ {
+ // 1 => 0: Remove last }
+ if (in_state == true)
+ {
+ cache = cache.Remove(cache.Length - 1, 1);
+ //cache = Regex.Replace(cache, "}$", "", RegexOptions.Multiline | RegexOptions.Singleline);
+
+ //Replace function names
+ // void dataserver(key query_id, string data) {
+ //cache = Regex.Replace(cache, @"([^a-zA-Z_]\s*)((?!if|switch|for)[a-zA-Z_]+\s*\([^\)]*\)[^{]*{)", "$1" + "" + "$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+ //Console.WriteLine("Replacing using statename: " + current_statename);
+ cache = Regex.Replace(cache, @"^(\s*)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1public " + current_statename + "_event_$2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+ }
+
+ ret += cache;
+ cache = "";
+ in_state = true;
+ current_statename = "";
+ }
+
+ break;
+ }
+ lastlevel = ilevel;
+ }
+ ret += cache;
+ cache = "";
+
+ Script = ret;
+ ret = "";
+
+
+
+ foreach (string key in dataTypes.Keys)
+ {
+ string val;
+ dataTypes.TryGetValue(key, out val);
+
+ // Replace CAST - (integer) with (int)
+ Script = Regex.Replace(Script, @"\(" + key + @"\)", @"(" + val + ")", RegexOptions.Compiled | RegexOptions.Multiline);
+ // Replace return types and function variables - integer a() and f(integer a, integer a)
+ Script = Regex.Replace(Script, @"(^|;|}|[\(,])(\s*)" + key + @"(\s*)", @"$1$2" + val + "$3", RegexOptions.Compiled | RegexOptions.Multiline);
+ }
+
+ // Add "void" in front of functions that needs it
+ Script = Regex.Replace(Script, @"^(\s*public\s+)((?!(if|switch|for)[^a-zA-Z0-9_])[a-zA-Z0-9_]*\s*\([^\)]*\)[^;]*\{)", @"$1void $2", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+
+ // Replace and
+ Script = Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Quaternion($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+ Script = Regex.Replace(Script, @"<([^,>]*,[^,>]*,[^,>]*)>", @"new LSL_Types.Vector3($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+
+ // Replace List []'s
+ Script = Regex.Replace(Script, @"\[([^\]]*)\]", @"List.Parse($1)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+
+
+ // Replace (string) to .ToString() //
+ Script = Regex.Replace(Script, @"\(string\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.ToString()", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+ Script = Regex.Replace(Script, @"\((float|int)\)\s*([a-zA-Z0-9_]+(\s*\([^\)]*\))?)", @"$1.Parse($2)", RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.Singleline);
+
+
+ // REPLACE BACK QUOTES
+ foreach (string key in quotes.Keys)
+ {
+ string val;
+ quotes.TryGetValue(key, out val);
+ Script = Script.Replace(key, "\"" + val + "\"");
+ }
+
+
+ // Add namespace, class name and inheritance
+
+ Return = "";// +
+ //"using System; " +
+ //"using System.Collections.Generic; " +
+ //"using System.Text; " +
+ //"using OpenSim.Region.ScriptEngine.Common; " +
+ //"using integer = System.Int32; " +
+ //"using key = System.String; ";
+
+ //// Make a Using out of DataTypes
+ //// Using integer = System.Int32;
+ //string _val;
+ //foreach (string key in DataTypes.Keys)
+ //{
+ // DataTypes.TryGetValue(key, out _val);
+ // if (key != _val)
+ // {
+ // Return += "using " + key + " = " + _val + "; ";
+ // }
+ //}
+
+
+ Return += "" +
+ "namespace SecondLife { ";
+ Return += "" +
+ //"[Serializable] " +
+ "public class Script : OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL.LSL_BaseClass { ";
+ Return += @"public Script() { } ";
+ Return += Script;
+ Return += "} }\r\n";
+
+ return Return;
+ }
+
+
+ }
+}
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
index 63f7260..5f92e96 100644
--- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
+++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs
@@ -1,783 +1,783 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using OpenSim.Region.ScriptEngine.DotNetEngine.Compiler;
-using OpenSim.Region.ScriptEngine.Common;
-using System.Threading;
-using System.Reflection;
-using System.Runtime.Remoting.Lifetime;
-using integer = System.Int32;
-using key = System.String;
-using vector = OpenSim.Region.ScriptEngine.Common.LSL_Types.Vector3;
-using rotation = OpenSim.Region.ScriptEngine.Common.LSL_Types.Quaternion;
-
-namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
-{
- //[Serializable]
- public class LSL_BaseClass : MarshalByRefObject, LSL_BuiltIn_Commands_Interface, IScript
- {
-
- // Object never expires
- public override Object InitializeLifetimeService()
- {
- //Console.WriteLine("LSL_BaseClass: InitializeLifetimeService()");
- // return null;
- ILease lease = (ILease)base.InitializeLifetimeService();
-
- if (lease.CurrentState == LeaseState.Initial)
- {
- lease.InitialLeaseTime = TimeSpan.Zero; // TimeSpan.FromMinutes(1);
- //lease.SponsorshipTimeout = TimeSpan.FromMinutes(2);
- //lease.RenewOnCallTime = TimeSpan.FromSeconds(2);
- }
- return lease;
- }
-
-
- private Executor m_Exec;
- public Executor Exec
- {
- get
- {
- if (m_Exec == null)
- m_Exec = new Executor(this);
- return m_Exec;
- }
- }
-
- public LSL_BuiltIn_Commands_Interface m_LSL_Functions;
-
- public LSL_BaseClass()
- {
- }
- public string State()
- {
- return m_LSL_Functions.State();
- }
-
-
- public void Start(LSL_BuiltIn_Commands_Interface LSL_Functions)
- {
- m_LSL_Functions = LSL_Functions;
-
- //MainLog.Instance.Notice("ScriptEngine", "LSL_BaseClass.Start() called.");
-
- // Get this AppDomain's settings and display some of them.
- AppDomainSetup ads = AppDomain.CurrentDomain.SetupInformation;
- Console.WriteLine("AppName={0}, AppBase={1}, ConfigFile={2}",
- ads.ApplicationName,
- ads.ApplicationBase,
- ads.ConfigurationFile
- );
-
- // Display the name of the calling AppDomain and the name
- // of the second domain.
- // NOTE: The application's thread has transitioned between
- // AppDomains.
- Console.WriteLine("Calling to '{0}'.",
- Thread.GetDomain().FriendlyName
- );
-
- return;
- }
-
-
-
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- // They are only forwarders to LSL_BuiltIn_Commands.cs
- //
- public double llSin(double f) { return m_LSL_Functions.llSin(f); }
- public double llCos(double f) { return m_LSL_Functions.llCos(f); }
- public double llTan(double f) { return m_LSL_Functions.llTan(f); }
- public double llAtan2(double x, double y) { return m_LSL_Functions.llAtan2(x, y); }
- public double llSqrt(double f) { return m_LSL_Functions.llSqrt(f); }
- public double llPow(double fbase, double fexponent) { return m_LSL_Functions.llPow(fbase, fexponent); }
- public int llAbs(int i) { return m_LSL_Functions.llAbs(i); }
- public double llFabs(double f) { return m_LSL_Functions.llFabs(f); }
- public double llFrand(double mag) { return m_LSL_Functions.llFrand(mag); }
- public int llFloor(double f) { return m_LSL_Functions.llFloor(f); }
- public int llCeil(double f) { return m_LSL_Functions.llCeil(f); }
- public int llRound(double f) { return m_LSL_Functions.llRound(f); }
- public double llVecMag(LSL_Types.Vector3 v) { return m_LSL_Functions.llVecMag(v); }
- public LSL_Types.Vector3 llVecNorm(LSL_Types.Vector3 v) { return m_LSL_Functions.llVecNorm(v); }
- public double llVecDist(LSL_Types.Vector3 a, LSL_Types.Vector3 b) { return m_LSL_Functions.llVecDist(a, b); }
- public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) { return m_LSL_Functions.llRot2Euler(r); }
- public LSL_Types.Quaternion llEuler2Rot(LSL_Types.Vector3 v) { return m_LSL_Functions.llEuler2Rot(v); }
- public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) { return m_LSL_Functions.llAxes2Rot(fwd, left, up); }
- public LSL_Types.Vector3 llRot2Fwd(LSL_Types.Quaternion r) { return m_LSL_Functions.llRot2Fwd(r); }
- public LSL_Types.Vector3 llRot2Left(LSL_Types.Quaternion r) { return m_LSL_Functions.llRot2Left(r); }
- public LSL_Types.Vector3 llRot2Up(LSL_Types.Quaternion r) { return m_LSL_Functions.llRot2Up(r); }
- public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 start, LSL_Types.Vector3 end) { return m_LSL_Functions.llRotBetween(start, end); }
- public void llWhisper(int channelID, string text) { m_LSL_Functions.llWhisper(channelID, text); }
- public void llSay(int channelID, string text) { m_LSL_Functions.llSay(channelID, text); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llShout(int channelID, string text) { m_LSL_Functions.llShout(channelID, text); }
- public int llListen(int channelID, string name, string ID, string msg) { return m_LSL_Functions.llListen(channelID, name, ID, msg); }
- public void llListenControl(int number, int active) { m_LSL_Functions.llListenControl(number, active); }
- public void llListenRemove(int number) { m_LSL_Functions.llListenRemove(number); }
- public void llSensor(string name, string id, int type, double range, double arc) { m_LSL_Functions.llSensor(name, id, type, range, arc); }
- public void llSensorRepeat(string name, string id, int type, double range, double arc, double rate) { m_LSL_Functions.llSensorRepeat(name, id, type, range, arc, rate); }
- public void llSensorRemove() { m_LSL_Functions.llSensorRemove(); }
- public string llDetectedName(int number) { return m_LSL_Functions.llDetectedName(number); }
- public string llDetectedKey(int number) { return m_LSL_Functions.llDetectedKey(number); }
- public string llDetectedOwner(int number) { return m_LSL_Functions.llDetectedOwner(number); }
- public int llDetectedType(int number) { return m_LSL_Functions.llDetectedType(number); }
- public LSL_Types.Vector3 llDetectedPos(int number) { return m_LSL_Functions.llDetectedPos(number); }
- public LSL_Types.Vector3 llDetectedVel(int number) { return m_LSL_Functions.llDetectedVel(number); }
- public LSL_Types.Vector3 llDetectedGrab(int number) { return m_LSL_Functions.llDetectedGrab(number); }
- public LSL_Types.Quaternion llDetectedRot(int number) { return m_LSL_Functions.llDetectedRot(number); }
- public int llDetectedGroup(int number) { return m_LSL_Functions.llDetectedGroup(number); }
- public int llDetectedLinkNumber(int number) { return m_LSL_Functions.llDetectedLinkNumber(number); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llDie() { m_LSL_Functions.llDie(); }
- public double llGround(LSL_Types.Vector3 offset) { return m_LSL_Functions.llGround(offset); }
- public double llCloud(LSL_Types.Vector3 offset) { return m_LSL_Functions.llCloud(offset); }
- public LSL_Types.Vector3 llWind(LSL_Types.Vector3 offset) { return m_LSL_Functions.llWind(offset); }
- public void llSetStatus(int status, int value) { m_LSL_Functions.llSetStatus(status, value); }
- public int llGetStatus(int status) { return m_LSL_Functions.llGetStatus(status); }
- public void llSetScale(LSL_Types.Vector3 scale) { m_LSL_Functions.llSetScale(scale); }
- public LSL_Types.Vector3 llGetScale() { return m_LSL_Functions.llGetScale(); }
- public void llSetColor(LSL_Types.Vector3 color, int face) { m_LSL_Functions.llSetColor(color, face); }
- public double llGetAlpha(int face) { return m_LSL_Functions.llGetAlpha(face); }
- public void llSetAlpha(double alpha, int face) { m_LSL_Functions.llSetAlpha(alpha, face); }
- public LSL_Types.Vector3 llGetColor(int face) { return m_LSL_Functions.llGetColor(face); }
- public void llSetTexture(string texture, int face) { m_LSL_Functions.llSetTexture(texture, face); }
- public void llScaleTexture(double u, double v, int face) { m_LSL_Functions.llScaleTexture(u, v, face); }
- public void llOffsetTexture(double u, double v, int face) { m_LSL_Functions.llOffsetTexture(u, v, face); }
- public void llRotateTexture(double rotation, int face) { m_LSL_Functions.llRotateTexture(rotation, face); }
- public string llGetTexture(int face) { return m_LSL_Functions.llGetTexture(face); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llSetPos(LSL_Types.Vector3 pos) { m_LSL_Functions.llSetPos(pos); }
- public LSL_Types.Vector3 llGetPos() { return m_LSL_Functions.llGetPos(); }
- public LSL_Types.Vector3 llGetLocalPos() { return m_LSL_Functions.llGetLocalPos(); }
- public void llSetRot(LSL_Types.Quaternion rot) { m_LSL_Functions.llSetRot(rot); }
- public LSL_Types.Quaternion llGetRot() { return m_LSL_Functions.llGetRot(); }
- public LSL_Types.Quaternion llGetLocalRot() { return m_LSL_Functions.llGetLocalRot(); }
- public void llSetForce(LSL_Types.Vector3 force, int local) { m_LSL_Functions.llSetForce(force, local); }
- public LSL_Types.Vector3 llGetForce() { return m_LSL_Functions.llGetForce(); }
- public int llTarget(LSL_Types.Vector3 position, double range) { return m_LSL_Functions.llTarget(position, range); }
- public void llTargetRemove(int number) { m_LSL_Functions.llTargetRemove(number); }
- public int llRotTarget(LSL_Types.Quaternion rot, double error) { return m_LSL_Functions.llRotTarget(rot, error); }
- public void llRotTargetRemove(int number) { m_LSL_Functions.llRotTargetRemove(number); }
- public void llMoveToTarget(LSL_Types.Vector3 target, double tau) { m_LSL_Functions.llMoveToTarget(target, tau); }
- public void llStopMoveToTarget() { m_LSL_Functions.llStopMoveToTarget(); }
- public void llApplyImpulse(LSL_Types.Vector3 force, int local) { m_LSL_Functions.llApplyImpulse(force, local); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llApplyRotationalImpulse(LSL_Types.Vector3 force, int local) { m_LSL_Functions.llApplyRotationalImpulse(force, local); }
- public void llSetTorque(LSL_Types.Vector3 torque, int local) { m_LSL_Functions.llSetTorque(torque, local); }
- public LSL_Types.Vector3 llGetTorque() { return m_LSL_Functions.llGetTorque(); }
- public void llSetForceAndTorque(LSL_Types.Vector3 force, LSL_Types.Vector3 torque, int local) { m_LSL_Functions.llSetForceAndTorque(force, torque, local); }
- public LSL_Types.Vector3 llGetVel() { return m_LSL_Functions.llGetVel(); }
- public LSL_Types.Vector3 llGetAccel() { return m_LSL_Functions.llGetAccel(); }
- public LSL_Types.Vector3 llGetOmega() { return m_LSL_Functions.llGetOmega(); }
- public double llGetTimeOfDay() { return m_LSL_Functions.llGetTimeOfDay(); }
- public double llGetWallclock() { return m_LSL_Functions.llGetWallclock(); }
- public double llGetTime() { return m_LSL_Functions.llGetTime(); }
- public void llResetTime() { m_LSL_Functions.llResetTime(); }
- public double llGetAndResetTime() { return m_LSL_Functions.llGetAndResetTime(); }
- public void llSound() { m_LSL_Functions.llSound(); }
- public void llPlaySound(string sound, double volume) { m_LSL_Functions.llPlaySound(sound, volume); }
- public void llLoopSound(string sound, double volume) { m_LSL_Functions.llLoopSound(sound, volume); }
- public void llLoopSoundMaster(string sound, double volume) { m_LSL_Functions.llLoopSoundMaster(sound, volume); }
- public void llLoopSoundSlave(string sound, double volume) { m_LSL_Functions.llLoopSoundSlave(sound, volume); }
- public void llPlaySoundSlave(string sound, double volume) { m_LSL_Functions.llPlaySoundSlave(sound, volume); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llTriggerSound(string sound, double volume) { m_LSL_Functions.llTriggerSound(sound, volume); }
- public void llStopSound() { m_LSL_Functions.llStopSound(); }
- public void llPreloadSound(string sound) { m_LSL_Functions.llPreloadSound(sound); }
- public string llGetSubString(string src, int start, int end) { return m_LSL_Functions.llGetSubString(src, start, end); }
- public string llDeleteSubString(string src, int start, int end) { return m_LSL_Functions.llDeleteSubString(src, start, end); }
- public string llInsertString(string dst, int position, string src) { return m_LSL_Functions.llInsertString(dst, position, src); }
- public string llToUpper(string source) { return m_LSL_Functions.llToUpper(source); }
- public string llToLower(string source) { return m_LSL_Functions.llToLower(source); }
- public int llGiveMoney(string destination, int amount) { return m_LSL_Functions.llGiveMoney(destination, amount); }
- public void llMakeExplosion() { m_LSL_Functions.llMakeExplosion(); }
- public void llMakeFountain() { m_LSL_Functions.llMakeFountain(); }
- public void llMakeSmoke() { m_LSL_Functions.llMakeSmoke(); }
- public void llMakeFire() { m_LSL_Functions.llMakeFire(); }
- public void llRezObject(string inventory, LSL_Types.Vector3 pos, LSL_Types.Quaternion rot, int param) { m_LSL_Functions.llRezObject(inventory, pos, rot, param); }
- public void llLookAt(LSL_Types.Vector3 target, double strength, double damping) { m_LSL_Functions.llLookAt(target, strength, damping); }
- public void llStopLookAt() { m_LSL_Functions.llStopLookAt(); }
- public void llSetTimerEvent(double sec) { m_LSL_Functions.llSetTimerEvent(sec); }
- public void llSleep(double sec) { m_LSL_Functions.llSleep(sec); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public double llGetMass() { return m_LSL_Functions.llGetMass(); }
- public void llCollisionFilter(string name, string id, int accept) { m_LSL_Functions.llCollisionFilter(name, id, accept); }
- public void llTakeControls(int controls, int accept, int pass_on) { m_LSL_Functions.llTakeControls(controls, accept, pass_on); }
- public void llReleaseControls() { m_LSL_Functions.llReleaseControls(); }
- public void llAttachToAvatar(int attachment) { m_LSL_Functions.llAttachToAvatar(attachment); }
- public void llDetachFromAvatar() { m_LSL_Functions.llDetachFromAvatar(); }
- public void llTakeCamera() { m_LSL_Functions.llTakeCamera(); }
- public void llReleaseCamera() { m_LSL_Functions.llReleaseCamera(); }
- public string llGetOwner() { return m_LSL_Functions.llGetOwner(); }
- public void llInstantMessage(string user, string message) { m_LSL_Functions.llInstantMessage(user, message); }
- public void llEmail(string address, string subject, string message) { m_LSL_Functions.llEmail(address, subject, message); }
- public void llGetNextEmail(string address, string subject) { m_LSL_Functions.llGetNextEmail(address, subject); }
- public string llGetKey() { return m_LSL_Functions.llGetKey(); }
- public void llSetBuoyancy(double buoyancy) { m_LSL_Functions.llSetBuoyancy(buoyancy); }
- public void llSetHoverHeight(double height, int water, double tau) { m_LSL_Functions.llSetHoverHeight(height, water, tau); }
- public void llStopHover() { m_LSL_Functions.llStopHover(); }
- public void llMinEventDelay(double delay) { m_LSL_Functions.llMinEventDelay(delay); }
- public void llSoundPreload() { m_LSL_Functions.llSoundPreload(); }
- public void llRotLookAt(LSL_Types.Quaternion target, double strength, double damping) { m_LSL_Functions.llRotLookAt(target, strength, damping); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public int llStringLength(string str) { return m_LSL_Functions.llStringLength(str); }
- public void llStartAnimation(string anim) { m_LSL_Functions.llStartAnimation(anim); }
- public void llStopAnimation(string anim) { m_LSL_Functions.llStopAnimation(anim); }
- public void llPointAt() { m_LSL_Functions.llPointAt(); }
- public void llStopPointAt() { m_LSL_Functions.llStopPointAt(); }
- public void llTargetOmega(LSL_Types.Vector3 axis, double spinrate, double gain) { m_LSL_Functions.llTargetOmega(axis, spinrate, gain); }
- public int llGetStartParameter() { return m_LSL_Functions.llGetStartParameter(); }
- public void llGodLikeRezObject(string inventory, LSL_Types.Vector3 pos) { m_LSL_Functions.llGodLikeRezObject(inventory, pos); }
- public void llRequestPermissions(string agent, int perm) { m_LSL_Functions.llRequestPermissions(agent, perm); }
- public string llGetPermissionsKey() { return m_LSL_Functions.llGetPermissionsKey(); }
- public int llGetPermissions() { return m_LSL_Functions.llGetPermissions(); }
- public int llGetLinkNumber() { return m_LSL_Functions.llGetLinkNumber(); }
- public void llSetLinkColor(int linknumber, LSL_Types.Vector3 color, int face) { m_LSL_Functions.llSetLinkColor(linknumber, color, face); }
- public void llCreateLink(string target, int parent) { m_LSL_Functions.llCreateLink(target, parent); }
- public void llBreakLink(int linknum) { m_LSL_Functions.llBreakLink(linknum); }
- public void llBreakAllLinks() { m_LSL_Functions.llBreakAllLinks(); }
- public string llGetLinkKey(int linknum) { return m_LSL_Functions.llGetLinkKey(linknum); }
- public void llGetLinkName(int linknum) { m_LSL_Functions.llGetLinkName(linknum); }
- public int llGetInventoryNumber(int type) { return m_LSL_Functions.llGetInventoryNumber(type); }
- public string llGetInventoryName(int type, int number) { return m_LSL_Functions.llGetInventoryName(type, number); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llSetScriptState(string name, int run) { m_LSL_Functions.llSetScriptState(name, run); }
- public double llGetEnergy() { return m_LSL_Functions.llGetEnergy(); }
- public void llGiveInventory(string destination, string inventory) { m_LSL_Functions.llGiveInventory(destination, inventory); }
- public void llRemoveInventory(string item) { m_LSL_Functions.llRemoveInventory(item); }
- public void llSetText(string text, LSL_Types.Vector3 color, double alpha) { m_LSL_Functions.llSetText(text, color, alpha); }
- public double llWater(LSL_Types.Vector3 offset) { return m_LSL_Functions.llWater(offset); }
- public void llPassTouches(int pass) { m_LSL_Functions.llPassTouches(pass); }
- public string llRequestAgentData(string id, int data) { return m_LSL_Functions.llRequestAgentData(id, data); }
- public string llRequestInventoryData(string name) { return m_LSL_Functions.llRequestInventoryData(name); }
- public void llSetDamage(double damage) { m_LSL_Functions.llSetDamage(damage); }
- public void llTeleportAgentHome(string agent) { m_LSL_Functions.llTeleportAgentHome(agent); }
- public void llModifyLand(int action, int brush) { m_LSL_Functions.llModifyLand(action, brush); }
- public void llCollisionSound(string impact_sound, double impact_volume) { m_LSL_Functions.llCollisionSound(impact_sound, impact_volume); }
- public void llCollisionSprite(string impact_sprite) { m_LSL_Functions.llCollisionSprite(impact_sprite); }
- public string llGetAnimation(string id) { return m_LSL_Functions.llGetAnimation(id); }
- public void llResetScript() { m_LSL_Functions.llResetScript(); }
- public void llMessageLinked(int linknum, int num, string str, string id) { m_LSL_Functions.llMessageLinked(linknum, num, str, id); }
- public void llPushObject(string target, LSL_Types.Vector3 impulse, LSL_Types.Vector3 ang_impulse, int local) { m_LSL_Functions.llPushObject(target, impulse, ang_impulse, local); }
- public void llPassCollisions(int pass) { m_LSL_Functions.llPassCollisions(pass); }
- public string llGetScriptName() { return m_LSL_Functions.llGetScriptName(); }
- public int llGetNumberOfSides() { return m_LSL_Functions.llGetNumberOfSides(); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public LSL_Types.Quaternion llAxisAngle2Rot(LSL_Types.Vector3 axis, double angle) { return m_LSL_Functions.llAxisAngle2Rot(axis, angle); }
- public LSL_Types.Vector3 llRot2Axis(LSL_Types.Quaternion rot) { return m_LSL_Functions.llRot2Axis(rot); }
- public void llRot2Angle() { m_LSL_Functions.llRot2Angle(); }
- public double llAcos(double val) { return m_LSL_Functions.llAcos(val); }
- public double llAsin(double val) { return m_LSL_Functions.llAsin(val); }
- public double llAngleBetween(LSL_Types.Quaternion a, LSL_Types.Quaternion b) { return m_LSL_Functions.llAngleBetween(a, b); }
- public string llGetInventoryKey(string name) { return m_LSL_Functions.llGetInventoryKey(name); }
- public void llAllowInventoryDrop(int add) { m_LSL_Functions.llAllowInventoryDrop(add); }
- public LSL_Types.Vector3 llGetSunDirection() { return m_LSL_Functions.llGetSunDirection(); }
- public LSL_Types.Vector3 llGetTextureOffset(int face) { return m_LSL_Functions.llGetTextureOffset(face); }
- public LSL_Types.Vector3 llGetTextureScale(int side) { return m_LSL_Functions.llGetTextureScale(side); }
- public double llGetTextureRot(int side) { return m_LSL_Functions.llGetTextureRot(side); }
- public int llSubStringIndex(string source, string pattern) { return m_LSL_Functions.llSubStringIndex(source, pattern); }
- public string llGetOwnerKey(string id) { return m_LSL_Functions.llGetOwnerKey(id); }
- public LSL_Types.Vector3 llGetCenterOfMass() { return m_LSL_Functions.llGetCenterOfMass(); }
- public List llListSort(List src, int stride, int ascending) { return m_LSL_Functions.llListSort(src, stride, ascending); }
- public int llGetListLength(List src) { return m_LSL_Functions.llGetListLength(src); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public int llList2Integer(List src, int index) { return m_LSL_Functions.llList2Integer(src, index); }
- public double llList2double(List src, int index) { return m_LSL_Functions.llList2double(src, index); }
- public string llList2String(List src, int index) { return m_LSL_Functions.llList2String(src, index); }
- public string llList2Key(List src, int index) { return m_LSL_Functions.llList2Key(src, index); }
- public LSL_Types.Vector3 llList2Vector(List src, int index) { return m_LSL_Functions.llList2Vector(src, index); }
- public LSL_Types.Quaternion llList2Rot(List src, int index) { return m_LSL_Functions.llList2Rot(src, index); }
- public List llList2List(List src, int start, int end) { return m_LSL_Functions.llList2List(src, start, end); }
- public List llDeleteSubList(List src, int start, int end) { return m_LSL_Functions.llDeleteSubList(src, start, end); }
- public int llGetListEntryType(List src, int index) { return m_LSL_Functions.llGetListEntryType(src, index); }
- public string llList2CSV(List src) { return m_LSL_Functions.llList2CSV(src); }
- public List llCSV2List(string src) { return m_LSL_Functions.llCSV2List(src); }
- public List llListRandomize(List src, int stride) { return m_LSL_Functions.llListRandomize(src, stride); }
- public List llList2ListStrided(List src, int start, int end, int stride) { return m_LSL_Functions.llList2ListStrided(src, start, end, stride); }
- public LSL_Types.Vector3 llGetRegionCorner() { return m_LSL_Functions.llGetRegionCorner(); }
- public List llListInsertList(List dest, List src, int start) { return m_LSL_Functions.llListInsertList(dest, src, start); }
- public int llListFindList(List src, List test) { return m_LSL_Functions.llListFindList(src, test); }
- public string llGetObjectName() { return m_LSL_Functions.llGetObjectName(); }
- public void llSetObjectName(string name) { m_LSL_Functions.llSetObjectName(name); }
- public string llGetDate() { return m_LSL_Functions.llGetDate(); }
- public int llEdgeOfWorld(LSL_Types.Vector3 pos, LSL_Types.Vector3 dir) { return m_LSL_Functions.llEdgeOfWorld(pos, dir); }
- public int llGetAgentInfo(string id) { return m_LSL_Functions.llGetAgentInfo(id); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llAdjustSoundVolume(double volume) { m_LSL_Functions.llAdjustSoundVolume(volume); }
- public void llSetSoundQueueing(int queue) { m_LSL_Functions.llSetSoundQueueing(queue); }
- public void llSetSoundRadius(double radius) { m_LSL_Functions.llSetSoundRadius(radius); }
- public string llKey2Name(string id) { return m_LSL_Functions.llKey2Name(id); }
- public void llSetTextureAnim(int mode, int face, int sizex, int sizey, double start, double length, double rate) { m_LSL_Functions.llSetTextureAnim(mode, face, sizex, sizey, start, length, rate); }
- public void llTriggerSoundLimited(string sound, double volume, LSL_Types.Vector3 top_north_east, LSL_Types.Vector3 bottom_south_west) { m_LSL_Functions.llTriggerSoundLimited(sound, volume, top_north_east, bottom_south_west); }
- public void llEjectFromLand(string pest) { m_LSL_Functions.llEjectFromLand(pest); }
- public void llParseString2List() { m_LSL_Functions.llParseString2List(); }
- public int llOverMyLand(string id) { return m_LSL_Functions.llOverMyLand(id); }
- public string llGetLandOwnerAt(LSL_Types.Vector3 pos) { return m_LSL_Functions.llGetLandOwnerAt(pos); }
- public string llGetNotecardLine(string name, int line) { return m_LSL_Functions.llGetNotecardLine(name, line); }
- public LSL_Types.Vector3 llGetAgentSize(string id) { return m_LSL_Functions.llGetAgentSize(id); }
- public int llSameGroup(string agent) { return m_LSL_Functions.llSameGroup(agent); }
- public void llUnSit(string id) { m_LSL_Functions.llUnSit(id); }
- public LSL_Types.Vector3 llGroundSlope(LSL_Types.Vector3 offset) { return m_LSL_Functions.llGroundSlope(offset); }
- public LSL_Types.Vector3 llGroundNormal(LSL_Types.Vector3 offset) { return m_LSL_Functions.llGroundNormal(offset); }
- public LSL_Types.Vector3 llGroundContour(LSL_Types.Vector3 offset) { return m_LSL_Functions.llGroundContour(offset); }
- public int llGetAttached() { return m_LSL_Functions.llGetAttached(); }
- public int llGetFreeMemory() { return m_LSL_Functions.llGetFreeMemory(); }
- public string llGetRegionName() { return m_LSL_Functions.llGetRegionName(); }
- public double llGetRegionTimeDilation() { return m_LSL_Functions.llGetRegionTimeDilation(); }
- public double llGetRegionFPS() { return m_LSL_Functions.llGetRegionFPS(); }
- //
- // DO NOT MODIFY HERE: MODIFY IN LSL_BuiltIn_Commands.cs
- //
- public void llParticleSystem(List