mirror of
https://github.com/opensim/opensim.git
synced 2026-08-01 06:06:06 +08:00
* Applied patch from Melanie, mantis issue #1581 - "Refactor LSL language, api and compiler out of XEngine"
"First stage in a major Script Engine refactor, that will result in the LSL implementaions ebing reconverged. Not there yet, but one major part is done." Thank you, Melanie!
This commit is contained in:
@@ -28,7 +28,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Reflection;
|
||||
using OpenSim.Region.ScriptEngine.XEngine.Script;
|
||||
using OpenSim.Region.ScriptEngine.Shared;
|
||||
using OpenSim.Region.ScriptEngine.Shared.ScriptBase;
|
||||
|
||||
namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
{
|
||||
@@ -44,15 +45,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
}
|
||||
|
||||
|
||||
protected override scriptEvents DoGetStateEventFlags()
|
||||
protected override scriptEvents DoGetStateEventFlags(string state)
|
||||
{
|
||||
//Console.WriteLine("Get event flags for " + m_Script.State);
|
||||
//Console.WriteLine("Get event flags for " + state);
|
||||
|
||||
// Check to see if we've already computed the flags for this state
|
||||
scriptEvents eventFlags = scriptEvents.None;
|
||||
if (m_stateEvents.ContainsKey(m_Script.State))
|
||||
if (m_stateEvents.ContainsKey(state))
|
||||
{
|
||||
m_stateEvents.TryGetValue(m_Script.State, out eventFlags);
|
||||
m_stateEvents.TryGetValue(state, out eventFlags);
|
||||
return eventFlags;
|
||||
}
|
||||
|
||||
@@ -61,7 +62,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
// Fill in the events for this state, cache the results in the map
|
||||
foreach (KeyValuePair<string, scriptEvents> kvp in m_eventFlagsMap)
|
||||
{
|
||||
string evname = m_Script.State + "_event_" + kvp.Key;
|
||||
string evname = state + "_event_" + kvp.Key;
|
||||
//Console.WriteLine("Trying event "+evname);
|
||||
try
|
||||
{
|
||||
@@ -80,18 +81,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
|
||||
|
||||
// Save the flags we just computed and return the result
|
||||
if (eventFlags != 0)
|
||||
m_stateEvents.Add(m_Script.State, eventFlags);
|
||||
m_stateEvents.Add(state, eventFlags);
|
||||
|
||||
//Console.WriteLine("Returning {0:x}", eventFlags);
|
||||
return (eventFlags);
|
||||
}
|
||||
|
||||
protected override void DoExecuteEvent(string FunctionName, object[] args)
|
||||
protected override void DoExecuteEvent(string state, string FunctionName, object[] args)
|
||||
{
|
||||
// IMPORTANT: Types and MemberInfo-derived objects require a LOT of memory.
|
||||
// Instead use RuntimeTypeHandle, RuntimeFieldHandle and RunTimeHandle (IntPtr) instead!
|
||||
|
||||
string EventName = m_Script.State + "_event_" + FunctionName;
|
||||
string EventName = state + "_event_" + FunctionName;
|
||||
|
||||
//#if DEBUG
|
||||
// Console.WriteLine("ScriptEngine: Script event function name: " + EventName);
|
||||
|
||||
Reference in New Issue
Block a user