Formatting cleanup, minor refactoring, svn properties.

0.6.0-stable
Jeff Ames 2008-06-04 09:59:27 +00:00
parent 0a2d399cad
commit 4ec4e16c80
59 changed files with 851 additions and 834 deletions

View File

@ -137,6 +137,7 @@ namespace OpenSim.Framework
} }
} }
} }
[Obsolete("Using Obsolete to drive development is invalid. Obsolete presumes that something new has already been created to replace this.")] [Obsolete("Using Obsolete to drive development is invalid. Obsolete presumes that something new has already been created to replace this.")]
public uint[] GetAllCircuits(LLUUID agentId) public uint[] GetAllCircuits(LLUUID agentId)
{ {

View File

@ -224,14 +224,14 @@ namespace OpenSim.Grid.ScriptEngine.DotNetEngine.Compiler
LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw); LSL_Types.Quaternion a2 = new LSL_Types.Quaternion(0.0, by, 0.0, bw);
LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw); LSL_Types.Quaternion a3 = new LSL_Types.Quaternion(ax, 0.0, 0.0, aw);
LSL_Types.Quaternion a = new LSL_Types.Quaternion(); LSL_Types.Quaternion a = new LSL_Types.Quaternion();
//This multiplication doesnt compile, yet. a = a1 * a2 * a3; //This multiplication doesn't compile, yet. a = a1 * a2 * a3;
LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax*bw*cw + aw*by*cz, LSL_Types.Quaternion b = new LSL_Types.Quaternion(ax*bw*cw + aw*by*cz,
aw*by*cw - ax*bw*cz, aw*bw*cz + ax*by*cw, aw*by*cw - ax*bw*cz, aw*bw*cz + ax*by*cw,
aw*bw*cw - ax*by*cz); aw*bw*cw - ax*by*cz);
LSL_Types.Quaternion c = new LSL_Types.Quaternion(); LSL_Types.Quaternion c = new LSL_Types.Quaternion();
//This addition doesnt compile yet c = a + b; //This addition doesn't compile yet c = a + b;
LSL_Types.Quaternion d = new LSL_Types.Quaternion(); LSL_Types.Quaternion d = new LSL_Types.Quaternion();
//This addition doesnt compile yet d = a - b; //This addition doesn't compile yet d = a - b;
if ((Math.Abs(c.X) > err && Math.Abs(d.X) > err) || if ((Math.Abs(c.X) > err && Math.Abs(d.X) > err) ||
(Math.Abs(c.Y) > err && Math.Abs(d.Y) > err) || (Math.Abs(c.Y) > err && Math.Abs(d.Y) > err) ||
(Math.Abs(c.Z) > err && Math.Abs(d.Z) > err) || (Math.Abs(c.Z) > err && Math.Abs(d.Z) > err) ||

View File

@ -647,7 +647,7 @@ namespace OpenSim.Region.Communications.OGS1
try try
{ {
ch = new TcpChannel((int)NetworkServersInfo.RemotingListenerPort); ch = new TcpChannel((int)NetworkServersInfo.RemotingListenerPort);
ChannelServices.RegisterChannel(ch, false); // Disabled security as Mono doesnt support this. ChannelServices.RegisterChannel(ch, false); // Disabled security as Mono doesn't support this.
} }
catch (Exception ex) catch (Exception ex)
{ {

View File

@ -279,7 +279,7 @@ namespace OpenSim.Region.Communications.OGS1
} }
} }
if( resp == null ) if (resp == null)
{ {
m_log.Warn("[OSG1 USER SERVICES]: Got no response, Grid server may not be updated."); m_log.Warn("[OSG1 USER SERVICES]: Got no response, Grid server may not be updated.");
return; return;

View File

@ -84,7 +84,7 @@ namespace OpenSim.Region.Environment.Scenes
for (int i = 0; i < m_localScenes.Count; i++) for (int i = 0; i < m_localScenes.Count; i++)
{ {
// extract known shared modules from scene // extract known shared modules from scene
foreach(string k in m_localScenes[i].Modules.Keys) foreach (string k in m_localScenes[i].Modules.Keys)
{ {
if (m_localScenes[i].Modules[k].IsSharedModule && if (m_localScenes[i].Modules[k].IsSharedModule &&
!sharedModules.ContainsKey(k)) !sharedModules.ContainsKey(k))
@ -96,7 +96,7 @@ namespace OpenSim.Region.Environment.Scenes
// all regions/scenes are now closed, we can now safely // all regions/scenes are now closed, we can now safely
// close all shared modules // close all shared modules
foreach(IRegionModule mod in sharedModules.Values) foreach (IRegionModule mod in sharedModules.Values)
{ {
mod.Close(); mod.Close();
} }

View File

@ -1048,7 +1048,7 @@ namespace OpenSim.Region.Environment.Scenes
Vector3 normalpart = ipoint - vAbsolutePosition; Vector3 normalpart = ipoint - vAbsolutePosition;
returnresult.normal = normalpart / normalpart.Length; returnresult.normal = normalpart / normalpart.Length;
// It's funny how the LLVector3 object has a Distance function, but the Axiom.Math object doesnt. // It's funny how the LLVector3 object has a Distance function, but the Axiom.Math object doesn't.
// I can write a function to do it.. but I like the fact that this one is Static. // I can write a function to do it.. but I like the fact that this one is Static.
LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z); LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z);

View File

@ -165,7 +165,7 @@ namespace OpenSim.Region.Physics.Meshing
for (int i = 0; i < workingMiddle.vertices.Count; i++) for (int i = 0; i < workingMiddle.vertices.Count; i++)
{ {
int iNext = (i + 1); int iNext = i + 1;
if (workingMiddle.vertices[i] == null) // Can't make a simplex here if (workingMiddle.vertices[i] == null) // Can't make a simplex here
{ {
@ -200,7 +200,7 @@ namespace OpenSim.Region.Physics.Meshing
iLastNull = 0; iLastNull = 0;
for (int i = 0; i < workingPlus.vertices.Count; i++) for (int i = 0; i < workingPlus.vertices.Count; i++)
{ {
int iNext = (i + 1); int iNext = i + 1;
if (workingPlus.vertices[i] == null) // Can't make a simplex here if (workingPlus.vertices[i] == null) // Can't make a simplex here
{ {
@ -261,7 +261,7 @@ namespace OpenSim.Region.Physics.Meshing
float twistTotal = twistTop - twistBot; float twistTotal = twistTop - twistBot;
// if the profile has a lot of twist, add more layers otherwise the layers may overlap // if the profile has a lot of twist, add more layers otherwise the layers may overlap
// and the resulting mesh may be quite inaccurate. This method is arbitrary and doesnt // and the resulting mesh may be quite inaccurate. This method is arbitrary and doesn't
// accurately match the viewer // accurately match the viewer
if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 1.5f) steps *= 2; if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 1.5f) steps *= 2;
if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 3.0f) steps *= 2; if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 3.0f) steps *= 2;
@ -292,7 +292,6 @@ namespace OpenSim.Region.Physics.Meshing
System.Console.WriteLine("Extruder: PathScaleX: " + pathScaleX.ToString() + " pathScaleY: " + pathScaleY.ToString()); System.Console.WriteLine("Extruder: PathScaleX: " + pathScaleX.ToString() + " pathScaleY: " + pathScaleY.ToString());
#endif #endif
bool done = false; bool done = false;
do // loop through the length of the path and add the layers do // loop through the length of the path and add the layers
{ {
@ -319,12 +318,16 @@ namespace OpenSim.Region.Physics.Meshing
// apply the taper to the profile before any rotations // apply the taper to the profile before any rotations
if (xProfileScale != 1.0f || yProfileScale != 1.0f) if (xProfileScale != 1.0f || yProfileScale != 1.0f)
{
foreach (Vertex v in newLayer.vertices) foreach (Vertex v in newLayer.vertices)
if ( v != null ) {
if (v != null)
{ {
v.X *= xProfileScale; v.X *= xProfileScale;
v.Y *= yProfileScale; v.Y *= yProfileScale;
} }
}
}
float radiusScale; float radiusScale;
@ -332,8 +335,8 @@ namespace OpenSim.Region.Physics.Meshing
radiusScale = 1.0f - radius * percentOfPath; radiusScale = 1.0f - radius * percentOfPath;
else if (radius < 0.001f) else if (radius < 0.001f)
radiusScale = 1.0f + radius * (1.0f - percentOfPath); radiusScale = 1.0f + radius * (1.0f - percentOfPath);
else radiusScale = 1.0f; else
radiusScale = 1.0f;
#if SPAM #if SPAM
System.Console.WriteLine("Extruder: angle: " + angle.ToString() + " percentOfPath: " + percentOfPath.ToString() System.Console.WriteLine("Extruder: angle: " + angle.ToString() + " percentOfPath: " + percentOfPath.ToString()
@ -379,10 +382,12 @@ namespace OpenSim.Region.Physics.Meshing
} }
if (angle == startAngle) // the first layer, invert normals if (angle == startAngle) // the first layer, invert normals
{
foreach (Triangle t in newLayer.triangles) foreach (Triangle t in newLayer.triangles)
{ {
t.invertNormal(); t.invertNormal();
} }
}
result.Append(newLayer); result.Append(newLayer);
@ -397,7 +402,9 @@ namespace OpenSim.Region.Physics.Meshing
int iNext = (i + 1); int iNext = (i + 1);
if (lastLayer.vertices[i] == null) // cant make a simplex here if (lastLayer.vertices[i] == null) // cant make a simplex here
{
iLastNull = i + 1; iLastNull = i + 1;
}
else else
{ {
if (i == count - 1) // End of list if (i == count - 1) // End of list
@ -413,17 +420,17 @@ namespace OpenSim.Region.Physics.Meshing
} }
lastLayer = newLayer; lastLayer = newLayer;
// calc the angle for the next interation of the loop // calc the angle for the next interation of the loop
if (angle >= endAngle) if (angle >= endAngle)
{
done = true; done = true;
}
else else
{ {
angle = stepSize * ++step; angle = stepSize * ++step;
if (angle > endAngle) if (angle > endAngle)
angle = endAngle; angle = endAngle;
} }
} while (!done); // loop until all the layers in the path are completed } while (!done); // loop until all the layers in the path are completed
// scale the mesh to the desired size // scale the mesh to the desired size

View File

@ -75,7 +75,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL
{ {
ListPair VFC = new ListPair(FunctionCode, new Variable()); ListPair VFC = new ListPair(FunctionCode, new Variable());
//Console.WriteLine("-------------------------") //Console.WriteLine("-------------------------")
//Console.WriteLine( FunctionCode.ToString()) //Console.WriteLine(FunctionCode.ToString())
//Console.WriteLine("-------------------------") //Console.WriteLine("-------------------------")
YPCompiler.convertFunctionCSharp(FunctionCode); YPCompiler.convertFunctionCSharp(FunctionCode);
//YPCompiler.convertStringCodesCSharp(VFC); //YPCompiler.convertStringCodesCSharp(VFC);

View File

@ -73,7 +73,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog
// If match has already indexed answers for a signature, we need to add // If match has already indexed answers for a signature, we need to add
// this to the existing indexed answers. // this to the existing indexed answers.
foreach(int signature in _gotAnswersForSignature.Keys) foreach (int signature in _gotAnswersForSignature.Keys)
indexAnswerForSignature(answerCopy, signature); indexAnswerForSignature(answerCopy, signature);
} }

View File

@ -184,7 +184,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
List<Object> data = new List<Object>(); List<Object> data = new List<Object>();
Object[] listeners=m_Listener.GetSerializationData(itemID); Object[] listeners=m_Listener.GetSerializationData(itemID);
if(listeners.Length > 0) if (listeners.Length > 0)
{ {
data.Add("listener"); data.Add("listener");
data.Add(listeners.Length); data.Add(listeners.Length);
@ -192,7 +192,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
Object[] timers=m_Timer.GetSerializationData(itemID); Object[] timers=m_Timer.GetSerializationData(itemID);
if(timers.Length > 0) if (timers.Length > 0)
{ {
data.Add("timer"); data.Add("timer");
data.Add(timers.Length); data.Add(timers.Length);
@ -200,7 +200,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
Object[] sensors=m_SensorRepeat.GetSerializationData(itemID); Object[] sensors=m_SensorRepeat.GetSerializationData(itemID);
if(sensors.Length > 0) if (sensors.Length > 0)
{ {
data.Add("sensor"); data.Add("sensor");
data.Add(sensors.Length); data.Add(sensors.Length);
@ -211,36 +211,36 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
public void CreateFromData(uint localID, LLUUID itemID, LLUUID hostID, public void CreateFromData(uint localID, LLUUID itemID, LLUUID hostID,
Object[] data) Object[] data)
{ {
int idx=0; int idx = 0;
int len; int len;
while(idx < data.Length) while (idx < data.Length)
{ {
string type = data[idx].ToString(); string type = data[idx].ToString();
len = (int)data[idx+1]; len = (int)data[idx+1];
idx+=2; idx+=2;
if(len > 0) if (len > 0)
{ {
Object[] item = new Object[len]; Object[] item = new Object[len];
Array.Copy(data, idx, item, 0, len); Array.Copy(data, idx, item, 0, len);
idx+=len; idx+=len;
switch(type) switch (type)
{ {
case "listener": case "listener":
m_Listener.CreateFromData(localID, itemID, hostID, m_Listener.CreateFromData(localID, itemID, hostID,
item); item);
break; break;
case "timer": case "timer":
m_Timer.CreateFromData(localID, itemID, hostID, item); m_Timer.CreateFromData(localID, itemID, hostID, item);
break; break;
case "sensor": case "sensor":
m_SensorRepeat.CreateFromData(localID, itemID, hostID, m_SensorRepeat.CreateFromData(localID, itemID, hostID,
item); item);
break; break;
} }
} }
@ -249,12 +249,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
#region Check llRemoteData channels #region Check llRemoteData channels
#endregion #endregion
#region Check llListeners #region Check llListeners
#endregion #endregion
/// <summary> /// <summary>

View File

@ -57,11 +57,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
} }
public LLUUID RegisterRequest(uint localID, LLUUID itemID, public LLUUID RegisterRequest(uint localID, LLUUID itemID,
string identifier) string identifier)
{ {
lock(DataserverRequests) lock (DataserverRequests)
{ {
if(DataserverRequests.ContainsKey(identifier)) if (DataserverRequests.ContainsKey(identifier))
return LLUUID.Zero; return LLUUID.Zero;
DataserverRequest ds = new DataserverRequest(); DataserverRequest ds = new DataserverRequest();
@ -84,9 +84,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
{ {
DataserverRequest ds; DataserverRequest ds;
lock(DataserverRequests) lock (DataserverRequests)
{ {
if(!DataserverRequests.ContainsKey(identifier)) if (!DataserverRequests.ContainsKey(identifier))
return; return;
ds=DataserverRequests[identifier]; ds=DataserverRequests[identifier];
@ -94,7 +94,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
} }
m_CmdManager.m_ScriptEngine.PostObjectEvent(ds.localID, m_CmdManager.m_ScriptEngine.PostObjectEvent(ds.localID,
new XEventParams( "dataserver", new Object[] new XEventParams("dataserver", new Object[]
{ new LSL_Types.LSLString(ds.ID.ToString()), { new LSL_Types.LSLString(ds.ID.ToString()),
new LSL_Types.LSLString(reply)}, new LSL_Types.LSLString(reply)},
new XDetectParams[0])); new XDetectParams[0]));
@ -102,11 +102,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
public void RemoveEvents(uint localID, LLUUID itemID) public void RemoveEvents(uint localID, LLUUID itemID)
{ {
lock(DataserverRequests) lock (DataserverRequests)
{ {
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
{ {
if(ds.itemID == itemID) if (ds.itemID == itemID)
DataserverRequests.Remove(ds.handle); DataserverRequests.Remove(ds.handle);
} }
} }
@ -114,11 +114,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
public void ExpireRequests() public void ExpireRequests()
{ {
lock(DataserverRequests) lock (DataserverRequests)
{ {
foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values))
{ {
if(ds.startTime > DateTime.Now.AddSeconds(30)) if (ds.startTime > DateTime.Now.AddSeconds(30))
DataserverRequests.Remove(ds.handle); DataserverRequests.Remove(ds.handle);
} }
} }

View File

@ -55,14 +55,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
public void AddObjectEvent(uint localID, string eventName, XDetectParams det) public void AddObjectEvent(uint localID, string eventName, XDetectParams det)
{ {
SceneObjectPart part = m_CmdManager.m_ScriptEngine.World. SceneObjectPart part = m_CmdManager.m_ScriptEngine.World.
GetSceneObjectPart(localID); GetSceneObjectPart(localID);
if(part == null) // Can't register events for non-prims if (part == null) // Can't register events for non-prims
return; return;
if(!part.ContainsScripts()) if (!part.ContainsScripts())
return; return;
} }
public void RemoveObjectEvent(uint localID, string eventName, LLUUID id) public void RemoveObjectEvent(uint localID, string eventName, LLUUID id)

View File

@ -77,7 +77,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
foreach (XEngine xe in XEngine.ScriptEngines) foreach (XEngine xe in XEngine.ScriptEngines)
{ {
if(xe.PostObjectEvent(httpInfo.localID, if (xe.PostObjectEvent(httpInfo.localID,
new XEventParams("http_response", new XEventParams("http_response",
resobj, new XDetectParams[0]))) resobj, new XDetectParams[0])))
break; break;

View File

@ -69,7 +69,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
private object SenseRepeatListLock = new object(); private object SenseRepeatListLock = new object();
public void SetSenseRepeatEvent(uint m_localID, LLUUID m_itemID, public void SetSenseRepeatEvent(uint m_localID, LLUUID m_itemID,
string name, LLUUID keyID, int type, double range, double arc, double sec, SceneObjectPart host) string name, LLUUID keyID, int type, double range,
double arc, double sec, SceneObjectPart host)
{ {
Console.WriteLine("SetSensorEvent"); Console.WriteLine("SetSensorEvent");
@ -319,7 +320,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
new XDetectParams[SensedObjects.Length]; new XDetectParams[SensedObjects.Length];
int idx; int idx;
for(idx = 0 ; idx < SensedObjects.Length; idx++) for (idx = 0; idx < SensedObjects.Length; idx++)
{ {
detect[idx].Key=(LLUUID)(SensedObjects.Data[idx]); detect[idx].Key=(LLUUID)(SensedObjects.Data[idx]);
} }
@ -339,7 +340,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
foreach (SenseRepeatClass ts in SenseRepeaters) foreach (SenseRepeatClass ts in SenseRepeaters)
{ {
if(ts.itemID == itemID) if (ts.itemID == itemID)
{ {
data.Add(ts.interval); data.Add(ts.interval);
data.Add(ts.name); data.Add(ts.name);
@ -353,18 +354,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
} }
public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID,
Object[] data) Object[] data)
{ {
SceneObjectPart part = SceneObjectPart part =
m_CmdManager.m_ScriptEngine.World.GetSceneObjectPart( m_CmdManager.m_ScriptEngine.World.GetSceneObjectPart(
objectID); objectID);
if(part == null) if (part == null)
return; return;
int idx=0; int idx = 0;
while(idx < data.Length) while (idx < data.Length)
{ {
SenseRepeatClass ts = new SenseRepeatClass(); SenseRepeatClass ts = new SenseRepeatClass();
@ -380,12 +381,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
ts.host = part; ts.host = part;
ts.next = ts.next =
DateTime.Now.ToUniversalTime().AddSeconds(ts.interval); DateTime.Now.ToUniversalTime().AddSeconds(ts.interval);
SenseRepeaters.Add(ts); SenseRepeaters.Add(ts);
idx += 6; idx += 6;
} }
} }
} }
} }

View File

@ -131,7 +131,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
{ {
foreach (TimerClass ts in Timers) foreach (TimerClass ts in Timers)
{ {
if(ts.itemID == itemID) if (ts.itemID == itemID)
{ {
data.Add(ts.interval); data.Add(ts.interval);
data.Add(ts.next-DateTime.Now.Ticks); data.Add(ts.next-DateTime.Now.Ticks);
@ -142,11 +142,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
} }
public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID,
Object[] data) Object[] data)
{ {
int idx=0; int idx = 0;
while(idx < data.Length) while (idx < data.Length)
{ {
TimerClass ts = new TimerClass(); TimerClass ts = new TimerClass();

View File

@ -71,10 +71,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
foreach (XEngine xe in XEngine.ScriptEngines) foreach (XEngine xe in XEngine.ScriptEngines)
{ {
if(xe.PostScriptEvent( if (xe.PostScriptEvent(
rInfo.GetItemID(), new XEventParams( rInfo.GetItemID(), new XEventParams(
"remote_data", resobj, "remote_data", resobj,
new XDetectParams[0]))) new XDetectParams[0])))
break; break;
} }
@ -100,10 +100,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins
foreach (XEngine xe in XEngine.ScriptEngines) foreach (XEngine xe in XEngine.ScriptEngines)
{ {
if(xe.PostScriptEvent( if (xe.PostScriptEvent(
srdInfo.m_itemID, new XEventParams( srdInfo.m_itemID, new XEventParams(
"remote_data", resobj, "remote_data", resobj,
new XDetectParams[0]))) new XDetectParams[0])))
break; break;
} }

View File

@ -256,7 +256,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// string OutFile = Path.Combine(ScriptEnginesPath, // string OutFile = Path.Combine(ScriptEnginesPath,
// FilePrefix + "_compiled_" + asset + ".dll"); // FilePrefix + "_compiled_" + asset + ".dll");
if(File.Exists(OutFile)) if (File.Exists(OutFile))
return OutFile; return OutFile;
if (!Directory.Exists(ScriptEnginesPath)) if (!Directory.Exists(ScriptEnginesPath))
@ -271,7 +271,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
if (!Directory.Exists(Path.Combine(ScriptEnginesPath, if (!Directory.Exists(Path.Combine(ScriptEnginesPath,
m_scriptEngine.World.RegionInfo.RegionID.ToString()))) m_scriptEngine.World.RegionInfo.RegionID.ToString())))
{ {
try try
{ {
@ -284,7 +284,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
enumCompileType l = DefaultCompileLanguage; enumCompileType l = DefaultCompileLanguage;
if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture))
l = enumCompileType.cs; l = enumCompileType.cs;
if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture))
@ -334,7 +333,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// End of insert // End of insert
switch (l) switch (l)
{ {
case enumCompileType.cs: case enumCompileType.cs:
@ -368,27 +366,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine
private static string CreateCSCompilerScript(string compileScript) private static string CreateCSCompilerScript(string compileScript)
{ {
compileScript = String.Empty + compileScript = String.Empty +
"using OpenSim.Region.ScriptEngine.XEngine.Script; using System.Collections.Generic;\r\n" + "using OpenSim.Region.ScriptEngine.XEngine.Script; using System.Collections.Generic;\r\n" +
String.Empty + "namespace SecondLife { " + String.Empty + "namespace SecondLife { " +
String.Empty + "public class Script : OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass { \r\n" + String.Empty + "public class Script : OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass { \r\n" +
@"public Script() { } " + @"public Script() { } " +
compileScript + compileScript +
"} }\r\n"; "} }\r\n";
return compileScript; return compileScript;
} }
private static string CreateVBCompilerScript(string compileScript) private static string CreateVBCompilerScript(string compileScript)
{ {
compileScript = String.Empty + compileScript = String.Empty +
"Imports OpenSim.Region.ScriptEngine.XEngine.Script: Imports System.Collections.Generic: " + "Imports OpenSim.Region.ScriptEngine.XEngine.Script: Imports System.Collections.Generic: " +
String.Empty + "NameSpace SecondLife:" + String.Empty + "NameSpace SecondLife:" +
String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass: " + String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass: " +
"\r\nPublic Sub New()\r\nEnd Sub: " + "\r\nPublic Sub New()\r\nEnd Sub: " +
compileScript + compileScript +
":End Class :End Namespace\r\n"; ":End Class :End Namespace\r\n";
return compileScript; return compileScript;
} }
@ -404,8 +400,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// Output assembly name // Output assembly name
scriptCompileCounter++; scriptCompileCounter++;
string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine( string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine(
m_scriptEngine.World.RegionInfo.RegionID.ToString(), m_scriptEngine.World.RegionInfo.RegionID.ToString(),
FilePrefix + "_compiled_" + asset + ".dll")); FilePrefix + "_compiled_" + asset + ".dll"));
#if DEBUG #if DEBUG
// m_scriptEngine.Log.Debug("[" + m_scriptEngine.ScriptEngineName + "]: Starting compile of \"" + OutFile + "\"."); // m_scriptEngine.Log.Debug("[" + m_scriptEngine.ScriptEngineName + "]: Starting compile of \"" + OutFile + "\".");
#endif #endif
@ -490,8 +486,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
foreach (CompilerError CompErr in results.Errors) foreach (CompilerError CompErr in results.Errors)
{ {
errtext += "Line number " + (CompErr.Line - LinesToRemoveOnError) + errtext += "Line number " + (CompErr.Line - LinesToRemoveOnError) +
", Error Number: " + CompErr.ErrorNumber + ", Error Number: " + CompErr.ErrorNumber +
", '" + CompErr.ErrorText + "'\r\n"; ", '" + CompErr.ErrorText + "'\r\n";
} }
if (!File.Exists(OutFile)) if (!File.Exists(OutFile))
{ {
@ -499,7 +495,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
} }
// //
// NO ERRORS, BUT NO COMPILED FILE // NO ERRORS, BUT NO COMPILED FILE
// //

View File

@ -79,7 +79,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
} }
// Save the flags we just computed and return the result // Save the flags we just computed and return the result
if(eventFlags != 0) if (eventFlags != 0)
m_stateEvents.Add(m_Script.State, eventFlags); m_stateEvents.Add(m_Script.State, eventFlags);
//Console.WriteLine("Returning {0:x}", eventFlags); //Console.WriteLine("Returning {0:x}", eventFlags);
@ -130,7 +130,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
#endif #endif
// Found // Found
ev.Invoke(m_Script, args); ev.Invoke(m_Script, args);
} }
} }
} }

View File

@ -111,8 +111,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
if(text.Length > 1023) if (text.Length > 1023)
text=text.Substring(0, 1023); text = text.Substring(0, 1023);
World.SimChat(Helpers.StringToField(text), World.SimChat(Helpers.StringToField(text),
ChatTypeEnum.Say, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); ChatTypeEnum.Say, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false);
@ -129,13 +129,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine
private LLUUID InventorySelf() private LLUUID InventorySelf()
{ {
LLUUID invItemID=new LLUUID(); LLUUID invItemID = new LLUUID();
foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory)
{ {
if (inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) if (inv.Value.Type == 10 && inv.Value.ItemID == m_itemID)
{ {
invItemID=inv.Key; invItemID = inv.Key;
break; break;
} }
} }
@ -300,7 +300,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return angle; return angle;
} }
// Old implementation of llRot2Euler, now normalized // Old implementation of llRot2Euler, now normalized
public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r)
@ -322,7 +321,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return new LSL_Types.Vector3(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z))); return new LSL_Types.Vector3(0.0, -Math.PI / 2, NormalizeAngle(Math.Atan2((r.z * r.s + r.x * r.y), 0.5 - t.x - t.z)));
} }
// Xantor's newer llEuler2Rot() *try the second* inverted quaternions (-x,-y,-z,w) as LL seems to like // Xantor's newer llEuler2Rot() *try the second* inverted quaternions (-x,-y,-z,w) as LL seems to like
// New and improved, now actually works as described. Prim rotates as expected as does llRot2Euler. // New and improved, now actually works as described. Prim rotates as expected as does llRot2Euler.
@ -363,7 +361,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return new LSL_Types.Quaternion(x, y, z, s); return new LSL_Types.Quaternion(x, y, z, s);
} }
public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
@ -388,6 +385,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
return (new LSL_Types.Vector3(0, 0, 1) * r); return (new LSL_Types.Vector3(0, 0, 1) * r);
} }
public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b)
{ {
//A and B should both be normalized //A and B should both be normalized
@ -401,12 +399,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return new LSL_Types.Quaternion(axis.x * s, axis.y * s, axis.z * s, (float)Math.Cos(angle / 2)); return new LSL_Types.Quaternion(axis.x * s, axis.y * s, axis.z * s, (float)Math.Cos(angle / 2));
} }
public void llWhisper(int channelID, string text) public void llWhisper(int channelID, string text)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
if(text.Length > 1023) if (text.Length > 1023)
text=text.Substring(0, 1023); text = text.Substring(0, 1023);
World.SimChat(Helpers.StringToField(text), World.SimChat(Helpers.StringToField(text),
ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false);
@ -419,8 +418,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
if(text.Length > 1023) if (text.Length > 1023)
text=text.Substring(0, 1023); text = text.Substring(0, 1023);
World.SimChat(Helpers.StringToField(text), World.SimChat(Helpers.StringToField(text),
ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, true); ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, true);
@ -437,9 +436,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return; return;
} }
if (text.Length > 1023)
if(text.Length > 1023) text = text.Substring(0, 1023);
text=text.Substring(0, 1023);
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
@ -486,7 +484,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
LLUUID.TryParse(id, out keyID); LLUUID.TryParse(id, out keyID);
m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.SetSenseRepeatEvent(m_localID, m_itemID, name, keyID, type, range, arc, rate, m_host); m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.SetSenseRepeatEvent(m_localID, m_itemID, name, keyID, type, range, arc, rate, m_host);
} }
public void llSensorRemove() public void llSensorRemove()
{ {
@ -520,17 +518,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (SensedObject == null) if (SensedObject == null)
return String.Empty; return String.Empty;
return SensedObject.Name; return SensedObject.Name;
} }
public string llDetectedName(int number) public string llDetectedName(int number)
{ {
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number);
if(sensedUUID != null) if (sensedUUID != null)
return resolveName(sensedUUID); return resolveName(sensedUUID);
return String.Empty; return String.Empty;
} }
public LLUUID uuidDetectedKey(int number) public LLUUID uuidDetectedKey(int number)
{ {
@ -540,7 +537,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
public EntityBase entityDetectedKey(int number) public EntityBase entityDetectedKey(int number)
{ {
LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number);
if(sensedUUID != null) if (sensedUUID != null)
{ {
EntityBase SensedObject = null; EntityBase SensedObject = null;
lock (World.Entities) lock (World.Entities)
@ -567,7 +564,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// returns UUID of owner of object detected // returns UUID of owner of object detected
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
EntityBase SensedObject = entityDetectedKey(number); EntityBase SensedObject = entityDetectedKey(number);
if (SensedObject ==null) if (SensedObject == null)
return String.Empty; return String.Empty;
LLUUID SensedUUID = uuidDetectedKey(number); LLUUID SensedUUID = uuidDetectedKey(number);
if (World.GetScenePresence(SensedUUID) == null) if (World.GetScenePresence(SensedUUID) == null)
@ -575,7 +572,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine
// sensed object is not an avatar // sensed object is not an avatar
// so get the owner of the sensed object // so get the owner of the sensed object
SceneObjectPart SOP = World.GetSceneObjectPart(SensedUUID); SceneObjectPart SOP = World.GetSceneObjectPart(SensedUUID);
if (SOP != null) { return SOP.ObjectOwner.ToString(); } if (SOP != null)
{
return SOP.ObjectOwner.ToString();
}
} }
else else
{ {
@ -583,9 +583,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return SensedUUID.ToString(); return SensedUUID.ToString();
} }
return String.Empty; return String.Empty;
} }
public LSL_Types.LSLInteger llDetectedType(int number) public LSL_Types.LSLInteger llDetectedType(int number)
@ -599,14 +597,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine
LLUUID SensedUUID = uuidDetectedKey(number); LLUUID SensedUUID = uuidDetectedKey(number);
LSL_Types.Vector3 ZeroVector = new LSL_Types.Vector3(0, 0, 0); LSL_Types.Vector3 ZeroVector = new LSL_Types.Vector3(0, 0, 0);
if (World.GetScenePresence(SensedUUID) != null) mask |= 0x01; // actor if (World.GetScenePresence(SensedUUID) != null)
mask |= 0x01; // actor
if (SensedObject.Velocity.Equals(ZeroVector)) if (SensedObject.Velocity.Equals(ZeroVector))
mask |= 0x04; // passive non-moving mask |= 0x04; // passive non-moving
else else
mask |= 0x02; // active moving mask |= 0x02; // active moving
if (SensedObject is IScript) mask |= 0x08; // Scripted. It COULD have one hidden ...
return mask;
if (SensedObject is IScript)
mask |= 0x08; // Scripted. It COULD have one hidden ...
return mask;
} }
public LSL_Types.Vector3 llDetectedPos(int number) public LSL_Types.Vector3 llDetectedPos(int number)
@ -627,7 +629,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return new LSL_Types.Vector3(0, 0, 0); return new LSL_Types.Vector3(0, 0, 0);
return new LSL_Types.Vector3(SensedObject.Velocity.X, SensedObject.Velocity.Y, SensedObject.Velocity.Z); return new LSL_Types.Vector3(SensedObject.Velocity.X, SensedObject.Velocity.Y, SensedObject.Velocity.Z);
// return new LSL_Types.Vector3(); // return new LSL_Types.Vector3();
} }
public LSL_Types.Vector3 llDetectedGrab(int number) public LSL_Types.Vector3 llDetectedGrab(int number)
@ -702,8 +704,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
m_host.ScriptSetPhysicsStatus(true); m_host.ScriptSetPhysicsStatus(true);
else else
m_host.ScriptSetPhysicsStatus(false); m_host.ScriptSetPhysicsStatus(false);
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_PHANTOM) == BuiltIn_Commands_BaseClass.STATUS_PHANTOM) if ((status & BuiltIn_Commands_BaseClass.STATUS_PHANTOM) == BuiltIn_Commands_BaseClass.STATUS_PHANTOM)
{ {
if (value == 1) if (value == 1)
@ -711,27 +713,32 @@ namespace OpenSim.Region.ScriptEngine.XEngine
else else
m_host.ScriptSetPhantomStatus(false); m_host.ScriptSetPhantomStatus(false);
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) == BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) if ((status & BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) == BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS)
{ {
m_host.AddFlag(LLObject.ObjectFlags.CastShadows); m_host.AddFlag(LLObject.ObjectFlags.CastShadows);
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X)
{ {
statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_X; statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_X;
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y)
{ {
statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y; statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y;
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z)
{ {
statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z; statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z;
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB)
{ {
NotImplemented("llSetStatus - STATUS_BLOCK_GRAB"); NotImplemented("llSetStatus - STATUS_BLOCK_GRAB");
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) if ((status & BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE)
{ {
if (value == 1) if (value == 1)
@ -739,18 +746,20 @@ namespace OpenSim.Region.ScriptEngine.XEngine
else else
m_host.SetDieAtEdge(false); m_host.SetDieAtEdge(false);
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) if ((status & BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE)
{ {
NotImplemented("llSetStatus - STATUS_RETURN_AT_EDGE"); NotImplemented("llSetStatus - STATUS_RETURN_AT_EDGE");
} }
if ((status & BuiltIn_Commands_BaseClass.STATUS_SANDBOX) == BuiltIn_Commands_BaseClass.STATUS_SANDBOX) if ((status & BuiltIn_Commands_BaseClass.STATUS_SANDBOX) == BuiltIn_Commands_BaseClass.STATUS_SANDBOX)
{ {
NotImplemented("llSetStatus - STATUS_SANDBOX"); NotImplemented("llSetStatus - STATUS_SANDBOX");
} }
if (statusrotationaxis != 0) if (statusrotationaxis != 0)
{ {
m_host.SetAxisRotation(statusrotationaxis, value); m_host.SetAxisRotation(statusrotationaxis, value);
} }
} }
@ -766,23 +775,26 @@ namespace OpenSim.Region.ScriptEngine.XEngine
return 1; return 1;
} }
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_PHANTOM: case BuiltIn_Commands_BaseClass.STATUS_PHANTOM:
if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == (uint)LLObject.ObjectFlags.Phantom) if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == (uint)LLObject.ObjectFlags.Phantom)
{ {
return 1; return 1;
} }
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS: case BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS:
if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.CastShadows) == (uint)LLObject.ObjectFlags.CastShadows) if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.CastShadows) == (uint)LLObject.ObjectFlags.CastShadows)
{ {
return 1; return 1;
} }
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB: case BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB:
NotImplemented("llGetStatus - STATUS_BLOCK_GRAB"); NotImplemented("llGetStatus - STATUS_BLOCK_GRAB");
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE:
case BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE:
if (m_host.GetDieAtEdge()) if (m_host.GetDieAtEdge())
return 1; return 1;
else else
@ -791,15 +803,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine
case BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE: case BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE:
NotImplemented("llGetStatus - STATUS_RETURN_AT_EDGE"); NotImplemented("llGetStatus - STATUS_RETURN_AT_EDGE");
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_ROTATE_X: case BuiltIn_Commands_BaseClass.STATUS_ROTATE_X:
NotImplemented("llGetStatus - STATUS_ROTATE_X"); NotImplemented("llGetStatus - STATUS_ROTATE_X");
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y: case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y:
NotImplemented("llGetStatus - STATUS_ROTATE_Y"); NotImplemented("llGetStatus - STATUS_ROTATE_Y");
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z: case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z:
NotImplemented("llGetStatus - STATUS_ROTATE_Z"); NotImplemented("llGetStatus - STATUS_ROTATE_Z");
return 0; return 0;
case BuiltIn_Commands_BaseClass.STATUS_SANDBOX: case BuiltIn_Commands_BaseClass.STATUS_SANDBOX:
NotImplemented("llGetStatus - STATUS_SANDBOX"); NotImplemented("llGetStatus - STATUS_SANDBOX");
return 0; return 0;
@ -2499,17 +2515,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine
string reply = String.Empty; string reply = String.Empty;
switch(data) switch (data)
{ {
case 1: // DATA_ONLINE (0|1) case 1: // DATA_ONLINE (0|1)
// TODO: implement fetching of this information // TODO: implement fetching of this information
// if(userProfile.CurrentAgent.AgentOnline) // if (userProfile.CurrentAgent.AgentOnline)
// reply = "1"; // reply = "1";
// else // else
reply = "0"; reply = "0";
break; break;
case 2: // DATA_NAME (First Last) case 2: // DATA_NAME (First Last)
reply = userProfile.FirstName+" "+userProfile.SurName; reply = userProfile.FirstName + " " + userProfile.SurName;
break; break;
case 3: // DATA_BORN (YYYY-MM-DD) case 3: // DATA_BORN (YYYY-MM-DD)
DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0); DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0);
@ -2529,8 +2545,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
LLUUID rq = LLUUID.Random(); LLUUID rq = LLUUID.Random();
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.RegisterRequest(m_localID, m_Dataserver.RegisterRequest(m_localID,
m_itemID, rq.ToString()); m_itemID, rq.ToString());
m_ScriptEngine.m_ASYNCLSLCommandManager. m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.DataserverReply(rq.ToString(), reply); m_Dataserver.DataserverReply(rq.ToString(), reply);
@ -2547,8 +2563,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (item.Type == 3 && item.Name == name) if (item.Type == 3 && item.Name == name)
{ {
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.RegisterRequest(m_localID, m_Dataserver.RegisterRequest(m_localID,
m_itemID, item.AssetID.ToString()); m_itemID, item.AssetID.ToString());
LLVector3 region = new LLVector3( LLVector3 region = new LLVector3(
World.RegionInfo.RegionLocX * Constants.RegionSize, World.RegionInfo.RegionLocX * Constants.RegionSize,
@ -2565,8 +2581,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine
string reply = region.ToString(); string reply = region.ToString();
m_ScriptEngine.m_ASYNCLSLCommandManager. m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.DataserverReply(i.ToString(), m_Dataserver.DataserverReply(i.ToString(),
reply); reply);
}, false); }, false);
return tid.ToString(); return tid.ToString();
@ -3314,25 +3330,28 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{ {
switch (src[i]) switch (src[i])
{ {
case '<' : case '<':
parens++; parens++;
length++; length++;
break; break;
case '>' : case '>':
if (parens > 0) if (parens > 0)
parens--; parens--;
length++; length++;
break; break;
case ',' : case ',':
if (parens == 0) if (parens == 0)
{ {
result.Add(src.Substring(start,length).Trim()); result.Add(src.Substring(start,length).Trim());
start += length+1; start += length+1;
length = 0; length = 0;
} else }
else
{
length++; length++;
}
break; break;
default : default:
length++; length++;
break; break;
} }
@ -3341,7 +3360,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine
result.Add(src.Substring(start,length).Trim()); result.Add(src.Substring(start,length).Trim());
return result; return result;
} }
/// <summary> /// <summary>
@ -5290,11 +5308,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine
if (active[j]) if (active[j])
{ {
// scan all of the markers // scan all of the markers
if ((offset[j] = src.IndexOf((string)spcarray[j-seplen],beginning)) == -1) if ((offset[j] = src.IndexOf((string)spcarray[j-seplen], beginning)) == -1)
{ {
// not present at all // not present at all
active[j] = false; active[j] = false;
} else }
else
{ {
// present and correct // present and correct
if (offset[j] < offset[best]) if (offset[j] < offset[best])
@ -5313,7 +5332,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine
{ {
// no markers were found on this pass // no markers were found on this pass
// so we're pretty much done // so we're pretty much done
tokens.Add(src.Substring(beginning, srclen-beginning)); tokens.Add(src.Substring(beginning, srclen - beginning));
break; break;
} }
@ -5322,15 +5341,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine
tokens.Add(src.Substring(beginning,offset[best]-beginning)); tokens.Add(src.Substring(beginning,offset[best]-beginning));
if (best<seplen) if (best < seplen)
{ {
beginning = offset[best]+((string)separray[best]).Length; beginning = offset[best] + ((string)separray[best]).Length;
} else }
{ else
beginning = offset[best]+((string)spcarray[best-seplen]).Length; {
tokens.Add(spcarray[best-seplen]); beginning = offset[best] + ((string)spcarray[best - seplen]).Length;
tokens.Add(spcarray[best - seplen]);
} }
} }
// This an awkward an not very intuitive boundary case. If the // This an awkward an not very intuitive boundary case. If the
@ -5475,60 +5494,60 @@ namespace OpenSim.Region.ScriptEngine.XEngine
public string llRequestSimulatorData(string simulator, int data) public string llRequestSimulatorData(string simulator, int data)
{ {
try try
{
m_host.AddScriptLPS(1);
string reply = String.Empty;
RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
switch(data)
{ {
case 5: // DATA_SIM_POS m_host.AddScriptLPS(1);
if(info == null)
return LLUUID.Zero.ToString();
reply = new LSL_Types.Vector3(
info.RegionLocX * Constants.RegionSize,
info.RegionLocY * Constants.RegionSize,
0).ToString();
break;
case 6: // DATA_SIM_STATUS
if(info != null)
reply = "up"; // Duh!
else
reply = "unknown";
break;
case 7: // DATA_SIM_RATING
if(info == null)
return LLUUID.Zero.ToString();
int access = (int)info.EstateSettings.simAccess;
if(access == 21)
reply = "MATURE";
else if(access == 13)
reply = "MATURE";
else
reply = "UNKNOWN";
break;
default:
return LLUUID.Zero.ToString(); // Raise no event
}
LLUUID rq = LLUUID.Random();
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. string reply = String.Empty;
RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator);
switch (data)
{
case 5: // DATA_SIM_POS
if (info == null)
return LLUUID.Zero.ToString();
reply = new LSL_Types.Vector3(
info.RegionLocX * Constants.RegionSize,
info.RegionLocY * Constants.RegionSize,
0).ToString();
break;
case 6: // DATA_SIM_STATUS
if (info != null)
reply = "up"; // Duh!
else
reply = "unknown";
break;
case 7: // DATA_SIM_RATING
if (info == null)
return LLUUID.Zero.ToString();
int access = (int)info.EstateSettings.simAccess;
if (access == 21)
reply = "MATURE";
else if (access == 13)
reply = "MATURE";
else
reply = "UNKNOWN";
break;
default:
return LLUUID.Zero.ToString(); // Raise no event
}
LLUUID rq = LLUUID.Random();
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.RegisterRequest(m_localID, m_Dataserver.RegisterRequest(m_localID,
m_itemID, rq.ToString()); m_itemID, rq.ToString());
m_ScriptEngine.m_ASYNCLSLCommandManager. m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.DataserverReply(rq.ToString(), reply); m_Dataserver.DataserverReply(rq.ToString(), reply);
return tid.ToString(); return tid.ToString();
} }
catch(Exception e) catch(Exception e)
{ {
Console.WriteLine(e.ToString()); Console.WriteLine(e.ToString());
return LLUUID.Zero.ToString(); return LLUUID.Zero.ToString();
} }
} }
public void llForceMouselook(int mouselook) public void llForceMouselook(int mouselook)
@ -5543,7 +5562,7 @@ return LLUUID.Zero.ToString();
LLUUID key = new LLUUID(); LLUUID key = new LLUUID();
if (LLUUID.TryParse(id,out key)) if (LLUUID.TryParse(id,out key))
{ {
return (double)World.GetSceneObjectPart(World.Entities[key].LocalId).GetMass(); return (double) World.GetSceneObjectPart(World.Entities[key].LocalId).GetMass();
} }
return 0; return 0;
} }
@ -5562,7 +5581,6 @@ return LLUUID.Zero.ToString();
public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end)
{ {
LSL_Types.list pref = null; LSL_Types.list pref = null;
m_host.AddScriptLPS(1); m_host.AddScriptLPS(1);
@ -5592,9 +5610,9 @@ return LLUUID.Zero.ToString();
pref = dest.GetSublist(0,start-1); pref = dest.GetSublist(0,start-1);
// Only add a suffix if there is something // Only add a suffix if there is something
// beyond the end index (it's inclusive too). // beyond the end index (it's inclusive too).
if (end+1 < dest.Length) if (end + 1 < dest.Length)
{ {
return pref + src + dest.GetSublist(end+1,-1); return pref + src + dest.GetSublist(end + 1, -1);
} }
else else
{ {
@ -5609,9 +5627,9 @@ return LLUUID.Zero.ToString();
// is removed. // is removed.
else else
{ {
if (end+1 < dest.Length) if (end + 1 < dest.Length)
{ {
return src + dest.GetSublist(end+1,-1); return src + dest.GetSublist(end + 1, -1);
} }
else else
{ {
@ -5627,7 +5645,7 @@ return LLUUID.Zero.ToString();
// might have been negative. // might have been negative.
else else
{ {
return dest.GetSublist(end+1,start-1)+src; return dest.GetSublist(end + 1, start - 1) + src;
} }
} }
@ -6250,7 +6268,7 @@ return LLUUID.Zero.ToString();
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.RegisterRequest(m_localID, m_Dataserver.RegisterRequest(m_localID,
m_itemID, item.AssetID.ToString()); m_itemID, item.AssetID.ToString());
if(NotecardCache.IsCached(item.AssetID)) if (NotecardCache.IsCached(item.AssetID))
{ {
m_ScriptEngine.m_ASYNCLSLCommandManager. m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.DataserverReply(item.AssetID.ToString(), m_Dataserver.DataserverReply(item.AssetID.ToString(),
@ -6286,7 +6304,7 @@ return LLUUID.Zero.ToString();
LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.RegisterRequest(m_localID, m_Dataserver.RegisterRequest(m_localID,
m_itemID, item.AssetID.ToString()); m_itemID, item.AssetID.ToString());
if(NotecardCache.IsCached(item.AssetID)) if (NotecardCache.IsCached(item.AssetID))
{ {
m_ScriptEngine.m_ASYNCLSLCommandManager. m_ScriptEngine.m_ASYNCLSLCommandManager.
m_Dataserver.DataserverReply(item.AssetID.ToString(), m_Dataserver.DataserverReply(item.AssetID.ToString(),
@ -6329,13 +6347,13 @@ return LLUUID.Zero.ToString();
{ {
CacheCheck(); CacheCheck();
lock(m_Notecards) lock (m_Notecards)
{ {
if(m_Notecards.ContainsKey(assetID)) if (m_Notecards.ContainsKey(assetID))
return; return;
Notecard nc = new Notecard(); Notecard nc = new Notecard();
nc.lastRef=DateTime.Now; nc.lastRef = DateTime.Now;
nc.text = ParseText(text.Replace("\r", "").Split('\n')); nc.text = ParseText(text.Replace("\r", "").Split('\n'));
m_Notecards[assetID] = nc; m_Notecards[assetID] = nc;
} }
@ -6343,56 +6361,57 @@ return LLUUID.Zero.ToString();
private static string[] ParseText(string[] input) private static string[] ParseText(string[] input)
{ {
int idx=0; int idx = 0;
int level=0; int level = 0;
List<string> output = new List<string>(); List<string> output = new List<string>();
string[] words; string[] words;
while(idx < input.Length) while (idx < input.Length)
{ {
if(input[idx] == "{") if (input[idx] == "{")
{ {
level++; level++;
idx++; idx++;
continue; continue;
} }
if(input[idx]== "}")
if (input[idx]== "}")
{ {
level--; level--;
idx++; idx++;
continue; continue;
} }
switch(level) switch (level)
{ {
case 0: case 0:
words = input[idx].Split(' '); // Linden text ver words = input[idx].Split(' '); // Linden text ver
int version = int.Parse(words[3]); int version = int.Parse(words[3]);
if(version != 2) if (version != 2)
return new String[0]; return new String[0];
break; break;
case 1: case 1:
words = input[idx].Split(' '); words = input[idx].Split(' ');
if(words[0] == "LLEmbeddedItems") if (words[0] == "LLEmbeddedItems")
break; break;
if(words[0] == "Text") if (words[0] == "Text")
{ {
int len = int.Parse(words[2]); int len = int.Parse(words[2]);
idx++; idx++;
int count=-1; int count = -1;
while(count < len) while (count < len)
{ {
int l = input[idx].Length; int l = input[idx].Length;
string ln = input[idx]; string ln = input[idx];
int need = len-count-1; int need = len-count-1;
if(ln.Length > need) if (ln.Length > need)
ln=ln.Substring(0, need); ln = ln.Substring(0, need);
output.Add(ln); output.Add(ln);
count+=ln.Length+1; count += ln.Length + 1;
idx++; idx++;
} }
@ -6401,10 +6420,10 @@ return LLUUID.Zero.ToString();
break; break;
case 2: case 2:
words = input[idx].Split(' '); // count words = input[idx].Split(' '); // count
if(words[0] == "count") if (words[0] == "count")
{ {
int c = int.Parse(words[1]); int c = int.Parse(words[1]);
if(c > 0) if (c > 0)
return new String[0]; return new String[0];
break; break;
} }
@ -6417,7 +6436,7 @@ return LLUUID.Zero.ToString();
public static bool IsCached(LLUUID assetID) public static bool IsCached(LLUUID assetID)
{ {
lock(m_Notecards) lock (m_Notecards)
{ {
return m_Notecards.ContainsKey(assetID); return m_Notecards.ContainsKey(assetID);
} }
@ -6425,10 +6444,10 @@ return LLUUID.Zero.ToString();
public static int GetLines(LLUUID assetID) public static int GetLines(LLUUID assetID)
{ {
if(!IsCached(assetID)) if (!IsCached(assetID))
return -1; return -1;
lock(m_Notecards) lock (m_Notecards)
{ {
m_Notecards[assetID].lastRef = DateTime.Now; m_Notecards[assetID].lastRef = DateTime.Now;
return m_Notecards[assetID].text.Length; return m_Notecards[assetID].text.Length;
@ -6437,23 +6456,23 @@ return LLUUID.Zero.ToString();
public static string GetLine(LLUUID assetID, int line) public static string GetLine(LLUUID assetID, int line)
{ {
if(line < 0) if (line < 0)
return ""; return "";
string data; string data;
if(!IsCached(assetID)) if (!IsCached(assetID))
return ""; return "";
lock(m_Notecards) lock (m_Notecards)
{ {
m_Notecards[assetID].lastRef = DateTime.Now; m_Notecards[assetID].lastRef = DateTime.Now;
if(line >= m_Notecards[assetID].text.Length) if (line >= m_Notecards[assetID].text.Length)
return "\n\n\n"; return "\n\n\n";
data=m_Notecards[assetID].text[line]; data = m_Notecards[assetID].text[line];
if(data.Length > 255) if (data.Length > 255)
data = data.Substring(0, 255); data = data.Substring(0, 255);
return data; return data;
@ -6465,10 +6484,9 @@ return LLUUID.Zero.ToString();
foreach (LLUUID key in new List<LLUUID>(m_Notecards.Keys)) foreach (LLUUID key in new List<LLUUID>(m_Notecards.Keys))
{ {
Notecard nc = m_Notecards[key]; Notecard nc = m_Notecards[key];
if(nc.lastRef.AddSeconds(30) < DateTime.Now) if (nc.lastRef.AddSeconds(30) < DateTime.Now)
m_Notecards.Remove(key); m_Notecards.Remove(key);
} }
} }
} }
} }

View File

@ -37,25 +37,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
public static Assembly OnAssemblyResolve(object sender, public static Assembly OnAssemblyResolve(object sender,
ResolveEventArgs args) ResolveEventArgs args)
{ {
if(!(sender is System.AppDomain)) if (!(sender is System.AppDomain))
return null; return null;
AppDomain myDomain = (AppDomain)sender; AppDomain myDomain = (AppDomain)sender;
string dirName = myDomain.FriendlyName; string dirName = myDomain.FriendlyName;
string[] pathList=new string[] {"bin", "ScriptEngines", string[] pathList = new string[] {"bin", "ScriptEngines",
Path.Combine("ScriptEngines", dirName)}; Path.Combine("ScriptEngines", dirName)};
string assemblyName = args.Name; string assemblyName = args.Name;
if(assemblyName.IndexOf(",") != -1) if (assemblyName.IndexOf(",") != -1)
assemblyName=args.Name.Substring(0, args.Name.IndexOf(",")); assemblyName = args.Name.Substring(0, args.Name.IndexOf(","));
foreach (string s in pathList) foreach (string s in pathList)
{ {
string path=Path.Combine(Directory.GetCurrentDirectory(), string path = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(s, assemblyName))+".dll"; Path.Combine(s, assemblyName))+".dll";
if(File.Exists(path)) if (File.Exists(path))
return Assembly.LoadFrom(path); return Assembly.LoadFrom(path);
} }

View File

@ -106,7 +106,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
{ {
foreach (KeyValuePair<string, object> var in vars) foreach (KeyValuePair<string, object> var in vars)
{ {
if(m_Fields.ContainsKey(var.Key)) if (m_Fields.ContainsKey(var.Key))
{ {
m_Fields[var.Key].SetValue(this, var.Value); m_Fields[var.Key].SetValue(this, var.Value);
} }

View File

@ -1212,8 +1212,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
public LSLInteger(Object o) public LSLInteger(Object o)
{ {
if(!(o is Int32)) if (!(o is Int32))
value=0; value = 0;
else else
value = (int)o; value = (int)o;
} }
@ -1327,11 +1327,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script
public override bool Equals(object o) public override bool Equals(object o)
{ {
if(o is Int32) if (o is Int32)
{ {
return value == (Int32)o; return value == (Int32)o;
} }
if(o is LSLInteger) if (o is LSLInteger)
{ {
return value == ((LSLInteger)o).value; return value == ((LSLInteger)o).value;
} }

File diff suppressed because it is too large Load Diff