diff options
Diffstat (limited to '')
49 files changed, 786 insertions, 770 deletions
diff --git a/OpenSim/Region/Application/OpenSimBackground.cs b/OpenSim/Region/Application/OpenSimBackground.cs index 51a5b67..bfecf3b 100644 --- a/OpenSim/Region/Application/OpenSimBackground.cs +++ b/OpenSim/Region/Application/OpenSimBackground.cs | |||
@@ -31,20 +31,20 @@ using log4net; | |||
31 | using Nini.Config; | 31 | using Nini.Config; |
32 | 32 | ||
33 | namespace OpenSim | 33 | namespace OpenSim |
34 | { | 34 | { |
35 | /// <summary> | 35 | /// <summary> |
36 | /// Consoleless OpenSim region server | 36 | /// Consoleless OpenSim region server |
37 | /// </summary> | 37 | /// </summary> |
38 | public class OpenSimBackground : OpenSimBase | 38 | public class OpenSimBackground : OpenSimBase |
39 | { | 39 | { |
40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 40 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
41 | 41 | ||
42 | private ManualResetEvent WorldHasComeToAnEnd = new ManualResetEvent(false); | 42 | private ManualResetEvent WorldHasComeToAnEnd = new ManualResetEvent(false); |
43 | 43 | ||
44 | public OpenSimBackground(IConfigSource configSource) : base(configSource) | 44 | public OpenSimBackground(IConfigSource configSource) : base(configSource) |
45 | { | 45 | { |
46 | } | 46 | } |
47 | 47 | ||
48 | /// <summary> | 48 | /// <summary> |
49 | /// Performs initialisation of the scene, such as loading configuration from disk. | 49 | /// Performs initialisation of the scene, such as loading configuration from disk. |
50 | /// </summary> | 50 | /// </summary> |
@@ -65,8 +65,8 @@ namespace OpenSim | |||
65 | m_clientServers.Count.ToString(), m_clientServers.Count > 1 ? "s" : ""); | 65 | m_clientServers.Count.ToString(), m_clientServers.Count > 1 ? "s" : ""); |
66 | 66 | ||
67 | WorldHasComeToAnEnd.WaitOne(); | 67 | WorldHasComeToAnEnd.WaitOne(); |
68 | } | 68 | } |
69 | 69 | ||
70 | /// <summary> | 70 | /// <summary> |
71 | /// Performs any last-minute sanity checking and shuts down the region server | 71 | /// Performs any last-minute sanity checking and shuts down the region server |
72 | /// </summary> | 72 | /// </summary> |
@@ -75,6 +75,6 @@ namespace OpenSim | |||
75 | WorldHasComeToAnEnd.Set(); | 75 | WorldHasComeToAnEnd.Set(); |
76 | 76 | ||
77 | base.Shutdown(); | 77 | base.Shutdown(); |
78 | } | 78 | } |
79 | } | 79 | } |
80 | } | 80 | } |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 0daabc5..85ab99c 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -624,14 +624,14 @@ namespace OpenSim.Region.Communications.OGS1 | |||
624 | LLUUID agentID = LLUUID.Zero; | 624 | LLUUID agentID = LLUUID.Zero; |
625 | LLUUID RegionSecret = LLUUID.Zero; | 625 | LLUUID RegionSecret = LLUUID.Zero; |
626 | Helpers.TryParse((string)requestData["agent_id"], out agentID); | 626 | Helpers.TryParse((string)requestData["agent_id"], out agentID); |
627 | Helpers.TryParse((string)requestData["region_secret"], out RegionSecret); | 627 | Helpers.TryParse((string)requestData["region_secret"], out RegionSecret); |
628 | 628 | ||
629 | ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); | 629 | ulong regionHandle = Convert.ToUInt64((string)requestData["regionhandle"]); |
630 | 630 | ||
631 | 631 | ||
632 | m_localBackend.TriggerLogOffUser(regionHandle, agentID, RegionSecret,message); | 632 | m_localBackend.TriggerLogOffUser(regionHandle, agentID, RegionSecret,message); |
633 | 633 | ||
634 | 634 | ||
635 | 635 | ||
636 | return new XmlRpcResponse(); | 636 | return new XmlRpcResponse(); |
637 | } | 637 | } |
@@ -647,7 +647,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
647 | try | 647 | try |
648 | { | 648 | { |
649 | ch = new TcpChannel((int)NetworkServersInfo.RemotingListenerPort); | 649 | ch = new TcpChannel((int)NetworkServersInfo.RemotingListenerPort); |
650 | ChannelServices.RegisterChannel(ch, false); // Disabled security as Mono doesnt support this. | 650 | ChannelServices.RegisterChannel(ch, false); // Disabled security as Mono doesn't support this. |
651 | } | 651 | } |
652 | catch (Exception ex) | 652 | catch (Exception ex) |
653 | { | 653 | { |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index d486c40..a31570e 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -85,8 +85,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
85 | (float) Convert.ToDecimal((string) data["home_look_z"])); | 85 | (float) Convert.ToDecimal((string) data["home_look_z"])); |
86 | 86 | ||
87 | return userData; | 87 | return userData; |
88 | } | 88 | } |
89 | 89 | ||
90 | /// <summary> | 90 | /// <summary> |
91 | /// Get a user agent from the user server | 91 | /// Get a user agent from the user server |
92 | /// </summary> | 92 | /// </summary> |
@@ -126,7 +126,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
126 | { | 126 | { |
127 | userAgent.AgentOnline = false; | 127 | userAgent.AgentOnline = false; |
128 | } | 128 | } |
129 | 129 | ||
130 | return userAgent; | 130 | return userAgent; |
131 | } | 131 | } |
132 | catch (Exception e) | 132 | catch (Exception e) |
@@ -259,7 +259,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
259 | XmlRpcRequest req = new XmlRpcRequest("update_user_current_region", parameters); | 259 | XmlRpcRequest req = new XmlRpcRequest("update_user_current_region", parameters); |
260 | 260 | ||
261 | XmlRpcResponse resp; | 261 | XmlRpcResponse resp; |
262 | 262 | ||
263 | try | 263 | try |
264 | { | 264 | { |
265 | resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000); | 265 | resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000); |
@@ -278,8 +278,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
278 | return; | 278 | return; |
279 | } | 279 | } |
280 | } | 280 | } |
281 | 281 | ||
282 | if( resp == null ) | 282 | if (resp == null) |
283 | { | 283 | { |
284 | m_log.Warn("[OSG1 USER SERVICES]: Got no response, Grid server may not be updated."); | 284 | m_log.Warn("[OSG1 USER SERVICES]: Got no response, Grid server may not be updated."); |
285 | return; | 285 | return; |
diff --git a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs index 7ee7eda..16fd753 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/Chat/IRCBridgeModule.cs | |||
@@ -644,7 +644,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
644 | } | 644 | } |
645 | catch (IOException) | 645 | catch (IOException) |
646 | { | 646 | { |
647 | if (m_enabled) | 647 | if (m_enabled) |
648 | { | 648 | { |
649 | m_log.Error("[IRC]: ListenerRun IOException. Disconnected from IRC server ??? (ListenerRun)"); | 649 | m_log.Error("[IRC]: ListenerRun IOException. Disconnected from IRC server ??? (ListenerRun)"); |
650 | Reconnect(); | 650 | Reconnect(); |
@@ -848,7 +848,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.Chat | |||
848 | 848 | ||
849 | public void Close() | 849 | public void Close() |
850 | { | 850 | { |
851 | m_writer.WriteLine(String.Format("QUIT :{0} to {1} wormhole to {2} closing", | 851 | m_writer.WriteLine(String.Format("QUIT :{0} to {1} wormhole to {2} closing", |
852 | m_nick, m_channel, m_server)); | 852 | m_nick, m_channel, m_server)); |
853 | m_writer.Flush(); | 853 | m_writer.Flush(); |
854 | 854 | ||
diff --git a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs index 36184d2..b22ca79 100644 --- a/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs +++ b/OpenSim/Region/Environment/Modules/Avatar/InstantMessage/InstantMessageModule.cs | |||
@@ -50,7 +50,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
50 | #region IRegionModule Members | 50 | #region IRegionModule Members |
51 | 51 | ||
52 | private bool gridmode = false; | 52 | private bool gridmode = false; |
53 | 53 | ||
54 | 54 | ||
55 | public void Initialise(Scene scene, IConfigSource config) | 55 | public void Initialise(Scene scene, IConfigSource config) |
56 | { | 56 | { |
@@ -183,13 +183,13 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
183 | } | 183 | } |
184 | } | 184 | } |
185 | 185 | ||
186 | 186 | ||
187 | } | 187 | } |
188 | 188 | ||
189 | // Trusty OSG1 called method. This method also gets called from the FriendsModule | 189 | // Trusty OSG1 called method. This method also gets called from the FriendsModule |
190 | // Turns out the sim has to send an instant message to the user to get it to show an accepted friend. | 190 | // Turns out the sim has to send an instant message to the user to get it to show an accepted friend. |
191 | /// <summary> | 191 | /// <summary> |
192 | /// | 192 | /// |
193 | /// </summary> | 193 | /// </summary> |
194 | /// <param name="msg"></param> | 194 | /// <param name="msg"></param> |
195 | private void OnGridInstantMessage(GridInstantMessage msg) | 195 | private void OnGridInstantMessage(GridInstantMessage msg) |
@@ -207,7 +207,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
207 | /// Process a XMLRPC Grid Instant Message | 207 | /// Process a XMLRPC Grid Instant Message |
208 | /// </summary> | 208 | /// </summary> |
209 | /// <param name="request">XMLRPC parameters from_agent_id from_agent_session to_agent_id im_session_id timestamp | 209 | /// <param name="request">XMLRPC parameters from_agent_id from_agent_session to_agent_id im_session_id timestamp |
210 | /// from_agent_name message dialog from_group offline parent_estate_id position_x position_y position_z region_id | 210 | /// from_agent_name message dialog from_group offline parent_estate_id position_x position_y position_z region_id |
211 | /// binary_bucket region_handle</param> | 211 | /// binary_bucket region_handle</param> |
212 | /// <returns>Nothing much</returns> | 212 | /// <returns>Nothing much</returns> |
213 | protected virtual XmlRpcResponse processXMLRPCGridInstantMessage(XmlRpcRequest request) | 213 | protected virtual XmlRpcResponse processXMLRPCGridInstantMessage(XmlRpcRequest request) |
@@ -221,7 +221,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
221 | uint timestamp = 0; | 221 | uint timestamp = 0; |
222 | string fromAgentName = ""; | 222 | string fromAgentName = ""; |
223 | string message = ""; | 223 | string message = ""; |
224 | byte dialog = (byte)0; | 224 | byte dialog = (byte)0; |
225 | bool fromGroup = false; | 225 | bool fromGroup = false; |
226 | byte offline = (byte)0; | 226 | byte offline = (byte)0; |
227 | uint ParentEstateID=0; | 227 | uint ParentEstateID=0; |
@@ -237,14 +237,14 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
237 | 237 | ||
238 | Hashtable requestData = (Hashtable)request.Params[0]; | 238 | Hashtable requestData = (Hashtable)request.Params[0]; |
239 | // Check if it's got all the data | 239 | // Check if it's got all the data |
240 | if (requestData.ContainsKey("from_agent_id") && requestData.ContainsKey("from_agent_session") | 240 | if (requestData.ContainsKey("from_agent_id") && requestData.ContainsKey("from_agent_session") |
241 | && requestData.ContainsKey("to_agent_id") && requestData.ContainsKey("im_session_id") | 241 | && requestData.ContainsKey("to_agent_id") && requestData.ContainsKey("im_session_id") |
242 | && requestData.ContainsKey("timestamp") && requestData.ContainsKey("from_agent_name") | 242 | && requestData.ContainsKey("timestamp") && requestData.ContainsKey("from_agent_name") |
243 | && requestData.ContainsKey("message") && requestData.ContainsKey("dialog") | 243 | && requestData.ContainsKey("message") && requestData.ContainsKey("dialog") |
244 | && requestData.ContainsKey("from_group") | 244 | && requestData.ContainsKey("from_group") |
245 | && requestData.ContainsKey("offline") && requestData.ContainsKey("parent_estate_id") | 245 | && requestData.ContainsKey("offline") && requestData.ContainsKey("parent_estate_id") |
246 | && requestData.ContainsKey("position_x") && requestData.ContainsKey("position_y") | 246 | && requestData.ContainsKey("position_x") && requestData.ContainsKey("position_y") |
247 | && requestData.ContainsKey("position_z") && requestData.ContainsKey("region_id") | 247 | && requestData.ContainsKey("position_z") && requestData.ContainsKey("region_id") |
248 | && requestData.ContainsKey("binary_bucket") && requestData.ContainsKey("region_handle")) | 248 | && requestData.ContainsKey("binary_bucket") && requestData.ContainsKey("region_handle")) |
249 | { | 249 | { |
250 | // Do the easy way of validating the UUIDs | 250 | // Do the easy way of validating the UUIDs |
@@ -276,7 +276,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
276 | // Bytes don't transfer well over XMLRPC, so, we Base64 Encode them. | 276 | // Bytes don't transfer well over XMLRPC, so, we Base64 Encode them. |
277 | byte[] dialogdata = Convert.FromBase64String((string)requestData["dialog"]); | 277 | byte[] dialogdata = Convert.FromBase64String((string)requestData["dialog"]); |
278 | dialog = dialogdata[0]; | 278 | dialog = dialogdata[0]; |
279 | 279 | ||
280 | if ((string)requestData["from_group"] == "TRUE") | 280 | if ((string)requestData["from_group"] == "TRUE") |
281 | fromGroup = true; | 281 | fromGroup = true; |
282 | 282 | ||
@@ -365,7 +365,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
365 | gim.Position = new sLLVector3(Position); | 365 | gim.Position = new sLLVector3(Position); |
366 | gim.binaryBucket = binaryBucket; | 366 | gim.binaryBucket = binaryBucket; |
367 | 367 | ||
368 | 368 | ||
369 | // Trigger the Instant message in the scene. | 369 | // Trigger the Instant message in the scene. |
370 | foreach (Scene scene in m_scenes) | 370 | foreach (Scene scene in m_scenes) |
371 | { | 371 | { |
@@ -381,7 +381,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
381 | } | 381 | } |
382 | } | 382 | } |
383 | //OnGridInstantMessage(gim); | 383 | //OnGridInstantMessage(gim); |
384 | 384 | ||
385 | } | 385 | } |
386 | 386 | ||
387 | //Send response back to region calling if it was successful | 387 | //Send response back to region calling if it was successful |
@@ -482,7 +482,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
482 | else | 482 | else |
483 | { | 483 | { |
484 | lookupAgent = true; | 484 | lookupAgent = true; |
485 | 485 | ||
486 | 486 | ||
487 | } | 487 | } |
488 | } | 488 | } |
@@ -564,7 +564,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
564 | else | 564 | else |
565 | { | 565 | { |
566 | // try again, but lookup user this time. | 566 | // try again, but lookup user this time. |
567 | // Warning, this must call the Async version | 567 | // Warning, this must call the Async version |
568 | // of this method or we'll be making thousands of threads | 568 | // of this method or we'll be making thousands of threads |
569 | // The version within the spawned thread is SendGridInstantMessageViaXMLRPCAsync | 569 | // The version within the spawned thread is SendGridInstantMessageViaXMLRPCAsync |
570 | // The version that spawns the thread is SendGridInstantMessageViaXMLRPC | 570 | // The version that spawns the thread is SendGridInstantMessageViaXMLRPC |
@@ -686,7 +686,7 @@ namespace OpenSim.Region.Environment.Modules.Avatar.InstantMessage | |||
686 | 686 | ||
687 | if (msg.fromGroup) | 687 | if (msg.fromGroup) |
688 | gim["from_group"] = "TRUE"; | 688 | gim["from_group"] = "TRUE"; |
689 | else | 689 | else |
690 | gim["from_group"] = "FALSE"; | 690 | gim["from_group"] = "FALSE"; |
691 | byte[] offlinedata = new byte[1]; offlinedata[0] = msg.offline; | 691 | byte[] offlinedata = new byte[1]; offlinedata[0] = msg.offline; |
692 | gim["offline"] = Convert.ToBase64String(offlinedata, Base64FormattingOptions.None); | 692 | gim["offline"] = Convert.ToBase64String(offlinedata, Base64FormattingOptions.None); |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs index 0c5edaa..6a3b519 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveReadRequest.cs | |||
@@ -41,10 +41,10 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
41 | /// </summary> | 41 | /// </summary> |
42 | public class ArchiveReadRequest | 42 | public class ArchiveReadRequest |
43 | { | 43 | { |
44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 44 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
45 | 45 | ||
46 | protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); | 46 | protected static System.Text.ASCIIEncoding m_asciiEncoding = new System.Text.ASCIIEncoding(); |
47 | 47 | ||
48 | private Scene m_scene; | 48 | private Scene m_scene; |
49 | private string m_loadPath; | 49 | private string m_loadPath; |
50 | 50 | ||
@@ -55,22 +55,22 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
55 | 55 | ||
56 | DearchiveRegion(); | 56 | DearchiveRegion(); |
57 | } | 57 | } |
58 | 58 | ||
59 | protected void DearchiveRegion() | 59 | protected void DearchiveRegion() |
60 | { | 60 | { |
61 | TarArchiveReader archive = new TarArchiveReader(m_loadPath); | 61 | TarArchiveReader archive = new TarArchiveReader(m_loadPath); |
62 | 62 | ||
63 | string serializedPrims = string.Empty; | 63 | string serializedPrims = string.Empty; |
64 | 64 | ||
65 | // Just test for now by reading first file | 65 | // Just test for now by reading first file |
66 | string filePath = "ERROR"; | 66 | string filePath = "ERROR"; |
67 | 67 | ||
68 | byte[] data; | 68 | byte[] data; |
69 | while ((data = archive.ReadEntry(out filePath)) != null) | 69 | while ((data = archive.ReadEntry(out filePath)) != null) |
70 | { | 70 | { |
71 | m_log.DebugFormat( | 71 | m_log.DebugFormat( |
72 | "[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath); | 72 | "[ARCHIVER]: Successfully read {0} ({1} bytes) from archive {2}", filePath, data.Length, m_loadPath); |
73 | 73 | ||
74 | if (filePath.Equals(ArchiveConstants.PRIMS_PATH)) | 74 | if (filePath.Equals(ArchiveConstants.PRIMS_PATH)) |
75 | { | 75 | { |
76 | serializedPrims = m_asciiEncoding.GetString(data); | 76 | serializedPrims = m_asciiEncoding.GetString(data); |
@@ -78,37 +78,37 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
78 | else if (filePath.StartsWith(ArchiveConstants.TEXTURES_PATH)) | 78 | else if (filePath.StartsWith(ArchiveConstants.TEXTURES_PATH)) |
79 | { | 79 | { |
80 | // Right now we're nastily obtaining the lluuid from the filename | 80 | // Right now we're nastily obtaining the lluuid from the filename |
81 | string rawId = filePath.Remove(0, ArchiveConstants.TEXTURES_PATH.Length); | 81 | string rawId = filePath.Remove(0, ArchiveConstants.TEXTURES_PATH.Length); |
82 | rawId = rawId.Remove(rawId.Length - ArchiveConstants.TEXTURE_EXTENSION.Length); | 82 | rawId = rawId.Remove(rawId.Length - ArchiveConstants.TEXTURE_EXTENSION.Length); |
83 | 83 | ||
84 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", rawId); | 84 | m_log.DebugFormat("[ARCHIVER]: Importing asset {0}", rawId); |
85 | 85 | ||
86 | // Not preserving asset name or description as of yet | 86 | // Not preserving asset name or description as of yet |
87 | AssetBase asset = new AssetBase(new LLUUID(rawId), "imported name"); | 87 | AssetBase asset = new AssetBase(new LLUUID(rawId), "imported name"); |
88 | asset.Description = "imported description"; | 88 | asset.Description = "imported description"; |
89 | 89 | ||
90 | asset.Type = (sbyte)AssetType.Texture; | 90 | asset.Type = (sbyte)AssetType.Texture; |
91 | asset.InvType = (sbyte)InventoryType.Texture; | 91 | asset.InvType = (sbyte)InventoryType.Texture; |
92 | 92 | ||
93 | asset.Data = data; | 93 | asset.Data = data; |
94 | 94 | ||
95 | m_scene.AssetCache.AddAsset(asset); | 95 | m_scene.AssetCache.AddAsset(asset); |
96 | } | 96 | } |
97 | } | 97 | } |
98 | 98 | ||
99 | m_log.DebugFormat("[ARCHIVER]: Reached end of archive"); | 99 | m_log.DebugFormat("[ARCHIVER]: Reached end of archive"); |
100 | 100 | ||
101 | archive.Close(); | 101 | archive.Close(); |
102 | 102 | ||
103 | if (serializedPrims.Equals(string.Empty)) | 103 | if (serializedPrims.Equals(string.Empty)) |
104 | { | 104 | { |
105 | m_log.ErrorFormat("[ARCHIVER]: Archive did not contain a {0} file", ArchiveConstants.PRIMS_PATH); | 105 | m_log.ErrorFormat("[ARCHIVER]: Archive did not contain a {0} file", ArchiveConstants.PRIMS_PATH); |
106 | return; | 106 | return; |
107 | } | 107 | } |
108 | 108 | ||
109 | // Reload serialized prims | 109 | // Reload serialized prims |
110 | m_log.InfoFormat("[ARCHIVER]: Loading prim data"); | 110 | m_log.InfoFormat("[ARCHIVER]: Loading prim data"); |
111 | 111 | ||
112 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); | 112 | IRegionSerialiser serialiser = m_scene.RequestModuleInterface<IRegionSerialiser>(); |
113 | serialiser.LoadPrimsFromXml2(m_scene, new StringReader(serializedPrims)); | 113 | serialiser.LoadPrimsFromXml2(m_scene, new StringReader(serializedPrims)); |
114 | } | 114 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs index 1cc8877..6c341c6 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/ArchiveWriteRequest.cs | |||
@@ -80,16 +80,16 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
80 | { | 80 | { |
81 | // XXX: Not a great way to iterate through face textures, but there's no | 81 | // XXX: Not a great way to iterate through face textures, but there's no |
82 | // other way to tell how many faces there actually are | 82 | // other way to tell how many faces there actually are |
83 | //int i = 0; | 83 | //int i = 0; |
84 | foreach (LLObject.TextureEntryFace texture in part.Shape.Textures.FaceTextures) | 84 | foreach (LLObject.TextureEntryFace texture in part.Shape.Textures.FaceTextures) |
85 | { | 85 | { |
86 | if (texture != null) | 86 | if (texture != null) |
87 | { | 87 | { |
88 | //m_log.DebugFormat("[ARCHIVER]: Got face {0}", i++); | 88 | //m_log.DebugFormat("[ARCHIVER]: Got face {0}", i++); |
89 | textureUuids[texture.TextureID] = 1; | 89 | textureUuids[texture.TextureID] = 1; |
90 | } | 90 | } |
91 | } | 91 | } |
92 | 92 | ||
93 | foreach (TaskInventoryItem tit in part.TaskInventory.Values) | 93 | foreach (TaskInventoryItem tit in part.TaskInventory.Values) |
94 | { | 94 | { |
95 | if (tit.Type == (int)InventoryType.Texture) | 95 | if (tit.Type == (int)InventoryType.Texture) |
@@ -123,7 +123,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
123 | TarArchiveWriter archive = new TarArchiveWriter(); | 123 | TarArchiveWriter archive = new TarArchiveWriter(); |
124 | 124 | ||
125 | archive.AddFile(ArchiveConstants.PRIMS_PATH, m_serializedEntities); | 125 | archive.AddFile(ArchiveConstants.PRIMS_PATH, m_serializedEntities); |
126 | 126 | ||
127 | // It appears that gtar, at least, doesn't need the intermediate directory entries in the tar | 127 | // It appears that gtar, at least, doesn't need the intermediate directory entries in the tar |
128 | //archive.AddDir("assets"); | 128 | //archive.AddDir("assets"); |
129 | 129 | ||
@@ -132,7 +132,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
132 | if (assets[uuid] != null) | 132 | if (assets[uuid] != null) |
133 | { | 133 | { |
134 | archive.AddFile( | 134 | archive.AddFile( |
135 | ArchiveConstants.TEXTURES_PATH + uuid.ToString() + ArchiveConstants.TEXTURE_EXTENSION, | 135 | ArchiveConstants.TEXTURES_PATH + uuid.ToString() + ArchiveConstants.TEXTURE_EXTENSION, |
136 | assets[uuid].Data); | 136 | assets[uuid].Data); |
137 | } | 137 | } |
138 | else | 138 | else |
@@ -142,7 +142,7 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
142 | } | 142 | } |
143 | 143 | ||
144 | archive.WriteTar(m_savePath); | 144 | archive.WriteTar(m_savePath); |
145 | 145 | ||
146 | m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive {0}", m_savePath); | 146 | m_log.InfoFormat("[ARCHIVER]: Wrote out OpenSimulator archive {0}", m_savePath); |
147 | } | 147 | } |
148 | 148 | ||
@@ -232,11 +232,11 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
232 | newThread.Start(); | 232 | newThread.Start(); |
233 | } | 233 | } |
234 | } | 234 | } |
235 | 235 | ||
236 | /// <summary> | 236 | /// <summary> |
237 | /// Perform the callback on the original requester of the assets | 237 | /// Perform the callback on the original requester of the assets |
238 | /// </summary> | 238 | /// </summary> |
239 | protected void PerformAssetsRequestCallback() | 239 | protected void PerformAssetsRequestCallback() |
240 | { | 240 | { |
241 | m_assetsRequestCallback(m_assets); | 241 | m_assetsRequestCallback(m_assets); |
242 | } | 242 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs index b199d5f..463e172 100644 --- a/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs +++ b/OpenSim/Region/Environment/Modules/World/Archiver/TarArchiveReader.cs | |||
@@ -39,24 +39,24 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
39 | public class TarArchiveReader | 39 | public class TarArchiveReader |
40 | { | 40 | { |
41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); | 41 | private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); |
42 | 42 | ||
43 | protected static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); | 43 | protected static ASCIIEncoding m_asciiEncoding = new ASCIIEncoding(); |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// Binary reader for the underlying stream | 46 | /// Binary reader for the underlying stream |
47 | /// </summary> | 47 | /// </summary> |
48 | protected BinaryReader m_br; | 48 | protected BinaryReader m_br; |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// Used to trim off null chars | 51 | /// Used to trim off null chars |
52 | /// </summary> | 52 | /// </summary> |
53 | protected char[] m_nullCharArray = new char[] { '\0' }; | 53 | protected char[] m_nullCharArray = new char[] { '\0' }; |
54 | 54 | ||
55 | public TarArchiveReader(string archivePath) | 55 | public TarArchiveReader(string archivePath) |
56 | { | 56 | { |
57 | m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open)); | 57 | m_br = new BinaryReader(new FileStream(archivePath, FileMode.Open)); |
58 | } | 58 | } |
59 | 59 | ||
60 | /// <summary> | 60 | /// <summary> |
61 | /// Are we at the end of the archive? | 61 | /// Are we at the end of the archive? |
62 | /// </summary> | 62 | /// </summary> |
@@ -64,13 +64,13 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
64 | public bool AtEof() | 64 | public bool AtEof() |
65 | { | 65 | { |
66 | // If we've reached the end of the archive we'll be in null block territory, which means | 66 | // If we've reached the end of the archive we'll be in null block territory, which means |
67 | // the next byte will be 0 | 67 | // the next byte will be 0 |
68 | if (m_br.PeekChar() == 0) | 68 | if (m_br.PeekChar() == 0) |
69 | return true; | 69 | return true; |
70 | 70 | ||
71 | return false; | 71 | return false; |
72 | } | 72 | } |
73 | 73 | ||
74 | /// <summary> | 74 | /// <summary> |
75 | /// Read the next entry in the tar file. | 75 | /// Read the next entry in the tar file. |
76 | /// </summary> | 76 | /// </summary> |
@@ -79,27 +79,27 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
79 | public byte[] ReadEntry(out string filePath) | 79 | public byte[] ReadEntry(out string filePath) |
80 | { | 80 | { |
81 | filePath = String.Empty; | 81 | filePath = String.Empty; |
82 | 82 | ||
83 | if (AtEof()) | 83 | if (AtEof()) |
84 | return null; | 84 | return null; |
85 | 85 | ||
86 | TarHeader header = ReadHeader(); | 86 | TarHeader header = ReadHeader(); |
87 | 87 | ||
88 | filePath = header.FilePath; | 88 | filePath = header.FilePath; |
89 | byte[] data = m_br.ReadBytes(header.FileSize); | 89 | byte[] data = m_br.ReadBytes(header.FileSize); |
90 | 90 | ||
91 | m_log.DebugFormat("[TAR ARCHIVE READER]: filePath {0}, fileSize {1}", filePath, header.FileSize); | 91 | m_log.DebugFormat("[TAR ARCHIVE READER]: filePath {0}, fileSize {1}", filePath, header.FileSize); |
92 | 92 | ||
93 | // Read the rest of the empty padding in the 512 byte block | 93 | // Read the rest of the empty padding in the 512 byte block |
94 | if (header.FileSize % 512 != 0) | 94 | if (header.FileSize % 512 != 0) |
95 | { | 95 | { |
96 | int paddingLeft = 512 - (header.FileSize % 512); | 96 | int paddingLeft = 512 - (header.FileSize % 512); |
97 | 97 | ||
98 | m_log.DebugFormat("[TAR ARCHIVE READER]: Reading {0} padding bytes", paddingLeft); | 98 | m_log.DebugFormat("[TAR ARCHIVE READER]: Reading {0} padding bytes", paddingLeft); |
99 | 99 | ||
100 | m_br.ReadBytes(paddingLeft); | 100 | m_br.ReadBytes(paddingLeft); |
101 | } | 101 | } |
102 | 102 | ||
103 | return data; | 103 | return data; |
104 | } | 104 | } |
105 | 105 | ||
@@ -109,44 +109,44 @@ namespace OpenSim.Region.Environment.Modules.World.Archiver | |||
109 | /// </summary> | 109 | /// </summary> |
110 | /// <returns>A tar header struct.</returns> | 110 | /// <returns>A tar header struct.</returns> |
111 | protected TarHeader ReadHeader() | 111 | protected TarHeader ReadHeader() |
112 | { | 112 | { |
113 | TarHeader tarHeader = new TarHeader(); | 113 | TarHeader tarHeader = new TarHeader(); |
114 | 114 | ||
115 | byte[] header = m_br.ReadBytes(512); | 115 | byte[] header = m_br.ReadBytes(512); |
116 | 116 | ||
117 | tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100); | 117 | tarHeader.FilePath = m_asciiEncoding.GetString(header, 0, 100); |
118 | tarHeader.FilePath = tarHeader.FilePath.Trim(m_nullCharArray); | 118 | tarHeader.FilePath = tarHeader.FilePath.Trim(m_nullCharArray); |
119 | tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11); | 119 | tarHeader.FileSize = ConvertOctalBytesToDecimal(header, 124, 11); |
120 | 120 | ||
121 | return tarHeader; | 121 | return tarHeader; |
122 | } | 122 | } |
123 | 123 | ||
124 | public void Close() | 124 | public void Close() |
125 | { | 125 | { |
126 | m_br.Close(); | 126 | m_br.Close(); |
127 | } | 127 | } |
128 | 128 | ||
129 | /// <summary> | 129 | /// <summary> |
130 | /// Convert octal bytes to a decimal representation | 130 | /// Convert octal bytes to a decimal representation |
131 | /// </summary> | 131 | /// </summary> |
132 | /// <param name="bytes"></param> | 132 | /// <param name="bytes"></param> |
133 | /// <returns></returns> | 133 | /// <returns></returns> |
134 | public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count) | 134 | public static int ConvertOctalBytesToDecimal(byte[] bytes, int startIndex, int count) |
135 | { | 135 | { |
136 | string oString = m_asciiEncoding.GetString(bytes, startIndex, count); | 136 | string oString = m_asciiEncoding.GetString(bytes, startIndex, count); |
137 | 137 | ||
138 | int d = 0; | 138 | int d = 0; |
139 | 139 | ||
140 | foreach (char c in oString) | 140 | foreach (char c in oString) |
141 | { | 141 | { |
142 | d <<= 3; | 142 | d <<= 3; |
143 | d |= c - '0'; | 143 | d |= c - '0'; |
144 | } | 144 | } |
145 | 145 | ||
146 | return d; | 146 | return d; |
147 | } | 147 | } |
148 | } | 148 | } |
149 | 149 | ||
150 | public struct TarHeader | 150 | public struct TarHeader |
151 | { | 151 | { |
152 | public string FilePath; | 152 | public string FilePath; |
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs index b7ed9f9..e0d2add 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/IRegionSerialiser.cs | |||
@@ -34,30 +34,30 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser | |||
34 | { | 34 | { |
35 | public interface IRegionSerialiser | 35 | public interface IRegionSerialiser |
36 | { | 36 | { |
37 | List<string> SerialiseRegion(Scene scene, string saveDir); | 37 | List<string> SerialiseRegion(Scene scene, string saveDir); |
38 | 38 | ||
39 | void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset); | 39 | void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset); |
40 | 40 | ||
41 | void SavePrimsToXml(Scene scene, string fileName); | 41 | void SavePrimsToXml(Scene scene, string fileName); |
42 | 42 | ||
43 | /// <summary> | 43 | /// <summary> |
44 | /// Load prims from the xml2 format | 44 | /// Load prims from the xml2 format |
45 | /// </summary> | 45 | /// </summary> |
46 | /// <param name="scene"></param> | 46 | /// <param name="scene"></param> |
47 | /// <param name="fileName"></param> | 47 | /// <param name="fileName"></param> |
48 | void LoadPrimsFromXml2(Scene scene, string fileName); | 48 | void LoadPrimsFromXml2(Scene scene, string fileName); |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// Load prims from the xml2 format | 51 | /// Load prims from the xml2 format |
52 | /// </summary> | 52 | /// </summary> |
53 | /// <param name="scene"></param> | 53 | /// <param name="scene"></param> |
54 | /// <param name="reader"></param> | 54 | /// <param name="reader"></param> |
55 | void LoadPrimsFromXml2(Scene scene, TextReader reader); | 55 | void LoadPrimsFromXml2(Scene scene, TextReader reader); |
56 | 56 | ||
57 | void SavePrimsToXml2(Scene scene, string fileName); | 57 | void SavePrimsToXml2(Scene scene, string fileName); |
58 | 58 | ||
59 | void LoadGroupFromXml2String(Scene scene, string xmlString); | 59 | void LoadGroupFromXml2String(Scene scene, string xmlString); |
60 | 60 | ||
61 | string SavePrimGroupToXML2String(SceneObjectGroup grp); | 61 | string SavePrimGroupToXML2String(SceneObjectGroup grp); |
62 | } | 62 | } |
63 | } | 63 | } |
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs index 2ac0754..5ec8026 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SceneXmlLoader.cs | |||
@@ -56,14 +56,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
56 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) | 56 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) |
57 | { | 57 | { |
58 | SceneObjectGroup obj = new SceneObjectGroup(scene, scene.RegionInfo.RegionHandle, aPrimNode.OuterXml); | 58 | SceneObjectGroup obj = new SceneObjectGroup(scene, scene.RegionInfo.RegionHandle, aPrimNode.OuterXml); |
59 | 59 | ||
60 | if (newIDS) | 60 | if (newIDS) |
61 | { | 61 | { |
62 | obj.ResetIDs(); | 62 | obj.ResetIDs(); |
63 | } | 63 | } |
64 | //if we want this to be a import method then we need new uuids for the object to avoid any clashes | 64 | //if we want this to be a import method then we need new uuids for the object to avoid any clashes |
65 | //obj.RegenerateFullIDs(); | 65 | //obj.RegenerateFullIDs(); |
66 | 66 | ||
67 | scene.AddSceneObject(obj); | 67 | scene.AddSceneObject(obj); |
68 | 68 | ||
69 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 69 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
@@ -156,7 +156,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
156 | { | 156 | { |
157 | LoadPrimsFromXml2(scene, new XmlTextReader(fileName)); | 157 | LoadPrimsFromXml2(scene, new XmlTextReader(fileName)); |
158 | } | 158 | } |
159 | 159 | ||
160 | /// <summary> | 160 | /// <summary> |
161 | /// Load prims from the xml2 format | 161 | /// Load prims from the xml2 format |
162 | /// </summary> | 162 | /// </summary> |
@@ -173,24 +173,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
173 | /// <param name="scene"></param> | 173 | /// <param name="scene"></param> |
174 | /// <param name="reader"></param> | 174 | /// <param name="reader"></param> |
175 | protected static void LoadPrimsFromXml2(Scene scene, XmlTextReader reader) | 175 | protected static void LoadPrimsFromXml2(Scene scene, XmlTextReader reader) |
176 | { | 176 | { |
177 | XmlDocument doc = new XmlDocument(); | 177 | XmlDocument doc = new XmlDocument(); |
178 | reader.WhitespaceHandling = WhitespaceHandling.None; | 178 | reader.WhitespaceHandling = WhitespaceHandling.None; |
179 | doc.Load(reader); | 179 | doc.Load(reader); |
180 | reader.Close(); | 180 | reader.Close(); |
181 | XmlNode rootNode = doc.FirstChild; | 181 | XmlNode rootNode = doc.FirstChild; |
182 | 182 | ||
183 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) | 183 | foreach (XmlNode aPrimNode in rootNode.ChildNodes) |
184 | { | 184 | { |
185 | CreatePrimFromXml(scene, aPrimNode.OuterXml); | 185 | CreatePrimFromXml(scene, aPrimNode.OuterXml); |
186 | } | 186 | } |
187 | } | 187 | } |
188 | 188 | ||
189 | public static void CreatePrimFromXml(Scene scene, string xmlData) | 189 | public static void CreatePrimFromXml(Scene scene, string xmlData) |
190 | { | 190 | { |
191 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); | 191 | SceneObjectGroup obj = new SceneObjectGroup(xmlData); |
192 | LLVector3 receivedVelocity = obj.RootPart.Velocity; | 192 | LLVector3 receivedVelocity = obj.RootPart.Velocity; |
193 | //System.Console.WriteLine(obj.RootPart.Velocity.ToString()); | 193 | //System.Console.WriteLine(obj.RootPart.Velocity.ToString()); |
194 | scene.AddSceneObjectFromStorage(obj); | 194 | scene.AddSceneObjectFromStorage(obj); |
195 | 195 | ||
196 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 196 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
diff --git a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs index b181fe8..c7c8e39 100644 --- a/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs +++ b/OpenSim/Region/Environment/Modules/World/Serialiser/SerialiserModule.cs | |||
@@ -86,42 +86,42 @@ namespace OpenSim.Region.Environment.Modules.World.Serialiser | |||
86 | #endregion | 86 | #endregion |
87 | 87 | ||
88 | #region IRegionSerialiser Members | 88 | #region IRegionSerialiser Members |
89 | 89 | ||
90 | public void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset) | 90 | public void LoadPrimsFromXml(Scene scene, string fileName, bool newIDS, LLVector3 loadOffset) |
91 | { | 91 | { |
92 | SceneXmlLoader.LoadPrimsFromXml(scene, fileName, newIDS, loadOffset); | 92 | SceneXmlLoader.LoadPrimsFromXml(scene, fileName, newIDS, loadOffset); |
93 | } | 93 | } |
94 | 94 | ||
95 | public void SavePrimsToXml(Scene scene, string fileName) | 95 | public void SavePrimsToXml(Scene scene, string fileName) |
96 | { | 96 | { |
97 | SceneXmlLoader.SavePrimsToXml(scene, fileName); | 97 | SceneXmlLoader.SavePrimsToXml(scene, fileName); |
98 | } | 98 | } |
99 | 99 | ||
100 | public void LoadPrimsFromXml2(Scene scene, string fileName) | 100 | public void LoadPrimsFromXml2(Scene scene, string fileName) |
101 | { | 101 | { |
102 | SceneXmlLoader.LoadPrimsFromXml2(scene, fileName); | 102 | SceneXmlLoader.LoadPrimsFromXml2(scene, fileName); |
103 | } | 103 | } |
104 | 104 | ||
105 | public void LoadPrimsFromXml2(Scene scene, TextReader reader) | 105 | public void LoadPrimsFromXml2(Scene scene, TextReader reader) |
106 | { | 106 | { |
107 | SceneXmlLoader.LoadPrimsFromXml2(scene, reader); | 107 | SceneXmlLoader.LoadPrimsFromXml2(scene, reader); |
108 | } | 108 | } |
109 | 109 | ||
110 | public void SavePrimsToXml2(Scene scene, string fileName) | 110 | public void SavePrimsToXml2(Scene scene, string fileName) |
111 | { | 111 | { |
112 | SceneXmlLoader.SavePrimsToXml2(scene, fileName); | 112 | SceneXmlLoader.SavePrimsToXml2(scene, fileName); |
113 | } | 113 | } |
114 | 114 | ||
115 | public void LoadGroupFromXml2String(Scene scene, string xmlString) | 115 | public void LoadGroupFromXml2String(Scene scene, string xmlString) |
116 | { | 116 | { |
117 | SceneXmlLoader.LoadGroupFromXml2String(scene, xmlString); | 117 | SceneXmlLoader.LoadGroupFromXml2String(scene, xmlString); |
118 | } | 118 | } |
119 | 119 | ||
120 | public string SavePrimGroupToXML2String(SceneObjectGroup grp) | 120 | public string SavePrimGroupToXML2String(SceneObjectGroup grp) |
121 | { | 121 | { |
122 | return SceneXmlLoader.SavePrimGroupToXML2String(grp); | 122 | return SceneXmlLoader.SavePrimGroupToXML2String(grp); |
123 | } | 123 | } |
124 | 124 | ||
125 | public List<string> SerialiseRegion(Scene scene, string saveDir) | 125 | public List<string> SerialiseRegion(Scene scene, string saveDir) |
126 | { | 126 | { |
127 | List<string> results = new List<string>(); | 127 | List<string> results = new List<string>(); |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 3ed4eb2..4c9257d 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -627,7 +627,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
627 | #region Get Methods | 627 | #region Get Methods |
628 | 628 | ||
629 | /// <summary> | 629 | /// <summary> |
630 | /// Request a List of all scene presences in this scene. This is a new list, so no | 630 | /// Request a List of all scene presences in this scene. This is a new list, so no |
631 | /// locking is required to iterate over it. | 631 | /// locking is required to iterate over it. |
632 | /// </summary> | 632 | /// </summary> |
633 | /// <returns></returns> | 633 | /// <returns></returns> |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index c74dca4..e4fdc31 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -1506,18 +1506,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1506 | 1506 | ||
1507 | CrossPrimGroupIntoNewRegion(newRegionHandle, grp); | 1507 | CrossPrimGroupIntoNewRegion(newRegionHandle, grp); |
1508 | } | 1508 | } |
1509 | 1509 | ||
1510 | public void CrossPrimGroupIntoNewRegion(ulong newRegionHandle, SceneObjectGroup grp) | 1510 | public void CrossPrimGroupIntoNewRegion(ulong newRegionHandle, SceneObjectGroup grp) |
1511 | { | 1511 | { |
1512 | int primcrossingXMLmethod = 0; | 1512 | int primcrossingXMLmethod = 0; |
1513 | if (newRegionHandle != 0) | 1513 | if (newRegionHandle != 0) |
1514 | { | 1514 | { |
1515 | bool successYN = false; | 1515 | bool successYN = false; |
1516 | 1516 | ||
1517 | successYN | 1517 | successYN |
1518 | = m_sceneGridService.PrimCrossToNeighboringRegion( | 1518 | = m_sceneGridService.PrimCrossToNeighboringRegion( |
1519 | newRegionHandle, grp.UUID, m_serialiser.SavePrimGroupToXML2String(grp), primcrossingXMLmethod); | 1519 | newRegionHandle, grp.UUID, m_serialiser.SavePrimGroupToXML2String(grp), primcrossingXMLmethod); |
1520 | 1520 | ||
1521 | if (successYN) | 1521 | if (successYN) |
1522 | { | 1522 | { |
1523 | // We remove the object here | 1523 | // We remove the object here |
@@ -1550,7 +1550,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1550 | if (XMLMethod == 0) | 1550 | if (XMLMethod == 0) |
1551 | { | 1551 | { |
1552 | m_serialiser.LoadGroupFromXml2String(this, objXMLData); | 1552 | m_serialiser.LoadGroupFromXml2String(this, objXMLData); |
1553 | 1553 | ||
1554 | SceneObjectPart RootPrim = GetSceneObjectPart(primID); | 1554 | SceneObjectPart RootPrim = GetSceneObjectPart(primID); |
1555 | if (RootPrim != null) | 1555 | if (RootPrim != null) |
1556 | { | 1556 | { |
@@ -2091,7 +2091,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2091 | m_log.InfoFormat("[USERLOGOFF]: Got a logoff request for {0} but the user isn't here. The user might already have been logged out", AvatarID.ToString()); | 2091 | m_log.InfoFormat("[USERLOGOFF]: Got a logoff request for {0} but the user isn't here. The user might already have been logged out", AvatarID.ToString()); |
2092 | } | 2092 | } |
2093 | } | 2093 | } |
2094 | 2094 | ||
2095 | 2095 | ||
2096 | } | 2096 | } |
2097 | /// <summary> | 2097 | /// <summary> |
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index dc9ac37..8fee27f 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs | |||
@@ -83,8 +83,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
83 | Dictionary<string, IRegionModule> sharedModules = new Dictionary<string, IRegionModule>(); | 83 | Dictionary<string, IRegionModule> sharedModules = new Dictionary<string, IRegionModule>(); |
84 | for (int i = 0; i < m_localScenes.Count; i++) | 84 | for (int i = 0; i < m_localScenes.Count; i++) |
85 | { | 85 | { |
86 | // extract known shared modules from scene | 86 | // extract known shared modules from scene |
87 | foreach(string k in m_localScenes[i].Modules.Keys) | 87 | foreach (string k in m_localScenes[i].Modules.Keys) |
88 | { | 88 | { |
89 | if (m_localScenes[i].Modules[k].IsSharedModule && | 89 | if (m_localScenes[i].Modules[k].IsSharedModule && |
90 | !sharedModules.ContainsKey(k)) | 90 | !sharedModules.ContainsKey(k)) |
@@ -96,7 +96,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
96 | 96 | ||
97 | // all regions/scenes are now closed, we can now safely | 97 | // all regions/scenes are now closed, we can now safely |
98 | // close all shared modules | 98 | // close all shared modules |
99 | foreach(IRegionModule mod in sharedModules.Values) | 99 | foreach (IRegionModule mod in sharedModules.Values) |
100 | { | 100 | { |
101 | mod.Close(); | 101 | mod.Close(); |
102 | } | 102 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index de5da40..ce7497d 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -1048,7 +1048,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1048 | Vector3 normalpart = ipoint - vAbsolutePosition; | 1048 | Vector3 normalpart = ipoint - vAbsolutePosition; |
1049 | returnresult.normal = normalpart / normalpart.Length; | 1049 | returnresult.normal = normalpart / normalpart.Length; |
1050 | 1050 | ||
1051 | // It's funny how the LLVector3 object has a Distance function, but the Axiom.Math object doesnt. | 1051 | // It's funny how the LLVector3 object has a Distance function, but the Axiom.Math object doesn't. |
1052 | // I can write a function to do it.. but I like the fact that this one is Static. | 1052 | // I can write a function to do it.. but I like the fact that this one is Static. |
1053 | 1053 | ||
1054 | LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z); | 1054 | LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z); |
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs index 7203aaf..3941107 100644 --- a/OpenSim/Region/Physics/Meshing/Extruder.cs +++ b/OpenSim/Region/Physics/Meshing/Extruder.cs | |||
@@ -89,7 +89,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
89 | v.X *= (size.X * taperTopFactorX); | 89 | v.X *= (size.X * taperTopFactorX); |
90 | v.Y *= (size.Y * taperTopFactorY); | 90 | v.Y *= (size.Y * taperTopFactorY); |
91 | v.Z *= size.Z; | 91 | v.Z *= size.Z; |
92 | 92 | ||
93 | //Push the top of the object over by the Top Shear amount | 93 | //Push the top of the object over by the Top Shear amount |
94 | v.X += pushX * size.X; | 94 | v.X += pushX * size.X; |
95 | v.Y += pushY * size.Y; | 95 | v.Y += pushY * size.Y; |
@@ -165,7 +165,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
165 | 165 | ||
166 | for (int i = 0; i < workingMiddle.vertices.Count; i++) | 166 | for (int i = 0; i < workingMiddle.vertices.Count; i++) |
167 | { | 167 | { |
168 | int iNext = (i + 1); | 168 | int iNext = i + 1; |
169 | 169 | ||
170 | if (workingMiddle.vertices[i] == null) // Can't make a simplex here | 170 | if (workingMiddle.vertices[i] == null) // Can't make a simplex here |
171 | { | 171 | { |
@@ -200,7 +200,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
200 | iLastNull = 0; | 200 | iLastNull = 0; |
201 | for (int i = 0; i < workingPlus.vertices.Count; i++) | 201 | for (int i = 0; i < workingPlus.vertices.Count; i++) |
202 | { | 202 | { |
203 | int iNext = (i + 1); | 203 | int iNext = i + 1; |
204 | 204 | ||
205 | if (workingPlus.vertices[i] == null) // Can't make a simplex here | 205 | if (workingPlus.vertices[i] == null) // Can't make a simplex here |
206 | { | 206 | { |
@@ -261,7 +261,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
261 | 261 | ||
262 | float twistTotal = twistTop - twistBot; | 262 | float twistTotal = twistTop - twistBot; |
263 | // if the profile has a lot of twist, add more layers otherwise the layers may overlap | 263 | // if the profile has a lot of twist, add more layers otherwise the layers may overlap |
264 | // and the resulting mesh may be quite inaccurate. This method is arbitrary and doesnt | 264 | // and the resulting mesh may be quite inaccurate. This method is arbitrary and doesn't |
265 | // accurately match the viewer | 265 | // accurately match the viewer |
266 | if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 1.5f) steps *= 2; | 266 | if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 1.5f) steps *= 2; |
267 | if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 3.0f) steps *= 2; | 267 | if (System.Math.Abs(twistTotal) > (float)System.Math.PI * 3.0f) steps *= 2; |
@@ -291,7 +291,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
291 | + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString()); | 291 | + " taperTopFactorX: " + taperTopFactorX.ToString() + " taperTopFactorY: " + taperTopFactorY.ToString()); |
292 | System.Console.WriteLine("Extruder: PathScaleX: " + pathScaleX.ToString() + " pathScaleY: " + pathScaleY.ToString()); | 292 | System.Console.WriteLine("Extruder: PathScaleX: " + pathScaleX.ToString() + " pathScaleY: " + pathScaleY.ToString()); |
293 | #endif | 293 | #endif |
294 | |||
295 | 294 | ||
296 | bool done = false; | 295 | bool done = false; |
297 | do // loop through the length of the path and add the layers | 296 | do // loop through the length of the path and add the layers |
@@ -319,12 +318,16 @@ namespace OpenSim.Region.Physics.Meshing | |||
319 | 318 | ||
320 | // apply the taper to the profile before any rotations | 319 | // apply the taper to the profile before any rotations |
321 | if (xProfileScale != 1.0f || yProfileScale != 1.0f) | 320 | if (xProfileScale != 1.0f || yProfileScale != 1.0f) |
321 | { | ||
322 | foreach (Vertex v in newLayer.vertices) | 322 | foreach (Vertex v in newLayer.vertices) |
323 | if ( v != null ) | 323 | { |
324 | if (v != null) | ||
324 | { | 325 | { |
325 | v.X *= xProfileScale; | 326 | v.X *= xProfileScale; |
326 | v.Y *= yProfileScale; | 327 | v.Y *= yProfileScale; |
327 | } | 328 | } |
329 | } | ||
330 | } | ||
328 | 331 | ||
329 | float radiusScale; | 332 | float radiusScale; |
330 | 333 | ||
@@ -332,8 +335,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
332 | radiusScale = 1.0f - radius * percentOfPath; | 335 | radiusScale = 1.0f - radius * percentOfPath; |
333 | else if (radius < 0.001f) | 336 | else if (radius < 0.001f) |
334 | radiusScale = 1.0f + radius * (1.0f - percentOfPath); | 337 | radiusScale = 1.0f + radius * (1.0f - percentOfPath); |
335 | else radiusScale = 1.0f; | 338 | else |
336 | 339 | radiusScale = 1.0f; | |
337 | 340 | ||
338 | #if SPAM | 341 | #if SPAM |
339 | System.Console.WriteLine("Extruder: angle: " + angle.ToString() + " percentOfPath: " + percentOfPath.ToString() | 342 | System.Console.WriteLine("Extruder: angle: " + angle.ToString() + " percentOfPath: " + percentOfPath.ToString() |
@@ -379,10 +382,12 @@ namespace OpenSim.Region.Physics.Meshing | |||
379 | } | 382 | } |
380 | 383 | ||
381 | if (angle == startAngle) // the first layer, invert normals | 384 | if (angle == startAngle) // the first layer, invert normals |
385 | { | ||
382 | foreach (Triangle t in newLayer.triangles) | 386 | foreach (Triangle t in newLayer.triangles) |
383 | { | 387 | { |
384 | t.invertNormal(); | 388 | t.invertNormal(); |
385 | } | 389 | } |
390 | } | ||
386 | 391 | ||
387 | result.Append(newLayer); | 392 | result.Append(newLayer); |
388 | 393 | ||
@@ -397,7 +402,9 @@ namespace OpenSim.Region.Physics.Meshing | |||
397 | int iNext = (i + 1); | 402 | int iNext = (i + 1); |
398 | 403 | ||
399 | if (lastLayer.vertices[i] == null) // cant make a simplex here | 404 | if (lastLayer.vertices[i] == null) // cant make a simplex here |
405 | { | ||
400 | iLastNull = i + 1; | 406 | iLastNull = i + 1; |
407 | } | ||
401 | else | 408 | else |
402 | { | 409 | { |
403 | if (i == count - 1) // End of list | 410 | if (i == count - 1) // End of list |
@@ -413,17 +420,17 @@ namespace OpenSim.Region.Physics.Meshing | |||
413 | } | 420 | } |
414 | lastLayer = newLayer; | 421 | lastLayer = newLayer; |
415 | 422 | ||
416 | |||
417 | // calc the angle for the next interation of the loop | 423 | // calc the angle for the next interation of the loop |
418 | if (angle >= endAngle) | 424 | if (angle >= endAngle) |
425 | { | ||
419 | done = true; | 426 | done = true; |
427 | } | ||
420 | else | 428 | else |
421 | { | 429 | { |
422 | angle = stepSize * ++step; | 430 | angle = stepSize * ++step; |
423 | if (angle > endAngle) | 431 | if (angle > endAngle) |
424 | angle = endAngle; | 432 | angle = endAngle; |
425 | } | 433 | } |
426 | |||
427 | } while (!done); // loop until all the layers in the path are completed | 434 | } while (!done); // loop until all the layers in the path are completed |
428 | 435 | ||
429 | // scale the mesh to the desired size | 436 | // scale the mesh to the desired size |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs index e5167aa..6a3f464 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands.cs | |||
@@ -178,7 +178,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
178 | 178 | ||
179 | 179 | ||
180 | /// <summary> | 180 | /// <summary> |
181 | /// accepts a valid LLUUID, -or- a name of an inventory item. | 181 | /// accepts a valid LLUUID, -or- a name of an inventory item. |
182 | /// Returns a valid LLUUID or LLUUID.Zero if key invalid and item not found | 182 | /// Returns a valid LLUUID or LLUUID.Zero if key invalid and item not found |
183 | /// in prim inventory. | 183 | /// in prim inventory. |
184 | /// </summary> | 184 | /// </summary> |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index abad59c..7113f1a 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | |||
@@ -39,9 +39,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
39 | { | 39 | { |
40 | public class Compiler | 40 | public class Compiler |
41 | { | 41 | { |
42 | private static readonly log4net.ILog m_log | 42 | private static readonly log4net.ILog m_log |
43 | = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); | 43 | = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); |
44 | 44 | ||
45 | // * Uses "LSL2Converter" to convert LSL to C# if necessary. | 45 | // * Uses "LSL2Converter" to convert LSL to C# if necessary. |
46 | // * Compiles C#-code into an assembly | 46 | // * Compiles C#-code into an assembly |
47 | // * Returns assembly name ready for AppDomain load. | 47 | // * Returns assembly name ready for AppDomain load. |
@@ -291,8 +291,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
291 | 291 | ||
292 | if (enableCommanderLSL == true && l == enumCompileType.cs) | 292 | if (enableCommanderLSL == true && l == enumCompileType.cs) |
293 | { | 293 | { |
294 | foreach (KeyValuePair<string, | 294 | foreach (KeyValuePair<string, |
295 | ICommander> com | 295 | ICommander> com |
296 | in m_scriptEngine.World.GetCommanders()) | 296 | in m_scriptEngine.World.GetCommanders()) |
297 | { | 297 | { |
298 | compileScript = com.Value.GenerateRuntimeAPI() + compileScript; | 298 | compileScript = com.Value.GenerateRuntimeAPI() + compileScript; |
@@ -318,7 +318,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
318 | m_log.Debug("[ScriptEngine.DotNetEngine]: Preparing to compile the following LSL to C# translated code"); | 318 | m_log.Debug("[ScriptEngine.DotNetEngine]: Preparing to compile the following LSL to C# translated code"); |
319 | m_log.Debug(""); | 319 | m_log.Debug(""); |
320 | m_log.Debug(compileScript); | 320 | m_log.Debug(compileScript); |
321 | 321 | ||
322 | return CompileFromDotNetText(compileScript, l); | 322 | return CompileFromDotNetText(compileScript, l); |
323 | } | 323 | } |
324 | 324 | ||
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs index 557c1c9..0bd3b0c 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/YP2CSConverter.cs | |||
@@ -75,7 +75,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
75 | { | 75 | { |
76 | ListPair VFC = new ListPair(FunctionCode, new Variable()); | 76 | ListPair VFC = new ListPair(FunctionCode, new Variable()); |
77 | //Console.WriteLine("-------------------------") | 77 | //Console.WriteLine("-------------------------") |
78 | //Console.WriteLine( FunctionCode.ToString()) | 78 | //Console.WriteLine(FunctionCode.ToString()) |
79 | //Console.WriteLine("-------------------------") | 79 | //Console.WriteLine("-------------------------") |
80 | YPCompiler.convertFunctionCSharp(FunctionCode); | 80 | YPCompiler.convertFunctionCSharp(FunctionCode); |
81 | //YPCompiler.convertStringCodesCSharp(VFC); | 81 | //YPCompiler.convertStringCodesCSharp(VFC); |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Atom.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Atom.cs index 7387ef4..0537f7d 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Atom.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Atom.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -167,7 +167,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
167 | return _name.GetHashCode(); | 167 | return _name.GetHashCode(); |
168 | } | 168 | } |
169 | 169 | ||
170 | public string toQuotedString() | 170 | public string toQuotedString() |
171 | { | 171 | { |
172 | if (_name.Length == 0) | 172 | if (_name.Length == 0) |
173 | return "''"; | 173 | return "''"; |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/BagofAnswers.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/BagofAnswers.cs index 88ffdb7..250ad59 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/BagofAnswers.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/BagofAnswers.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -47,7 +47,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
47 | new TermArrayEqualityComparer(); | 47 | new TermArrayEqualityComparer(); |
48 | 48 | ||
49 | /// <summary> | 49 | /// <summary> |
50 | /// To get the free variables, split off any existential qualifiers from Goal such as the X in | 50 | /// To get the free variables, split off any existential qualifiers from Goal such as the X in |
51 | /// "X ^ f(Y)", get the set of unbound variables in Goal that are not qualifiers, then remove | 51 | /// "X ^ f(Y)", get the set of unbound variables in Goal that are not qualifiers, then remove |
52 | /// the unbound variables that are qualifiers as well as the unbound variables in Template. | 52 | /// the unbound variables that are qualifiers as well as the unbound variables in Template. |
53 | /// </summary> | 53 | /// </summary> |
@@ -67,7 +67,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
67 | UnqualifiedGoal = YP.getValue(((Functor2)UnqualifiedGoal)._arg2); | 67 | UnqualifiedGoal = YP.getValue(((Functor2)UnqualifiedGoal)._arg2); |
68 | } | 68 | } |
69 | 69 | ||
70 | // Remember how many non-free variables there are so we can find the unique free variables | 70 | // Remember how many non-free variables there are so we can find the unique free variables |
71 | // that are added. | 71 | // that are added. |
72 | int nNonFreeVariables = variableSet.Count; | 72 | int nNonFreeVariables = variableSet.Count; |
73 | YP.addUniqueVariables(UnqualifiedGoal, variableSet); | 73 | YP.addUniqueVariables(UnqualifiedGoal, variableSet); |
@@ -116,8 +116,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
116 | /// <summary> | 116 | /// <summary> |
117 | /// For each result, unify the _freeVariables and unify bagArrayVariable with the associated bag. | 117 | /// For each result, unify the _freeVariables and unify bagArrayVariable with the associated bag. |
118 | /// </summary> | 118 | /// </summary> |
119 | /// <param name="bagArrayVariable">this is unified with the List<object> of matches for template that | 119 | /// <param name="bagArrayVariable">this is unified with the List<object> of matches for template that |
120 | /// corresponds to the bindings for freeVariables. Be very careful: this does not unify with a Prolog | 120 | /// corresponds to the bindings for freeVariables. Be very careful: this does not unify with a Prolog |
121 | /// list.</param> | 121 | /// list.</param> |
122 | /// <returns></returns> | 122 | /// <returns></returns> |
123 | public IEnumerable<bool> resultArray(Variable bagArrayVariable) | 123 | public IEnumerable<bool> resultArray(Variable bagArrayVariable) |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/FindallAnswers.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/FindallAnswers.cs index dcd4250..cfc6788 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/FindallAnswers.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/FindallAnswers.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor.cs index 58c0e4b..07993ea 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -66,14 +66,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
66 | 66 | ||
67 | /// <summary> | 67 | /// <summary> |
68 | /// Return an Atom, Functor1, Functor2, Functor3 or Functor depending on the | 68 | /// Return an Atom, Functor1, Functor2, Functor3 or Functor depending on the |
69 | /// length of args. | 69 | /// length of args. |
70 | /// Note that this is different than the Functor constructor which requires | 70 | /// Note that this is different than the Functor constructor which requires |
71 | /// the length of args to be greater than 3. | 71 | /// the length of args to be greater than 3. |
72 | /// </summary> | 72 | /// </summary> |
73 | /// <param name="name"></param> | 73 | /// <param name="name"></param> |
74 | /// <param name="args"></param> | 74 | /// <param name="args"></param> |
75 | /// <returns></returns> | 75 | /// <returns></returns> |
76 | public static object make(Atom name, object[] args) | 76 | public static object make(Atom name, object[] args) |
77 | { | 77 | { |
78 | if (args.Length <= 0) | 78 | if (args.Length <= 0) |
79 | return name; | 79 | return name; |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor1.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor1.cs index 582cd20..114e338 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor1.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor1.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor2.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor2.cs index 138a44c..132d417 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor2.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor2.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -118,7 +118,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
118 | 118 | ||
119 | public object makeCopy(Variable.CopyStore copyStore) | 119 | public object makeCopy(Variable.CopyStore copyStore) |
120 | { | 120 | { |
121 | return new Functor2(_name, YP.makeCopy(_arg1, copyStore), | 121 | return new Functor2(_name, YP.makeCopy(_arg1, copyStore), |
122 | YP.makeCopy(_arg2, copyStore)); | 122 | YP.makeCopy(_arg2, copyStore)); |
123 | } | 123 | } |
124 | 124 | ||
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor3.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor3.cs index b52fdf3..064ec19 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor3.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Functor3.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -47,7 +47,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
47 | _arg2 = arg2; | 47 | _arg2 = arg2; |
48 | _arg3 = arg3; | 48 | _arg3 = arg3; |
49 | } | 49 | } |
50 | 50 | ||
51 | public Functor3(string name, object arg1, object arg2, object arg3) | 51 | public Functor3(string name, object arg1, object arg2, object arg3) |
52 | : this(Atom.a(name), arg1, arg2, arg3) | 52 | : this(Atom.a(name), arg1, arg2, arg3) |
53 | { | 53 | { |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs index 05b0a01..e1efda8 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/IndexedAnswers.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -73,7 +73,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
73 | 73 | ||
74 | // If match has already indexed answers for a signature, we need to add | 74 | // If match has already indexed answers for a signature, we need to add |
75 | // this to the existing indexed answers. | 75 | // this to the existing indexed answers. |
76 | foreach(int signature in _gotAnswersForSignature.Keys) | 76 | foreach (int signature in _gotAnswersForSignature.Keys) |
77 | indexAnswerForSignature(answerCopy, signature); | 77 | indexAnswerForSignature(answerCopy, signature); |
78 | } | 78 | } |
79 | 79 | ||
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/ListPair.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/ListPair.cs index 681c445..f0669f6 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/ListPair.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/ListPair.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -64,7 +64,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
64 | } | 64 | } |
65 | 65 | ||
66 | /// <summary> | 66 | /// <summary> |
67 | /// Return a ListPair version of array, where repeated elements | 67 | /// Return a ListPair version of array, where repeated elements |
68 | /// (according to YP.termEqual) are removed. | 68 | /// (according to YP.termEqual) are removed. |
69 | /// </summary> | 69 | /// </summary> |
70 | /// <param name="array"></param> | 70 | /// <param name="array"></param> |
@@ -89,7 +89,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
89 | } | 89 | } |
90 | 90 | ||
91 | /// <summary> | 91 | /// <summary> |
92 | /// Return a ListPair version of array, where repeated elements | 92 | /// Return a ListPair version of array, where repeated elements |
93 | /// (according to YP.termEqual) are removed. | 93 | /// (according to YP.termEqual) are removed. |
94 | /// </summary> | 94 | /// </summary> |
95 | /// <param name="array"></param> | 95 | /// <param name="array"></param> |
@@ -125,7 +125,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
125 | 125 | ||
126 | public static object make(object element1, object element2, object element3) | 126 | public static object make(object element1, object element2, object element3) |
127 | { | 127 | { |
128 | return new ListPair(element1, | 128 | return new ListPair(element1, |
129 | new ListPair(element2, new ListPair(element3, Atom.NIL))); | 129 | new ListPair(element2, new ListPair(element3, Atom.NIL))); |
130 | } | 130 | } |
131 | 131 | ||
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Parser.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Parser.cs index a21a471..b2fad45 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Parser.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Parser.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs index 63b304a..2a23fe1 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/PrologException.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/UndefinedPredicateException.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/UndefinedPredicateException.cs index f746a07..22a22b4 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/UndefinedPredicateException.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/UndefinedPredicateException.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Variable.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Variable.cs index 47b5278..7829770 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Variable.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/Variable.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs index 2912ab9..a03cd30 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YP.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
@@ -650,8 +650,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
650 | if (term1TypeCode == -2) | 650 | if (term1TypeCode == -2) |
651 | { | 651 | { |
652 | // Variable. | 652 | // Variable. |
653 | // We always check for equality first because we want to be sure | 653 | // We always check for equality first because we want to be sure |
654 | // that less than returns false if the terms are equal, in | 654 | // that less than returns false if the terms are equal, in |
655 | // case that the less than check really behaves like less than or equal. | 655 | // case that the less than check really behaves like less than or equal. |
656 | if ((Variable)Term1 != (Variable)Term2) | 656 | if ((Variable)Term1 != (Variable)Term2) |
657 | // The hash code should be unique to a Variable object. | 657 | // The hash code should be unique to a Variable object. |
@@ -694,8 +694,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
694 | } | 694 | } |
695 | 695 | ||
696 | /// <summary> | 696 | /// <summary> |
697 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, | 697 | /// Type code is -2 if term is a Variable, 0 if it is an Atom, |
698 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, | 698 | /// 1 if it is a Functor1, 2 if it is a Functor2, 3 if it is a Functor3, |
699 | /// 4 if it is Functor. | 699 | /// 4 if it is Functor. |
700 | /// Otherwise, type code is -1. | 700 | /// Otherwise, type code is -1. |
701 | /// This does not call YP.getValue(term). | 701 | /// This does not call YP.getValue(term). |
@@ -1115,7 +1115,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1115 | IndexedAnswers indexedAnswers; | 1115 | IndexedAnswers indexedAnswers; |
1116 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) | 1116 | if (!_predicatesStore.TryGetValue(nameArity, out clauses)) |
1117 | { | 1117 | { |
1118 | // Create an IndexedAnswers as the first clause of the predicate. | 1118 | // Create an IndexedAnswers as the first clause of the predicate. |
1119 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); | 1119 | _predicatesStore[nameArity] = (clauses = new List<IClause>()); |
1120 | clauses.Add(indexedAnswers = new IndexedAnswers()); | 1120 | clauses.Add(indexedAnswers = new IndexedAnswers()); |
1121 | } | 1121 | } |
@@ -1135,7 +1135,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1135 | List<IClause> clauses; | 1135 | List<IClause> clauses; |
1136 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) | 1136 | if (!_predicatesStore.TryGetValue(new NameArity(name, arguments.Length), out clauses)) |
1137 | throw new UndefinedPredicateException | 1137 | throw new UndefinedPredicateException |
1138 | ("Undefined fact: " + name + "/" + arguments.Length, name, | 1138 | ("Undefined fact: " + name + "/" + arguments.Length, name, |
1139 | arguments.Length); | 1139 | arguments.Length); |
1140 | 1140 | ||
1141 | if (clauses.Count == 1) | 1141 | if (clauses.Count == 1) |
@@ -1209,7 +1209,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.YieldProlog | |||
1209 | } | 1209 | } |
1210 | 1210 | ||
1211 | /// <summary> | 1211 | /// <summary> |
1212 | /// Use YP.getFunctorName(Goal) and invoke the static method of this name in the | 1212 | /// Use YP.getFunctorName(Goal) and invoke the static method of this name in the |
1213 | /// declaringClass, using arguments from YP.getFunctorArgs(Goal). | 1213 | /// declaringClass, using arguments from YP.getFunctorArgs(Goal). |
1214 | /// Note that Goal must be a simple functor, not a complex expression. | 1214 | /// Note that Goal must be a simple functor, not a complex expression. |
1215 | /// If not found, this throws UndefinedPredicateException. | 1215 | /// If not found, this throws UndefinedPredicateException. |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YPCompiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YPCompiler.cs index a0a92b6..d998bac 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YPCompiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/YieldProlog/YPCompiler.cs | |||
@@ -1,20 +1,20 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (C) 2007-2008, Jeff Thompson | 2 | * Copyright (C) 2007-2008, Jeff Thompson |
3 | * | 3 | * |
4 | * All rights reserved. | 4 | * All rights reserved. |
5 | * | 5 | * |
6 | * Redistribution and use in source and binary forms, with or without | 6 | * Redistribution and use in source and binary forms, with or without |
7 | * modification, are permitted provided that the following conditions are met: | 7 | * modification, are permitted provided that the following conditions are met: |
8 | * | 8 | * |
9 | * * Redistributions of source code must retain the above copyright | 9 | * * Redistributions of source code must retain the above copyright |
10 | * notice, this list of conditions and the following disclaimer. | 10 | * notice, this list of conditions and the following disclaimer. |
11 | * * Redistributions in binary form must reproduce the above copyright | 11 | * * Redistributions in binary form must reproduce the above copyright |
12 | * notice, this list of conditions and the following disclaimer in the | 12 | * notice, this list of conditions and the following disclaimer in the |
13 | * documentation and/or other materials provided with the distribution. | 13 | * documentation and/or other materials provided with the distribution. |
14 | * * Neither the name of the copyright holder nor the names of its contributors | 14 | * * Neither the name of the copyright holder nor the names of its contributors |
15 | * may be used to endorse or promote products derived from this software | 15 | * may be used to endorse or promote products derived from this software |
16 | * without specific prior written permission. | 16 | * without specific prior written permission. |
17 | * | 17 | * |
18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 18 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 19 | * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 20 | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandManager.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandManager.cs index 4ec7916..fdad5b0 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandManager.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandManager.cs | |||
@@ -184,7 +184,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
184 | List<Object> data = new List<Object>(); | 184 | List<Object> data = new List<Object>(); |
185 | 185 | ||
186 | Object[] listeners=m_Listener.GetSerializationData(itemID); | 186 | Object[] listeners=m_Listener.GetSerializationData(itemID); |
187 | if(listeners.Length > 0) | 187 | if (listeners.Length > 0) |
188 | { | 188 | { |
189 | data.Add("listener"); | 189 | data.Add("listener"); |
190 | data.Add(listeners.Length); | 190 | data.Add(listeners.Length); |
@@ -192,7 +192,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
192 | } | 192 | } |
193 | 193 | ||
194 | Object[] timers=m_Timer.GetSerializationData(itemID); | 194 | Object[] timers=m_Timer.GetSerializationData(itemID); |
195 | if(timers.Length > 0) | 195 | if (timers.Length > 0) |
196 | { | 196 | { |
197 | data.Add("timer"); | 197 | data.Add("timer"); |
198 | data.Add(timers.Length); | 198 | data.Add(timers.Length); |
@@ -200,7 +200,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
200 | } | 200 | } |
201 | 201 | ||
202 | Object[] sensors=m_SensorRepeat.GetSerializationData(itemID); | 202 | Object[] sensors=m_SensorRepeat.GetSerializationData(itemID); |
203 | if(sensors.Length > 0) | 203 | if (sensors.Length > 0) |
204 | { | 204 | { |
205 | data.Add("sensor"); | 205 | data.Add("sensor"); |
206 | data.Add(sensors.Length); | 206 | data.Add(sensors.Length); |
@@ -211,36 +211,36 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
211 | } | 211 | } |
212 | 212 | ||
213 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID hostID, | 213 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID hostID, |
214 | Object[] data) | 214 | Object[] data) |
215 | { | 215 | { |
216 | int idx=0; | 216 | int idx = 0; |
217 | int len; | 217 | int len; |
218 | 218 | ||
219 | while(idx < data.Length) | 219 | while (idx < data.Length) |
220 | { | 220 | { |
221 | string type = data[idx].ToString(); | 221 | string type = data[idx].ToString(); |
222 | len = (int)data[idx+1]; | 222 | len = (int)data[idx+1]; |
223 | idx+=2; | 223 | idx+=2; |
224 | 224 | ||
225 | if(len > 0) | 225 | if (len > 0) |
226 | { | 226 | { |
227 | Object[] item = new Object[len]; | 227 | Object[] item = new Object[len]; |
228 | Array.Copy(data, idx, item, 0, len); | 228 | Array.Copy(data, idx, item, 0, len); |
229 | 229 | ||
230 | idx+=len; | 230 | idx+=len; |
231 | 231 | ||
232 | switch(type) | 232 | switch (type) |
233 | { | 233 | { |
234 | case "listener": | 234 | case "listener": |
235 | m_Listener.CreateFromData(localID, itemID, hostID, | 235 | m_Listener.CreateFromData(localID, itemID, hostID, |
236 | item); | 236 | item); |
237 | break; | 237 | break; |
238 | case "timer": | 238 | case "timer": |
239 | m_Timer.CreateFromData(localID, itemID, hostID, item); | 239 | m_Timer.CreateFromData(localID, itemID, hostID, item); |
240 | break; | 240 | break; |
241 | case "sensor": | 241 | case "sensor": |
242 | m_SensorRepeat.CreateFromData(localID, itemID, hostID, | 242 | m_SensorRepeat.CreateFromData(localID, itemID, hostID, |
243 | item); | 243 | item); |
244 | break; | 244 | break; |
245 | } | 245 | } |
246 | } | 246 | } |
@@ -249,12 +249,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
249 | 249 | ||
250 | #region Check llRemoteData channels | 250 | #region Check llRemoteData channels |
251 | 251 | ||
252 | |||
253 | #endregion | 252 | #endregion |
254 | 253 | ||
255 | #region Check llListeners | 254 | #region Check llListeners |
256 | 255 | ||
257 | |||
258 | #endregion | 256 | #endregion |
259 | 257 | ||
260 | /// <summary> | 258 | /// <summary> |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Dataserver.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Dataserver.cs index 794a015..47ab420 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Dataserver.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Dataserver.cs | |||
@@ -57,11 +57,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
57 | } | 57 | } |
58 | 58 | ||
59 | public LLUUID RegisterRequest(uint localID, LLUUID itemID, | 59 | public LLUUID RegisterRequest(uint localID, LLUUID itemID, |
60 | string identifier) | 60 | string identifier) |
61 | { | 61 | { |
62 | lock(DataserverRequests) | 62 | lock (DataserverRequests) |
63 | { | 63 | { |
64 | if(DataserverRequests.ContainsKey(identifier)) | 64 | if (DataserverRequests.ContainsKey(identifier)) |
65 | return LLUUID.Zero; | 65 | return LLUUID.Zero; |
66 | 66 | ||
67 | DataserverRequest ds = new DataserverRequest(); | 67 | DataserverRequest ds = new DataserverRequest(); |
@@ -84,9 +84,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
84 | { | 84 | { |
85 | DataserverRequest ds; | 85 | DataserverRequest ds; |
86 | 86 | ||
87 | lock(DataserverRequests) | 87 | lock (DataserverRequests) |
88 | { | 88 | { |
89 | if(!DataserverRequests.ContainsKey(identifier)) | 89 | if (!DataserverRequests.ContainsKey(identifier)) |
90 | return; | 90 | return; |
91 | 91 | ||
92 | ds=DataserverRequests[identifier]; | 92 | ds=DataserverRequests[identifier]; |
@@ -94,7 +94,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
94 | } | 94 | } |
95 | 95 | ||
96 | m_CmdManager.m_ScriptEngine.PostObjectEvent(ds.localID, | 96 | m_CmdManager.m_ScriptEngine.PostObjectEvent(ds.localID, |
97 | new XEventParams( "dataserver", new Object[] | 97 | new XEventParams("dataserver", new Object[] |
98 | { new LSL_Types.LSLString(ds.ID.ToString()), | 98 | { new LSL_Types.LSLString(ds.ID.ToString()), |
99 | new LSL_Types.LSLString(reply)}, | 99 | new LSL_Types.LSLString(reply)}, |
100 | new XDetectParams[0])); | 100 | new XDetectParams[0])); |
@@ -102,11 +102,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
102 | 102 | ||
103 | public void RemoveEvents(uint localID, LLUUID itemID) | 103 | public void RemoveEvents(uint localID, LLUUID itemID) |
104 | { | 104 | { |
105 | lock(DataserverRequests) | 105 | lock (DataserverRequests) |
106 | { | 106 | { |
107 | foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) | 107 | foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) |
108 | { | 108 | { |
109 | if(ds.itemID == itemID) | 109 | if (ds.itemID == itemID) |
110 | DataserverRequests.Remove(ds.handle); | 110 | DataserverRequests.Remove(ds.handle); |
111 | } | 111 | } |
112 | } | 112 | } |
@@ -114,11 +114,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
114 | 114 | ||
115 | public void ExpireRequests() | 115 | public void ExpireRequests() |
116 | { | 116 | { |
117 | lock(DataserverRequests) | 117 | lock (DataserverRequests) |
118 | { | 118 | { |
119 | foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) | 119 | foreach (DataserverRequest ds in new List<DataserverRequest>(DataserverRequests.Values)) |
120 | { | 120 | { |
121 | if(ds.startTime > DateTime.Now.AddSeconds(30)) | 121 | if (ds.startTime > DateTime.Now.AddSeconds(30)) |
122 | DataserverRequests.Remove(ds.handle); | 122 | DataserverRequests.Remove(ds.handle); |
123 | } | 123 | } |
124 | } | 124 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Eventstream.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Eventstream.cs index 9112b9c..dab7a0a 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Eventstream.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Eventstream.cs | |||
@@ -55,14 +55,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
55 | public void AddObjectEvent(uint localID, string eventName, XDetectParams det) | 55 | public void AddObjectEvent(uint localID, string eventName, XDetectParams det) |
56 | { | 56 | { |
57 | SceneObjectPart part = m_CmdManager.m_ScriptEngine.World. | 57 | SceneObjectPart part = m_CmdManager.m_ScriptEngine.World. |
58 | GetSceneObjectPart(localID); | 58 | GetSceneObjectPart(localID); |
59 | 59 | ||
60 | if(part == null) // Can't register events for non-prims | 60 | if (part == null) // Can't register events for non-prims |
61 | return; | 61 | return; |
62 | 62 | ||
63 | if(!part.ContainsScripts()) | 63 | if (!part.ContainsScripts()) |
64 | return; | 64 | return; |
65 | |||
66 | } | 65 | } |
67 | 66 | ||
68 | public void RemoveObjectEvent(uint localID, string eventName, LLUUID id) | 67 | public void RemoveObjectEvent(uint localID, string eventName, LLUUID id) |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/HttpRequest.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/HttpRequest.cs index 977e3f9..089e016 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/HttpRequest.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/HttpRequest.cs | |||
@@ -77,7 +77,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
77 | 77 | ||
78 | foreach (XEngine xe in XEngine.ScriptEngines) | 78 | foreach (XEngine xe in XEngine.ScriptEngines) |
79 | { | 79 | { |
80 | if(xe.PostObjectEvent(httpInfo.localID, | 80 | if (xe.PostObjectEvent(httpInfo.localID, |
81 | new XEventParams("http_response", | 81 | new XEventParams("http_response", |
82 | resobj, new XDetectParams[0]))) | 82 | resobj, new XDetectParams[0]))) |
83 | break; | 83 | break; |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/SensorRepeat.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/SensorRepeat.cs index 5a87bb0..dbd6c33 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/SensorRepeat.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/SensorRepeat.cs | |||
@@ -69,7 +69,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
69 | private object SenseRepeatListLock = new object(); | 69 | private object SenseRepeatListLock = new object(); |
70 | 70 | ||
71 | public void SetSenseRepeatEvent(uint m_localID, LLUUID m_itemID, | 71 | public void SetSenseRepeatEvent(uint m_localID, LLUUID m_itemID, |
72 | string name, LLUUID keyID, int type, double range, double arc, double sec, SceneObjectPart host) | 72 | string name, LLUUID keyID, int type, double range, |
73 | double arc, double sec, SceneObjectPart host) | ||
73 | { | 74 | { |
74 | Console.WriteLine("SetSensorEvent"); | 75 | Console.WriteLine("SetSensorEvent"); |
75 | 76 | ||
@@ -319,7 +320,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
319 | new XDetectParams[SensedObjects.Length]; | 320 | new XDetectParams[SensedObjects.Length]; |
320 | 321 | ||
321 | int idx; | 322 | int idx; |
322 | for(idx = 0 ; idx < SensedObjects.Length; idx++) | 323 | for (idx = 0; idx < SensedObjects.Length; idx++) |
323 | { | 324 | { |
324 | detect[idx].Key=(LLUUID)(SensedObjects.Data[idx]); | 325 | detect[idx].Key=(LLUUID)(SensedObjects.Data[idx]); |
325 | } | 326 | } |
@@ -339,7 +340,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
339 | 340 | ||
340 | foreach (SenseRepeatClass ts in SenseRepeaters) | 341 | foreach (SenseRepeatClass ts in SenseRepeaters) |
341 | { | 342 | { |
342 | if(ts.itemID == itemID) | 343 | if (ts.itemID == itemID) |
343 | { | 344 | { |
344 | data.Add(ts.interval); | 345 | data.Add(ts.interval); |
345 | data.Add(ts.name); | 346 | data.Add(ts.name); |
@@ -353,18 +354,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
353 | } | 354 | } |
354 | 355 | ||
355 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, | 356 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, |
356 | Object[] data) | 357 | Object[] data) |
357 | { | 358 | { |
358 | SceneObjectPart part = | 359 | SceneObjectPart part = |
359 | m_CmdManager.m_ScriptEngine.World.GetSceneObjectPart( | 360 | m_CmdManager.m_ScriptEngine.World.GetSceneObjectPart( |
360 | objectID); | 361 | objectID); |
361 | 362 | ||
362 | if(part == null) | 363 | if (part == null) |
363 | return; | 364 | return; |
364 | 365 | ||
365 | int idx=0; | 366 | int idx = 0; |
366 | 367 | ||
367 | while(idx < data.Length) | 368 | while (idx < data.Length) |
368 | { | 369 | { |
369 | SenseRepeatClass ts = new SenseRepeatClass(); | 370 | SenseRepeatClass ts = new SenseRepeatClass(); |
370 | 371 | ||
@@ -380,12 +381,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
380 | ts.host = part; | 381 | ts.host = part; |
381 | 382 | ||
382 | ts.next = | 383 | ts.next = |
383 | DateTime.Now.ToUniversalTime().AddSeconds(ts.interval); | 384 | DateTime.Now.ToUniversalTime().AddSeconds(ts.interval); |
384 | 385 | ||
385 | SenseRepeaters.Add(ts); | 386 | SenseRepeaters.Add(ts); |
386 | idx += 6; | 387 | idx += 6; |
387 | } | 388 | } |
388 | } | 389 | } |
389 | |||
390 | } | 390 | } |
391 | } | 391 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Timer.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Timer.cs index 09a5818..99be290 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Timer.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/Timer.cs | |||
@@ -131,7 +131,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
131 | { | 131 | { |
132 | foreach (TimerClass ts in Timers) | 132 | foreach (TimerClass ts in Timers) |
133 | { | 133 | { |
134 | if(ts.itemID == itemID) | 134 | if (ts.itemID == itemID) |
135 | { | 135 | { |
136 | data.Add(ts.interval); | 136 | data.Add(ts.interval); |
137 | data.Add(ts.next-DateTime.Now.Ticks); | 137 | data.Add(ts.next-DateTime.Now.Ticks); |
@@ -142,11 +142,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
142 | } | 142 | } |
143 | 143 | ||
144 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, | 144 | public void CreateFromData(uint localID, LLUUID itemID, LLUUID objectID, |
145 | Object[] data) | 145 | Object[] data) |
146 | { | 146 | { |
147 | int idx=0; | 147 | int idx = 0; |
148 | 148 | ||
149 | while(idx < data.Length) | 149 | while (idx < data.Length) |
150 | { | 150 | { |
151 | TimerClass ts = new TimerClass(); | 151 | TimerClass ts = new TimerClass(); |
152 | 152 | ||
diff --git a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/XmlRequest.cs b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/XmlRequest.cs index 2714d11..288349e 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/XmlRequest.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/AsyncCommandPlugins/XmlRequest.cs | |||
@@ -71,10 +71,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
71 | 71 | ||
72 | foreach (XEngine xe in XEngine.ScriptEngines) | 72 | foreach (XEngine xe in XEngine.ScriptEngines) |
73 | { | 73 | { |
74 | if(xe.PostScriptEvent( | 74 | if (xe.PostScriptEvent( |
75 | rInfo.GetItemID(), new XEventParams( | 75 | rInfo.GetItemID(), new XEventParams( |
76 | "remote_data", resobj, | 76 | "remote_data", resobj, |
77 | new XDetectParams[0]))) | 77 | new XDetectParams[0]))) |
78 | break; | 78 | break; |
79 | } | 79 | } |
80 | 80 | ||
@@ -100,10 +100,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine.AsyncCommandPlugins | |||
100 | 100 | ||
101 | foreach (XEngine xe in XEngine.ScriptEngines) | 101 | foreach (XEngine xe in XEngine.ScriptEngines) |
102 | { | 102 | { |
103 | if(xe.PostScriptEvent( | 103 | if (xe.PostScriptEvent( |
104 | srdInfo.m_itemID, new XEventParams( | 104 | srdInfo.m_itemID, new XEventParams( |
105 | "remote_data", resobj, | 105 | "remote_data", resobj, |
106 | new XDetectParams[0]))) | 106 | new XDetectParams[0]))) |
107 | break; | 107 | break; |
108 | } | 108 | } |
109 | 109 | ||
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Compiler.cs b/OpenSim/Region/ScriptEngine/XEngine/Compiler.cs index 980d9e6..3ff7ce0 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/Compiler.cs | |||
@@ -253,10 +253,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
253 | string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine( | 253 | string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine( |
254 | m_scriptEngine.World.RegionInfo.RegionID.ToString(), | 254 | m_scriptEngine.World.RegionInfo.RegionID.ToString(), |
255 | FilePrefix + "_compiled_" + asset + ".dll")); | 255 | FilePrefix + "_compiled_" + asset + ".dll")); |
256 | // string OutFile = Path.Combine(ScriptEnginesPath, | 256 | // string OutFile = Path.Combine(ScriptEnginesPath, |
257 | // FilePrefix + "_compiled_" + asset + ".dll"); | 257 | // FilePrefix + "_compiled_" + asset + ".dll"); |
258 | 258 | ||
259 | if(File.Exists(OutFile)) | 259 | if (File.Exists(OutFile)) |
260 | return OutFile; | 260 | return OutFile; |
261 | 261 | ||
262 | if (!Directory.Exists(ScriptEnginesPath)) | 262 | if (!Directory.Exists(ScriptEnginesPath)) |
@@ -271,7 +271,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
271 | } | 271 | } |
272 | 272 | ||
273 | if (!Directory.Exists(Path.Combine(ScriptEnginesPath, | 273 | if (!Directory.Exists(Path.Combine(ScriptEnginesPath, |
274 | m_scriptEngine.World.RegionInfo.RegionID.ToString()))) | 274 | m_scriptEngine.World.RegionInfo.RegionID.ToString()))) |
275 | { | 275 | { |
276 | try | 276 | try |
277 | { | 277 | { |
@@ -284,7 +284,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
284 | 284 | ||
285 | enumCompileType l = DefaultCompileLanguage; | 285 | enumCompileType l = DefaultCompileLanguage; |
286 | 286 | ||
287 | |||
288 | if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) | 287 | if (Script.StartsWith("//c#", true, CultureInfo.InvariantCulture)) |
289 | l = enumCompileType.cs; | 288 | l = enumCompileType.cs; |
290 | if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) | 289 | if (Script.StartsWith("//vb", true, CultureInfo.InvariantCulture)) |
@@ -334,7 +333,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
334 | 333 | ||
335 | // End of insert | 334 | // End of insert |
336 | 335 | ||
337 | |||
338 | switch (l) | 336 | switch (l) |
339 | { | 337 | { |
340 | case enumCompileType.cs: | 338 | case enumCompileType.cs: |
@@ -368,27 +366,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
368 | 366 | ||
369 | private static string CreateCSCompilerScript(string compileScript) | 367 | private static string CreateCSCompilerScript(string compileScript) |
370 | { | 368 | { |
371 | |||
372 | |||
373 | compileScript = String.Empty + | 369 | compileScript = String.Empty + |
374 | "using OpenSim.Region.ScriptEngine.XEngine.Script; using System.Collections.Generic;\r\n" + | 370 | "using OpenSim.Region.ScriptEngine.XEngine.Script; using System.Collections.Generic;\r\n" + |
375 | String.Empty + "namespace SecondLife { " + | 371 | String.Empty + "namespace SecondLife { " + |
376 | String.Empty + "public class Script : OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass { \r\n" + | 372 | String.Empty + "public class Script : OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass { \r\n" + |
377 | @"public Script() { } " + | 373 | @"public Script() { } " + |
378 | compileScript + | 374 | compileScript + |
379 | "} }\r\n"; | 375 | "} }\r\n"; |
380 | return compileScript; | 376 | return compileScript; |
381 | } | 377 | } |
382 | 378 | ||
383 | private static string CreateVBCompilerScript(string compileScript) | 379 | private static string CreateVBCompilerScript(string compileScript) |
384 | { | 380 | { |
385 | compileScript = String.Empty + | 381 | compileScript = String.Empty + |
386 | "Imports OpenSim.Region.ScriptEngine.XEngine.Script: Imports System.Collections.Generic: " + | 382 | "Imports OpenSim.Region.ScriptEngine.XEngine.Script: Imports System.Collections.Generic: " + |
387 | String.Empty + "NameSpace SecondLife:" + | 383 | String.Empty + "NameSpace SecondLife:" + |
388 | String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass: " + | 384 | String.Empty + "Public Class Script: Inherits OpenSim.Region.ScriptEngine.XEngine.Script.BuiltIn_Commands_BaseClass: " + |
389 | "\r\nPublic Sub New()\r\nEnd Sub: " + | 385 | "\r\nPublic Sub New()\r\nEnd Sub: " + |
390 | compileScript + | 386 | compileScript + |
391 | ":End Class :End Namespace\r\n"; | 387 | ":End Class :End Namespace\r\n"; |
392 | return compileScript; | 388 | return compileScript; |
393 | } | 389 | } |
394 | 390 | ||
@@ -404,8 +400,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
404 | // Output assembly name | 400 | // Output assembly name |
405 | scriptCompileCounter++; | 401 | scriptCompileCounter++; |
406 | string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine( | 402 | string OutFile = Path.Combine(ScriptEnginesPath, Path.Combine( |
407 | m_scriptEngine.World.RegionInfo.RegionID.ToString(), | 403 | m_scriptEngine.World.RegionInfo.RegionID.ToString(), |
408 | FilePrefix + "_compiled_" + asset + ".dll")); | 404 | FilePrefix + "_compiled_" + asset + ".dll")); |
409 | #if DEBUG | 405 | #if DEBUG |
410 | // m_scriptEngine.Log.Debug("[" + m_scriptEngine.ScriptEngineName + "]: Starting compile of \"" + OutFile + "\"."); | 406 | // m_scriptEngine.Log.Debug("[" + m_scriptEngine.ScriptEngineName + "]: Starting compile of \"" + OutFile + "\"."); |
411 | #endif | 407 | #endif |
@@ -490,8 +486,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
490 | foreach (CompilerError CompErr in results.Errors) | 486 | foreach (CompilerError CompErr in results.Errors) |
491 | { | 487 | { |
492 | errtext += "Line number " + (CompErr.Line - LinesToRemoveOnError) + | 488 | errtext += "Line number " + (CompErr.Line - LinesToRemoveOnError) + |
493 | ", Error Number: " + CompErr.ErrorNumber + | 489 | ", Error Number: " + CompErr.ErrorNumber + |
494 | ", '" + CompErr.ErrorText + "'\r\n"; | 490 | ", '" + CompErr.ErrorText + "'\r\n"; |
495 | } | 491 | } |
496 | if (!File.Exists(OutFile)) | 492 | if (!File.Exists(OutFile)) |
497 | { | 493 | { |
@@ -499,7 +495,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
499 | } | 495 | } |
500 | } | 496 | } |
501 | 497 | ||
502 | |||
503 | // | 498 | // |
504 | // NO ERRORS, BUT NO COMPILED FILE | 499 | // NO ERRORS, BUT NO COMPILED FILE |
505 | // | 500 | // |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs index 734c837..e9ec4be 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/EventManager.cs | |||
@@ -199,7 +199,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
199 | public void on_rez(uint localID, LLUUID itemID, int startParam) | 199 | public void on_rez(uint localID, LLUUID itemID, int startParam) |
200 | { | 200 | { |
201 | myScriptEngine.PostObjectEvent(localID, new XEventParams( | 201 | myScriptEngine.PostObjectEvent(localID, new XEventParams( |
202 | "on_rez",new object[] { | 202 | "on_rez",new object[] { |
203 | new LSL_Types.LSLInteger(startParam)}, | 203 | new LSL_Types.LSLInteger(startParam)}, |
204 | new XDetectParams[0])); | 204 | new XDetectParams[0])); |
205 | } | 205 | } |
@@ -207,7 +207,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
207 | public void control(uint localID, LLUUID itemID, LLUUID agentID, uint held, uint change) | 207 | public void control(uint localID, LLUUID itemID, LLUUID agentID, uint held, uint change) |
208 | { | 208 | { |
209 | myScriptEngine.PostObjectEvent(localID, new XEventParams( | 209 | myScriptEngine.PostObjectEvent(localID, new XEventParams( |
210 | "control",new object[] { | 210 | "control",new object[] { |
211 | new LSL_Types.LSLString(agentID.ToString()), | 211 | new LSL_Types.LSLString(agentID.ToString()), |
212 | new LSL_Types.LSLInteger(held), | 212 | new LSL_Types.LSLInteger(held), |
213 | new LSL_Types.LSLInteger(change)}, | 213 | new LSL_Types.LSLInteger(change)}, |
@@ -218,7 +218,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
218 | string address, string subject, string message, int numLeft) | 218 | string address, string subject, string message, int numLeft) |
219 | { | 219 | { |
220 | myScriptEngine.PostObjectEvent(localID, new XEventParams( | 220 | myScriptEngine.PostObjectEvent(localID, new XEventParams( |
221 | "email",new object[] { | 221 | "email",new object[] { |
222 | new LSL_Types.LSLString(timeSent), | 222 | new LSL_Types.LSLString(timeSent), |
223 | new LSL_Types.LSLString(address), | 223 | new LSL_Types.LSLString(address), |
224 | new LSL_Types.LSLString(subject), | 224 | new LSL_Types.LSLString(subject), |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Executor.cs b/OpenSim/Region/ScriptEngine/XEngine/Executor.cs index 40075ec..29336ac 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/Executor.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/Executor.cs | |||
@@ -79,7 +79,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
79 | } | 79 | } |
80 | 80 | ||
81 | // Save the flags we just computed and return the result | 81 | // Save the flags we just computed and return the result |
82 | if(eventFlags != 0) | 82 | if (eventFlags != 0) |
83 | m_stateEvents.Add(m_Script.State, eventFlags); | 83 | m_stateEvents.Add(m_Script.State, eventFlags); |
84 | 84 | ||
85 | //Console.WriteLine("Returning {0:x}", eventFlags); | 85 | //Console.WriteLine("Returning {0:x}", eventFlags); |
@@ -130,7 +130,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
130 | #endif | 130 | #endif |
131 | // Found | 131 | // Found |
132 | ev.Invoke(m_Script, args); | 132 | ev.Invoke(m_Script, args); |
133 | |||
134 | } | 133 | } |
135 | } | 134 | } |
136 | } | 135 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/LSL_ScriptCommands.cs b/OpenSim/Region/ScriptEngine/XEngine/LSL_ScriptCommands.cs index ca209b6..0f2d2a5 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/LSL_ScriptCommands.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/LSL_ScriptCommands.cs | |||
@@ -111,8 +111,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
111 | { | 111 | { |
112 | m_host.AddScriptLPS(1); | 112 | m_host.AddScriptLPS(1); |
113 | 113 | ||
114 | if(text.Length > 1023) | 114 | if (text.Length > 1023) |
115 | text=text.Substring(0, 1023); | 115 | text = text.Substring(0, 1023); |
116 | 116 | ||
117 | World.SimChat(Helpers.StringToField(text), | 117 | World.SimChat(Helpers.StringToField(text), |
118 | ChatTypeEnum.Say, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); | 118 | ChatTypeEnum.Say, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); |
@@ -129,13 +129,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
129 | 129 | ||
130 | private LLUUID InventorySelf() | 130 | private LLUUID InventorySelf() |
131 | { | 131 | { |
132 | LLUUID invItemID=new LLUUID(); | 132 | LLUUID invItemID = new LLUUID(); |
133 | 133 | ||
134 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) | 134 | foreach (KeyValuePair<LLUUID, TaskInventoryItem> inv in m_host.TaskInventory) |
135 | { | 135 | { |
136 | if (inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) | 136 | if (inv.Value.Type == 10 && inv.Value.ItemID == m_itemID) |
137 | { | 137 | { |
138 | invItemID=inv.Key; | 138 | invItemID = inv.Key; |
139 | break; | 139 | break; |
140 | } | 140 | } |
141 | } | 141 | } |
@@ -300,7 +300,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
300 | return angle; | 300 | return angle; |
301 | } | 301 | } |
302 | 302 | ||
303 | |||
304 | // Old implementation of llRot2Euler, now normalized | 303 | // Old implementation of llRot2Euler, now normalized |
305 | 304 | ||
306 | public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) | 305 | public LSL_Types.Vector3 llRot2Euler(LSL_Types.Quaternion r) |
@@ -322,7 +321,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
322 | 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))); | 321 | 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))); |
323 | } | 322 | } |
324 | 323 | ||
325 | |||
326 | // Xantor's newer llEuler2Rot() *try the second* inverted quaternions (-x,-y,-z,w) as LL seems to like | 324 | // Xantor's newer llEuler2Rot() *try the second* inverted quaternions (-x,-y,-z,w) as LL seems to like |
327 | // New and improved, now actually works as described. Prim rotates as expected as does llRot2Euler. | 325 | // New and improved, now actually works as described. Prim rotates as expected as does llRot2Euler. |
328 | 326 | ||
@@ -363,7 +361,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
363 | return new LSL_Types.Quaternion(x, y, z, s); | 361 | return new LSL_Types.Quaternion(x, y, z, s); |
364 | } | 362 | } |
365 | 363 | ||
366 | |||
367 | public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) | 364 | public LSL_Types.Quaternion llAxes2Rot(LSL_Types.Vector3 fwd, LSL_Types.Vector3 left, LSL_Types.Vector3 up) |
368 | { | 365 | { |
369 | m_host.AddScriptLPS(1); | 366 | m_host.AddScriptLPS(1); |
@@ -388,6 +385,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
388 | m_host.AddScriptLPS(1); | 385 | m_host.AddScriptLPS(1); |
389 | return (new LSL_Types.Vector3(0, 0, 1) * r); | 386 | return (new LSL_Types.Vector3(0, 0, 1) * r); |
390 | } | 387 | } |
388 | |||
391 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) | 389 | public LSL_Types.Quaternion llRotBetween(LSL_Types.Vector3 a, LSL_Types.Vector3 b) |
392 | { | 390 | { |
393 | //A and B should both be normalized | 391 | //A and B should both be normalized |
@@ -401,12 +399,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
401 | 399 | ||
402 | return new LSL_Types.Quaternion(axis.x * s, axis.y * s, axis.z * s, (float)Math.Cos(angle / 2)); | 400 | return new LSL_Types.Quaternion(axis.x * s, axis.y * s, axis.z * s, (float)Math.Cos(angle / 2)); |
403 | } | 401 | } |
402 | |||
404 | public void llWhisper(int channelID, string text) | 403 | public void llWhisper(int channelID, string text) |
405 | { | 404 | { |
406 | m_host.AddScriptLPS(1); | 405 | m_host.AddScriptLPS(1); |
407 | 406 | ||
408 | if(text.Length > 1023) | 407 | if (text.Length > 1023) |
409 | text=text.Substring(0, 1023); | 408 | text = text.Substring(0, 1023); |
410 | 409 | ||
411 | World.SimChat(Helpers.StringToField(text), | 410 | World.SimChat(Helpers.StringToField(text), |
412 | ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); | 411 | ChatTypeEnum.Whisper, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, false); |
@@ -419,8 +418,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
419 | { | 418 | { |
420 | m_host.AddScriptLPS(1); | 419 | m_host.AddScriptLPS(1); |
421 | 420 | ||
422 | if(text.Length > 1023) | 421 | if (text.Length > 1023) |
423 | text=text.Substring(0, 1023); | 422 | text = text.Substring(0, 1023); |
424 | 423 | ||
425 | World.SimChat(Helpers.StringToField(text), | 424 | World.SimChat(Helpers.StringToField(text), |
426 | ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, true); | 425 | ChatTypeEnum.Shout, channelID, m_host.AbsolutePosition, m_host.Name, m_host.UUID, true); |
@@ -437,9 +436,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
437 | return; | 436 | return; |
438 | } | 437 | } |
439 | 438 | ||
440 | 439 | if (text.Length > 1023) | |
441 | if(text.Length > 1023) | 440 | text = text.Substring(0, 1023); |
442 | text=text.Substring(0, 1023); | ||
443 | 441 | ||
444 | m_host.AddScriptLPS(1); | 442 | m_host.AddScriptLPS(1); |
445 | 443 | ||
@@ -486,7 +484,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
486 | LLUUID.TryParse(id, out keyID); | 484 | LLUUID.TryParse(id, out keyID); |
487 | 485 | ||
488 | m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.SetSenseRepeatEvent(m_localID, m_itemID, name, keyID, type, range, arc, rate, m_host); | 486 | m_ScriptEngine.m_ASYNCLSLCommandManager.m_SensorRepeat.SetSenseRepeatEvent(m_localID, m_itemID, name, keyID, type, range, arc, rate, m_host); |
489 | } | 487 | } |
490 | 488 | ||
491 | public void llSensorRemove() | 489 | public void llSensorRemove() |
492 | { | 490 | { |
@@ -520,17 +518,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
520 | if (SensedObject == null) | 518 | if (SensedObject == null) |
521 | return String.Empty; | 519 | return String.Empty; |
522 | return SensedObject.Name; | 520 | return SensedObject.Name; |
523 | |||
524 | } | 521 | } |
525 | 522 | ||
526 | public string llDetectedName(int number) | 523 | public string llDetectedName(int number) |
527 | { | 524 | { |
528 | m_host.AddScriptLPS(1); | 525 | m_host.AddScriptLPS(1); |
529 | LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); | 526 | LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); |
530 | if(sensedUUID != null) | 527 | if (sensedUUID != null) |
531 | return resolveName(sensedUUID); | 528 | return resolveName(sensedUUID); |
532 | return String.Empty; | 529 | return String.Empty; |
533 | } | 530 | } |
534 | 531 | ||
535 | public LLUUID uuidDetectedKey(int number) | 532 | public LLUUID uuidDetectedKey(int number) |
536 | { | 533 | { |
@@ -540,7 +537,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
540 | public EntityBase entityDetectedKey(int number) | 537 | public EntityBase entityDetectedKey(int number) |
541 | { | 538 | { |
542 | LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); | 539 | LLUUID sensedUUID = m_ScriptEngine.GetDetectID(m_itemID, number); |
543 | if(sensedUUID != null) | 540 | if (sensedUUID != null) |
544 | { | 541 | { |
545 | EntityBase SensedObject = null; | 542 | EntityBase SensedObject = null; |
546 | lock (World.Entities) | 543 | lock (World.Entities) |
@@ -567,7 +564,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
567 | // returns UUID of owner of object detected | 564 | // returns UUID of owner of object detected |
568 | m_host.AddScriptLPS(1); | 565 | m_host.AddScriptLPS(1); |
569 | EntityBase SensedObject = entityDetectedKey(number); | 566 | EntityBase SensedObject = entityDetectedKey(number); |
570 | if (SensedObject ==null) | 567 | if (SensedObject == null) |
571 | return String.Empty; | 568 | return String.Empty; |
572 | LLUUID SensedUUID = uuidDetectedKey(number); | 569 | LLUUID SensedUUID = uuidDetectedKey(number); |
573 | if (World.GetScenePresence(SensedUUID) == null) | 570 | if (World.GetScenePresence(SensedUUID) == null) |
@@ -575,7 +572,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
575 | // sensed object is not an avatar | 572 | // sensed object is not an avatar |
576 | // so get the owner of the sensed object | 573 | // so get the owner of the sensed object |
577 | SceneObjectPart SOP = World.GetSceneObjectPart(SensedUUID); | 574 | SceneObjectPart SOP = World.GetSceneObjectPart(SensedUUID); |
578 | if (SOP != null) { return SOP.ObjectOwner.ToString(); } | 575 | if (SOP != null) |
576 | { | ||
577 | return SOP.ObjectOwner.ToString(); | ||
578 | } | ||
579 | } | 579 | } |
580 | else | 580 | else |
581 | { | 581 | { |
@@ -583,9 +583,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
583 | return SensedUUID.ToString(); | 583 | return SensedUUID.ToString(); |
584 | } | 584 | } |
585 | 585 | ||
586 | |||
587 | return String.Empty; | 586 | return String.Empty; |
588 | |||
589 | } | 587 | } |
590 | 588 | ||
591 | public LSL_Types.LSLInteger llDetectedType(int number) | 589 | public LSL_Types.LSLInteger llDetectedType(int number) |
@@ -599,14 +597,18 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
599 | LLUUID SensedUUID = uuidDetectedKey(number); | 597 | LLUUID SensedUUID = uuidDetectedKey(number); |
600 | LSL_Types.Vector3 ZeroVector = new LSL_Types.Vector3(0, 0, 0); | 598 | LSL_Types.Vector3 ZeroVector = new LSL_Types.Vector3(0, 0, 0); |
601 | 599 | ||
602 | if (World.GetScenePresence(SensedUUID) != null) mask |= 0x01; // actor | 600 | if (World.GetScenePresence(SensedUUID) != null) |
601 | mask |= 0x01; // actor | ||
602 | |||
603 | if (SensedObject.Velocity.Equals(ZeroVector)) | 603 | if (SensedObject.Velocity.Equals(ZeroVector)) |
604 | mask |= 0x04; // passive non-moving | 604 | mask |= 0x04; // passive non-moving |
605 | else | 605 | else |
606 | mask |= 0x02; // active moving | 606 | mask |= 0x02; // active moving |
607 | if (SensedObject is IScript) mask |= 0x08; // Scripted. It COULD have one hidden ... | ||
608 | return mask; | ||
609 | 607 | ||
608 | if (SensedObject is IScript) | ||
609 | mask |= 0x08; // Scripted. It COULD have one hidden ... | ||
610 | |||
611 | return mask; | ||
610 | } | 612 | } |
611 | 613 | ||
612 | public LSL_Types.Vector3 llDetectedPos(int number) | 614 | public LSL_Types.Vector3 llDetectedPos(int number) |
@@ -627,7 +629,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
627 | return new LSL_Types.Vector3(0, 0, 0); | 629 | return new LSL_Types.Vector3(0, 0, 0); |
628 | 630 | ||
629 | return new LSL_Types.Vector3(SensedObject.Velocity.X, SensedObject.Velocity.Y, SensedObject.Velocity.Z); | 631 | return new LSL_Types.Vector3(SensedObject.Velocity.X, SensedObject.Velocity.Y, SensedObject.Velocity.Z); |
630 | // return new LSL_Types.Vector3(); | 632 | // return new LSL_Types.Vector3(); |
631 | } | 633 | } |
632 | 634 | ||
633 | public LSL_Types.Vector3 llDetectedGrab(int number) | 635 | public LSL_Types.Vector3 llDetectedGrab(int number) |
@@ -702,8 +704,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
702 | m_host.ScriptSetPhysicsStatus(true); | 704 | m_host.ScriptSetPhysicsStatus(true); |
703 | else | 705 | else |
704 | m_host.ScriptSetPhysicsStatus(false); | 706 | m_host.ScriptSetPhysicsStatus(false); |
705 | |||
706 | } | 707 | } |
708 | |||
707 | if ((status & BuiltIn_Commands_BaseClass.STATUS_PHANTOM) == BuiltIn_Commands_BaseClass.STATUS_PHANTOM) | 709 | if ((status & BuiltIn_Commands_BaseClass.STATUS_PHANTOM) == BuiltIn_Commands_BaseClass.STATUS_PHANTOM) |
708 | { | 710 | { |
709 | if (value == 1) | 711 | if (value == 1) |
@@ -711,27 +713,32 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
711 | else | 713 | else |
712 | m_host.ScriptSetPhantomStatus(false); | 714 | m_host.ScriptSetPhantomStatus(false); |
713 | } | 715 | } |
716 | |||
714 | if ((status & BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) == BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) | 717 | if ((status & BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) == BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS) |
715 | { | 718 | { |
716 | m_host.AddFlag(LLObject.ObjectFlags.CastShadows); | 719 | m_host.AddFlag(LLObject.ObjectFlags.CastShadows); |
717 | } | 720 | } |
721 | |||
718 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) | 722 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_X) |
719 | { | 723 | { |
720 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_X; | 724 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_X; |
721 | |||
722 | } | 725 | } |
726 | |||
723 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) | 727 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y) |
724 | { | 728 | { |
725 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y; | 729 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y; |
726 | } | 730 | } |
731 | |||
727 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) | 732 | if ((status & BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) == BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z) |
728 | { | 733 | { |
729 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z; | 734 | statusrotationaxis |= BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z; |
730 | } | 735 | } |
736 | |||
731 | if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) | 737 | if ((status & BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) == BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB) |
732 | { | 738 | { |
733 | NotImplemented("llSetStatus - STATUS_BLOCK_GRAB"); | 739 | NotImplemented("llSetStatus - STATUS_BLOCK_GRAB"); |
734 | } | 740 | } |
741 | |||
735 | if ((status & BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) | 742 | if ((status & BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE) |
736 | { | 743 | { |
737 | if (value == 1) | 744 | if (value == 1) |
@@ -739,18 +746,20 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
739 | else | 746 | else |
740 | m_host.SetDieAtEdge(false); | 747 | m_host.SetDieAtEdge(false); |
741 | } | 748 | } |
749 | |||
742 | if ((status & BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) | 750 | if ((status & BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) == BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE) |
743 | { | 751 | { |
744 | NotImplemented("llSetStatus - STATUS_RETURN_AT_EDGE"); | 752 | NotImplemented("llSetStatus - STATUS_RETURN_AT_EDGE"); |
745 | } | 753 | } |
754 | |||
746 | if ((status & BuiltIn_Commands_BaseClass.STATUS_SANDBOX) == BuiltIn_Commands_BaseClass.STATUS_SANDBOX) | 755 | if ((status & BuiltIn_Commands_BaseClass.STATUS_SANDBOX) == BuiltIn_Commands_BaseClass.STATUS_SANDBOX) |
747 | { | 756 | { |
748 | NotImplemented("llSetStatus - STATUS_SANDBOX"); | 757 | NotImplemented("llSetStatus - STATUS_SANDBOX"); |
749 | } | 758 | } |
759 | |||
750 | if (statusrotationaxis != 0) | 760 | if (statusrotationaxis != 0) |
751 | { | 761 | { |
752 | m_host.SetAxisRotation(statusrotationaxis, value); | 762 | m_host.SetAxisRotation(statusrotationaxis, value); |
753 | |||
754 | } | 763 | } |
755 | } | 764 | } |
756 | 765 | ||
@@ -766,23 +775,26 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
766 | return 1; | 775 | return 1; |
767 | } | 776 | } |
768 | return 0; | 777 | return 0; |
778 | |||
769 | case BuiltIn_Commands_BaseClass.STATUS_PHANTOM: | 779 | case BuiltIn_Commands_BaseClass.STATUS_PHANTOM: |
770 | if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == (uint)LLObject.ObjectFlags.Phantom) | 780 | if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.Phantom) == (uint)LLObject.ObjectFlags.Phantom) |
771 | { | 781 | { |
772 | return 1; | 782 | return 1; |
773 | } | 783 | } |
774 | return 0; | 784 | return 0; |
785 | |||
775 | case BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS: | 786 | case BuiltIn_Commands_BaseClass.STATUS_CAST_SHADOWS: |
776 | if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.CastShadows) == (uint)LLObject.ObjectFlags.CastShadows) | 787 | if ((m_host.GetEffectiveObjectFlags() & (uint)LLObject.ObjectFlags.CastShadows) == (uint)LLObject.ObjectFlags.CastShadows) |
777 | { | 788 | { |
778 | return 1; | 789 | return 1; |
779 | } | 790 | } |
780 | return 0; | 791 | return 0; |
792 | |||
781 | case BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB: | 793 | case BuiltIn_Commands_BaseClass.STATUS_BLOCK_GRAB: |
782 | NotImplemented("llGetStatus - STATUS_BLOCK_GRAB"); | 794 | NotImplemented("llGetStatus - STATUS_BLOCK_GRAB"); |
783 | return 0; | 795 | return 0; |
784 | case BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE: | ||
785 | 796 | ||
797 | case BuiltIn_Commands_BaseClass.STATUS_DIE_AT_EDGE: | ||
786 | if (m_host.GetDieAtEdge()) | 798 | if (m_host.GetDieAtEdge()) |
787 | return 1; | 799 | return 1; |
788 | else | 800 | else |
@@ -791,15 +803,19 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
791 | case BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE: | 803 | case BuiltIn_Commands_BaseClass.STATUS_RETURN_AT_EDGE: |
792 | NotImplemented("llGetStatus - STATUS_RETURN_AT_EDGE"); | 804 | NotImplemented("llGetStatus - STATUS_RETURN_AT_EDGE"); |
793 | return 0; | 805 | return 0; |
806 | |||
794 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_X: | 807 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_X: |
795 | NotImplemented("llGetStatus - STATUS_ROTATE_X"); | 808 | NotImplemented("llGetStatus - STATUS_ROTATE_X"); |
796 | return 0; | 809 | return 0; |
810 | |||
797 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y: | 811 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Y: |
798 | NotImplemented("llGetStatus - STATUS_ROTATE_Y"); | 812 | NotImplemented("llGetStatus - STATUS_ROTATE_Y"); |
799 | return 0; | 813 | return 0; |
814 | |||
800 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z: | 815 | case BuiltIn_Commands_BaseClass.STATUS_ROTATE_Z: |
801 | NotImplemented("llGetStatus - STATUS_ROTATE_Z"); | 816 | NotImplemented("llGetStatus - STATUS_ROTATE_Z"); |
802 | return 0; | 817 | return 0; |
818 | |||
803 | case BuiltIn_Commands_BaseClass.STATUS_SANDBOX: | 819 | case BuiltIn_Commands_BaseClass.STATUS_SANDBOX: |
804 | NotImplemented("llGetStatus - STATUS_SANDBOX"); | 820 | NotImplemented("llGetStatus - STATUS_SANDBOX"); |
805 | return 0; | 821 | return 0; |
@@ -2499,17 +2515,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
2499 | 2515 | ||
2500 | string reply = String.Empty; | 2516 | string reply = String.Empty; |
2501 | 2517 | ||
2502 | switch(data) | 2518 | switch (data) |
2503 | { | 2519 | { |
2504 | case 1: // DATA_ONLINE (0|1) | 2520 | case 1: // DATA_ONLINE (0|1) |
2505 | // TODO: implement fetching of this information | 2521 | // TODO: implement fetching of this information |
2506 | // if(userProfile.CurrentAgent.AgentOnline) | 2522 | // if (userProfile.CurrentAgent.AgentOnline) |
2507 | // reply = "1"; | 2523 | // reply = "1"; |
2508 | // else | 2524 | // else |
2509 | reply = "0"; | 2525 | reply = "0"; |
2510 | break; | 2526 | break; |
2511 | case 2: // DATA_NAME (First Last) | 2527 | case 2: // DATA_NAME (First Last) |
2512 | reply = userProfile.FirstName+" "+userProfile.SurName; | 2528 | reply = userProfile.FirstName + " " + userProfile.SurName; |
2513 | break; | 2529 | break; |
2514 | case 3: // DATA_BORN (YYYY-MM-DD) | 2530 | case 3: // DATA_BORN (YYYY-MM-DD) |
2515 | DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0); | 2531 | DateTime born = new DateTime(1970, 1, 1, 0, 0, 0, 0); |
@@ -2529,8 +2545,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
2529 | LLUUID rq = LLUUID.Random(); | 2545 | LLUUID rq = LLUUID.Random(); |
2530 | 2546 | ||
2531 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. | 2547 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. |
2532 | m_Dataserver.RegisterRequest(m_localID, | 2548 | m_Dataserver.RegisterRequest(m_localID, |
2533 | m_itemID, rq.ToString()); | 2549 | m_itemID, rq.ToString()); |
2534 | 2550 | ||
2535 | m_ScriptEngine.m_ASYNCLSLCommandManager. | 2551 | m_ScriptEngine.m_ASYNCLSLCommandManager. |
2536 | m_Dataserver.DataserverReply(rq.ToString(), reply); | 2552 | m_Dataserver.DataserverReply(rq.ToString(), reply); |
@@ -2547,8 +2563,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
2547 | if (item.Type == 3 && item.Name == name) | 2563 | if (item.Type == 3 && item.Name == name) |
2548 | { | 2564 | { |
2549 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. | 2565 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. |
2550 | m_Dataserver.RegisterRequest(m_localID, | 2566 | m_Dataserver.RegisterRequest(m_localID, |
2551 | m_itemID, item.AssetID.ToString()); | 2567 | m_itemID, item.AssetID.ToString()); |
2552 | 2568 | ||
2553 | LLVector3 region = new LLVector3( | 2569 | LLVector3 region = new LLVector3( |
2554 | World.RegionInfo.RegionLocX * Constants.RegionSize, | 2570 | World.RegionInfo.RegionLocX * Constants.RegionSize, |
@@ -2565,8 +2581,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
2565 | string reply = region.ToString(); | 2581 | string reply = region.ToString(); |
2566 | 2582 | ||
2567 | m_ScriptEngine.m_ASYNCLSLCommandManager. | 2583 | m_ScriptEngine.m_ASYNCLSLCommandManager. |
2568 | m_Dataserver.DataserverReply(i.ToString(), | 2584 | m_Dataserver.DataserverReply(i.ToString(), |
2569 | reply); | 2585 | reply); |
2570 | }, false); | 2586 | }, false); |
2571 | 2587 | ||
2572 | return tid.ToString(); | 2588 | return tid.ToString(); |
@@ -3314,25 +3330,28 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
3314 | { | 3330 | { |
3315 | switch (src[i]) | 3331 | switch (src[i]) |
3316 | { | 3332 | { |
3317 | case '<' : | 3333 | case '<': |
3318 | parens++; | 3334 | parens++; |
3319 | length++; | 3335 | length++; |
3320 | break; | 3336 | break; |
3321 | case '>' : | 3337 | case '>': |
3322 | if (parens > 0) | 3338 | if (parens > 0) |
3323 | parens--; | 3339 | parens--; |
3324 | length++; | 3340 | length++; |
3325 | break; | 3341 | break; |
3326 | case ',' : | 3342 | case ',': |
3327 | if (parens == 0) | 3343 | if (parens == 0) |
3328 | { | 3344 | { |
3329 | result.Add(src.Substring(start,length).Trim()); | 3345 | result.Add(src.Substring(start,length).Trim()); |
3330 | start += length+1; | 3346 | start += length+1; |
3331 | length = 0; | 3347 | length = 0; |
3332 | } else | 3348 | } |
3349 | else | ||
3350 | { | ||
3333 | length++; | 3351 | length++; |
3352 | } | ||
3334 | break; | 3353 | break; |
3335 | default : | 3354 | default: |
3336 | length++; | 3355 | length++; |
3337 | break; | 3356 | break; |
3338 | } | 3357 | } |
@@ -3341,7 +3360,6 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
3341 | result.Add(src.Substring(start,length).Trim()); | 3360 | result.Add(src.Substring(start,length).Trim()); |
3342 | 3361 | ||
3343 | return result; | 3362 | return result; |
3344 | |||
3345 | } | 3363 | } |
3346 | 3364 | ||
3347 | /// <summary> | 3365 | /// <summary> |
@@ -5290,11 +5308,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
5290 | if (active[j]) | 5308 | if (active[j]) |
5291 | { | 5309 | { |
5292 | // scan all of the markers | 5310 | // scan all of the markers |
5293 | if ((offset[j] = src.IndexOf((string)spcarray[j-seplen],beginning)) == -1) | 5311 | if ((offset[j] = src.IndexOf((string)spcarray[j-seplen], beginning)) == -1) |
5294 | { | 5312 | { |
5295 | // not present at all | 5313 | // not present at all |
5296 | active[j] = false; | 5314 | active[j] = false; |
5297 | } else | 5315 | } |
5316 | else | ||
5298 | { | 5317 | { |
5299 | // present and correct | 5318 | // present and correct |
5300 | if (offset[j] < offset[best]) | 5319 | if (offset[j] < offset[best]) |
@@ -5313,7 +5332,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
5313 | { | 5332 | { |
5314 | // no markers were found on this pass | 5333 | // no markers were found on this pass |
5315 | // so we're pretty much done | 5334 | // so we're pretty much done |
5316 | tokens.Add(src.Substring(beginning, srclen-beginning)); | 5335 | tokens.Add(src.Substring(beginning, srclen - beginning)); |
5317 | break; | 5336 | break; |
5318 | } | 5337 | } |
5319 | 5338 | ||
@@ -5322,15 +5341,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
5322 | 5341 | ||
5323 | tokens.Add(src.Substring(beginning,offset[best]-beginning)); | 5342 | tokens.Add(src.Substring(beginning,offset[best]-beginning)); |
5324 | 5343 | ||
5325 | if (best<seplen) | 5344 | if (best < seplen) |
5326 | { | 5345 | { |
5327 | beginning = offset[best]+((string)separray[best]).Length; | 5346 | beginning = offset[best] + ((string)separray[best]).Length; |
5328 | } else | 5347 | } |
5348 | else | ||
5329 | { | 5349 | { |
5330 | beginning = offset[best]+((string)spcarray[best-seplen]).Length; | 5350 | beginning = offset[best] + ((string)spcarray[best - seplen]).Length; |
5331 | tokens.Add(spcarray[best-seplen]); | 5351 | tokens.Add(spcarray[best - seplen]); |
5332 | } | 5352 | } |
5333 | |||
5334 | } | 5353 | } |
5335 | 5354 | ||
5336 | // This an awkward an not very intuitive boundary case. If the | 5355 | // This an awkward an not very intuitive boundary case. If the |
@@ -5475,60 +5494,60 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
5475 | 5494 | ||
5476 | public string llRequestSimulatorData(string simulator, int data) | 5495 | public string llRequestSimulatorData(string simulator, int data) |
5477 | { | 5496 | { |
5478 | try | 5497 | try |
5479 | { | 5498 | { |
5480 | m_host.AddScriptLPS(1); | 5499 | m_host.AddScriptLPS(1); |
5481 | 5500 | ||
5482 | string reply = String.Empty; | 5501 | string reply = String.Empty; |
5483 | 5502 | ||
5484 | RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator); | 5503 | RegionInfo info = m_ScriptEngine.World.RequestClosestRegion(simulator); |
5485 | 5504 | ||
5486 | switch(data) | 5505 | switch (data) |
5487 | { | 5506 | { |
5488 | case 5: // DATA_SIM_POS | 5507 | case 5: // DATA_SIM_POS |
5489 | if(info == null) | 5508 | if (info == null) |
5490 | return LLUUID.Zero.ToString(); | 5509 | return LLUUID.Zero.ToString(); |
5491 | reply = new LSL_Types.Vector3( | 5510 | reply = new LSL_Types.Vector3( |
5492 | info.RegionLocX * Constants.RegionSize, | 5511 | info.RegionLocX * Constants.RegionSize, |
5493 | info.RegionLocY * Constants.RegionSize, | 5512 | info.RegionLocY * Constants.RegionSize, |
5494 | 0).ToString(); | 5513 | 0).ToString(); |
5495 | break; | 5514 | break; |
5496 | case 6: // DATA_SIM_STATUS | 5515 | case 6: // DATA_SIM_STATUS |
5497 | if(info != null) | 5516 | if (info != null) |
5498 | reply = "up"; // Duh! | 5517 | reply = "up"; // Duh! |
5499 | else | 5518 | else |
5500 | reply = "unknown"; | 5519 | reply = "unknown"; |
5501 | break; | 5520 | break; |
5502 | case 7: // DATA_SIM_RATING | 5521 | case 7: // DATA_SIM_RATING |
5503 | if(info == null) | 5522 | if (info == null) |
5504 | return LLUUID.Zero.ToString(); | 5523 | return LLUUID.Zero.ToString(); |
5505 | int access = (int)info.EstateSettings.simAccess; | 5524 | int access = (int)info.EstateSettings.simAccess; |
5506 | if(access == 21) | 5525 | if (access == 21) |
5507 | reply = "MATURE"; | 5526 | reply = "MATURE"; |
5508 | else if(access == 13) | 5527 | else if (access == 13) |
5509 | reply = "MATURE"; | 5528 | reply = "MATURE"; |
5510 | else | 5529 | else |
5511 | reply = "UNKNOWN"; | 5530 | reply = "UNKNOWN"; |
5512 | break; | 5531 | break; |
5513 | default: | 5532 | default: |
5514 | return LLUUID.Zero.ToString(); // Raise no event | 5533 | return LLUUID.Zero.ToString(); // Raise no event |
5515 | } | 5534 | } |
5516 | LLUUID rq = LLUUID.Random(); | 5535 | LLUUID rq = LLUUID.Random(); |
5517 | 5536 | ||
5518 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. | 5537 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. |
5519 | m_Dataserver.RegisterRequest(m_localID, | 5538 | m_Dataserver.RegisterRequest(m_localID, |
5520 | m_itemID, rq.ToString()); | 5539 | m_itemID, rq.ToString()); |
5521 | 5540 | ||
5522 | m_ScriptEngine.m_ASYNCLSLCommandManager. | 5541 | m_ScriptEngine.m_ASYNCLSLCommandManager. |
5523 | m_Dataserver.DataserverReply(rq.ToString(), reply); | 5542 | m_Dataserver.DataserverReply(rq.ToString(), reply); |
5524 | 5543 | ||
5525 | return tid.ToString(); | 5544 | return tid.ToString(); |
5526 | } | 5545 | } |
5527 | catch(Exception e) | 5546 | catch(Exception e) |
5528 | { | 5547 | { |
5529 | Console.WriteLine(e.ToString()); | 5548 | Console.WriteLine(e.ToString()); |
5530 | return LLUUID.Zero.ToString(); | 5549 | return LLUUID.Zero.ToString(); |
5531 | } | 5550 | } |
5532 | } | 5551 | } |
5533 | 5552 | ||
5534 | public void llForceMouselook(int mouselook) | 5553 | public void llForceMouselook(int mouselook) |
@@ -5543,7 +5562,7 @@ return LLUUID.Zero.ToString(); | |||
5543 | LLUUID key = new LLUUID(); | 5562 | LLUUID key = new LLUUID(); |
5544 | if (LLUUID.TryParse(id,out key)) | 5563 | if (LLUUID.TryParse(id,out key)) |
5545 | { | 5564 | { |
5546 | return (double)World.GetSceneObjectPart(World.Entities[key].LocalId).GetMass(); | 5565 | return (double) World.GetSceneObjectPart(World.Entities[key].LocalId).GetMass(); |
5547 | } | 5566 | } |
5548 | return 0; | 5567 | return 0; |
5549 | } | 5568 | } |
@@ -5562,7 +5581,6 @@ return LLUUID.Zero.ToString(); | |||
5562 | 5581 | ||
5563 | public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) | 5582 | public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) |
5564 | { | 5583 | { |
5565 | |||
5566 | LSL_Types.list pref = null; | 5584 | LSL_Types.list pref = null; |
5567 | 5585 | ||
5568 | m_host.AddScriptLPS(1); | 5586 | m_host.AddScriptLPS(1); |
@@ -5592,9 +5610,9 @@ return LLUUID.Zero.ToString(); | |||
5592 | pref = dest.GetSublist(0,start-1); | 5610 | pref = dest.GetSublist(0,start-1); |
5593 | // Only add a suffix if there is something | 5611 | // Only add a suffix if there is something |
5594 | // beyond the end index (it's inclusive too). | 5612 | // beyond the end index (it's inclusive too). |
5595 | if (end+1 < dest.Length) | 5613 | if (end + 1 < dest.Length) |
5596 | { | 5614 | { |
5597 | return pref + src + dest.GetSublist(end+1,-1); | 5615 | return pref + src + dest.GetSublist(end + 1, -1); |
5598 | } | 5616 | } |
5599 | else | 5617 | else |
5600 | { | 5618 | { |
@@ -5609,9 +5627,9 @@ return LLUUID.Zero.ToString(); | |||
5609 | // is removed. | 5627 | // is removed. |
5610 | else | 5628 | else |
5611 | { | 5629 | { |
5612 | if (end+1 < dest.Length) | 5630 | if (end + 1 < dest.Length) |
5613 | { | 5631 | { |
5614 | return src + dest.GetSublist(end+1,-1); | 5632 | return src + dest.GetSublist(end + 1, -1); |
5615 | } | 5633 | } |
5616 | else | 5634 | else |
5617 | { | 5635 | { |
@@ -5627,7 +5645,7 @@ return LLUUID.Zero.ToString(); | |||
5627 | // might have been negative. | 5645 | // might have been negative. |
5628 | else | 5646 | else |
5629 | { | 5647 | { |
5630 | return dest.GetSublist(end+1,start-1)+src; | 5648 | return dest.GetSublist(end + 1, start - 1) + src; |
5631 | } | 5649 | } |
5632 | } | 5650 | } |
5633 | 5651 | ||
@@ -6250,7 +6268,7 @@ return LLUUID.Zero.ToString(); | |||
6250 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. | 6268 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. |
6251 | m_Dataserver.RegisterRequest(m_localID, | 6269 | m_Dataserver.RegisterRequest(m_localID, |
6252 | m_itemID, item.AssetID.ToString()); | 6270 | m_itemID, item.AssetID.ToString()); |
6253 | if(NotecardCache.IsCached(item.AssetID)) | 6271 | if (NotecardCache.IsCached(item.AssetID)) |
6254 | { | 6272 | { |
6255 | m_ScriptEngine.m_ASYNCLSLCommandManager. | 6273 | m_ScriptEngine.m_ASYNCLSLCommandManager. |
6256 | m_Dataserver.DataserverReply(item.AssetID.ToString(), | 6274 | m_Dataserver.DataserverReply(item.AssetID.ToString(), |
@@ -6286,7 +6304,7 @@ return LLUUID.Zero.ToString(); | |||
6286 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. | 6304 | LLUUID tid = m_ScriptEngine.m_ASYNCLSLCommandManager. |
6287 | m_Dataserver.RegisterRequest(m_localID, | 6305 | m_Dataserver.RegisterRequest(m_localID, |
6288 | m_itemID, item.AssetID.ToString()); | 6306 | m_itemID, item.AssetID.ToString()); |
6289 | if(NotecardCache.IsCached(item.AssetID)) | 6307 | if (NotecardCache.IsCached(item.AssetID)) |
6290 | { | 6308 | { |
6291 | m_ScriptEngine.m_ASYNCLSLCommandManager. | 6309 | m_ScriptEngine.m_ASYNCLSLCommandManager. |
6292 | m_Dataserver.DataserverReply(item.AssetID.ToString(), | 6310 | m_Dataserver.DataserverReply(item.AssetID.ToString(), |
@@ -6329,13 +6347,13 @@ return LLUUID.Zero.ToString(); | |||
6329 | { | 6347 | { |
6330 | CacheCheck(); | 6348 | CacheCheck(); |
6331 | 6349 | ||
6332 | lock(m_Notecards) | 6350 | lock (m_Notecards) |
6333 | { | 6351 | { |
6334 | if(m_Notecards.ContainsKey(assetID)) | 6352 | if (m_Notecards.ContainsKey(assetID)) |
6335 | return; | 6353 | return; |
6336 | 6354 | ||
6337 | Notecard nc = new Notecard(); | 6355 | Notecard nc = new Notecard(); |
6338 | nc.lastRef=DateTime.Now; | 6356 | nc.lastRef = DateTime.Now; |
6339 | nc.text = ParseText(text.Replace("\r", "").Split('\n')); | 6357 | nc.text = ParseText(text.Replace("\r", "").Split('\n')); |
6340 | m_Notecards[assetID] = nc; | 6358 | m_Notecards[assetID] = nc; |
6341 | } | 6359 | } |
@@ -6343,56 +6361,57 @@ return LLUUID.Zero.ToString(); | |||
6343 | 6361 | ||
6344 | private static string[] ParseText(string[] input) | 6362 | private static string[] ParseText(string[] input) |
6345 | { | 6363 | { |
6346 | int idx=0; | 6364 | int idx = 0; |
6347 | int level=0; | 6365 | int level = 0; |
6348 | List<string> output = new List<string>(); | 6366 | List<string> output = new List<string>(); |
6349 | string[] words; | 6367 | string[] words; |
6350 | 6368 | ||
6351 | while(idx < input.Length) | 6369 | while (idx < input.Length) |
6352 | { | 6370 | { |
6353 | if(input[idx] == "{") | 6371 | if (input[idx] == "{") |
6354 | { | 6372 | { |
6355 | level++; | 6373 | level++; |
6356 | idx++; | 6374 | idx++; |
6357 | continue; | 6375 | continue; |
6358 | } | 6376 | } |
6359 | if(input[idx]== "}") | 6377 | |
6378 | if (input[idx]== "}") | ||
6360 | { | 6379 | { |
6361 | level--; | 6380 | level--; |
6362 | idx++; | 6381 | idx++; |
6363 | continue; | 6382 | continue; |
6364 | } | 6383 | } |
6365 | 6384 | ||
6366 | switch(level) | 6385 | switch (level) |
6367 | { | 6386 | { |
6368 | case 0: | 6387 | case 0: |
6369 | words = input[idx].Split(' '); // Linden text ver | 6388 | words = input[idx].Split(' '); // Linden text ver |
6370 | int version = int.Parse(words[3]); | 6389 | int version = int.Parse(words[3]); |
6371 | if(version != 2) | 6390 | if (version != 2) |
6372 | return new String[0]; | 6391 | return new String[0]; |
6373 | break; | 6392 | break; |
6374 | case 1: | 6393 | case 1: |
6375 | words = input[idx].Split(' '); | 6394 | words = input[idx].Split(' '); |
6376 | if(words[0] == "LLEmbeddedItems") | 6395 | if (words[0] == "LLEmbeddedItems") |
6377 | break; | 6396 | break; |
6378 | if(words[0] == "Text") | 6397 | if (words[0] == "Text") |
6379 | { | 6398 | { |
6380 | int len = int.Parse(words[2]); | 6399 | int len = int.Parse(words[2]); |
6381 | idx++; | 6400 | idx++; |
6382 | 6401 | ||
6383 | int count=-1; | 6402 | int count = -1; |
6384 | 6403 | ||
6385 | while(count < len) | 6404 | while (count < len) |
6386 | { | 6405 | { |
6387 | int l = input[idx].Length; | 6406 | int l = input[idx].Length; |
6388 | string ln = input[idx]; | 6407 | string ln = input[idx]; |
6389 | 6408 | ||
6390 | int need = len-count-1; | 6409 | int need = len-count-1; |
6391 | if(ln.Length > need) | 6410 | if (ln.Length > need) |
6392 | ln=ln.Substring(0, need); | 6411 | ln = ln.Substring(0, need); |
6393 | 6412 | ||
6394 | output.Add(ln); | 6413 | output.Add(ln); |
6395 | count+=ln.Length+1; | 6414 | count += ln.Length + 1; |
6396 | idx++; | 6415 | idx++; |
6397 | } | 6416 | } |
6398 | 6417 | ||
@@ -6401,10 +6420,10 @@ return LLUUID.Zero.ToString(); | |||
6401 | break; | 6420 | break; |
6402 | case 2: | 6421 | case 2: |
6403 | words = input[idx].Split(' '); // count | 6422 | words = input[idx].Split(' '); // count |
6404 | if(words[0] == "count") | 6423 | if (words[0] == "count") |
6405 | { | 6424 | { |
6406 | int c = int.Parse(words[1]); | 6425 | int c = int.Parse(words[1]); |
6407 | if(c > 0) | 6426 | if (c > 0) |
6408 | return new String[0]; | 6427 | return new String[0]; |
6409 | break; | 6428 | break; |
6410 | } | 6429 | } |
@@ -6417,7 +6436,7 @@ return LLUUID.Zero.ToString(); | |||
6417 | 6436 | ||
6418 | public static bool IsCached(LLUUID assetID) | 6437 | public static bool IsCached(LLUUID assetID) |
6419 | { | 6438 | { |
6420 | lock(m_Notecards) | 6439 | lock (m_Notecards) |
6421 | { | 6440 | { |
6422 | return m_Notecards.ContainsKey(assetID); | 6441 | return m_Notecards.ContainsKey(assetID); |
6423 | } | 6442 | } |
@@ -6425,10 +6444,10 @@ return LLUUID.Zero.ToString(); | |||
6425 | 6444 | ||
6426 | public static int GetLines(LLUUID assetID) | 6445 | public static int GetLines(LLUUID assetID) |
6427 | { | 6446 | { |
6428 | if(!IsCached(assetID)) | 6447 | if (!IsCached(assetID)) |
6429 | return -1; | 6448 | return -1; |
6430 | 6449 | ||
6431 | lock(m_Notecards) | 6450 | lock (m_Notecards) |
6432 | { | 6451 | { |
6433 | m_Notecards[assetID].lastRef = DateTime.Now; | 6452 | m_Notecards[assetID].lastRef = DateTime.Now; |
6434 | return m_Notecards[assetID].text.Length; | 6453 | return m_Notecards[assetID].text.Length; |
@@ -6437,23 +6456,23 @@ return LLUUID.Zero.ToString(); | |||
6437 | 6456 | ||
6438 | public static string GetLine(LLUUID assetID, int line) | 6457 | public static string GetLine(LLUUID assetID, int line) |
6439 | { | 6458 | { |
6440 | if(line < 0) | 6459 | if (line < 0) |
6441 | return ""; | 6460 | return ""; |
6442 | 6461 | ||
6443 | string data; | 6462 | string data; |
6444 | 6463 | ||
6445 | if(!IsCached(assetID)) | 6464 | if (!IsCached(assetID)) |
6446 | return ""; | 6465 | return ""; |
6447 | 6466 | ||
6448 | lock(m_Notecards) | 6467 | lock (m_Notecards) |
6449 | { | 6468 | { |
6450 | m_Notecards[assetID].lastRef = DateTime.Now; | 6469 | m_Notecards[assetID].lastRef = DateTime.Now; |
6451 | 6470 | ||
6452 | if(line >= m_Notecards[assetID].text.Length) | 6471 | if (line >= m_Notecards[assetID].text.Length) |
6453 | return "\n\n\n"; | 6472 | return "\n\n\n"; |
6454 | 6473 | ||
6455 | data=m_Notecards[assetID].text[line]; | 6474 | data = m_Notecards[assetID].text[line]; |
6456 | if(data.Length > 255) | 6475 | if (data.Length > 255) |
6457 | data = data.Substring(0, 255); | 6476 | data = data.Substring(0, 255); |
6458 | 6477 | ||
6459 | return data; | 6478 | return data; |
@@ -6465,10 +6484,9 @@ return LLUUID.Zero.ToString(); | |||
6465 | foreach (LLUUID key in new List<LLUUID>(m_Notecards.Keys)) | 6484 | foreach (LLUUID key in new List<LLUUID>(m_Notecards.Keys)) |
6466 | { | 6485 | { |
6467 | Notecard nc = m_Notecards[key]; | 6486 | Notecard nc = m_Notecards[key]; |
6468 | if(nc.lastRef.AddSeconds(30) < DateTime.Now) | 6487 | if (nc.lastRef.AddSeconds(30) < DateTime.Now) |
6469 | m_Notecards.Remove(key); | 6488 | m_Notecards.Remove(key); |
6470 | } | 6489 | } |
6471 | } | 6490 | } |
6472 | |||
6473 | } | 6491 | } |
6474 | } | 6492 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs index 8107788..cf15b67 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/Script/AssemblyResolver.cs | |||
@@ -37,25 +37,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script | |||
37 | public static Assembly OnAssemblyResolve(object sender, | 37 | public static Assembly OnAssemblyResolve(object sender, |
38 | ResolveEventArgs args) | 38 | ResolveEventArgs args) |
39 | { | 39 | { |
40 | if(!(sender is System.AppDomain)) | 40 | if (!(sender is System.AppDomain)) |
41 | return null; | 41 | return null; |
42 | 42 | ||
43 | AppDomain myDomain = (AppDomain)sender; | 43 | AppDomain myDomain = (AppDomain)sender; |
44 | string dirName = myDomain.FriendlyName; | 44 | string dirName = myDomain.FriendlyName; |
45 | 45 | ||
46 | string[] pathList=new string[] {"bin", "ScriptEngines", | 46 | string[] pathList = new string[] {"bin", "ScriptEngines", |
47 | Path.Combine("ScriptEngines", dirName)}; | 47 | Path.Combine("ScriptEngines", dirName)}; |
48 | 48 | ||
49 | string assemblyName = args.Name; | 49 | string assemblyName = args.Name; |
50 | if(assemblyName.IndexOf(",") != -1) | 50 | if (assemblyName.IndexOf(",") != -1) |
51 | assemblyName=args.Name.Substring(0, args.Name.IndexOf(",")); | 51 | assemblyName = args.Name.Substring(0, args.Name.IndexOf(",")); |
52 | 52 | ||
53 | foreach (string s in pathList) | 53 | foreach (string s in pathList) |
54 | { | 54 | { |
55 | string path=Path.Combine(Directory.GetCurrentDirectory(), | 55 | string path = Path.Combine(Directory.GetCurrentDirectory(), |
56 | Path.Combine(s, assemblyName))+".dll"; | 56 | Path.Combine(s, assemblyName))+".dll"; |
57 | 57 | ||
58 | if(File.Exists(path)) | 58 | if (File.Exists(path)) |
59 | return Assembly.LoadFrom(path); | 59 | return Assembly.LoadFrom(path); |
60 | } | 60 | } |
61 | 61 | ||
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs index bae8192..ebe4fc5 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/Script/BuiltIn_Commands_BaseClass.cs | |||
@@ -106,7 +106,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script | |||
106 | { | 106 | { |
107 | foreach (KeyValuePair<string, object> var in vars) | 107 | foreach (KeyValuePair<string, object> var in vars) |
108 | { | 108 | { |
109 | if(m_Fields.ContainsKey(var.Key)) | 109 | if (m_Fields.ContainsKey(var.Key)) |
110 | { | 110 | { |
111 | m_Fields[var.Key].SetValue(this, var.Value); | 111 | m_Fields[var.Key].SetValue(this, var.Value); |
112 | } | 112 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs b/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs index 2d5d2b8..a3dcfaf 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/Script/LSL_Types.cs | |||
@@ -1212,8 +1212,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script | |||
1212 | 1212 | ||
1213 | public LSLInteger(Object o) | 1213 | public LSLInteger(Object o) |
1214 | { | 1214 | { |
1215 | if(!(o is Int32)) | 1215 | if (!(o is Int32)) |
1216 | value=0; | 1216 | value = 0; |
1217 | else | 1217 | else |
1218 | value = (int)o; | 1218 | value = (int)o; |
1219 | } | 1219 | } |
@@ -1327,11 +1327,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine.Script | |||
1327 | 1327 | ||
1328 | public override bool Equals(object o) | 1328 | public override bool Equals(object o) |
1329 | { | 1329 | { |
1330 | if(o is Int32) | 1330 | if (o is Int32) |
1331 | { | 1331 | { |
1332 | return value == (Int32)o; | 1332 | return value == (Int32)o; |
1333 | } | 1333 | } |
1334 | if(o is LSLInteger) | 1334 | if (o is LSLInteger) |
1335 | { | 1335 | { |
1336 | return value == ((LSLInteger)o).value; | 1336 | return value == ((LSLInteger)o).value; |
1337 | } | 1337 | } |
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index cbcf5ea..0fe1f46 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -106,7 +106,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
106 | 106 | ||
107 | m_ScriptConfig = configSource.Configs["XEngine"]; | 107 | m_ScriptConfig = configSource.Configs["XEngine"]; |
108 | 108 | ||
109 | if(m_ScriptConfig == null) | 109 | if (m_ScriptConfig == null) |
110 | { | 110 | { |
111 | m_log.ErrorFormat("[XEngine] No script configuration found. Scripts disabled"); | 111 | m_log.ErrorFormat("[XEngine] No script configuration found. Scripts disabled"); |
112 | return; | 112 | return; |
@@ -126,7 +126,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
126 | int saveTime = m_ScriptConfig.GetInt("SaveInterval", 300)*1000; | 126 | int saveTime = m_ScriptConfig.GetInt("SaveInterval", 300)*1000; |
127 | 127 | ||
128 | ThreadPriority prio = ThreadPriority.BelowNormal; | 128 | ThreadPriority prio = ThreadPriority.BelowNormal; |
129 | switch(priority) | 129 | switch (priority) |
130 | { | 130 | { |
131 | case "Lowest": | 131 | case "Lowest": |
132 | prio=ThreadPriority.Lowest; | 132 | prio=ThreadPriority.Lowest; |
@@ -149,7 +149,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
149 | break; | 149 | break; |
150 | } | 150 | } |
151 | 151 | ||
152 | lock(m_ScriptEngines) | 152 | lock (m_ScriptEngines) |
153 | { | 153 | { |
154 | m_ScriptEngines.Add(this); | 154 | m_ScriptEngines.Add(this); |
155 | } | 155 | } |
@@ -166,17 +166,17 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
166 | m_Scene.EventManager.OnRemoveScript += OnRemoveScript; | 166 | m_Scene.EventManager.OnRemoveScript += OnRemoveScript; |
167 | m_Scene.EventManager.OnScriptReset += OnScriptReset; | 167 | m_Scene.EventManager.OnScriptReset += OnScriptReset; |
168 | 168 | ||
169 | if(sleepTime > 0) | 169 | if (sleepTime > 0) |
170 | { | 170 | { |
171 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( | 171 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( |
172 | this.DoMaintenance), new Object[] | 172 | this.DoMaintenance), new Object[] |
173 | { sleepTime }); | 173 | { sleepTime }); |
174 | } | 174 | } |
175 | 175 | ||
176 | if(saveTime > 0) | 176 | if (saveTime > 0) |
177 | { | 177 | { |
178 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( | 178 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( |
179 | this.DoBackup), new Object[] { saveTime }); | 179 | this.DoBackup), new Object[] { saveTime }); |
180 | } | 180 | } |
181 | } | 181 | } |
182 | 182 | ||
@@ -187,9 +187,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
187 | 187 | ||
188 | public void Close() | 188 | public void Close() |
189 | { | 189 | { |
190 | lock(m_ScriptEngines) | 190 | lock (m_ScriptEngines) |
191 | { | 191 | { |
192 | if(m_ScriptEngines.Contains(this)) | 192 | if (m_ScriptEngines.Contains(this)) |
193 | m_ScriptEngines.Remove(this); | 193 | m_ScriptEngines.Remove(this); |
194 | } | 194 | } |
195 | } | 195 | } |
@@ -205,7 +205,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
205 | 205 | ||
206 | List<XScriptInstance> instances = new List<XScriptInstance>(); | 206 | List<XScriptInstance> instances = new List<XScriptInstance>(); |
207 | 207 | ||
208 | lock(m_Scripts) | 208 | lock (m_Scripts) |
209 | { | 209 | { |
210 | foreach (XScriptInstance instance in m_Scripts.Values) | 210 | foreach (XScriptInstance instance in m_Scripts.Values) |
211 | instances.Add(instance); | 211 | instances.Add(instance); |
@@ -215,9 +215,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
215 | { | 215 | { |
216 | string assembly = String.Empty; | 216 | string assembly = String.Empty; |
217 | 217 | ||
218 | lock(m_Scripts) | 218 | lock (m_Scripts) |
219 | { | 219 | { |
220 | if(!m_Assemblies.ContainsKey(i.AssetID)) | 220 | if (!m_Assemblies.ContainsKey(i.AssetID)) |
221 | continue; | 221 | continue; |
222 | assembly = m_Assemblies[i.AssetID]; | 222 | assembly = m_Assemblies[i.AssetID]; |
223 | } | 223 | } |
@@ -240,10 +240,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
240 | 240 | ||
241 | foreach (XScriptInstance inst in m_Scripts.Values) | 241 | foreach (XScriptInstance inst in m_Scripts.Values) |
242 | { | 242 | { |
243 | if(inst.EventTime() > m_EventLimit) | 243 | if (inst.EventTime() > m_EventLimit) |
244 | { | 244 | { |
245 | inst.Stop(100); | 245 | inst.Stop(100); |
246 | if(!m_KillTimedOutScripts) | 246 | if (!m_KillTimedOutScripts) |
247 | inst.Start(); | 247 | inst.Start(); |
248 | } | 248 | } |
249 | } | 249 | } |
@@ -251,7 +251,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
251 | System.Threading.Thread.Sleep(sleepTime); | 251 | System.Threading.Thread.Sleep(sleepTime); |
252 | 252 | ||
253 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( | 253 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( |
254 | this.DoMaintenance), new Object[] | 254 | this.DoMaintenance), new Object[] |
255 | { sleepTime }); | 255 | { sleepTime }); |
256 | 256 | ||
257 | return 0; | 257 | return 0; |
@@ -281,7 +281,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
281 | public void OnRezScript(uint localID, LLUUID itemID, string script) | 281 | public void OnRezScript(uint localID, LLUUID itemID, string script) |
282 | { | 282 | { |
283 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( | 283 | m_ThreadPool.QueueWorkItem(new WorkItemCallback( |
284 | this.DoOnRezScript), new Object[] | 284 | this.DoOnRezScript), new Object[] |
285 | { localID, itemID, script}); | 285 | { localID, itemID, script}); |
286 | } | 286 | } |
287 | 287 | ||
@@ -296,25 +296,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
296 | // already have it. | 296 | // already have it. |
297 | 297 | ||
298 | SceneObjectPart part = m_Scene.GetSceneObjectPart(localID); | 298 | SceneObjectPart part = m_Scene.GetSceneObjectPart(localID); |
299 | if(part == null) | 299 | if (part == null) |
300 | return false; | 300 | return false; |
301 | 301 | ||
302 | TaskInventoryItem item = part.GetInventoryItem(itemID); | 302 | TaskInventoryItem item = part.GetInventoryItem(itemID); |
303 | if(item == null) | 303 | if (item == null) |
304 | return false; | 304 | return false; |
305 | 305 | ||
306 | LLUUID assetID=item.AssetID; | 306 | LLUUID assetID = item.AssetID; |
307 | 307 | ||
308 | // m_log.DebugFormat("[XEngine] Compiling script {0} ({1})", | 308 | // m_log.DebugFormat("[XEngine] Compiling script {0} ({1})", |
309 | // item.Name, itemID.ToString()); | 309 | // item.Name, itemID.ToString()); |
310 | 310 | ||
311 | string assembly=""; | 311 | string assembly = ""; |
312 | try | 312 | try |
313 | { | 313 | { |
314 | assembly=m_Compiler.PerformScriptCompile(script, | 314 | assembly = m_Compiler.PerformScriptCompile(script, |
315 | assetID.ToString()); | 315 | assetID.ToString()); |
316 | m_log.DebugFormat("[XEngine] Loaded script {0}.{1}", | 316 | m_log.DebugFormat("[XEngine] Loaded script {0}.{1}", |
317 | part.ParentGroup.RootPart.Name, item.Name); | 317 | part.ParentGroup.RootPart.Name, item.Name); |
318 | } | 318 | } |
319 | catch (Exception e) | 319 | catch (Exception e) |
320 | { | 320 | { |
@@ -325,9 +325,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
325 | if (text.Length > 1400) | 325 | if (text.Length > 1400) |
326 | text = text.Substring(0, 1400); | 326 | text = text.Substring(0, 1400); |
327 | World.SimChat(Helpers.StringToField(text), | 327 | World.SimChat(Helpers.StringToField(text), |
328 | ChatTypeEnum.DebugChannel, 2147483647, | 328 | ChatTypeEnum.DebugChannel, 2147483647, |
329 | part.AbsolutePosition, | 329 | part.AbsolutePosition, |
330 | part.Name, part.UUID, false); | 330 | part.Name, part.UUID, false); |
331 | } | 331 | } |
332 | catch (Exception e2) // LEGIT: User Scripting | 332 | catch (Exception e2) // LEGIT: User Scripting |
333 | { | 333 | { |
@@ -342,28 +342,28 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
342 | return false; | 342 | return false; |
343 | } | 343 | } |
344 | 344 | ||
345 | lock(m_Scripts) | 345 | lock (m_Scripts) |
346 | { | 346 | { |
347 | // Create the object record | 347 | // Create the object record |
348 | 348 | ||
349 | if(!m_PrimObjects.ContainsKey(localID)) | 349 | if (!m_PrimObjects.ContainsKey(localID)) |
350 | m_PrimObjects[localID] = new List<LLUUID>(); | 350 | m_PrimObjects[localID] = new List<LLUUID>(); |
351 | 351 | ||
352 | if(!m_PrimObjects[localID].Contains(itemID)) | 352 | if (!m_PrimObjects[localID].Contains(itemID)) |
353 | m_PrimObjects[localID].Add(itemID); | 353 | m_PrimObjects[localID].Add(itemID); |
354 | 354 | ||
355 | if(!m_Assemblies.ContainsKey(assetID)) | 355 | if (!m_Assemblies.ContainsKey(assetID)) |
356 | m_Assemblies[assetID] = assembly; | 356 | m_Assemblies[assetID] = assembly; |
357 | 357 | ||
358 | if((!m_Scripts.ContainsKey(itemID)) || | 358 | if ((!m_Scripts.ContainsKey(itemID)) || |
359 | (m_Scripts[itemID].AssetID != assetID)) | 359 | (m_Scripts[itemID].AssetID != assetID)) |
360 | { | 360 | { |
361 | LLUUID appDomain=assetID; | 361 | LLUUID appDomain=assetID; |
362 | 362 | ||
363 | if(part.ParentGroup.RootPart.m_IsAttachment) | 363 | if (part.ParentGroup.RootPart.m_IsAttachment) |
364 | appDomain=part.ParentGroup.RootPart.UUID; | 364 | appDomain = part.ParentGroup.RootPart.UUID; |
365 | 365 | ||
366 | if(!m_AppDomains.ContainsKey(appDomain)) | 366 | if (!m_AppDomains.ContainsKey(appDomain)) |
367 | { | 367 | { |
368 | try | 368 | try |
369 | { | 369 | { |
@@ -373,16 +373,16 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
373 | // m_Scene.RegionInfo.RegionID.ToString()); | 373 | // m_Scene.RegionInfo.RegionID.ToString()); |
374 | 374 | ||
375 | Evidence baseEvidence = | 375 | Evidence baseEvidence = |
376 | AppDomain.CurrentDomain.Evidence; | 376 | AppDomain.CurrentDomain.Evidence; |
377 | Evidence evidence = new Evidence(baseEvidence); | 377 | Evidence evidence = new Evidence(baseEvidence); |
378 | 378 | ||
379 | m_AppDomains[appDomain] = | 379 | m_AppDomains[appDomain] = |
380 | AppDomain.CreateDomain( | 380 | AppDomain.CreateDomain( |
381 | m_Scene.RegionInfo.RegionID.ToString(), | 381 | m_Scene.RegionInfo.RegionID.ToString(), |
382 | evidence, appSetup); | 382 | evidence, appSetup); |
383 | 383 | ||
384 | m_AppDomains[appDomain].AssemblyResolve += | 384 | m_AppDomains[appDomain].AssemblyResolve += |
385 | new ResolveEventHandler( | 385 | new ResolveEventHandler( |
386 | AssemblyResolver.OnAssemblyResolve); | 386 | AssemblyResolver.OnAssemblyResolve); |
387 | m_DomainScripts[appDomain] = new List<LLUUID>(); | 387 | m_DomainScripts[appDomain] = new List<LLUUID>(); |
388 | } | 388 | } |
@@ -394,10 +394,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
394 | } | 394 | } |
395 | m_DomainScripts[appDomain].Add(itemID); | 395 | m_DomainScripts[appDomain].Add(itemID); |
396 | 396 | ||
397 | |||
398 | XScriptInstance instance = new XScriptInstance(this,localID, | 397 | XScriptInstance instance = new XScriptInstance(this,localID, |
399 | part.UUID, itemID, assetID, assembly, | 398 | part.UUID, itemID, assetID, assembly, |
400 | m_AppDomains[appDomain]); | 399 | m_AppDomains[appDomain]); |
401 | 400 | ||
402 | instance.AppDomain = appDomain; | 401 | instance.AppDomain = appDomain; |
403 | 402 | ||
@@ -409,10 +408,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
409 | 408 | ||
410 | public void OnRemoveScript(uint localID, LLUUID itemID) | 409 | public void OnRemoveScript(uint localID, LLUUID itemID) |
411 | { | 410 | { |
412 | lock(m_Scripts) | 411 | lock (m_Scripts) |
413 | { | 412 | { |
414 | // Do we even have it? | 413 | // Do we even have it? |
415 | if(!m_Scripts.ContainsKey(itemID)) | 414 | if (!m_Scripts.ContainsKey(itemID)) |
416 | return; | 415 | return; |
417 | 416 | ||
418 | m_ASYNCLSLCommandManager.RemoveScript(localID, itemID); | 417 | m_ASYNCLSLCommandManager.RemoveScript(localID, itemID); |
@@ -424,27 +423,27 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
424 | instance.Stop(0); | 423 | instance.Stop(0); |
425 | 424 | ||
426 | SceneObjectPart part = | 425 | SceneObjectPart part = |
427 | m_Scene.GetSceneObjectPart(localID); | 426 | m_Scene.GetSceneObjectPart(localID); |
428 | 427 | ||
429 | if(part != null) | 428 | if (part != null) |
430 | part.RemoveScriptEvents(itemID); | 429 | part.RemoveScriptEvents(itemID); |
431 | 430 | ||
432 | // Remove the script from it's prim | 431 | // Remove the script from it's prim |
433 | if(m_PrimObjects.ContainsKey(localID)) | 432 | if (m_PrimObjects.ContainsKey(localID)) |
434 | { | 433 | { |
435 | // Remove inventory item record | 434 | // Remove inventory item record |
436 | if(m_PrimObjects[localID].Contains(itemID)) | 435 | if (m_PrimObjects[localID].Contains(itemID)) |
437 | m_PrimObjects[localID].Remove(itemID); | 436 | m_PrimObjects[localID].Remove(itemID); |
438 | 437 | ||
439 | // If there are no more scripts, remove prim | 438 | // If there are no more scripts, remove prim |
440 | if(m_PrimObjects[localID].Count == 0) | 439 | if (m_PrimObjects[localID].Count == 0) |
441 | { | 440 | { |
442 | m_PrimObjects.Remove(localID); | 441 | m_PrimObjects.Remove(localID); |
443 | } | 442 | } |
444 | } | 443 | } |
445 | 444 | ||
446 | m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); | 445 | m_DomainScripts[instance.AppDomain].Remove(instance.ItemID); |
447 | if(m_DomainScripts[instance.AppDomain].Count == 0) | 446 | if (m_DomainScripts[instance.AppDomain].Count == 0) |
448 | { | 447 | { |
449 | m_DomainScripts.Remove(instance.AppDomain); | 448 | m_DomainScripts.Remove(instance.AppDomain); |
450 | UnloadAppDomain(instance.AppDomain); | 449 | UnloadAppDomain(instance.AppDomain); |
@@ -467,7 +466,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
467 | 466 | ||
468 | foreach (XScriptInstance i in m_Scripts.Values) | 467 | foreach (XScriptInstance i in m_Scripts.Values) |
469 | { | 468 | { |
470 | if(assetIDList.Contains(i.AssetID)) | 469 | if (assetIDList.Contains(i.AssetID)) |
471 | assetIDList.Remove(i.AssetID); | 470 | assetIDList.Remove(i.AssetID); |
472 | } | 471 | } |
473 | 472 | ||
@@ -476,11 +475,13 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
476 | // m_log.DebugFormat("[XEngine] Removing unreferenced assembly {0}", m_Assemblies[assetID]); | 475 | // m_log.DebugFormat("[XEngine] Removing unreferenced assembly {0}", m_Assemblies[assetID]); |
477 | try | 476 | try |
478 | { | 477 | { |
479 | if(File.Exists(m_Assemblies[assetID])) | 478 | if (File.Exists(m_Assemblies[assetID])) |
480 | File.Delete(m_Assemblies[assetID]); | 479 | File.Delete(m_Assemblies[assetID]); |
481 | if(File.Exists(m_Assemblies[assetID]+".state")) | 480 | |
481 | if (File.Exists(m_Assemblies[assetID]+".state")) | ||
482 | File.Delete(m_Assemblies[assetID]+".state"); | 482 | File.Delete(m_Assemblies[assetID]+".state"); |
483 | if(File.Exists(m_Assemblies[assetID]+".mdb")) | 483 | |
484 | if (File.Exists(m_Assemblies[assetID]+".mdb")) | ||
484 | File.Delete(m_Assemblies[assetID]+".mdb"); | 485 | File.Delete(m_Assemblies[assetID]+".mdb"); |
485 | } | 486 | } |
486 | catch (Exception e) | 487 | catch (Exception e) |
@@ -492,9 +493,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
492 | 493 | ||
493 | private void UnloadAppDomain(LLUUID id) | 494 | private void UnloadAppDomain(LLUUID id) |
494 | { | 495 | { |
495 | if(m_AppDomains.ContainsKey(id)) | 496 | if (m_AppDomains.ContainsKey(id)) |
496 | { | 497 | { |
497 | AppDomain domain=m_AppDomains[id]; | 498 | AppDomain domain = m_AppDomains[id]; |
498 | m_AppDomains.Remove(id); | 499 | m_AppDomains.Remove(id); |
499 | 500 | ||
500 | AppDomain.Unload(domain); | 501 | AppDomain.Unload(domain); |
@@ -507,10 +508,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
507 | // Start processing | 508 | // Start processing |
508 | // | 509 | // |
509 | private void StartEngine(int minThreads, int maxThreads, | 510 | private void StartEngine(int minThreads, int maxThreads, |
510 | int idleTimeout, ThreadPriority threadPriority, | 511 | int idleTimeout, ThreadPriority threadPriority, |
511 | int maxScriptQueue, int stackSize) | 512 | int maxScriptQueue, int stackSize) |
512 | { | 513 | { |
513 | m_MaxScriptQueue=maxScriptQueue; | 514 | m_MaxScriptQueue = maxScriptQueue; |
514 | 515 | ||
515 | STPStartInfo startInfo = new STPStartInfo(); | 516 | STPStartInfo startInfo = new STPStartInfo(); |
516 | startInfo.IdleTimeout = idleTimeout; | 517 | startInfo.IdleTimeout = idleTimeout; |
@@ -519,7 +520,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
519 | startInfo.ThreadPriority = threadPriority; | 520 | startInfo.ThreadPriority = threadPriority; |
520 | startInfo.StackSize = stackSize; | 521 | startInfo.StackSize = stackSize; |
521 | startInfo.StartSuspended = true; | 522 | startInfo.StartSuspended = true; |
522 | 523 | ||
523 | m_ThreadPool = new SmartThreadPool(startInfo); | 524 | m_ThreadPool = new SmartThreadPool(startInfo); |
524 | } | 525 | } |
525 | 526 | ||
@@ -529,7 +530,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
529 | public IWorkItemResult QueueEventHandler(object parms) | 530 | public IWorkItemResult QueueEventHandler(object parms) |
530 | { | 531 | { |
531 | return m_ThreadPool.QueueWorkItem(new WorkItemCallback( | 532 | return m_ThreadPool.QueueWorkItem(new WorkItemCallback( |
532 | this.ProcessEventHandler), parms); | 533 | this.ProcessEventHandler), parms); |
533 | } | 534 | } |
534 | 535 | ||
535 | // | 536 | // |
@@ -537,8 +538,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
537 | // | 538 | // |
538 | private object ProcessEventHandler(object parms) | 539 | private object ProcessEventHandler(object parms) |
539 | { | 540 | { |
540 | XScriptInstance instance=(XScriptInstance)parms; | 541 | XScriptInstance instance = (XScriptInstance) parms; |
541 | 542 | ||
542 | return instance.EventProcessor(); | 543 | return instance.EventProcessor(); |
543 | } | 544 | } |
544 | 545 | ||
@@ -549,15 +550,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
549 | { | 550 | { |
550 | bool result = false; | 551 | bool result = false; |
551 | 552 | ||
552 | if(!m_PrimObjects.ContainsKey(localID)) | 553 | if (!m_PrimObjects.ContainsKey(localID)) |
553 | return false; | 554 | return false; |
554 | 555 | ||
555 | foreach (LLUUID itemID in m_PrimObjects[localID]) | 556 | foreach (LLUUID itemID in m_PrimObjects[localID]) |
556 | { | 557 | { |
557 | if(m_Scripts.ContainsKey(itemID)) | 558 | if (m_Scripts.ContainsKey(itemID)) |
558 | { | 559 | { |
559 | XScriptInstance instance = m_Scripts[itemID]; | 560 | XScriptInstance instance = m_Scripts[itemID]; |
560 | if(instance != null) | 561 | if (instance != null) |
561 | { | 562 | { |
562 | instance.PostEvent(p); | 563 | instance.PostEvent(p); |
563 | result = true; | 564 | result = true; |
@@ -572,10 +573,10 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
572 | // | 573 | // |
573 | public bool PostScriptEvent(LLUUID itemID, XEventParams p) | 574 | public bool PostScriptEvent(LLUUID itemID, XEventParams p) |
574 | { | 575 | { |
575 | if(m_Scripts.ContainsKey(itemID)) | 576 | if (m_Scripts.ContainsKey(itemID)) |
576 | { | 577 | { |
577 | XScriptInstance instance = m_Scripts[itemID]; | 578 | XScriptInstance instance = m_Scripts[itemID]; |
578 | if(instance != null) | 579 | if (instance != null) |
579 | instance.PostEvent(p); | 580 | instance.PostEvent(p); |
580 | return true; | 581 | return true; |
581 | } | 582 | } |
@@ -583,25 +584,25 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
583 | } | 584 | } |
584 | 585 | ||
585 | public Assembly OnAssemblyResolve(object sender, | 586 | public Assembly OnAssemblyResolve(object sender, |
586 | ResolveEventArgs args) | 587 | ResolveEventArgs args) |
587 | { | 588 | { |
588 | if(!(sender is System.AppDomain)) | 589 | if (!(sender is System.AppDomain)) |
589 | return null; | 590 | return null; |
590 | 591 | ||
591 | string[] pathList=new string[] {"bin", "ScriptEngines", | 592 | string[] pathList = new string[] {"bin", "ScriptEngines", |
592 | Path.Combine("ScriptEngines", | 593 | Path.Combine("ScriptEngines", |
593 | m_Scene.RegionInfo.RegionID.ToString())}; | 594 | m_Scene.RegionInfo.RegionID.ToString())}; |
594 | 595 | ||
595 | string assemblyName = args.Name; | 596 | string assemblyName = args.Name; |
596 | if(assemblyName.IndexOf(",") != -1) | 597 | if (assemblyName.IndexOf(",") != -1) |
597 | assemblyName=args.Name.Substring(0, args.Name.IndexOf(",")); | 598 | assemblyName = args.Name.Substring(0, args.Name.IndexOf(",")); |
598 | 599 | ||
599 | foreach (string s in pathList) | 600 | foreach (string s in pathList) |
600 | { | 601 | { |
601 | string path=Path.Combine(Directory.GetCurrentDirectory(), | 602 | string path = Path.Combine(Directory.GetCurrentDirectory(), |
602 | Path.Combine(s, assemblyName))+".dll"; | 603 | Path.Combine(s, assemblyName))+".dll"; |
603 | 604 | ||
604 | if(File.Exists(path)) | 605 | if (File.Exists(path)) |
605 | return Assembly.LoadFrom(path); | 606 | return Assembly.LoadFrom(path); |
606 | } | 607 | } |
607 | 608 | ||
@@ -611,9 +612,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
611 | private XScriptInstance GetInstance(LLUUID itemID) | 612 | private XScriptInstance GetInstance(LLUUID itemID) |
612 | { | 613 | { |
613 | XScriptInstance instance; | 614 | XScriptInstance instance; |
614 | lock(m_Scripts) | 615 | lock (m_Scripts) |
615 | { | 616 | { |
616 | if(!m_Scripts.ContainsKey(itemID)) | 617 | if (!m_Scripts.ContainsKey(itemID)) |
617 | return null; | 618 | return null; |
618 | instance = m_Scripts[itemID]; | 619 | instance = m_Scripts[itemID]; |
619 | } | 620 | } |
@@ -623,9 +624,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
623 | public void SetScriptState(LLUUID itemID, bool running) | 624 | public void SetScriptState(LLUUID itemID, bool running) |
624 | { | 625 | { |
625 | XScriptInstance instance = GetInstance(itemID); | 626 | XScriptInstance instance = GetInstance(itemID); |
626 | if(instance != null) | 627 | if (instance != null) |
627 | { | 628 | { |
628 | if(running) | 629 | if (running) |
629 | instance.Start(); | 630 | instance.Start(); |
630 | else | 631 | else |
631 | instance.Stop(500); | 632 | instance.Stop(500); |
@@ -635,7 +636,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
635 | public bool GetScriptState(LLUUID itemID) | 636 | public bool GetScriptState(LLUUID itemID) |
636 | { | 637 | { |
637 | XScriptInstance instance = GetInstance(itemID); | 638 | XScriptInstance instance = GetInstance(itemID); |
638 | if(instance != null) | 639 | if (instance != null) |
639 | return instance.Running; | 640 | return instance.Running; |
640 | return false; | 641 | return false; |
641 | } | 642 | } |
@@ -643,14 +644,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
643 | public void ResetScript(LLUUID itemID) | 644 | public void ResetScript(LLUUID itemID) |
644 | { | 645 | { |
645 | XScriptInstance instance = GetInstance(itemID); | 646 | XScriptInstance instance = GetInstance(itemID); |
646 | if(instance != null) | 647 | if (instance != null) |
647 | instance.ResetScript(); | 648 | instance.ResetScript(); |
648 | } | 649 | } |
649 | 650 | ||
650 | public XDetectParams GetDetectParams(LLUUID itemID, int idx) | 651 | public XDetectParams GetDetectParams(LLUUID itemID, int idx) |
651 | { | 652 | { |
652 | XScriptInstance instance = GetInstance(itemID); | 653 | XScriptInstance instance = GetInstance(itemID); |
653 | if(instance != null) | 654 | if (instance != null) |
654 | return instance.GetDetectParams(idx); | 655 | return instance.GetDetectParams(idx); |
655 | return new XDetectParams(); | 656 | return new XDetectParams(); |
656 | } | 657 | } |
@@ -658,7 +659,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
658 | public LLUUID GetDetectID(LLUUID itemID, int idx) | 659 | public LLUUID GetDetectID(LLUUID itemID, int idx) |
659 | { | 660 | { |
660 | XScriptInstance instance = GetInstance(itemID); | 661 | XScriptInstance instance = GetInstance(itemID); |
661 | if(instance != null) | 662 | if (instance != null) |
662 | return instance.GetDetectID(idx); | 663 | return instance.GetDetectID(idx); |
663 | return LLUUID.Zero; | 664 | return LLUUID.Zero; |
664 | } | 665 | } |
@@ -688,8 +689,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
688 | { | 689 | { |
689 | private XEngine m_Engine; | 690 | private XEngine m_Engine; |
690 | private IWorkItemResult m_CurrentResult=null; | 691 | private IWorkItemResult m_CurrentResult=null; |
691 | private Queue m_EventQueue=new Queue(32); | 692 | private Queue m_EventQueue = new Queue(32); |
692 | private bool m_RunEvents=false; | 693 | private bool m_RunEvents = false; |
693 | private LLUUID m_ItemID; | 694 | private LLUUID m_ItemID; |
694 | private uint m_LocalID; | 695 | private uint m_LocalID; |
695 | private LLUUID m_ObjectID; | 696 | private LLUUID m_ObjectID; |
@@ -765,7 +766,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
765 | public XScriptInstance(XEngine engine, uint localID, LLUUID objectID, | 766 | public XScriptInstance(XEngine engine, uint localID, LLUUID objectID, |
766 | LLUUID itemID, LLUUID assetID, string assembly, AppDomain dom) | 767 | LLUUID itemID, LLUUID assetID, string assembly, AppDomain dom) |
767 | { | 768 | { |
768 | m_Engine=engine; | 769 | m_Engine = engine; |
769 | 770 | ||
770 | m_LocalID = localID; | 771 | m_LocalID = localID; |
771 | m_ObjectID = objectID; | 772 | m_ObjectID = objectID; |
@@ -773,22 +774,22 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
773 | m_AssetID = assetID; | 774 | m_AssetID = assetID; |
774 | 775 | ||
775 | SceneObjectPart part=engine.World.GetSceneObjectPart(localID); | 776 | SceneObjectPart part=engine.World.GetSceneObjectPart(localID); |
776 | if(part == null) | 777 | if (part == null) |
777 | { | 778 | { |
778 | engine.Log.Error("[XEngine] SceneObjectPart unavailable. Script NOT started."); | 779 | engine.Log.Error("[XEngine] SceneObjectPart unavailable. Script NOT started."); |
779 | return; | 780 | return; |
780 | } | 781 | } |
781 | 782 | ||
782 | m_LSLCommands = new LSL_ScriptCommands(engine, this, part, localID, | 783 | m_LSLCommands = new LSL_ScriptCommands(engine, this, part, localID, |
783 | itemID); | 784 | itemID); |
784 | m_OSSLCommands = new OSSL_ScriptCommands(engine, this, part, | 785 | m_OSSLCommands = new OSSL_ScriptCommands(engine, this, part, |
785 | localID, itemID); | 786 | localID, itemID); |
786 | 787 | ||
787 | try | 788 | try |
788 | { | 789 | { |
789 | m_Script = (IScript)dom.CreateInstanceAndUnwrap( | 790 | m_Script = (IScript)dom.CreateInstanceAndUnwrap( |
790 | Path.GetFileNameWithoutExtension(assembly), | 791 | Path.GetFileNameWithoutExtension(assembly), |
791 | "SecondLife.Script"); | 792 | "SecondLife.Script"); |
792 | } | 793 | } |
793 | catch (Exception e) | 794 | catch (Exception e) |
794 | { | 795 | { |
@@ -804,15 +805,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
804 | // m_Engine.Log.Debug("[XEngine] Script instance created"); | 805 | // m_Engine.Log.Debug("[XEngine] Script instance created"); |
805 | 806 | ||
806 | part.SetScriptEvents(m_ItemID, | 807 | part.SetScriptEvents(m_ItemID, |
807 | (int)m_Executor.GetStateEventFlags()); | 808 | (int)m_Executor.GetStateEventFlags()); |
808 | } | 809 | } |
809 | catch (Exception e) | 810 | catch (Exception e) |
810 | { | 811 | { |
811 | m_Engine.Log.Error("Error loading script instance\n"+e.ToString()); | 812 | m_Engine.Log.Error("Error loading script instance\n"+e.ToString()); |
812 | } | 813 | } |
813 | 814 | ||
814 | string savedState = assembly+".state"; | 815 | string savedState = assembly + ".state"; |
815 | if(File.Exists(savedState)) | 816 | if (File.Exists(savedState)) |
816 | { | 817 | { |
817 | string xml = String.Empty; | 818 | string xml = String.Empty; |
818 | 819 | ||
@@ -820,44 +821,44 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
820 | { | 821 | { |
821 | FileInfo fi = new FileInfo(savedState); | 822 | FileInfo fi = new FileInfo(savedState); |
822 | int size=(int)fi.Length; | 823 | int size=(int)fi.Length; |
823 | if(size < 130000) | 824 | if (size < 130000) |
824 | { | 825 | { |
825 | using (FileStream fs = File.Open(savedState, | 826 | using (FileStream fs = File.Open(savedState, |
826 | FileMode.Open, FileAccess.Read, FileShare.None)) | 827 | FileMode.Open, FileAccess.Read, FileShare.None)) |
827 | { | 828 | { |
828 | System.Text.ASCIIEncoding enc = | 829 | System.Text.ASCIIEncoding enc = |
829 | new System.Text.ASCIIEncoding(); | 830 | new System.Text.ASCIIEncoding(); |
830 | 831 | ||
831 | Byte[] data=new Byte[size]; | 832 | Byte[] data = new Byte[size]; |
832 | fs.Read(data, 0, size); | 833 | fs.Read(data, 0, size); |
833 | 834 | ||
834 | xml=enc.GetString(data); | 835 | xml = enc.GetString(data); |
835 | 836 | ||
836 | ScriptSerializer.Deserialize(xml, this); | 837 | ScriptSerializer.Deserialize(xml, this); |
837 | 838 | ||
838 | m_Engine.m_ASYNCLSLCommandManager.CreateFromData( | 839 | m_Engine.m_ASYNCLSLCommandManager.CreateFromData( |
839 | m_LocalID, m_ItemID, m_ObjectID, | 840 | m_LocalID, m_ItemID, m_ObjectID, |
840 | PluginData); | 841 | PluginData); |
841 | } | 842 | } |
842 | } | 843 | } |
843 | else | 844 | else |
844 | { | 845 | { |
845 | m_Engine.Log.Error("Unable to load script state: Memory limit exceeded"); | 846 | m_Engine.Log.Error("Unable to load script state: Memory limit exceeded"); |
846 | PostEvent(new XEventParams("state_entry", | 847 | PostEvent(new XEventParams("state_entry", |
847 | new Object[0], new XDetectParams[0])); | 848 | new Object[0], new XDetectParams[0])); |
848 | } | 849 | } |
849 | } | 850 | } |
850 | catch (Exception e) | 851 | catch (Exception e) |
851 | { | 852 | { |
852 | m_Engine.Log.ErrorFormat("Unable to load script state from xml: {0}\n"+e.ToString(), xml); | 853 | m_Engine.Log.ErrorFormat("Unable to load script state from xml: {0}\n"+e.ToString(), xml); |
853 | PostEvent(new XEventParams("state_entry", | 854 | PostEvent(new XEventParams("state_entry", |
854 | new Object[0], new XDetectParams[0])); | 855 | new Object[0], new XDetectParams[0])); |
855 | } | 856 | } |
856 | } | 857 | } |
857 | else | 858 | else |
858 | { | 859 | { |
859 | PostEvent(new XEventParams("state_entry", | 860 | PostEvent(new XEventParams("state_entry", |
860 | new Object[0], new XDetectParams[0])); | 861 | new Object[0], new XDetectParams[0])); |
861 | } | 862 | } |
862 | Start(); | 863 | Start(); |
863 | } | 864 | } |
@@ -868,23 +869,23 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
868 | foreach (KeyValuePair<string, object> v in vars) | 869 | foreach (KeyValuePair<string, object> v in vars) |
869 | { | 870 | { |
870 | Console.WriteLine("Variable: {0} = '{1}'", v. Key, | 871 | Console.WriteLine("Variable: {0} = '{1}'", v. Key, |
871 | v.Value.ToString()); | 872 | v.Value.ToString()); |
872 | } | 873 | } |
873 | } | 874 | } |
874 | 875 | ||
875 | public void Start() | 876 | public void Start() |
876 | { | 877 | { |
877 | lock(m_EventQueue) | 878 | lock (m_EventQueue) |
878 | { | 879 | { |
879 | if(Running) | 880 | if (Running) |
880 | return; | 881 | return; |
881 | 882 | ||
882 | m_RunEvents=true; | 883 | m_RunEvents = true; |
883 | 884 | ||
884 | if(m_EventQueue.Count > 0) | 885 | if (m_EventQueue.Count > 0) |
885 | { | 886 | { |
886 | if(m_CurrentResult == null) | 887 | if (m_CurrentResult == null) |
887 | m_CurrentResult=m_Engine.QueueEventHandler(this); | 888 | m_CurrentResult = m_Engine.QueueEventHandler(this); |
888 | } | 889 | } |
889 | } | 890 | } |
890 | } | 891 | } |
@@ -893,36 +894,36 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
893 | { | 894 | { |
894 | IWorkItemResult result; | 895 | IWorkItemResult result; |
895 | 896 | ||
896 | lock(m_EventQueue) | 897 | lock (m_EventQueue) |
897 | { | 898 | { |
898 | if(!Running) | 899 | if (!Running) |
899 | return true; | 900 | return true; |
900 | 901 | ||
901 | if(m_CurrentResult == null) | 902 | if (m_CurrentResult == null) |
902 | { | 903 | { |
903 | m_RunEvents=false; | 904 | m_RunEvents = false; |
904 | return true; | 905 | return true; |
905 | } | 906 | } |
906 | 907 | ||
907 | if(m_CurrentResult.Cancel()) | 908 | if (m_CurrentResult.Cancel()) |
908 | { | 909 | { |
909 | m_CurrentResult=null; | 910 | m_CurrentResult = null; |
910 | m_RunEvents=false; | 911 | m_RunEvents = false; |
911 | return true; | 912 | return true; |
912 | } | 913 | } |
913 | 914 | ||
914 | result=m_CurrentResult; | 915 | result = m_CurrentResult; |
915 | m_RunEvents=false; | 916 | m_RunEvents = false; |
916 | } | 917 | } |
917 | 918 | ||
918 | if(SmartThreadPool.WaitAll(new IWorkItemResult[] {result}, new TimeSpan((long)timeout*100000), false)) | 919 | if (SmartThreadPool.WaitAll(new IWorkItemResult[] {result}, new TimeSpan((long)timeout * 100000), false)) |
919 | { | 920 | { |
920 | return true; | 921 | return true; |
921 | } | 922 | } |
922 | 923 | ||
923 | lock(m_EventQueue) | 924 | lock (m_EventQueue) |
924 | { | 925 | { |
925 | if(m_CurrentResult != null) | 926 | if (m_CurrentResult != null) |
926 | m_CurrentResult.Abort(); | 927 | m_CurrentResult.Abort(); |
927 | else | 928 | else |
928 | return true; | 929 | return true; |
@@ -934,75 +935,75 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
934 | public void SetState(string state) | 935 | public void SetState(string state) |
935 | { | 936 | { |
936 | PostEvent(new XEventParams("state_exit", new Object[0], | 937 | PostEvent(new XEventParams("state_exit", new Object[0], |
937 | new XDetectParams[0])); | 938 | new XDetectParams[0])); |
938 | PostEvent(new XEventParams("state", new Object[] { state }, | 939 | PostEvent(new XEventParams("state", new Object[] { state }, |
939 | new XDetectParams[0])); | 940 | new XDetectParams[0])); |
940 | PostEvent(new XEventParams("state_entry", new Object[0], | 941 | PostEvent(new XEventParams("state_entry", new Object[0], |
941 | new XDetectParams[0])); | 942 | new XDetectParams[0])); |
942 | } | 943 | } |
943 | 944 | ||
944 | public void PostEvent(XEventParams data) | 945 | public void PostEvent(XEventParams data) |
945 | { | 946 | { |
946 | lock(m_EventQueue) | 947 | lock (m_EventQueue) |
947 | { | 948 | { |
948 | if(m_EventQueue.Count >= m_Engine.MaxScriptQueue) | 949 | if (m_EventQueue.Count >= m_Engine.MaxScriptQueue) |
949 | return; | 950 | return; |
950 | 951 | ||
951 | m_EventQueue.Enqueue(data); | 952 | m_EventQueue.Enqueue(data); |
952 | if(data.EventName == "timer") | 953 | if (data.EventName == "timer") |
953 | { | 954 | { |
954 | if(m_TimerQueued) | 955 | if (m_TimerQueued) |
955 | return; | 956 | return; |
956 | m_TimerQueued = true; | 957 | m_TimerQueued = true; |
957 | } | 958 | } |
958 | 959 | ||
959 | if(!m_RunEvents) | 960 | if (!m_RunEvents) |
960 | return; | 961 | return; |
961 | 962 | ||
962 | if(m_CurrentResult == null) | 963 | if (m_CurrentResult == null) |
963 | { | 964 | { |
964 | m_CurrentResult=m_Engine.QueueEventHandler(this); | 965 | m_CurrentResult = m_Engine.QueueEventHandler(this); |
965 | } | 966 | } |
966 | } | 967 | } |
967 | } | 968 | } |
968 | 969 | ||
969 | public object EventProcessor() | 970 | public object EventProcessor() |
970 | { | 971 | { |
971 | XEventParams data=null; | 972 | XEventParams data = null; |
972 | 973 | ||
973 | lock(m_EventQueue) | 974 | lock (m_EventQueue) |
974 | { | 975 | { |
975 | data=(XEventParams)m_EventQueue.Dequeue(); | 976 | data = (XEventParams) m_EventQueue.Dequeue(); |
976 | if(data == null) // Shouldn't happen | 977 | if (data == null) // Shouldn't happen |
977 | { | 978 | { |
978 | m_CurrentResult=null; | 979 | m_CurrentResult = null; |
979 | return 0; | 980 | return 0; |
980 | } | 981 | } |
981 | if(data.EventName == "timer") | 982 | if (data.EventName == "timer") |
982 | m_TimerQueued = false; | 983 | m_TimerQueued = false; |
983 | } | 984 | } |
984 | 985 | ||
985 | m_DetectParams=data.DetectParams; | 986 | m_DetectParams = data.DetectParams; |
986 | 987 | ||
987 | if(data.EventName == "state") // Hardcoded state change | 988 | if (data.EventName == "state") // Hardcoded state change |
988 | { | 989 | { |
989 | m_State=data.Params[0].ToString(); | 990 | m_State=data.Params[0].ToString(); |
990 | m_Engine.m_ASYNCLSLCommandManager.RemoveScript( | 991 | m_Engine.m_ASYNCLSLCommandManager.RemoveScript( |
991 | m_LocalID, m_ItemID); | 992 | m_LocalID, m_ItemID); |
992 | 993 | ||
993 | SceneObjectPart part=m_Engine.World.GetSceneObjectPart( | 994 | SceneObjectPart part = m_Engine.World.GetSceneObjectPart( |
994 | m_LocalID); | 995 | m_LocalID); |
995 | if(part != null) | 996 | if (part != null) |
996 | { | 997 | { |
997 | part.SetScriptEvents(m_ItemID, | 998 | part.SetScriptEvents(m_ItemID, |
998 | (int)m_Executor.GetStateEventFlags()); | 999 | (int)m_Executor.GetStateEventFlags()); |
999 | } | 1000 | } |
1000 | } | 1001 | } |
1001 | else | 1002 | else |
1002 | { | 1003 | { |
1003 | // m_Engine.Log.DebugFormat("[XEngine] Processed event {0}", data.EventName); | 1004 | // m_Engine.Log.DebugFormat("[XEngine] Processed event {0}", data.EventName); |
1004 | SceneObjectPart part=m_Engine.World.GetSceneObjectPart( | 1005 | SceneObjectPart part = m_Engine.World.GetSceneObjectPart( |
1005 | m_LocalID); | 1006 | m_LocalID); |
1006 | try | 1007 | try |
1007 | { | 1008 | { |
1008 | m_EventStart = DateTime.Now; | 1009 | m_EventStart = DateTime.Now; |
@@ -1013,21 +1014,21 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1013 | catch (Exception e) | 1014 | catch (Exception e) |
1014 | { | 1015 | { |
1015 | m_InEvent = false; | 1016 | m_InEvent = false; |
1016 | if(e is System.Threading.ThreadAbortException) | 1017 | if (e is System.Threading.ThreadAbortException) |
1017 | { | 1018 | { |
1018 | lock(m_EventQueue) | 1019 | lock (m_EventQueue) |
1019 | { | 1020 | { |
1020 | if((m_EventQueue.Count > 0) && m_RunEvents) | 1021 | if ((m_EventQueue.Count > 0) && m_RunEvents) |
1021 | { | 1022 | { |
1022 | m_CurrentResult=m_Engine.QueueEventHandler(this); | 1023 | m_CurrentResult=m_Engine.QueueEventHandler(this); |
1023 | } | 1024 | } |
1024 | else | 1025 | else |
1025 | { | 1026 | { |
1026 | m_CurrentResult=null; | 1027 | m_CurrentResult = null; |
1027 | } | 1028 | } |
1028 | } | 1029 | } |
1029 | 1030 | ||
1030 | m_DetectParams=null; | 1031 | m_DetectParams = null; |
1031 | 1032 | ||
1032 | return 0; | 1033 | return 0; |
1033 | } | 1034 | } |
@@ -1039,42 +1040,42 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1039 | if (text.Length > 1400) | 1040 | if (text.Length > 1400) |
1040 | text = text.Substring(0, 1400); | 1041 | text = text.Substring(0, 1400); |
1041 | m_Engine.World.SimChat(Helpers.StringToField(text), | 1042 | m_Engine.World.SimChat(Helpers.StringToField(text), |
1042 | ChatTypeEnum.DebugChannel, 2147483647, | 1043 | ChatTypeEnum.DebugChannel, 2147483647, |
1043 | part.AbsolutePosition, | 1044 | part.AbsolutePosition, |
1044 | part.Name, part.UUID, false); | 1045 | part.Name, part.UUID, false); |
1045 | } | 1046 | } |
1046 | catch (Exception e2) // LEGIT: User Scripting | 1047 | catch (Exception e2) // LEGIT: User Scripting |
1047 | { | 1048 | { |
1048 | m_Engine.Log.Error("[XEngine]: "+ | 1049 | m_Engine.Log.Error("[XEngine]: "+ |
1049 | "Error displaying error in-world: " + | 1050 | "Error displaying error in-world: " + |
1050 | e2.ToString()); | 1051 | e2.ToString()); |
1051 | m_Engine.Log.Error("[XEngine]: " + | 1052 | m_Engine.Log.Error("[XEngine]: " + |
1052 | "Errormessage: Error compiling script:\r\n" + | 1053 | "Errormessage: Error compiling script:\r\n" + |
1053 | e.ToString()); | 1054 | e.ToString()); |
1054 | } | 1055 | } |
1055 | } | 1056 | } |
1056 | } | 1057 | } |
1057 | 1058 | ||
1058 | lock(m_EventQueue) | 1059 | lock (m_EventQueue) |
1059 | { | 1060 | { |
1060 | if((m_EventQueue.Count > 0) && m_RunEvents) | 1061 | if ((m_EventQueue.Count > 0) && m_RunEvents) |
1061 | { | 1062 | { |
1062 | m_CurrentResult=m_Engine.QueueEventHandler(this); | 1063 | m_CurrentResult = m_Engine.QueueEventHandler(this); |
1063 | } | 1064 | } |
1064 | else | 1065 | else |
1065 | { | 1066 | { |
1066 | m_CurrentResult=null; | 1067 | m_CurrentResult = null; |
1067 | } | 1068 | } |
1068 | } | 1069 | } |
1069 | 1070 | ||
1070 | m_DetectParams=null; | 1071 | m_DetectParams = null; |
1071 | 1072 | ||
1072 | return 0; | 1073 | return 0; |
1073 | } | 1074 | } |
1074 | 1075 | ||
1075 | public int EventTime() | 1076 | public int EventTime() |
1076 | { | 1077 | { |
1077 | if(!m_InEvent) | 1078 | if (!m_InEvent) |
1078 | return 0; | 1079 | return 0; |
1079 | 1080 | ||
1080 | return (DateTime.Now - m_EventStart).Seconds; | 1081 | return (DateTime.Now - m_EventStart).Seconds; |
@@ -1082,14 +1083,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1082 | 1083 | ||
1083 | public void ResetScript() | 1084 | public void ResetScript() |
1084 | { | 1085 | { |
1085 | bool running=Running; | 1086 | bool running = Running; |
1086 | 1087 | ||
1087 | Stop(0); | 1088 | Stop(0); |
1088 | m_Engine.m_ASYNCLSLCommandManager.RemoveScript(m_LocalID, m_ItemID); | 1089 | m_Engine.m_ASYNCLSLCommandManager.RemoveScript(m_LocalID, m_ItemID); |
1089 | m_EventQueue.Clear(); | 1090 | m_EventQueue.Clear(); |
1090 | m_Script.ResetVars(); | 1091 | m_Script.ResetVars(); |
1091 | m_State = "default"; | 1092 | m_State = "default"; |
1092 | if(running) | 1093 | if (running) |
1093 | Start(); | 1094 | Start(); |
1094 | PostEvent(new XEventParams("state_entry", | 1095 | PostEvent(new XEventParams("state_entry", |
1095 | new Object[0], new XDetectParams[0])); | 1096 | new Object[0], new XDetectParams[0])); |
@@ -1107,7 +1108,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1107 | 1108 | ||
1108 | public XDetectParams GetDetectParams(int idx) | 1109 | public XDetectParams GetDetectParams(int idx) |
1109 | { | 1110 | { |
1110 | if(idx < 0 || idx >= m_DetectParams.Length) | 1111 | if (idx < 0 || idx >= m_DetectParams.Length) |
1111 | return new XDetectParams(); | 1112 | return new XDetectParams(); |
1112 | 1113 | ||
1113 | return m_DetectParams[idx]; | 1114 | return m_DetectParams[idx]; |
@@ -1115,7 +1116,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1115 | 1116 | ||
1116 | public LLUUID GetDetectID(int idx) | 1117 | public LLUUID GetDetectID(int idx) |
1117 | { | 1118 | { |
1118 | if(idx < 0 || idx >= m_DetectParams.Length) | 1119 | if (idx < 0 || idx >= m_DetectParams.Length) |
1119 | return LLUUID.Zero; | 1120 | return LLUUID.Zero; |
1120 | 1121 | ||
1121 | return m_DetectParams[idx].Key; | 1122 | return m_DetectParams[idx].Key; |
@@ -1124,22 +1125,21 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1124 | public void SaveState(string assembly) | 1125 | public void SaveState(string assembly) |
1125 | { | 1126 | { |
1126 | PluginData = | 1127 | PluginData = |
1127 | m_Engine.m_ASYNCLSLCommandManager.GetSerializationData( | 1128 | m_Engine.m_ASYNCLSLCommandManager.GetSerializationData( |
1128 | m_ItemID); | 1129 | m_ItemID); |
1129 | 1130 | ||
1130 | string xml=ScriptSerializer.Serialize(this); | 1131 | string xml = ScriptSerializer.Serialize(this); |
1131 | 1132 | ||
1132 | try | 1133 | try |
1133 | { | 1134 | { |
1134 | FileStream fs = File.Create(assembly+".state"); | 1135 | FileStream fs = File.Create(assembly + ".state"); |
1135 | System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); | 1136 | System.Text.ASCIIEncoding enc = new System.Text.ASCIIEncoding(); |
1136 | Byte[] buf=enc.GetBytes(xml); | 1137 | Byte[] buf = enc.GetBytes(xml); |
1137 | fs.Write(buf, 0, buf.Length); | 1138 | fs.Write(buf, 0, buf.Length); |
1138 | fs.Close(); | 1139 | fs.Close(); |
1139 | } | 1140 | } |
1140 | catch(Exception) | 1141 | catch(Exception) |
1141 | { | 1142 | { |
1142 | return; | ||
1143 | } | 1143 | } |
1144 | } | 1144 | } |
1145 | } | 1145 | } |
@@ -1153,11 +1153,11 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1153 | XmlDocument xmldoc = new XmlDocument(); | 1153 | XmlDocument xmldoc = new XmlDocument(); |
1154 | 1154 | ||
1155 | XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, | 1155 | XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, |
1156 | "", ""); | 1156 | "", ""); |
1157 | xmldoc.AppendChild(xmlnode); | 1157 | xmldoc.AppendChild(xmlnode); |
1158 | 1158 | ||
1159 | XmlElement rootElement = xmldoc.CreateElement("", "ScriptState", | 1159 | XmlElement rootElement = xmldoc.CreateElement("", "ScriptState", |
1160 | ""); | 1160 | ""); |
1161 | xmldoc.AppendChild(rootElement); | 1161 | xmldoc.AppendChild(rootElement); |
1162 | 1162 | ||
1163 | XmlElement state = xmldoc.CreateElement("", "State", ""); | 1163 | XmlElement state = xmldoc.CreateElement("", "State", ""); |
@@ -1171,15 +1171,15 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1171 | 1171 | ||
1172 | foreach (KeyValuePair<string, Object> var in vars) | 1172 | foreach (KeyValuePair<string, Object> var in vars) |
1173 | WriteTypedValue(xmldoc, variables, "Variable", var.Key, | 1173 | WriteTypedValue(xmldoc, variables, "Variable", var.Key, |
1174 | var.Value); | 1174 | var.Value); |
1175 | 1175 | ||
1176 | rootElement.AppendChild(variables); | 1176 | rootElement.AppendChild(variables); |
1177 | 1177 | ||
1178 | XmlElement queue = xmldoc.CreateElement("", "Queue", ""); | 1178 | XmlElement queue = xmldoc.CreateElement("", "Queue", ""); |
1179 | 1179 | ||
1180 | int count = instance.EventQueue.Count; | 1180 | int count = instance.EventQueue.Count; |
1181 | 1181 | ||
1182 | while(count > 0) | 1182 | while (count > 0) |
1183 | { | 1183 | { |
1184 | XEventParams ep = (XEventParams)instance.EventQueue.Dequeue(); | 1184 | XEventParams ep = (XEventParams)instance.EventQueue.Dequeue(); |
1185 | instance.EventQueue.Enqueue(ep); | 1185 | instance.EventQueue.Enqueue(ep); |
@@ -1187,8 +1187,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1187 | 1187 | ||
1188 | XmlElement item = xmldoc.CreateElement("", "Item", ""); | 1188 | XmlElement item = xmldoc.CreateElement("", "Item", ""); |
1189 | XmlAttribute itemEvent = xmldoc.CreateAttribute("", "event", | 1189 | XmlAttribute itemEvent = xmldoc.CreateAttribute("", "event", |
1190 | ""); | 1190 | ""); |
1191 | itemEvent.Value=ep.EventName; | 1191 | itemEvent.Value = ep.EventName; |
1192 | item.Attributes.Append(itemEvent); | 1192 | item.Attributes.Append(itemEvent); |
1193 | 1193 | ||
1194 | XmlElement parms = xmldoc.CreateElement("", "Params", ""); | 1194 | XmlElement parms = xmldoc.CreateElement("", "Params", ""); |
@@ -1203,12 +1203,12 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1203 | foreach (XDetectParams det in ep.DetectParams) | 1203 | foreach (XDetectParams det in ep.DetectParams) |
1204 | { | 1204 | { |
1205 | XmlElement objectElem = xmldoc.CreateElement("", "Object", | 1205 | XmlElement objectElem = xmldoc.CreateElement("", "Object", |
1206 | ""); | 1206 | ""); |
1207 | XmlAttribute pos = xmldoc.CreateAttribute("", "pos", ""); | 1207 | XmlAttribute pos = xmldoc.CreateAttribute("", "pos", ""); |
1208 | pos.Value=det.OffsetPos.ToString(); | 1208 | pos.Value = det.OffsetPos.ToString(); |
1209 | objectElem.Attributes.Append(pos); | 1209 | objectElem.Attributes.Append(pos); |
1210 | objectElem.AppendChild( | 1210 | objectElem.AppendChild( |
1211 | xmldoc.CreateTextNode(det.Key.ToString())); | 1211 | xmldoc.CreateTextNode(det.Key.ToString())); |
1212 | 1212 | ||
1213 | detect.AppendChild(objectElem); | 1213 | detect.AppendChild(objectElem); |
1214 | } | 1214 | } |
@@ -1221,9 +1221,9 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1221 | rootElement.AppendChild(queue); | 1221 | rootElement.AppendChild(queue); |
1222 | 1222 | ||
1223 | XmlNode plugins = xmldoc.CreateElement("", "Plugins", ""); | 1223 | XmlNode plugins = xmldoc.CreateElement("", "Plugins", ""); |
1224 | if(instance.PluginData.Length > 0) | 1224 | if (instance.PluginData.Length > 0) |
1225 | DumpList(xmldoc, plugins, | 1225 | DumpList(xmldoc, plugins, |
1226 | new LSL_Types.list(instance.PluginData)); | 1226 | new LSL_Types.list(instance.PluginData)); |
1227 | 1227 | ||
1228 | rootElement.AppendChild(plugins); | 1228 | rootElement.AppendChild(plugins); |
1229 | 1229 | ||
@@ -1241,22 +1241,22 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1241 | instance.PluginData = new Object[0]; | 1241 | instance.PluginData = new Object[0]; |
1242 | 1242 | ||
1243 | doc.LoadXml(xml); | 1243 | doc.LoadXml(xml); |
1244 | 1244 | ||
1245 | XmlNodeList rootL = doc.GetElementsByTagName("ScriptState"); | 1245 | XmlNodeList rootL = doc.GetElementsByTagName("ScriptState"); |
1246 | if(rootL.Count != 1) | 1246 | if (rootL.Count != 1) |
1247 | { | 1247 | { |
1248 | return; | 1248 | return; |
1249 | } | 1249 | } |
1250 | XmlNode rootNode = rootL[0]; | 1250 | XmlNode rootNode = rootL[0]; |
1251 | 1251 | ||
1252 | if(rootNode != null) | 1252 | if (rootNode != null) |
1253 | { | 1253 | { |
1254 | object varValue; | 1254 | object varValue; |
1255 | XmlNodeList partL = rootNode.ChildNodes; | 1255 | XmlNodeList partL = rootNode.ChildNodes; |
1256 | 1256 | ||
1257 | foreach (XmlNode part in partL) | 1257 | foreach (XmlNode part in partL) |
1258 | { | 1258 | { |
1259 | switch(part.Name) | 1259 | switch (part.Name) |
1260 | { | 1260 | { |
1261 | case "State": | 1261 | case "State": |
1262 | instance.State=part.InnerText; | 1262 | instance.State=part.InnerText; |
@@ -1268,7 +1268,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1268 | string varName; | 1268 | string varName; |
1269 | varValue=ReadTypedValue(var, out varName); | 1269 | varValue=ReadTypedValue(var, out varName); |
1270 | 1270 | ||
1271 | if(vars.ContainsKey(varName)) | 1271 | if (vars.ContainsKey(varName)) |
1272 | vars[varName] = varValue; | 1272 | vars[varName] = varValue; |
1273 | } | 1273 | } |
1274 | instance.SetVars(vars); | 1274 | instance.SetVars(vars); |
@@ -1286,7 +1286,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1286 | XmlNodeList eventL = item.ChildNodes; | 1286 | XmlNodeList eventL = item.ChildNodes; |
1287 | foreach (XmlNode evt in eventL) | 1287 | foreach (XmlNode evt in eventL) |
1288 | { | 1288 | { |
1289 | switch(evt.Name) | 1289 | switch (evt.Name) |
1290 | { | 1290 | { |
1291 | case "Params": | 1291 | case "Params": |
1292 | XmlNodeList prms = evt.ChildNodes; | 1292 | XmlNodeList prms = evt.ChildNodes; |
@@ -1342,7 +1342,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1342 | List<Object> olist = new List<Object>(); | 1342 | List<Object> olist = new List<Object>(); |
1343 | 1343 | ||
1344 | XmlNodeList itemL = parent.ChildNodes; | 1344 | XmlNodeList itemL = parent.ChildNodes; |
1345 | foreach(XmlNode item in itemL) | 1345 | foreach (XmlNode item in itemL) |
1346 | olist.Add(ReadTypedValue(item)); | 1346 | olist.Add(ReadTypedValue(item)); |
1347 | 1347 | ||
1348 | return new LSL_Types.list(olist.ToArray()); | 1348 | return new LSL_Types.list(olist.ToArray()); |
@@ -1355,14 +1355,14 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1355 | XmlAttribute typ = doc.CreateAttribute("", "type", ""); | 1355 | XmlAttribute typ = doc.CreateAttribute("", "type", ""); |
1356 | XmlNode n = doc.CreateElement("", tag, ""); | 1356 | XmlNode n = doc.CreateElement("", tag, ""); |
1357 | 1357 | ||
1358 | if(value is LSL_Types.list) | 1358 | if (value is LSL_Types.list) |
1359 | { | 1359 | { |
1360 | typ.Value = "list"; | 1360 | typ.Value = "list"; |
1361 | n.Attributes.Append(typ); | 1361 | n.Attributes.Append(typ); |
1362 | 1362 | ||
1363 | DumpList(doc, n, (LSL_Types.list) value); | 1363 | DumpList(doc, n, (LSL_Types.list) value); |
1364 | 1364 | ||
1365 | if(name != String.Empty) | 1365 | if (name != String.Empty) |
1366 | { | 1366 | { |
1367 | XmlAttribute nam = doc.CreateAttribute("", "name", ""); | 1367 | XmlAttribute nam = doc.CreateAttribute("", "name", ""); |
1368 | nam.Value = name; | 1368 | nam.Value = name; |
@@ -1377,7 +1377,7 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1377 | 1377 | ||
1378 | typ.Value = t.ToString(); | 1378 | typ.Value = t.ToString(); |
1379 | n.Attributes.Append(typ); | 1379 | n.Attributes.Append(typ); |
1380 | if(name != String.Empty) | 1380 | if (name != String.Empty) |
1381 | { | 1381 | { |
1382 | XmlAttribute nam = doc.CreateAttribute("", "name", ""); | 1382 | XmlAttribute nam = doc.CreateAttribute("", "name", ""); |
1383 | nam.Value = name; | 1383 | nam.Value = name; |
@@ -1401,31 +1401,31 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
1401 | 1401 | ||
1402 | string itemType = tag.Attributes.GetNamedItem("type").Value; | 1402 | string itemType = tag.Attributes.GetNamedItem("type").Value; |
1403 | 1403 | ||
1404 | if(itemType == "list") | 1404 | if (itemType == "list") |
1405 | return ReadList(tag); | 1405 | return ReadList(tag); |
1406 | 1406 | ||
1407 | if(itemType == "libsecondlife.LLUUID") | 1407 | if (itemType == "libsecondlife.LLUUID") |
1408 | { | 1408 | { |
1409 | LLUUID val = new LLUUID(); | 1409 | LLUUID val = new LLUUID(); |
1410 | LLUUID.TryParse(tag.InnerText, out val); | 1410 | LLUUID.TryParse(tag.InnerText, out val); |
1411 | 1411 | ||
1412 | return val; | 1412 | return val; |
1413 | } | 1413 | } |
1414 | 1414 | ||
1415 | Type itemT = Type.GetType(itemType); | 1415 | Type itemT = Type.GetType(itemType); |
1416 | if(itemT == null) | 1416 | if (itemT == null) |
1417 | { | 1417 | { |
1418 | Object[] args = | 1418 | Object[] args = |
1419 | new Object[] { tag.InnerText }; | 1419 | new Object[] { tag.InnerText }; |
1420 | 1420 | ||
1421 | assembly = itemType+", OpenSim.Region.ScriptEngine.XEngine.Script"; | 1421 | assembly = itemType+", OpenSim.Region.ScriptEngine.XEngine.Script"; |
1422 | itemT = Type.GetType(assembly); | 1422 | itemT = Type.GetType(assembly); |
1423 | if(itemT == null) | 1423 | if (itemT == null) |
1424 | return null; | 1424 | return null; |
1425 | 1425 | ||
1426 | varValue = Activator.CreateInstance(itemT, args); | 1426 | varValue = Activator.CreateInstance(itemT, args); |
1427 | 1427 | ||
1428 | if(varValue == null) | 1428 | if (varValue == null) |
1429 | return null; | 1429 | return null; |
1430 | } | 1430 | } |
1431 | else | 1431 | else |