diff options
author | lbsa71 | 2007-12-27 21:41:48 +0000 |
---|---|---|
committer | lbsa71 | 2007-12-27 21:41:48 +0000 |
commit | efd90b56b761219af6425b1c7a2cdd3b6ffb4de2 (patch) | |
tree | bf5b897e1e3c13211e3e2fc61d30508b94c928c0 /OpenSim | |
parent | * removed always true if (diff) | |
download | opensim-SC-efd90b56b761219af6425b1c7a2cdd3b6ffb4de2.zip opensim-SC-efd90b56b761219af6425b1c7a2cdd3b6ffb4de2.tar.gz opensim-SC-efd90b56b761219af6425b1c7a2cdd3b6ffb4de2.tar.bz2 opensim-SC-efd90b56b761219af6425b1c7a2cdd3b6ffb4de2.tar.xz |
* Optimized usings
* shortened references
* Removed redundant 'this'
* Normalized EOF
Diffstat (limited to 'OpenSim')
277 files changed, 4704 insertions, 4427 deletions
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs index 3c27108..b897c60 100644 --- a/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs +++ b/OpenSim/ApplicationPlugins/LoadRegions/LoadRegionsPlugin.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -26,21 +26,14 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using Mono.Addins; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using OpenSim; | ||
33 | using OpenSim.Framework.Console; | ||
34 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
31 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Framework.RegionLoader.Filesystem; | 32 | using OpenSim.Framework.RegionLoader.Filesystem; |
36 | using OpenSim.Framework.RegionLoader.Web; | 33 | using OpenSim.Framework.RegionLoader.Web; |
37 | using Mono.Addins; | ||
38 | using Mono.Addins.Description; | ||
39 | using Nini; | ||
40 | using Nini.Config; | ||
41 | 34 | ||
42 | [assembly:Addin] | 35 | [assembly : Addin] |
43 | [assembly:AddinDependency ("OpenSim", "0.4")] | 36 | [assembly : AddinDependency("OpenSim", "0.4")] |
44 | 37 | ||
45 | namespace OpenSim.ApplicationPlugins.LoadRegions | 38 | namespace OpenSim.ApplicationPlugins.LoadRegions |
46 | { | 39 | { |
@@ -65,7 +58,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
65 | 58 | ||
66 | regionLoader.SetIniConfigSource(openSim.ConfigSource); | 59 | regionLoader.SetIniConfigSource(openSim.ConfigSource); |
67 | RegionInfo[] regionsToLoad = regionLoader.LoadRegions(); | 60 | RegionInfo[] regionsToLoad = regionLoader.LoadRegions(); |
68 | 61 | ||
69 | openSim.ModuleLoader.LoadDefaultSharedModules(); | 62 | openSim.ModuleLoader.LoadDefaultSharedModules(); |
70 | 63 | ||
71 | for (int i = 0; i < regionsToLoad.Length; i++) | 64 | for (int i = 0; i < regionsToLoad.Length; i++) |
@@ -77,6 +70,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
77 | openSim.ModuleLoader.PostInitialise(); | 70 | openSim.ModuleLoader.PostInitialise(); |
78 | openSim.ModuleLoader.ClearCache(); | 71 | openSim.ModuleLoader.ClearCache(); |
79 | } | 72 | } |
73 | |||
80 | public void LoadRegionFromConfig(OpenSimMain openSim, ulong regionhandle) | 74 | public void LoadRegionFromConfig(OpenSimMain openSim, ulong regionhandle) |
81 | { | 75 | { |
82 | MainLog.Instance.Notice("LOADREGIONS", "Load Regions addin being initialised"); | 76 | MainLog.Instance.Notice("LOADREGIONS", "Load Regions addin being initialised"); |
@@ -103,11 +97,10 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
103 | openSim.CreateRegion(regionsToLoad[i]); | 97 | openSim.CreateRegion(regionsToLoad[i]); |
104 | } | 98 | } |
105 | } | 99 | } |
106 | |||
107 | } | 100 | } |
101 | |||
108 | public void Close() | 102 | public void Close() |
109 | { | 103 | { |
110 | |||
111 | } | 104 | } |
112 | } | 105 | } |
113 | } \ No newline at end of file | 106 | } \ No newline at end of file |
diff --git a/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs b/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs index 0b5f4bd..ffb3e48 100644 --- a/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs +++ b/OpenSim/ApplicationPlugins/LoadRegions/Properties/AssemblyInfo.cs | |||
@@ -1,26 +1,28 @@ | |||
1 | using System.Reflection; | 1 | using System.Reflection; |
2 | using System.Runtime.CompilerServices; | ||
3 | using System.Runtime.InteropServices; | 2 | using System.Runtime.InteropServices; |
4 | 3 | ||
5 | // General Information about an assembly is controlled through the following | 4 | // General Information about an assembly is controlled through the following |
6 | // set of attributes. Change these attribute values to modify the information | 5 | // set of attributes. Change these attribute values to modify the information |
7 | // associated with an assembly. | 6 | // associated with an assembly. |
8 | [assembly: AssemblyTitle("OpenSim.Addin")] | 7 | |
9 | [assembly: AssemblyDescription("")] | 8 | [assembly : AssemblyTitle("OpenSim.Addin")] |
10 | [assembly: AssemblyConfiguration("")] | 9 | [assembly : AssemblyDescription("")] |
11 | [assembly: AssemblyCompany("")] | 10 | [assembly : AssemblyConfiguration("")] |
12 | [assembly: AssemblyProduct("OpenSim.Addin")] | 11 | [assembly : AssemblyCompany("")] |
13 | [assembly: AssemblyCopyright("Copyright © 2007")] | 12 | [assembly : AssemblyProduct("OpenSim.Addin")] |
14 | [assembly: AssemblyTrademark("")] | 13 | [assembly : AssemblyCopyright("Copyright © 2007")] |
15 | [assembly: AssemblyCulture("")] | 14 | [assembly : AssemblyTrademark("")] |
15 | [assembly : AssemblyCulture("")] | ||
16 | 16 | ||
17 | // Setting ComVisible to false makes the types in this assembly not visible | 17 | // Setting ComVisible to false makes the types in this assembly not visible |
18 | // to COM components. If you need to access a type in this assembly from | 18 | // to COM components. If you need to access a type in this assembly from |
19 | // COM, set the ComVisible attribute to true on that type. | 19 | // COM, set the ComVisible attribute to true on that type. |
20 | [assembly: ComVisible(false)] | 20 | |
21 | [assembly : ComVisible(false)] | ||
21 | 22 | ||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | 23 | // The following GUID is for the ID of the typelib if this project is exposed to COM |
23 | [assembly: Guid("45b979d9-d8d4-42fd-9780-fe9ac7e86cb4")] | 24 | |
25 | [assembly : Guid("45b979d9-d8d4-42fd-9780-fe9ac7e86cb4")] | ||
24 | 26 | ||
25 | // Version information for an assembly consists of the following four values: | 27 | // Version information for an assembly consists of the following four values: |
26 | // | 28 | // |
@@ -32,5 +34,6 @@ using System.Runtime.InteropServices; | |||
32 | // You can specify all the values or you can default the Build and Revision Numbers | 34 | // You can specify all the values or you can default the Build and Revision Numbers |
33 | // by using the '*' as shown below: | 35 | // by using the '*' as shown below: |
34 | // [assembly: AssemblyVersion("1.0.*")] | 36 | // [assembly: AssemblyVersion("1.0.*")] |
35 | [assembly: AssemblyVersion("1.0.0.0")] | 37 | |
36 | [assembly: AssemblyFileVersion("1.0.0.0")] | 38 | [assembly : AssemblyVersion("1.0.0.0")] |
39 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file | ||
diff --git a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs index 9ae1a7b..b57d3e6 100644 --- a/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs +++ b/OpenSim/ApplicationPlugins/RemoteController/RemoteAdminPlugin.cs | |||
@@ -27,24 +27,19 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using System.Net; | ||
33 | using OpenSim; | ||
34 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Framework; | ||
36 | using OpenSim.Framework.Servers; | ||
37 | using Mono.Addins; | ||
38 | using Mono.Addins.Description; | ||
39 | using Nini; | ||
40 | using Nini.Config; | ||
41 | using Nwc.XmlRpc; | ||
42 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Net; | ||
43 | using System.Timers; | 32 | using System.Timers; |
44 | using libsecondlife; | 33 | using libsecondlife; |
34 | using Mono.Addins; | ||
35 | using Nwc.XmlRpc; | ||
36 | using OpenSim.Framework; | ||
37 | using OpenSim.Framework.Console; | ||
38 | using OpenSim.Framework.Servers; | ||
39 | using OpenSim.Region.Environment.Scenes; | ||
45 | 40 | ||
46 | [assembly: Addin] | 41 | [assembly : Addin] |
47 | [assembly: AddinDependency("OpenSim", "0.4")] | 42 | [assembly : AddinDependency("OpenSim", "0.4")] |
48 | 43 | ||
49 | namespace OpenSim.ApplicationPlugins.LoadRegions | 44 | namespace OpenSim.ApplicationPlugins.LoadRegions |
50 | { | 45 | { |
@@ -54,6 +49,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
54 | private OpenSimMain m_app; | 49 | private OpenSimMain m_app; |
55 | private BaseHttpServer m_httpd; | 50 | private BaseHttpServer m_httpd; |
56 | private string requiredPassword = ""; | 51 | private string requiredPassword = ""; |
52 | |||
57 | public void Initialise(OpenSimMain openSim) | 53 | public void Initialise(OpenSimMain openSim) |
58 | { | 54 | { |
59 | try | 55 | try |
@@ -81,12 +77,13 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
81 | public XmlRpcResponse XmlRpcRestartMethod(XmlRpcRequest request) | 77 | public XmlRpcResponse XmlRpcRestartMethod(XmlRpcRequest request) |
82 | { | 78 | { |
83 | XmlRpcResponse response = new XmlRpcResponse(); | 79 | XmlRpcResponse response = new XmlRpcResponse(); |
84 | Hashtable requestData = (Hashtable)request.Params[0]; | 80 | Hashtable requestData = (Hashtable) request.Params[0]; |
85 | 81 | ||
86 | LLUUID regionID = new LLUUID((string)requestData["regionID"]); | 82 | LLUUID regionID = new LLUUID((string) requestData["regionID"]); |
87 | 83 | ||
88 | Hashtable responseData = new Hashtable(); | 84 | Hashtable responseData = new Hashtable(); |
89 | if (requiredPassword != "" && (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) | 85 | if (requiredPassword != "" && |
86 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | ||
90 | { | 87 | { |
91 | responseData["accepted"] = "false"; | 88 | responseData["accepted"] = "false"; |
92 | response.Value = responseData; | 89 | response.Value = responseData; |
@@ -96,7 +93,7 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
96 | responseData["accepted"] = "true"; | 93 | responseData["accepted"] = "true"; |
97 | response.Value = responseData; | 94 | response.Value = responseData; |
98 | 95 | ||
99 | OpenSim.Region.Environment.Scenes.Scene RebootedScene; | 96 | Scene RebootedScene; |
100 | 97 | ||
101 | if (m_app.SceneManager.TryGetScene(regionID, out RebootedScene)) | 98 | if (m_app.SceneManager.TryGetScene(regionID, out RebootedScene)) |
102 | { | 99 | { |
@@ -115,18 +112,18 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
115 | public XmlRpcResponse XmlRpcAlertMethod(XmlRpcRequest request) | 112 | public XmlRpcResponse XmlRpcAlertMethod(XmlRpcRequest request) |
116 | { | 113 | { |
117 | XmlRpcResponse response = new XmlRpcResponse(); | 114 | XmlRpcResponse response = new XmlRpcResponse(); |
118 | Hashtable requestData = (Hashtable)request.Params[0]; | 115 | Hashtable requestData = (Hashtable) request.Params[0]; |
119 | 116 | ||
120 | Hashtable responseData = new Hashtable(); | 117 | Hashtable responseData = new Hashtable(); |
121 | if (requiredPassword != "" && (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) | 118 | if (requiredPassword != "" && |
119 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | ||
122 | { | 120 | { |
123 | responseData["accepted"] = "false"; | 121 | responseData["accepted"] = "false"; |
124 | response.Value = responseData; | 122 | response.Value = responseData; |
125 | } | 123 | } |
126 | else | 124 | else |
127 | { | 125 | { |
128 | 126 | string message = (string) requestData["message"]; | |
129 | string message = (string)requestData["message"]; | ||
130 | MainLog.Instance.Verbose("RADMIN", "Broadcasting: " + message); | 127 | MainLog.Instance.Verbose("RADMIN", "Broadcasting: " + message); |
131 | 128 | ||
132 | responseData["accepted"] = "true"; | 129 | responseData["accepted"] = "true"; |
@@ -142,23 +139,24 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
142 | { | 139 | { |
143 | MainLog.Instance.Verbose("RADMIN", "Received Shutdown Administrator Request"); | 140 | MainLog.Instance.Verbose("RADMIN", "Received Shutdown Administrator Request"); |
144 | XmlRpcResponse response = new XmlRpcResponse(); | 141 | XmlRpcResponse response = new XmlRpcResponse(); |
145 | Hashtable requestData = (Hashtable)request.Params[0]; | 142 | Hashtable requestData = (Hashtable) request.Params[0]; |
146 | Hashtable responseData = new Hashtable(); | 143 | Hashtable responseData = new Hashtable(); |
147 | if (requiredPassword != "" && (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) | 144 | if (requiredPassword != "" && |
145 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | ||
148 | { | 146 | { |
149 | responseData["accepted"] = "false"; | 147 | responseData["accepted"] = "false"; |
150 | response.Value = responseData; | 148 | response.Value = responseData; |
151 | } | 149 | } |
152 | else | 150 | else |
153 | { | 151 | { |
154 | if ((string)requestData["shutdown"] == "delayed") | 152 | if ((string) requestData["shutdown"] == "delayed") |
155 | { | 153 | { |
156 | int timeout = (Int32)requestData["milliseconds"]; | 154 | int timeout = (Int32) requestData["milliseconds"]; |
157 | 155 | ||
158 | responseData["accepted"] = "true"; | 156 | responseData["accepted"] = "true"; |
159 | response.Value = responseData; | 157 | response.Value = responseData; |
160 | 158 | ||
161 | m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int)(timeout / 1000)).ToString() + | 159 | m_app.SceneManager.SendGeneralMessage("Region is going down in " + ((int) (timeout/1000)).ToString() + |
162 | " second(s). Please save what you are doing and log out."); | 160 | " second(s). Please save what you are doing and log out."); |
163 | 161 | ||
164 | // Perform shutdown | 162 | // Perform shutdown |
@@ -197,9 +195,10 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
197 | { | 195 | { |
198 | MainLog.Instance.Verbose("RADMIN", "Received Create Region Administrator Request"); | 196 | MainLog.Instance.Verbose("RADMIN", "Received Create Region Administrator Request"); |
199 | XmlRpcResponse response = new XmlRpcResponse(); | 197 | XmlRpcResponse response = new XmlRpcResponse(); |
200 | Hashtable requestData = (Hashtable)request.Params[0]; | 198 | Hashtable requestData = (Hashtable) request.Params[0]; |
201 | Hashtable responseData = new Hashtable(); | 199 | Hashtable responseData = new Hashtable(); |
202 | if (requiredPassword != "" && (!requestData.Contains("password") || (string)requestData["password"] != requiredPassword)) | 200 | if (requiredPassword != "" && |
201 | (!requestData.Contains("password") || (string) requestData["password"] != requiredPassword)) | ||
203 | { | 202 | { |
204 | responseData["created"] = "false"; | 203 | responseData["created"] = "false"; |
205 | response.Value = responseData; | 204 | response.Value = responseData; |
@@ -210,22 +209,22 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
210 | 209 | ||
211 | try | 210 | try |
212 | { | 211 | { |
213 | newRegionData.RegionID = (string)requestData["region_id"]; | 212 | newRegionData.RegionID = (string) requestData["region_id"]; |
214 | newRegionData.RegionName = (string)requestData["region_name"]; | 213 | newRegionData.RegionName = (string) requestData["region_name"]; |
215 | newRegionData.RegionLocX = Convert.ToUInt32((Int32)requestData["region_x"]); | 214 | newRegionData.RegionLocX = Convert.ToUInt32((Int32) requestData["region_x"]); |
216 | newRegionData.RegionLocY = Convert.ToUInt32((Int32)requestData["region_y"]); | 215 | newRegionData.RegionLocY = Convert.ToUInt32((Int32) requestData["region_y"]); |
217 | 216 | ||
218 | // Security risk | 217 | // Security risk |
219 | newRegionData.DataStore = (string)requestData["datastore"]; | 218 | newRegionData.DataStore = (string) requestData["datastore"]; |
220 | 219 | ||
221 | newRegionData.InternalEndPoint = new IPEndPoint( | 220 | newRegionData.InternalEndPoint = new IPEndPoint( |
222 | IPAddress.Parse((string)requestData["listen_ip"]), 0); | 221 | IPAddress.Parse((string) requestData["listen_ip"]), 0); |
223 | 222 | ||
224 | newRegionData.InternalEndPoint.Port = (Int32)requestData["listen_port"]; | 223 | newRegionData.InternalEndPoint.Port = (Int32) requestData["listen_port"]; |
225 | newRegionData.ExternalHostName = (string)requestData["external_address"]; | 224 | newRegionData.ExternalHostName = (string) requestData["external_address"]; |
226 | 225 | ||
227 | newRegionData.MasterAvatarFirstName = (string)requestData["region_master_first"]; | 226 | newRegionData.MasterAvatarFirstName = (string) requestData["region_master_first"]; |
228 | newRegionData.MasterAvatarLastName = (string)requestData["region_master_last"]; | 227 | newRegionData.MasterAvatarLastName = (string) requestData["region_master_last"]; |
229 | 228 | ||
230 | m_app.CreateRegion(newRegionData); | 229 | m_app.CreateRegion(newRegionData); |
231 | 230 | ||
@@ -245,7 +244,6 @@ namespace OpenSim.ApplicationPlugins.LoadRegions | |||
245 | 244 | ||
246 | public void Close() | 245 | public void Close() |
247 | { | 246 | { |
248 | |||
249 | } | 247 | } |
250 | } | 248 | } |
251 | } \ No newline at end of file | 249 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AgentCircuitData.cs b/OpenSim/Framework/AgentCircuitData.cs index 0617a76..65a072f 100644 --- a/OpenSim/Framework/AgentCircuitData.cs +++ b/OpenSim/Framework/AgentCircuitData.cs | |||
@@ -35,12 +35,13 @@ namespace OpenSim.Framework | |||
35 | public AgentCircuitData() | 35 | public AgentCircuitData() |
36 | { | 36 | { |
37 | } | 37 | } |
38 | |||
38 | public AgentCircuitData(sAgentCircuitData cAgent) | 39 | public AgentCircuitData(sAgentCircuitData cAgent) |
39 | { | 40 | { |
40 | AgentID = new LLUUID(cAgent.AgentID); | 41 | AgentID = new LLUUID(cAgent.AgentID); |
41 | SessionID = new LLUUID(cAgent.SessionID); | 42 | SessionID = new LLUUID(cAgent.SessionID); |
42 | SecureSessionID = new LLUUID(cAgent.SecureSessionID); | 43 | SecureSessionID = new LLUUID(cAgent.SecureSessionID); |
43 | startpos = new LLVector3(cAgent.startposx,cAgent.startposy,cAgent.startposz); | 44 | startpos = new LLVector3(cAgent.startposx, cAgent.startposy, cAgent.startposz); |
44 | firstname = cAgent.firstname; | 45 | firstname = cAgent.firstname; |
45 | lastname = cAgent.lastname; | 46 | lastname = cAgent.lastname; |
46 | circuitcode = cAgent.circuitcode; | 47 | circuitcode = cAgent.circuitcode; |
@@ -69,6 +70,7 @@ namespace OpenSim.Framework | |||
69 | public sAgentCircuitData() | 70 | public sAgentCircuitData() |
70 | { | 71 | { |
71 | } | 72 | } |
73 | |||
72 | public sAgentCircuitData(AgentCircuitData cAgent) | 74 | public sAgentCircuitData(AgentCircuitData cAgent) |
73 | { | 75 | { |
74 | AgentID = cAgent.AgentID.UUID; | 76 | AgentID = cAgent.AgentID.UUID; |
@@ -85,6 +87,7 @@ namespace OpenSim.Framework | |||
85 | BaseFolder = cAgent.BaseFolder.UUID; | 87 | BaseFolder = cAgent.BaseFolder.UUID; |
86 | CapsPath = cAgent.CapsPath; | 88 | CapsPath = cAgent.CapsPath; |
87 | } | 89 | } |
90 | |||
88 | public Guid AgentID; | 91 | public Guid AgentID; |
89 | public Guid SessionID; | 92 | public Guid SessionID; |
90 | public Guid SecureSessionID; | 93 | public Guid SecureSessionID; |
@@ -98,8 +101,5 @@ namespace OpenSim.Framework | |||
98 | public Guid InventoryFolder; | 101 | public Guid InventoryFolder; |
99 | public Guid BaseFolder; | 102 | public Guid BaseFolder; |
100 | public string CapsPath = ""; | 103 | public string CapsPath = ""; |
101 | |||
102 | |||
103 | |||
104 | } | 104 | } |
105 | } | 105 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AgentCircuitManager.cs b/OpenSim/Framework/AgentCircuitManager.cs index 2803a4a..938dce8 100644 --- a/OpenSim/Framework/AgentCircuitManager.cs +++ b/OpenSim/Framework/AgentCircuitManager.cs | |||
@@ -124,4 +124,4 @@ namespace OpenSim.Framework | |||
124 | return false; | 124 | return false; |
125 | } | 125 | } |
126 | } | 126 | } |
127 | } | 127 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AgentInventory.cs b/OpenSim/Framework/AgentInventory.cs index 541bc27..84a782b 100644 --- a/OpenSim/Framework/AgentInventory.cs +++ b/OpenSim/Framework/AgentInventory.cs | |||
@@ -255,4 +255,4 @@ namespace OpenSim.Framework | |||
255 | return result; | 255 | return result; |
256 | } | 256 | } |
257 | } | 257 | } |
258 | } | 258 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AssetBase.cs b/OpenSim/Framework/AssetBase.cs index 5775f06..2bef61b 100644 --- a/OpenSim/Framework/AssetBase.cs +++ b/OpenSim/Framework/AssetBase.cs | |||
@@ -52,4 +52,4 @@ namespace OpenSim.Framework | |||
52 | Name = name; | 52 | Name = name; |
53 | } | 53 | } |
54 | } | 54 | } |
55 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AssetLandmark.cs b/OpenSim/Framework/AssetLandmark.cs index d83b43b..050b80f 100644 --- a/OpenSim/Framework/AssetLandmark.cs +++ b/OpenSim/Framework/AssetLandmark.cs | |||
@@ -56,4 +56,4 @@ namespace OpenSim.Framework | |||
56 | LLVector3.TryParse(parts[2].Substring(11, parts[2].Length - 11), out Position); | 56 | LLVector3.TryParse(parts[2].Substring(11, parts[2].Length - 11), out Position); |
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AssetStorage.cs b/OpenSim/Framework/AssetStorage.cs index 9e0cf10..7d6cdf0 100644 --- a/OpenSim/Framework/AssetStorage.cs +++ b/OpenSim/Framework/AssetStorage.cs | |||
@@ -45,4 +45,4 @@ namespace OpenSim.Framework | |||
45 | public string Name; | 45 | public string Name; |
46 | public LLUUID UUID; | 46 | public LLUUID UUID; |
47 | } | 47 | } |
48 | } | 48 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AuthenticateResponse.cs b/OpenSim/Framework/AuthenticateResponse.cs index 7d4cd11..90c9acd 100644 --- a/OpenSim/Framework/AuthenticateResponse.cs +++ b/OpenSim/Framework/AuthenticateResponse.cs | |||
@@ -36,4 +36,4 @@ namespace OpenSim.Framework | |||
36 | { | 36 | { |
37 | } | 37 | } |
38 | } | 38 | } |
39 | } | 39 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/AvatarWearable.cs b/OpenSim/Framework/AvatarWearable.cs index d0c68de..c7083f3 100644 --- a/OpenSim/Framework/AvatarWearable.cs +++ b/OpenSim/Framework/AvatarWearable.cs | |||
@@ -68,4 +68,4 @@ namespace OpenSim.Framework | |||
68 | } | 68 | } |
69 | } | 69 | } |
70 | } | 70 | } |
71 | } | 71 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/BlockingQueue.cs b/OpenSim/Framework/BlockingQueue.cs index a3cae63..ae2a189 100644 --- a/OpenSim/Framework/BlockingQueue.cs +++ b/OpenSim/Framework/BlockingQueue.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Framework | |||
34 | { | 34 | { |
35 | private Queue<T> _queue = new Queue<T>(); | 35 | private Queue<T> _queue = new Queue<T>(); |
36 | private object _queueSync = new object(); | 36 | private object _queueSync = new object(); |
37 | 37 | ||
38 | public void Enqueue(T value) | 38 | public void Enqueue(T value) |
39 | { | 39 | { |
40 | lock (_queueSync) | 40 | lock (_queueSync) |
@@ -55,4 +55,4 @@ namespace OpenSim.Framework | |||
55 | } | 55 | } |
56 | } | 56 | } |
57 | } | 57 | } |
58 | } | 58 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/ChildAgentDataUpdate.cs b/OpenSim/Framework/ChildAgentDataUpdate.cs index fb9a48f..32ce4ab 100644 --- a/OpenSim/Framework/ChildAgentDataUpdate.cs +++ b/OpenSim/Framework/ChildAgentDataUpdate.cs | |||
@@ -27,8 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | 30 | ||
33 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
34 | { | 32 | { |
@@ -37,8 +35,8 @@ namespace OpenSim.Framework | |||
37 | { | 35 | { |
38 | public ChildAgentDataUpdate() | 36 | public ChildAgentDataUpdate() |
39 | { | 37 | { |
40 | |||
41 | } | 38 | } |
39 | |||
42 | public sLLVector3 Position; | 40 | public sLLVector3 Position; |
43 | public ulong regionHandle; | 41 | public ulong regionHandle; |
44 | public float drawdistance; | 42 | public float drawdistance; |
@@ -47,6 +45,6 @@ namespace OpenSim.Framework | |||
47 | public float AVHeight; | 45 | public float AVHeight; |
48 | public Guid AgentID; | 46 | public Guid AgentID; |
49 | public float godlevel; | 47 | public float godlevel; |
50 | public byte[] throttles; | 48 | public byte[] throttles; |
51 | } | 49 | } |
52 | } | 50 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/ClientManager.cs b/OpenSim/Framework/ClientManager.cs index e32c9eb..da60ed7 100644 --- a/OpenSim/Framework/ClientManager.cs +++ b/OpenSim/Framework/ClientManager.cs | |||
@@ -26,9 +26,11 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
29 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
30 | using libsecondlife; | 31 | using libsecondlife; |
31 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
33 | using OpenSim.Framework.Console; | ||
32 | 34 | ||
33 | namespace OpenSim.Framework | 35 | namespace OpenSim.Framework |
34 | { | 36 | { |
@@ -40,7 +42,6 @@ namespace OpenSim.Framework | |||
40 | 42 | ||
41 | public void ForEachClient(ForEachClientDelegate whatToDo) | 43 | public void ForEachClient(ForEachClientDelegate whatToDo) |
42 | { | 44 | { |
43 | |||
44 | // Wasteful, I know | 45 | // Wasteful, I know |
45 | IClientAPI[] LocalClients = new IClientAPI[0]; | 46 | IClientAPI[] LocalClients = new IClientAPI[0]; |
46 | lock (m_clients) | 47 | lock (m_clients) |
@@ -55,9 +56,11 @@ namespace OpenSim.Framework | |||
55 | { | 56 | { |
56 | whatToDo(LocalClients[i]); | 57 | whatToDo(LocalClients[i]); |
57 | } | 58 | } |
58 | catch (System.Exception e) | 59 | catch (Exception e) |
59 | { | 60 | { |
60 | OpenSim.Framework.Console.MainLog.Instance.Warn("CLIENT", "Unable to do ForEachClient for one of the clients" + "\n Reason: " + e.ToString()); | 61 | MainLog.Instance.Warn("CLIENT", |
62 | "Unable to do ForEachClient for one of the clients" + "\n Reason: " + | ||
63 | e.ToString()); | ||
61 | } | 64 | } |
62 | } | 65 | } |
63 | } | 66 | } |
@@ -107,20 +110,19 @@ namespace OpenSim.Framework | |||
107 | IClientAPI client; | 110 | IClientAPI client; |
108 | try | 111 | try |
109 | { | 112 | { |
110 | |||
111 | if (m_clients.TryGetValue(circuits[i], out client)) | 113 | if (m_clients.TryGetValue(circuits[i], out client)) |
112 | { | 114 | { |
113 | Remove(client.CircuitCode); | 115 | Remove(client.CircuitCode); |
114 | client.Close(false); | 116 | client.Close(false); |
115 | } | 117 | } |
116 | } | 118 | } |
117 | catch (System.Exception e) | 119 | catch (Exception e) |
118 | { | 120 | { |
119 | OpenSim.Framework.Console.MainLog.Instance.Error("CLIENT", "Unable to shutdown circuit for: " + agentId.ToString() + "\n Reason: " + e.ToString()); | 121 | MainLog.Instance.Error("CLIENT", |
122 | "Unable to shutdown circuit for: " + agentId.ToString() + "\n Reason: " + | ||
123 | e.ToString()); | ||
120 | } | 124 | } |
121 | } | 125 | } |
122 | |||
123 | |||
124 | } | 126 | } |
125 | 127 | ||
126 | private uint[] GetAllCircuits(LLUUID agentId) | 128 | private uint[] GetAllCircuits(LLUUID agentId) |
@@ -135,7 +137,7 @@ namespace OpenSim.Framework | |||
135 | } | 137 | } |
136 | 138 | ||
137 | 139 | ||
138 | for (int i = 0; i < LocalClients.Length; i++ ) | 140 | for (int i = 0; i < LocalClients.Length; i++) |
139 | { | 141 | { |
140 | if (LocalClients[i].AgentId == agentId) | 142 | if (LocalClients[i].AgentId == agentId) |
141 | { | 143 | { |
@@ -168,7 +170,6 @@ namespace OpenSim.Framework | |||
168 | packet.AgentData.SessionID = LocalClients[i].SessionId; | 170 | packet.AgentData.SessionID = LocalClients[i].SessionId; |
169 | LocalClients[i].OutPacket(packet, ThrottleOutPacketType.Task); | 171 | LocalClients[i].OutPacket(packet, ThrottleOutPacketType.Task); |
170 | } | 172 | } |
171 | |||
172 | } | 173 | } |
173 | } | 174 | } |
174 | 175 | ||
diff --git a/OpenSim/Framework/Communications/Cache/AssetCache.cs b/OpenSim/Framework/Communications/Cache/AssetCache.cs index 4765548..664625e 100644 --- a/OpenSim/Framework/Communications/Cache/AssetCache.cs +++ b/OpenSim/Framework/Communications/Cache/AssetCache.cs | |||
@@ -28,7 +28,6 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.IO; | ||
32 | using System.Threading; | 31 | using System.Threading; |
33 | using libsecondlife; | 32 | using libsecondlife; |
34 | using libsecondlife.Packets; | 33 | using libsecondlife.Packets; |
@@ -92,7 +91,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
92 | Thread.Sleep(500); | 91 | Thread.Sleep(500); |
93 | } | 92 | } |
94 | catch (Exception e) | 93 | catch (Exception e) |
95 | { | 94 | { |
96 | m_log.Error("ASSETCACHE", e.ToString()); | 95 | m_log.Error("ASSETCACHE", e.ToString()); |
97 | } | 96 | } |
98 | } | 97 | } |
@@ -177,30 +176,29 @@ namespace OpenSim.Framework.Communications.Cache | |||
177 | // packets from the client. | 176 | // packets from the client. |
178 | int pollPeriod = 200; | 177 | int pollPeriod = 200; |
179 | int maxPolls = 15; | 178 | int maxPolls = 15; |
180 | 179 | ||
181 | AssetBase asset = GetCachedAsset(assetID); | 180 | AssetBase asset = GetCachedAsset(assetID); |
182 | if (asset != null) | 181 | if (asset != null) |
183 | { | 182 | { |
184 | return asset; | 183 | return asset; |
185 | } | 184 | } |
186 | 185 | ||
187 | m_assetServer.RequestAsset(assetID, isTexture); | 186 | m_assetServer.RequestAsset(assetID, isTexture); |
188 | 187 | ||
189 | do | 188 | do |
190 | { | 189 | { |
191 | Thread.Sleep(pollPeriod); | 190 | Thread.Sleep(pollPeriod); |
192 | 191 | ||
193 | asset = GetCachedAsset(assetID); | 192 | asset = GetCachedAsset(assetID); |
194 | if (asset != null) | 193 | if (asset != null) |
195 | { | 194 | { |
196 | return asset; | 195 | return asset; |
197 | } | 196 | } |
198 | } | 197 | } while (--maxPolls > 0); |
199 | while (--maxPolls > 0); | 198 | |
200 | |||
201 | MainLog.Instance.Warn( | 199 | MainLog.Instance.Warn( |
202 | "ASSETCACHE", "Asset {0} was not received before the retrieval timeout was reached"); | 200 | "ASSETCACHE", "Asset {0} was not received before the retrieval timeout was reached"); |
203 | 201 | ||
204 | return null; | 202 | return null; |
205 | } | 203 | } |
206 | 204 | ||
@@ -368,12 +366,13 @@ namespace OpenSim.Framework.Communications.Cache | |||
368 | { | 366 | { |
369 | // over max number of bytes so split up file | 367 | // over max number of bytes so split up file |
370 | long restData = data.LongLength - m_maxPacketSize; | 368 | long restData = data.LongLength - m_maxPacketSize; |
371 | int restPackets = (int) ((restData + m_maxPacketSize - 1) / m_maxPacketSize); | 369 | int restPackets = (int) ((restData + m_maxPacketSize - 1)/m_maxPacketSize); |
372 | numPackets += restPackets; | 370 | numPackets += restPackets; |
373 | } | 371 | } |
374 | 372 | ||
375 | return numPackets; | 373 | return numPackets; |
376 | } | 374 | } |
375 | |||
377 | #region Assets | 376 | #region Assets |
378 | 377 | ||
379 | /// <summary> | 378 | /// <summary> |
@@ -448,7 +447,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
448 | AssetRequest req; | 447 | AssetRequest req; |
449 | for (int i = 0; i < num; i++) | 448 | for (int i = 0; i < num; i++) |
450 | { | 449 | { |
451 | req = (AssetRequest)AssetRequests[i]; | 450 | req = (AssetRequest) AssetRequests[i]; |
452 | //Console.WriteLine("sending asset " + req.RequestAssetID); | 451 | //Console.WriteLine("sending asset " + req.RequestAssetID); |
453 | TransferInfoPacket Transfer = new TransferInfoPacket(); | 452 | TransferInfoPacket Transfer = new TransferInfoPacket(); |
454 | Transfer.TransferInfo.ChannelType = 2; | 453 | Transfer.TransferInfo.ChannelType = 2; |
@@ -458,7 +457,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
458 | { | 457 | { |
459 | Transfer.TransferInfo.Params = new byte[20]; | 458 | Transfer.TransferInfo.Params = new byte[20]; |
460 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 459 | Array.Copy(req.RequestAssetID.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
461 | int assType = (int)req.AssetInf.Type; | 460 | int assType = (int) req.AssetInf.Type; |
462 | Array.Copy(Helpers.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); | 461 | Array.Copy(Helpers.IntToBytes(assType), 0, Transfer.TransferInfo.Params, 16, 4); |
463 | } | 462 | } |
464 | else if (req.AssetRequestSource == 3) | 463 | else if (req.AssetRequestSource == 3) |
@@ -468,7 +467,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
468 | //Array.Copy(req.RequestUser.AgentId.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); | 467 | //Array.Copy(req.RequestUser.AgentId.GetBytes(), 0, Transfer.TransferInfo.Params, 0, 16); |
469 | //Array.Copy(req.RequestUser.SessionId.GetBytes(), 0, Transfer.TransferInfo.Params, 16, 16); | 468 | //Array.Copy(req.RequestUser.SessionId.GetBytes(), 0, Transfer.TransferInfo.Params, 16, 16); |
470 | } | 469 | } |
471 | Transfer.TransferInfo.Size = (int)req.AssetInf.Data.Length; | 470 | Transfer.TransferInfo.Size = (int) req.AssetInf.Data.Length; |
472 | Transfer.TransferInfo.TransferID = req.TransferRequestID; | 471 | Transfer.TransferInfo.TransferID = req.TransferRequestID; |
473 | req.RequestUser.OutPacket(Transfer, ThrottleOutPacketType.Asset); | 472 | req.RequestUser.OutPacket(Transfer, ThrottleOutPacketType.Asset); |
474 | 473 | ||
@@ -488,20 +487,20 @@ namespace OpenSim.Framework.Communications.Cache | |||
488 | // libsecondlife hardcodes 1500 as the maximum data chunk size | 487 | // libsecondlife hardcodes 1500 as the maximum data chunk size |
489 | int maxChunkSize = 1500; | 488 | int maxChunkSize = 1500; |
490 | int packetNumber = 0; | 489 | int packetNumber = 0; |
491 | 490 | ||
492 | while (processedLength < req.AssetInf.Data.Length) | 491 | while (processedLength < req.AssetInf.Data.Length) |
493 | { | 492 | { |
494 | TransferPacketPacket TransferPacket = new TransferPacketPacket(); | 493 | TransferPacketPacket TransferPacket = new TransferPacketPacket(); |
495 | TransferPacket.TransferData.Packet = packetNumber; | 494 | TransferPacket.TransferData.Packet = packetNumber; |
496 | TransferPacket.TransferData.ChannelType = 2; | 495 | TransferPacket.TransferData.ChannelType = 2; |
497 | TransferPacket.TransferData.TransferID = req.TransferRequestID; | 496 | TransferPacket.TransferData.TransferID = req.TransferRequestID; |
498 | 497 | ||
499 | int chunkSize = Math.Min(req.AssetInf.Data.Length - processedLength, maxChunkSize); | 498 | int chunkSize = Math.Min(req.AssetInf.Data.Length - processedLength, maxChunkSize); |
500 | byte[] chunk = new byte[chunkSize]; | 499 | byte[] chunk = new byte[chunkSize]; |
501 | Array.Copy(req.AssetInf.Data, processedLength, chunk, 0, chunk.Length); | 500 | Array.Copy(req.AssetInf.Data, processedLength, chunk, 0, chunk.Length); |
502 | 501 | ||
503 | TransferPacket.TransferData.Data = chunk; | 502 | TransferPacket.TransferData.Data = chunk; |
504 | 503 | ||
505 | // 0 indicates more packets to come, 1 indicates last packet | 504 | // 0 indicates more packets to come, 1 indicates last packet |
506 | if (req.AssetInf.Data.Length - processedLength > maxChunkSize) | 505 | if (req.AssetInf.Data.Length - processedLength > maxChunkSize) |
507 | { | 506 | { |
@@ -510,10 +509,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
510 | else | 509 | else |
511 | { | 510 | { |
512 | TransferPacket.TransferData.Status = 1; | 511 | TransferPacket.TransferData.Status = 1; |
513 | } | 512 | } |
514 | 513 | ||
515 | req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset); | 514 | req.RequestUser.OutPacket(TransferPacket, ThrottleOutPacketType.Asset); |
516 | 515 | ||
517 | processedLength += chunkSize; | 516 | processedLength += chunkSize; |
518 | packetNumber++; | 517 | packetNumber++; |
519 | } | 518 | } |
@@ -609,4 +608,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
609 | } | 608 | } |
610 | } | 609 | } |
611 | } | 610 | } |
612 | } | 611 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServer.cs b/OpenSim/Framework/Communications/Cache/AssetServer.cs index ae6494f..692ee1e 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServer.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServer.cs | |||
@@ -80,7 +80,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
80 | IObjectSet result = db.Query(new AssetUUIDQuery(req.AssetID)); | 80 | IObjectSet result = db.Query(new AssetUUIDQuery(req.AssetID)); |
81 | if (result.Count > 0) | 81 | if (result.Count > 0) |
82 | { | 82 | { |
83 | foundAsset = (AssetStorage)result.Next(); | 83 | foundAsset = (AssetStorage) result.Next(); |
84 | found = true; | 84 | found = true; |
85 | } | 85 | } |
86 | 86 | ||
@@ -93,7 +93,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
93 | asset.Name = foundAsset.Name; | 93 | asset.Name = foundAsset.Name; |
94 | idata = foundAsset.Data; | 94 | idata = foundAsset.Data; |
95 | asset.Data = idata; | 95 | asset.Data = idata; |
96 | 96 | ||
97 | return asset; | 97 | return asset; |
98 | } | 98 | } |
99 | else | 99 | else |
@@ -141,4 +141,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
141 | return (asset.UUID == _findID); | 141 | return (asset.UUID == _findID); |
142 | } | 142 | } |
143 | } | 143 | } |
144 | } | 144 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs index 43d3dd9..1b2c836 100644 --- a/OpenSim/Framework/Communications/Cache/AssetServerBase.cs +++ b/OpenSim/Framework/Communications/Cache/AssetServerBase.cs | |||
@@ -69,7 +69,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
69 | { | 69 | { |
70 | MainLog.Instance.Verbose( | 70 | MainLog.Instance.Verbose( |
71 | "ASSET", "Asset {0} received from asset server", req.AssetID); | 71 | "ASSET", "Asset {0} received from asset server", req.AssetID); |
72 | 72 | ||
73 | _receiver.AssetReceived(asset, req.IsTexture); | 73 | _receiver.AssetReceived(asset, req.IsTexture); |
74 | } | 74 | } |
75 | else | 75 | else |
@@ -112,9 +112,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
112 | 112 | ||
113 | ProcessRequest(req); | 113 | ProcessRequest(req); |
114 | } | 114 | } |
115 | catch(Exception e) | 115 | catch (Exception e) |
116 | { | 116 | { |
117 | MainLog.Instance.Error("ASSETSERVER", e.Message ); | 117 | MainLog.Instance.Error("ASSETSERVER", e.Message); |
118 | } | 118 | } |
119 | } | 119 | } |
120 | } | 120 | } |
@@ -149,7 +149,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
149 | req.AssetID = assetID; | 149 | req.AssetID = assetID; |
150 | req.IsTexture = isTexture; | 150 | req.IsTexture = isTexture; |
151 | _assetRequests.Enqueue(req); | 151 | _assetRequests.Enqueue(req); |
152 | 152 | ||
153 | MainLog.Instance.Verbose("ASSET", "Added {0} to request queue", assetID); | 153 | MainLog.Instance.Verbose("ASSET", "Added {0} to request queue", assetID); |
154 | } | 154 | } |
155 | 155 | ||
@@ -253,4 +253,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
253 | assets.ForEach(action); | 253 | assets.ForEach(action); |
254 | } | 254 | } |
255 | } | 255 | } |
256 | } | 256 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs b/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs index 7de84fa..c9c9541 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactionManager.cs | |||
@@ -106,4 +106,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
106 | } | 106 | } |
107 | } | 107 | } |
108 | } | 108 | } |
109 | } | 109 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs index 57c1fa6..8aa567c 100644 --- a/OpenSim/Framework/Communications/Cache/AssetTransactions.cs +++ b/OpenSim/Framework/Communications/Cache/AssetTransactions.cs | |||
@@ -182,7 +182,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
182 | Asset.Description = "empty"; | 182 | Asset.Description = "empty"; |
183 | Asset.Local = storeLocal; | 183 | Asset.Local = storeLocal; |
184 | Asset.Temporary = tempFile; | 184 | Asset.Temporary = tempFile; |
185 | 185 | ||
186 | TransactionID = transaction; | 186 | TransactionID = transaction; |
187 | m_storeLocal = storeLocal; | 187 | m_storeLocal = storeLocal; |
188 | if (Asset.Data.Length > 2) | 188 | if (Asset.Data.Length > 2) |
@@ -312,6 +312,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
312 | } | 312 | } |
313 | 313 | ||
314 | #region Nested Classes currently not in use (waiting for them to be enabled) | 314 | #region Nested Classes currently not in use (waiting for them to be enabled) |
315 | |||
315 | public class AssetCapsUploader | 316 | public class AssetCapsUploader |
316 | { | 317 | { |
317 | // Fields | 318 | // Fields |
@@ -424,6 +425,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
424 | return text; | 425 | return text; |
425 | } | 426 | } |
426 | } | 427 | } |
428 | |||
427 | #endregion | 429 | #endregion |
428 | } | 430 | } |
429 | } | 431 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs index a547c8a..1cf95b7 100644 --- a/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs +++ b/OpenSim/Framework/Communications/Cache/CachedUserInfo.cs | |||
@@ -130,4 +130,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
130 | return result; | 130 | return result; |
131 | } | 131 | } |
132 | } | 132 | } |
133 | } | 133 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs index 9c460c7..cf54fa4 100644 --- a/OpenSim/Framework/Communications/Cache/GridAssetClient.cs +++ b/OpenSim/Framework/Communications/Cache/GridAssetClient.cs | |||
@@ -27,10 +27,8 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.IO; | 30 | using System.IO; |
32 | using System.Xml.Serialization; | 31 | using System.Xml.Serialization; |
33 | using libsecondlife; | ||
34 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
35 | using OpenSim.Framework.Servers; | 33 | using OpenSim.Framework.Servers; |
36 | 34 | ||
@@ -65,9 +63,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
65 | 63 | ||
66 | if (s.Length > 0) | 64 | if (s.Length > 0) |
67 | { | 65 | { |
68 | XmlSerializer xs = new XmlSerializer(typeof(AssetBase)); | 66 | XmlSerializer xs = new XmlSerializer(typeof (AssetBase)); |
69 | 67 | ||
70 | return (AssetBase)xs.Deserialize(s); | 68 | return (AssetBase) xs.Deserialize(s); |
71 | } | 69 | } |
72 | } | 70 | } |
73 | catch (Exception e) | 71 | catch (Exception e) |
@@ -76,12 +74,11 @@ namespace OpenSim.Framework.Communications.Cache | |||
76 | MainLog.Instance.Debug("ASSETCACHE", "Getting asset {0}", req.AssetID.ToString()); | 74 | MainLog.Instance.Debug("ASSETCACHE", "Getting asset {0}", req.AssetID.ToString()); |
77 | MainLog.Instance.Error("ASSETCACHE", e.StackTrace); | 75 | MainLog.Instance.Error("ASSETCACHE", e.StackTrace); |
78 | } | 76 | } |
79 | 77 | ||
80 | return null; | 78 | return null; |
81 | } | 79 | } |
82 | 80 | ||
83 | 81 | ||
84 | |||
85 | public override void UpdateAsset(AssetBase asset) | 82 | public override void UpdateAsset(AssetBase asset) |
86 | { | 83 | { |
87 | throw new Exception("The method or operation is not implemented."); | 84 | throw new Exception("The method or operation is not implemented."); |
@@ -119,8 +116,6 @@ namespace OpenSim.Framework.Communications.Cache | |||
119 | throw new Exception("The method or operation is not implemented."); | 116 | throw new Exception("The method or operation is not implemented."); |
120 | } | 117 | } |
121 | 118 | ||
122 | |||
123 | |||
124 | #endregion | 119 | #endregion |
125 | } | 120 | } |
126 | } | 121 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs b/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs index 1d2c920..a1e79b2 100644 --- a/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs +++ b/OpenSim/Framework/Communications/Cache/InventoryFolderImpl.cs | |||
@@ -65,7 +65,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
65 | InventoryFolderImpl subFold = new InventoryFolderImpl(); | 65 | InventoryFolderImpl subFold = new InventoryFolderImpl(); |
66 | subFold.name = folderName; | 66 | subFold.name = folderName; |
67 | subFold.folderID = folderID; | 67 | subFold.folderID = folderID; |
68 | subFold.type = (short)type; | 68 | subFold.type = (short) type; |
69 | subFold.parentID = this.folderID; | 69 | subFold.parentID = this.folderID; |
70 | subFold.agentID = agentID; | 70 | subFold.agentID = agentID; |
71 | SubFolders.Add(subFold.folderID, subFold); | 71 | SubFolders.Add(subFold.folderID, subFold); |
@@ -153,4 +153,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
153 | return folderList; | 153 | return folderList; |
154 | } | 154 | } |
155 | } | 155 | } |
156 | } | 156 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs index 4c8eddf..fd93b19 100644 --- a/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs +++ b/OpenSim/Framework/Communications/Cache/LibraryRootFolder.cs | |||
@@ -49,8 +49,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
49 | folderID = new LLUUID("00000112-000f-0000-0000-000100bba000"); | 49 | folderID = new LLUUID("00000112-000f-0000-0000-000100bba000"); |
50 | name = "OpenSim Library"; | 50 | name = "OpenSim Library"; |
51 | parentID = LLUUID.Zero; | 51 | parentID = LLUUID.Zero; |
52 | type = (short)-1; | 52 | type = (short) -1; |
53 | version = (ushort)1; | 53 | version = (ushort) 1; |
54 | 54 | ||
55 | InventoryFolderImpl folderInfo = new InventoryFolderImpl(); | 55 | InventoryFolderImpl folderInfo = new InventoryFolderImpl(); |
56 | folderInfo.agentID = libOwner; | 56 | folderInfo.agentID = libOwner; |
@@ -81,28 +81,41 @@ namespace OpenSim.Framework.Communications.Cache | |||
81 | 81 | ||
82 | private void CreateLibraryItems() | 82 | private void CreateLibraryItems() |
83 | { | 83 | { |
84 | InventoryItemBase item = CreateItem(new LLUUID("66c41e39-38f9-f75a-024e-585989bfaba9"), new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73"), "Default Shape", "Default Shape", (int)AssetType.Bodypart, (int)InventoryType.Wearable, folderID); | 84 | InventoryItemBase item = |
85 | CreateItem(new LLUUID("66c41e39-38f9-f75a-024e-585989bfaba9"), | ||
86 | new LLUUID("66c41e39-38f9-f75a-024e-585989bfab73"), "Default Shape", "Default Shape", | ||
87 | (int) AssetType.Bodypart, (int) InventoryType.Wearable, folderID); | ||
85 | item.inventoryCurrentPermissions = 0; | 88 | item.inventoryCurrentPermissions = 0; |
86 | item.inventoryNextPermissions = 0; | 89 | item.inventoryNextPermissions = 0; |
87 | Items.Add(item.inventoryID, item); | 90 | Items.Add(item.inventoryID, item); |
88 | 91 | ||
89 | item = CreateItem(new LLUUID("77c41e39-38f9-f75a-024e-585989bfabc9"), new LLUUID("77c41e39-38f9-f75a-024e-585989bbabbb"), "Default Skin", "Default Skin", (int)AssetType.Bodypart, (int)InventoryType.Wearable, folderID); | 92 | item = |
93 | CreateItem(new LLUUID("77c41e39-38f9-f75a-024e-585989bfabc9"), | ||
94 | new LLUUID("77c41e39-38f9-f75a-024e-585989bbabbb"), "Default Skin", "Default Skin", | ||
95 | (int) AssetType.Bodypart, (int) InventoryType.Wearable, folderID); | ||
90 | item.inventoryCurrentPermissions = 0; | 96 | item.inventoryCurrentPermissions = 0; |
91 | item.inventoryNextPermissions = 0; | 97 | item.inventoryNextPermissions = 0; |
92 | Items.Add(item.inventoryID, item); | 98 | Items.Add(item.inventoryID, item); |
93 | 99 | ||
94 | item = CreateItem(new LLUUID("77c41e39-38f9-f75a-0000-585989bf0000"), new LLUUID("00000000-38f9-1111-024e-222222111110"), "Default Shirt", "Default Shirt", (int)AssetType.Clothing, (int)InventoryType.Wearable, folderID); | 100 | item = |
101 | CreateItem(new LLUUID("77c41e39-38f9-f75a-0000-585989bf0000"), | ||
102 | new LLUUID("00000000-38f9-1111-024e-222222111110"), "Default Shirt", "Default Shirt", | ||
103 | (int) AssetType.Clothing, (int) InventoryType.Wearable, folderID); | ||
95 | item.inventoryCurrentPermissions = 0; | 104 | item.inventoryCurrentPermissions = 0; |
96 | item.inventoryNextPermissions = 0; | 105 | item.inventoryNextPermissions = 0; |
97 | Items.Add(item.inventoryID, item); | 106 | Items.Add(item.inventoryID, item); |
98 | 107 | ||
99 | item = CreateItem(new LLUUID("77c41e39-38f9-f75a-0000-5859892f1111"), new LLUUID("00000000-38f9-1111-024e-222222111120"), "Default Pants", "Default Pants", (int)AssetType.Clothing, (int)InventoryType.Wearable, folderID); | 108 | item = |
109 | CreateItem(new LLUUID("77c41e39-38f9-f75a-0000-5859892f1111"), | ||
110 | new LLUUID("00000000-38f9-1111-024e-222222111120"), "Default Pants", "Default Pants", | ||
111 | (int) AssetType.Clothing, (int) InventoryType.Wearable, folderID); | ||
100 | item.inventoryCurrentPermissions = 0; | 112 | item.inventoryCurrentPermissions = 0; |
101 | item.inventoryNextPermissions = 0; | 113 | item.inventoryNextPermissions = 0; |
102 | Items.Add(item.inventoryID, item); | 114 | Items.Add(item.inventoryID, item); |
103 | } | 115 | } |
104 | 116 | ||
105 | public InventoryItemBase CreateItem(LLUUID inventoryID, LLUUID assetID, string name, string description, int assetType, int invType, LLUUID parentFolderID) | 117 | public InventoryItemBase CreateItem(LLUUID inventoryID, LLUUID assetID, string name, string description, |
118 | int assetType, int invType, LLUUID parentFolderID) | ||
106 | { | 119 | { |
107 | InventoryItemBase item = new InventoryItemBase(); | 120 | InventoryItemBase item = new InventoryItemBase(); |
108 | item.avatarID = libOwner; | 121 | item.avatarID = libOwner; |
@@ -135,10 +148,10 @@ namespace OpenSim.Framework.Communications.Cache | |||
135 | item.inventoryName = source.Configs[i].GetString("name", ""); | 148 | item.inventoryName = source.Configs[i].GetString("name", ""); |
136 | item.assetType = source.Configs[i].GetInt("assetType", 0); | 149 | item.assetType = source.Configs[i].GetInt("assetType", 0); |
137 | item.invType = source.Configs[i].GetInt("inventoryType", 0); | 150 | item.invType = source.Configs[i].GetInt("inventoryType", 0); |
138 | item.inventoryCurrentPermissions = (uint)source.Configs[i].GetLong("currentPermissions", 0x7FFFFFFF); | 151 | item.inventoryCurrentPermissions = (uint) source.Configs[i].GetLong("currentPermissions", 0x7FFFFFFF); |
139 | item.inventoryNextPermissions = (uint)source.Configs[i].GetLong("nextPermissions", 0x7FFFFFFF); | 152 | item.inventoryNextPermissions = (uint) source.Configs[i].GetLong("nextPermissions", 0x7FFFFFFF); |
140 | item.inventoryEveryOnePermissions = (uint)source.Configs[i].GetLong("everyonePermissions", 0x7FFFFFFF); | 153 | item.inventoryEveryOnePermissions = (uint) source.Configs[i].GetLong("everyonePermissions", 0x7FFFFFFF); |
141 | item.inventoryBasePermissions = (uint)source.Configs[i].GetLong("basePermissions", 0x7FFFFFFF); | 154 | item.inventoryBasePermissions = (uint) source.Configs[i].GetLong("basePermissions", 0x7FFFFFFF); |
142 | if (item.assetType == 0) | 155 | if (item.assetType == 0) |
143 | { | 156 | { |
144 | item.parentFolderID = m_textureFolder.folderID; | 157 | item.parentFolderID = m_textureFolder.folderID; |
@@ -152,4 +165,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
152 | } | 165 | } |
153 | } | 166 | } |
154 | } | 167 | } |
155 | } | 168 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs index 7fcff10..e4c278f 100644 --- a/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs +++ b/OpenSim/Framework/Communications/Cache/SQLAssetServer.cs | |||
@@ -57,7 +57,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
57 | if (typeInterface != null) | 57 | if (typeInterface != null) |
58 | { | 58 | { |
59 | IAssetProvider plug = | 59 | IAssetProvider plug = |
60 | (IAssetProvider)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 60 | (IAssetProvider) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
61 | m_assetProviderPlugin = plug; | 61 | m_assetProviderPlugin = plug; |
62 | m_assetProviderPlugin.Initialise(); | 62 | m_assetProviderPlugin.Initialise(); |
63 | 63 | ||
@@ -84,8 +84,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
84 | { | 84 | { |
85 | asset = m_assetProviderPlugin.FetchAsset(req.AssetID); | 85 | asset = m_assetProviderPlugin.FetchAsset(req.AssetID); |
86 | } | 86 | } |
87 | 87 | ||
88 | return asset; | 88 | return asset; |
89 | } | 89 | } |
90 | 90 | ||
91 | protected override void StoreAsset(AssetBase asset) | 91 | protected override void StoreAsset(AssetBase asset) |
@@ -98,4 +98,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
98 | m_assetProviderPlugin.CommitAssets(); | 98 | m_assetProviderPlugin.CommitAssets(); |
99 | } | 99 | } |
100 | } | 100 | } |
101 | } | 101 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs index 47f970e..14670fd 100644 --- a/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs +++ b/OpenSim/Framework/Communications/Cache/UserProfileCacheService.cs | |||
@@ -130,7 +130,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
130 | } | 130 | } |
131 | } | 131 | } |
132 | 132 | ||
133 | public void HandleUpdateInventoryFolder(IClientAPI remoteClient, LLUUID folderID, ushort type, string name, LLUUID parentID) | 133 | public void HandleUpdateInventoryFolder(IClientAPI remoteClient, LLUUID folderID, ushort type, string name, |
134 | LLUUID parentID) | ||
134 | { | 135 | { |
135 | CachedUserInfo userProfile; | 136 | CachedUserInfo userProfile; |
136 | 137 | ||
@@ -143,7 +144,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
143 | baseFolder.folderID = folderID; | 144 | baseFolder.folderID = folderID; |
144 | baseFolder.name = name; | 145 | baseFolder.name = name; |
145 | baseFolder.parentID = parentID; | 146 | baseFolder.parentID = parentID; |
146 | baseFolder.type = (short)type; | 147 | baseFolder.type = (short) type; |
147 | baseFolder.version = userProfile.RootFolder.version; | 148 | baseFolder.version = userProfile.RootFolder.version; |
148 | m_parent.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, baseFolder); | 149 | m_parent.InventoryService.AddNewInventoryFolder(remoteClient.AgentId, baseFolder); |
149 | } | 150 | } |
@@ -180,12 +181,12 @@ namespace OpenSim.Framework.Communications.Cache | |||
180 | bool fetchFolders, bool fetchItems, int sortOrder) | 181 | bool fetchFolders, bool fetchItems, int sortOrder) |
181 | { | 182 | { |
182 | // XXX We're not handling sortOrder yet! | 183 | // XXX We're not handling sortOrder yet! |
183 | 184 | ||
184 | InventoryFolderImpl fold = null; | 185 | InventoryFolderImpl fold = null; |
185 | if (folderID == libraryRoot.folderID) | 186 | if (folderID == libraryRoot.folderID) |
186 | { | 187 | { |
187 | remoteClient.SendInventoryFolderDetails( | 188 | remoteClient.SendInventoryFolderDetails( |
188 | libraryRoot.agentID, libraryRoot.folderID, libraryRoot.RequestListOfItems(), | 189 | libraryRoot.agentID, libraryRoot.folderID, libraryRoot.RequestListOfItems(), |
189 | libraryRoot.RequestListOfFolders(), fetchFolders, fetchItems); | 190 | libraryRoot.RequestListOfFolders(), fetchFolders, fetchItems); |
190 | 191 | ||
191 | return; | 192 | return; |
@@ -194,7 +195,7 @@ namespace OpenSim.Framework.Communications.Cache | |||
194 | if ((fold = libraryRoot.HasSubFolder(folderID)) != null) | 195 | if ((fold = libraryRoot.HasSubFolder(folderID)) != null) |
195 | { | 196 | { |
196 | remoteClient.SendInventoryFolderDetails( | 197 | remoteClient.SendInventoryFolderDetails( |
197 | libraryRoot.agentID, folderID, fold.RequestListOfItems(), | 198 | libraryRoot.agentID, folderID, fold.RequestListOfItems(), |
198 | fold.RequestListOfFolders(), fetchFolders, fetchItems); | 199 | fold.RequestListOfFolders(), fetchFolders, fetchItems); |
199 | 200 | ||
200 | return; | 201 | return; |
@@ -209,9 +210,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
209 | { | 210 | { |
210 | remoteClient.SendInventoryFolderDetails( | 211 | remoteClient.SendInventoryFolderDetails( |
211 | remoteClient.AgentId, folderID, userProfile.RootFolder.RequestListOfItems(), | 212 | remoteClient.AgentId, folderID, userProfile.RootFolder.RequestListOfItems(), |
212 | userProfile.RootFolder.RequestListOfFolders(), | 213 | userProfile.RootFolder.RequestListOfFolders(), |
213 | fetchFolders, fetchItems); | 214 | fetchFolders, fetchItems); |
214 | 215 | ||
215 | return; | 216 | return; |
216 | } | 217 | } |
217 | else | 218 | else |
@@ -219,9 +220,9 @@ namespace OpenSim.Framework.Communications.Cache | |||
219 | if ((fold = userProfile.RootFolder.HasSubFolder(folderID)) != null) | 220 | if ((fold = userProfile.RootFolder.HasSubFolder(folderID)) != null) |
220 | { | 221 | { |
221 | remoteClient.SendInventoryFolderDetails( | 222 | remoteClient.SendInventoryFolderDetails( |
222 | remoteClient.AgentId, folderID, fold.RequestListOfItems(), | 223 | remoteClient.AgentId, folderID, fold.RequestListOfItems(), |
223 | fold.RequestListOfFolders(), fetchFolders, fetchItems); | 224 | fold.RequestListOfFolders(), fetchFolders, fetchItems); |
224 | 225 | ||
225 | return; | 226 | return; |
226 | } | 227 | } |
227 | } | 228 | } |
@@ -230,20 +231,20 @@ namespace OpenSim.Framework.Communications.Cache | |||
230 | { | 231 | { |
231 | MainLog.Instance.Error( | 232 | MainLog.Instance.Error( |
232 | "INVENTORYCACHE", "Could not find root folder for user {0}", remoteClient.Name); | 233 | "INVENTORYCACHE", "Could not find root folder for user {0}", remoteClient.Name); |
233 | 234 | ||
234 | return; | 235 | return; |
235 | } | 236 | } |
236 | } | 237 | } |
237 | else | 238 | else |
238 | { | 239 | { |
239 | MainLog.Instance.Error( | 240 | MainLog.Instance.Error( |
240 | "INVENTORYCACHE", | 241 | "INVENTORYCACHE", |
241 | "Could not find user profile for {0} for folder {1}", | 242 | "Could not find user profile for {0} for folder {1}", |
242 | remoteClient.Name, folderID); | 243 | remoteClient.Name, folderID); |
243 | 244 | ||
244 | return; | 245 | return; |
245 | } | 246 | } |
246 | 247 | ||
247 | // If we've reached this point then we couldn't find the folder, even though the client thinks | 248 | // If we've reached this point then we couldn't find the folder, even though the client thinks |
248 | // it exists | 249 | // it exists |
249 | MainLog.Instance.Error( | 250 | MainLog.Instance.Error( |
@@ -262,8 +263,8 @@ namespace OpenSim.Framework.Communications.Cache | |||
262 | InventoryFolderImpl subFolder = userProfile.RootFolder.HasSubFolder(folderID); | 263 | InventoryFolderImpl subFolder = userProfile.RootFolder.HasSubFolder(folderID); |
263 | if (subFolder != null) | 264 | if (subFolder != null) |
264 | { | 265 | { |
265 | List<InventoryItemBase> items=subFolder.RequestListOfItems(); | 266 | List<InventoryItemBase> items = subFolder.RequestListOfItems(); |
266 | foreach(InventoryItemBase item in items) | 267 | foreach (InventoryItemBase item in items) |
267 | { | 268 | { |
268 | userProfile.DeleteItem(remoteClient.AgentId, item); | 269 | userProfile.DeleteItem(remoteClient.AgentId, item); |
269 | } | 270 | } |
@@ -300,4 +301,4 @@ namespace OpenSim.Framework.Communications.Cache | |||
300 | m_parent.InventoryService.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive); | 301 | m_parent.InventoryService.RequestInventoryForUser(userID, userInfo.FolderReceive, userInfo.ItemReceive); |
301 | } | 302 | } |
302 | } | 303 | } |
303 | } | 304 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index e00f49d..4b42046 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -38,33 +38,33 @@ using OpenSim.Framework.Servers; | |||
38 | namespace OpenSim.Region.Capabilities | 38 | namespace OpenSim.Region.Capabilities |
39 | { | 39 | { |
40 | public delegate void UpLoadedAsset( | 40 | public delegate void UpLoadedAsset( |
41 | string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, | 41 | string assetName, string description, LLUUID assetID, LLUUID inventoryItem, LLUUID parentFolder, |
42 | byte[] data, string inventoryType, string assetType); | 42 | byte[] data, string inventoryType, string assetType); |
43 | 43 | ||
44 | public delegate LLUUID UpdateItem(LLUUID itemID, byte[] data); | 44 | public delegate LLUUID UpdateItem(LLUUID itemID, byte[] data); |
45 | 45 | ||
46 | public delegate void UpdateTaskScript(LLUUID itemID, LLUUID primID, bool isScriptRunning, byte[] data); | 46 | public delegate void UpdateTaskScript(LLUUID itemID, LLUUID primID, bool isScriptRunning, byte[] data); |
47 | 47 | ||
48 | public delegate void NewInventoryItem(LLUUID userID, InventoryItemBase item); | 48 | public delegate void NewInventoryItem(LLUUID userID, InventoryItemBase item); |
49 | 49 | ||
50 | public delegate LLUUID ItemUpdatedCallback(LLUUID userID, LLUUID itemID, byte[] data); | 50 | public delegate LLUUID ItemUpdatedCallback(LLUUID userID, LLUUID itemID, byte[] data); |
51 | 51 | ||
52 | public delegate void TaskScriptUpdatedCallback(LLUUID userID, LLUUID itemID, LLUUID primID, | 52 | public delegate void TaskScriptUpdatedCallback(LLUUID userID, LLUUID itemID, LLUUID primID, |
53 | bool isScriptRunning, byte[] data); | 53 | bool isScriptRunning, byte[] data); |
54 | 54 | ||
55 | public class Caps | 55 | public class Caps |
56 | { | 56 | { |
57 | private string m_httpListenerHostName; | 57 | private string m_httpListenerHostName; |
58 | private uint m_httpListenPort; | 58 | private uint m_httpListenPort; |
59 | 59 | ||
60 | private string m_capsObjectPath = "00001-"; | 60 | private string m_capsObjectPath = "00001-"; |
61 | private string m_requestPath = "0000/"; | 61 | private string m_requestPath = "0000/"; |
62 | private string m_mapLayerPath = "0001/"; | 62 | private string m_mapLayerPath = "0001/"; |
63 | private string m_newInventory = "0002/"; | 63 | private string m_newInventory = "0002/"; |
64 | //private string m_requestTexture = "0003/"; | 64 | //private string m_requestTexture = "0003/"; |
65 | private string m_notecardUpdatePath = "0004/"; | 65 | private string m_notecardUpdatePath = "0004/"; |
66 | private string m_notecardTaskUpdatePath = "0005/"; | 66 | private string m_notecardTaskUpdatePath = "0005/"; |
67 | 67 | ||
68 | //private string eventQueue = "0100/"; | 68 | //private string eventQueue = "0100/"; |
69 | private BaseHttpServer m_httpListener; | 69 | private BaseHttpServer m_httpListener; |
70 | private LLUUID m_agentID; | 70 | private LLUUID m_agentID; |
@@ -78,7 +78,7 @@ namespace OpenSim.Region.Capabilities | |||
78 | public NewInventoryItem AddNewInventoryItem = null; | 78 | public NewInventoryItem AddNewInventoryItem = null; |
79 | public ItemUpdatedCallback ItemUpdatedCall = null; | 79 | public ItemUpdatedCallback ItemUpdatedCall = null; |
80 | public TaskScriptUpdatedCallback TaskScriptUpdatedCall = null; | 80 | public TaskScriptUpdatedCallback TaskScriptUpdatedCall = null; |
81 | 81 | ||
82 | public Caps(AssetCache assetCache, BaseHttpServer httpServer, string httpListen, uint httpPort, string capsPath, | 82 | public Caps(AssetCache assetCache, BaseHttpServer httpServer, string httpListen, uint httpPort, string capsPath, |
83 | LLUUID agent, bool dumpAssetsToFile) | 83 | LLUUID agent, bool dumpAssetsToFile) |
84 | { | 84 | { |
@@ -138,7 +138,7 @@ namespace OpenSim.Region.Capabilities | |||
138 | /// <returns></returns> | 138 | /// <returns></returns> |
139 | public string CapsRequest(string request, string path, string param) | 139 | public string CapsRequest(string request, string path, string param) |
140 | { | 140 | { |
141 | //Console.WriteLine("caps request " + request); | 141 | //Console.WriteLine("caps request " + request); |
142 | string result = LLSDHelpers.SerialiseLLSDReply(GetCapabilities()); | 142 | string result = LLSDHelpers.SerialiseLLSDReply(GetCapabilities()); |
143 | return result; | 143 | return result; |
144 | } | 144 | } |
@@ -153,7 +153,7 @@ namespace OpenSim.Region.Capabilities | |||
153 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + | 153 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + |
154 | m_capsObjectPath; | 154 | m_capsObjectPath; |
155 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; | 155 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; |
156 | // caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; | 156 | // caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; |
157 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; | 157 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; |
158 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 158 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
159 | caps.UpdateScriptAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 159 | caps.UpdateScriptAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
@@ -262,7 +262,7 @@ namespace OpenSim.Region.Capabilities | |||
262 | } | 262 | } |
263 | 263 | ||
264 | #endregion | 264 | #endregion |
265 | 265 | ||
266 | /// <summary> | 266 | /// <summary> |
267 | /// Callback for a client request for an upload url for a script task | 267 | /// Callback for a client request for an upload url for a script task |
268 | /// inventory update | 268 | /// inventory update |
@@ -272,28 +272,28 @@ namespace OpenSim.Region.Capabilities | |||
272 | /// <param name="param"></param> | 272 | /// <param name="param"></param> |
273 | /// <returns></returns> | 273 | /// <returns></returns> |
274 | public string ScriptTaskInventory(string request, string path, string param) | 274 | public string ScriptTaskInventory(string request, string path, string param) |
275 | { | 275 | { |
276 | try | 276 | try |
277 | { | 277 | { |
278 | // MainLog.Instance.Debug("CAPS", "request: {0}, path: {1}, param: {2}", request, path, param); | 278 | // MainLog.Instance.Debug("CAPS", "request: {0}, path: {1}, param: {2}", request, path, param); |
279 | 279 | ||
280 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(Helpers.StringToField(request)); | 280 | Hashtable hash = (Hashtable) LLSD.LLSDDeserialize(Helpers.StringToField(request)); |
281 | LLSDTaskScriptUpdate llsdUpdateRequest = new LLSDTaskScriptUpdate(); | 281 | LLSDTaskScriptUpdate llsdUpdateRequest = new LLSDTaskScriptUpdate(); |
282 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdUpdateRequest); | 282 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdUpdateRequest); |
283 | 283 | ||
284 | string capsBase = "/CAPS/" + m_capsObjectPath; | 284 | string capsBase = "/CAPS/" + m_capsObjectPath; |
285 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 285 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
286 | 286 | ||
287 | TaskInventoryScriptUpdater uploader = | 287 | TaskInventoryScriptUpdater uploader = |
288 | new TaskInventoryScriptUpdater( | 288 | new TaskInventoryScriptUpdater( |
289 | llsdUpdateRequest.item_id, | 289 | llsdUpdateRequest.item_id, |
290 | llsdUpdateRequest.task_id, | 290 | llsdUpdateRequest.task_id, |
291 | llsdUpdateRequest.is_script_running, | 291 | llsdUpdateRequest.is_script_running, |
292 | capsBase + uploaderPath, | 292 | capsBase + uploaderPath, |
293 | m_httpListener, | 293 | m_httpListener, |
294 | m_dumpAssetsToFile); | 294 | m_dumpAssetsToFile); |
295 | uploader.OnUpLoad += TaskScriptUpdated; | 295 | uploader.OnUpLoad += TaskScriptUpdated; |
296 | 296 | ||
297 | m_httpListener.AddStreamHandler( | 297 | m_httpListener.AddStreamHandler( |
298 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 298 | new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
299 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + | 299 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + |
@@ -302,13 +302,13 @@ namespace OpenSim.Region.Capabilities | |||
302 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); | 302 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); |
303 | uploadResponse.uploader = uploaderURL; | 303 | uploadResponse.uploader = uploaderURL; |
304 | uploadResponse.state = "upload"; | 304 | uploadResponse.state = "upload"; |
305 | 305 | ||
306 | // MainLog.Instance.Verbose( | 306 | // MainLog.Instance.Verbose( |
307 | // "CAPS", | 307 | // "CAPS", |
308 | // "ScriptTaskInventory response: {0}", | 308 | // "ScriptTaskInventory response: {0}", |
309 | // LLSDHelpers.SerialiseLLSDReply(uploadResponse)); | 309 | // LLSDHelpers.SerialiseLLSDReply(uploadResponse)); |
310 | 310 | ||
311 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); | 311 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); |
312 | } | 312 | } |
313 | catch (Exception e) | 313 | catch (Exception e) |
314 | { | 314 | { |
@@ -329,7 +329,7 @@ namespace OpenSim.Region.Capabilities | |||
329 | public string NoteCardAgentInventory(string request, string path, string param) | 329 | public string NoteCardAgentInventory(string request, string path, string param) |
330 | { | 330 | { |
331 | //libsecondlife.StructuredData.LLSDMap hash = (libsecondlife.StructuredData.LLSDMap)libsecondlife.StructuredData.LLSDParser.DeserializeBinary(Helpers.StringToField(request)); | 331 | //libsecondlife.StructuredData.LLSDMap hash = (libsecondlife.StructuredData.LLSDMap)libsecondlife.StructuredData.LLSDParser.DeserializeBinary(Helpers.StringToField(request)); |
332 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(Helpers.StringToField(request)); | 332 | Hashtable hash = (Hashtable) LLSD.LLSDDeserialize(Helpers.StringToField(request)); |
333 | LLSDItemUpdate llsdRequest = new LLSDItemUpdate(); | 333 | LLSDItemUpdate llsdRequest = new LLSDItemUpdate(); |
334 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); | 334 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); |
335 | 335 | ||
@@ -353,7 +353,7 @@ namespace OpenSim.Region.Capabilities | |||
353 | // "CAPS", | 353 | // "CAPS", |
354 | // "NoteCardAgentInventory response: {0}", | 354 | // "NoteCardAgentInventory response: {0}", |
355 | // LLSDHelpers.SerialiseLLSDReply(uploadResponse)); | 355 | // LLSDHelpers.SerialiseLLSDReply(uploadResponse)); |
356 | 356 | ||
357 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); | 357 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); |
358 | } | 358 | } |
359 | 359 | ||
@@ -453,7 +453,7 @@ namespace OpenSim.Region.Capabilities | |||
453 | { | 453 | { |
454 | return ItemUpdatedCall(m_agentID, itemID, data); | 454 | return ItemUpdatedCall(m_agentID, itemID, data); |
455 | } | 455 | } |
456 | 456 | ||
457 | return LLUUID.Zero; | 457 | return LLUUID.Zero; |
458 | } | 458 | } |
459 | 459 | ||
@@ -613,7 +613,7 @@ namespace OpenSim.Region.Capabilities | |||
613 | fs.Close(); | 613 | fs.Close(); |
614 | } | 614 | } |
615 | } | 615 | } |
616 | 616 | ||
617 | /// <summary> | 617 | /// <summary> |
618 | /// This class is a callback invoked when a client sends asset data to | 618 | /// This class is a callback invoked when a client sends asset data to |
619 | /// a task inventory script update url | 619 | /// a task inventory script update url |
@@ -629,17 +629,17 @@ namespace OpenSim.Region.Capabilities | |||
629 | private BaseHttpServer httpListener; | 629 | private BaseHttpServer httpListener; |
630 | private bool m_dumpAssetToFile; | 630 | private bool m_dumpAssetToFile; |
631 | 631 | ||
632 | public TaskInventoryScriptUpdater(LLUUID inventoryItemID, LLUUID primID, int isScriptRunning, | 632 | public TaskInventoryScriptUpdater(LLUUID inventoryItemID, LLUUID primID, int isScriptRunning, |
633 | string path, BaseHttpServer httpServer, bool dumpAssetToFile) | 633 | string path, BaseHttpServer httpServer, bool dumpAssetToFile) |
634 | { | 634 | { |
635 | m_dumpAssetToFile = dumpAssetToFile; | 635 | m_dumpAssetToFile = dumpAssetToFile; |
636 | 636 | ||
637 | this.inventoryItemID = inventoryItemID; | 637 | this.inventoryItemID = inventoryItemID; |
638 | this.primID = primID; | 638 | this.primID = primID; |
639 | 639 | ||
640 | // This comes in over the packet as an integer, but actually appears to be treated as a bool | 640 | // This comes in over the packet as an integer, but actually appears to be treated as a bool |
641 | this.isScriptRunning = (0 == isScriptRunning ? false : true); | 641 | this.isScriptRunning = (0 == isScriptRunning ? false : true); |
642 | 642 | ||
643 | uploaderPath = path; | 643 | uploaderPath = path; |
644 | httpListener = httpServer; | 644 | httpListener = httpServer; |
645 | } | 645 | } |
@@ -659,7 +659,7 @@ namespace OpenSim.Region.Capabilities | |||
659 | // "CAPS", | 659 | // "CAPS", |
660 | // "TaskInventoryScriptUpdater received data: {0}, path: {1}, param: {2}", | 660 | // "TaskInventoryScriptUpdater received data: {0}, path: {1}, param: {2}", |
661 | // data, path, param); | 661 | // data, path, param); |
662 | 662 | ||
663 | string res = ""; | 663 | string res = ""; |
664 | LLSDTaskInventoryUploadComplete uploadComplete = new LLSDTaskInventoryUploadComplete(); | 664 | LLSDTaskInventoryUploadComplete uploadComplete = new LLSDTaskInventoryUploadComplete(); |
665 | 665 | ||
@@ -668,7 +668,7 @@ namespace OpenSim.Region.Capabilities | |||
668 | OnUpLoad(inventoryItemID, primID, isScriptRunning, data); | 668 | OnUpLoad(inventoryItemID, primID, isScriptRunning, data); |
669 | } | 669 | } |
670 | 670 | ||
671 | uploadComplete.item_id = inventoryItemID; | 671 | uploadComplete.item_id = inventoryItemID; |
672 | uploadComplete.task_id = primID; | 672 | uploadComplete.task_id = primID; |
673 | uploadComplete.state = "complete"; | 673 | uploadComplete.state = "complete"; |
674 | 674 | ||
@@ -680,7 +680,7 @@ namespace OpenSim.Region.Capabilities | |||
680 | { | 680 | { |
681 | SaveAssetToFile("updatedtaskscript" + Util.RandomClass.Next(1, 1000) + ".dat", data); | 681 | SaveAssetToFile("updatedtaskscript" + Util.RandomClass.Next(1, 1000) + ".dat", data); |
682 | } | 682 | } |
683 | 683 | ||
684 | // MainLog.Instance.Verbose("CAPS", "TaskInventoryScriptUpdater.uploaderCaps res: {0}", res); | 684 | // MainLog.Instance.Verbose("CAPS", "TaskInventoryScriptUpdater.uploaderCaps res: {0}", res); |
685 | 685 | ||
686 | return res; | 686 | return res; |
@@ -689,9 +689,9 @@ namespace OpenSim.Region.Capabilities | |||
689 | { | 689 | { |
690 | MainLog.Instance.Error("CAPS", e.ToString()); | 690 | MainLog.Instance.Error("CAPS", e.ToString()); |
691 | } | 691 | } |
692 | 692 | ||
693 | // XXX Maybe this should be some meaningful error packet | 693 | // XXX Maybe this should be some meaningful error packet |
694 | return null; | 694 | return null; |
695 | } | 695 | } |
696 | 696 | ||
697 | private void SaveAssetToFile(string filename, byte[] data) | 697 | private void SaveAssetToFile(string filename, byte[] data) |
@@ -702,6 +702,6 @@ namespace OpenSim.Region.Capabilities | |||
702 | bw.Close(); | 702 | bw.Close(); |
703 | fs.Close(); | 703 | fs.Close(); |
704 | } | 704 | } |
705 | } | 705 | } |
706 | } | 706 | } |
707 | } | 707 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSD.cs b/OpenSim/Framework/Communications/Capabilities/LLSD.cs index 987d6e6..dab926c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSD.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSD.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -28,12 +28,12 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | 31 | using System.Globalization; |
32 | using System.Xml; | ||
33 | using System.IO; | 32 | using System.IO; |
34 | using libsecondlife; | ||
35 | using System.Security.Cryptography; | 33 | using System.Security.Cryptography; |
36 | using System.Text; | 34 | using System.Text; |
35 | using System.Xml; | ||
36 | using libsecondlife; | ||
37 | 37 | ||
38 | namespace OpenSim.Region.Capabilities | 38 | namespace OpenSim.Region.Capabilities |
39 | { | 39 | { |
@@ -47,7 +47,9 @@ namespace OpenSim.Region.Capabilities | |||
47 | /// </summary> | 47 | /// </summary> |
48 | public class LLSDParseException : Exception | 48 | public class LLSDParseException : Exception |
49 | { | 49 | { |
50 | public LLSDParseException(string message) : base(message) { } | 50 | public LLSDParseException(string message) : base(message) |
51 | { | ||
52 | } | ||
51 | } | 53 | } |
52 | 54 | ||
53 | /// <summary> | 55 | /// <summary> |
@@ -55,7 +57,9 @@ namespace OpenSim.Region.Capabilities | |||
55 | /// </summary> | 57 | /// </summary> |
56 | public class LLSDSerializeException : Exception | 58 | public class LLSDSerializeException : Exception |
57 | { | 59 | { |
58 | public LLSDSerializeException(string message) : base(message) { } | 60 | public LLSDSerializeException(string message) : base(message) |
61 | { | ||
62 | } | ||
59 | } | 63 | } |
60 | 64 | ||
61 | /// <summary> | 65 | /// <summary> |
@@ -129,7 +133,7 @@ namespace OpenSim.Region.Capabilities | |||
129 | if (obj is string) | 133 | if (obj is string) |
130 | { | 134 | { |
131 | writer.WriteStartElement(String.Empty, "string", String.Empty); | 135 | writer.WriteStartElement(String.Empty, "string", String.Empty); |
132 | writer.WriteString((string)obj); | 136 | writer.WriteString((string) obj); |
133 | writer.WriteEndElement(); | 137 | writer.WriteEndElement(); |
134 | } | 138 | } |
135 | else if (obj is int) | 139 | else if (obj is int) |
@@ -146,7 +150,7 @@ namespace OpenSim.Region.Capabilities | |||
146 | } | 150 | } |
147 | else if (obj is bool) | 151 | else if (obj is bool) |
148 | { | 152 | { |
149 | bool b = (bool)obj; | 153 | bool b = (bool) obj; |
150 | writer.WriteStartElement(String.Empty, "boolean", String.Empty); | 154 | writer.WriteStartElement(String.Empty, "boolean", String.Empty); |
151 | writer.WriteString(b ? "1" : "0"); | 155 | writer.WriteString(b ? "1" : "0"); |
152 | writer.WriteEndElement(); | 156 | writer.WriteEndElement(); |
@@ -157,7 +161,7 @@ namespace OpenSim.Region.Capabilities | |||
157 | } | 161 | } |
158 | else if (obj is LLUUID) | 162 | else if (obj is LLUUID) |
159 | { | 163 | { |
160 | LLUUID u = (LLUUID)obj; | 164 | LLUUID u = (LLUUID) obj; |
161 | writer.WriteStartElement(String.Empty, "uuid", String.Empty); | 165 | writer.WriteStartElement(String.Empty, "uuid", String.Empty); |
162 | writer.WriteString(u.ToString()); | 166 | writer.WriteString(u.ToString()); |
163 | writer.WriteEndElement(); | 167 | writer.WriteEndElement(); |
@@ -463,7 +467,7 @@ namespace OpenSim.Region.Capabilities | |||
463 | } | 467 | } |
464 | else if (obj is string) | 468 | else if (obj is string) |
465 | { | 469 | { |
466 | return GetSpaces(indent) + "- string \"" + (string)obj + "\"\n"; | 470 | return GetSpaces(indent) + "- string \"" + (string) obj + "\"\n"; |
467 | } | 471 | } |
468 | else if (obj is int) | 472 | else if (obj is int) |
469 | { | 473 | { |
@@ -475,13 +479,13 @@ namespace OpenSim.Region.Capabilities | |||
475 | } | 479 | } |
476 | else if (obj is LLUUID) | 480 | else if (obj is LLUUID) |
477 | { | 481 | { |
478 | return GetSpaces(indent) + "- uuid " + ((LLUUID)obj).ToString() + Environment.NewLine; | 482 | return GetSpaces(indent) + "- uuid " + ((LLUUID) obj).ToString() + Environment.NewLine; |
479 | } | 483 | } |
480 | else if (obj is Hashtable) | 484 | else if (obj is Hashtable) |
481 | { | 485 | { |
482 | StringBuilder ret = new StringBuilder(); | 486 | StringBuilder ret = new StringBuilder(); |
483 | ret.Append(GetSpaces(indent) + "- map" + Environment.NewLine); | 487 | ret.Append(GetSpaces(indent) + "- map" + Environment.NewLine); |
484 | Hashtable map = (Hashtable)obj; | 488 | Hashtable map = (Hashtable) obj; |
485 | 489 | ||
486 | foreach (string key in map.Keys) | 490 | foreach (string key in map.Keys) |
487 | { | 491 | { |
@@ -495,7 +499,7 @@ namespace OpenSim.Region.Capabilities | |||
495 | { | 499 | { |
496 | StringBuilder ret = new StringBuilder(); | 500 | StringBuilder ret = new StringBuilder(); |
497 | ret.Append(GetSpaces(indent) + "- array\n"); | 501 | ret.Append(GetSpaces(indent) + "- array\n"); |
498 | ArrayList list = (ArrayList)obj; | 502 | ArrayList list = (ArrayList) obj; |
499 | 503 | ||
500 | foreach (object item in list) | 504 | foreach (object item in list) |
501 | { | 505 | { |
@@ -506,8 +510,8 @@ namespace OpenSim.Region.Capabilities | |||
506 | } | 510 | } |
507 | else if (obj is byte[]) | 511 | else if (obj is byte[]) |
508 | { | 512 | { |
509 | return GetSpaces(indent) + "- binary\n" + Helpers.FieldToHexString((byte[])obj, GetSpaces(indent)) + | 513 | return GetSpaces(indent) + "- binary\n" + Helpers.FieldToHexString((byte[]) obj, GetSpaces(indent)) + |
510 | Environment.NewLine; | 514 | Environment.NewLine; |
511 | } | 515 | } |
512 | else | 516 | else |
513 | { | 517 | { |
@@ -557,8 +561,8 @@ namespace OpenSim.Region.Capabilities | |||
557 | double value; | 561 | double value; |
558 | endPos = FindEnd(llsd, 1); | 562 | endPos = FindEnd(llsd, 1); |
559 | 563 | ||
560 | if (Double.TryParse(llsd.Substring(1, endPos - 1), System.Globalization.NumberStyles.Float, | 564 | if (Double.TryParse(llsd.Substring(1, endPos - 1), NumberStyles.Float, |
561 | Helpers.EnUsCulture.NumberFormat, out value)) | 565 | Helpers.EnUsCulture.NumberFormat, out value)) |
562 | return value; | 566 | return value; |
563 | else | 567 | else |
564 | throw new LLSDParseException("Failed to parse double value type"); | 568 | throw new LLSDParseException("Failed to parse double value type"); |
@@ -652,7 +656,7 @@ namespace OpenSim.Region.Capabilities | |||
652 | 656 | ||
653 | private static int FindEnd(string llsd, int start) | 657 | private static int FindEnd(string llsd, int start) |
654 | { | 658 | { |
655 | int end = llsd.IndexOfAny(new char[] { ',', ']', '}' }); | 659 | int end = llsd.IndexOfAny(new char[] {',', ']', '}'}); |
656 | if (end == -1) end = llsd.Length - 1; | 660 | if (end == -1) end = llsd.Length - 1; |
657 | return end; | 661 | return end; |
658 | } | 662 | } |
@@ -673,4 +677,4 @@ namespace OpenSim.Region.Capabilities | |||
673 | } | 677 | } |
674 | } | 678 | } |
675 | } | 679 | } |
676 | } | 680 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs index 2bc1643..d641b5c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs | |||
@@ -38,4 +38,4 @@ namespace OpenSim.Region.Capabilities | |||
38 | { | 38 | { |
39 | } | 39 | } |
40 | } | 40 | } |
41 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs index 307e3e3..f838c85 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs | |||
@@ -41,4 +41,4 @@ namespace OpenSim.Region.Capabilities | |||
41 | { | 41 | { |
42 | } | 42 | } |
43 | } | 43 | } |
44 | } | 44 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs index eb76d64..3b8c077 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.Capabilities | |||
37 | { | 37 | { |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs index dfb1683..7b09cb3 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs | |||
@@ -34,7 +34,7 @@ namespace OpenSim.Region.Capabilities | |||
34 | public string MapLayer = ""; | 34 | public string MapLayer = ""; |
35 | public string NewFileAgentInventory = ""; | 35 | public string NewFileAgentInventory = ""; |
36 | //public string EventQueueGet = ""; | 36 | //public string EventQueueGet = ""; |
37 | // public string RequestTextureDownload = ""; | 37 | // public string RequestTextureDownload = ""; |
38 | // public string ChatSessionRequest = ""; | 38 | // public string ChatSessionRequest = ""; |
39 | public string UpdateNotecardAgentInventory = ""; | 39 | public string UpdateNotecardAgentInventory = ""; |
40 | public string UpdateScriptAgentInventory = ""; | 40 | public string UpdateScriptAgentInventory = ""; |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs index 101d9c0..5e6e917 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs | |||
@@ -34,4 +34,4 @@ namespace OpenSim.Region.Capabilities | |||
34 | { | 34 | { |
35 | } | 35 | } |
36 | } | 36 | } |
37 | } | 37 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs index 60aa60c..28f838d 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs | |||
@@ -30,7 +30,6 @@ using System.Collections; | |||
30 | using System.IO; | 30 | using System.IO; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.Xml; | 32 | using System.Xml; |
33 | using libsecondlife; | ||
34 | 33 | ||
35 | namespace OpenSim.Region.Capabilities | 34 | namespace OpenSim.Region.Capabilities |
36 | { | 35 | { |
@@ -77,7 +76,7 @@ namespace OpenSim.Region.Capabilities | |||
77 | writer.WriteString(fields[i].Name); | 76 | writer.WriteString(fields[i].Name); |
78 | writer.WriteEndElement(); | 77 | writer.WriteEndElement(); |
79 | LLSD.LLSDWriteOne(writer, fieldValue); | 78 | LLSD.LLSDWriteOne(writer, fieldValue); |
80 | // libsecondlife.StructuredData.LLSDParser.SerializeXmlElement( | 79 | // libsecondlife.StructuredData.LLSDParser.SerializeXmlElement( |
81 | // writer, libsecondlife.StructuredData.LLSD.FromObject(fieldValue)); | 80 | // writer, libsecondlife.StructuredData.LLSD.FromObject(fieldValue)); |
82 | } | 81 | } |
83 | } | 82 | } |
@@ -102,8 +101,8 @@ namespace OpenSim.Region.Capabilities | |||
102 | else | 101 | else |
103 | { | 102 | { |
104 | LLSD.LLSDWriteOne(writer, obj); | 103 | LLSD.LLSDWriteOne(writer, obj); |
105 | //libsecondlife.StructuredData.LLSDParser.SerializeXmlElement( | 104 | //libsecondlife.StructuredData.LLSDParser.SerializeXmlElement( |
106 | // writer, libsecondlife.StructuredData.LLSD.FromObject(obj)); | 105 | // writer, libsecondlife.StructuredData.LLSD.FromObject(obj)); |
107 | } | 106 | } |
108 | } | 107 | } |
109 | 108 | ||
@@ -122,12 +121,12 @@ namespace OpenSim.Region.Capabilities | |||
122 | FieldInfo field = myType.GetField((string) enumerator.Key); | 121 | FieldInfo field = myType.GetField((string) enumerator.Key); |
123 | if (field != null) | 122 | if (field != null) |
124 | { | 123 | { |
125 | // if (enumerator.Value is libsecondlife.StructuredData.LLSDMap) | 124 | // if (enumerator.Value is libsecondlife.StructuredData.LLSDMap) |
126 | if (enumerator.Value is Hashtable) | 125 | if (enumerator.Value is Hashtable) |
127 | { | 126 | { |
128 | object fieldValue = field.GetValue(obj); | 127 | object fieldValue = field.GetValue(obj); |
129 | DeserialiseLLSDMap((Hashtable)enumerator.Value, fieldValue); | 128 | DeserialiseLLSDMap((Hashtable) enumerator.Value, fieldValue); |
130 | // DeserialiseLLSDMap((libsecondlife.StructuredData.LLSDMap) enumerator.Value, fieldValue); | 129 | // DeserialiseLLSDMap((libsecondlife.StructuredData.LLSDMap) enumerator.Value, fieldValue); |
131 | } | 130 | } |
132 | else if (enumerator.Value is ArrayList) | 131 | else if (enumerator.Value is ArrayList) |
133 | { | 132 | { |
@@ -149,4 +148,4 @@ namespace OpenSim.Region.Capabilities | |||
149 | return obj; | 148 | return obj; |
150 | } | 149 | } |
151 | } | 150 | } |
152 | } | 151 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs index 214b9c7..121b36a 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs | |||
@@ -42,4 +42,4 @@ namespace OpenSim.Region.Capabilities | |||
42 | { | 42 | { |
43 | } | 43 | } |
44 | } | 44 | } |
45 | } | 45 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs index 48130b1..93b0f83 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.Capabilities | |||
37 | { | 37 | { |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs index 71cc358..4321d7b 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs | |||
@@ -29,9 +29,7 @@ | |||
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.IO; | 30 | using System.IO; |
31 | using System.Text; | 31 | using System.Text; |
32 | using libsecondlife; | ||
33 | using OpenSim.Framework.Servers; | 32 | using OpenSim.Framework.Servers; |
34 | using System.Xml; | ||
35 | 33 | ||
36 | namespace OpenSim.Region.Capabilities | 34 | namespace OpenSim.Region.Capabilities |
37 | { | 35 | { |
@@ -54,10 +52,10 @@ namespace OpenSim.Region.Capabilities | |||
54 | //string requestBody = streamReader.ReadToEnd(); | 52 | //string requestBody = streamReader.ReadToEnd(); |
55 | //streamReader.Close(); | 53 | //streamReader.Close(); |
56 | 54 | ||
57 | // libsecondlife.StructuredData.LLSDMap hash = (libsecondlife.StructuredData.LLSDMap) | 55 | // libsecondlife.StructuredData.LLSDMap hash = (libsecondlife.StructuredData.LLSDMap) |
58 | // libsecondlife.StructuredData.LLSDParser.DeserializeXml(new XmlTextReader(request)); | 56 | // libsecondlife.StructuredData.LLSDParser.DeserializeXml(new XmlTextReader(request)); |
59 | 57 | ||
60 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize(request); | 58 | Hashtable hash = (Hashtable) LLSD.LLSDDeserialize(request); |
61 | TRequest llsdRequest = new TRequest(); | 59 | TRequest llsdRequest = new TRequest(); |
62 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); | 60 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); |
63 | 61 | ||
@@ -68,4 +66,4 @@ namespace OpenSim.Region.Capabilities | |||
68 | return encoding.GetBytes(LLSDHelpers.SerialiseLLSDReply(response)); | 66 | return encoding.GetBytes(LLSDHelpers.SerialiseLLSDReply(response)); |
69 | } | 67 | } |
70 | } | 68 | } |
71 | } | 69 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDTaskInventoryUploadComplete.cs b/OpenSim/Framework/Communications/Capabilities/LLSDTaskInventoryUploadComplete.cs index 3703efc..8d6550b 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDTaskInventoryUploadComplete.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDTaskInventoryUploadComplete.cs | |||
@@ -25,10 +25,10 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | 28 | using libsecondlife; |
29 | 29 | ||
30 | namespace OpenSim.Region.Capabilities | 30 | namespace OpenSim.Region.Capabilities |
31 | { | 31 | { |
32 | [LLSDMap] | 32 | [LLSDMap] |
33 | public class LLSDTaskInventoryUploadComplete | 33 | public class LLSDTaskInventoryUploadComplete |
34 | { | 34 | { |
@@ -36,15 +36,15 @@ namespace OpenSim.Region.Capabilities | |||
36 | /// The task inventory item that was updated | 36 | /// The task inventory item that was updated |
37 | /// </summary> | 37 | /// </summary> |
38 | public LLUUID item_id; | 38 | public LLUUID item_id; |
39 | 39 | ||
40 | /// <summary> | 40 | /// <summary> |
41 | /// The task that was updated | 41 | /// The task that was updated |
42 | /// </summary> | 42 | /// </summary> |
43 | public LLUUID task_id; | 43 | public LLUUID task_id; |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// State of the upload. So far have only even seen this set to "complete" | 46 | /// State of the upload. So far have only even seen this set to "complete" |
47 | /// </summary> | 47 | /// </summary> |
48 | public string state; | 48 | public string state; |
49 | } | 49 | } |
50 | } | 50 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDTaskScriptUpdate.cs b/OpenSim/Framework/Communications/Capabilities/LLSDTaskScriptUpdate.cs index 6dcf2b5..e9c77b8 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDTaskScriptUpdate.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDTaskScriptUpdate.cs | |||
@@ -26,10 +26,10 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using libsecondlife; | 29 | using libsecondlife; |
30 | 30 | ||
31 | namespace OpenSim.Region.Capabilities | 31 | namespace OpenSim.Region.Capabilities |
32 | { | 32 | { |
33 | [LLSDMap] | 33 | [LLSDMap] |
34 | public class LLSDTaskScriptUpdate | 34 | public class LLSDTaskScriptUpdate |
35 | { | 35 | { |
@@ -37,15 +37,15 @@ namespace OpenSim.Region.Capabilities | |||
37 | /// The item containing the script to update | 37 | /// The item containing the script to update |
38 | /// </summary> | 38 | /// </summary> |
39 | public LLUUID item_id; | 39 | public LLUUID item_id; |
40 | 40 | ||
41 | /// <summary> | 41 | /// <summary> |
42 | /// The task containing the script | 42 | /// The task containing the script |
43 | /// </summary> | 43 | /// </summary> |
44 | public LLUUID task_id; | 44 | public LLUUID task_id; |
45 | 45 | ||
46 | /// <summary> | 46 | /// <summary> |
47 | /// Signals whether the script is currently active | 47 | /// Signals whether the script is currently active |
48 | /// </summary> | 48 | /// </summary> |
49 | public int is_script_running; | 49 | public int is_script_running; |
50 | } | 50 | } |
51 | } | 51 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs index 70bfd2c..d10b0c0 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.Capabilities | |||
37 | { | 37 | { |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs index 7bbe16e..e851742 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs | |||
@@ -52,4 +52,4 @@ namespace OpenSim.Region.Capabilities | |||
52 | { | 52 | { |
53 | } | 53 | } |
54 | } | 54 | } |
55 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/CommunicationsManager.cs b/OpenSim/Framework/Communications/CommunicationsManager.cs index 4614756..02c54e1 100644 --- a/OpenSim/Framework/Communications/CommunicationsManager.cs +++ b/OpenSim/Framework/Communications/CommunicationsManager.cs | |||
@@ -26,9 +26,9 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
29 | using libsecondlife; | 30 | using libsecondlife; |
30 | using OpenSim.Framework.Communications.Cache; | 31 | using OpenSim.Framework.Communications.Cache; |
31 | using System.Collections.Generic; | ||
32 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
33 | using OpenSim.Framework.Servers; | 33 | using OpenSim.Framework.Servers; |
34 | 34 | ||
@@ -173,12 +173,13 @@ namespace OpenSim.Framework.Communications | |||
173 | } | 173 | } |
174 | } | 174 | } |
175 | } | 175 | } |
176 | |||
176 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) | 177 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) |
177 | { | 178 | { |
178 | List<AvatarPickerAvatar> pickerlist = m_userService.GenerateAgentPickerRequestResponse(queryID, query); | 179 | List<AvatarPickerAvatar> pickerlist = m_userService.GenerateAgentPickerRequestResponse(queryID, query); |
179 | return pickerlist; | 180 | return pickerlist; |
180 | } | 181 | } |
181 | 182 | ||
182 | #endregion | 183 | #endregion |
183 | } | 184 | } |
184 | } | 185 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/IGridServices.cs b/OpenSim/Framework/Communications/IGridServices.cs index d51f234..e2c2661 100644 --- a/OpenSim/Framework/Communications/IGridServices.cs +++ b/OpenSim/Framework/Communications/IGridServices.cs | |||
@@ -25,7 +25,6 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System.Collections; | ||
29 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
30 | 29 | ||
31 | namespace OpenSim.Framework.Communications | 30 | namespace OpenSim.Framework.Communications |
@@ -39,6 +38,5 @@ namespace OpenSim.Framework.Communications | |||
39 | RegionInfo RequestNeighbourInfo(ulong regionHandle); | 38 | RegionInfo RequestNeighbourInfo(ulong regionHandle); |
40 | Dictionary<string, string> GetGridSettings(); | 39 | Dictionary<string, string> GetGridSettings(); |
41 | List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY); | 40 | List<MapBlockData> RequestNeighbourMapBlocks(int minX, int minY, int maxX, int maxY); |
42 | |||
43 | } | 41 | } |
44 | } | 42 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/IInterRegionCommunications.cs b/OpenSim/Framework/Communications/IInterRegionCommunications.cs index 3aa20a3..e2a96f6 100644 --- a/OpenSim/Framework/Communications/IInterRegionCommunications.cs +++ b/OpenSim/Framework/Communications/IInterRegionCommunications.cs | |||
@@ -31,8 +31,7 @@ namespace OpenSim.Framework.Communications | |||
31 | { | 31 | { |
32 | public interface IInterRegionCommunications | 32 | public interface IInterRegionCommunications |
33 | { | 33 | { |
34 | 34 | string rdebugRegionName { get; set; } | |
35 | string rdebugRegionName{ get; set; } | ||
36 | bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData); | 35 | bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData); |
37 | bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData); | 36 | bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData); |
38 | bool RegionUp(SearializableRegionInfo region, ulong regionhandle); | 37 | bool RegionUp(SearializableRegionInfo region, ulong regionhandle); |
@@ -45,6 +44,5 @@ namespace OpenSim.Framework.Communications | |||
45 | bool AcknowledgePrimCrossed(ulong regionHandle, LLUUID primID); | 44 | bool AcknowledgePrimCrossed(ulong regionHandle, LLUUID primID); |
46 | 45 | ||
47 | void TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID); | 46 | void TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID); |
48 | |||
49 | } | 47 | } |
50 | } | 48 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/IInventoryServices.cs b/OpenSim/Framework/Communications/IInventoryServices.cs index 9c493d4..f2e5cc5 100644 --- a/OpenSim/Framework/Communications/IInventoryServices.cs +++ b/OpenSim/Framework/Communications/IInventoryServices.cs | |||
@@ -52,4 +52,4 @@ namespace OpenSim.Framework.Communications | |||
52 | /// <returns></returns> | 52 | /// <returns></returns> |
53 | List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID); | 53 | List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID); |
54 | } | 54 | } |
55 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/InventoryServiceBase.cs b/OpenSim/Framework/Communications/InventoryServiceBase.cs index 534383a..098d08e 100644 --- a/OpenSim/Framework/Communications/InventoryServiceBase.cs +++ b/OpenSim/Framework/Communications/InventoryServiceBase.cs | |||
@@ -30,7 +30,6 @@ using System; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using libsecondlife; | 32 | using libsecondlife; |
33 | using OpenSim.Framework.Communications.Cache; | ||
34 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
35 | 34 | ||
36 | namespace OpenSim.Framework.Communications | 35 | namespace OpenSim.Framework.Communications |
@@ -65,7 +64,7 @@ namespace OpenSim.Framework.Communications | |||
65 | if (typeInterface != null) | 64 | if (typeInterface != null) |
66 | { | 65 | { |
67 | IInventoryData plug = | 66 | IInventoryData plug = |
68 | (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 67 | (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
69 | plug.Initialise(); | 68 | plug.Initialise(); |
70 | m_plugins.Add(plug.getName(), plug); | 69 | m_plugins.Add(plug.getName(), plug); |
71 | MainLog.Instance.Verbose("AGENTINVENTORY", "Added IInventoryData Interface"); | 70 | MainLog.Instance.Verbose("AGENTINVENTORY", "Added IInventoryData Interface"); |
@@ -370,4 +369,4 @@ namespace OpenSim.Framework.Communications | |||
370 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); | 369 | public abstract void AddNewInventoryItem(LLUUID userID, InventoryItemBase item); |
371 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); | 370 | public abstract void DeleteInventoryItem(LLUUID userID, InventoryItemBase item); |
372 | } | 371 | } |
373 | } | 372 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/LoginResponse.cs b/OpenSim/Framework/Communications/LoginResponse.cs index ede3148..954aecb 100644 --- a/OpenSim/Framework/Communications/LoginResponse.cs +++ b/OpenSim/Framework/Communications/LoginResponse.cs | |||
@@ -525,9 +525,9 @@ namespace OpenSim.Framework.UserManagement | |||
525 | set { welcomeMessage = value; } | 525 | set { welcomeMessage = value; } |
526 | } | 526 | } |
527 | 527 | ||
528 | public BuddyList BuddList | 528 | public BuddyList BuddList |
529 | { | 529 | { |
530 | get{return m_buddyList;} | 530 | get { return m_buddyList; } |
531 | set { m_buddyList = value; } | 531 | set { m_buddyList = value; } |
532 | } | 532 | } |
533 | 533 | ||
@@ -591,4 +591,4 @@ namespace OpenSim.Framework.UserManagement | |||
591 | } | 591 | } |
592 | } | 592 | } |
593 | } | 593 | } |
594 | } | 594 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/LoginService.cs b/OpenSim/Framework/Communications/LoginService.cs index 6d4cb68..a284910 100644 --- a/OpenSim/Framework/Communications/LoginService.cs +++ b/OpenSim/Framework/Communications/LoginService.cs | |||
@@ -64,7 +64,7 @@ namespace OpenSim.Framework.UserManagement | |||
64 | //CFK: CustomizeResponse contains sufficient strings to alleviate the need for this. | 64 | //CFK: CustomizeResponse contains sufficient strings to alleviate the need for this. |
65 | //CKF: MainLog.Instance.Verbose("LOGIN", "Attempting login now..."); | 65 | //CKF: MainLog.Instance.Verbose("LOGIN", "Attempting login now..."); |
66 | XmlRpcResponse response = new XmlRpcResponse(); | 66 | XmlRpcResponse response = new XmlRpcResponse(); |
67 | Hashtable requestData = (Hashtable)request.Params[0]; | 67 | Hashtable requestData = (Hashtable) request.Params[0]; |
68 | 68 | ||
69 | bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && | 69 | bool GoodXML = (requestData.Contains("first") && requestData.Contains("last") && |
70 | requestData.Contains("passwd")); | 70 | requestData.Contains("passwd")); |
@@ -75,17 +75,17 @@ namespace OpenSim.Framework.UserManagement | |||
75 | 75 | ||
76 | if (GoodXML) | 76 | if (GoodXML) |
77 | { | 77 | { |
78 | string firstname = (string)requestData["first"]; | 78 | string firstname = (string) requestData["first"]; |
79 | string lastname = (string)requestData["last"]; | 79 | string lastname = (string) requestData["last"]; |
80 | string passwd = (string)requestData["passwd"]; | 80 | string passwd = (string) requestData["passwd"]; |
81 | 81 | ||
82 | userProfile = GetTheUser(firstname, lastname); | 82 | userProfile = GetTheUser(firstname, lastname); |
83 | if (userProfile == null) | 83 | if (userProfile == null) |
84 | { | 84 | { |
85 | MainLog.Instance.Verbose( | 85 | MainLog.Instance.Verbose( |
86 | "LOGIN", | 86 | "LOGIN", |
87 | "Could not find a profile for " + firstname + " " + lastname); | 87 | "Could not find a profile for " + firstname + " " + lastname); |
88 | 88 | ||
89 | return logResponse.CreateLoginFailedResponse(); | 89 | return logResponse.CreateLoginFailedResponse(); |
90 | } | 90 | } |
91 | 91 | ||
@@ -103,15 +103,14 @@ namespace OpenSim.Framework.UserManagement | |||
103 | else | 103 | else |
104 | { | 104 | { |
105 | // If we already have a session... | 105 | // If we already have a session... |
106 | 106 | ||
107 | if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline) | 107 | if (userProfile.currentAgent != null && userProfile.currentAgent.agentOnline) |
108 | { | 108 | { |
109 | userProfile.currentAgent = null; | 109 | userProfile.currentAgent = null; |
110 | m_userManager.CommitAgent(ref userProfile); | 110 | m_userManager.CommitAgent(ref userProfile); |
111 | 111 | ||
112 | // Reject the login | 112 | // Reject the login |
113 | return logResponse.CreateAlreadyLoggedInResponse(); | 113 | return logResponse.CreateAlreadyLoggedInResponse(); |
114 | |||
115 | } | 114 | } |
116 | // Otherwise... | 115 | // Otherwise... |
117 | // Create a new agent session | 116 | // Create a new agent session |
@@ -132,7 +131,7 @@ namespace OpenSim.Framework.UserManagement | |||
132 | userProfile.rootInventoryFolderID = inventData.RootFolderID; | 131 | userProfile.rootInventoryFolderID = inventData.RootFolderID; |
133 | 132 | ||
134 | // Circuit Code | 133 | // Circuit Code |
135 | uint circode = (uint)(Util.RandomClass.Next()); | 134 | uint circode = (uint) (Util.RandomClass.Next()); |
136 | 135 | ||
137 | logResponse.Lastname = userProfile.surname; | 136 | logResponse.Lastname = userProfile.surname; |
138 | logResponse.Firstname = userProfile.username; | 137 | logResponse.Firstname = userProfile.username; |
@@ -150,7 +149,7 @@ namespace OpenSim.Framework.UserManagement | |||
150 | logResponse.InventoryLibRoot = InventoryLibRoot; | 149 | logResponse.InventoryLibRoot = InventoryLibRoot; |
151 | 150 | ||
152 | logResponse.InventoryLibraryOwner = GetLibraryOwner(); | 151 | logResponse.InventoryLibraryOwner = GetLibraryOwner(); |
153 | logResponse.CircuitCode = (Int32)circode; | 152 | logResponse.CircuitCode = (Int32) circode; |
154 | //logResponse.RegionX = 0; //overwritten | 153 | //logResponse.RegionX = 0; //overwritten |
155 | //logResponse.RegionY = 0; //overwritten | 154 | //logResponse.RegionY = 0; //overwritten |
156 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten | 155 | logResponse.Home = "!!null temporary value {home}!!"; // Overwritten |
@@ -277,7 +276,7 @@ namespace OpenSim.Framework.UserManagement | |||
277 | TempHash["type_default"] = -1; | 276 | TempHash["type_default"] = -1; |
278 | TempHash["folder_id"] = "00000112-000f-0000-0000-000100bba001"; | 277 | TempHash["folder_id"] = "00000112-000f-0000-0000-000100bba001"; |
279 | temp.Add(TempHash); | 278 | temp.Add(TempHash); |
280 | 279 | ||
281 | return temp; | 280 | return temp; |
282 | } | 281 | } |
283 | 282 | ||
@@ -328,4 +327,4 @@ namespace OpenSim.Framework.UserManagement | |||
328 | } | 327 | } |
329 | } | 328 | } |
330 | } | 329 | } |
331 | } | 330 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs b/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs index fd8ce38..e9c7bf3 100644 --- a/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs +++ b/OpenSim/Framework/Communications/Properties/AssemblyInfo.cs | |||
@@ -62,4 +62,4 @@ using System.Runtime.InteropServices; | |||
62 | // by using the '*' as shown below: | 62 | // by using the '*' as shown below: |
63 | 63 | ||
64 | [assembly : AssemblyVersion("1.0.0.0")] | 64 | [assembly : AssemblyVersion("1.0.0.0")] |
65 | [assembly : AssemblyFileVersion("1.0.0.0")] | 65 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/RestClient/RestClient.cs b/OpenSim/Framework/Communications/RestClient/RestClient.cs index 5c77193..1aaf68e 100644 --- a/OpenSim/Framework/Communications/RestClient/RestClient.cs +++ b/OpenSim/Framework/Communications/RestClient/RestClient.cs | |||
@@ -238,7 +238,7 @@ namespace OpenSim.Framework.Communications | |||
238 | } | 238 | } |
239 | } | 239 | } |
240 | realuri = sb.ToString(); | 240 | realuri = sb.ToString(); |
241 | MainLog.Instance.Verbose("REST", "RestURL: {0}", realuri); | 241 | MainLog.Instance.Verbose("REST", "RestURL: {0}", realuri); |
242 | return new Uri(sb.ToString()); | 242 | return new Uri(sb.ToString()); |
243 | } | 243 | } |
244 | 244 | ||
@@ -365,7 +365,7 @@ namespace OpenSim.Framework.Communications | |||
365 | } | 365 | } |
366 | 366 | ||
367 | public Stream Request(Stream src) | 367 | public Stream Request(Stream src) |
368 | { | 368 | { |
369 | _request = (HttpWebRequest) WebRequest.Create(buildUri()); | 369 | _request = (HttpWebRequest) WebRequest.Create(buildUri()); |
370 | _request.KeepAlive = false; | 370 | _request.KeepAlive = false; |
371 | _request.ContentType = "application/xml"; | 371 | _request.ContentType = "application/xml"; |
@@ -374,16 +374,16 @@ namespace OpenSim.Framework.Communications | |||
374 | _asyncException = null; | 374 | _asyncException = null; |
375 | _request.ContentLength = src.Length; | 375 | _request.ContentLength = src.Length; |
376 | 376 | ||
377 | MainLog.Instance.Verbose("REST", "Request Length {0}", _request.ContentLength); | 377 | MainLog.Instance.Verbose("REST", "Request Length {0}", _request.ContentLength); |
378 | MainLog.Instance.Verbose("REST", "Sending Web Request {0}", buildUri()); | 378 | MainLog.Instance.Verbose("REST", "Sending Web Request {0}", buildUri()); |
379 | src.Seek(0, SeekOrigin.Begin); | 379 | src.Seek(0, SeekOrigin.Begin); |
380 | MainLog.Instance.Verbose("REST", "Seek is ok"); | 380 | MainLog.Instance.Verbose("REST", "Seek is ok"); |
381 | Stream dst = _request.GetRequestStream(); | 381 | Stream dst = _request.GetRequestStream(); |
382 | MainLog.Instance.Verbose("REST", "GetRequestStream is ok"); | 382 | MainLog.Instance.Verbose("REST", "GetRequestStream is ok"); |
383 | 383 | ||
384 | byte[] buf = new byte[1024]; | 384 | byte[] buf = new byte[1024]; |
385 | int length = src.Read(buf, 0, 1024); | 385 | int length = src.Read(buf, 0, 1024); |
386 | MainLog.Instance.Verbose("REST", "First Read is ok"); | 386 | MainLog.Instance.Verbose("REST", "First Read is ok"); |
387 | while (length > 0) | 387 | while (length > 0) |
388 | { | 388 | { |
389 | dst.Write(buf, 0, length); | 389 | dst.Write(buf, 0, length); |
@@ -440,4 +440,4 @@ namespace OpenSim.Framework.Communications | |||
440 | 440 | ||
441 | #endregion Async Invocation | 441 | #endregion Async Invocation |
442 | } | 442 | } |
443 | } | 443 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Communications/UserManagerBase.cs b/OpenSim/Framework/Communications/UserManagerBase.cs index d946e00..f913d2c 100644 --- a/OpenSim/Framework/Communications/UserManagerBase.cs +++ b/OpenSim/Framework/Communications/UserManagerBase.cs | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections; | ||
31 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
32 | using System.Reflection; | 31 | using System.Reflection; |
33 | using System.Security.Cryptography; | 32 | using System.Security.Cryptography; |
@@ -93,13 +92,13 @@ namespace OpenSim.Framework.UserManagement | |||
93 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) | 92 | foreach (KeyValuePair<string, IUserData> plugin in _plugins) |
94 | { | 93 | { |
95 | UserProfileData profile = plugin.Value.GetUserByUUID(uuid); | 94 | UserProfileData profile = plugin.Value.GetUserByUUID(uuid); |
96 | 95 | ||
97 | if (null != profile) | 96 | if (null != profile) |
98 | { | 97 | { |
99 | profile.currentAgent = getUserAgent(profile.UUID); | 98 | profile.currentAgent = getUserAgent(profile.UUID); |
100 | return profile; | 99 | return profile; |
101 | } | 100 | } |
102 | } | 101 | } |
103 | 102 | ||
104 | return null; | 103 | return null; |
105 | } | 104 | } |
@@ -112,11 +111,11 @@ namespace OpenSim.Framework.UserManagement | |||
112 | try | 111 | try |
113 | { | 112 | { |
114 | pickerlist = plugin.Value.GeneratePickerResults(queryID, query); | 113 | pickerlist = plugin.Value.GeneratePickerResults(queryID, query); |
115 | |||
116 | } | 114 | } |
117 | catch (Exception) | 115 | catch (Exception) |
118 | { | 116 | { |
119 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to generate AgentPickerData via " + plugin.Key + "(" + query + ")"); | 117 | MainLog.Instance.Verbose("USERSTORAGE", |
118 | "Unable to generate AgentPickerData via " + plugin.Key + "(" + query + ")"); | ||
120 | return new List<AvatarPickerAvatar>(); | 119 | return new List<AvatarPickerAvatar>(); |
121 | } | 120 | } |
122 | } | 121 | } |
@@ -162,7 +161,8 @@ namespace OpenSim.Framework.UserManagement | |||
162 | } | 161 | } |
163 | catch (Exception e) | 162 | catch (Exception e) |
164 | { | 163 | { |
165 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to set user via " + plugin.Key + "(" + e.ToString() + ")"); | 164 | MainLog.Instance.Verbose("USERSTORAGE", |
165 | "Unable to set user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
166 | } | 166 | } |
167 | } | 167 | } |
168 | 168 | ||
@@ -188,7 +188,8 @@ namespace OpenSim.Framework.UserManagement | |||
188 | } | 188 | } |
189 | catch (Exception e) | 189 | catch (Exception e) |
190 | { | 190 | { |
191 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 191 | MainLog.Instance.Verbose("USERSTORAGE", |
192 | "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
192 | } | 193 | } |
193 | } | 194 | } |
194 | 195 | ||
@@ -210,7 +211,8 @@ namespace OpenSim.Framework.UserManagement | |||
210 | } | 211 | } |
211 | catch (Exception e) | 212 | catch (Exception e) |
212 | { | 213 | { |
213 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 214 | MainLog.Instance.Verbose("USERSTORAGE", |
215 | "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
214 | } | 216 | } |
215 | } | 217 | } |
216 | 218 | ||
@@ -222,7 +224,7 @@ namespace OpenSim.Framework.UserManagement | |||
222 | { | 224 | { |
223 | UserProfileData profile = GetUserProfile(agentID); | 225 | UserProfileData profile = GetUserProfile(agentID); |
224 | profile.currentAgent = null; | 226 | profile.currentAgent = null; |
225 | 227 | ||
226 | setUserProfile(profile); | 228 | setUserProfile(profile); |
227 | } | 229 | } |
228 | 230 | ||
@@ -242,7 +244,8 @@ namespace OpenSim.Framework.UserManagement | |||
242 | } | 244 | } |
243 | catch (Exception e) | 245 | catch (Exception e) |
244 | { | 246 | { |
245 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | 247 | MainLog.Instance.Verbose("USERSTORAGE", |
248 | "Unable to find user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
246 | } | 249 | } |
247 | } | 250 | } |
248 | 251 | ||
@@ -356,7 +359,8 @@ namespace OpenSim.Framework.UserManagement | |||
356 | } | 359 | } |
357 | catch (Exception e) | 360 | catch (Exception e) |
358 | { | 361 | { |
359 | MainLog.Instance.Verbose("USERSTORAGE", "Unable to add user via " + plugin.Key + "(" + e.ToString() + ")"); | 362 | MainLog.Instance.Verbose("USERSTORAGE", |
363 | "Unable to add user via " + plugin.Key + "(" + e.ToString() + ")"); | ||
360 | } | 364 | } |
361 | } | 365 | } |
362 | 366 | ||
@@ -365,6 +369,6 @@ namespace OpenSim.Framework.UserManagement | |||
365 | 369 | ||
366 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName); | 370 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName); |
367 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName, string password); | 371 | public abstract UserProfileData SetupMasterUser(string firstName, string lastName, string password); |
368 | public abstract UserProfileData SetupMasterUser(libsecondlife.LLUUID uuid); | 372 | public abstract UserProfileData SetupMasterUser(LLUUID uuid); |
369 | } | 373 | } |
370 | } | 374 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs index b8e64f3..8bb31f8 100644 --- a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs +++ b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs | |||
@@ -136,4 +136,4 @@ namespace OpenSim.Framework.Configuration | |||
136 | doc = null; | 136 | doc = null; |
137 | } | 137 | } |
138 | } | 138 | } |
139 | } | 139 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/ConfigurationMember.cs b/OpenSim/Framework/ConfigurationMember.cs index 271c02c..a5ab613 100644 --- a/OpenSim/Framework/ConfigurationMember.cs +++ b/OpenSim/Framework/ConfigurationMember.cs | |||
@@ -27,24 +27,20 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Reflection; | ||
31 | using System.Collections; | ||
32 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
33 | using System.Text; | 31 | using System.Globalization; |
34 | using System.Net; | 32 | using System.Net; |
33 | using System.Reflection; | ||
35 | using System.Xml; | 34 | using System.Xml; |
36 | |||
37 | using libsecondlife; | 35 | using libsecondlife; |
38 | |||
39 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
40 | using OpenSim.Framework; | ||
41 | using System.Globalization; | ||
42 | 37 | ||
43 | namespace OpenSim.Framework | 38 | namespace OpenSim.Framework |
44 | { | 39 | { |
45 | public class ConfigurationMember | 40 | public class ConfigurationMember |
46 | { | 41 | { |
47 | public delegate bool ConfigurationOptionResult(string configuration_key, object configuration_result); | 42 | public delegate bool ConfigurationOptionResult(string configuration_key, object configuration_result); |
43 | |||
48 | public delegate void ConfigurationOptionsLoad(); | 44 | public delegate void ConfigurationOptionsLoad(); |
49 | 45 | ||
50 | private List<ConfigurationOption> configurationOptions = new List<ConfigurationOption>(); | 46 | private List<ConfigurationOption> configurationOptions = new List<ConfigurationOption>(); |
@@ -55,29 +51,36 @@ namespace OpenSim.Framework | |||
55 | private ConfigurationOptionResult resultFunction; | 51 | private ConfigurationOptionResult resultFunction; |
56 | 52 | ||
57 | private IGenericConfig configurationPlugin = null; | 53 | private IGenericConfig configurationPlugin = null; |
54 | |||
58 | /// <summary> | 55 | /// <summary> |
59 | /// This is the default configuration DLL loaded | 56 | /// This is the default configuration DLL loaded |
60 | /// </summary> | 57 | /// </summary> |
61 | private string configurationPluginFilename = "OpenSim.Framework.Configuration.XML.dll"; | 58 | private string configurationPluginFilename = "OpenSim.Framework.Configuration.XML.dll"; |
62 | public ConfigurationMember(string configuration_filename, string configuration_description, ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) | 59 | |
60 | public ConfigurationMember(string configuration_filename, string configuration_description, | ||
61 | ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) | ||
63 | { | 62 | { |
64 | this.configurationFilename = configuration_filename; | 63 | configurationFilename = configuration_filename; |
65 | this.configurationDescription = configuration_description; | 64 | configurationDescription = configuration_description; |
66 | this.loadFunction = load_function; | 65 | loadFunction = load_function; |
67 | this.resultFunction = result_function; | 66 | resultFunction = result_function; |
68 | } | 67 | } |
69 | public ConfigurationMember(XmlNode configuration_xml, string configuration_description, ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) | 68 | |
69 | public ConfigurationMember(XmlNode configuration_xml, string configuration_description, | ||
70 | ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) | ||
70 | { | 71 | { |
71 | this.configurationFilename = ""; | 72 | configurationFilename = ""; |
72 | this.configurationFromXMLNode = configuration_xml; | 73 | configurationFromXMLNode = configuration_xml; |
73 | this.configurationDescription = configuration_description; | 74 | configurationDescription = configuration_description; |
74 | this.loadFunction = load_function; | 75 | loadFunction = load_function; |
75 | this.resultFunction = result_function; | 76 | resultFunction = result_function; |
76 | } | 77 | } |
78 | |||
77 | public void setConfigurationFilename(string filename) | 79 | public void setConfigurationFilename(string filename) |
78 | { | 80 | { |
79 | configurationFilename = filename; | 81 | configurationFilename = filename; |
80 | } | 82 | } |
83 | |||
81 | public void setConfigurationDescription(string desc) | 84 | public void setConfigurationDescription(string desc) |
82 | { | 85 | { |
83 | configurationDescription = desc; | 86 | configurationDescription = desc; |
@@ -92,9 +95,11 @@ namespace OpenSim.Framework | |||
92 | { | 95 | { |
93 | configurationPluginFilename = dll_filename; | 96 | configurationPluginFilename = dll_filename; |
94 | } | 97 | } |
98 | |||
95 | private void checkAndAddConfigOption(ConfigurationOption option) | 99 | private void checkAndAddConfigOption(ConfigurationOption option) |
96 | { | 100 | { |
97 | if ((option.configurationKey != "" && option.configurationQuestion != "") || (option.configurationKey != "" && option.configurationUseDefaultNoPrompt)) | 101 | if ((option.configurationKey != "" && option.configurationQuestion != "") || |
102 | (option.configurationKey != "" && option.configurationUseDefaultNoPrompt)) | ||
98 | { | 103 | { |
99 | if (!configurationOptions.Contains(option)) | 104 | if (!configurationOptions.Contains(option)) |
100 | { | 105 | { |
@@ -103,11 +108,16 @@ namespace OpenSim.Framework | |||
103 | } | 108 | } |
104 | else | 109 | else |
105 | { | 110 | { |
106 | MainLog.Instance.Notice("Required fields for adding a configuration option is invalid. Will not add this option (" + option.configurationKey + ")"); | 111 | MainLog.Instance.Notice( |
112 | "Required fields for adding a configuration option is invalid. Will not add this option (" + | ||
113 | option.configurationKey + ")"); | ||
107 | } | 114 | } |
108 | } | 115 | } |
109 | 116 | ||
110 | public void addConfigurationOption(string configuration_key, ConfigurationOption.ConfigurationTypes configuration_type, string configuration_question, string configuration_default, bool use_default_no_prompt) | 117 | public void addConfigurationOption(string configuration_key, |
118 | ConfigurationOption.ConfigurationTypes configuration_type, | ||
119 | string configuration_question, string configuration_default, | ||
120 | bool use_default_no_prompt) | ||
111 | { | 121 | { |
112 | ConfigurationOption configOption = new ConfigurationOption(); | 122 | ConfigurationOption configOption = new ConfigurationOption(); |
113 | configOption.configurationKey = configuration_key; | 123 | configOption.configurationKey = configuration_key; |
@@ -119,7 +129,11 @@ namespace OpenSim.Framework | |||
119 | checkAndAddConfigOption(configOption); | 129 | checkAndAddConfigOption(configOption); |
120 | } | 130 | } |
121 | 131 | ||
122 | public void addConfigurationOption(string configuration_key, ConfigurationOption.ConfigurationTypes configuration_type, string configuration_question, string configuration_default, bool use_default_no_prompt, ConfigurationOption.ConfigurationOptionShouldBeAsked shouldIBeAskedDelegate) | 132 | public void addConfigurationOption(string configuration_key, |
133 | ConfigurationOption.ConfigurationTypes configuration_type, | ||
134 | string configuration_question, string configuration_default, | ||
135 | bool use_default_no_prompt, | ||
136 | ConfigurationOption.ConfigurationOptionShouldBeAsked shouldIBeAskedDelegate) | ||
123 | { | 137 | { |
124 | ConfigurationOption configOption = new ConfigurationOption(); | 138 | ConfigurationOption configOption = new ConfigurationOption(); |
125 | configOption.configurationKey = configuration_key; | 139 | configOption.configurationKey = configuration_key; |
@@ -133,26 +147,30 @@ namespace OpenSim.Framework | |||
133 | 147 | ||
134 | public void performConfigurationRetrieve() | 148 | public void performConfigurationRetrieve() |
135 | { | 149 | { |
136 | configurationPlugin = this.LoadConfigDll(configurationPluginFilename); | 150 | configurationPlugin = LoadConfigDll(configurationPluginFilename); |
137 | configurationOptions.Clear(); | 151 | configurationOptions.Clear(); |
138 | if(loadFunction == null) | 152 | if (loadFunction == null) |
139 | { | 153 | { |
140 | MainLog.Instance.Error("Load Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); | 154 | MainLog.Instance.Error("Load Function for '" + configurationDescription + |
155 | "' is null. Refusing to run configuration."); | ||
141 | return; | 156 | return; |
142 | } | 157 | } |
143 | 158 | ||
144 | if(resultFunction == null) | 159 | if (resultFunction == null) |
145 | { | 160 | { |
146 | MainLog.Instance.Error("Result Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); | 161 | MainLog.Instance.Error("Result Function for '" + configurationDescription + |
162 | "' is null. Refusing to run configuration."); | ||
147 | return; | 163 | return; |
148 | } | 164 | } |
149 | 165 | ||
150 | MainLog.Instance.Verbose("CONFIG", "Calling Configuration Load Function..."); | 166 | MainLog.Instance.Verbose("CONFIG", "Calling Configuration Load Function..."); |
151 | this.loadFunction(); | 167 | loadFunction(); |
152 | 168 | ||
153 | if(configurationOptions.Count <= 0) | 169 | if (configurationOptions.Count <= 0) |
154 | { | 170 | { |
155 | MainLog.Instance.Error("CONFIG", "No configuration options were specified for '" + this.configurationOptions + "'. Refusing to continue configuration."); | 171 | MainLog.Instance.Error("CONFIG", |
172 | "No configuration options were specified for '" + configurationOptions + | ||
173 | "'. Refusing to continue configuration."); | ||
156 | return; | 174 | return; |
157 | } | 175 | } |
158 | 176 | ||
@@ -179,7 +197,7 @@ namespace OpenSim.Framework | |||
179 | } | 197 | } |
180 | else | 198 | else |
181 | { | 199 | { |
182 | if (this.configurationFromXMLNode != null) | 200 | if (configurationFromXMLNode != null) |
183 | { | 201 | { |
184 | MainLog.Instance.Notice("Loading from XML Node, will not save to the file"); | 202 | MainLog.Instance.Notice("Loading from XML Node, will not save to the file"); |
185 | configurationPlugin.LoadDataFromString(configurationFromXMLNode.OuterXml); | 203 | configurationPlugin.LoadDataFromString(configurationFromXMLNode.OuterXml); |
@@ -219,15 +237,22 @@ namespace OpenSim.Framework | |||
219 | } | 237 | } |
220 | else | 238 | else |
221 | { | 239 | { |
222 | if ((configOption.shouldIBeAsked != null && configOption.shouldIBeAsked(configOption.configurationKey)) || configOption.shouldIBeAsked == null) | 240 | if ((configOption.shouldIBeAsked != null && |
241 | configOption.shouldIBeAsked(configOption.configurationKey)) || | ||
242 | configOption.shouldIBeAsked == null) | ||
223 | { | 243 | { |
224 | if (configurationDescription.Trim() != "") | 244 | if (configurationDescription.Trim() != "") |
225 | { | 245 | { |
226 | console_result = MainLog.Instance.CmdPrompt(configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault); | 246 | console_result = |
247 | MainLog.Instance.CmdPrompt( | ||
248 | configurationDescription + ": " + configOption.configurationQuestion, | ||
249 | configOption.configurationDefault); | ||
227 | } | 250 | } |
228 | else | 251 | else |
229 | { | 252 | { |
230 | console_result = MainLog.Instance.CmdPrompt(configOption.configurationQuestion, configOption.configurationDefault); | 253 | console_result = |
254 | MainLog.Instance.CmdPrompt(configOption.configurationQuestion, | ||
255 | configOption.configurationDefault); | ||
231 | } | 256 | } |
232 | } | 257 | } |
233 | else | 258 | else |
@@ -235,7 +260,7 @@ namespace OpenSim.Framework | |||
235 | //Dont Ask! Just use default | 260 | //Dont Ask! Just use default |
236 | console_result = configOption.configurationDefault; | 261 | console_result = configOption.configurationDefault; |
237 | } | 262 | } |
238 | } | 263 | } |
239 | } | 264 | } |
240 | else | 265 | else |
241 | { | 266 | { |
@@ -366,7 +391,9 @@ namespace OpenSim.Framework | |||
366 | break; | 391 | break; |
367 | case ConfigurationOption.ConfigurationTypes.TYPE_FLOAT: | 392 | case ConfigurationOption.ConfigurationTypes.TYPE_FLOAT: |
368 | float floatResult; | 393 | float floatResult; |
369 | if (float.TryParse(console_result, NumberStyles.AllowDecimalPoint, Culture.NumberFormatInfo, out floatResult)) | 394 | if ( |
395 | float.TryParse(console_result, NumberStyles.AllowDecimalPoint, Culture.NumberFormatInfo, | ||
396 | out floatResult)) | ||
370 | { | 397 | { |
371 | convertSuccess = true; | 398 | convertSuccess = true; |
372 | return_result = floatResult; | 399 | return_result = floatResult; |
@@ -375,7 +402,9 @@ namespace OpenSim.Framework | |||
375 | break; | 402 | break; |
376 | case ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE: | 403 | case ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE: |
377 | double doubleResult; | 404 | double doubleResult; |
378 | if (Double.TryParse(console_result, NumberStyles.AllowDecimalPoint, Culture.NumberFormatInfo, out doubleResult)) | 405 | if ( |
406 | Double.TryParse(console_result, NumberStyles.AllowDecimalPoint, Culture.NumberFormatInfo, | ||
407 | out doubleResult)) | ||
379 | { | 408 | { |
380 | convertSuccess = true; | 409 | convertSuccess = true; |
381 | return_result = doubleResult; | 410 | return_result = doubleResult; |
@@ -391,9 +420,10 @@ namespace OpenSim.Framework | |||
391 | configurationPlugin.SetAttribute(configOption.configurationKey, console_result); | 420 | configurationPlugin.SetAttribute(configOption.configurationKey, console_result); |
392 | } | 421 | } |
393 | 422 | ||
394 | if (!this.resultFunction(configOption.configurationKey, return_result)) | 423 | if (!resultFunction(configOption.configurationKey, return_result)) |
395 | { | 424 | { |
396 | Console.MainLog.Instance.Notice("The handler for the last configuration option denied that input, please try again."); | 425 | MainLog.Instance.Notice( |
426 | "The handler for the last configuration option denied that input, please try again."); | ||
397 | convertSuccess = false; | 427 | convertSuccess = false; |
398 | ignoreNextFromConfig = true; | 428 | ignoreNextFromConfig = true; |
399 | } | 429 | } |
@@ -402,19 +432,27 @@ namespace OpenSim.Framework | |||
402 | { | 432 | { |
403 | if (configOption.configurationUseDefaultNoPrompt) | 433 | if (configOption.configurationUseDefaultNoPrompt) |
404 | { | 434 | { |
405 | MainLog.Instance.Error("CONFIG", string.Format("[{3}]:[{1}] is not valid default for parameter [{0}].\nThe configuration result must be parsable to {2}.\n", configOption.configurationKey, console_result, errorMessage, configurationFilename)); | 435 | MainLog.Instance.Error("CONFIG", |
436 | string.Format( | ||
437 | "[{3}]:[{1}] is not valid default for parameter [{0}].\nThe configuration result must be parsable to {2}.\n", | ||
438 | configOption.configurationKey, console_result, errorMessage, | ||
439 | configurationFilename)); | ||
406 | convertSuccess = true; | 440 | convertSuccess = true; |
407 | } | 441 | } |
408 | else | 442 | else |
409 | { | 443 | { |
410 | MainLog.Instance.Warn("CONFIG", string.Format("[{3}]:[{1}] is not a valid value [{0}].\nThe configuration result must be parsable to {2}.\n", configOption.configurationKey, console_result, errorMessage, configurationFilename)); | 444 | MainLog.Instance.Warn("CONFIG", |
445 | string.Format( | ||
446 | "[{3}]:[{1}] is not a valid value [{0}].\nThe configuration result must be parsable to {2}.\n", | ||
447 | configOption.configurationKey, console_result, errorMessage, | ||
448 | configurationFilename)); | ||
411 | ignoreNextFromConfig = true; | 449 | ignoreNextFromConfig = true; |
412 | } | 450 | } |
413 | } | 451 | } |
414 | } | 452 | } |
415 | } | 453 | } |
416 | 454 | ||
417 | if(useFile) | 455 | if (useFile) |
418 | { | 456 | { |
419 | configurationPlugin.Commit(); | 457 | configurationPlugin.Commit(); |
420 | configurationPlugin.Close(); | 458 | configurationPlugin.Close(); |
@@ -436,7 +474,8 @@ namespace OpenSim.Framework | |||
436 | 474 | ||
437 | if (typeInterface != null) | 475 | if (typeInterface != null) |
438 | { | 476 | { |
439 | plug = (IGenericConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 477 | plug = |
478 | (IGenericConfig) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
440 | } | 479 | } |
441 | } | 480 | } |
442 | } | 481 | } |
@@ -448,10 +487,10 @@ namespace OpenSim.Framework | |||
448 | 487 | ||
449 | public void forceSetConfigurationOption(string configuration_key, string configuration_value) | 488 | public void forceSetConfigurationOption(string configuration_key, string configuration_value) |
450 | { | 489 | { |
451 | this.configurationPlugin.LoadData(); | 490 | configurationPlugin.LoadData(); |
452 | this.configurationPlugin.SetAttribute(configuration_key, configuration_value); | 491 | configurationPlugin.SetAttribute(configuration_key, configuration_value); |
453 | this.configurationPlugin.Commit(); | 492 | configurationPlugin.Commit(); |
454 | this.configurationPlugin.Close(); | 493 | configurationPlugin.Close(); |
455 | } | 494 | } |
456 | } | 495 | } |
457 | } | 496 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/ConfigurationOption.cs b/OpenSim/Framework/ConfigurationOption.cs index b83be5e..7f9b5b5 100644 --- a/OpenSim/Framework/ConfigurationOption.cs +++ b/OpenSim/Framework/ConfigurationOption.cs | |||
@@ -30,7 +30,6 @@ namespace OpenSim.Framework | |||
30 | { | 30 | { |
31 | public class ConfigurationOption | 31 | public class ConfigurationOption |
32 | { | 32 | { |
33 | |||
34 | public delegate bool ConfigurationOptionShouldBeAsked(string configuration_key); | 33 | public delegate bool ConfigurationOptionShouldBeAsked(string configuration_key); |
35 | 34 | ||
36 | public enum ConfigurationTypes | 35 | public enum ConfigurationTypes |
diff --git a/OpenSim/Framework/Console/AssemblyInfo.cs b/OpenSim/Framework/Console/AssemblyInfo.cs index bba4f95..73ecd18 100644 --- a/OpenSim/Framework/Console/AssemblyInfo.cs +++ b/OpenSim/Framework/Console/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Framework/Console/ConsoleCallbacksBase.cs b/OpenSim/Framework/Console/ConsoleCallbacksBase.cs index 93540aa..606469d 100644 --- a/OpenSim/Framework/Console/ConsoleCallbacksBase.cs +++ b/OpenSim/Framework/Console/ConsoleCallbacksBase.cs | |||
@@ -32,4 +32,4 @@ namespace OpenSim.Framework.Console | |||
32 | void RunCmd(string cmd, string[] cmdparams); | 32 | void RunCmd(string cmd, string[] cmdparams); |
33 | void Show(string ShowWhat); | 33 | void Show(string ShowWhat); |
34 | } | 34 | } |
35 | } | 35 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Console/LogBase.cs b/OpenSim/Framework/Console/LogBase.cs index dd0c5fa..e7b1945 100644 --- a/OpenSim/Framework/Console/LogBase.cs +++ b/OpenSim/Framework/Console/LogBase.cs | |||
@@ -248,12 +248,12 @@ namespace OpenSim.Framework.Console | |||
248 | // Some older systems dont support coloured text. | 248 | // Some older systems dont support coloured text. |
249 | System.Console.WriteLine(format, args); | 249 | System.Console.WriteLine(format, args); |
250 | } | 250 | } |
251 | catch (System.FormatException) | 251 | catch (FormatException) |
252 | { | 252 | { |
253 | // Some older systems dont support coloured text. | 253 | // Some older systems dont support coloured text. |
254 | System.Console.WriteLine(args); | 254 | System.Console.WriteLine(args); |
255 | } | 255 | } |
256 | 256 | ||
257 | return; | 257 | return; |
258 | } | 258 | } |
259 | } | 259 | } |
@@ -479,4 +479,4 @@ namespace OpenSim.Framework.Console | |||
479 | } | 479 | } |
480 | } | 480 | } |
481 | } | 481 | } |
482 | } | 482 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Console/MainLog.cs b/OpenSim/Framework/Console/MainLog.cs index 16ba2c2..bea2a22 100644 --- a/OpenSim/Framework/Console/MainLog.cs +++ b/OpenSim/Framework/Console/MainLog.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Framework.Console | |||
37 | set { instance = value; } | 37 | set { instance = value; } |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.DB4o/DB4oGridData.cs b/OpenSim/Framework/Data.DB4o/DB4oGridData.cs index 00999c2..2637166 100644 --- a/OpenSim/Framework/Data.DB4o/DB4oGridData.cs +++ b/OpenSim/Framework/Data.DB4o/DB4oGridData.cs | |||
@@ -140,16 +140,17 @@ namespace OpenSim.Framework.Data.DB4o | |||
140 | { | 140 | { |
141 | manager = null; | 141 | manager = null; |
142 | } | 142 | } |
143 | |||
143 | /// <summary> | 144 | /// <summary> |
144 | /// // Returns a list of avatar and UUIDs that match the query | 145 | /// // Returns a list of avatar and UUIDs that match the query |
145 | /// </summary> | 146 | /// </summary> |
146 | |||
147 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 147 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
148 | { | 148 | { |
149 | //Do nothing yet | 149 | //Do nothing yet |
150 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); | 150 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); |
151 | return returnlist; | 151 | return returnlist; |
152 | } | 152 | } |
153 | |||
153 | /// <summary> | 154 | /// <summary> |
154 | /// Returns the providers name | 155 | /// Returns the providers name |
155 | /// </summary> | 156 | /// </summary> |
@@ -173,4 +174,4 @@ namespace OpenSim.Framework.Data.DB4o | |||
173 | return null; | 174 | return null; |
174 | } | 175 | } |
175 | } | 176 | } |
176 | } | 177 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.DB4o/DB4oManager.cs b/OpenSim/Framework/Data.DB4o/DB4oManager.cs index cf1dfae..4b1b451 100644 --- a/OpenSim/Framework/Data.DB4o/DB4oManager.cs +++ b/OpenSim/Framework/Data.DB4o/DB4oManager.cs | |||
@@ -167,4 +167,4 @@ namespace OpenSim.Framework.Data.DB4o | |||
167 | } | 167 | } |
168 | } | 168 | } |
169 | } | 169 | } |
170 | } | 170 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs index 383bfbe..e0973f1 100644 --- a/OpenSim/Framework/Data.DB4o/DB4oUserData.cs +++ b/OpenSim/Framework/Data.DB4o/DB4oUserData.cs | |||
@@ -26,8 +26,8 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.IO; | ||
30 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | ||
31 | using libsecondlife; | 31 | using libsecondlife; |
32 | 32 | ||
33 | namespace OpenSim.Framework.Data.DB4o | 33 | namespace OpenSim.Framework.Data.DB4o |
@@ -132,12 +132,14 @@ namespace OpenSim.Framework.Data.DB4o | |||
132 | return null; | 132 | return null; |
133 | } | 133 | } |
134 | } | 134 | } |
135 | public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 135 | |
136 | public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | ||
136 | { | 137 | { |
137 | //Do nothing yet | 138 | //Do nothing yet |
138 | List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); | 139 | List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>(); |
139 | return returnlist; | 140 | return returnlist; |
140 | } | 141 | } |
142 | |||
141 | /// <summary> | 143 | /// <summary> |
142 | /// Creates a new user profile | 144 | /// Creates a new user profile |
143 | /// </summary> | 145 | /// </summary> |
@@ -225,4 +227,4 @@ namespace OpenSim.Framework.Data.DB4o | |||
225 | return "0.1"; | 227 | return "0.1"; |
226 | } | 228 | } |
227 | } | 229 | } |
228 | } | 230 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLAssetData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLAssetData.cs index cc0422c..08fbef0 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLAssetData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLAssetData.cs | |||
@@ -27,18 +27,18 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Data; | ||
31 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Data; | ||
32 | using System.Data.SqlClient; | 32 | using System.Data.SqlClient; |
33 | |||
34 | using libsecondlife; | 33 | using libsecondlife; |
35 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
36 | 35 | ||
37 | namespace OpenSim.Framework.Data.MSSQL | 36 | namespace OpenSim.Framework.Data.MSSQL |
38 | { | 37 | { |
39 | class MSSQLAssetData : IAssetProvider | 38 | internal class MSSQLAssetData : IAssetProvider |
40 | { | 39 | { |
41 | MSSQLManager database; | 40 | private MSSQLManager database; |
41 | |||
42 | #region IAssetProvider Members | 42 | #region IAssetProvider Members |
43 | 43 | ||
44 | private void UpgradeAssetsTable(string tableName) | 44 | private void UpgradeAssetsTable(string tableName) |
@@ -46,7 +46,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
46 | // null as the version, indicates that the table didn't exist | 46 | // null as the version, indicates that the table didn't exist |
47 | if (tableName == null) | 47 | if (tableName == null) |
48 | { | 48 | { |
49 | MainLog.Instance.Notice("ASSETS", "Creating new database tables"); | 49 | MainLog.Instance.Notice("ASSETS", "Creating new database tables"); |
50 | database.ExecuteResourceSql("CreateAssetsTable.sql"); | 50 | database.ExecuteResourceSql("CreateAssetsTable.sql"); |
51 | return; | 51 | return; |
52 | } | 52 | } |
@@ -57,14 +57,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
57 | /// </summary> | 57 | /// </summary> |
58 | private void TestTables() | 58 | private void TestTables() |
59 | { | 59 | { |
60 | |||
61 | Dictionary<string, string> tableList = new Dictionary<string, string>(); | 60 | Dictionary<string, string> tableList = new Dictionary<string, string>(); |
62 | 61 | ||
63 | tableList["assets"] = null; | 62 | tableList["assets"] = null; |
64 | database.GetTableVersion(tableList); | 63 | database.GetTableVersion(tableList); |
65 | 64 | ||
66 | UpgradeAssetsTable(tableList["assets"]); | 65 | UpgradeAssetsTable(tableList["assets"]); |
67 | |||
68 | } | 66 | } |
69 | 67 | ||
70 | public AssetBase FetchAsset(LLUUID assetID) | 68 | public AssetBase FetchAsset(LLUUID assetID) |
@@ -80,30 +78,27 @@ namespace OpenSim.Framework.Data.MSSQL | |||
80 | asset = database.getAssetRow(reader); | 78 | asset = database.getAssetRow(reader); |
81 | reader.Close(); | 79 | reader.Close(); |
82 | result.Dispose(); | 80 | result.Dispose(); |
83 | 81 | ||
84 | return asset; | 82 | return asset; |
85 | } | 83 | } |
86 | 84 | ||
87 | public void CreateAsset(AssetBase asset) | 85 | public void CreateAsset(AssetBase asset) |
88 | { | 86 | { |
89 | 87 | if (ExistsAsset((LLUUID) asset.FullID)) | |
90 | if (ExistsAsset((LLUUID)asset.FullID)) | ||
91 | { | 88 | { |
92 | return; | 89 | return; |
93 | } | 90 | } |
94 | 91 | ||
95 | 92 | ||
96 | |||
97 | SqlCommand cmd = | 93 | SqlCommand cmd = |
98 | new SqlCommand( | 94 | new SqlCommand( |
99 | "INSERT INTO assets ([id], [name], [description], [assetType], [invType], [local], [temporary], [data])"+ | 95 | "INSERT INTO assets ([id], [name], [description], [assetType], [invType], [local], [temporary], [data])" + |
100 | " VALUES "+ | 96 | " VALUES " + |
101 | "(@id, @name, @description, @assetType, @invType, @local, @temporary, @data)", | 97 | "(@id, @name, @description, @assetType, @invType, @local, @temporary, @data)", |
102 | database.getConnection()); | 98 | database.getConnection()); |
103 | 99 | ||
104 | using (cmd) | 100 | using (cmd) |
105 | { | 101 | { |
106 | |||
107 | //SqlParameter p = cmd.Parameters.Add("id", SqlDbType.NVarChar); | 102 | //SqlParameter p = cmd.Parameters.Add("id", SqlDbType.NVarChar); |
108 | //p.Value = asset.FullID.ToString(); | 103 | //p.Value = asset.FullID.ToString(); |
109 | cmd.Parameters.AddWithValue("id", asset.FullID.ToString()); | 104 | cmd.Parameters.AddWithValue("id", asset.FullID.ToString()); |
@@ -127,24 +122,23 @@ namespace OpenSim.Framework.Data.MSSQL | |||
127 | { | 122 | { |
128 | throw; | 123 | throw; |
129 | } | 124 | } |
130 | 125 | ||
131 | cmd.Dispose(); | 126 | cmd.Dispose(); |
132 | } | 127 | } |
133 | |||
134 | } | 128 | } |
135 | 129 | ||
136 | 130 | ||
137 | public void UpdateAsset(AssetBase asset) | 131 | public void UpdateAsset(AssetBase asset) |
138 | { | 132 | { |
139 | SqlCommand command = new SqlCommand("UPDATE assets set id = @id, " + | 133 | SqlCommand command = new SqlCommand("UPDATE assets set id = @id, " + |
140 | "name = @name, " + | 134 | "name = @name, " + |
141 | "description = @description," + | 135 | "description = @description," + |
142 | "assetType = @assetType," + | 136 | "assetType = @assetType," + |
143 | "invType = @invType," + | 137 | "invType = @invType," + |
144 | "local = @local,"+ | 138 | "local = @local," + |
145 | "temporary = @temporary," + | 139 | "temporary = @temporary," + |
146 | "data = @data where " + | 140 | "data = @data where " + |
147 | "id = @keyId;", database.getConnection()); | 141 | "id = @keyId;", database.getConnection()); |
148 | SqlParameter param1 = new SqlParameter("@id", asset.FullID.ToString()); | 142 | SqlParameter param1 = new SqlParameter("@id", asset.FullID.ToString()); |
149 | SqlParameter param2 = new SqlParameter("@name", asset.Name); | 143 | SqlParameter param2 = new SqlParameter("@name", asset.Name); |
150 | SqlParameter param3 = new SqlParameter("@description", asset.Description); | 144 | SqlParameter param3 = new SqlParameter("@description", asset.Description); |
@@ -172,12 +166,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
172 | { | 166 | { |
173 | MainLog.Instance.Error(e.ToString()); | 167 | MainLog.Instance.Error(e.ToString()); |
174 | } | 168 | } |
175 | |||
176 | } | 169 | } |
177 | 170 | ||
178 | public bool ExistsAsset(LLUUID uuid) | 171 | public bool ExistsAsset(LLUUID uuid) |
179 | { | 172 | { |
180 | if (FetchAsset(uuid) != null) { | 173 | if (FetchAsset(uuid) != null) |
174 | { | ||
181 | return true; | 175 | return true; |
182 | } | 176 | } |
183 | return false; | 177 | return false; |
@@ -194,11 +188,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
194 | 188 | ||
195 | #region IPlugin Members | 189 | #region IPlugin Members |
196 | 190 | ||
197 | |||
198 | |||
199 | public void Initialise() | 191 | public void Initialise() |
200 | { | 192 | { |
201 | |||
202 | IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini"); | 193 | IniFile GridDataMySqlFile = new IniFile("mssql_connection.ini"); |
203 | string settingDataSource = GridDataMySqlFile.ParseFileReadValue("data_source"); | 194 | string settingDataSource = GridDataMySqlFile.ParseFileReadValue("data_source"); |
204 | string settingInitialCatalog = GridDataMySqlFile.ParseFileReadValue("initial_catalog"); | 195 | string settingInitialCatalog = GridDataMySqlFile.ParseFileReadValue("initial_catalog"); |
@@ -206,7 +197,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
206 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 197 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
207 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 198 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
208 | 199 | ||
209 | this.database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); | 200 | database = |
201 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | ||
202 | settingPassword); | ||
210 | 203 | ||
211 | TestTables(); | 204 | TestTables(); |
212 | } | 205 | } |
@@ -214,7 +207,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
214 | public string Version | 207 | public string Version |
215 | { | 208 | { |
216 | // get { return database.getVersion(); } | 209 | // get { return database.getVersion(); } |
217 | get { return database.getVersion(); } | 210 | get { return database.getVersion(); } |
218 | } | 211 | } |
219 | 212 | ||
220 | public string Name | 213 | public string Name |
@@ -224,4 +217,4 @@ namespace OpenSim.Framework.Data.MSSQL | |||
224 | 217 | ||
225 | #endregion | 218 | #endregion |
226 | } | 219 | } |
227 | } | 220 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs index 72db568..7d228e6 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLGridData.cs | |||
@@ -57,8 +57,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
57 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 57 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
58 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 58 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
59 | 59 | ||
60 | database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); | 60 | database = |
61 | 61 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | |
62 | settingPassword); | ||
62 | } | 63 | } |
63 | 64 | ||
64 | /// <summary> | 65 | /// <summary> |
@@ -120,14 +121,13 @@ namespace OpenSim.Framework.Data.MSSQL | |||
120 | result.Dispose(); | 121 | result.Dispose(); |
121 | 122 | ||
122 | return row; | 123 | return row; |
123 | |||
124 | } | 124 | } |
125 | catch (Exception) | 125 | catch (Exception) |
126 | { | 126 | { |
127 | if (reader != null) { | 127 | if (reader != null) |
128 | { | ||
128 | reader.Close(); | 129 | reader.Close(); |
129 | } | 130 | } |
130 | |||
131 | } | 131 | } |
132 | return null; | 132 | return null; |
133 | } | 133 | } |
@@ -135,7 +135,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
135 | /// <summary> | 135 | /// <summary> |
136 | /// // Returns a list of avatar and UUIDs that match the query | 136 | /// // Returns a list of avatar and UUIDs that match the query |
137 | /// </summary> | 137 | /// </summary> |
138 | |||
139 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 138 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
140 | { | 139 | { |
141 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); | 140 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); |
@@ -152,18 +151,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
152 | param["second"] = querysplit[1]; | 151 | param["second"] = querysplit[1]; |
153 | 152 | ||
154 | IDbCommand result = | 153 | IDbCommand result = |
155 | database.Query("SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second", param); | 154 | database.Query( |
155 | "SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second", | ||
156 | param); | ||
156 | IDataReader reader = result.ExecuteReader(); | 157 | IDataReader reader = result.ExecuteReader(); |
157 | 158 | ||
158 | 159 | ||
159 | while (reader.Read()) | 160 | while (reader.Read()) |
160 | { | 161 | { |
161 | AvatarPickerAvatar user = new AvatarPickerAvatar(); | 162 | AvatarPickerAvatar user = new AvatarPickerAvatar(); |
162 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 163 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
163 | user.firstName = (string)reader["username"]; | 164 | user.firstName = (string) reader["username"]; |
164 | user.lastName = (string)reader["surname"]; | 165 | user.lastName = (string) reader["surname"]; |
165 | returnlist.Add(user); | 166 | returnlist.Add(user); |
166 | |||
167 | } | 167 | } |
168 | reader.Close(); | 168 | reader.Close(); |
169 | result.Dispose(); | 169 | result.Dispose(); |
@@ -175,13 +175,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
175 | MainLog.Instance.Error(e.ToString()); | 175 | MainLog.Instance.Error(e.ToString()); |
176 | return returnlist; | 176 | return returnlist; |
177 | } | 177 | } |
178 | |||
179 | |||
180 | |||
181 | } | 178 | } |
182 | else if (querysplit.Length == 1) | 179 | else if (querysplit.Length == 1) |
183 | { | 180 | { |
184 | |||
185 | try | 181 | try |
186 | { | 182 | { |
187 | lock (database) | 183 | lock (database) |
@@ -191,18 +187,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
191 | param["second"] = querysplit[1]; | 187 | param["second"] = querysplit[1]; |
192 | 188 | ||
193 | IDbCommand result = | 189 | IDbCommand result = |
194 | database.Query("SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second", param); | 190 | database.Query( |
191 | "SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second", | ||
192 | param); | ||
195 | IDataReader reader = result.ExecuteReader(); | 193 | IDataReader reader = result.ExecuteReader(); |
196 | 194 | ||
197 | 195 | ||
198 | while (reader.Read()) | 196 | while (reader.Read()) |
199 | { | 197 | { |
200 | AvatarPickerAvatar user = new AvatarPickerAvatar(); | 198 | AvatarPickerAvatar user = new AvatarPickerAvatar(); |
201 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 199 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
202 | user.firstName = (string)reader["username"]; | 200 | user.firstName = (string) reader["username"]; |
203 | user.lastName = (string)reader["surname"]; | 201 | user.lastName = (string) reader["surname"]; |
204 | returnlist.Add(user); | 202 | returnlist.Add(user); |
205 | |||
206 | } | 203 | } |
207 | reader.Close(); | 204 | reader.Close(); |
208 | result.Dispose(); | 205 | result.Dispose(); |
@@ -225,8 +222,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
225 | /// <returns>The sim profile</returns> | 222 | /// <returns>The sim profile</returns> |
226 | public RegionProfileData GetProfileByLLUUID(LLUUID uuid) | 223 | public RegionProfileData GetProfileByLLUUID(LLUUID uuid) |
227 | { | 224 | { |
228 | Dictionary<string, string> param = new Dictionary<string, string>(); | 225 | Dictionary<string, string> param = new Dictionary<string, string>(); |
229 | param["uuid"] = uuid.ToString(); | 226 | param["uuid"] = uuid.ToString(); |
230 | IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param); | 227 | IDbCommand result = database.Query("SELECT * FROM regions WHERE uuid = @uuid", param); |
231 | IDataReader reader = result.ExecuteReader(); | 228 | IDataReader reader = result.ExecuteReader(); |
232 | 229 | ||
@@ -244,7 +241,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
244 | /// <returns>A dataresponse enum indicating success</returns> | 241 | /// <returns>A dataresponse enum indicating success</returns> |
245 | public DataResponse AddProfile(RegionProfileData profile) | 242 | public DataResponse AddProfile(RegionProfileData profile) |
246 | { | 243 | { |
247 | |||
248 | try | 244 | try |
249 | { | 245 | { |
250 | if (GetProfileByLLUUID(profile.UUID) != null) | 246 | if (GetProfileByLLUUID(profile.UUID) != null) |
@@ -310,4 +306,4 @@ namespace OpenSim.Framework.Data.MSSQL | |||
310 | return null; | 306 | return null; |
311 | } | 307 | } |
312 | } | 308 | } |
313 | } | 309 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLInventoryData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLInventoryData.cs index a6b8819..4b2c7af 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLInventoryData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLInventoryData.cs | |||
@@ -26,10 +26,9 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.IO; | 29 | using System.Collections.Generic; |
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Data.SqlClient; | 31 | using System.Data.SqlClient; |
32 | using System.Collections.Generic; | ||
33 | using libsecondlife; | 32 | using libsecondlife; |
34 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
35 | 34 | ||
@@ -57,7 +56,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
57 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 56 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
58 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 57 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
59 | 58 | ||
60 | database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); | 59 | database = |
60 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | ||
61 | settingPassword); | ||
61 | TestTables(); | 62 | TestTables(); |
62 | } | 63 | } |
63 | 64 | ||
@@ -72,7 +73,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
72 | //database.ExecuteResourceSql("UpgradeFoldersTableToVersion2.sql"); | 73 | //database.ExecuteResourceSql("UpgradeFoldersTableToVersion2.sql"); |
73 | return; | 74 | return; |
74 | } | 75 | } |
75 | |||
76 | } | 76 | } |
77 | 77 | ||
78 | private void UpgradeItemsTable(string tableName) | 78 | private void UpgradeItemsTable(string tableName) |
@@ -88,17 +88,17 @@ namespace OpenSim.Framework.Data.MSSQL | |||
88 | 88 | ||
89 | private void TestTables() | 89 | private void TestTables() |
90 | { | 90 | { |
91 | |||
92 | Dictionary<string, string> tableList = new Dictionary<string, string>(); | 91 | Dictionary<string, string> tableList = new Dictionary<string, string>(); |
93 | 92 | ||
94 | tableList["inventoryfolders"] = null; | 93 | tableList["inventoryfolders"] = null; |
95 | tableList["inventoryitems"] = null; | 94 | tableList["inventoryitems"] = null; |
96 | 95 | ||
97 | database.GetTableVersion(tableList); | 96 | database.GetTableVersion(tableList); |
98 | 97 | ||
99 | UpgradeFoldersTable(tableList["inventoryfolders"]); | 98 | UpgradeFoldersTable(tableList["inventoryfolders"]); |
100 | UpgradeItemsTable(tableList["inventoryitems"]); | 99 | UpgradeItemsTable(tableList["inventoryitems"]); |
101 | } | 100 | } |
101 | |||
102 | #endregion | 102 | #endregion |
103 | 103 | ||
104 | /// <summary> | 104 | /// <summary> |
@@ -124,7 +124,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
124 | /// <returns>A string containing the DB provider</returns> | 124 | /// <returns>A string containing the DB provider</returns> |
125 | public string getVersion() | 125 | public string getVersion() |
126 | { | 126 | { |
127 | return database.getVersion(); | 127 | return database.getVersion(); |
128 | } | 128 | } |
129 | 129 | ||
130 | /// <summary> | 130 | /// <summary> |
@@ -143,15 +143,16 @@ namespace OpenSim.Framework.Data.MSSQL | |||
143 | Dictionary<string, string> param = new Dictionary<string, string>(); | 143 | Dictionary<string, string> param = new Dictionary<string, string>(); |
144 | param["parentFolderID"] = folderID.ToString(); | 144 | param["parentFolderID"] = folderID.ToString(); |
145 | 145 | ||
146 | IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = @parentFolderID", param); | 146 | IDbCommand result = |
147 | database.Query("SELECT * FROM inventoryitems WHERE parentFolderID = @parentFolderID", param); | ||
147 | IDataReader reader = result.ExecuteReader(); | 148 | IDataReader reader = result.ExecuteReader(); |
148 | 149 | ||
149 | while(reader.Read()) | 150 | while (reader.Read()) |
150 | items.Add(readInventoryItem(reader)); | 151 | items.Add(readInventoryItem(reader)); |
151 | 152 | ||
152 | reader.Close(); | 153 | reader.Close(); |
153 | result.Dispose(); | 154 | result.Dispose(); |
154 | 155 | ||
155 | return items; | 156 | return items; |
156 | } | 157 | } |
157 | } | 158 | } |
@@ -174,16 +175,17 @@ namespace OpenSim.Framework.Data.MSSQL | |||
174 | { | 175 | { |
175 | lock (database) | 176 | lock (database) |
176 | { | 177 | { |
177 | |||
178 | Dictionary<string, string> param = new Dictionary<string, string>(); | 178 | Dictionary<string, string> param = new Dictionary<string, string>(); |
179 | param["uuid"] = user.ToString(); | 179 | param["uuid"] = user.ToString(); |
180 | param["zero"] = LLUUID.Zero.ToString(); | 180 | param["zero"] = LLUUID.Zero.ToString(); |
181 | 181 | ||
182 | IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @zero AND agentID = @uuid", param); | 182 | IDbCommand result = |
183 | database.Query( | ||
184 | "SELECT * FROM inventoryfolders WHERE parentFolderID = @zero AND agentID = @uuid", param); | ||
183 | IDataReader reader = result.ExecuteReader(); | 185 | IDataReader reader = result.ExecuteReader(); |
184 | 186 | ||
185 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); | 187 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); |
186 | while(reader.Read()) | 188 | while (reader.Read()) |
187 | items.Add(readInventoryFolder(reader)); | 189 | items.Add(readInventoryFolder(reader)); |
188 | 190 | ||
189 | 191 | ||
@@ -212,24 +214,27 @@ namespace OpenSim.Framework.Data.MSSQL | |||
212 | param["uuid"] = user.ToString(); | 214 | param["uuid"] = user.ToString(); |
213 | param["zero"] = LLUUID.Zero.ToString(); | 215 | param["zero"] = LLUUID.Zero.ToString(); |
214 | 216 | ||
215 | IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @zero AND agentID = @uuid", param); | 217 | IDbCommand result = |
218 | database.Query( | ||
219 | "SELECT * FROM inventoryfolders WHERE parentFolderID = @zero AND agentID = @uuid", param); | ||
216 | IDataReader reader = result.ExecuteReader(); | 220 | IDataReader reader = result.ExecuteReader(); |
217 | 221 | ||
218 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); | 222 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); |
219 | while(reader.Read()) | 223 | while (reader.Read()) |
220 | items.Add(readInventoryFolder(reader)); | 224 | items.Add(readInventoryFolder(reader)); |
221 | 225 | ||
222 | InventoryFolderBase rootFolder = null; | 226 | InventoryFolderBase rootFolder = null; |
223 | 227 | ||
224 | // There should only ever be one root folder for a user. However, if there's more | 228 | // There should only ever be one root folder for a user. However, if there's more |
225 | // than one we'll simply use the first one rather than failing. It would be even | 229 | // than one we'll simply use the first one rather than failing. It would be even |
226 | // nicer to print some message to this effect, but this feels like it's too low a | 230 | // nicer to print some message to this effect, but this feels like it's too low a |
227 | // to put such a message out, and it's too minor right now to spare the time to | 231 | // to put such a message out, and it's too minor right now to spare the time to |
228 | // suitably refactor. | 232 | // suitably refactor. |
229 | if (items.Count > 0) { | 233 | if (items.Count > 0) |
234 | { | ||
230 | rootFolder = items[0]; | 235 | rootFolder = items[0]; |
231 | } | 236 | } |
232 | 237 | ||
233 | reader.Close(); | 238 | reader.Close(); |
234 | result.Dispose(); | 239 | result.Dispose(); |
235 | 240 | ||
@@ -259,12 +264,13 @@ namespace OpenSim.Framework.Data.MSSQL | |||
259 | param["parentFolderID"] = parentID.ToString(); | 264 | param["parentFolderID"] = parentID.ToString(); |
260 | 265 | ||
261 | 266 | ||
262 | IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @parentFolderID", param); | 267 | IDbCommand result = |
268 | database.Query("SELECT * FROM inventoryfolders WHERE parentFolderID = @parentFolderID", param); | ||
263 | IDataReader reader = result.ExecuteReader(); | 269 | IDataReader reader = result.ExecuteReader(); |
264 | 270 | ||
265 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); | 271 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); |
266 | 272 | ||
267 | while(reader.Read()) | 273 | while (reader.Read()) |
268 | items.Add(readInventoryFolder(reader)); | 274 | items.Add(readInventoryFolder(reader)); |
269 | 275 | ||
270 | reader.Close(); | 276 | reader.Close(); |
@@ -292,17 +298,17 @@ namespace OpenSim.Framework.Data.MSSQL | |||
292 | { | 298 | { |
293 | InventoryItemBase item = new InventoryItemBase(); | 299 | InventoryItemBase item = new InventoryItemBase(); |
294 | 300 | ||
295 | item.inventoryID = new LLUUID((string)reader["inventoryID"]); | 301 | item.inventoryID = new LLUUID((string) reader["inventoryID"]); |
296 | item.assetID = new LLUUID((string)reader["assetID"]); | 302 | item.assetID = new LLUUID((string) reader["assetID"]); |
297 | item.assetType = (int)reader["assetType"]; | 303 | item.assetType = (int) reader["assetType"]; |
298 | item.parentFolderID = new LLUUID((string)reader["parentFolderID"]); | 304 | item.parentFolderID = new LLUUID((string) reader["parentFolderID"]); |
299 | item.avatarID = new LLUUID((string)reader["avatarID"]); | 305 | item.avatarID = new LLUUID((string) reader["avatarID"]); |
300 | item.inventoryName = (string)reader["inventoryName"]; | 306 | item.inventoryName = (string) reader["inventoryName"]; |
301 | item.inventoryDescription = (string)reader["inventoryDescription"]; | 307 | item.inventoryDescription = (string) reader["inventoryDescription"]; |
302 | item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"]); | 308 | item.inventoryNextPermissions = Convert.ToUInt32(reader["inventoryNextPermissions"]); |
303 | item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"]); | 309 | item.inventoryCurrentPermissions = Convert.ToUInt32(reader["inventoryCurrentPermissions"]); |
304 | item.invType = (int)reader["invType"]; | 310 | item.invType = (int) reader["invType"]; |
305 | item.creatorsID = new LLUUID((string)reader["creatorID"]); | 311 | item.creatorsID = new LLUUID((string) reader["creatorID"]); |
306 | item.inventoryBasePermissions = Convert.ToUInt32(reader["inventoryBasePermissions"]); | 312 | item.inventoryBasePermissions = Convert.ToUInt32(reader["inventoryBasePermissions"]); |
307 | item.inventoryEveryOnePermissions = Convert.ToUInt32(reader["inventoryEveryOnePermissions"]); | 313 | item.inventoryEveryOnePermissions = Convert.ToUInt32(reader["inventoryEveryOnePermissions"]); |
308 | return item; | 314 | return item; |
@@ -322,7 +328,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
322 | /// <returns>An inventory item</returns> | 328 | /// <returns>An inventory item</returns> |
323 | public InventoryItemBase getInventoryItem(LLUUID itemID) | 329 | public InventoryItemBase getInventoryItem(LLUUID itemID) |
324 | { | 330 | { |
325 | |||
326 | try | 331 | try |
327 | { | 332 | { |
328 | lock (database) | 333 | lock (database) |
@@ -330,11 +335,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
330 | Dictionary<string, string> param = new Dictionary<string, string>(); | 335 | Dictionary<string, string> param = new Dictionary<string, string>(); |
331 | param["inventoryID"] = itemID.ToString(); | 336 | param["inventoryID"] = itemID.ToString(); |
332 | 337 | ||
333 | IDbCommand result = database.Query("SELECT * FROM inventoryitems WHERE inventoryID = @inventoryID", param); | 338 | IDbCommand result = |
339 | database.Query("SELECT * FROM inventoryitems WHERE inventoryID = @inventoryID", param); | ||
334 | IDataReader reader = result.ExecuteReader(); | 340 | IDataReader reader = result.ExecuteReader(); |
335 | 341 | ||
336 | InventoryItemBase item = null; | 342 | InventoryItemBase item = null; |
337 | if(reader.Read()) | 343 | if (reader.Read()) |
338 | item = readInventoryItem(reader); | 344 | item = readInventoryItem(reader); |
339 | 345 | ||
340 | reader.Close(); | 346 | reader.Close(); |
@@ -361,12 +367,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
361 | try | 367 | try |
362 | { | 368 | { |
363 | InventoryFolderBase folder = new InventoryFolderBase(); | 369 | InventoryFolderBase folder = new InventoryFolderBase(); |
364 | folder.agentID = new LLUUID((string)reader["agentID"]); | 370 | folder.agentID = new LLUUID((string) reader["agentID"]); |
365 | folder.parentID = new LLUUID((string)reader["parentFolderID"]); | 371 | folder.parentID = new LLUUID((string) reader["parentFolderID"]); |
366 | folder.folderID = new LLUUID((string)reader["folderID"]); | 372 | folder.folderID = new LLUUID((string) reader["folderID"]); |
367 | folder.name = (string)reader["folderName"]; | 373 | folder.name = (string) reader["folderName"]; |
368 | folder.type = (short)reader["type"]; | 374 | folder.type = (short) reader["type"]; |
369 | folder.version = (ushort)((int)reader["version"]); | 375 | folder.version = (ushort) ((int) reader["version"]); |
370 | return folder; | 376 | return folder; |
371 | } | 377 | } |
372 | catch (Exception e) | 378 | catch (Exception e) |
@@ -389,7 +395,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
389 | { | 395 | { |
390 | lock (database) | 396 | lock (database) |
391 | { | 397 | { |
392 | Dictionary<string, string> param = new Dictionary<string,string>(); | 398 | Dictionary<string, string> param = new Dictionary<string, string>(); |
393 | param["uuid"] = folderID.ToString(); | 399 | param["uuid"] = folderID.ToString(); |
394 | 400 | ||
395 | IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = @uuid", param); | 401 | IDbCommand result = database.Query("SELECT * FROM inventoryfolders WHERE folderID = @uuid", param); |
@@ -418,8 +424,10 @@ namespace OpenSim.Framework.Data.MSSQL | |||
418 | public void addInventoryItem(InventoryItemBase item) | 424 | public void addInventoryItem(InventoryItemBase item) |
419 | { | 425 | { |
420 | string sql = "INSERT INTO inventoryitems"; | 426 | string sql = "INSERT INTO inventoryitems"; |
421 | sql += "([inventoryID], [assetID], [assetType], [parentFolderID], [avatarID], [inventoryName], [inventoryDescription], [inventoryNextPermissions], [inventoryCurrentPermissions], [invType], [creatorID], [inventoryBasePermissions], [inventoryEveryOnePermissions]) VALUES "; | 427 | sql += |
422 | sql += "(@inventoryID, @assetID, @assetType, @parentFolderID, @avatarID, @inventoryName, @inventoryDescription, @inventoryNextPermissions, @inventoryCurrentPermissions, @invType, @creatorID, @inventoryBasePermissions, @inventoryEveryOnePermissions);"; | 428 | "([inventoryID], [assetID], [assetType], [parentFolderID], [avatarID], [inventoryName], [inventoryDescription], [inventoryNextPermissions], [inventoryCurrentPermissions], [invType], [creatorID], [inventoryBasePermissions], [inventoryEveryOnePermissions]) VALUES "; |
429 | sql += | ||
430 | "(@inventoryID, @assetID, @assetType, @parentFolderID, @avatarID, @inventoryName, @inventoryDescription, @inventoryNextPermissions, @inventoryCurrentPermissions, @invType, @creatorID, @inventoryBasePermissions, @inventoryEveryOnePermissions);"; | ||
423 | 431 | ||
424 | try | 432 | try |
425 | { | 433 | { |
@@ -441,7 +449,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
441 | IDbCommand result = database.Query(sql, param); | 449 | IDbCommand result = database.Query(sql, param); |
442 | result.ExecuteNonQuery(); | 450 | result.ExecuteNonQuery(); |
443 | result.Dispose(); | 451 | result.Dispose(); |
444 | |||
445 | } | 452 | } |
446 | catch (SqlException e) | 453 | catch (SqlException e) |
447 | { | 454 | { |
@@ -454,21 +461,21 @@ namespace OpenSim.Framework.Data.MSSQL | |||
454 | /// </summary> | 461 | /// </summary> |
455 | /// <param name="item">Inventory item to update</param> | 462 | /// <param name="item">Inventory item to update</param> |
456 | public void updateInventoryItem(InventoryItemBase item) | 463 | public void updateInventoryItem(InventoryItemBase item) |
457 | { | 464 | { |
458 | SqlCommand command = new SqlCommand("UPDATE inventoryitems set inventoryID = @inventoryID, " + | 465 | SqlCommand command = new SqlCommand("UPDATE inventoryitems set inventoryID = @inventoryID, " + |
459 | "assetID = @assetID, " + | 466 | "assetID = @assetID, " + |
460 | "assetType = @assetType" + | 467 | "assetType = @assetType" + |
461 | "parentFolderID = @parentFolderID" + | 468 | "parentFolderID = @parentFolderID" + |
462 | "avatarID = @avatarID" + | 469 | "avatarID = @avatarID" + |
463 | "inventoryName = @inventoryName"+ | 470 | "inventoryName = @inventoryName" + |
464 | "inventoryDescription = @inventoryDescription" + | 471 | "inventoryDescription = @inventoryDescription" + |
465 | "inventoryNextPermissions = @inventoryNextPermissions" + | 472 | "inventoryNextPermissions = @inventoryNextPermissions" + |
466 | "inventoryCurrentPermissions = @inventoryCurrentPermissions" + | 473 | "inventoryCurrentPermissions = @inventoryCurrentPermissions" + |
467 | "invType = @invType" + | 474 | "invType = @invType" + |
468 | "creatorID = @creatorID" + | 475 | "creatorID = @creatorID" + |
469 | "inventoryBasePermissions = @inventoryBasePermissions" + | 476 | "inventoryBasePermissions = @inventoryBasePermissions" + |
470 | "inventoryEveryOnePermissions = @inventoryEveryOnePermissions) where " + | 477 | "inventoryEveryOnePermissions = @inventoryEveryOnePermissions) where " + |
471 | "invenoryID = @keyInventoryID;", database.getConnection()); | 478 | "invenoryID = @keyInventoryID;", database.getConnection()); |
472 | SqlParameter param1 = new SqlParameter("@inventoryID", item.inventoryID.ToString()); | 479 | SqlParameter param1 = new SqlParameter("@inventoryID", item.inventoryID.ToString()); |
473 | SqlParameter param2 = new SqlParameter("@assetID", item.assetID); | 480 | SqlParameter param2 = new SqlParameter("@assetID", item.assetID); |
474 | SqlParameter param3 = new SqlParameter("@assetType", item.assetType); | 481 | SqlParameter param3 = new SqlParameter("@assetType", item.assetType); |
@@ -481,7 +488,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
481 | SqlParameter param10 = new SqlParameter("@invType", item.invType); | 488 | SqlParameter param10 = new SqlParameter("@invType", item.invType); |
482 | SqlParameter param11 = new SqlParameter("@creatorID", item.creatorsID); | 489 | SqlParameter param11 = new SqlParameter("@creatorID", item.creatorsID); |
483 | SqlParameter param12 = new SqlParameter("@inventoryBasePermissions", item.inventoryBasePermissions); | 490 | SqlParameter param12 = new SqlParameter("@inventoryBasePermissions", item.inventoryBasePermissions); |
484 | SqlParameter param13 = new SqlParameter("@inventoryEveryOnePermissions", item.inventoryEveryOnePermissions); | 491 | SqlParameter param13 = new SqlParameter("@inventoryEveryOnePermissions", item.inventoryEveryOnePermissions); |
485 | SqlParameter param14 = new SqlParameter("@keyInventoryID", item.inventoryID.ToString()); | 492 | SqlParameter param14 = new SqlParameter("@keyInventoryID", item.inventoryID.ToString()); |
486 | command.Parameters.Add(param1); | 493 | command.Parameters.Add(param1); |
487 | command.Parameters.Add(param2); | 494 | command.Parameters.Add(param2); |
@@ -506,7 +513,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
506 | { | 513 | { |
507 | MainLog.Instance.Error(e.ToString()); | 514 | MainLog.Instance.Error(e.ToString()); |
508 | } | 515 | } |
509 | |||
510 | } | 516 | } |
511 | 517 | ||
512 | /// <summary> | 518 | /// <summary> |
@@ -523,8 +529,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
523 | IDbCommand cmd = database.Query("DELETE FROM inventoryitems WHERE inventoryID=@uuid", param); | 529 | IDbCommand cmd = database.Query("DELETE FROM inventoryitems WHERE inventoryID=@uuid", param); |
524 | cmd.ExecuteNonQuery(); | 530 | cmd.ExecuteNonQuery(); |
525 | cmd.Dispose(); | 531 | cmd.Dispose(); |
526 | |||
527 | |||
528 | } | 532 | } |
529 | catch (SqlException e) | 533 | catch (SqlException e) |
530 | { | 534 | { |
@@ -539,7 +543,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
539 | /// <param name="folder">Folder to create</param> | 543 | /// <param name="folder">Folder to create</param> |
540 | public void addInventoryFolder(InventoryFolderBase folder) | 544 | public void addInventoryFolder(InventoryFolderBase folder) |
541 | { | 545 | { |
542 | string sql = "INSERT INTO inventoryfolders ([folderID], [agentID], [parentFolderID], [folderName], [type], [version]) VALUES "; | 546 | string sql = |
547 | "INSERT INTO inventoryfolders ([folderID], [agentID], [parentFolderID], [folderName], [type], [version]) VALUES "; | ||
543 | sql += "(@folderID, @agentID, @parentFolderID, @folderName, @type, @version);"; | 548 | sql += "(@folderID, @agentID, @parentFolderID, @folderName, @type, @version);"; |
544 | 549 | ||
545 | 550 | ||
@@ -550,9 +555,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
550 | param["folderName"] = folder.name; | 555 | param["folderName"] = folder.name; |
551 | param["type"] = Convert.ToString(folder.type); | 556 | param["type"] = Convert.ToString(folder.type); |
552 | param["version"] = Convert.ToString(folder.version); | 557 | param["version"] = Convert.ToString(folder.version); |
553 | 558 | ||
554 | try | 559 | try |
555 | { | 560 | { |
556 | IDbCommand result = database.Query(sql, param); | 561 | IDbCommand result = database.Query(sql, param); |
557 | result.ExecuteNonQuery(); | 562 | result.ExecuteNonQuery(); |
558 | result.Dispose(); | 563 | result.Dispose(); |
@@ -567,16 +572,15 @@ namespace OpenSim.Framework.Data.MSSQL | |||
567 | /// Updates an inventory folder | 572 | /// Updates an inventory folder |
568 | /// </summary> | 573 | /// </summary> |
569 | /// <param name="folder">Folder to update</param> | 574 | /// <param name="folder">Folder to update</param> |
570 | |||
571 | public void updateInventoryFolder(InventoryFolderBase folder) | 575 | public void updateInventoryFolder(InventoryFolderBase folder) |
572 | { | 576 | { |
573 | SqlCommand command = new SqlCommand("UPDATE inventoryfolders set folderID = @folderID, " + | 577 | SqlCommand command = new SqlCommand("UPDATE inventoryfolders set folderID = @folderID, " + |
574 | "agentID = @agentID, " + | 578 | "agentID = @agentID, " + |
575 | "parentFolderID = @parentFolderID," + | 579 | "parentFolderID = @parentFolderID," + |
576 | "folderName = @folderName," + | 580 | "folderName = @folderName," + |
577 | "type = @type," + | 581 | "type = @type," + |
578 | "version = @version where " + | 582 | "version = @version where " + |
579 | "folderID = @keyFolderID;", database.getConnection()); | 583 | "folderID = @keyFolderID;", database.getConnection()); |
580 | SqlParameter param1 = new SqlParameter("@folderID", folder.folderID.ToString()); | 584 | SqlParameter param1 = new SqlParameter("@folderID", folder.folderID.ToString()); |
581 | SqlParameter param2 = new SqlParameter("@agentID", folder.agentID.ToString()); | 585 | SqlParameter param2 = new SqlParameter("@agentID", folder.agentID.ToString()); |
582 | SqlParameter param3 = new SqlParameter("@parentFolderID", folder.parentID.ToString()); | 586 | SqlParameter param3 = new SqlParameter("@parentFolderID", folder.parentID.ToString()); |
@@ -600,20 +604,17 @@ namespace OpenSim.Framework.Data.MSSQL | |||
600 | { | 604 | { |
601 | MainLog.Instance.Error(e.ToString()); | 605 | MainLog.Instance.Error(e.ToString()); |
602 | } | 606 | } |
603 | |||
604 | |||
605 | } | 607 | } |
606 | 608 | ||
607 | /// <summary> | 609 | /// <summary> |
608 | /// Updates an inventory folder | 610 | /// Updates an inventory folder |
609 | /// </summary> | 611 | /// </summary> |
610 | /// <param name="folder">Folder to update</param> | 612 | /// <param name="folder">Folder to update</param> |
611 | |||
612 | public void moveInventoryFolder(InventoryFolderBase folder) | 613 | public void moveInventoryFolder(InventoryFolderBase folder) |
613 | { | 614 | { |
614 | SqlCommand command = new SqlCommand("UPDATE inventoryfolders set folderID = @folderID, " + | 615 | SqlCommand command = new SqlCommand("UPDATE inventoryfolders set folderID = @folderID, " + |
615 | "parentFolderID = @parentFolderID," + | 616 | "parentFolderID = @parentFolderID," + |
616 | "folderID = @keyFolderID;", database.getConnection()); | 617 | "folderID = @keyFolderID;", database.getConnection()); |
617 | SqlParameter param1 = new SqlParameter("@folderID", folder.folderID.ToString()); | 618 | SqlParameter param1 = new SqlParameter("@folderID", folder.folderID.ToString()); |
618 | SqlParameter param2 = new SqlParameter("@parentFolderID", folder.parentID.ToString()); | 619 | SqlParameter param2 = new SqlParameter("@parentFolderID", folder.parentID.ToString()); |
619 | SqlParameter param3 = new SqlParameter("@keyFolderID", folder.folderID.ToString()); | 620 | SqlParameter param3 = new SqlParameter("@keyFolderID", folder.folderID.ToString()); |
@@ -629,8 +630,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
629 | { | 630 | { |
630 | MainLog.Instance.Error(e.ToString()); | 631 | MainLog.Instance.Error(e.ToString()); |
631 | } | 632 | } |
632 | |||
633 | |||
634 | } | 633 | } |
635 | 634 | ||
636 | /// <summary> | 635 | /// <summary> |
@@ -645,7 +644,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
645 | foreach (InventoryFolderBase f in subfolderList) | 644 | foreach (InventoryFolderBase f in subfolderList) |
646 | folders.Add(f); | 645 | folders.Add(f); |
647 | } | 646 | } |
648 | 647 | ||
649 | /// <summary> | 648 | /// <summary> |
650 | /// Returns all child folders in the hierarchy from the parent folder and down | 649 | /// Returns all child folders in the hierarchy from the parent folder and down |
651 | /// </summary> | 650 | /// </summary> |
@@ -672,7 +671,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
672 | IDbCommand cmd = database.Query("DELETE FROM inventoryfolders WHERE folderID=@folderID", param); | 671 | IDbCommand cmd = database.Query("DELETE FROM inventoryfolders WHERE folderID=@folderID", param); |
673 | cmd.ExecuteNonQuery(); | 672 | cmd.ExecuteNonQuery(); |
674 | cmd.Dispose(); | 673 | cmd.Dispose(); |
675 | |||
676 | } | 674 | } |
677 | catch (SqlException e) | 675 | catch (SqlException e) |
678 | { | 676 | { |
@@ -689,7 +687,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
689 | param["parentFolderID"] = folderID.ToString(); | 687 | param["parentFolderID"] = folderID.ToString(); |
690 | 688 | ||
691 | 689 | ||
692 | IDbCommand cmd = database.Query("DELETE FROM inventoryitems WHERE parentFolderID=@parentFolderID", param); | 690 | IDbCommand cmd = |
691 | database.Query("DELETE FROM inventoryitems WHERE parentFolderID=@parentFolderID", param); | ||
693 | cmd.ExecuteNonQuery(); | 692 | cmd.ExecuteNonQuery(); |
694 | cmd.Dispose(); | 693 | cmd.Dispose(); |
695 | } | 694 | } |
@@ -724,4 +723,4 @@ namespace OpenSim.Framework.Data.MSSQL | |||
724 | } | 723 | } |
725 | } | 724 | } |
726 | } | 725 | } |
727 | } | 726 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLLogData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLLogData.cs index a5b33ec..c3ec7c6 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLLogData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLLogData.cs | |||
@@ -25,14 +25,12 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | |||
30 | namespace OpenSim.Framework.Data.MSSQL | 28 | namespace OpenSim.Framework.Data.MSSQL |
31 | { | 29 | { |
32 | /// <summary> | 30 | /// <summary> |
33 | /// An interface to the log database for MySQL | 31 | /// An interface to the log database for MySQL |
34 | /// </summary> | 32 | /// </summary> |
35 | class MSSQLLogData : ILogData | 33 | internal class MSSQLLogData : ILogData |
36 | { | 34 | { |
37 | /// <summary> | 35 | /// <summary> |
38 | /// The database manager | 36 | /// The database manager |
@@ -51,7 +49,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
51 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 49 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
52 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 50 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
53 | 51 | ||
54 | database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); | 52 | database = |
53 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | ||
54 | settingPassword); | ||
55 | } | 55 | } |
56 | 56 | ||
57 | /// <summary> | 57 | /// <summary> |
@@ -63,7 +63,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
63 | /// <param name="arguments">The arguments passed to the method</param> | 63 | /// <param name="arguments">The arguments passed to the method</param> |
64 | /// <param name="priority">How critical is this?</param> | 64 | /// <param name="priority">How critical is this?</param> |
65 | /// <param name="logMessage">The message to log</param> | 65 | /// <param name="logMessage">The message to log</param> |
66 | public void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage) | 66 | public void saveLog(string serverDaemon, string target, string methodCall, string arguments, int priority, |
67 | string logMessage) | ||
67 | { | 68 | { |
68 | try | 69 | try |
69 | { | 70 | { |
@@ -101,4 +102,4 @@ namespace OpenSim.Framework.Data.MSSQL | |||
101 | return "0.1"; | 102 | return "0.1"; |
102 | } | 103 | } |
103 | } | 104 | } |
104 | } | 105 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs b/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs index b009a56..0dc3338 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLManager.cs | |||
@@ -25,6 +25,7 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | |||
28 | using System; | 29 | using System; |
29 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
30 | using System.Data; | 31 | using System.Data; |
@@ -32,7 +33,6 @@ using System.Data.SqlClient; | |||
32 | using System.IO; | 33 | using System.IO; |
33 | using System.Reflection; | 34 | using System.Reflection; |
34 | using libsecondlife; | 35 | using libsecondlife; |
35 | |||
36 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
37 | 37 | ||
38 | namespace OpenSim.Framework.Data.MSSQL | 38 | namespace OpenSim.Framework.Data.MSSQL |
@@ -40,12 +40,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
40 | /// <summary> | 40 | /// <summary> |
41 | /// A management class for the MS SQL Storage Engine | 41 | /// A management class for the MS SQL Storage Engine |
42 | /// </summary> | 42 | /// </summary> |
43 | class MSSQLManager | 43 | internal class MSSQLManager |
44 | { | 44 | { |
45 | /// <summary> | 45 | /// <summary> |
46 | /// The database connection object | 46 | /// The database connection object |
47 | /// </summary> | 47 | /// </summary> |
48 | IDbConnection dbcon; | 48 | private IDbConnection dbcon; |
49 | 49 | ||
50 | /// <summary> | 50 | /// <summary> |
51 | /// Connection string for ADO.net | 51 | /// Connection string for ADO.net |
@@ -60,12 +60,14 @@ namespace OpenSim.Framework.Data.MSSQL | |||
60 | /// <param name="username">The username logging into the database</param> | 60 | /// <param name="username">The username logging into the database</param> |
61 | /// <param name="password">The password for the user logging in</param> | 61 | /// <param name="password">The password for the user logging in</param> |
62 | /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param> | 62 | /// <param name="cpooling">Whether to use connection pooling or not, can be one of the following: 'yes', 'true', 'no' or 'false', if unsure use 'false'.</param> |
63 | public MSSQLManager(string dataSource, string initialCatalog, string persistSecurityInfo, string userId, string password) | 63 | public MSSQLManager(string dataSource, string initialCatalog, string persistSecurityInfo, string userId, |
64 | string password) | ||
64 | { | 65 | { |
65 | try | 66 | try |
66 | { | 67 | { |
67 | 68 | connectionString = "Data Source=" + dataSource + ";Initial Catalog=" + initialCatalog + | |
68 | connectionString = "Data Source=" + dataSource + ";Initial Catalog=" + initialCatalog + ";Persist Security Info=" + persistSecurityInfo + ";User ID=" + userId + ";Password=" + password+";"; | 69 | ";Persist Security Info=" + persistSecurityInfo + ";User ID=" + userId + ";Password=" + |
70 | password + ";"; | ||
69 | dbcon = new SqlConnection(connectionString); | 71 | dbcon = new SqlConnection(connectionString); |
70 | TestTables(dbcon); | 72 | TestTables(dbcon); |
71 | dbcon.Open(); | 73 | dbcon.Open(); |
@@ -78,7 +80,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
78 | 80 | ||
79 | private bool TestTables(IDbConnection conn) | 81 | private bool TestTables(IDbConnection conn) |
80 | { | 82 | { |
81 | IDbCommand cmd = this.Query("SELECT * FROM regions", new Dictionary<string, string>()); | 83 | IDbCommand cmd = Query("SELECT * FROM regions", new Dictionary<string, string>()); |
82 | //SqlCommand cmd = (SqlCommand)dbcon.CreateCommand(); | 84 | //SqlCommand cmd = (SqlCommand)dbcon.CreateCommand(); |
83 | //cmd.CommandText = "SELECT * FROM regions"; | 85 | //cmd.CommandText = "SELECT * FROM regions"; |
84 | try | 86 | try |
@@ -90,7 +92,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
90 | } | 92 | } |
91 | catch (Exception) | 93 | catch (Exception) |
92 | { | 94 | { |
93 | MainLog.Instance.Verbose("DATASTORE", "MSSQL Database doesn't exist... creating"); | 95 | MainLog.Instance.Verbose("DATASTORE", "MSSQL Database doesn't exist... creating"); |
94 | InitDB(conn); | 96 | InitDB(conn); |
95 | } | 97 | } |
96 | return true; | 98 | return true; |
@@ -100,66 +102,66 @@ namespace OpenSim.Framework.Data.MSSQL | |||
100 | { | 102 | { |
101 | string createRegions = defineTable(createRegionsTable()); | 103 | string createRegions = defineTable(createRegionsTable()); |
102 | Dictionary<string, string> param = new Dictionary<string, string>(); | 104 | Dictionary<string, string> param = new Dictionary<string, string>(); |
103 | IDbCommand pcmd = this.Query(createRegions, param); | 105 | IDbCommand pcmd = Query(createRegions, param); |
104 | if (conn.State == ConnectionState.Closed) { | 106 | if (conn.State == ConnectionState.Closed) |
107 | { | ||
105 | conn.Open(); | 108 | conn.Open(); |
106 | } | 109 | } |
107 | pcmd.ExecuteNonQuery(); | 110 | pcmd.ExecuteNonQuery(); |
108 | pcmd.Dispose(); | 111 | pcmd.Dispose(); |
109 | 112 | ||
110 | this.ExecuteResourceSql("Mssql-users.sql"); | 113 | ExecuteResourceSql("Mssql-users.sql"); |
111 | this.ExecuteResourceSql("Mssql-agents.sql"); | 114 | ExecuteResourceSql("Mssql-agents.sql"); |
112 | this.ExecuteResourceSql("Mssql-logs.sql"); | 115 | ExecuteResourceSql("Mssql-logs.sql"); |
113 | 116 | ||
114 | conn.Close(); | 117 | conn.Close(); |
115 | |||
116 | } | 118 | } |
117 | 119 | ||
118 | private DataTable createRegionsTable() | 120 | private DataTable createRegionsTable() |
119 | { | 121 | { |
120 | DataTable regions = new DataTable("regions"); | 122 | DataTable regions = new DataTable("regions"); |
121 | 123 | ||
122 | createCol(regions, "regionHandle", typeof(ulong)); | 124 | createCol(regions, "regionHandle", typeof (ulong)); |
123 | createCol(regions, "regionName", typeof(System.String)); | 125 | createCol(regions, "regionName", typeof (String)); |
124 | createCol(regions, "uuid", typeof(System.String)); | 126 | createCol(regions, "uuid", typeof (String)); |
125 | 127 | ||
126 | createCol(regions, "regionRecvKey", typeof(System.String)); | 128 | createCol(regions, "regionRecvKey", typeof (String)); |
127 | createCol(regions, "regionSecret", typeof(System.String)); | 129 | createCol(regions, "regionSecret", typeof (String)); |
128 | createCol(regions, "regionSendKey", typeof(System.String)); | 130 | createCol(regions, "regionSendKey", typeof (String)); |
129 | 131 | ||
130 | createCol(regions, "regionDataURI", typeof(System.String)); | 132 | createCol(regions, "regionDataURI", typeof (String)); |
131 | createCol(regions, "serverIP", typeof(System.String)); | 133 | createCol(regions, "serverIP", typeof (String)); |
132 | createCol(regions, "serverPort", typeof(System.String)); | 134 | createCol(regions, "serverPort", typeof (String)); |
133 | createCol(regions, "serverURI", typeof(System.String)); | 135 | createCol(regions, "serverURI", typeof (String)); |
134 | 136 | ||
135 | 137 | ||
136 | createCol(regions, "locX", typeof(uint)); | 138 | createCol(regions, "locX", typeof (uint)); |
137 | createCol(regions, "locY", typeof(uint)); | 139 | createCol(regions, "locY", typeof (uint)); |
138 | createCol(regions, "locZ", typeof(uint)); | 140 | createCol(regions, "locZ", typeof (uint)); |
139 | 141 | ||
140 | createCol(regions, "eastOverrideHandle", typeof(ulong)); | 142 | createCol(regions, "eastOverrideHandle", typeof (ulong)); |
141 | createCol(regions, "westOverrideHandle", typeof(ulong)); | 143 | createCol(regions, "westOverrideHandle", typeof (ulong)); |
142 | createCol(regions, "southOverrideHandle", typeof(ulong)); | 144 | createCol(regions, "southOverrideHandle", typeof (ulong)); |
143 | createCol(regions, "northOverrideHandle", typeof(ulong)); | 145 | createCol(regions, "northOverrideHandle", typeof (ulong)); |
144 | 146 | ||
145 | createCol(regions, "regionAssetURI", typeof(System.String)); | 147 | createCol(regions, "regionAssetURI", typeof (String)); |
146 | createCol(regions, "regionAssetRecvKey", typeof(System.String)); | 148 | createCol(regions, "regionAssetRecvKey", typeof (String)); |
147 | createCol(regions, "regionAssetSendKey", typeof(System.String)); | 149 | createCol(regions, "regionAssetSendKey", typeof (String)); |
148 | 150 | ||
149 | createCol(regions, "regionUserURI", typeof(System.String)); | 151 | createCol(regions, "regionUserURI", typeof (String)); |
150 | createCol(regions, "regionUserRecvKey", typeof(System.String)); | 152 | createCol(regions, "regionUserRecvKey", typeof (String)); |
151 | createCol(regions, "regionUserSendKey", typeof(System.String)); | 153 | createCol(regions, "regionUserSendKey", typeof (String)); |
152 | 154 | ||
153 | createCol(regions, "regionMapTexture", typeof(System.String)); | 155 | createCol(regions, "regionMapTexture", typeof (String)); |
154 | createCol(regions, "serverHttpPort", typeof(System.String)); | 156 | createCol(regions, "serverHttpPort", typeof (String)); |
155 | createCol(regions, "serverRemotingPort", typeof(uint)); | 157 | createCol(regions, "serverRemotingPort", typeof (uint)); |
156 | 158 | ||
157 | // Add in contraints | 159 | // Add in contraints |
158 | regions.PrimaryKey = new DataColumn[] { regions.Columns["UUID"] }; | 160 | regions.PrimaryKey = new DataColumn[] {regions.Columns["UUID"]}; |
159 | return regions; | 161 | return regions; |
160 | } | 162 | } |
161 | 163 | ||
162 | protected static void createCol(DataTable dt, string name, System.Type type) | 164 | protected static void createCol(DataTable dt, string name, Type type) |
163 | { | 165 | { |
164 | DataColumn col = new DataColumn(name, type); | 166 | DataColumn col = new DataColumn(name, type); |
165 | dt.Columns.Add(col); | 167 | dt.Columns.Add(col); |
@@ -172,10 +174,11 @@ namespace OpenSim.Framework.Data.MSSQL | |||
172 | foreach (DataColumn col in dt.Columns) | 174 | foreach (DataColumn col in dt.Columns) |
173 | { | 175 | { |
174 | if (subsql.Length > 0) | 176 | if (subsql.Length > 0) |
175 | { // a map function would rock so much here | 177 | { |
178 | // a map function would rock so much here | ||
176 | subsql += ",\n"; | 179 | subsql += ",\n"; |
177 | } | 180 | } |
178 | 181 | ||
179 | subsql += col.ColumnName + " " + SqlType(col.DataType); | 182 | subsql += col.ColumnName + " " + SqlType(col.DataType); |
180 | if (col == dt.PrimaryKey[0]) | 183 | if (col == dt.PrimaryKey[0]) |
181 | { | 184 | { |
@@ -192,19 +195,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
192 | // slightly differently. | 195 | // slightly differently. |
193 | private static string SqlType(Type type) | 196 | private static string SqlType(Type type) |
194 | { | 197 | { |
195 | if (type == typeof(System.String)) | 198 | if (type == typeof (String)) |
196 | { | 199 | { |
197 | return "varchar(255)"; | 200 | return "varchar(255)"; |
198 | } | 201 | } |
199 | else if (type == typeof(System.Int32)) | 202 | else if (type == typeof (Int32)) |
200 | { | 203 | { |
201 | return "integer"; | 204 | return "integer"; |
202 | } | 205 | } |
203 | else if (type == typeof(System.Double)) | 206 | else if (type == typeof (Double)) |
204 | { | 207 | { |
205 | return "float"; | 208 | return "float"; |
206 | } | 209 | } |
207 | else if (type == typeof(System.Byte[])) | 210 | else if (type == typeof (Byte[])) |
208 | { | 211 | { |
209 | return "image"; | 212 | return "image"; |
210 | } | 213 | } |
@@ -254,14 +257,14 @@ namespace OpenSim.Framework.Data.MSSQL | |||
254 | /// <returns>A Sql DB Command</returns> | 257 | /// <returns>A Sql DB Command</returns> |
255 | public IDbCommand Query(string sql, Dictionary<string, string> parameters) | 258 | public IDbCommand Query(string sql, Dictionary<string, string> parameters) |
256 | { | 259 | { |
257 | SqlCommand dbcommand = (SqlCommand)dbcon.CreateCommand(); | 260 | SqlCommand dbcommand = (SqlCommand) dbcon.CreateCommand(); |
258 | dbcommand.CommandText = sql; | 261 | dbcommand.CommandText = sql; |
259 | foreach (KeyValuePair<string, string> param in parameters) | 262 | foreach (KeyValuePair<string, string> param in parameters) |
260 | { | 263 | { |
261 | dbcommand.Parameters.AddWithValue(param.Key, param.Value); | 264 | dbcommand.Parameters.AddWithValue(param.Key, param.Value); |
262 | } | 265 | } |
263 | 266 | ||
264 | return (IDbCommand)dbcommand; | 267 | return (IDbCommand) dbcommand; |
265 | } | 268 | } |
266 | 269 | ||
267 | /// <summary> | 270 | /// <summary> |
@@ -277,20 +280,20 @@ namespace OpenSim.Framework.Data.MSSQL | |||
277 | { | 280 | { |
278 | // Region Main | 281 | // Region Main |
279 | regionprofile.regionHandle = Convert.ToUInt64(reader["regionHandle"]); | 282 | regionprofile.regionHandle = Convert.ToUInt64(reader["regionHandle"]); |
280 | regionprofile.regionName = (string)reader["regionName"]; | 283 | regionprofile.regionName = (string) reader["regionName"]; |
281 | regionprofile.UUID = new LLUUID((string)reader["uuid"]); | 284 | regionprofile.UUID = new LLUUID((string) reader["uuid"]); |
282 | 285 | ||
283 | // Secrets | 286 | // Secrets |
284 | regionprofile.regionRecvKey = (string)reader["regionRecvKey"]; | 287 | regionprofile.regionRecvKey = (string) reader["regionRecvKey"]; |
285 | regionprofile.regionSecret = (string)reader["regionSecret"]; | 288 | regionprofile.regionSecret = (string) reader["regionSecret"]; |
286 | regionprofile.regionSendKey = (string)reader["regionSendKey"]; | 289 | regionprofile.regionSendKey = (string) reader["regionSendKey"]; |
287 | 290 | ||
288 | // Region Server | 291 | // Region Server |
289 | regionprofile.regionDataURI = (string)reader["regionDataURI"]; | 292 | regionprofile.regionDataURI = (string) reader["regionDataURI"]; |
290 | regionprofile.regionOnline = false; // Needs to be pinged before this can be set. | 293 | regionprofile.regionOnline = false; // Needs to be pinged before this can be set. |
291 | regionprofile.serverIP = (string)reader["serverIP"]; | 294 | regionprofile.serverIP = (string) reader["serverIP"]; |
292 | regionprofile.serverPort = Convert.ToUInt32(reader["serverPort"]); | 295 | regionprofile.serverPort = Convert.ToUInt32(reader["serverPort"]); |
293 | regionprofile.serverURI = (string)reader["serverURI"]; | 296 | regionprofile.serverURI = (string) reader["serverURI"]; |
294 | regionprofile.httpPort = Convert.ToUInt32(reader["serverHttpPort"]); | 297 | regionprofile.httpPort = Convert.ToUInt32(reader["serverHttpPort"]); |
295 | regionprofile.remotingPort = Convert.ToUInt32(reader["serverRemotingPort"]); | 298 | regionprofile.remotingPort = Convert.ToUInt32(reader["serverRemotingPort"]); |
296 | 299 | ||
@@ -307,14 +310,14 @@ namespace OpenSim.Framework.Data.MSSQL | |||
307 | regionprofile.regionNorthOverrideHandle = Convert.ToUInt64(reader["northOverrideHandle"]); | 310 | regionprofile.regionNorthOverrideHandle = Convert.ToUInt64(reader["northOverrideHandle"]); |
308 | 311 | ||
309 | // Assets | 312 | // Assets |
310 | regionprofile.regionAssetURI = (string)reader["regionAssetURI"]; | 313 | regionprofile.regionAssetURI = (string) reader["regionAssetURI"]; |
311 | regionprofile.regionAssetRecvKey = (string)reader["regionAssetRecvKey"]; | 314 | regionprofile.regionAssetRecvKey = (string) reader["regionAssetRecvKey"]; |
312 | regionprofile.regionAssetSendKey = (string)reader["regionAssetSendKey"]; | 315 | regionprofile.regionAssetSendKey = (string) reader["regionAssetSendKey"]; |
313 | 316 | ||
314 | // Userserver | 317 | // Userserver |
315 | regionprofile.regionUserURI = (string)reader["regionUserURI"]; | 318 | regionprofile.regionUserURI = (string) reader["regionUserURI"]; |
316 | regionprofile.regionUserRecvKey = (string)reader["regionUserRecvKey"]; | 319 | regionprofile.regionUserRecvKey = (string) reader["regionUserRecvKey"]; |
317 | regionprofile.regionUserSendKey = (string)reader["regionUserSendKey"]; | 320 | regionprofile.regionUserSendKey = (string) reader["regionUserSendKey"]; |
318 | 321 | ||
319 | // World Map Addition | 322 | // World Map Addition |
320 | string tempRegionMap = reader["regionMapTexture"].ToString(); | 323 | string tempRegionMap = reader["regionMapTexture"].ToString(); |
@@ -331,7 +334,6 @@ namespace OpenSim.Framework.Data.MSSQL | |||
331 | { | 334 | { |
332 | reader.Close(); | 335 | reader.Close(); |
333 | throw new Exception("No rows to return"); | 336 | throw new Exception("No rows to return"); |
334 | |||
335 | } | 337 | } |
336 | return regionprofile; | 338 | return regionprofile; |
337 | } | 339 | } |
@@ -347,12 +349,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
347 | 349 | ||
348 | if (reader.Read()) | 350 | if (reader.Read()) |
349 | { | 351 | { |
350 | retval.UUID = new LLUUID((string)reader["UUID"]); | 352 | retval.UUID = new LLUUID((string) reader["UUID"]); |
351 | retval.username = (string)reader["username"]; | 353 | retval.username = (string) reader["username"]; |
352 | retval.surname = (string)reader["lastname"]; | 354 | retval.surname = (string) reader["lastname"]; |
353 | 355 | ||
354 | retval.passwordHash = (string)reader["passwordHash"]; | 356 | retval.passwordHash = (string) reader["passwordHash"]; |
355 | retval.passwordSalt = (string)reader["passwordSalt"]; | 357 | retval.passwordSalt = (string) reader["passwordSalt"]; |
356 | 358 | ||
357 | retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString()); | 359 | retval.homeRegion = Convert.ToUInt64(reader["homeRegion"].ToString()); |
358 | retval.homeLocation = new LLVector3( | 360 | retval.homeLocation = new LLVector3( |
@@ -367,18 +369,17 @@ namespace OpenSim.Framework.Data.MSSQL | |||
367 | retval.created = Convert.ToInt32(reader["created"].ToString()); | 369 | retval.created = Convert.ToInt32(reader["created"].ToString()); |
368 | retval.lastLogin = Convert.ToInt32(reader["lastLogin"].ToString()); | 370 | retval.lastLogin = Convert.ToInt32(reader["lastLogin"].ToString()); |
369 | 371 | ||
370 | retval.userInventoryURI = (string)reader["userInventoryURI"]; | 372 | retval.userInventoryURI = (string) reader["userInventoryURI"]; |
371 | retval.userAssetURI = (string)reader["userAssetURI"]; | 373 | retval.userAssetURI = (string) reader["userAssetURI"]; |
372 | 374 | ||
373 | retval.profileCanDoMask = Convert.ToUInt32(reader["profileCanDoMask"].ToString()); | 375 | retval.profileCanDoMask = Convert.ToUInt32(reader["profileCanDoMask"].ToString()); |
374 | retval.profileWantDoMask = Convert.ToUInt32(reader["profileWantDoMask"].ToString()); | 376 | retval.profileWantDoMask = Convert.ToUInt32(reader["profileWantDoMask"].ToString()); |
375 | 377 | ||
376 | retval.profileAboutText = (string)reader["profileAboutText"]; | 378 | retval.profileAboutText = (string) reader["profileAboutText"]; |
377 | retval.profileFirstText = (string)reader["profileFirstText"]; | 379 | retval.profileFirstText = (string) reader["profileFirstText"]; |
378 | |||
379 | retval.profileImage = new LLUUID((string)reader["profileImage"]); | ||
380 | retval.profileFirstImage = new LLUUID((string)reader["profileFirstImage"]); | ||
381 | 380 | ||
381 | retval.profileImage = new LLUUID((string) reader["profileImage"]); | ||
382 | retval.profileFirstImage = new LLUUID((string) reader["profileFirstImage"]); | ||
382 | } | 383 | } |
383 | else | 384 | else |
384 | { | 385 | { |
@@ -399,12 +400,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
399 | if (reader.Read()) | 400 | if (reader.Read()) |
400 | { | 401 | { |
401 | // Agent IDs | 402 | // Agent IDs |
402 | retval.UUID = new LLUUID((string)reader["UUID"]); | 403 | retval.UUID = new LLUUID((string) reader["UUID"]); |
403 | retval.sessionID = new LLUUID((string)reader["sessionID"]); | 404 | retval.sessionID = new LLUUID((string) reader["sessionID"]); |
404 | retval.secureSessionID = new LLUUID((string)reader["secureSessionID"]); | 405 | retval.secureSessionID = new LLUUID((string) reader["secureSessionID"]); |
405 | 406 | ||
406 | // Agent Who? | 407 | // Agent Who? |
407 | retval.agentIP = (string)reader["agentIP"]; | 408 | retval.agentIP = (string) reader["agentIP"]; |
408 | retval.agentPort = Convert.ToUInt32(reader["agentPort"].ToString()); | 409 | retval.agentPort = Convert.ToUInt32(reader["agentPort"].ToString()); |
409 | retval.agentOnline = Convert.ToBoolean(reader["agentOnline"].ToString()); | 410 | retval.agentOnline = Convert.ToBoolean(reader["agentOnline"].ToString()); |
410 | 411 | ||
@@ -413,9 +414,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
413 | retval.logoutTime = Convert.ToInt32(reader["logoutTime"].ToString()); | 414 | retval.logoutTime = Convert.ToInt32(reader["logoutTime"].ToString()); |
414 | 415 | ||
415 | // Current position | 416 | // Current position |
416 | retval.currentRegion = (string)reader["currentRegion"]; | 417 | retval.currentRegion = (string) reader["currentRegion"]; |
417 | retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString()); | 418 | retval.currentHandle = Convert.ToUInt64(reader["currentHandle"].ToString()); |
418 | LLVector3.TryParse((string)reader["currentPos"], out retval.currentPos); | 419 | LLVector3.TryParse((string) reader["currentPos"], out retval.currentPos); |
419 | } | 420 | } |
420 | else | 421 | else |
421 | { | 422 | { |
@@ -426,20 +427,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
426 | 427 | ||
427 | public AssetBase getAssetRow(IDataReader reader) | 428 | public AssetBase getAssetRow(IDataReader reader) |
428 | { | 429 | { |
429 | AssetBase asset = new AssetBase(); | 430 | AssetBase asset = new AssetBase(); |
430 | if (reader.Read()) | 431 | if (reader.Read()) |
431 | { | 432 | { |
432 | // Region Main | 433 | // Region Main |
433 | 434 | ||
434 | asset = new AssetBase(); | 435 | asset = new AssetBase(); |
435 | asset.Data = (byte[])reader["data"]; | 436 | asset.Data = (byte[]) reader["data"]; |
436 | asset.Description = (string)reader["description"]; | 437 | asset.Description = (string) reader["description"]; |
437 | asset.FullID = new LLUUID((string)reader["id"]); | 438 | asset.FullID = new LLUUID((string) reader["id"]); |
438 | asset.InvType = Convert.ToSByte(reader["invType"]); | 439 | asset.InvType = Convert.ToSByte(reader["invType"]); |
439 | asset.Local = Convert.ToBoolean(reader["local"]); // ((sbyte)reader["local"]) != 0 ? true : false; | 440 | asset.Local = Convert.ToBoolean(reader["local"]); // ((sbyte)reader["local"]) != 0 ? true : false; |
440 | asset.Name = (string)reader["name"]; | 441 | asset.Name = (string) reader["name"]; |
441 | asset.Type = Convert.ToSByte(reader["assetType"]); | 442 | asset.Type = Convert.ToSByte(reader["assetType"]); |
442 | |||
443 | } | 443 | } |
444 | else | 444 | else |
445 | { | 445 | { |
@@ -455,15 +455,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
455 | /// <returns>Successful?</returns> | 455 | /// <returns>Successful?</returns> |
456 | public bool insertRegionRow(RegionProfileData profile) | 456 | public bool insertRegionRow(RegionProfileData profile) |
457 | { | 457 | { |
458 | |||
459 | //Insert new region | 458 | //Insert new region |
460 | string sql = "INSERT INTO regions ([regionHandle], [regionName], [uuid], [regionRecvKey], [regionSecret], [regionSendKey], [regionDataURI], "; | 459 | string sql = |
461 | sql += "[serverIP], [serverPort], [serverURI], [locX], [locY], [locZ], [eastOverrideHandle], [westOverrideHandle], [southOverrideHandle], [northOverrideHandle], [regionAssetURI], [regionAssetRecvKey], "; | 460 | "INSERT INTO regions ([regionHandle], [regionName], [uuid], [regionRecvKey], [regionSecret], [regionSendKey], [regionDataURI], "; |
462 | sql += "[regionAssetSendKey], [regionUserURI], [regionUserRecvKey], [regionUserSendKey], [regionMapTexture], [serverHttpPort], [serverRemotingPort]) VALUES "; | 461 | sql += |
462 | "[serverIP], [serverPort], [serverURI], [locX], [locY], [locZ], [eastOverrideHandle], [westOverrideHandle], [southOverrideHandle], [northOverrideHandle], [regionAssetURI], [regionAssetRecvKey], "; | ||
463 | sql += | ||
464 | "[regionAssetSendKey], [regionUserURI], [regionUserRecvKey], [regionUserSendKey], [regionMapTexture], [serverHttpPort], [serverRemotingPort]) VALUES "; | ||
463 | 465 | ||
464 | sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, "; | 466 | sql += "(@regionHandle, @regionName, @uuid, @regionRecvKey, @regionSecret, @regionSendKey, @regionDataURI, "; |
465 | sql += "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, "; | 467 | sql += |
466 | sql += "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey, @regionMapTexture, @serverHttpPort, @serverRemotingPort);"; | 468 | "@serverIP, @serverPort, @serverURI, @locX, @locY, @locZ, @eastOverrideHandle, @westOverrideHandle, @southOverrideHandle, @northOverrideHandle, @regionAssetURI, @regionAssetRecvKey, "; |
469 | sql += | ||
470 | "@regionAssetSendKey, @regionUserURI, @regionUserRecvKey, @regionUserSendKey, @regionMapTexture, @serverHttpPort, @serverRemotingPort);"; | ||
467 | 471 | ||
468 | Dictionary<string, string> parameters = new Dictionary<string, string>(); | 472 | Dictionary<string, string> parameters = new Dictionary<string, string>(); |
469 | 473 | ||
@@ -498,9 +502,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
498 | bool returnval = false; | 502 | bool returnval = false; |
499 | 503 | ||
500 | try | 504 | try |
501 | { | 505 | { |
502 | IDbCommand result = Query(sql, parameters); | 506 | IDbCommand result = Query(sql, parameters); |
503 | 507 | ||
504 | if (result.ExecuteNonQuery() == 1) | 508 | if (result.ExecuteNonQuery() == 1) |
505 | returnval = true; | 509 | returnval = true; |
506 | 510 | ||
@@ -509,15 +513,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
509 | catch (Exception e) | 513 | catch (Exception e) |
510 | { | 514 | { |
511 | MainLog.Instance.Error("MSSQLManager : " + e.ToString()); | 515 | MainLog.Instance.Error("MSSQLManager : " + e.ToString()); |
512 | |||
513 | } | 516 | } |
514 | 517 | ||
515 | return returnval; | 518 | return returnval; |
516 | |||
517 | } | 519 | } |
518 | 520 | ||
519 | 521 | ||
520 | |||
521 | /// <summary> | 522 | /// <summary> |
522 | /// Inserts a new row into the log database | 523 | /// Inserts a new row into the log database |
523 | /// </summary> | 524 | /// </summary> |
@@ -528,7 +529,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
528 | /// <param name="priority">How critical is this?</param> | 529 | /// <param name="priority">How critical is this?</param> |
529 | /// <param name="logMessage">Extra message info</param> | 530 | /// <param name="logMessage">Extra message info</param> |
530 | /// <returns>Saved successfully?</returns> | 531 | /// <returns>Saved successfully?</returns> |
531 | public bool insertLogRow(string serverDaemon, string target, string methodCall, string arguments, int priority, string logMessage) | 532 | public bool insertLogRow(string serverDaemon, string target, string methodCall, string arguments, int priority, |
533 | string logMessage) | ||
532 | { | 534 | { |
533 | string sql = "INSERT INTO logs ([target], [server], [method], [arguments], [priority], [message]) VALUES "; | 535 | string sql = "INSERT INTO logs ([target], [server], [method], [arguments], [priority], [message]) VALUES "; |
534 | sql += "(@target, @server, @method, @arguments, @priority, @message);"; | 536 | sql += "(@target, @server, @method, @arguments, @priority, @message);"; |
@@ -588,19 +590,26 @@ namespace OpenSim.Framework.Data.MSSQL | |||
588 | /// <param name="profileImage">UUID for profile image</param> | 590 | /// <param name="profileImage">UUID for profile image</param> |
589 | /// <param name="firstImage">UUID for firstlife image</param> | 591 | /// <param name="firstImage">UUID for firstlife image</param> |
590 | /// <returns>Success?</returns> | 592 | /// <returns>Success?</returns> |
591 | public bool insertUserRow(libsecondlife.LLUUID uuid, string username, string lastname, string passwordHash, string passwordSalt, UInt64 homeRegion, float homeLocX, float homeLocY, float homeLocZ, | 593 | public bool insertUserRow(LLUUID uuid, string username, string lastname, string passwordHash, |
592 | float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin, string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask, string aboutText, string firstText, | 594 | string passwordSalt, UInt64 homeRegion, float homeLocX, float homeLocY, float homeLocZ, |
593 | libsecondlife.LLUUID profileImage, libsecondlife.LLUUID firstImage) | 595 | float homeLookAtX, float homeLookAtY, float homeLookAtZ, int created, int lastlogin, |
596 | string inventoryURI, string assetURI, uint canDoMask, uint wantDoMask, | ||
597 | string aboutText, string firstText, | ||
598 | LLUUID profileImage, LLUUID firstImage) | ||
594 | { | 599 | { |
595 | string sql = "INSERT INTO users "; | 600 | string sql = "INSERT INTO users "; |
596 | sql += "([UUID], [username], [lastname], [passwordHash], [passwordSalt], [homeRegion], "; | 601 | sql += "([UUID], [username], [lastname], [passwordHash], [passwordSalt], [homeRegion], "; |
597 | sql += "[homeLocationX], [homeLocationY], [homeLocationZ], [homeLookAtX], [homeLookAtY], [homeLookAtZ], [created], "; | 602 | sql += |
598 | sql += "[lastLogin], [userInventoryURI], [userAssetURI], [profileCanDoMask], [profileWantDoMask], [profileAboutText], "; | 603 | "[homeLocationX], [homeLocationY], [homeLocationZ], [homeLookAtX], [homeLookAtY], [homeLookAtZ], [created], "; |
604 | sql += | ||
605 | "[lastLogin], [userInventoryURI], [userAssetURI], [profileCanDoMask], [profileWantDoMask], [profileAboutText], "; | ||
599 | sql += "[profileFirstText], [profileImage], [profileFirstImage]) VALUES "; | 606 | sql += "[profileFirstText], [profileImage], [profileFirstImage]) VALUES "; |
600 | 607 | ||
601 | sql += "(@UUID, @username, @lastname, @passwordHash, @passwordSalt, @homeRegion, "; | 608 | sql += "(@UUID, @username, @lastname, @passwordHash, @passwordSalt, @homeRegion, "; |
602 | sql += "@homeLocationX, @homeLocationY, @homeLocationZ, @homeLookAtX, @homeLookAtY, @homeLookAtZ, @created, "; | 609 | sql += |
603 | sql += "@lastLogin, @userInventoryURI, @userAssetURI, @profileCanDoMask, @profileWantDoMask, @profileAboutText, "; | 610 | "@homeLocationX, @homeLocationY, @homeLocationZ, @homeLookAtX, @homeLookAtY, @homeLookAtZ, @created, "; |
611 | sql += | ||
612 | "@lastLogin, @userInventoryURI, @userAssetURI, @profileCanDoMask, @profileWantDoMask, @profileAboutText, "; | ||
604 | sql += "@profileFirstText, @profileImage, @profileFirstImage);"; | 613 | sql += "@profileFirstText, @profileImage, @profileFirstImage);"; |
605 | 614 | ||
606 | Dictionary<string, string> parameters = new Dictionary<string, string>(); | 615 | Dictionary<string, string> parameters = new Dictionary<string, string>(); |
@@ -624,13 +633,13 @@ namespace OpenSim.Framework.Data.MSSQL | |||
624 | parameters["profileWantDoMask"] = "0"; | 633 | parameters["profileWantDoMask"] = "0"; |
625 | parameters["profileAboutText"] = ""; | 634 | parameters["profileAboutText"] = ""; |
626 | parameters["profileFirstText"] = ""; | 635 | parameters["profileFirstText"] = ""; |
627 | parameters["profileImage"] = libsecondlife.LLUUID.Zero.ToString(); | 636 | parameters["profileImage"] = LLUUID.Zero.ToString(); |
628 | parameters["profileFirstImage"] = libsecondlife.LLUUID.Zero.ToString(); | 637 | parameters["profileFirstImage"] = LLUUID.Zero.ToString(); |
629 | 638 | ||
630 | bool returnval = false; | 639 | bool returnval = false; |
631 | 640 | ||
632 | try | 641 | try |
633 | { | 642 | { |
634 | IDbCommand result = Query(sql, parameters); | 643 | IDbCommand result = Query(sql, parameters); |
635 | 644 | ||
636 | if (result.ExecuteNonQuery() == 1) | 645 | if (result.ExecuteNonQuery() == 1) |
@@ -655,8 +664,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
655 | { | 664 | { |
656 | try | 665 | try |
657 | { | 666 | { |
658 | 667 | SqlCommand cmd = new SqlCommand(getResourceString(name), (SqlConnection) dbcon); | |
659 | SqlCommand cmd = new SqlCommand(getResourceString(name), (SqlConnection)dbcon); | ||
660 | cmd.ExecuteNonQuery(); | 668 | cmd.ExecuteNonQuery(); |
661 | cmd.Dispose(); | 669 | cmd.Dispose(); |
662 | } | 670 | } |
@@ -668,7 +676,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
668 | 676 | ||
669 | public SqlConnection getConnection() | 677 | public SqlConnection getConnection() |
670 | { | 678 | { |
671 | return (SqlConnection)dbcon; | 679 | return (SqlConnection) dbcon; |
672 | } | 680 | } |
673 | 681 | ||
674 | /// <summary> | 682 | /// <summary> |
@@ -681,14 +689,15 @@ namespace OpenSim.Framework.Data.MSSQL | |||
681 | { | 689 | { |
682 | Dictionary<string, string> param = new Dictionary<string, string>(); | 690 | Dictionary<string, string> param = new Dictionary<string, string>(); |
683 | param["dbname"] = dbcon.Database; | 691 | param["dbname"] = dbcon.Database; |
684 | IDbCommand tablesCmd = this.Query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_CATALOG=@dbname", param); | 692 | IDbCommand tablesCmd = |
693 | Query("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_CATALOG=@dbname", param); | ||
685 | using (IDataReader tables = tablesCmd.ExecuteReader()) | 694 | using (IDataReader tables = tablesCmd.ExecuteReader()) |
686 | { | 695 | { |
687 | while (tables.Read()) | 696 | while (tables.Read()) |
688 | { | 697 | { |
689 | try | 698 | try |
690 | { | 699 | { |
691 | string tableName = (string)tables["TABLE_NAME"]; | 700 | string tableName = (string) tables["TABLE_NAME"]; |
692 | if (tableList.ContainsKey(tableName)) | 701 | if (tableList.ContainsKey(tableName)) |
693 | tableList[tableName] = tableName; | 702 | tableList[tableName] = tableName; |
694 | } | 703 | } |
@@ -704,7 +713,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
704 | 713 | ||
705 | private string getResourceString(string name) | 714 | private string getResourceString(string name) |
706 | { | 715 | { |
707 | Assembly assem = this.GetType().Assembly; | 716 | Assembly assem = GetType().Assembly; |
708 | string[] names = assem.GetManifestResourceNames(); | 717 | string[] names = assem.GetManifestResourceNames(); |
709 | 718 | ||
710 | foreach (string s in names) | 719 | foreach (string s in names) |
@@ -726,16 +735,14 @@ namespace OpenSim.Framework.Data.MSSQL | |||
726 | /// <returns>A string containing the DB provider</returns> | 735 | /// <returns>A string containing the DB provider</returns> |
727 | public string getVersion() | 736 | public string getVersion() |
728 | { | 737 | { |
729 | System.Reflection.Module module = this.GetType().Module; | 738 | Module module = GetType().Module; |
730 | string dllName = module.Assembly.ManifestModule.Name; | 739 | string dllName = module.Assembly.ManifestModule.Name; |
731 | Version dllVersion = module.Assembly.GetName().Version; | 740 | Version dllVersion = module.Assembly.GetName().Version; |
732 | 741 | ||
733 | 742 | ||
734 | return string.Format("{0}.{1}.{2}.{3}", dllVersion.Major, dllVersion.Minor, dllVersion.Build, dllVersion.Revision); | 743 | return |
744 | string.Format("{0}.{1}.{2}.{3}", dllVersion.Major, dllVersion.Minor, dllVersion.Build, | ||
745 | dllVersion.Revision); | ||
735 | } | 746 | } |
736 | |||
737 | } | 747 | } |
738 | 748 | } \ No newline at end of file | |
739 | |||
740 | |||
741 | } | ||
diff --git a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs index eac9826..01ef559 100644 --- a/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs +++ b/OpenSim/Framework/Data.MSSQL/MSSQLUserData.cs | |||
@@ -37,7 +37,7 @@ namespace OpenSim.Framework.Data.MSSQL | |||
37 | /// <summary> | 37 | /// <summary> |
38 | /// A database interface class to a user profile storage system | 38 | /// A database interface class to a user profile storage system |
39 | /// </summary> | 39 | /// </summary> |
40 | class MSSQLUserData : IUserData | 40 | internal class MSSQLUserData : IUserData |
41 | { | 41 | { |
42 | /// <summary> | 42 | /// <summary> |
43 | /// Database manager for MySQL | 43 | /// Database manager for MySQL |
@@ -58,7 +58,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
58 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 58 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
59 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 59 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
60 | 60 | ||
61 | database = new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, settingPassword); | 61 | database = |
62 | new MSSQLManager(settingDataSource, settingInitialCatalog, settingPersistSecurityInfo, settingUserId, | ||
63 | settingPassword); | ||
62 | } | 64 | } |
63 | 65 | ||
64 | /// <summary> | 66 | /// <summary> |
@@ -77,11 +79,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
77 | param["first"] = user; | 79 | param["first"] = user; |
78 | param["second"] = last; | 80 | param["second"] = last; |
79 | 81 | ||
80 | IDbCommand result = database.Query("SELECT * FROM users WHERE username = @first AND lastname = @second", param); | 82 | IDbCommand result = |
83 | database.Query("SELECT * FROM users WHERE username = @first AND lastname = @second", param); | ||
81 | IDataReader reader = result.ExecuteReader(); | 84 | IDataReader reader = result.ExecuteReader(); |
82 | 85 | ||
83 | UserProfileData row = database.readUserRow(reader); | 86 | UserProfileData row = database.readUserRow(reader); |
84 | 87 | ||
85 | reader.Close(); | 88 | reader.Close(); |
86 | result.Dispose(); | 89 | result.Dispose(); |
87 | 90 | ||
@@ -96,9 +99,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
96 | } | 99 | } |
97 | } | 100 | } |
98 | 101 | ||
99 | public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 102 | public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
100 | { | 103 | { |
101 | List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); | 104 | List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>(); |
102 | string[] querysplit; | 105 | string[] querysplit; |
103 | querysplit = query.Split(' '); | 106 | querysplit = query.Split(' '); |
104 | if (querysplit.Length == 2) | 107 | if (querysplit.Length == 2) |
@@ -112,18 +115,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
112 | param["second"] = querysplit[1]; | 115 | param["second"] = querysplit[1]; |
113 | 116 | ||
114 | IDbCommand result = | 117 | IDbCommand result = |
115 | database.Query("SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second", param); | 118 | database.Query( |
119 | "SELECT UUID,username,surname FROM users WHERE username = @first AND lastname = @second", | ||
120 | param); | ||
116 | IDataReader reader = result.ExecuteReader(); | 121 | IDataReader reader = result.ExecuteReader(); |
117 | 122 | ||
118 | 123 | ||
119 | while (reader.Read()) | 124 | while (reader.Read()) |
120 | { | 125 | { |
121 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 126 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); |
122 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 127 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
123 | user.firstName = (string)reader["username"]; | 128 | user.firstName = (string) reader["username"]; |
124 | user.lastName = (string)reader["surname"]; | 129 | user.lastName = (string) reader["surname"]; |
125 | returnlist.Add(user); | 130 | returnlist.Add(user); |
126 | |||
127 | } | 131 | } |
128 | reader.Close(); | 132 | reader.Close(); |
129 | result.Dispose(); | 133 | result.Dispose(); |
@@ -135,13 +139,9 @@ namespace OpenSim.Framework.Data.MSSQL | |||
135 | MainLog.Instance.Error(e.ToString()); | 139 | MainLog.Instance.Error(e.ToString()); |
136 | return returnlist; | 140 | return returnlist; |
137 | } | 141 | } |
138 | |||
139 | |||
140 | |||
141 | } | 142 | } |
142 | else if (querysplit.Length == 1) | 143 | else if (querysplit.Length == 1) |
143 | { | 144 | { |
144 | |||
145 | try | 145 | try |
146 | { | 146 | { |
147 | lock (database) | 147 | lock (database) |
@@ -151,18 +151,19 @@ namespace OpenSim.Framework.Data.MSSQL | |||
151 | param["second"] = querysplit[1]; | 151 | param["second"] = querysplit[1]; |
152 | 152 | ||
153 | IDbCommand result = | 153 | IDbCommand result = |
154 | database.Query("SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second", param); | 154 | database.Query( |
155 | "SELECT UUID,username,surname FROM users WHERE username = @first OR lastname = @second", | ||
156 | param); | ||
155 | IDataReader reader = result.ExecuteReader(); | 157 | IDataReader reader = result.ExecuteReader(); |
156 | 158 | ||
157 | 159 | ||
158 | while (reader.Read()) | 160 | while (reader.Read()) |
159 | { | 161 | { |
160 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 162 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); |
161 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 163 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
162 | user.firstName = (string)reader["username"]; | 164 | user.firstName = (string) reader["username"]; |
163 | user.lastName = (string)reader["surname"]; | 165 | user.lastName = (string) reader["surname"]; |
164 | returnlist.Add(user); | 166 | returnlist.Add(user); |
165 | |||
166 | } | 167 | } |
167 | reader.Close(); | 168 | reader.Close(); |
168 | result.Dispose(); | 169 | result.Dispose(); |
@@ -268,21 +269,25 @@ namespace OpenSim.Framework.Data.MSSQL | |||
268 | /// <param name="user">The user profile to create</param> | 269 | /// <param name="user">The user profile to create</param> |
269 | public void AddNewUserProfile(UserProfileData user) | 270 | public void AddNewUserProfile(UserProfileData user) |
270 | { | 271 | { |
271 | try | 272 | try |
272 | { | 273 | { |
273 | lock (database) | 274 | lock (database) |
274 | { | 275 | { |
275 | database.insertUserRow(user.UUID, user.username, user.surname, user.passwordHash, user.passwordSalt, user.homeRegion, user.homeLocation.X, user.homeLocation.Y, user.homeLocation.Z, | 276 | database.insertUserRow(user.UUID, user.username, user.surname, user.passwordHash, user.passwordSalt, |
276 | user.homeLookAt.X, user.homeLookAt.Y, user.homeLookAt.Z, user.created, user.lastLogin, user.userInventoryURI, user.userAssetURI, user.profileCanDoMask, user.profileWantDoMask, | 277 | user.homeRegion, user.homeLocation.X, user.homeLocation.Y, |
277 | user.profileAboutText, user.profileFirstText, user.profileImage, user.profileFirstImage); | 278 | user.homeLocation.Z, |
278 | } | 279 | user.homeLookAt.X, user.homeLookAt.Y, user.homeLookAt.Z, user.created, |
279 | } | 280 | user.lastLogin, user.userInventoryURI, user.userAssetURI, |
280 | catch (Exception e) | 281 | user.profileCanDoMask, user.profileWantDoMask, |
281 | { | 282 | user.profileAboutText, user.profileFirstText, user.profileImage, |
282 | database.Reconnect(); | 283 | user.profileFirstImage); |
283 | MainLog.Instance.Error(e.ToString()); | 284 | } |
284 | } | 285 | } |
285 | 286 | catch (Exception e) | |
287 | { | ||
288 | database.Reconnect(); | ||
289 | MainLog.Instance.Error(e.ToString()); | ||
290 | } | ||
286 | } | 291 | } |
287 | 292 | ||
288 | /// <summary> | 293 | /// <summary> |
@@ -293,34 +298,33 @@ namespace OpenSim.Framework.Data.MSSQL | |||
293 | { | 298 | { |
294 | // Do nothing. | 299 | // Do nothing. |
295 | } | 300 | } |
296 | 301 | ||
297 | 302 | ||
298 | public bool UpdateUserProfile(UserProfileData user) | 303 | public bool UpdateUserProfile(UserProfileData user) |
299 | { | 304 | { |
300 | |||
301 | SqlCommand command = new SqlCommand("UPDATE users set UUID = @uuid, " + | 305 | SqlCommand command = new SqlCommand("UPDATE users set UUID = @uuid, " + |
302 | "username = @username, " + | 306 | "username = @username, " + |
303 | "lastname = @lastname," + | 307 | "lastname = @lastname," + |
304 | "passwordHash = @passwordHash," + | 308 | "passwordHash = @passwordHash," + |
305 | "passwordSalt = @passwordSalt," + | 309 | "passwordSalt = @passwordSalt," + |
306 | "homeRegion = @homeRegion," + | 310 | "homeRegion = @homeRegion," + |
307 | "homeLocationX = @homeLocationX," + | 311 | "homeLocationX = @homeLocationX," + |
308 | "homeLocationY = @homeLocationY," + | 312 | "homeLocationY = @homeLocationY," + |
309 | "homeLocationZ = @homeLocationZ," + | 313 | "homeLocationZ = @homeLocationZ," + |
310 | "homeLookAtX = @homeLookAtX," + | 314 | "homeLookAtX = @homeLookAtX," + |
311 | "homeLookAtY = @homeLookAtY," + | 315 | "homeLookAtY = @homeLookAtY," + |
312 | "homeLookAtZ = @homeLookAtZ," + | 316 | "homeLookAtZ = @homeLookAtZ," + |
313 | "created = @created," + | 317 | "created = @created," + |
314 | "lastLogin = @lastLogin," + | 318 | "lastLogin = @lastLogin," + |
315 | "userInventoryURI = @userInventoryURI," + | 319 | "userInventoryURI = @userInventoryURI," + |
316 | "userAssetURI = @userAssetURI," + | 320 | "userAssetURI = @userAssetURI," + |
317 | "profileCanDoMask = @profileCanDoMask," + | 321 | "profileCanDoMask = @profileCanDoMask," + |
318 | "profileWantDoMask = @profileWantDoMask," + | 322 | "profileWantDoMask = @profileWantDoMask," + |
319 | "profileAboutText = @profileAboutText," + | 323 | "profileAboutText = @profileAboutText," + |
320 | "profileFirstText = @profileFirstText," + | 324 | "profileFirstText = @profileFirstText," + |
321 | "profileImage = @profileImage," + | 325 | "profileImage = @profileImage," + |
322 | "profileFirstImage = @profileFirstImage where " + | 326 | "profileFirstImage = @profileFirstImage where " + |
323 | "UUID = @keyUUUID;", database.getConnection()); | 327 | "UUID = @keyUUUID;", database.getConnection()); |
324 | SqlParameter param1 = new SqlParameter("@uuid", user.UUID.ToString()); | 328 | SqlParameter param1 = new SqlParameter("@uuid", user.UUID.ToString()); |
325 | SqlParameter param2 = new SqlParameter("@username", user.username); | 329 | SqlParameter param2 = new SqlParameter("@username", user.username); |
326 | SqlParameter param3 = new SqlParameter("@lastname", user.surname); | 330 | SqlParameter param3 = new SqlParameter("@lastname", user.surname); |
@@ -341,8 +345,8 @@ namespace OpenSim.Framework.Data.MSSQL | |||
341 | SqlParameter param18 = new SqlParameter("@profileWantDoMask", Convert.ToInt32(user.profileWantDoMask)); | 345 | SqlParameter param18 = new SqlParameter("@profileWantDoMask", Convert.ToInt32(user.profileWantDoMask)); |
342 | SqlParameter param19 = new SqlParameter("@profileAboutText", user.profileAboutText); | 346 | SqlParameter param19 = new SqlParameter("@profileAboutText", user.profileAboutText); |
343 | SqlParameter param20 = new SqlParameter("@profileFirstText", user.profileFirstText); | 347 | SqlParameter param20 = new SqlParameter("@profileFirstText", user.profileFirstText); |
344 | SqlParameter param21 = new SqlParameter("@profileImage", libsecondlife.LLUUID.Zero.ToString()); | 348 | SqlParameter param21 = new SqlParameter("@profileImage", LLUUID.Zero.ToString()); |
345 | SqlParameter param22 = new SqlParameter("@profileFirstImage", libsecondlife.LLUUID.Zero.ToString()); | 349 | SqlParameter param22 = new SqlParameter("@profileFirstImage", LLUUID.Zero.ToString()); |
346 | SqlParameter param23 = new SqlParameter("@keyUUUID", user.UUID.ToString()); | 350 | SqlParameter param23 = new SqlParameter("@keyUUUID", user.UUID.ToString()); |
347 | command.Parameters.Add(param1); | 351 | command.Parameters.Add(param1); |
348 | command.Parameters.Add(param2); | 352 | command.Parameters.Add(param2); |
@@ -370,9 +374,12 @@ namespace OpenSim.Framework.Data.MSSQL | |||
370 | try | 374 | try |
371 | { | 375 | { |
372 | int affected = command.ExecuteNonQuery(); | 376 | int affected = command.ExecuteNonQuery(); |
373 | if (affected != 0) { | 377 | if (affected != 0) |
378 | { | ||
374 | return true; | 379 | return true; |
375 | } else { | 380 | } |
381 | else | ||
382 | { | ||
376 | return false; | 383 | return false; |
377 | } | 384 | } |
378 | } | 385 | } |
@@ -433,6 +440,5 @@ namespace OpenSim.Framework.Data.MSSQL | |||
433 | public void runQuery(string query) | 440 | public void runQuery(string query) |
434 | { | 441 | { |
435 | } | 442 | } |
436 | |||
437 | } | 443 | } |
438 | } | 444 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs index 19ae115..b20c54e 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLAssetData.cs | |||
@@ -83,13 +83,13 @@ namespace OpenSim.Framework.Data.MySQL | |||
83 | if (dbReader.Read()) | 83 | if (dbReader.Read()) |
84 | { | 84 | { |
85 | asset = new AssetBase(); | 85 | asset = new AssetBase(); |
86 | asset.Data = (byte[])dbReader["data"]; | 86 | asset.Data = (byte[]) dbReader["data"]; |
87 | asset.Description = (string)dbReader["description"]; | 87 | asset.Description = (string) dbReader["description"]; |
88 | asset.FullID = assetID; | 88 | asset.FullID = assetID; |
89 | asset.InvType = (sbyte)dbReader["invType"]; | 89 | asset.InvType = (sbyte) dbReader["invType"]; |
90 | asset.Local = ((sbyte)dbReader["local"]) != 0 ? true : false; | 90 | asset.Local = ((sbyte) dbReader["local"]) != 0 ? true : false; |
91 | asset.Name = (string)dbReader["name"]; | 91 | asset.Name = (string) dbReader["name"]; |
92 | asset.Type = (sbyte)dbReader["assetType"]; | 92 | asset.Type = (sbyte) dbReader["assetType"]; |
93 | } | 93 | } |
94 | dbReader.Close(); | 94 | dbReader.Close(); |
95 | cmd.Dispose(); | 95 | cmd.Dispose(); |
@@ -98,7 +98,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
98 | catch (Exception) | 98 | catch (Exception) |
99 | { | 99 | { |
100 | MainLog.Instance.Warn("ASSETS", "MySql failure fetching asset"); | 100 | MainLog.Instance.Warn("ASSETS", "MySql failure fetching asset"); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | return asset; | 103 | return asset; |
104 | } | 104 | } |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs index c48c88f..fcf8c6f 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLDataStore.cs | |||
@@ -31,15 +31,12 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using System.Diagnostics; | 32 | using System.Diagnostics; |
33 | using System.IO; | 33 | using System.IO; |
34 | using System.Text; | ||
35 | using libsecondlife; | 34 | using libsecondlife; |
36 | using MySql.Data.MySqlClient; | 35 | using MySql.Data.MySqlClient; |
37 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
38 | using OpenSim.Region.Environment.Interfaces; | 37 | using OpenSim.Region.Environment.Interfaces; |
39 | using OpenSim.Region.Environment.LandManagement; | 38 | using OpenSim.Region.Environment.LandManagement; |
40 | using OpenSim.Region.Environment.Scenes; | 39 | using OpenSim.Region.Environment.Scenes; |
41 | using System.Data.SqlClient; | ||
42 | using System.Data.Common; | ||
43 | 40 | ||
44 | namespace OpenSim.Framework.Data.MySQL | 41 | namespace OpenSim.Framework.Data.MySQL |
45 | { | 42 | { |
@@ -130,7 +127,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
130 | { | 127 | { |
131 | foreach (SceneObjectPart prim in obj.Children.Values) | 128 | foreach (SceneObjectPart prim in obj.Children.Values) |
132 | { | 129 | { |
133 | if ((prim.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) | 130 | if ((prim.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
134 | { | 131 | { |
135 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); | 132 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); |
136 | addPrim(prim, obj.UUID, regionUUID); | 133 | addPrim(prim, obj.UUID, regionUUID); |
@@ -156,7 +153,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
156 | DataRow[] primRows = prims.Select(selectExp); | 153 | DataRow[] primRows = prims.Select(selectExp); |
157 | foreach (DataRow row in primRows) | 154 | foreach (DataRow row in primRows) |
158 | { | 155 | { |
159 | LLUUID uuid = new LLUUID((string)row["UUID"]); | 156 | LLUUID uuid = new LLUUID((string) row["UUID"]); |
160 | DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(uuid)); | 157 | DataRow shapeRow = shapes.Rows.Find(Util.ToRawUuidString(uuid)); |
161 | if (shapeRow != null) | 158 | if (shapeRow != null) |
162 | { | 159 | { |
@@ -191,8 +188,8 @@ namespace OpenSim.Framework.Data.MySQL | |||
191 | { | 188 | { |
192 | try | 189 | try |
193 | { | 190 | { |
194 | string uuid = (string)primRow["UUID"]; | 191 | string uuid = (string) primRow["UUID"]; |
195 | string objID = (string)primRow["SceneGroupID"]; | 192 | string objID = (string) primRow["SceneGroupID"]; |
196 | if (uuid == objID) //is new SceneObjectGroup ? | 193 | if (uuid == objID) //is new SceneObjectGroup ? |
197 | { | 194 | { |
198 | SceneObjectGroup group = new SceneObjectGroup(); | 195 | SceneObjectGroup group = new SceneObjectGroup(); |
@@ -255,10 +252,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
255 | lock (m_dataSet) | 252 | lock (m_dataSet) |
256 | { | 253 | { |
257 | MySqlCommand cmd = new MySqlCommand("insert into terrain(RegionUUID, Revision, Heightfield)" + | 254 | MySqlCommand cmd = new MySqlCommand("insert into terrain(RegionUUID, Revision, Heightfield)" + |
258 | " values(?RegionUUID, ?Revision, ?Heightfield)", m_connection); | 255 | " values(?RegionUUID, ?Revision, ?Heightfield)", m_connection); |
259 | using (cmd) | 256 | using (cmd) |
260 | { | 257 | { |
261 | |||
262 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); | 258 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); |
263 | cmd.Parameters.Add(new MySqlParameter("?Revision", revision)); | 259 | cmd.Parameters.Add(new MySqlParameter("?Revision", revision)); |
264 | cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter))); | 260 | cmd.Parameters.Add(new MySqlParameter("?Heightfield", serializeTerrain(ter))); |
@@ -269,7 +265,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
269 | 265 | ||
270 | public double[,] LoadTerrain(LLUUID regionID) | 266 | public double[,] LoadTerrain(LLUUID regionID) |
271 | { | 267 | { |
272 | double[,] terret = new double[256, 256]; | 268 | double[,] terret = new double[256,256]; |
273 | terret.Initialize(); | 269 | terret.Initialize(); |
274 | 270 | ||
275 | MySqlCommand cmd = new MySqlCommand( | 271 | MySqlCommand cmd = new MySqlCommand( |
@@ -278,7 +274,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
278 | , m_connection); | 274 | , m_connection); |
279 | 275 | ||
280 | MySqlParameter param = new MySqlParameter(); | 276 | MySqlParameter param = new MySqlParameter(); |
281 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); | 277 | cmd.Parameters.Add(new MySqlParameter("?RegionUUID", Util.ToRawUuidString(regionID))); |
282 | 278 | ||
283 | if (m_connection.State != ConnectionState.Open) | 279 | if (m_connection.State != ConnectionState.Open) |
284 | { | 280 | { |
@@ -290,15 +286,15 @@ namespace OpenSim.Framework.Data.MySQL | |||
290 | int rev = 0; | 286 | int rev = 0; |
291 | if (row.Read()) | 287 | if (row.Read()) |
292 | { | 288 | { |
293 | byte[] heightmap = (byte[])row["Heightfield"]; | 289 | byte[] heightmap = (byte[]) row["Heightfield"]; |
294 | for (int x = 0; x < 256; x++) | 290 | for (int x = 0; x < 256; x++) |
295 | { | 291 | { |
296 | for (int y = 0; y < 256; y++) | 292 | for (int y = 0; y < 256; y++) |
297 | { | 293 | { |
298 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8); | 294 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8); |
299 | } | 295 | } |
300 | } | 296 | } |
301 | rev = (int)row["Revision"]; | 297 | rev = (int) row["Revision"]; |
302 | } | 298 | } |
303 | else | 299 | else |
304 | { | 300 | { |
@@ -322,7 +318,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
322 | cmd.ExecuteNonQuery(); | 318 | cmd.ExecuteNonQuery(); |
323 | } | 319 | } |
324 | 320 | ||
325 | using (MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?UUID", m_connection)) | 321 | using ( |
322 | MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?UUID", m_connection) | ||
323 | ) | ||
326 | { | 324 | { |
327 | cmd.Parameters.Add(new MySqlParameter("?UUID", Util.ToRawUuidString(globalID))); | 325 | cmd.Parameters.Add(new MySqlParameter("?UUID", Util.ToRawUuidString(globalID))); |
328 | cmd.ExecuteNonQuery(); | 326 | cmd.ExecuteNonQuery(); |
@@ -336,7 +334,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
336 | { | 334 | { |
337 | DataTable land = m_landTable; | 335 | DataTable land = m_landTable; |
338 | DataTable landaccesslist = m_landAccessListTable; | 336 | DataTable landaccesslist = m_landAccessListTable; |
339 | 337 | ||
340 | DataRow landRow = land.Rows.Find(Util.ToRawUuidString(parcel.landData.globalID)); | 338 | DataRow landRow = land.Rows.Find(Util.ToRawUuidString(parcel.landData.globalID)); |
341 | if (landRow == null) | 339 | if (landRow == null) |
342 | { | 340 | { |
@@ -349,7 +347,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
349 | fillLandRow(landRow, parcel.landData, regionUUID); | 347 | fillLandRow(landRow, parcel.landData, regionUUID); |
350 | } | 348 | } |
351 | 349 | ||
352 | using (MySqlCommand cmd = new MySqlCommand("delete from landaccesslist where LandUUID=?LandUUID", m_connection)) | 350 | using ( |
351 | MySqlCommand cmd = | ||
352 | new MySqlCommand("delete from landaccesslist where LandUUID=?LandUUID", m_connection)) | ||
353 | { | 353 | { |
354 | cmd.Parameters.Add(new MySqlParameter("?LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); | 354 | cmd.Parameters.Add(new MySqlParameter("?LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); |
355 | cmd.ExecuteNonQuery(); | 355 | cmd.ExecuteNonQuery(); |
@@ -361,13 +361,12 @@ namespace OpenSim.Framework.Data.MySQL | |||
361 | fillLandAccessRow(newAccessRow, entry, parcel.landData.globalID); | 361 | fillLandAccessRow(newAccessRow, entry, parcel.landData.globalID); |
362 | landaccesslist.Rows.Add(newAccessRow); | 362 | landaccesslist.Rows.Add(newAccessRow); |
363 | } | 363 | } |
364 | |||
365 | } | 364 | } |
366 | 365 | ||
367 | Commit(); | 366 | Commit(); |
368 | } | 367 | } |
369 | 368 | ||
370 | public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) | 369 | public List<LandData> LoadLandObjects(LLUUID regionUUID) |
371 | { | 370 | { |
372 | List<LandData> landDataForRegion = new List<LandData>(); | 371 | List<LandData> landDataForRegion = new List<LandData>(); |
373 | lock (m_dataSet) | 372 | lock (m_dataSet) |
@@ -403,7 +402,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
403 | foreach (DataRow row in table.Rows) | 402 | foreach (DataRow row in table.Rows) |
404 | { | 403 | { |
405 | //--- Display the original values, if there are any. | 404 | //--- Display the original values, if there are any. |
406 | if (row.HasVersion(System.Data.DataRowVersion.Original)) | 405 | if (row.HasVersion(DataRowVersion.Original)) |
407 | { | 406 | { |
408 | Debug.Write("Original Row Values ===> "); | 407 | Debug.Write("Original Row Values ===> "); |
409 | foreach (DataColumn column in table.Columns) | 408 | foreach (DataColumn column in table.Columns) |
@@ -412,7 +411,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
412 | Debug.WriteLine(""); | 411 | Debug.WriteLine(""); |
413 | } | 412 | } |
414 | //--- Display the current values, if there are any. | 413 | //--- Display the current values, if there are any. |
415 | if (row.HasVersion(System.Data.DataRowVersion.Current)) | 414 | if (row.HasVersion(DataRowVersion.Current)) |
416 | { | 415 | { |
417 | Debug.Write("Current Row Values ====> "); | 416 | Debug.Write("Current Row Values ====> "); |
418 | foreach (DataColumn column in table.Columns) | 417 | foreach (DataColumn column in table.Columns) |
@@ -470,9 +469,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
470 | { | 469 | { |
471 | DataTable terrain = new DataTable("terrain"); | 470 | DataTable terrain = new DataTable("terrain"); |
472 | 471 | ||
473 | createCol(terrain, "RegionUUID", typeof(String)); | 472 | createCol(terrain, "RegionUUID", typeof (String)); |
474 | createCol(terrain, "Revision", typeof(Int32)); | 473 | createCol(terrain, "Revision", typeof (Int32)); |
475 | DataColumn heightField = createCol(terrain, "Heightfield", typeof(Byte[])); | 474 | DataColumn heightField = createCol(terrain, "Heightfield", typeof (Byte[])); |
476 | return terrain; | 475 | return terrain; |
477 | } | 476 | } |
478 | 477 | ||
@@ -480,62 +479,62 @@ namespace OpenSim.Framework.Data.MySQL | |||
480 | { | 479 | { |
481 | DataTable prims = new DataTable("prims"); | 480 | DataTable prims = new DataTable("prims"); |
482 | 481 | ||
483 | createCol(prims, "UUID", typeof(String)); | 482 | createCol(prims, "UUID", typeof (String)); |
484 | createCol(prims, "RegionUUID", typeof(String)); | 483 | createCol(prims, "RegionUUID", typeof (String)); |
485 | createCol(prims, "ParentID", typeof(Int32)); | 484 | createCol(prims, "ParentID", typeof (Int32)); |
486 | createCol(prims, "CreationDate", typeof(Int32)); | 485 | createCol(prims, "CreationDate", typeof (Int32)); |
487 | createCol(prims, "Name", typeof(String)); | 486 | createCol(prims, "Name", typeof (String)); |
488 | createCol(prims, "SceneGroupID", typeof(String)); | 487 | createCol(prims, "SceneGroupID", typeof (String)); |
489 | // various text fields | 488 | // various text fields |
490 | createCol(prims, "Text", typeof(String)); | 489 | createCol(prims, "Text", typeof (String)); |
491 | createCol(prims, "Description", typeof(String)); | 490 | createCol(prims, "Description", typeof (String)); |
492 | createCol(prims, "SitName", typeof(String)); | 491 | createCol(prims, "SitName", typeof (String)); |
493 | createCol(prims, "TouchName", typeof(String)); | 492 | createCol(prims, "TouchName", typeof (String)); |
494 | // permissions | 493 | // permissions |
495 | createCol(prims, "ObjectFlags", typeof(Int32)); | 494 | createCol(prims, "ObjectFlags", typeof (Int32)); |
496 | createCol(prims, "CreatorID", typeof(String)); | 495 | createCol(prims, "CreatorID", typeof (String)); |
497 | createCol(prims, "OwnerID", typeof(String)); | 496 | createCol(prims, "OwnerID", typeof (String)); |
498 | createCol(prims, "GroupID", typeof(String)); | 497 | createCol(prims, "GroupID", typeof (String)); |
499 | createCol(prims, "LastOwnerID", typeof(String)); | 498 | createCol(prims, "LastOwnerID", typeof (String)); |
500 | createCol(prims, "OwnerMask", typeof(Int32)); | 499 | createCol(prims, "OwnerMask", typeof (Int32)); |
501 | createCol(prims, "NextOwnerMask", typeof(Int32)); | 500 | createCol(prims, "NextOwnerMask", typeof (Int32)); |
502 | createCol(prims, "GroupMask", typeof(Int32)); | 501 | createCol(prims, "GroupMask", typeof (Int32)); |
503 | createCol(prims, "EveryoneMask", typeof(Int32)); | 502 | createCol(prims, "EveryoneMask", typeof (Int32)); |
504 | createCol(prims, "BaseMask", typeof(Int32)); | 503 | createCol(prims, "BaseMask", typeof (Int32)); |
505 | // vectors | 504 | // vectors |
506 | createCol(prims, "PositionX", typeof(Double)); | 505 | createCol(prims, "PositionX", typeof (Double)); |
507 | createCol(prims, "PositionY", typeof(Double)); | 506 | createCol(prims, "PositionY", typeof (Double)); |
508 | createCol(prims, "PositionZ", typeof(Double)); | 507 | createCol(prims, "PositionZ", typeof (Double)); |
509 | createCol(prims, "GroupPositionX", typeof(Double)); | 508 | createCol(prims, "GroupPositionX", typeof (Double)); |
510 | createCol(prims, "GroupPositionY", typeof(Double)); | 509 | createCol(prims, "GroupPositionY", typeof (Double)); |
511 | createCol(prims, "GroupPositionZ", typeof(Double)); | 510 | createCol(prims, "GroupPositionZ", typeof (Double)); |
512 | createCol(prims, "VelocityX", typeof(Double)); | 511 | createCol(prims, "VelocityX", typeof (Double)); |
513 | createCol(prims, "VelocityY", typeof(Double)); | 512 | createCol(prims, "VelocityY", typeof (Double)); |
514 | createCol(prims, "VelocityZ", typeof(Double)); | 513 | createCol(prims, "VelocityZ", typeof (Double)); |
515 | createCol(prims, "AngularVelocityX", typeof(Double)); | 514 | createCol(prims, "AngularVelocityX", typeof (Double)); |
516 | createCol(prims, "AngularVelocityY", typeof(Double)); | 515 | createCol(prims, "AngularVelocityY", typeof (Double)); |
517 | createCol(prims, "AngularVelocityZ", typeof(Double)); | 516 | createCol(prims, "AngularVelocityZ", typeof (Double)); |
518 | createCol(prims, "AccelerationX", typeof(Double)); | 517 | createCol(prims, "AccelerationX", typeof (Double)); |
519 | createCol(prims, "AccelerationY", typeof(Double)); | 518 | createCol(prims, "AccelerationY", typeof (Double)); |
520 | createCol(prims, "AccelerationZ", typeof(Double)); | 519 | createCol(prims, "AccelerationZ", typeof (Double)); |
521 | // quaternions | 520 | // quaternions |
522 | createCol(prims, "RotationX", typeof(Double)); | 521 | createCol(prims, "RotationX", typeof (Double)); |
523 | createCol(prims, "RotationY", typeof(Double)); | 522 | createCol(prims, "RotationY", typeof (Double)); |
524 | createCol(prims, "RotationZ", typeof(Double)); | 523 | createCol(prims, "RotationZ", typeof (Double)); |
525 | createCol(prims, "RotationW", typeof(Double)); | 524 | createCol(prims, "RotationW", typeof (Double)); |
526 | // sit target | 525 | // sit target |
527 | createCol(prims, "SitTargetOffsetX", typeof(Double)); | 526 | createCol(prims, "SitTargetOffsetX", typeof (Double)); |
528 | createCol(prims, "SitTargetOffsetY", typeof(Double)); | 527 | createCol(prims, "SitTargetOffsetY", typeof (Double)); |
529 | createCol(prims, "SitTargetOffsetZ", typeof(Double)); | 528 | createCol(prims, "SitTargetOffsetZ", typeof (Double)); |
530 | 529 | ||
531 | createCol(prims, "SitTargetOrientW", typeof(Double)); | 530 | createCol(prims, "SitTargetOrientW", typeof (Double)); |
532 | createCol(prims, "SitTargetOrientX", typeof(Double)); | 531 | createCol(prims, "SitTargetOrientX", typeof (Double)); |
533 | createCol(prims, "SitTargetOrientY", typeof(Double)); | 532 | createCol(prims, "SitTargetOrientY", typeof (Double)); |
534 | createCol(prims, "SitTargetOrientZ", typeof(Double)); | 533 | createCol(prims, "SitTargetOrientZ", typeof (Double)); |
535 | 534 | ||
536 | 535 | ||
537 | // Add in contraints | 536 | // Add in contraints |
538 | prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; | 537 | prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; |
539 | 538 | ||
540 | return prims; | 539 | return prims; |
541 | } | 540 | } |
@@ -543,42 +542,42 @@ namespace OpenSim.Framework.Data.MySQL | |||
543 | private DataTable createLandTable() | 542 | private DataTable createLandTable() |
544 | { | 543 | { |
545 | DataTable land = new DataTable("land"); | 544 | DataTable land = new DataTable("land"); |
546 | createCol(land, "UUID", typeof(String)); | 545 | createCol(land, "UUID", typeof (String)); |
547 | createCol(land, "RegionUUID", typeof(String)); | 546 | createCol(land, "RegionUUID", typeof (String)); |
548 | createCol(land, "LocalLandID", typeof(Int32)); | 547 | createCol(land, "LocalLandID", typeof (Int32)); |
549 | 548 | ||
550 | // Bitmap is a byte[512] | 549 | // Bitmap is a byte[512] |
551 | createCol(land, "Bitmap", typeof(Byte[])); | 550 | createCol(land, "Bitmap", typeof (Byte[])); |
552 | 551 | ||
553 | createCol(land, "Name", typeof(String)); | 552 | createCol(land, "Name", typeof (String)); |
554 | createCol(land, "Description", typeof(String)); | 553 | createCol(land, "Description", typeof (String)); |
555 | createCol(land, "OwnerUUID", typeof(String)); | 554 | createCol(land, "OwnerUUID", typeof (String)); |
556 | createCol(land, "IsGroupOwned", typeof(Int32)); | 555 | createCol(land, "IsGroupOwned", typeof (Int32)); |
557 | createCol(land, "Area", typeof(Int32)); | 556 | createCol(land, "Area", typeof (Int32)); |
558 | createCol(land, "AuctionID", typeof(Int32)); //Unemplemented | 557 | createCol(land, "AuctionID", typeof (Int32)); //Unemplemented |
559 | createCol(land, "Category", typeof(Int32)); //Enum libsecondlife.Parcel.ParcelCategory | 558 | createCol(land, "Category", typeof (Int32)); //Enum libsecondlife.Parcel.ParcelCategory |
560 | createCol(land, "ClaimDate", typeof(Int32)); | 559 | createCol(land, "ClaimDate", typeof (Int32)); |
561 | createCol(land, "ClaimPrice", typeof(Int32)); | 560 | createCol(land, "ClaimPrice", typeof (Int32)); |
562 | createCol(land, "GroupUUID", typeof(String)); | 561 | createCol(land, "GroupUUID", typeof (String)); |
563 | createCol(land, "SalePrice", typeof(Int32)); | 562 | createCol(land, "SalePrice", typeof (Int32)); |
564 | createCol(land, "LandStatus", typeof(Int32)); //Enum. libsecondlife.Parcel.ParcelStatus | 563 | createCol(land, "LandStatus", typeof (Int32)); //Enum. libsecondlife.Parcel.ParcelStatus |
565 | createCol(land, "LandFlags", typeof(Int32)); | 564 | createCol(land, "LandFlags", typeof (Int32)); |
566 | createCol(land, "LandingType", typeof(Int32)); | 565 | createCol(land, "LandingType", typeof (Int32)); |
567 | createCol(land, "MediaAutoScale", typeof(Int32)); | 566 | createCol(land, "MediaAutoScale", typeof (Int32)); |
568 | createCol(land, "MediaTextureUUID", typeof(String)); | 567 | createCol(land, "MediaTextureUUID", typeof (String)); |
569 | createCol(land, "MediaURL", typeof(String)); | 568 | createCol(land, "MediaURL", typeof (String)); |
570 | createCol(land, "MusicURL", typeof(String)); | 569 | createCol(land, "MusicURL", typeof (String)); |
571 | createCol(land, "PassHours", typeof(Double)); | 570 | createCol(land, "PassHours", typeof (Double)); |
572 | createCol(land, "PassPrice", typeof(Int32)); | 571 | createCol(land, "PassPrice", typeof (Int32)); |
573 | createCol(land, "SnapshotUUID", typeof(String)); | 572 | createCol(land, "SnapshotUUID", typeof (String)); |
574 | createCol(land, "UserLocationX", typeof(Double)); | 573 | createCol(land, "UserLocationX", typeof (Double)); |
575 | createCol(land, "UserLocationY", typeof(Double)); | 574 | createCol(land, "UserLocationY", typeof (Double)); |
576 | createCol(land, "UserLocationZ", typeof(Double)); | 575 | createCol(land, "UserLocationZ", typeof (Double)); |
577 | createCol(land, "UserLookAtX", typeof(Double)); | 576 | createCol(land, "UserLookAtX", typeof (Double)); |
578 | createCol(land, "UserLookAtY", typeof(Double)); | 577 | createCol(land, "UserLookAtY", typeof (Double)); |
579 | createCol(land, "UserLookAtZ", typeof(Double)); | 578 | createCol(land, "UserLookAtZ", typeof (Double)); |
580 | 579 | ||
581 | land.PrimaryKey = new DataColumn[] { land.Columns["UUID"] }; | 580 | land.PrimaryKey = new DataColumn[] {land.Columns["UUID"]}; |
582 | 581 | ||
583 | return land; | 582 | return land; |
584 | } | 583 | } |
@@ -586,9 +585,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
586 | private DataTable createLandAccessListTable() | 585 | private DataTable createLandAccessListTable() |
587 | { | 586 | { |
588 | DataTable landaccess = new DataTable("landaccesslist"); | 587 | DataTable landaccess = new DataTable("landaccesslist"); |
589 | createCol(landaccess, "LandUUID", typeof(String)); | 588 | createCol(landaccess, "LandUUID", typeof (String)); |
590 | createCol(landaccess, "AccessUUID", typeof(String)); | 589 | createCol(landaccess, "AccessUUID", typeof (String)); |
591 | createCol(landaccess, "Flags", typeof(Int32)); | 590 | createCol(landaccess, "Flags", typeof (Int32)); |
592 | 591 | ||
593 | return landaccess; | 592 | return landaccess; |
594 | } | 593 | } |
@@ -596,38 +595,38 @@ namespace OpenSim.Framework.Data.MySQL | |||
596 | private DataTable createShapeTable() | 595 | private DataTable createShapeTable() |
597 | { | 596 | { |
598 | DataTable shapes = new DataTable("primshapes"); | 597 | DataTable shapes = new DataTable("primshapes"); |
599 | createCol(shapes, "UUID", typeof(String)); | 598 | createCol(shapes, "UUID", typeof (String)); |
600 | // shape is an enum | 599 | // shape is an enum |
601 | createCol(shapes, "Shape", typeof(Int32)); | 600 | createCol(shapes, "Shape", typeof (Int32)); |
602 | // vectors | 601 | // vectors |
603 | createCol(shapes, "ScaleX", typeof(Double)); | 602 | createCol(shapes, "ScaleX", typeof (Double)); |
604 | createCol(shapes, "ScaleY", typeof(Double)); | 603 | createCol(shapes, "ScaleY", typeof (Double)); |
605 | createCol(shapes, "ScaleZ", typeof(Double)); | 604 | createCol(shapes, "ScaleZ", typeof (Double)); |
606 | // paths | 605 | // paths |
607 | createCol(shapes, "PCode", typeof(Int32)); | 606 | createCol(shapes, "PCode", typeof (Int32)); |
608 | createCol(shapes, "PathBegin", typeof(Int32)); | 607 | createCol(shapes, "PathBegin", typeof (Int32)); |
609 | createCol(shapes, "PathEnd", typeof(Int32)); | 608 | createCol(shapes, "PathEnd", typeof (Int32)); |
610 | createCol(shapes, "PathScaleX", typeof(Int32)); | 609 | createCol(shapes, "PathScaleX", typeof (Int32)); |
611 | createCol(shapes, "PathScaleY", typeof(Int32)); | 610 | createCol(shapes, "PathScaleY", typeof (Int32)); |
612 | createCol(shapes, "PathShearX", typeof(Int32)); | 611 | createCol(shapes, "PathShearX", typeof (Int32)); |
613 | createCol(shapes, "PathShearY", typeof(Int32)); | 612 | createCol(shapes, "PathShearY", typeof (Int32)); |
614 | createCol(shapes, "PathSkew", typeof(Int32)); | 613 | createCol(shapes, "PathSkew", typeof (Int32)); |
615 | createCol(shapes, "PathCurve", typeof(Int32)); | 614 | createCol(shapes, "PathCurve", typeof (Int32)); |
616 | createCol(shapes, "PathRadiusOffset", typeof(Int32)); | 615 | createCol(shapes, "PathRadiusOffset", typeof (Int32)); |
617 | createCol(shapes, "PathRevolutions", typeof(Int32)); | 616 | createCol(shapes, "PathRevolutions", typeof (Int32)); |
618 | createCol(shapes, "PathTaperX", typeof(Int32)); | 617 | createCol(shapes, "PathTaperX", typeof (Int32)); |
619 | createCol(shapes, "PathTaperY", typeof(Int32)); | 618 | createCol(shapes, "PathTaperY", typeof (Int32)); |
620 | createCol(shapes, "PathTwist", typeof(Int32)); | 619 | createCol(shapes, "PathTwist", typeof (Int32)); |
621 | createCol(shapes, "PathTwistBegin", typeof(Int32)); | 620 | createCol(shapes, "PathTwistBegin", typeof (Int32)); |
622 | // profile | 621 | // profile |
623 | createCol(shapes, "ProfileBegin", typeof(Int32)); | 622 | createCol(shapes, "ProfileBegin", typeof (Int32)); |
624 | createCol(shapes, "ProfileEnd", typeof(Int32)); | 623 | createCol(shapes, "ProfileEnd", typeof (Int32)); |
625 | createCol(shapes, "ProfileCurve", typeof(Int32)); | 624 | createCol(shapes, "ProfileCurve", typeof (Int32)); |
626 | createCol(shapes, "ProfileHollow", typeof(Int32)); | 625 | createCol(shapes, "ProfileHollow", typeof (Int32)); |
627 | createCol(shapes, "Texture", typeof(Byte[])); | 626 | createCol(shapes, "Texture", typeof (Byte[])); |
628 | createCol(shapes, "ExtraParams", typeof(Byte[])); | 627 | createCol(shapes, "ExtraParams", typeof (Byte[])); |
629 | 628 | ||
630 | shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; | 629 | shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]}; |
631 | 630 | ||
632 | return shapes; | 631 | return shapes; |
633 | } | 632 | } |
@@ -643,23 +642,23 @@ namespace OpenSim.Framework.Data.MySQL | |||
643 | private SceneObjectPart buildPrim(DataRow row) | 642 | private SceneObjectPart buildPrim(DataRow row) |
644 | { | 643 | { |
645 | SceneObjectPart prim = new SceneObjectPart(); | 644 | SceneObjectPart prim = new SceneObjectPart(); |
646 | prim.UUID = new LLUUID((String)row["UUID"]); | 645 | prim.UUID = new LLUUID((String) row["UUID"]); |
647 | // explicit conversion of integers is required, which sort | 646 | // explicit conversion of integers is required, which sort |
648 | // of sucks. No idea if there is a shortcut here or not. | 647 | // of sucks. No idea if there is a shortcut here or not. |
649 | prim.ParentID = Convert.ToUInt32(row["ParentID"]); | 648 | prim.ParentID = Convert.ToUInt32(row["ParentID"]); |
650 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); | 649 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); |
651 | prim.Name = (String)row["Name"]; | 650 | prim.Name = (String) row["Name"]; |
652 | // various text fields | 651 | // various text fields |
653 | prim.Text = (String)row["Text"]; | 652 | prim.Text = (String) row["Text"]; |
654 | prim.Description = (String)row["Description"]; | 653 | prim.Description = (String) row["Description"]; |
655 | prim.SitName = (String)row["SitName"]; | 654 | prim.SitName = (String) row["SitName"]; |
656 | prim.TouchName = (String)row["TouchName"]; | 655 | prim.TouchName = (String) row["TouchName"]; |
657 | // permissions | 656 | // permissions |
658 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); | 657 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); |
659 | prim.CreatorID = new LLUUID((String)row["CreatorID"]); | 658 | prim.CreatorID = new LLUUID((String) row["CreatorID"]); |
660 | prim.OwnerID = new LLUUID((String)row["OwnerID"]); | 659 | prim.OwnerID = new LLUUID((String) row["OwnerID"]); |
661 | prim.GroupID = new LLUUID((String)row["GroupID"]); | 660 | prim.GroupID = new LLUUID((String) row["GroupID"]); |
662 | prim.LastOwnerID = new LLUUID((String)row["LastOwnerID"]); | 661 | prim.LastOwnerID = new LLUUID((String) row["LastOwnerID"]); |
663 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); | 662 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); |
664 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); | 663 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); |
665 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); | 664 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); |
@@ -701,19 +700,27 @@ namespace OpenSim.Framework.Data.MySQL | |||
701 | try | 700 | try |
702 | { | 701 | { |
703 | prim.SetSitTargetLL(new LLVector3( | 702 | prim.SetSitTargetLL(new LLVector3( |
704 | Convert.ToSingle(row["SitTargetOffsetX"]), | 703 | Convert.ToSingle(row["SitTargetOffsetX"]), |
705 | Convert.ToSingle(row["SitTargetOffsetY"]), | 704 | Convert.ToSingle(row["SitTargetOffsetY"]), |
706 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( | 705 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( |
707 | Convert.ToSingle(row["SitTargetOrientX"]), | 706 | Convert.ToSingle( |
708 | Convert.ToSingle(row["SitTargetOrientY"]), | 707 | row["SitTargetOrientX"]), |
709 | Convert.ToSingle(row["SitTargetOrientZ"]), | 708 | Convert.ToSingle( |
710 | Convert.ToSingle(row["SitTargetOrientW"]))); | 709 | row["SitTargetOrientY"]), |
710 | Convert.ToSingle( | ||
711 | row["SitTargetOrientZ"]), | ||
712 | Convert.ToSingle( | ||
713 | row["SitTargetOrientW"]))); | ||
711 | } | 714 | } |
712 | catch (System.InvalidCastException) | 715 | catch (InvalidCastException) |
713 | { | 716 | { |
714 | // Database table was created before we got here and needs to be created! :P | 717 | // Database table was created before we got here and needs to be created! :P |
715 | 718 | ||
716 | using (MySqlCommand cmd = new MySqlCommand("ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", m_connection)) | 719 | using ( |
720 | MySqlCommand cmd = | ||
721 | new MySqlCommand( | ||
722 | "ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", | ||
723 | m_connection)) | ||
717 | { | 724 | { |
718 | cmd.ExecuteNonQuery(); | 725 | cmd.ExecuteNonQuery(); |
719 | } | 726 | } |
@@ -725,36 +732,42 @@ namespace OpenSim.Framework.Data.MySQL | |||
725 | { | 732 | { |
726 | LandData newData = new LandData(); | 733 | LandData newData = new LandData(); |
727 | 734 | ||
728 | newData.globalID = new LLUUID((String)row["UUID"]); | 735 | newData.globalID = new LLUUID((String) row["UUID"]); |
729 | newData.localID = Convert.ToInt32(row["LocalLandID"]); | 736 | newData.localID = Convert.ToInt32(row["LocalLandID"]); |
730 | 737 | ||
731 | // Bitmap is a byte[512] | 738 | // Bitmap is a byte[512] |
732 | newData.landBitmapByteArray = (Byte[])row["Bitmap"]; | 739 | newData.landBitmapByteArray = (Byte[]) row["Bitmap"]; |
733 | 740 | ||
734 | newData.landName = (String)row["Name"]; | 741 | newData.landName = (String) row["Name"]; |
735 | newData.landDesc = (String)row["Description"]; | 742 | newData.landDesc = (String) row["Description"]; |
736 | newData.ownerID = (String)row["OwnerUUID"]; | 743 | newData.ownerID = (String) row["OwnerUUID"]; |
737 | newData.isGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]); | 744 | newData.isGroupOwned = Convert.ToBoolean(row["IsGroupOwned"]); |
738 | newData.area = Convert.ToInt32(row["Area"]); | 745 | newData.area = Convert.ToInt32(row["Area"]); |
739 | newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented | 746 | newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented |
740 | newData.category = (Parcel.ParcelCategory)Convert.ToInt32(row["Category"]); //Enum libsecondlife.Parcel.ParcelCategory | 747 | newData.category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]); |
748 | //Enum libsecondlife.Parcel.ParcelCategory | ||
741 | newData.claimDate = Convert.ToInt32(row["ClaimDate"]); | 749 | newData.claimDate = Convert.ToInt32(row["ClaimDate"]); |
742 | newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]); | 750 | newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]); |
743 | newData.groupID = new LLUUID((String)row["GroupUUID"]); | 751 | newData.groupID = new LLUUID((String) row["GroupUUID"]); |
744 | newData.salePrice = Convert.ToInt32(row["SalePrice"]); | 752 | newData.salePrice = Convert.ToInt32(row["SalePrice"]); |
745 | newData.landStatus = (Parcel.ParcelStatus)Convert.ToInt32(row["LandStatus"]); //Enum. libsecondlife.Parcel.ParcelStatus | 753 | newData.landStatus = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]); |
754 | //Enum. libsecondlife.Parcel.ParcelStatus | ||
746 | newData.landFlags = Convert.ToUInt32(row["LandFlags"]); | 755 | newData.landFlags = Convert.ToUInt32(row["LandFlags"]); |
747 | newData.landingType = Convert.ToByte(row["LandingType"]); | 756 | newData.landingType = Convert.ToByte(row["LandingType"]); |
748 | newData.mediaAutoScale = Convert.ToByte(row["MediaAutoScale"]); | 757 | newData.mediaAutoScale = Convert.ToByte(row["MediaAutoScale"]); |
749 | newData.mediaID = new LLUUID((String)row["MediaTextureUUID"]); | 758 | newData.mediaID = new LLUUID((String) row["MediaTextureUUID"]); |
750 | newData.mediaURL = (String)row["MediaURL"]; | 759 | newData.mediaURL = (String) row["MediaURL"]; |
751 | newData.musicURL = (String)row["MusicURL"]; | 760 | newData.musicURL = (String) row["MusicURL"]; |
752 | newData.passHours = Convert.ToSingle(row["PassHours"]); | 761 | newData.passHours = Convert.ToSingle(row["PassHours"]); |
753 | newData.passPrice = Convert.ToInt32(row["PassPrice"]); | 762 | newData.passPrice = Convert.ToInt32(row["PassPrice"]); |
754 | newData.snapshotID = (String)row["SnapshotUUID"]; | 763 | newData.snapshotID = (String) row["SnapshotUUID"]; |
755 | 764 | ||
756 | newData.userLocation = new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]), Convert.ToSingle(row["UserLocationZ"])); | 765 | newData.userLocation = |
757 | newData.userLookAt = new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), Convert.ToSingle(row["UserLookAtZ"])); | 766 | new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]), |
767 | Convert.ToSingle(row["UserLocationZ"])); | ||
768 | newData.userLookAt = | ||
769 | new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), | ||
770 | Convert.ToSingle(row["UserLookAtZ"])); | ||
758 | newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); | 771 | newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); |
759 | 772 | ||
760 | return newData; | 773 | return newData; |
@@ -763,7 +776,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
763 | private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) | 776 | private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) |
764 | { | 777 | { |
765 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 778 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
766 | entry.AgentID = new LLUUID((string)row["AccessUUID"]); | 779 | entry.AgentID = new LLUUID((string) row["AccessUUID"]); |
767 | entry.Flags = (ParcelManager.AccessList) Convert.ToInt32(row["Flags"]); | 780 | entry.Flags = (ParcelManager.AccessList) Convert.ToInt32(row["Flags"]); |
768 | entry.Time = new DateTime(); | 781 | entry.Time = new DateTime(); |
769 | return entry; | 782 | return entry; |
@@ -771,7 +784,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
771 | 784 | ||
772 | private Array serializeTerrain(double[,] val) | 785 | private Array serializeTerrain(double[,] val) |
773 | { | 786 | { |
774 | MemoryStream str = new MemoryStream(65536 * sizeof(double)); | 787 | MemoryStream str = new MemoryStream(65536*sizeof (double)); |
775 | BinaryWriter bw = new BinaryWriter(str); | 788 | BinaryWriter bw = new BinaryWriter(str); |
776 | 789 | ||
777 | // TODO: COMPATIBILITY - Add byte-order conversions | 790 | // TODO: COMPATIBILITY - Add byte-order conversions |
@@ -789,7 +802,8 @@ namespace OpenSim.Framework.Data.MySQL | |||
789 | row["ParentID"] = prim.ParentID; | 802 | row["ParentID"] = prim.ParentID; |
790 | row["CreationDate"] = prim.CreationDate; | 803 | row["CreationDate"] = prim.CreationDate; |
791 | row["Name"] = prim.Name; | 804 | row["Name"] = prim.Name; |
792 | row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); // the UUID of the root part for this SceneObjectGroup | 805 | row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); |
806 | // the UUID of the root part for this SceneObjectGroup | ||
793 | // various text fields | 807 | // various text fields |
794 | row["Text"] = prim.Text; | 808 | row["Text"] = prim.Text; |
795 | row["Description"] = prim.Description; | 809 | row["Description"] = prim.Description; |
@@ -841,18 +855,20 @@ namespace OpenSim.Framework.Data.MySQL | |||
841 | row["SitTargetOrientX"] = sitTargetOrient.X; | 855 | row["SitTargetOrientX"] = sitTargetOrient.X; |
842 | row["SitTargetOrientY"] = sitTargetOrient.Y; | 856 | row["SitTargetOrientY"] = sitTargetOrient.Y; |
843 | row["SitTargetOrientZ"] = sitTargetOrient.Z; | 857 | row["SitTargetOrientZ"] = sitTargetOrient.Z; |
844 | } | 858 | } |
845 | catch (MySql.Data.MySqlClient.MySqlException) | 859 | catch (MySqlException) |
846 | { | 860 | { |
847 | // Database table was created before we got here and needs to be created! :P | 861 | // Database table was created before we got here and needs to be created! :P |
848 | 862 | ||
849 | using (MySqlCommand cmd = new MySqlCommand("ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", m_connection)) | 863 | using ( |
864 | MySqlCommand cmd = | ||
865 | new MySqlCommand( | ||
866 | "ALTER TABLE `prims` ADD COLUMN `SitTargetOffsetX` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetY` float NOT NULL default 0, ADD COLUMN `SitTargetOffsetZ` float NOT NULL default 0, ADD COLUMN `SitTargetOrientW` float NOT NULL default 0, ADD COLUMN `SitTargetOrientX` float NOT NULL default 0, ADD COLUMN `SitTargetOrientY` float NOT NULL default 0, ADD COLUMN `SitTargetOrientZ` float NOT NULL default 0;", | ||
867 | m_connection)) | ||
850 | { | 868 | { |
851 | cmd.ExecuteNonQuery(); | 869 | cmd.ExecuteNonQuery(); |
852 | } | 870 | } |
853 | } | 871 | } |
854 | |||
855 | |||
856 | } | 872 | } |
857 | 873 | ||
858 | private void fillLandRow(DataRow row, LandData land, LLUUID regionUUID) | 874 | private void fillLandRow(DataRow row, LandData land, LLUUID regionUUID) |
@@ -929,11 +945,11 @@ namespace OpenSim.Framework.Data.MySQL | |||
929 | s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); | 945 | s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); |
930 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); | 946 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); |
931 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); | 947 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); |
932 | 948 | ||
933 | byte[] textureEntry = (byte[])row["Texture"]; | 949 | byte[] textureEntry = (byte[]) row["Texture"]; |
934 | s.TextureEntry = textureEntry; | 950 | s.TextureEntry = textureEntry; |
935 | 951 | ||
936 | s.ExtraParams = (byte[])row["ExtraParams"]; | 952 | s.ExtraParams = (byte[]) row["ExtraParams"]; |
937 | 953 | ||
938 | return s; | 954 | return s; |
939 | } | 955 | } |
@@ -1146,7 +1162,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
1146 | da.UpdateCommand = updateCommand; | 1162 | da.UpdateCommand = updateCommand; |
1147 | 1163 | ||
1148 | MySqlCommand delete = new MySqlCommand("delete from prims where UUID=?UUID"); | 1164 | MySqlCommand delete = new MySqlCommand("delete from prims where UUID=?UUID"); |
1149 | delete.Parameters.Add(createMySqlParameter("UUID", typeof(String))); | 1165 | delete.Parameters.Add(createMySqlParameter("UUID", typeof (String))); |
1150 | delete.Connection = conn; | 1166 | delete.Connection = conn; |
1151 | da.DeleteCommand = delete; | 1167 | da.DeleteCommand = delete; |
1152 | } | 1168 | } |
@@ -1181,7 +1197,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
1181 | da.UpdateCommand.Connection = conn; | 1197 | da.UpdateCommand.Connection = conn; |
1182 | 1198 | ||
1183 | MySqlCommand delete = new MySqlCommand("delete from primshapes where UUID = ?UUID"); | 1199 | MySqlCommand delete = new MySqlCommand("delete from primshapes where UUID = ?UUID"); |
1184 | delete.Parameters.Add(createMySqlParameter("UUID", typeof(String))); | 1200 | delete.Parameters.Add(createMySqlParameter("UUID", typeof (String))); |
1185 | delete.Connection = conn; | 1201 | delete.Connection = conn; |
1186 | da.DeleteCommand = delete; | 1202 | da.DeleteCommand = delete; |
1187 | } | 1203 | } |
@@ -1337,27 +1353,27 @@ namespace OpenSim.Framework.Data.MySQL | |||
1337 | 1353 | ||
1338 | private DbType dbtypeFromType(Type type) | 1354 | private DbType dbtypeFromType(Type type) |
1339 | { | 1355 | { |
1340 | if (type == typeof(String)) | 1356 | if (type == typeof (String)) |
1341 | { | 1357 | { |
1342 | return DbType.String; | 1358 | return DbType.String; |
1343 | } | 1359 | } |
1344 | else if (type == typeof(Int32)) | 1360 | else if (type == typeof (Int32)) |
1345 | { | 1361 | { |
1346 | return DbType.Int32; | 1362 | return DbType.Int32; |
1347 | } | 1363 | } |
1348 | else if (type == typeof(Double)) | 1364 | else if (type == typeof (Double)) |
1349 | { | 1365 | { |
1350 | return DbType.Double; | 1366 | return DbType.Double; |
1351 | } | 1367 | } |
1352 | else if (type == typeof(Byte)) | 1368 | else if (type == typeof (Byte)) |
1353 | { | 1369 | { |
1354 | return DbType.Byte; | 1370 | return DbType.Byte; |
1355 | } | 1371 | } |
1356 | else if (type == typeof(Double)) | 1372 | else if (type == typeof (Double)) |
1357 | { | 1373 | { |
1358 | return DbType.Double; | 1374 | return DbType.Double; |
1359 | } | 1375 | } |
1360 | else if (type == typeof(Byte[])) | 1376 | else if (type == typeof (Byte[])) |
1361 | { | 1377 | { |
1362 | return DbType.Binary; | 1378 | return DbType.Binary; |
1363 | } | 1379 | } |
@@ -1371,19 +1387,19 @@ namespace OpenSim.Framework.Data.MySQL | |||
1371 | // slightly differently. | 1387 | // slightly differently. |
1372 | private string MySqlType(Type type) | 1388 | private string MySqlType(Type type) |
1373 | { | 1389 | { |
1374 | if (type == typeof(String)) | 1390 | if (type == typeof (String)) |
1375 | { | 1391 | { |
1376 | return "varchar(255)"; | 1392 | return "varchar(255)"; |
1377 | } | 1393 | } |
1378 | else if (type == typeof(Int32)) | 1394 | else if (type == typeof (Int32)) |
1379 | { | 1395 | { |
1380 | return "integer"; | 1396 | return "integer"; |
1381 | } | 1397 | } |
1382 | else if (type == typeof(Double)) | 1398 | else if (type == typeof (Double)) |
1383 | { | 1399 | { |
1384 | return "float"; | 1400 | return "float"; |
1385 | } | 1401 | } |
1386 | else if (type == typeof(Byte[])) | 1402 | else if (type == typeof (Byte[])) |
1387 | { | 1403 | { |
1388 | return "longblob"; | 1404 | return "longblob"; |
1389 | } | 1405 | } |
@@ -1393,4 +1409,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
1393 | } | 1409 | } |
1394 | } | 1410 | } |
1395 | } | 1411 | } |
1396 | } | 1412 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs index 7843562..7cfac12 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLGridData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLGridData.cs | |||
@@ -31,6 +31,7 @@ using System.Collections.Generic; | |||
31 | using System.Data; | 31 | using System.Data; |
32 | using System.Security.Cryptography; | 32 | using System.Security.Cryptography; |
33 | using System.Text; | 33 | using System.Text; |
34 | using System.Text.RegularExpressions; | ||
34 | using libsecondlife; | 35 | using libsecondlife; |
35 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
36 | 37 | ||
@@ -62,7 +63,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
62 | database = | 63 | database = |
63 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, | 64 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, |
64 | settingPort); | 65 | settingPort); |
65 | 66 | ||
66 | TestTables(); | 67 | TestTables(); |
67 | } | 68 | } |
68 | 69 | ||
@@ -80,7 +81,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
80 | 81 | ||
81 | UpgradeRegionsTable(tableList["regions"]); | 82 | UpgradeRegionsTable(tableList["regions"]); |
82 | } | 83 | } |
83 | 84 | ||
84 | /// <summary> | 85 | /// <summary> |
85 | /// Create or upgrade the table if necessary | 86 | /// Create or upgrade the table if necessary |
86 | /// </summary> | 87 | /// </summary> |
@@ -94,10 +95,10 @@ namespace OpenSim.Framework.Data.MySQL | |||
94 | database.ExecuteResourceSql("CreateRegionsTable.sql"); | 95 | database.ExecuteResourceSql("CreateRegionsTable.sql"); |
95 | return; | 96 | return; |
96 | } | 97 | } |
97 | } | 98 | } |
98 | 99 | ||
99 | #endregion | 100 | #endregion |
100 | 101 | ||
101 | /// <summary> | 102 | /// <summary> |
102 | /// Shuts down the grid interface | 103 | /// Shuts down the grid interface |
103 | /// </summary> | 104 | /// </summary> |
@@ -203,42 +204,41 @@ namespace OpenSim.Framework.Data.MySQL | |||
203 | return null; | 204 | return null; |
204 | } | 205 | } |
205 | } | 206 | } |
207 | |||
206 | /// <summary> | 208 | /// <summary> |
207 | /// // Returns a list of avatar and UUIDs that match the query | 209 | /// // Returns a list of avatar and UUIDs that match the query |
208 | /// </summary> | 210 | /// </summary> |
209 | |||
210 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 211 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
211 | { | 212 | { |
212 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); | 213 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); |
213 | 214 | ||
214 | System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]"); | 215 | Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]"); |
215 | 216 | ||
216 | string[] querysplit; | 217 | string[] querysplit; |
217 | querysplit = query.Split(' '); | 218 | querysplit = query.Split(' '); |
218 | if (querysplit.Length == 2) | 219 | if (querysplit.Length == 2) |
219 | { | 220 | { |
220 | Dictionary<string, string> param = new Dictionary<string, string>(); | 221 | Dictionary<string, string> param = new Dictionary<string, string>(); |
221 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0],"") + "%"; | 222 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%"; |
222 | param["?second"] = objAlphaNumericPattern.Replace(querysplit[1], "") + "%"; | 223 | param["?second"] = objAlphaNumericPattern.Replace(querysplit[1], "") + "%"; |
223 | try | 224 | try |
224 | { | 225 | { |
225 | lock (database) | 226 | lock (database) |
226 | { | 227 | { |
227 | |||
228 | |||
229 | IDbCommand result = | 228 | IDbCommand result = |
230 | database.Query("SELECT UUID,username,surname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", param); | 229 | database.Query( |
230 | "SELECT UUID,username,surname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", | ||
231 | param); | ||
231 | IDataReader reader = result.ExecuteReader(); | 232 | IDataReader reader = result.ExecuteReader(); |
232 | 233 | ||
233 | 234 | ||
234 | while (reader.Read()) | 235 | while (reader.Read()) |
235 | { | 236 | { |
236 | AvatarPickerAvatar user = new AvatarPickerAvatar(); | 237 | AvatarPickerAvatar user = new AvatarPickerAvatar(); |
237 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 238 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
238 | user.firstName = (string)reader["username"]; | 239 | user.firstName = (string) reader["username"]; |
239 | user.lastName = (string)reader["surname"]; | 240 | user.lastName = (string) reader["surname"]; |
240 | returnlist.Add(user); | 241 | returnlist.Add(user); |
241 | |||
242 | } | 242 | } |
243 | reader.Close(); | 243 | reader.Close(); |
244 | result.Dispose(); | 244 | result.Dispose(); |
@@ -250,33 +250,30 @@ namespace OpenSim.Framework.Data.MySQL | |||
250 | MainLog.Instance.Error(e.ToString()); | 250 | MainLog.Instance.Error(e.ToString()); |
251 | return returnlist; | 251 | return returnlist; |
252 | } | 252 | } |
253 | |||
254 | |||
255 | |||
256 | } | 253 | } |
257 | else if (querysplit.Length == 1) | 254 | else if (querysplit.Length == 1) |
258 | { | 255 | { |
259 | |||
260 | try | 256 | try |
261 | { | 257 | { |
262 | lock (database) | 258 | lock (database) |
263 | { | 259 | { |
264 | Dictionary<string, string> param = new Dictionary<string, string>(); | 260 | Dictionary<string, string> param = new Dictionary<string, string>(); |
265 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0],"") + "%"; | 261 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%"; |
266 | 262 | ||
267 | IDbCommand result = | 263 | IDbCommand result = |
268 | database.Query("SELECT UUID,username,surname FROM users WHERE username like ?first OR lastname like ?second", param); | 264 | database.Query( |
265 | "SELECT UUID,username,surname FROM users WHERE username like ?first OR lastname like ?second", | ||
266 | param); | ||
269 | IDataReader reader = result.ExecuteReader(); | 267 | IDataReader reader = result.ExecuteReader(); |
270 | 268 | ||
271 | 269 | ||
272 | while (reader.Read()) | 270 | while (reader.Read()) |
273 | { | 271 | { |
274 | AvatarPickerAvatar user = new AvatarPickerAvatar(); | 272 | AvatarPickerAvatar user = new AvatarPickerAvatar(); |
275 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 273 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
276 | user.firstName = (string)reader["username"]; | 274 | user.firstName = (string) reader["username"]; |
277 | user.lastName = (string)reader["surname"]; | 275 | user.lastName = (string) reader["surname"]; |
278 | returnlist.Add(user); | 276 | returnlist.Add(user); |
279 | |||
280 | } | 277 | } |
281 | reader.Close(); | 278 | reader.Close(); |
282 | result.Dispose(); | 279 | result.Dispose(); |
@@ -413,4 +410,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
413 | } | 410 | } |
414 | } | 411 | } |
415 | } | 412 | } |
416 | } | 413 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs index a47a126..c317f4a 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLInventoryData.cs | |||
@@ -232,7 +232,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
232 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); | 232 | List<InventoryFolderBase> items = new List<InventoryFolderBase>(); |
233 | while (reader.Read()) | 233 | while (reader.Read()) |
234 | items.Add(readInventoryFolder(reader)); | 234 | items.Add(readInventoryFolder(reader)); |
235 | 235 | ||
236 | InventoryFolderBase rootFolder = null; | 236 | InventoryFolderBase rootFolder = null; |
237 | 237 | ||
238 | // There should only ever be one root folder for a user. However, if there's more | 238 | // There should only ever be one root folder for a user. However, if there's more |
@@ -637,4 +637,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
637 | } | 637 | } |
638 | } | 638 | } |
639 | } | 639 | } |
640 | } | 640 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs index eda5cc5..d2605fa 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLLogData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLLogData.cs | |||
@@ -103,4 +103,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
103 | return "0.1"; | 103 | return "0.1"; |
104 | } | 104 | } |
105 | } | 105 | } |
106 | } | 106 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLManager.cs b/OpenSim/Framework/Data.MySQL/MySQLManager.cs index d652db8..96f0c4d 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLManager.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLManager.cs | |||
@@ -666,4 +666,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
666 | return returnval; | 666 | return returnval; |
667 | } | 667 | } |
668 | } | 668 | } |
669 | } | 669 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs index 4b86d80..2d96f6e 100644 --- a/OpenSim/Framework/Data.MySQL/MySQLUserData.cs +++ b/OpenSim/Framework/Data.MySQL/MySQLUserData.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Data; | 30 | using System.Data; |
31 | using System.Text.RegularExpressions; | ||
31 | using libsecondlife; | 32 | using libsecondlife; |
32 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
33 | 34 | ||
@@ -61,7 +62,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
61 | database = | 62 | database = |
62 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, | 63 | new MySQLManager(settingHostname, settingDatabase, settingUsername, settingPassword, settingPooling, |
63 | settingPort); | 64 | settingPort); |
64 | 65 | ||
65 | TestTables(); | 66 | TestTables(); |
66 | } | 67 | } |
67 | 68 | ||
@@ -81,7 +82,7 @@ namespace OpenSim.Framework.Data.MySQL | |||
81 | UpgradeAgentsTable(tableList["agents"]); | 82 | UpgradeAgentsTable(tableList["agents"]); |
82 | UpgradeUsersTable(tableList["users"]); | 83 | UpgradeUsersTable(tableList["users"]); |
83 | } | 84 | } |
84 | 85 | ||
85 | /// <summary> | 86 | /// <summary> |
86 | /// Create or upgrade the table if necessary | 87 | /// Create or upgrade the table if necessary |
87 | /// </summary> | 88 | /// </summary> |
@@ -95,8 +96,8 @@ namespace OpenSim.Framework.Data.MySQL | |||
95 | database.ExecuteResourceSql("CreateAgentsTable.sql"); | 96 | database.ExecuteResourceSql("CreateAgentsTable.sql"); |
96 | return; | 97 | return; |
97 | } | 98 | } |
98 | } | 99 | } |
99 | 100 | ||
100 | /// <summary> | 101 | /// <summary> |
101 | /// Create or upgrade the table if necessary | 102 | /// Create or upgrade the table if necessary |
102 | /// </summary> | 103 | /// </summary> |
@@ -110,8 +111,8 @@ namespace OpenSim.Framework.Data.MySQL | |||
110 | database.ExecuteResourceSql("CreateUsersTable.sql"); | 111 | database.ExecuteResourceSql("CreateUsersTable.sql"); |
111 | return; | 112 | return; |
112 | } | 113 | } |
113 | } | 114 | } |
114 | 115 | ||
115 | #endregion | 116 | #endregion |
116 | 117 | ||
117 | // see IUserData | 118 | // see IUserData |
@@ -144,11 +145,11 @@ namespace OpenSim.Framework.Data.MySQL | |||
144 | } | 145 | } |
145 | } | 146 | } |
146 | 147 | ||
147 | public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 148 | public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
148 | { | 149 | { |
149 | List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); | 150 | List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>(); |
150 | 151 | ||
151 | System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]"); | 152 | Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]"); |
152 | 153 | ||
153 | string[] querysplit; | 154 | string[] querysplit; |
154 | querysplit = query.Split(' '); | 155 | querysplit = query.Split(' '); |
@@ -161,21 +162,20 @@ namespace OpenSim.Framework.Data.MySQL | |||
161 | { | 162 | { |
162 | lock (database) | 163 | lock (database) |
163 | { | 164 | { |
164 | |||
165 | |||
166 | IDbCommand result = | 165 | IDbCommand result = |
167 | database.Query("SELECT UUID,username,lastname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", param); | 166 | database.Query( |
167 | "SELECT UUID,username,lastname FROM users WHERE username like ?first AND lastname like ?second LIMIT 100", | ||
168 | param); | ||
168 | IDataReader reader = result.ExecuteReader(); | 169 | IDataReader reader = result.ExecuteReader(); |
169 | 170 | ||
170 | 171 | ||
171 | while (reader.Read()) | 172 | while (reader.Read()) |
172 | { | 173 | { |
173 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 174 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); |
174 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 175 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
175 | user.firstName = (string)reader["username"]; | 176 | user.firstName = (string) reader["username"]; |
176 | user.lastName = (string)reader["lastname"]; | 177 | user.lastName = (string) reader["lastname"]; |
177 | returnlist.Add(user); | 178 | returnlist.Add(user); |
178 | |||
179 | } | 179 | } |
180 | reader.Close(); | 180 | reader.Close(); |
181 | result.Dispose(); | 181 | result.Dispose(); |
@@ -187,13 +187,9 @@ namespace OpenSim.Framework.Data.MySQL | |||
187 | MainLog.Instance.Error(e.ToString()); | 187 | MainLog.Instance.Error(e.ToString()); |
188 | return returnlist; | 188 | return returnlist; |
189 | } | 189 | } |
190 | |||
191 | |||
192 | |||
193 | } | 190 | } |
194 | else if (querysplit.Length == 1) | 191 | else if (querysplit.Length == 1) |
195 | { | 192 | { |
196 | |||
197 | try | 193 | try |
198 | { | 194 | { |
199 | lock (database) | 195 | lock (database) |
@@ -202,18 +198,19 @@ namespace OpenSim.Framework.Data.MySQL | |||
202 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%"; | 198 | param["?first"] = objAlphaNumericPattern.Replace(querysplit[0], "") + "%"; |
203 | 199 | ||
204 | IDbCommand result = | 200 | IDbCommand result = |
205 | database.Query("SELECT UUID,username,lastname FROM users WHERE username like ?first OR lastname like ?first LIMIT 100", param); | 201 | database.Query( |
202 | "SELECT UUID,username,lastname FROM users WHERE username like ?first OR lastname like ?first LIMIT 100", | ||
203 | param); | ||
206 | IDataReader reader = result.ExecuteReader(); | 204 | IDataReader reader = result.ExecuteReader(); |
207 | 205 | ||
208 | 206 | ||
209 | while (reader.Read()) | 207 | while (reader.Read()) |
210 | { | 208 | { |
211 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 209 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); |
212 | user.AvatarID = new LLUUID((string)reader["UUID"]); | 210 | user.AvatarID = new LLUUID((string) reader["UUID"]); |
213 | user.firstName = (string)reader["username"]; | 211 | user.firstName = (string) reader["username"]; |
214 | user.lastName = (string)reader["lastname"]; | 212 | user.lastName = (string) reader["lastname"]; |
215 | returnlist.Add(user); | 213 | returnlist.Add(user); |
216 | |||
217 | } | 214 | } |
218 | reader.Close(); | 215 | reader.Close(); |
219 | result.Dispose(); | 216 | result.Dispose(); |
@@ -402,4 +399,4 @@ namespace OpenSim.Framework.Data.MySQL | |||
402 | return "0.1"; | 399 | return "0.1"; |
403 | } | 400 | } |
404 | } | 401 | } |
405 | } | 402 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteAssetData.cs b/OpenSim/Framework/Data.SQLite/SQLiteAssetData.cs index 3723343..462c433 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteAssetData.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteAssetData.cs | |||
@@ -313,4 +313,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
313 | 313 | ||
314 | #endregion | 314 | #endregion |
315 | } | 315 | } |
316 | } | 316 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteBase.cs b/OpenSim/Framework/Data.SQLite/SQLiteBase.cs index d9aaa97..2e8d341 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteBase.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteBase.cs | |||
@@ -263,4 +263,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
263 | } | 263 | } |
264 | } | 264 | } |
265 | } | 265 | } |
266 | } | 266 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteGridData.cs b/OpenSim/Framework/Data.SQLite/SQLiteGridData.cs index dddc085..4b790c3 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteGridData.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteGridData.cs | |||
@@ -130,16 +130,17 @@ namespace OpenSim.Framework.Data.SQLite | |||
130 | 130 | ||
131 | return row; | 131 | return row; |
132 | } | 132 | } |
133 | |||
133 | /// <summary> | 134 | /// <summary> |
134 | /// // Returns a list of avatar and UUIDs that match the query | 135 | /// // Returns a list of avatar and UUIDs that match the query |
135 | /// </summary> | 136 | /// </summary> |
136 | |||
137 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 137 | public List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
138 | { | 138 | { |
139 | //Do nothing yet | 139 | //Do nothing yet |
140 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); | 140 | List<AvatarPickerAvatar> returnlist = new List<AvatarPickerAvatar>(); |
141 | return returnlist; | 141 | return returnlist; |
142 | } | 142 | } |
143 | |||
143 | /// <summary> | 144 | /// <summary> |
144 | /// Adds a new specified region to the database | 145 | /// Adds a new specified region to the database |
145 | /// </summary> | 146 | /// </summary> |
@@ -201,4 +202,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
201 | return null; | 202 | return null; |
202 | } | 203 | } |
203 | } | 204 | } |
204 | } | 205 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs index c696259..64a27f0 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteInventoryStore.cs | |||
@@ -159,6 +159,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
159 | 159 | ||
160 | invFoldersDa.Update(ds, "inventoryfolders"); | 160 | invFoldersDa.Update(ds, "inventoryfolders"); |
161 | } | 161 | } |
162 | |||
162 | private void addItem(InventoryItemBase item) | 163 | private void addItem(InventoryItemBase item) |
163 | { | 164 | { |
164 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; | 165 | DataTable inventoryItemTable = ds.Tables["inventoryitems"]; |
@@ -248,7 +249,8 @@ namespace OpenSim.Framework.Data.SQLite | |||
248 | { | 249 | { |
249 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); | 250 | List<InventoryFolderBase> folders = new List<InventoryFolderBase>(); |
250 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; | 251 | DataTable inventoryFolderTable = ds.Tables["inventoryfolders"]; |
251 | string selectExp = "agentID = '" + Util.ToRawUuidString(user) + "' AND parentID = '" + Util.ToRawUuidString(LLUUID.Zero) + "'"; | 252 | string selectExp = "agentID = '" + Util.ToRawUuidString(user) + "' AND parentID = '" + |
253 | Util.ToRawUuidString(LLUUID.Zero) + "'"; | ||
252 | DataRow[] rows = inventoryFolderTable.Select(selectExp); | 254 | DataRow[] rows = inventoryFolderTable.Select(selectExp); |
253 | foreach (DataRow row in rows) | 255 | foreach (DataRow row in rows) |
254 | { | 256 | { |
@@ -627,4 +629,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
627 | return true; | 629 | return true; |
628 | } | 630 | } |
629 | } | 631 | } |
630 | } | 632 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteManager.cs b/OpenSim/Framework/Data.SQLite/SQLiteManager.cs index cac37d4..a97b146 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteManager.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteManager.cs | |||
@@ -275,4 +275,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
275 | return returnval; | 275 | return returnval; |
276 | } | 276 | } |
277 | } | 277 | } |
278 | } | 278 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs index 811e0fa..a719fa2 100644 --- a/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs +++ b/OpenSim/Framework/Data.SQLite/SQLiteUserData.cs | |||
@@ -30,7 +30,6 @@ using System.Collections.Generic; | |||
30 | using System.Data; | 30 | using System.Data; |
31 | using libsecondlife; | 31 | using libsecondlife; |
32 | using Mono.Data.SqliteClient; | 32 | using Mono.Data.SqliteClient; |
33 | using OpenSim.Framework; | ||
34 | using OpenSim.Framework.Console; | 33 | using OpenSim.Framework.Console; |
35 | 34 | ||
36 | namespace OpenSim.Framework.Data.SQLite | 35 | namespace OpenSim.Framework.Data.SQLite |
@@ -38,7 +37,6 @@ namespace OpenSim.Framework.Data.SQLite | |||
38 | /// <summary> | 37 | /// <summary> |
39 | /// A User storage interface for the SQLite database system | 38 | /// A User storage interface for the SQLite database system |
40 | /// </summary> | 39 | /// </summary> |
41 | |||
42 | public class SQLiteUserData : SQLiteBase, IUserData | 40 | public class SQLiteUserData : SQLiteBase, IUserData |
43 | { | 41 | { |
44 | /// <summary> | 42 | /// <summary> |
@@ -119,46 +117,46 @@ namespace OpenSim.Framework.Data.SQLite | |||
119 | } | 117 | } |
120 | } | 118 | } |
121 | 119 | ||
122 | public List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) | 120 | public List<Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query) |
123 | { | 121 | { |
124 | List<OpenSim.Framework.AvatarPickerAvatar> returnlist = new List<OpenSim.Framework.AvatarPickerAvatar>(); | 122 | List<Framework.AvatarPickerAvatar> returnlist = new List<Framework.AvatarPickerAvatar>(); |
125 | string[] querysplit; | 123 | string[] querysplit; |
126 | querysplit = query.Split(' '); | 124 | querysplit = query.Split(' '); |
127 | if (querysplit.Length == 2) | 125 | if (querysplit.Length == 2) |
128 | { | 126 | { |
129 | string select = "username like '" + querysplit[0] + "%' and surname like '" + querysplit[1] + "%'"; | 127 | string select = "username like '" + querysplit[0] + "%' and surname like '" + querysplit[1] + "%'"; |
130 | lock(ds) | 128 | lock (ds) |
131 | { | 129 | { |
132 | DataRow[] rows = ds.Tables["users"].Select(select); | 130 | DataRow[] rows = ds.Tables["users"].Select(select); |
133 | if (rows.Length > 0) | 131 | if (rows.Length > 0) |
134 | { | 132 | { |
135 | for (int i = 0; i < rows.Length; i++) | 133 | for (int i = 0; i < rows.Length; i++) |
136 | { | 134 | { |
137 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 135 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); |
138 | DataRow row = rows[i]; | 136 | DataRow row = rows[i]; |
139 | user.AvatarID = new LLUUID((string)row["UUID"]); | 137 | user.AvatarID = new LLUUID((string) row["UUID"]); |
140 | user.firstName = (string)row["username"]; | 138 | user.firstName = (string) row["username"]; |
141 | user.lastName = (string)row["surname"]; | 139 | user.lastName = (string) row["surname"]; |
142 | returnlist.Add(user); | 140 | returnlist.Add(user); |
143 | } | 141 | } |
144 | } | 142 | } |
145 | } | 143 | } |
146 | } | 144 | } |
147 | else if (querysplit.Length == 1) | 145 | else if (querysplit.Length == 1) |
148 | { | 146 | { |
149 | |||
150 | string select = "username like '" + querysplit[0] + "%' OR surname like '" + querysplit[0] + "%'"; | 147 | string select = "username like '" + querysplit[0] + "%' OR surname like '" + querysplit[0] + "%'"; |
151 | lock(ds) | 148 | lock (ds) |
152 | { | 149 | { |
153 | DataRow[] rows = ds.Tables["users"].Select(select); | 150 | DataRow[] rows = ds.Tables["users"].Select(select); |
154 | if (rows.Length > 0) | 151 | if (rows.Length > 0) |
155 | { | 152 | { |
156 | for (int i = 0;i<rows.Length;i++) { | 153 | for (int i = 0; i < rows.Length; i++) |
157 | OpenSim.Framework.AvatarPickerAvatar user = new OpenSim.Framework.AvatarPickerAvatar(); | 154 | { |
155 | Framework.AvatarPickerAvatar user = new Framework.AvatarPickerAvatar(); | ||
158 | DataRow row = rows[i]; | 156 | DataRow row = rows[i]; |
159 | user.AvatarID = new LLUUID((string)row[0]); | 157 | user.AvatarID = new LLUUID((string) row[0]); |
160 | user.firstName = (string)row[1]; | 158 | user.firstName = (string) row[1]; |
161 | user.lastName = (string)row[2]; | 159 | user.lastName = (string) row[2]; |
162 | returnlist.Add(user); | 160 | returnlist.Add(user); |
163 | } | 161 | } |
164 | } | 162 | } |
@@ -166,6 +164,7 @@ namespace OpenSim.Framework.Data.SQLite | |||
166 | } | 164 | } |
167 | return returnlist; | 165 | return returnlist; |
168 | } | 166 | } |
167 | |||
169 | /// <summary> | 168 | /// <summary> |
170 | /// Returns a user by UUID direct | 169 | /// Returns a user by UUID direct |
171 | /// </summary> | 170 | /// </summary> |
@@ -263,7 +262,6 @@ namespace OpenSim.Framework.Data.SQLite | |||
263 | } | 262 | } |
264 | else | 263 | else |
265 | { | 264 | { |
266 | |||
267 | row.Delete(); | 265 | row.Delete(); |
268 | ua.AcceptChanges(); | 266 | ua.AcceptChanges(); |
269 | } | 267 | } |
@@ -595,4 +593,4 @@ namespace OpenSim.Framework.Data.SQLite | |||
595 | return true; | 593 | return true; |
596 | } | 594 | } |
597 | } | 595 | } |
598 | } | 596 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data/GridData.cs b/OpenSim/Framework/Data/GridData.cs index 7864dda..6072600 100644 --- a/OpenSim/Framework/Data/GridData.cs +++ b/OpenSim/Framework/Data/GridData.cs | |||
@@ -25,8 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | ||
29 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using libsecondlife; | ||
30 | 30 | ||
31 | namespace OpenSim.Framework.Data | 31 | namespace OpenSim.Framework.Data |
32 | { | 32 | { |
@@ -35,10 +35,12 @@ namespace OpenSim.Framework.Data | |||
35 | public LLUUID AvatarID; | 35 | public LLUUID AvatarID; |
36 | public string firstName; | 36 | public string firstName; |
37 | public string lastName; | 37 | public string lastName; |
38 | |||
38 | public AvatarPickerAvatar() | 39 | public AvatarPickerAvatar() |
39 | { | 40 | { |
40 | } | 41 | } |
41 | } | 42 | } |
43 | |||
42 | public enum DataResponse | 44 | public enum DataResponse |
43 | { | 45 | { |
44 | RESPONSE_OK, | 46 | RESPONSE_OK, |
@@ -78,6 +80,7 @@ namespace OpenSim.Framework.Data | |||
78 | 80 | ||
79 | 81 | ||
80 | List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query); | 82 | List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query); |
83 | |||
81 | /// <summary> | 84 | /// <summary> |
82 | /// Authenticates a sim by use of its recv key. | 85 | /// Authenticates a sim by use of its recv key. |
83 | /// WARNING: Insecure | 86 | /// WARNING: Insecure |
@@ -119,4 +122,4 @@ namespace OpenSim.Framework.Data | |||
119 | 122 | ||
120 | ReservationData GetReservationAtPoint(uint x, uint y); | 123 | ReservationData GetReservationAtPoint(uint x, uint y); |
121 | } | 124 | } |
122 | } | 125 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data/ILogData.cs b/OpenSim/Framework/Data/ILogData.cs index 2c05f4f..8765b5c 100644 --- a/OpenSim/Framework/Data/ILogData.cs +++ b/OpenSim/Framework/Data/ILogData.cs | |||
@@ -88,4 +88,4 @@ namespace OpenSim.Framework.Data | |||
88 | /// <returns>A string containing the plugin version</returns> | 88 | /// <returns>A string containing the plugin version</returns> |
89 | string getVersion(); | 89 | string getVersion(); |
90 | } | 90 | } |
91 | } | 91 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data/IniConfig.cs b/OpenSim/Framework/Data/IniConfig.cs index 6b02553..6af9770 100644 --- a/OpenSim/Framework/Data/IniConfig.cs +++ b/OpenSim/Framework/Data/IniConfig.cs | |||
@@ -95,4 +95,4 @@ namespace OpenSim.Framework.Data | |||
95 | 95 | ||
96 | private string _iniFileName; | 96 | private string _iniFileName; |
97 | } | 97 | } |
98 | } | 98 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data/RegionProfileData.cs b/OpenSim/Framework/Data/RegionProfileData.cs index a1fe901..ec50baa 100644 --- a/OpenSim/Framework/Data/RegionProfileData.cs +++ b/OpenSim/Framework/Data/RegionProfileData.cs | |||
@@ -198,4 +198,4 @@ namespace OpenSim.Framework.Data | |||
198 | return simData; | 198 | return simData; |
199 | } | 199 | } |
200 | } | 200 | } |
201 | } | 201 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Data/ReservationData.cs b/OpenSim/Framework/Data/ReservationData.cs index acab400..285f9ca 100644 --- a/OpenSim/Framework/Data/ReservationData.cs +++ b/OpenSim/Framework/Data/ReservationData.cs | |||
@@ -44,4 +44,4 @@ namespace OpenSim.Framework.Data | |||
44 | public string gridSendKey = ""; | 44 | public string gridSendKey = ""; |
45 | public string gridRecvKey = ""; | 45 | public string gridRecvKey = ""; |
46 | } | 46 | } |
47 | } | 47 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/EstateSettings.cs b/OpenSim/Framework/EstateSettings.cs index b95ca83..8c9d7f4 100644 --- a/OpenSim/Framework/EstateSettings.cs +++ b/OpenSim/Framework/EstateSettings.cs | |||
@@ -482,7 +482,7 @@ namespace OpenSim.Framework | |||
482 | // I don't think there is a reason that this actually | 482 | // I don't think there is a reason that this actually |
483 | // needs to be written back to the estate settings | 483 | // needs to be written back to the estate settings |
484 | // file. | 484 | // file. |
485 | 485 | ||
486 | // configMember.forceSetConfigurationOption("terrain_image_id", m_terrainImageID.ToString()); | 486 | // configMember.forceSetConfigurationOption("terrain_image_id", m_terrainImageID.ToString()); |
487 | } | 487 | } |
488 | } | 488 | } |
@@ -708,4 +708,4 @@ namespace OpenSim.Framework | |||
708 | return true; | 708 | return true; |
709 | } | 709 | } |
710 | } | 710 | } |
711 | } | 711 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/GridConfig.cs b/OpenSim/Framework/GridConfig.cs index 799be46..8821010 100644 --- a/OpenSim/Framework/GridConfig.cs +++ b/OpenSim/Framework/GridConfig.cs | |||
@@ -93,7 +93,8 @@ namespace OpenSim.Framework | |||
93 | configMember.addConfigurationOption("http_port", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | 93 | configMember.addConfigurationOption("http_port", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, |
94 | "Http Listener port", DefaultHttpPort.ToString(), false); | 94 | "Http Listener port", DefaultHttpPort.ToString(), false); |
95 | 95 | ||
96 | configMember.addConfigurationOption("allow_forceful_banlines", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | 96 | configMember.addConfigurationOption("allow_forceful_banlines", |
97 | ConfigurationOption.ConfigurationTypes.TYPE_STRING, | ||
97 | "Allow Forceful Banlines", "TRUE", true); | 98 | "Allow Forceful Banlines", "TRUE", true); |
98 | } | 99 | } |
99 | 100 | ||
@@ -135,7 +136,7 @@ namespace OpenSim.Framework | |||
135 | HttpPort = (uint) configuration_result; | 136 | HttpPort = (uint) configuration_result; |
136 | break; | 137 | break; |
137 | case "allow_forceful_banlines": | 138 | case "allow_forceful_banlines": |
138 | AllowForcefulBanlines = (string)configuration_result; | 139 | AllowForcefulBanlines = (string) configuration_result; |
139 | break; | 140 | break; |
140 | } | 141 | } |
141 | 142 | ||
diff --git a/OpenSim/Framework/IAssetServer.cs b/OpenSim/Framework/IAssetServer.cs index 2fa77a0..afd3687 100644 --- a/OpenSim/Framework/IAssetServer.cs +++ b/OpenSim/Framework/IAssetServer.cs | |||
@@ -60,4 +60,4 @@ namespace OpenSim.Framework | |||
60 | { | 60 | { |
61 | IAssetServer GetAssetServer(); | 61 | IAssetServer GetAssetServer(); |
62 | } | 62 | } |
63 | } | 63 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs index 18ecd92..8ef5576 100644 --- a/OpenSim/Framework/IClientAPI.cs +++ b/OpenSim/Framework/IClientAPI.cs | |||
@@ -229,7 +229,8 @@ namespace OpenSim.Framework | |||
229 | public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos); | 229 | public delegate void RezObject(IClientAPI remoteClient, LLUUID itemID, LLVector3 pos); |
230 | 230 | ||
231 | public delegate void ModifyTerrain( | 231 | public delegate void ModifyTerrain( |
232 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, IClientAPI remoteClient); | 232 | float height, float seconds, byte size, byte action, float north, float west, float south, float east, |
233 | IClientAPI remoteClient); | ||
233 | 234 | ||
234 | public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); | 235 | public delegate void SetAppearance(byte[] texture, AgentSetAppearancePacket.VisualParamBlock[] visualParam); |
235 | 236 | ||
@@ -269,7 +270,8 @@ namespace OpenSim.Framework | |||
269 | 270 | ||
270 | public delegate void ObjectSelect(uint localID, IClientAPI remoteClient); | 271 | public delegate void ObjectSelect(uint localID, IClientAPI remoteClient); |
271 | 272 | ||
272 | public delegate void RequestObjectPropertiesFamily(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags, LLUUID TaskID); | 273 | public delegate void RequestObjectPropertiesFamily( |
274 | IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags, LLUUID TaskID); | ||
273 | 275 | ||
274 | public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient); | 276 | public delegate void ObjectDeselect(uint localID, IClientAPI remoteClient); |
275 | 277 | ||
@@ -297,13 +299,17 @@ namespace OpenSim.Framework | |||
297 | 299 | ||
298 | public delegate void AgentSit(IClientAPI remoteClient, LLUUID agentID); | 300 | public delegate void AgentSit(IClientAPI remoteClient, LLUUID agentID); |
299 | 301 | ||
300 | public delegate void AvatarPickerRequest(IClientAPI remoteClient, LLUUID agentdata, LLUUID queryID, string UserQuery); | 302 | public delegate void AvatarPickerRequest(IClientAPI remoteClient, LLUUID agentdata, LLUUID queryID, string UserQuery |
303 | ); | ||
301 | 304 | ||
302 | public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient); | 305 | public delegate void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 grapPos, IClientAPI remoteClient); |
303 | 306 | ||
304 | public delegate void ParcelAccessListRequest(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, int landLocalID,IClientAPI remote_client); | 307 | public delegate void ParcelAccessListRequest( |
305 | 308 | LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, int landLocalID, IClientAPI remote_client); | |
306 | public delegate void ParcelAccessListUpdateRequest(LLUUID agentID, LLUUID sessionID,uint flags, int landLocalID, List<libsecondlife.ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client); | 309 | |
310 | public delegate void ParcelAccessListUpdateRequest( | ||
311 | LLUUID agentID, LLUUID sessionID, uint flags, int landLocalID, List<ParcelManager.ParcelAccessEntry> entries, | ||
312 | IClientAPI remote_client); | ||
307 | 313 | ||
308 | public delegate void ParcelPropertiesRequest( | 314 | public delegate void ParcelPropertiesRequest( |
309 | int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client); | 315 | int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client); |
@@ -330,13 +336,14 @@ namespace OpenSim.Framework | |||
330 | 336 | ||
331 | public delegate void RequestGodlikePowers(LLUUID AgentID, LLUUID SessionID, LLUUID token, IClientAPI remote_client); | 337 | public delegate void RequestGodlikePowers(LLUUID AgentID, LLUUID SessionID, LLUUID token, IClientAPI remote_client); |
332 | 338 | ||
333 | public delegate void GodKickUser(LLUUID GodAgentID, LLUUID GodSessionID, LLUUID AgentID, uint kickflags, byte[] reason); | 339 | public delegate void GodKickUser( |
340 | LLUUID GodAgentID, LLUUID GodSessionID, LLUUID AgentID, uint kickflags, byte[] reason); | ||
334 | 341 | ||
335 | public delegate void CreateInventoryFolder( | 342 | public delegate void CreateInventoryFolder( |
336 | IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID); | 343 | IClientAPI remoteClient, LLUUID folderID, ushort folderType, string folderName, LLUUID parentID); |
337 | 344 | ||
338 | public delegate void UpdateInventoryFolder( | 345 | public delegate void UpdateInventoryFolder( |
339 | IClientAPI remoteClient, LLUUID folderID, ushort type, string name, LLUUID parentID); | 346 | IClientAPI remoteClient, LLUUID folderID, ushort type, string name, LLUUID parentID); |
340 | 347 | ||
341 | public delegate void MoveInventoryFolder( | 348 | public delegate void MoveInventoryFolder( |
342 | IClientAPI remoteClient, LLUUID folderID, LLUUID parentID); | 349 | IClientAPI remoteClient, LLUUID folderID, LLUUID parentID); |
@@ -360,7 +367,8 @@ namespace OpenSim.Framework | |||
360 | uint nextOwnerMask); | 367 | uint nextOwnerMask); |
361 | 368 | ||
362 | public delegate void CopyInventoryItem( | 369 | public delegate void CopyInventoryItem( |
363 | IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, LLUUID newFolderID, string newName); | 370 | IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, LLUUID newFolderID, |
371 | string newName); | ||
364 | 372 | ||
365 | public delegate void MoveInventoryItem( | 373 | public delegate void MoveInventoryItem( |
366 | IClientAPI remoteClient, LLUUID folderID, LLUUID itemID, int length, string newName); | 374 | IClientAPI remoteClient, LLUUID folderID, LLUUID itemID, int length, string newName); |
@@ -372,15 +380,18 @@ namespace OpenSim.Framework | |||
372 | public delegate void RemoveTaskInventory(IClientAPI remoteClient, LLUUID itemID, uint localID); | 380 | public delegate void RemoveTaskInventory(IClientAPI remoteClient, LLUUID itemID, uint localID); |
373 | 381 | ||
374 | public delegate void UDPAssetUploadRequest( | 382 | public delegate void UDPAssetUploadRequest( |
375 | IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, bool storeLocal, bool tempFile); | 383 | IClientAPI remoteClient, LLUUID assetID, LLUUID transaction, sbyte type, byte[] data, bool storeLocal, |
384 | bool tempFile); | ||
376 | 385 | ||
377 | public delegate void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data); | 386 | public delegate void XferReceive(IClientAPI remoteClient, ulong xferID, uint packetID, byte[] data); |
378 | 387 | ||
379 | public delegate void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName); | 388 | public delegate void RequestXfer(IClientAPI remoteClient, ulong xferID, string fileName); |
380 | 389 | ||
381 | public delegate void ConfirmXfer(IClientAPI remoteClient, ulong xferID, uint packetID); | 390 | public delegate void ConfirmXfer(IClientAPI remoteClient, ulong xferID, uint packetID); |
382 | 391 | ||
383 | public delegate void ObjectPermissions(IClientAPI remoteClinet, LLUUID AgentID, LLUUID SessionID, List<ObjectPermissionsPacket.ObjectDataBlock> permChanges); | 392 | public delegate void ObjectPermissions( |
393 | IClientAPI remoteClinet, LLUUID AgentID, LLUUID SessionID, | ||
394 | List<ObjectPermissionsPacket.ObjectDataBlock> permChanges); | ||
384 | 395 | ||
385 | public interface IClientAPI | 396 | public interface IClientAPI |
386 | { | 397 | { |
@@ -472,19 +483,19 @@ namespace OpenSim.Framework | |||
472 | event EstateOwnerMessageRequest OnEstateOwnerMessage; | 483 | event EstateOwnerMessageRequest OnEstateOwnerMessage; |
473 | event RegionInfoRequest OnRegionInfoRequest; | 484 | event RegionInfoRequest OnRegionInfoRequest; |
474 | event EstateCovenantRequest OnEstateCovenantRequest; | 485 | event EstateCovenantRequest OnEstateCovenantRequest; |
475 | 486 | ||
476 | LLVector3 StartPos { get; set; } | 487 | LLVector3 StartPos { get; set; } |
477 | 488 | ||
478 | LLUUID AgentId { get; } | 489 | LLUUID AgentId { get; } |
479 | 490 | ||
480 | LLUUID SessionId { get; } | 491 | LLUUID SessionId { get; } |
481 | 492 | ||
482 | LLUUID SecureSessionId { get; } | 493 | LLUUID SecureSessionId { get; } |
483 | 494 | ||
484 | string FirstName { get; } | 495 | string FirstName { get; } |
485 | 496 | ||
486 | string LastName { get; } | 497 | string LastName { get; } |
487 | 498 | ||
488 | /// <summary> | 499 | /// <summary> |
489 | /// Returns the full name of the agent/avatar represented by this client | 500 | /// Returns the full name of the agent/avatar represented by this client |
490 | /// </summary> | 501 | /// </summary> |
@@ -536,26 +547,29 @@ namespace OpenSim.Framework | |||
536 | 547 | ||
537 | void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint); | 548 | void AttachObject(uint localID, LLQuaternion rotation, byte attachPoint); |
538 | void SetChildAgentThrottle(byte[] throttle); | 549 | void SetChildAgentThrottle(byte[] throttle); |
550 | |||
539 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, | 551 | void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, |
540 | LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, | 552 | LLVector3 pos, uint flags, LLUUID objectID, LLUUID ownerID, string text, byte[] color, |
541 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); | 553 | uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction); |
542 | 554 | ||
543 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 555 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
544 | LLQuaternion rotation); | 556 | LLQuaternion rotation); |
557 | |||
545 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 558 | void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
546 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity); | 559 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity); |
547 | 560 | ||
548 | void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items, | 561 | void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items, |
549 | List<InventoryFolderBase> folders, bool fetchFolders, | 562 | List<InventoryFolderBase> folders, bool fetchFolders, |
550 | bool fetchItems); | 563 | bool fetchItems); |
564 | |||
551 | void SendInventoryItemDetails(LLUUID ownerID, InventoryItemBase item); | 565 | void SendInventoryItemDetails(LLUUID ownerID, InventoryItemBase item); |
552 | 566 | ||
553 | /// <summary> | 567 | /// <summary> |
554 | /// Tell the client that we have created the item it requested. | 568 | /// Tell the client that we have created the item it requested. |
555 | /// </summary> | 569 | /// </summary> |
556 | /// <param name="Item"></param> | 570 | /// <param name="Item"></param> |
557 | void SendInventoryItemCreateUpdate(InventoryItemBase Item); | 571 | void SendInventoryItemCreateUpdate(InventoryItemBase Item); |
558 | 572 | ||
559 | void SendRemoveInventoryItem(LLUUID itemID); | 573 | void SendRemoveInventoryItem(LLUUID itemID); |
560 | void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName); | 574 | void SendTaskInventory(LLUUID taskID, short serial, byte[] fileName); |
561 | void SendXferPacket(ulong xferID, uint packet, byte[] data); | 575 | void SendXferPacket(ulong xferID, uint packet, byte[] data); |
@@ -566,7 +580,7 @@ namespace OpenSim.Framework | |||
566 | 580 | ||
567 | void SendNameReply(LLUUID profileId, string firstname, string lastname); | 581 | void SendNameReply(LLUUID profileId, string firstname, string lastname); |
568 | void SendAlertMessage(string message); | 582 | void SendAlertMessage(string message); |
569 | 583 | ||
570 | void SendAgentAlertMessage(string message, bool modal); | 584 | void SendAgentAlertMessage(string message, bool modal); |
571 | void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url); | 585 | void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, string url); |
572 | bool AddMoney(int debit); | 586 | bool AddMoney(int debit); |
@@ -587,4 +601,4 @@ namespace OpenSim.Framework | |||
587 | event Action<IClientAPI> OnConnectionClosed; | 601 | event Action<IClientAPI> OnConnectionClosed; |
588 | void SendLogoutPacket(); | 602 | void SendLogoutPacket(); |
589 | } | 603 | } |
590 | } | 604 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IGenericConfig.cs b/OpenSim/Framework/IGenericConfig.cs index cf742cc..0c9689c 100644 --- a/OpenSim/Framework/IGenericConfig.cs +++ b/OpenSim/Framework/IGenericConfig.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Framework | |||
37 | void Commit(); | 37 | void Commit(); |
38 | void Close(); | 38 | void Close(); |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IRegionCommsListener.cs b/OpenSim/Framework/IRegionCommsListener.cs index 363ab27..19608c8 100644 --- a/OpenSim/Framework/IRegionCommsListener.cs +++ b/OpenSim/Framework/IRegionCommsListener.cs | |||
@@ -51,8 +51,6 @@ namespace OpenSim.Framework | |||
51 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData); | 51 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData); |
52 | 52 | ||
53 | 53 | ||
54 | |||
55 | |||
56 | public interface IRegionCommsListener | 54 | public interface IRegionCommsListener |
57 | { | 55 | { |
58 | event ExpectUserDelegate OnExpectUser; | 56 | event ExpectUserDelegate OnExpectUser; |
@@ -66,6 +64,5 @@ namespace OpenSim.Framework | |||
66 | event CloseAgentConnection OnCloseAgentConnection; | 64 | event CloseAgentConnection OnCloseAgentConnection; |
67 | event RegionUp OnRegionUp; | 65 | event RegionUp OnRegionUp; |
68 | event ChildAgentUpdate OnChildAgentUpdate; | 66 | event ChildAgentUpdate OnChildAgentUpdate; |
69 | |||
70 | } | 67 | } |
71 | } | 68 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IRegionLoader.cs b/OpenSim/Framework/IRegionLoader.cs index fe74737..f3e0a23 100644 --- a/OpenSim/Framework/IRegionLoader.cs +++ b/OpenSim/Framework/IRegionLoader.cs | |||
@@ -26,11 +26,8 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using OpenSim.Framework; | ||
33 | using Nini.Config; | 29 | using Nini.Config; |
30 | |||
34 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
35 | { | 32 | { |
36 | public interface IRegionLoader | 33 | public interface IRegionLoader |
@@ -38,4 +35,4 @@ namespace OpenSim.Framework | |||
38 | void SetIniConfigSource(IniConfigSource configSource); | 35 | void SetIniConfigSource(IniConfigSource configSource); |
39 | RegionInfo[] LoadRegions(); | 36 | RegionInfo[] LoadRegions(); |
40 | } | 37 | } |
41 | } | 38 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IScene.cs b/OpenSim/Framework/IScene.cs index 4b6e9a5..7b9eced 100644 --- a/OpenSim/Framework/IScene.cs +++ b/OpenSim/Framework/IScene.cs | |||
@@ -29,7 +29,8 @@ using libsecondlife; | |||
29 | 29 | ||
30 | namespace OpenSim.Framework | 30 | namespace OpenSim.Framework |
31 | { | 31 | { |
32 | public delegate void restart( RegionInfo thisRegion ); | 32 | public delegate void restart(RegionInfo thisRegion); |
33 | |||
33 | //public delegate void regionup ( RegionInfo thisRegion ); | 34 | //public delegate void regionup ( RegionInfo thisRegion ); |
34 | 35 | ||
35 | public enum RegionStatus : int | 36 | public enum RegionStatus : int |
@@ -38,7 +39,7 @@ namespace OpenSim.Framework | |||
38 | Up = 1, | 39 | Up = 1, |
39 | Crashed = 2, | 40 | Crashed = 2, |
40 | Starting = 3 | 41 | Starting = 3 |
41 | }; | 42 | } ; |
42 | 43 | ||
43 | public interface IScene | 44 | public interface IScene |
44 | { | 45 | { |
@@ -58,4 +59,4 @@ namespace OpenSim.Framework | |||
58 | 59 | ||
59 | ClientManager ClientManager { get; } | 60 | ClientManager ClientManager { get; } |
60 | } | 61 | } |
61 | } | 62 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IUserData.cs b/OpenSim/Framework/IUserData.cs index 0679a68..d06784c 100644 --- a/OpenSim/Framework/IUserData.cs +++ b/OpenSim/Framework/IUserData.cs | |||
@@ -25,8 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | ||
29 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using libsecondlife; | ||
30 | 30 | ||
31 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
32 | { | 32 | { |
@@ -50,7 +50,7 @@ namespace OpenSim.Framework | |||
50 | /// <returns>The user data profile</returns> | 50 | /// <returns>The user data profile</returns> |
51 | UserProfileData GetUserByName(string fname, string lname); | 51 | UserProfileData GetUserByName(string fname, string lname); |
52 | 52 | ||
53 | List<OpenSim.Framework.AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query); | 53 | List<AvatarPickerAvatar> GeneratePickerResults(LLUUID queryID, string query); |
54 | 54 | ||
55 | /// <summary> | 55 | /// <summary> |
56 | /// Returns the current agent for a user searching by it's UUID | 56 | /// Returns the current agent for a user searching by it's UUID |
@@ -127,13 +127,15 @@ namespace OpenSim.Framework | |||
127 | /// </summary> | 127 | /// </summary> |
128 | void Initialise(); | 128 | void Initialise(); |
129 | } | 129 | } |
130 | |||
130 | public class AvatarPickerAvatar | 131 | public class AvatarPickerAvatar |
131 | { | 132 | { |
132 | public LLUUID AvatarID; | 133 | public LLUUID AvatarID; |
133 | public string firstName; | 134 | public string firstName; |
134 | public string lastName; | 135 | public string lastName; |
136 | |||
135 | public AvatarPickerAvatar() | 137 | public AvatarPickerAvatar() |
136 | { | 138 | { |
137 | } | 139 | } |
138 | } | 140 | } |
139 | } | 141 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/IUserService.cs b/OpenSim/Framework/IUserService.cs index 3440e30..2b08582 100644 --- a/OpenSim/Framework/IUserService.cs +++ b/OpenSim/Framework/IUserService.cs | |||
@@ -25,8 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | ||
29 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using libsecondlife; | ||
30 | 30 | ||
31 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
32 | { | 32 | { |
@@ -48,4 +48,4 @@ namespace OpenSim.Framework | |||
48 | /// <param name="user"></param> | 48 | /// <param name="user"></param> |
49 | LLUUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY); | 49 | LLUUID AddUserProfile(string firstName, string lastName, string pass, uint regX, uint regY); |
50 | } | 50 | } |
51 | } | 51 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/InventoryItemBase.cs b/OpenSim/Framework/InventoryItemBase.cs index 8cb3e73..c60fb01 100644 --- a/OpenSim/Framework/InventoryItemBase.cs +++ b/OpenSim/Framework/InventoryItemBase.cs | |||
@@ -291,4 +291,4 @@ namespace OpenSim.Framework | |||
291 | 291 | ||
292 | [XmlElement(ElementName = "folder", IsNullable = true)] public SerializableFolder root; | 292 | [XmlElement(ElementName = "folder", IsNullable = true)] public SerializableFolder root; |
293 | } | 293 | } |
294 | } | 294 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/LandData.cs b/OpenSim/Framework/LandData.cs index 1a94cfd..885545d 100644 --- a/OpenSim/Framework/LandData.cs +++ b/OpenSim/Framework/LandData.cs | |||
@@ -25,8 +25,9 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using libsecondlife; | ||
29 | using System.Collections.Generic; | 28 | using System.Collections.Generic; |
29 | using libsecondlife; | ||
30 | |||
30 | namespace OpenSim.Framework | 31 | namespace OpenSim.Framework |
31 | { | 32 | { |
32 | public class LandData | 33 | public class LandData |
@@ -53,7 +54,7 @@ namespace OpenSim.Framework | |||
53 | public int simwideArea = 0; | 54 | public int simwideArea = 0; |
54 | public int salePrice = 0; //Unemeplemented. Parcels price. | 55 | public int salePrice = 0; //Unemeplemented. Parcels price. |
55 | public Parcel.ParcelStatus landStatus = Parcel.ParcelStatus.Leased; | 56 | public Parcel.ParcelStatus landStatus = Parcel.ParcelStatus.Leased; |
56 | 57 | ||
57 | public uint landFlags = (uint) Parcel.ParcelFlags.AllowFly | (uint) Parcel.ParcelFlags.AllowLandmark | | 58 | public uint landFlags = (uint) Parcel.ParcelFlags.AllowFly | (uint) Parcel.ParcelFlags.AllowLandmark | |
58 | (uint) Parcel.ParcelFlags.AllowAllObjectEntry | | 59 | (uint) Parcel.ParcelFlags.AllowAllObjectEntry | |
59 | (uint) Parcel.ParcelFlags.AllowDeedToGroup | (uint) Parcel.ParcelFlags.AllowTerraform | | 60 | (uint) Parcel.ParcelFlags.AllowDeedToGroup | (uint) Parcel.ParcelFlags.AllowTerraform | |
@@ -133,4 +134,4 @@ namespace OpenSim.Framework | |||
133 | return landData; | 134 | return landData; |
134 | } | 135 | } |
135 | } | 136 | } |
136 | } | 137 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Login.cs b/OpenSim/Framework/Login.cs index 1da0a2b..5228fe9 100644 --- a/OpenSim/Framework/Login.cs +++ b/OpenSim/Framework/Login.cs | |||
@@ -47,4 +47,4 @@ namespace OpenSim.Framework | |||
47 | StartPos = new LLVector3(128, 128, 70); | 47 | StartPos = new LLVector3(128, 128, 70); |
48 | } | 48 | } |
49 | } | 49 | } |
50 | } | 50 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/NeighbourInfo.cs b/OpenSim/Framework/NeighbourInfo.cs index ca98cd1..ddf9df6 100644 --- a/OpenSim/Framework/NeighbourInfo.cs +++ b/OpenSim/Framework/NeighbourInfo.cs | |||
@@ -39,4 +39,4 @@ namespace OpenSim.Framework | |||
39 | public string sim_ip; | 39 | public string sim_ip; |
40 | public uint sim_port; | 40 | public uint sim_port; |
41 | } | 41 | } |
42 | } | 42 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/NetworkServersInfo.cs b/OpenSim/Framework/NetworkServersInfo.cs index 6f8ff7d..cf1457d 100644 --- a/OpenSim/Framework/NetworkServersInfo.cs +++ b/OpenSim/Framework/NetworkServersInfo.cs | |||
@@ -80,8 +80,10 @@ namespace OpenSim.Framework | |||
80 | m_defaultHomeLocX = (uint) config.Configs["StandAlone"].GetInt("default_location_x", 1000); | 80 | m_defaultHomeLocX = (uint) config.Configs["StandAlone"].GetInt("default_location_x", 1000); |
81 | m_defaultHomeLocY = (uint) config.Configs["StandAlone"].GetInt("default_location_y", 1000); | 81 | m_defaultHomeLocY = (uint) config.Configs["StandAlone"].GetInt("default_location_y", 1000); |
82 | 82 | ||
83 | HttpListenerPort = (uint) config.Configs["Network"].GetInt("http_listener_port", (int) DefaultHttpListenerPort); | 83 | HttpListenerPort = |
84 | RemotingListenerPort = (uint) config.Configs["Network"].GetInt("remoting_listener_port", (int) RemotingListenerPort); | 84 | (uint) config.Configs["Network"].GetInt("http_listener_port", (int) DefaultHttpListenerPort); |
85 | RemotingListenerPort = | ||
86 | (uint) config.Configs["Network"].GetInt("remoting_listener_port", (int) RemotingListenerPort); | ||
85 | GridURL = | 87 | GridURL = |
86 | config.Configs["Network"].GetString("grid_server_url", | 88 | config.Configs["Network"].GetString("grid_server_url", |
87 | "http://127.0.0.1:" + GridConfig.DefaultHttpPort.ToString()); | 89 | "http://127.0.0.1:" + GridConfig.DefaultHttpPort.ToString()); |
@@ -98,4 +100,4 @@ namespace OpenSim.Framework | |||
98 | InventoryConfig.DefaultHttpPort.ToString()); | 100 | InventoryConfig.DefaultHttpPort.ToString()); |
99 | } | 101 | } |
100 | } | 102 | } |
101 | } | 103 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/PrimitiveBaseShape.cs b/OpenSim/Framework/PrimitiveBaseShape.cs index 98e583e..c29b973 100644 --- a/OpenSim/Framework/PrimitiveBaseShape.cs +++ b/OpenSim/Framework/PrimitiveBaseShape.cs | |||
@@ -26,9 +26,9 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
29 | using System.Xml.Serialization; | 30 | using System.Xml.Serialization; |
30 | using libsecondlife; | 31 | using libsecondlife; |
31 | using System; | ||
32 | 32 | ||
33 | namespace OpenSim.Framework | 33 | namespace OpenSim.Framework |
34 | { | 34 | { |
@@ -91,32 +91,21 @@ namespace OpenSim.Framework | |||
91 | public sbyte PathTwist; | 91 | public sbyte PathTwist; |
92 | public sbyte PathTwistBegin; | 92 | public sbyte PathTwistBegin; |
93 | 93 | ||
94 | [XmlIgnore] | 94 | [XmlIgnore] |
95 | public LLObject.TextureEntry Textures | 95 | public LLObject.TextureEntry Textures |
96 | { | 96 | { |
97 | get | 97 | get { return new LLObject.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); } |
98 | { | ||
99 | return new LLObject.TextureEntry(m_textureEntry, 0, m_textureEntry.Length); | ||
100 | } | ||
101 | 98 | ||
102 | set | 99 | set { m_textureEntry = value.ToBytes(); } |
103 | { | ||
104 | m_textureEntry = value.ToBytes(); | ||
105 | } | ||
106 | } | 100 | } |
107 | 101 | ||
108 | private byte[] m_textureEntry; | 102 | private byte[] m_textureEntry; |
103 | |||
109 | public byte[] TextureEntry | 104 | public byte[] TextureEntry |
110 | { | 105 | { |
111 | get | 106 | get { return m_textureEntry; } |
112 | { | ||
113 | return m_textureEntry; | ||
114 | } | ||
115 | 107 | ||
116 | set | 108 | set { m_textureEntry = value; } |
117 | { | ||
118 | m_textureEntry = value; | ||
119 | } | ||
120 | } | 109 | } |
121 | 110 | ||
122 | public byte[] ExtraParams; | 111 | public byte[] ExtraParams; |
@@ -134,11 +123,11 @@ namespace OpenSim.Framework | |||
134 | [XmlIgnore] | 123 | [XmlIgnore] |
135 | public HollowShape HollowShape | 124 | public HollowShape HollowShape |
136 | { | 125 | { |
137 | get { return (HollowShape)(ProfileCurve & 0xf0); } | 126 | get { return (HollowShape) (ProfileCurve & 0xf0); } |
138 | set | 127 | set |
139 | { | 128 | { |
140 | byte oldValueMasked = (byte)(ProfileCurve & 0x0f); | 129 | byte oldValueMasked = (byte) (ProfileCurve & 0x0f); |
141 | ProfileCurve = (byte)(oldValueMasked | (byte)value); | 130 | ProfileCurve = (byte) (oldValueMasked | (byte) value); |
142 | } | 131 | } |
143 | } | 132 | } |
144 | 133 | ||
@@ -147,7 +136,6 @@ namespace OpenSim.Framework | |||
147 | get { return Scale; } | 136 | get { return Scale; } |
148 | } | 137 | } |
149 | 138 | ||
150 | |||
151 | 139 | ||
152 | static PrimitiveBaseShape() | 140 | static PrimitiveBaseShape() |
153 | { | 141 | { |
diff --git a/OpenSim/Framework/RegionCommsListener.cs b/OpenSim/Framework/RegionCommsListener.cs index a146778..9472a9e 100644 --- a/OpenSim/Framework/RegionCommsListener.cs +++ b/OpenSim/Framework/RegionCommsListener.cs | |||
@@ -44,10 +44,10 @@ namespace OpenSim.Framework | |||
44 | public event CloseAgentConnection OnCloseAgentConnection; | 44 | public event CloseAgentConnection OnCloseAgentConnection; |
45 | public event RegionUp OnRegionUp; | 45 | public event RegionUp OnRegionUp; |
46 | public event ChildAgentUpdate OnChildAgentUpdate; | 46 | public event ChildAgentUpdate OnChildAgentUpdate; |
47 | |||
48 | 47 | ||
49 | public string debugRegionName=""; | 48 | |
50 | 49 | public string debugRegionName = ""; | |
50 | |||
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// | 53 | /// |
@@ -66,7 +66,6 @@ namespace OpenSim.Framework | |||
66 | } | 66 | } |
67 | 67 | ||
68 | 68 | ||
69 | |||
70 | public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData) | 69 | public virtual bool TriggerExpectPrim(ulong regionHandle, LLUUID primID, string objData) |
71 | { | 70 | { |
72 | if (OnExpectUser != null) | 71 | if (OnExpectUser != null) |
@@ -107,7 +106,9 @@ namespace OpenSim.Framework | |||
107 | } | 106 | } |
108 | return false; | 107 | return false; |
109 | } | 108 | } |
110 | public virtual bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) | 109 | |
110 | public virtual bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, | ||
111 | bool isPhysical) | ||
111 | { | 112 | { |
112 | if (OnPrimCrossingIntoRegion != null) | 113 | if (OnPrimCrossingIntoRegion != null) |
113 | { | 114 | { |
@@ -178,4 +179,4 @@ namespace OpenSim.Framework | |||
178 | return false; | 179 | return false; |
179 | } | 180 | } |
180 | } | 181 | } |
181 | } | 182 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index c4557f8..8c25603 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -26,16 +26,11 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Globalization; | ||
30 | using System.Net; | 29 | using System.Net; |
31 | using System.Xml; | ||
32 | using System.Net.Sockets; | 30 | using System.Net.Sockets; |
33 | using Nini.Config; | 31 | using System.Xml; |
34 | using libsecondlife; | 32 | using libsecondlife; |
35 | using OpenSim.Framework.Console; | 33 | using Nini.Config; |
36 | using OpenSim.Framework; | ||
37 | |||
38 | |||
39 | 34 | ||
40 | namespace OpenSim.Framework | 35 | namespace OpenSim.Framework |
41 | { | 36 | { |
@@ -64,6 +59,7 @@ namespace OpenSim.Framework | |||
64 | 59 | ||
65 | m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int) port); | 60 | m_internalEndPoint = new IPEndPoint(IPAddress.Parse("0.0.0.0"), (int) port); |
66 | } | 61 | } |
62 | |||
67 | public SimpleRegionInfo(RegionInfo ConvertFrom) | 63 | public SimpleRegionInfo(RegionInfo ConvertFrom) |
68 | { | 64 | { |
69 | m_regionLocX = ConvertFrom.RegionLocX; | 65 | m_regionLocX = ConvertFrom.RegionLocX; |
@@ -78,16 +74,11 @@ namespace OpenSim.Framework | |||
78 | public LLUUID RegionID = LLUUID.Zero; | 74 | public LLUUID RegionID = LLUUID.Zero; |
79 | 75 | ||
80 | public uint m_remotingPort; | 76 | public uint m_remotingPort; |
77 | |||
81 | public uint RemotingPort | 78 | public uint RemotingPort |
82 | { | 79 | { |
83 | get | 80 | get { return m_remotingPort; } |
84 | { | 81 | set { m_remotingPort = value; } |
85 | return m_remotingPort; | ||
86 | } | ||
87 | set | ||
88 | { | ||
89 | m_remotingPort = value; | ||
90 | } | ||
91 | } | 82 | } |
92 | 83 | ||
93 | public string RemotingAddress; | 84 | public string RemotingAddress; |
@@ -123,73 +114,47 @@ namespace OpenSim.Framework | |||
123 | return new IPEndPoint(ia, m_internalEndPoint.Port); | 114 | return new IPEndPoint(ia, m_internalEndPoint.Port); |
124 | } | 115 | } |
125 | 116 | ||
126 | set | 117 | set { m_externalHostName = value.ToString(); } |
127 | { | ||
128 | m_externalHostName = value.ToString(); | ||
129 | } | ||
130 | } | 118 | } |
131 | 119 | ||
132 | protected string m_externalHostName; | 120 | protected string m_externalHostName; |
121 | |||
133 | public string ExternalHostName | 122 | public string ExternalHostName |
134 | { | 123 | { |
135 | get | 124 | get { return m_externalHostName; } |
136 | { | 125 | set { m_externalHostName = value; } |
137 | return m_externalHostName; | ||
138 | } | ||
139 | set | ||
140 | { | ||
141 | m_externalHostName = value; | ||
142 | } | ||
143 | } | 126 | } |
144 | 127 | ||
145 | protected IPEndPoint m_internalEndPoint; | 128 | protected IPEndPoint m_internalEndPoint; |
129 | |||
146 | public IPEndPoint InternalEndPoint | 130 | public IPEndPoint InternalEndPoint |
147 | { | 131 | { |
148 | get | 132 | get { return m_internalEndPoint; } |
149 | { | 133 | set { m_internalEndPoint = value; } |
150 | return m_internalEndPoint; | ||
151 | } | ||
152 | set | ||
153 | { | ||
154 | m_internalEndPoint = value; | ||
155 | } | ||
156 | } | 134 | } |
157 | 135 | ||
158 | protected uint? m_regionLocX; | 136 | protected uint? m_regionLocX; |
137 | |||
159 | public uint RegionLocX | 138 | public uint RegionLocX |
160 | { | 139 | { |
161 | get | 140 | get { return m_regionLocX.Value; } |
162 | { | 141 | set { m_regionLocX = value; } |
163 | return m_regionLocX.Value; | ||
164 | } | ||
165 | set | ||
166 | { | ||
167 | m_regionLocX = value; | ||
168 | } | ||
169 | } | 142 | } |
170 | 143 | ||
171 | protected uint? m_regionLocY; | 144 | protected uint? m_regionLocY; |
145 | |||
172 | public uint RegionLocY | 146 | public uint RegionLocY |
173 | { | 147 | { |
174 | get | 148 | get { return m_regionLocY.Value; } |
175 | { | 149 | set { m_regionLocY = value; } |
176 | return m_regionLocY.Value; | ||
177 | } | ||
178 | set | ||
179 | { | ||
180 | m_regionLocY = value; | ||
181 | } | ||
182 | } | 150 | } |
183 | 151 | ||
184 | public ulong RegionHandle | 152 | public ulong RegionHandle |
185 | { | 153 | { |
186 | get | 154 | get { return Util.UIntsToLong((RegionLocX*256), (RegionLocY*256)); } |
187 | { | ||
188 | return Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256)); | ||
189 | } | ||
190 | } | 155 | } |
191 | } | 156 | } |
192 | 157 | ||
193 | public class RegionInfo : SimpleRegionInfo | 158 | public class RegionInfo : SimpleRegionInfo |
194 | { | 159 | { |
195 | public string RegionName = ""; | 160 | public string RegionName = ""; |
@@ -206,15 +171,16 @@ namespace OpenSim.Framework | |||
206 | 171 | ||
207 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. | 172 | // Apparently, we're applying the same estatesettings regardless of whether it's local or remote. |
208 | private static EstateSettings m_estateSettings; | 173 | private static EstateSettings m_estateSettings; |
174 | |||
209 | public EstateSettings EstateSettings | 175 | public EstateSettings EstateSettings |
210 | { | 176 | { |
211 | get | 177 | get |
212 | { | 178 | { |
213 | if( m_estateSettings == null ) | 179 | if (m_estateSettings == null) |
214 | { | 180 | { |
215 | m_estateSettings = new EstateSettings(); | 181 | m_estateSettings = new EstateSettings(); |
216 | } | 182 | } |
217 | 183 | ||
218 | return m_estateSettings; | 184 | return m_estateSettings; |
219 | } | 185 | } |
220 | } | 186 | } |
@@ -223,14 +189,18 @@ namespace OpenSim.Framework | |||
223 | 189 | ||
224 | public RegionInfo(string description, string filename) | 190 | public RegionInfo(string description, string filename) |
225 | { | 191 | { |
226 | configMember = new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration); | 192 | configMember = |
193 | new ConfigurationMember(filename, description, loadConfigurationOptions, handleIncomingConfiguration); | ||
227 | configMember.performConfigurationRetrieve(); | 194 | configMember.performConfigurationRetrieve(); |
228 | } | 195 | } |
196 | |||
229 | public RegionInfo(string description, XmlNode xmlNode) | 197 | public RegionInfo(string description, XmlNode xmlNode) |
230 | { | 198 | { |
231 | configMember = new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration); | 199 | configMember = |
200 | new ConfigurationMember(xmlNode, description, loadConfigurationOptions, handleIncomingConfiguration); | ||
232 | configMember.performConfigurationRetrieve(); | 201 | configMember.performConfigurationRetrieve(); |
233 | } | 202 | } |
203 | |||
234 | public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) : | 204 | public RegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) : |
235 | base(regionLocX, regionLocY, internalEndPoint, externalUri) | 205 | base(regionLocX, regionLocY, internalEndPoint, externalUri) |
236 | { | 206 | { |
@@ -239,6 +209,7 @@ namespace OpenSim.Framework | |||
239 | public RegionInfo() | 209 | public RegionInfo() |
240 | { | 210 | { |
241 | } | 211 | } |
212 | |||
242 | public RegionInfo(SearializableRegionInfo ConvertFrom) | 213 | public RegionInfo(SearializableRegionInfo ConvertFrom) |
243 | { | 214 | { |
244 | m_regionLocX = ConvertFrom.RegionLocX; | 215 | m_regionLocX = ConvertFrom.RegionLocX; |
@@ -249,6 +220,7 @@ namespace OpenSim.Framework | |||
249 | RemotingAddress = ConvertFrom.RemotingAddress; | 220 | RemotingAddress = ConvertFrom.RemotingAddress; |
250 | RegionID = LLUUID.Zero; | 221 | RegionID = LLUUID.Zero; |
251 | } | 222 | } |
223 | |||
252 | public RegionInfo(SimpleRegionInfo ConvertFrom) | 224 | public RegionInfo(SimpleRegionInfo ConvertFrom) |
253 | { | 225 | { |
254 | m_regionLocX = ConvertFrom.RegionLocX; | 226 | m_regionLocX = ConvertFrom.RegionLocX; |
@@ -259,47 +231,49 @@ namespace OpenSim.Framework | |||
259 | RemotingAddress = ConvertFrom.RemotingAddress; | 231 | RemotingAddress = ConvertFrom.RemotingAddress; |
260 | RegionID = LLUUID.Zero; | 232 | RegionID = LLUUID.Zero; |
261 | } | 233 | } |
234 | |||
262 | //not in use, should swap to nini though. | 235 | //not in use, should swap to nini though. |
263 | public void LoadFromNiniSource(IConfigSource source) | 236 | public void LoadFromNiniSource(IConfigSource source) |
264 | { | 237 | { |
265 | this.LoadFromNiniSource(source, "RegionInfo"); | 238 | LoadFromNiniSource(source, "RegionInfo"); |
266 | } | 239 | } |
267 | 240 | ||
268 | //not in use, should swap to nini though. | 241 | //not in use, should swap to nini though. |
269 | public void LoadFromNiniSource(IConfigSource source, string sectionName) | 242 | public void LoadFromNiniSource(IConfigSource source, string sectionName) |
270 | { | 243 | { |
271 | string errorMessage = ""; | 244 | string errorMessage = ""; |
272 | this.RegionID = new LLUUID(source.Configs[sectionName].GetString("Region_ID", LLUUID.Random().ToString())); | 245 | RegionID = new LLUUID(source.Configs[sectionName].GetString("Region_ID", LLUUID.Random().ToString())); |
273 | this.RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test"); | 246 | RegionName = source.Configs[sectionName].GetString("sim_name", "OpenSim Test"); |
274 | this.m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000")); | 247 | m_regionLocX = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_x", "1000")); |
275 | this.m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000")); | 248 | m_regionLocY = Convert.ToUInt32(source.Configs[sectionName].GetString("sim_location_y", "1000")); |
276 | // this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db"); | 249 | // this.DataStore = source.Configs[sectionName].GetString("datastore", "OpenSim.db"); |
277 | 250 | ||
278 | string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0"); | 251 | string ipAddress = source.Configs[sectionName].GetString("internal_ip_address", "0.0.0.0"); |
279 | IPAddress ipAddressResult; | 252 | IPAddress ipAddressResult; |
280 | if (IPAddress.TryParse(ipAddress, out ipAddressResult)) | 253 | if (IPAddress.TryParse(ipAddress, out ipAddressResult)) |
281 | { | 254 | { |
282 | this.m_internalEndPoint = new IPEndPoint(ipAddressResult, 0); | 255 | m_internalEndPoint = new IPEndPoint(ipAddressResult, 0); |
283 | } | 256 | } |
284 | else | 257 | else |
285 | { | 258 | { |
286 | errorMessage = "needs an IP Address (IPAddress)"; | 259 | errorMessage = "needs an IP Address (IPAddress)"; |
287 | } | 260 | } |
288 | this.m_internalEndPoint.Port = source.Configs[sectionName].GetInt("internal_ip_port", (int) NetworkServersInfo.DefaultHttpListenerPort); | 261 | m_internalEndPoint.Port = |
262 | source.Configs[sectionName].GetInt("internal_ip_port", (int) NetworkServersInfo.DefaultHttpListenerPort); | ||
289 | 263 | ||
290 | string externalHost = source.Configs[sectionName].GetString("external_host_name", "127.0.0.1"); | 264 | string externalHost = source.Configs[sectionName].GetString("external_host_name", "127.0.0.1"); |
291 | if (externalHost != "SYSTEMIP") | 265 | if (externalHost != "SYSTEMIP") |
292 | { | 266 | { |
293 | this.m_externalHostName = externalHost; | 267 | m_externalHostName = externalHost; |
294 | } | 268 | } |
295 | else | 269 | else |
296 | { | 270 | { |
297 | this.m_externalHostName = Util.GetLocalHost().ToString(); | 271 | m_externalHostName = Util.GetLocalHost().ToString(); |
298 | } | 272 | } |
299 | 273 | ||
300 | this.MasterAvatarFirstName = source.Configs[sectionName].GetString("master_avatar_first", "Test"); | 274 | MasterAvatarFirstName = source.Configs[sectionName].GetString("master_avatar_first", "Test"); |
301 | this.MasterAvatarLastName = source.Configs[sectionName].GetString("master_avatar_last", "User"); | 275 | MasterAvatarLastName = source.Configs[sectionName].GetString("master_avatar_last", "User"); |
302 | this.MasterAvatarSandboxPassword = source.Configs[sectionName].GetString("master_avatar_pass", "test"); | 276 | MasterAvatarSandboxPassword = source.Configs[sectionName].GetString("master_avatar_pass", "test"); |
303 | 277 | ||
304 | if (errorMessage != "") | 278 | if (errorMessage != "") |
305 | { | 279 | { |
@@ -309,19 +283,45 @@ namespace OpenSim.Framework | |||
309 | 283 | ||
310 | public void loadConfigurationOptions() | 284 | public void loadConfigurationOptions() |
311 | { | 285 | { |
312 | configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "UUID of Region (Default is recommended, random UUID)", LLUUID.Random().ToString(), true); | 286 | configMember.addConfigurationOption("sim_UUID", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, |
313 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Region Name", "OpenSim Test", false); | 287 | "UUID of Region (Default is recommended, random UUID)", |
314 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (X Axis)", "1000", false); | 288 | LLUUID.Random().ToString(), true); |
315 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, "Grid Location (Y Axis)", "1000", false); | 289 | configMember.addConfigurationOption("sim_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
290 | "Region Name", "OpenSim Test", false); | ||
291 | configMember.addConfigurationOption("sim_location_x", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
292 | "Grid Location (X Axis)", "1000", false); | ||
293 | configMember.addConfigurationOption("sim_location_y", ConfigurationOption.ConfigurationTypes.TYPE_UINT32, | ||
294 | "Grid Location (Y Axis)", "1000", false); | ||
316 | //configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); | 295 | //configMember.addConfigurationOption("datastore", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Filename for local storage", "OpenSim.db", false); |
317 | configMember.addConfigurationOption("internal_ip_address", ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, "Internal IP Address for incoming UDP client connections", "0.0.0.0", false); | 296 | configMember.addConfigurationOption("internal_ip_address", |
318 | configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32, "Internal IP Port for incoming UDP client connections", NetworkServersInfo.DefaultHttpListenerPort.ToString(), false); | 297 | ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS, |
319 | configMember.addConfigurationOption("external_host_name", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "External Host Name", "127.0.0.1", false); | 298 | "Internal IP Address for incoming UDP client connections", "0.0.0.0", |
320 | configMember.addConfigurationOption("master_avatar_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "Master Avatar UUID", LLUUID.Zero.ToString(), true); | 299 | false); |
321 | configMember.addConfigurationOption("estate_covanant_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "Estate Covenant", LLUUID.Zero.ToString(), true); | 300 | configMember.addConfigurationOption("internal_ip_port", ConfigurationOption.ConfigurationTypes.TYPE_INT32, |
322 | configMember.addConfigurationOption("master_avatar_first", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "First Name of Master Avatar", "Test", false,(ConfigurationOption.ConfigurationOptionShouldBeAsked)shouldMasterAvatarDetailsBeAsked); | 301 | "Internal IP Port for incoming UDP client connections", |
323 | configMember.addConfigurationOption("master_avatar_last", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Last Name of Master Avatar", "User", false, (ConfigurationOption.ConfigurationOptionShouldBeAsked)shouldMasterAvatarDetailsBeAsked); | 302 | NetworkServersInfo.DefaultHttpListenerPort.ToString(), false); |
324 | configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "(Sandbox Mode Only)Password for Master Avatar account", "test", false, (ConfigurationOption.ConfigurationOptionShouldBeAsked)shouldMasterAvatarDetailsBeAsked); | 303 | configMember.addConfigurationOption("external_host_name", |
304 | ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | ||
305 | "External Host Name", "127.0.0.1", false); | ||
306 | configMember.addConfigurationOption("master_avatar_uuid", ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, | ||
307 | "Master Avatar UUID", LLUUID.Zero.ToString(), true); | ||
308 | configMember.addConfigurationOption("estate_covanant_uuid", | ||
309 | ConfigurationOption.ConfigurationTypes.TYPE_LLUUID, "Estate Covenant", | ||
310 | LLUUID.Zero.ToString(), true); | ||
311 | configMember.addConfigurationOption("master_avatar_first", | ||
312 | ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | ||
313 | "First Name of Master Avatar", "Test", false, | ||
314 | (ConfigurationOption.ConfigurationOptionShouldBeAsked) | ||
315 | shouldMasterAvatarDetailsBeAsked); | ||
316 | configMember.addConfigurationOption("master_avatar_last", | ||
317 | ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | ||
318 | "Last Name of Master Avatar", "User", false, | ||
319 | (ConfigurationOption.ConfigurationOptionShouldBeAsked) | ||
320 | shouldMasterAvatarDetailsBeAsked); | ||
321 | configMember.addConfigurationOption("master_avatar_pass", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | ||
322 | "(Sandbox Mode Only)Password for Master Avatar account", "test", false, | ||
323 | (ConfigurationOption.ConfigurationOptionShouldBeAsked) | ||
324 | shouldMasterAvatarDetailsBeAsked); | ||
325 | } | 325 | } |
326 | 326 | ||
327 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) | 327 | public bool shouldMasterAvatarDetailsBeAsked(string configuration_key) |
@@ -338,58 +338,57 @@ namespace OpenSim.Framework | |||
338 | switch (configuration_key) | 338 | switch (configuration_key) |
339 | { | 339 | { |
340 | case "sim_UUID": | 340 | case "sim_UUID": |
341 | this.RegionID = (LLUUID)configuration_result; | 341 | RegionID = (LLUUID) configuration_result; |
342 | break; | 342 | break; |
343 | case "sim_name": | 343 | case "sim_name": |
344 | this.RegionName = (string)configuration_result; | 344 | RegionName = (string) configuration_result; |
345 | break; | 345 | break; |
346 | case "sim_location_x": | 346 | case "sim_location_x": |
347 | this.m_regionLocX = (uint)configuration_result; | 347 | m_regionLocX = (uint) configuration_result; |
348 | break; | 348 | break; |
349 | case "sim_location_y": | 349 | case "sim_location_y": |
350 | this.m_regionLocY = (uint)configuration_result; | 350 | m_regionLocY = (uint) configuration_result; |
351 | break; | 351 | break; |
352 | case "datastore": | 352 | case "datastore": |
353 | this.DataStore = (string)configuration_result; | 353 | DataStore = (string) configuration_result; |
354 | break; | 354 | break; |
355 | case "internal_ip_address": | 355 | case "internal_ip_address": |
356 | IPAddress address = (IPAddress)configuration_result; | 356 | IPAddress address = (IPAddress) configuration_result; |
357 | this.m_internalEndPoint = new IPEndPoint(address, 0); | 357 | m_internalEndPoint = new IPEndPoint(address, 0); |
358 | break; | 358 | break; |
359 | case "internal_ip_port": | 359 | case "internal_ip_port": |
360 | this.m_internalEndPoint.Port = (int)configuration_result; | 360 | m_internalEndPoint.Port = (int) configuration_result; |
361 | break; | 361 | break; |
362 | case "external_host_name": | 362 | case "external_host_name": |
363 | if ((string)configuration_result != "SYSTEMIP") | 363 | if ((string) configuration_result != "SYSTEMIP") |
364 | { | 364 | { |
365 | this.m_externalHostName = (string)configuration_result; | 365 | m_externalHostName = (string) configuration_result; |
366 | } | 366 | } |
367 | else | 367 | else |
368 | { | 368 | { |
369 | this.m_externalHostName = Util.GetLocalHost().ToString(); | 369 | m_externalHostName = Util.GetLocalHost().ToString(); |
370 | } | 370 | } |
371 | break; | 371 | break; |
372 | case "master_avatar_uuid": | 372 | case "master_avatar_uuid": |
373 | this.MasterAvatarAssignedUUID = (LLUUID)configuration_result; | 373 | MasterAvatarAssignedUUID = (LLUUID) configuration_result; |
374 | break; | 374 | break; |
375 | case "estate_covanant_uuid": | 375 | case "estate_covanant_uuid": |
376 | this.CovenantID = (LLUUID)configuration_result; | 376 | CovenantID = (LLUUID) configuration_result; |
377 | break; | 377 | break; |
378 | 378 | ||
379 | case "master_avatar_first": | 379 | case "master_avatar_first": |
380 | this.MasterAvatarFirstName = (string)configuration_result; | 380 | MasterAvatarFirstName = (string) configuration_result; |
381 | break; | 381 | break; |
382 | case "master_avatar_last": | 382 | case "master_avatar_last": |
383 | this.MasterAvatarLastName = (string)configuration_result; | 383 | MasterAvatarLastName = (string) configuration_result; |
384 | break; | 384 | break; |
385 | case "master_avatar_pass": | 385 | case "master_avatar_pass": |
386 | string tempMD5Passwd = (string)configuration_result; | 386 | string tempMD5Passwd = (string) configuration_result; |
387 | this.MasterAvatarSandboxPassword = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); | 387 | MasterAvatarSandboxPassword = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); |
388 | break; | 388 | break; |
389 | } | 389 | } |
390 | 390 | ||
391 | return true; | 391 | return true; |
392 | } | 392 | } |
393 | |||
394 | } | 393 | } |
395 | } | 394 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs index fb50171..a710f50 100644 --- a/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs +++ b/OpenSim/Framework/RegionLoader/Filesystem/RegionLoaderFileSystem.cs | |||
@@ -25,12 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Text; | ||
31 | using Nini.Config; | ||
32 | using OpenSim.Framework; | ||
33 | using System.IO; | 28 | using System.IO; |
29 | using Nini.Config; | ||
34 | 30 | ||
35 | namespace OpenSim.Framework.RegionLoader.Filesystem | 31 | namespace OpenSim.Framework.RegionLoader.Filesystem |
36 | { | 32 | { |
@@ -67,4 +63,4 @@ namespace OpenSim.Framework.RegionLoader.Filesystem | |||
67 | return regionInfos; | 63 | return regionInfos; |
68 | } | 64 | } |
69 | } | 65 | } |
70 | } | 66 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs index ec7059a..1625fa6 100644 --- a/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs +++ b/OpenSim/Framework/RegionLoader/Web/RegionLoaderWebServer.cs | |||
@@ -25,48 +25,46 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Net; | ||
30 | using System.IO; | 28 | using System.IO; |
29 | using System.Net; | ||
31 | using System.Xml; | 30 | using System.Xml; |
32 | using System.Collections.Generic; | ||
33 | using System.Text; | ||
34 | using Nini.Config; | 31 | using Nini.Config; |
35 | using OpenSim.Framework; | 32 | using OpenSim.Framework.Console; |
36 | 33 | ||
37 | namespace OpenSim.Framework.RegionLoader.Web | 34 | namespace OpenSim.Framework.RegionLoader.Web |
38 | { | 35 | { |
39 | public class RegionLoaderWebServer : IRegionLoader | 36 | public class RegionLoaderWebServer : IRegionLoader |
40 | { | 37 | { |
41 | private IniConfigSource m_configSouce; | 38 | private IniConfigSource m_configSouce; |
39 | |||
42 | public void SetIniConfigSource(IniConfigSource configSource) | 40 | public void SetIniConfigSource(IniConfigSource configSource) |
43 | { | 41 | { |
44 | m_configSouce = configSource; | 42 | m_configSouce = configSource; |
45 | } | 43 | } |
44 | |||
46 | public RegionInfo[] LoadRegions() | 45 | public RegionInfo[] LoadRegions() |
47 | { | 46 | { |
48 | if (m_configSouce == null) | 47 | if (m_configSouce == null) |
49 | { | 48 | { |
50 | Console.MainLog.Instance.Error("WEBLOADER", "Unable to load configuration source!"); | 49 | MainLog.Instance.Error("WEBLOADER", "Unable to load configuration source!"); |
51 | return null; | 50 | return null; |
52 | } | 51 | } |
53 | else | 52 | else |
54 | { | 53 | { |
55 | IniConfig startupConfig = (IniConfig)m_configSouce.Configs["Startup"]; | 54 | IniConfig startupConfig = (IniConfig) m_configSouce.Configs["Startup"]; |
56 | string url = startupConfig.GetString("regionload_webserver_url","").Trim(); | 55 | string url = startupConfig.GetString("regionload_webserver_url", "").Trim(); |
57 | if (url == "") | 56 | if (url == "") |
58 | { | 57 | { |
59 | Console.MainLog.Instance.Error("WEBLOADER", "Unable to load webserver URL - URL was empty."); | 58 | MainLog.Instance.Error("WEBLOADER", "Unable to load webserver URL - URL was empty."); |
60 | return null; | 59 | return null; |
61 | } | 60 | } |
62 | else | 61 | else |
63 | { | 62 | { |
64 | 63 | HttpWebRequest webRequest = (HttpWebRequest) WebRequest.Create(url); | |
65 | HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url); | ||
66 | webRequest.Timeout = 30000; //30 Second Timeout | 64 | webRequest.Timeout = 30000; //30 Second Timeout |
67 | Console.MainLog.Instance.Debug("WEBLOADER", "Sending Download Request..."); | 65 | MainLog.Instance.Debug("WEBLOADER", "Sending Download Request..."); |
68 | HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse(); | 66 | HttpWebResponse webResponse = (HttpWebResponse) webRequest.GetResponse(); |
69 | Console.MainLog.Instance.Debug("WEBLOADER", "Downloading Region Information From Remote Server..."); | 67 | MainLog.Instance.Debug("WEBLOADER", "Downloading Region Information From Remote Server..."); |
70 | StreamReader reader = new StreamReader(webResponse.GetResponseStream()); | 68 | StreamReader reader = new StreamReader(webResponse.GetResponseStream()); |
71 | string xmlSource = ""; | 69 | string xmlSource = ""; |
72 | string tempStr = reader.ReadLine(); | 70 | string tempStr = reader.ReadLine(); |
@@ -75,7 +73,9 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
75 | xmlSource = xmlSource + tempStr; | 73 | xmlSource = xmlSource + tempStr; |
76 | tempStr = reader.ReadLine(); | 74 | tempStr = reader.ReadLine(); |
77 | } | 75 | } |
78 | Console.MainLog.Instance.Debug("WEBLOADER", "Done downloading region information from server. Total Bytes: " + xmlSource.Length); | 76 | MainLog.Instance.Debug("WEBLOADER", |
77 | "Done downloading region information from server. Total Bytes: " + | ||
78 | xmlSource.Length); | ||
79 | XmlDocument xmlDoc = new XmlDocument(); | 79 | XmlDocument xmlDoc = new XmlDocument(); |
80 | xmlDoc.LoadXml(xmlSource); | 80 | xmlDoc.LoadXml(xmlSource); |
81 | if (xmlDoc.FirstChild.Name == "Regions") | 81 | if (xmlDoc.FirstChild.Name == "Regions") |
@@ -84,8 +84,9 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
84 | int i; | 84 | int i; |
85 | for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++) | 85 | for (i = 0; i < xmlDoc.FirstChild.ChildNodes.Count; i++) |
86 | { | 86 | { |
87 | Console.MainLog.Instance.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); | 87 | MainLog.Instance.Debug(xmlDoc.FirstChild.ChildNodes[i].OuterXml); |
88 | regionInfos[i] = new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i]); | 88 | regionInfos[i] = |
89 | new RegionInfo("REGION CONFIG #" + (i + 1), xmlDoc.FirstChild.ChildNodes[i]); | ||
89 | } | 90 | } |
90 | 91 | ||
91 | return regionInfos; | 92 | return regionInfos; |
@@ -95,4 +96,4 @@ namespace OpenSim.Framework.RegionLoader.Web | |||
95 | } | 96 | } |
96 | } | 97 | } |
97 | } | 98 | } |
98 | } | 99 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Remoting.cs b/OpenSim/Framework/Remoting.cs index 9cf0d11..ddc1cfb 100644 --- a/OpenSim/Framework/Remoting.cs +++ b/OpenSim/Framework/Remoting.cs | |||
@@ -131,4 +131,4 @@ namespace OpenSim.Framework | |||
131 | return c; | 131 | return c; |
132 | } | 132 | } |
133 | } | 133 | } |
134 | } | 134 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/SerializableRegionInfo.cs b/OpenSim/Framework/SerializableRegionInfo.cs index 5df22cd..18a3829 100644 --- a/OpenSim/Framework/SerializableRegionInfo.cs +++ b/OpenSim/Framework/SerializableRegionInfo.cs | |||
@@ -26,15 +26,10 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Globalization; | ||
30 | using System.Net; | 29 | using System.Net; |
31 | using System.Xml; | ||
32 | using System.Net.Sockets; | 30 | using System.Net.Sockets; |
33 | using libsecondlife; | 31 | using libsecondlife; |
34 | 32 | ||
35 | |||
36 | |||
37 | |||
38 | namespace OpenSim.Framework | 33 | namespace OpenSim.Framework |
39 | { | 34 | { |
40 | [Serializable] | 35 | [Serializable] |
@@ -46,7 +41,8 @@ namespace OpenSim.Framework | |||
46 | public SearializableRegionInfo() | 41 | public SearializableRegionInfo() |
47 | { | 42 | { |
48 | } | 43 | } |
49 | public SearializableRegionInfo(RegionInfo ConvertFrom) | 44 | |
45 | public SearializableRegionInfo(RegionInfo ConvertFrom) | ||
50 | { | 46 | { |
51 | m_regionLocX = ConvertFrom.RegionLocX; | 47 | m_regionLocX = ConvertFrom.RegionLocX; |
52 | m_regionLocY = ConvertFrom.RegionLocY; | 48 | m_regionLocY = ConvertFrom.RegionLocY; |
@@ -55,9 +51,9 @@ namespace OpenSim.Framework | |||
55 | m_remotingPort = ConvertFrom.RemotingPort; | 51 | m_remotingPort = ConvertFrom.RemotingPort; |
56 | RemotingAddress = ConvertFrom.RemotingAddress; | 52 | RemotingAddress = ConvertFrom.RemotingAddress; |
57 | } | 53 | } |
54 | |||
58 | public SearializableRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) | 55 | public SearializableRegionInfo(uint regionLocX, uint regionLocY, IPEndPoint internalEndPoint, string externalUri) |
59 | { | 56 | { |
60 | |||
61 | m_regionLocX = regionLocX; | 57 | m_regionLocX = regionLocX; |
62 | m_regionLocY = regionLocY; | 58 | m_regionLocY = regionLocY; |
63 | 59 | ||
@@ -78,16 +74,11 @@ namespace OpenSim.Framework | |||
78 | public Guid RegionID = LLUUID.Zero.UUID; | 74 | public Guid RegionID = LLUUID.Zero.UUID; |
79 | 75 | ||
80 | public uint m_remotingPort; | 76 | public uint m_remotingPort; |
77 | |||
81 | public uint RemotingPort | 78 | public uint RemotingPort |
82 | { | 79 | { |
83 | get | 80 | get { return m_remotingPort; } |
84 | { | 81 | set { m_remotingPort = value; } |
85 | return m_remotingPort; | ||
86 | } | ||
87 | set | ||
88 | { | ||
89 | m_remotingPort = value; | ||
90 | } | ||
91 | } | 82 | } |
92 | 83 | ||
93 | public string RemotingAddress; | 84 | public string RemotingAddress; |
@@ -120,77 +111,49 @@ namespace OpenSim.Framework | |||
120 | ia = Adr; | 111 | ia = Adr; |
121 | break; | 112 | break; |
122 | } | 113 | } |
123 | |||
124 | } | 114 | } |
125 | 115 | ||
126 | return new IPEndPoint(ia, m_internalEndPoint.Port); | 116 | return new IPEndPoint(ia, m_internalEndPoint.Port); |
127 | } | 117 | } |
128 | 118 | ||
129 | set | 119 | set { m_externalHostName = value.ToString(); } |
130 | { | ||
131 | m_externalHostName = value.ToString(); | ||
132 | } | ||
133 | } | 120 | } |
134 | 121 | ||
135 | protected string m_externalHostName; | 122 | protected string m_externalHostName; |
123 | |||
136 | public string ExternalHostName | 124 | public string ExternalHostName |
137 | { | 125 | { |
138 | get | 126 | get { return m_externalHostName; } |
139 | { | 127 | set { m_externalHostName = value; } |
140 | return m_externalHostName; | ||
141 | } | ||
142 | set | ||
143 | { | ||
144 | m_externalHostName = value; | ||
145 | } | ||
146 | } | 128 | } |
147 | 129 | ||
148 | protected IPEndPoint m_internalEndPoint; | 130 | protected IPEndPoint m_internalEndPoint; |
131 | |||
149 | public IPEndPoint InternalEndPoint | 132 | public IPEndPoint InternalEndPoint |
150 | { | 133 | { |
151 | get | 134 | get { return m_internalEndPoint; } |
152 | { | 135 | set { m_internalEndPoint = value; } |
153 | return m_internalEndPoint; | ||
154 | } | ||
155 | set | ||
156 | { | ||
157 | m_internalEndPoint = value; | ||
158 | } | ||
159 | } | 136 | } |
160 | 137 | ||
161 | protected uint? m_regionLocX; | 138 | protected uint? m_regionLocX; |
139 | |||
162 | public uint RegionLocX | 140 | public uint RegionLocX |
163 | { | 141 | { |
164 | get | 142 | get { return m_regionLocX.Value; } |
165 | { | 143 | set { m_regionLocX = value; } |
166 | return m_regionLocX.Value; | ||
167 | } | ||
168 | set | ||
169 | { | ||
170 | m_regionLocX = value; | ||
171 | } | ||
172 | } | 144 | } |
173 | 145 | ||
174 | protected uint? m_regionLocY; | 146 | protected uint? m_regionLocY; |
147 | |||
175 | public uint RegionLocY | 148 | public uint RegionLocY |
176 | { | 149 | { |
177 | get | 150 | get { return m_regionLocY.Value; } |
178 | { | 151 | set { m_regionLocY = value; } |
179 | return m_regionLocY.Value; | ||
180 | } | ||
181 | set | ||
182 | { | ||
183 | m_regionLocY = value; | ||
184 | } | ||
185 | } | 152 | } |
186 | 153 | ||
187 | public ulong RegionHandle | 154 | public ulong RegionHandle |
188 | { | 155 | { |
189 | get | 156 | get { return Util.UIntsToLong((RegionLocX*256), (RegionLocY*256)); } |
190 | { | ||
191 | return Util.UIntsToLong((RegionLocX * 256), (RegionLocY * 256)); | ||
192 | } | ||
193 | } | 157 | } |
194 | } | 158 | } |
195 | 159 | } \ No newline at end of file | |
196 | } | ||
diff --git a/OpenSim/Framework/Servers/BaseHttpServer.cs b/OpenSim/Framework/Servers/BaseHttpServer.cs index d865ae8..7af1716 100644 --- a/OpenSim/Framework/Servers/BaseHttpServer.cs +++ b/OpenSim/Framework/Servers/BaseHttpServer.cs | |||
@@ -97,7 +97,7 @@ namespace OpenSim.Framework.Servers | |||
97 | 97 | ||
98 | HttpListenerRequest request = context.Request; | 98 | HttpListenerRequest request = context.Request; |
99 | HttpListenerResponse response = context.Response; | 99 | HttpListenerResponse response = context.Response; |
100 | 100 | ||
101 | 101 | ||
102 | response.KeepAlive = false; | 102 | response.KeepAlive = false; |
103 | response.SendChunked = false; | 103 | response.SendChunked = false; |
@@ -192,15 +192,12 @@ namespace OpenSim.Framework.Servers | |||
192 | MainLog.Instance.Error("XML", responseString); | 192 | MainLog.Instance.Error("XML", responseString); |
193 | string[] querystringkeys = request.QueryString.AllKeys; | 193 | string[] querystringkeys = request.QueryString.AllKeys; |
194 | string[] rHeaders = request.Headers.AllKeys; | 194 | string[] rHeaders = request.Headers.AllKeys; |
195 | |||
196 | |||
197 | 195 | ||
198 | 196 | ||
199 | foreach (string queryname in querystringkeys) | 197 | foreach (string queryname in querystringkeys) |
200 | { | 198 | { |
201 | keysvals.Add(queryname, request.QueryString[queryname]); | 199 | keysvals.Add(queryname, request.QueryString[queryname]); |
202 | MainLog.Instance.Warn("HTTP", queryname + "=" + request.QueryString[queryname]); | 200 | MainLog.Instance.Warn("HTTP", queryname + "=" + request.QueryString[queryname]); |
203 | |||
204 | } | 201 | } |
205 | foreach (string headername in rHeaders) | 202 | foreach (string headername in rHeaders) |
206 | { | 203 | { |
@@ -218,7 +215,6 @@ namespace OpenSim.Framework.Servers | |||
218 | string methodName = xmlRprcRequest.MethodName; | 215 | string methodName = xmlRprcRequest.MethodName; |
219 | if (methodName != null) | 216 | if (methodName != null) |
220 | { | 217 | { |
221 | |||
222 | XmlRpcResponse xmlRpcResponse; | 218 | XmlRpcResponse xmlRpcResponse; |
223 | 219 | ||
224 | XmlRpcMethod method; | 220 | XmlRpcMethod method; |
@@ -241,8 +237,8 @@ namespace OpenSim.Framework.Servers | |||
241 | } | 237 | } |
242 | else | 238 | else |
243 | { | 239 | { |
244 | System.Console.WriteLine("Handler not found for http request " +request.RawUrl); | 240 | System.Console.WriteLine("Handler not found for http request " + request.RawUrl); |
245 | responseString = "Error"; | 241 | responseString = "Error"; |
246 | } | 242 | } |
247 | } | 243 | } |
248 | 244 | ||
@@ -266,7 +262,8 @@ namespace OpenSim.Framework.Servers | |||
266 | response.OutputStream.Close(); | 262 | response.OutputStream.Close(); |
267 | } | 263 | } |
268 | } | 264 | } |
269 | public void HandleHTTPRequest(Hashtable keysvals, HttpListenerRequest request, HttpListenerResponse response) | 265 | |
266 | public void HandleHTTPRequest(Hashtable keysvals, HttpListenerRequest request, HttpListenerResponse response) | ||
270 | { | 267 | { |
271 | // This is a test. There's a workable alternative.. as this way sucks. | 268 | // This is a test. There's a workable alternative.. as this way sucks. |
272 | // We'd like to put this into a text file parhaps that's easily editable. | 269 | // We'd like to put this into a text file parhaps that's easily editable. |
@@ -280,12 +277,14 @@ namespace OpenSim.Framework.Servers | |||
280 | // to display the form, or process it. | 277 | // to display the form, or process it. |
281 | // a better way would be nifty. | 278 | // a better way would be nifty. |
282 | 279 | ||
283 | if ((string)keysvals["show_login_form"] == "TRUE") | 280 | if ((string) keysvals["show_login_form"] == "TRUE") |
284 | { | 281 | { |
285 | string responseString = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"; | 282 | string responseString = |
283 | "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">"; | ||
286 | responseString = responseString + "<html xmlns=\"http://www.w3.org/1999/xhtml\">"; | 284 | responseString = responseString + "<html xmlns=\"http://www.w3.org/1999/xhtml\">"; |
287 | responseString = responseString + "<head>"; | 285 | responseString = responseString + "<head>"; |
288 | responseString = responseString + "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; | 286 | responseString = responseString + |
287 | "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />"; | ||
289 | responseString = responseString + "<meta http-equiv=\"cache-control\" content=\"no-cache\">"; | 288 | responseString = responseString + "<meta http-equiv=\"cache-control\" content=\"no-cache\">"; |
290 | responseString = responseString + "<meta http-equiv=\"Pragma\" content=\"no-cache\">"; | 289 | responseString = responseString + "<meta http-equiv=\"Pragma\" content=\"no-cache\">"; |
291 | responseString = responseString + "<title>Second Life Login</title>"; | 290 | responseString = responseString + "<title>Second Life Login</title>"; |
@@ -299,37 +298,50 @@ namespace OpenSim.Framework.Servers | |||
299 | responseString = responseString + "</div>"; | 298 | responseString = responseString + "</div>"; |
300 | responseString = responseString + "<fieldset id=\"firstname\">"; | 299 | responseString = responseString + "<fieldset id=\"firstname\">"; |
301 | responseString = responseString + "<legend>First Name:</legend>"; | 300 | responseString = responseString + "<legend>First Name:</legend>"; |
302 | responseString = responseString + "<input type=\"text\" id=\"firstname_input\" size=\"15\" maxlength=\"100\" name=\"username\" value=\"" + keysvals["username"] + "\" />"; | 301 | responseString = responseString + |
302 | "<input type=\"text\" id=\"firstname_input\" size=\"15\" maxlength=\"100\" name=\"username\" value=\"" + | ||
303 | keysvals["username"] + "\" />"; | ||
303 | responseString = responseString + "</fieldset>"; | 304 | responseString = responseString + "</fieldset>"; |
304 | responseString = responseString + "<fieldset id=\"lastname\">"; | 305 | responseString = responseString + "<fieldset id=\"lastname\">"; |
305 | responseString = responseString + "<legend>Last Name:</legend>"; | 306 | responseString = responseString + "<legend>Last Name:</legend>"; |
306 | responseString = responseString + "<input type=\"text\" size=\"15\" maxlength=\"100\" name=\"lastname\" value=\"" + keysvals["lastname"] + "\" />"; | 307 | responseString = responseString + |
308 | "<input type=\"text\" size=\"15\" maxlength=\"100\" name=\"lastname\" value=\"" + | ||
309 | keysvals["lastname"] + "\" />"; | ||
307 | responseString = responseString + "</fieldset>"; | 310 | responseString = responseString + "</fieldset>"; |
308 | responseString = responseString + "<fieldset id=\"password\">"; | 311 | responseString = responseString + "<fieldset id=\"password\">"; |
309 | responseString = responseString + "<legend>Password:</legend>"; | 312 | responseString = responseString + "<legend>Password:</legend>"; |
310 | responseString = responseString + "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"; | 313 | responseString = responseString + "<table cellspacing=\"0\" cellpadding=\"0\" border=\"0\">"; |
311 | responseString = responseString + "<tr>"; | 314 | responseString = responseString + "<tr>"; |
312 | responseString = responseString + "<td colspan=\"2\"><input type=\"password\" size=\"15\" maxlength=\"100\" name=\"password\" value=\"" + keysvals["password"] + "\" /></td>"; | 315 | responseString = responseString + |
316 | "<td colspan=\"2\"><input type=\"password\" size=\"15\" maxlength=\"100\" name=\"password\" value=\"" + | ||
317 | keysvals["password"] + "\" /></td>"; | ||
313 | responseString = responseString + "</tr>"; | 318 | responseString = responseString + "</tr>"; |
314 | responseString = responseString + "<tr>"; | 319 | responseString = responseString + "<tr>"; |
315 | responseString = responseString + "<td valign=\"middle\"><input type=\"checkbox\" name=\"remember_password\" id=\"remember_password\" value=\"" + keysvals["remember_password"] + "\" checked style=\"margin-left:0px;\"/></td>"; | 320 | responseString = responseString + |
321 | "<td valign=\"middle\"><input type=\"checkbox\" name=\"remember_password\" id=\"remember_password\" value=\"" + | ||
322 | keysvals["remember_password"] + "\" checked style=\"margin-left:0px;\"/></td>"; | ||
316 | responseString = responseString + "<td><label for=\"remember_password\">Remember password</label></td>"; | 323 | responseString = responseString + "<td><label for=\"remember_password\">Remember password</label></td>"; |
317 | responseString = responseString + "</tr>"; | 324 | responseString = responseString + "</tr>"; |
318 | responseString = responseString + "</table>"; | 325 | responseString = responseString + "</table>"; |
319 | responseString = responseString + "</fieldset>"; | 326 | responseString = responseString + "</fieldset>"; |
320 | responseString = responseString + "<input type=\"hidden\" name=\"show_login_form\" value=\"FALSE\" />"; | 327 | responseString = responseString + "<input type=\"hidden\" name=\"show_login_form\" value=\"FALSE\" />"; |
321 | responseString = responseString + "<input type=\"hidden\" id=\"grid\" name=\"grid\" value=\"" + keysvals["grid"] + "\" />"; | 328 | responseString = responseString + "<input type=\"hidden\" id=\"grid\" name=\"grid\" value=\"" + |
329 | keysvals["grid"] + "\" />"; | ||
322 | responseString = responseString + "<div id=\"submitbtn\">"; | 330 | responseString = responseString + "<div id=\"submitbtn\">"; |
323 | responseString = responseString + "<input class=\"input_over\" type=\"submit\" value=\"Connect\" />"; | 331 | responseString = responseString + "<input class=\"input_over\" type=\"submit\" value=\"Connect\" />"; |
324 | responseString = responseString + "</div>"; | 332 | responseString = responseString + "</div>"; |
325 | responseString = responseString + "<div id=\"connecting\" style=\"visibility:hidden\"><img src=\"/_img/sl_logo_rotate_black.gif\" align=\"absmiddle\"> Connecting...</div>"; | 333 | responseString = responseString + |
334 | "<div id=\"connecting\" style=\"visibility:hidden\"><img src=\"/_img/sl_logo_rotate_black.gif\" align=\"absmiddle\"> Connecting...</div>"; | ||
326 | 335 | ||
327 | responseString = responseString + "<div id=\"helplinks\">"; | 336 | responseString = responseString + "<div id=\"helplinks\">"; |
328 | responseString = responseString + "<a href=\"http://www.secondlife.com/join/index.php\" target=\"_blank\">Create new account</a> | "; | 337 | responseString = responseString + |
329 | responseString = responseString + "<a href=\"http://www.secondlife.com/account/request.php\" target=\"_blank\">Forgot password?</a>"; | 338 | "<a href=\"http://www.secondlife.com/join/index.php\" target=\"_blank\">Create new account</a> | "; |
339 | responseString = responseString + | ||
340 | "<a href=\"http://www.secondlife.com/account/request.php\" target=\"_blank\">Forgot password?</a>"; | ||
330 | responseString = responseString + "</div>"; | 341 | responseString = responseString + "</div>"; |
331 | 342 | ||
332 | responseString = responseString + "<div id=\"channelinfo\"> " + keysvals["channel"] + " | " + keysvals["version"] + "=" + keysvals["lang"] + "</div>"; | 343 | responseString = responseString + "<div id=\"channelinfo\"> " + keysvals["channel"] + " | " + |
344 | keysvals["version"] + "=" + keysvals["lang"] + "</div>"; | ||
333 | responseString = responseString + "</form>"; | 345 | responseString = responseString + "</form>"; |
334 | responseString = responseString + "<script language=\"JavaScript\">"; | 346 | responseString = responseString + "<script language=\"JavaScript\">"; |
335 | responseString = responseString + "document.getElementById('firstname_input').focus();"; | 347 | responseString = responseString + "document.getElementById('firstname_input').focus();"; |
@@ -359,7 +371,7 @@ namespace OpenSim.Framework.Servers | |||
359 | } | 371 | } |
360 | } // show_login_form == "TRUE" | 372 | } // show_login_form == "TRUE" |
361 | else | 373 | else |
362 | { | 374 | { |
363 | // show_login_form is present but FALSE | 375 | // show_login_form is present but FALSE |
364 | // | 376 | // |
365 | // The idea here is that we're telling the client to log in immediately here using the following information | 377 | // The idea here is that we're telling the client to log in immediately here using the following information |
@@ -371,12 +383,14 @@ namespace OpenSim.Framework.Servers | |||
371 | // | 383 | // |
372 | 384 | ||
373 | response.StatusCode = 301; | 385 | response.StatusCode = 301; |
374 | response.RedirectLocation = "secondlife:///app/login?first_name=" + keysvals["username"] + "&last_name=" + keysvals["lastname"] + "&location=home&grid=Other&web_login_key=796f2b2a-0131-41e4-af12-00f60c24c458"; | 386 | response.RedirectLocation = "secondlife:///app/login?first_name=" + keysvals["username"] + "&last_name=" + |
375 | 387 | keysvals["lastname"] + | |
388 | "&location=home&grid=Other&web_login_key=796f2b2a-0131-41e4-af12-00f60c24c458"; | ||
389 | |||
376 | response.OutputStream.Close(); | 390 | response.OutputStream.Close(); |
377 | } // show_login_form == "FALSE" | 391 | } // show_login_form == "FALSE" |
378 | |||
379 | } | 392 | } |
393 | |||
380 | public void Start() | 394 | public void Start() |
381 | { | 395 | { |
382 | MainLog.Instance.Verbose("HTTPD", "Starting up HTTP Server"); | 396 | MainLog.Instance.Verbose("HTTPD", "Starting up HTTP Server"); |
@@ -422,4 +436,4 @@ namespace OpenSim.Framework.Servers | |||
422 | m_streamHandlers.Remove(GetHandlerKey(httpMethod, path)); | 436 | m_streamHandlers.Remove(GetHandlerKey(httpMethod, path)); |
423 | } | 437 | } |
424 | } | 438 | } |
425 | } | 439 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/CheckSumServer.cs b/OpenSim/Framework/Servers/CheckSumServer.cs index e3a5df3..47b3f24 100644 --- a/OpenSim/Framework/Servers/CheckSumServer.cs +++ b/OpenSim/Framework/Servers/CheckSumServer.cs | |||
@@ -124,4 +124,4 @@ namespace OpenSim.Framework.Servers | |||
124 | } | 124 | } |
125 | * } | 125 | * } |
126 | */ | 126 | */ |
127 | } | 127 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/RestMethod.cs b/OpenSim/Framework/Servers/RestMethod.cs index 34e2669..ce2239b 100644 --- a/OpenSim/Framework/Servers/RestMethod.cs +++ b/OpenSim/Framework/Servers/RestMethod.cs | |||
@@ -28,4 +28,4 @@ | |||
28 | namespace OpenSim.Framework.Servers | 28 | namespace OpenSim.Framework.Servers |
29 | { | 29 | { |
30 | public delegate string RestMethod(string request, string path, string param); | 30 | public delegate string RestMethod(string request, string path, string param); |
31 | } | 31 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/RestObjectPoster.cs b/OpenSim/Framework/Servers/RestObjectPoster.cs index b1565f1..212361c 100644 --- a/OpenSim/Framework/Servers/RestObjectPoster.cs +++ b/OpenSim/Framework/Servers/RestObjectPoster.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -44,7 +44,7 @@ namespace OpenSim.Framework.Servers | |||
44 | 44 | ||
45 | public static void BeginPostObject<TRequest>(string verb, string requestUrl, TRequest obj) | 45 | public static void BeginPostObject<TRequest>(string verb, string requestUrl, TRequest obj) |
46 | { | 46 | { |
47 | Type type = typeof(TRequest); | 47 | Type type = typeof (TRequest); |
48 | 48 | ||
49 | WebRequest request = WebRequest.Create(requestUrl); | 49 | WebRequest request = WebRequest.Create(requestUrl); |
50 | request.Method = verb; | 50 | request.Method = verb; |
@@ -62,7 +62,7 @@ namespace OpenSim.Framework.Servers | |||
62 | writer.Flush(); | 62 | writer.Flush(); |
63 | } | 63 | } |
64 | 64 | ||
65 | int length = (int)buffer.Length; | 65 | int length = (int) buffer.Length; |
66 | request.ContentLength = length; | 66 | request.ContentLength = length; |
67 | 67 | ||
68 | Stream requestStream = request.GetRequestStream(); | 68 | Stream requestStream = request.GetRequestStream(); |
@@ -72,7 +72,7 @@ namespace OpenSim.Framework.Servers | |||
72 | 72 | ||
73 | private static void AsyncCallback(IAsyncResult result) | 73 | private static void AsyncCallback(IAsyncResult result) |
74 | { | 74 | { |
75 | WebRequest request = (WebRequest)result.AsyncState; | 75 | WebRequest request = (WebRequest) result.AsyncState; |
76 | using (WebResponse resp = request.EndGetResponse(result)) | 76 | using (WebResponse resp = request.EndGetResponse(result)) |
77 | { | 77 | { |
78 | } | 78 | } |
diff --git a/OpenSim/Framework/Servers/RestObjectPosterResponse.cs b/OpenSim/Framework/Servers/RestObjectPosterResponse.cs index 9d1f819..2961e04 100644 --- a/OpenSim/Framework/Servers/RestObjectPosterResponse.cs +++ b/OpenSim/Framework/Servers/RestObjectPosterResponse.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -48,7 +48,7 @@ namespace OpenSim.Framework.Servers | |||
48 | 48 | ||
49 | public void BeginPostObject<TRequest>(string verb, string requestUrl, TRequest obj) | 49 | public void BeginPostObject<TRequest>(string verb, string requestUrl, TRequest obj) |
50 | { | 50 | { |
51 | Type type = typeof(TRequest); | 51 | Type type = typeof (TRequest); |
52 | 52 | ||
53 | WebRequest request = WebRequest.Create(requestUrl); | 53 | WebRequest request = WebRequest.Create(requestUrl); |
54 | request.Method = verb; | 54 | request.Method = verb; |
@@ -66,7 +66,7 @@ namespace OpenSim.Framework.Servers | |||
66 | writer.Flush(); | 66 | writer.Flush(); |
67 | } | 67 | } |
68 | 68 | ||
69 | int length = (int)buffer.Length; | 69 | int length = (int) buffer.Length; |
70 | request.ContentLength = length; | 70 | request.ContentLength = length; |
71 | 71 | ||
72 | Stream requestStream = request.GetRequestStream(); | 72 | Stream requestStream = request.GetRequestStream(); |
@@ -76,12 +76,12 @@ namespace OpenSim.Framework.Servers | |||
76 | 76 | ||
77 | private void AsyncCallback(IAsyncResult result) | 77 | private void AsyncCallback(IAsyncResult result) |
78 | { | 78 | { |
79 | WebRequest request = (WebRequest)result.AsyncState; | 79 | WebRequest request = (WebRequest) result.AsyncState; |
80 | using (WebResponse resp = request.EndGetResponse(result)) | 80 | using (WebResponse resp = request.EndGetResponse(result)) |
81 | { | 81 | { |
82 | TResponse deserial; | 82 | TResponse deserial; |
83 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); | 83 | XmlSerializer deserializer = new XmlSerializer(typeof (TResponse)); |
84 | deserial = (TResponse)deserializer.Deserialize(resp.GetResponseStream()); | 84 | deserial = (TResponse) deserializer.Deserialize(resp.GetResponseStream()); |
85 | 85 | ||
86 | if (deserial != null && ResponseCallback != null) | 86 | if (deserial != null && ResponseCallback != null) |
87 | { | 87 | { |
@@ -90,4 +90,4 @@ namespace OpenSim.Framework.Servers | |||
90 | } | 90 | } |
91 | } | 91 | } |
92 | } | 92 | } |
93 | } | 93 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/SynchronousRestObjectPoster.cs b/OpenSim/Framework/Servers/SynchronousRestObjectPoster.cs index 6338531..cfb585b 100644 --- a/OpenSim/Framework/Servers/SynchronousRestObjectPoster.cs +++ b/OpenSim/Framework/Servers/SynchronousRestObjectPoster.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -39,7 +39,7 @@ namespace OpenSim.Framework.Servers | |||
39 | { | 39 | { |
40 | public static TResponse BeginPostObject<TRequest, TResponse>(string verb, string requestUrl, TRequest obj) | 40 | public static TResponse BeginPostObject<TRequest, TResponse>(string verb, string requestUrl, TRequest obj) |
41 | { | 41 | { |
42 | Type type = typeof(TRequest); | 42 | Type type = typeof (TRequest); |
43 | 43 | ||
44 | WebRequest request = WebRequest.Create(requestUrl); | 44 | WebRequest request = WebRequest.Create(requestUrl); |
45 | request.Method = verb; | 45 | request.Method = verb; |
@@ -57,7 +57,7 @@ namespace OpenSim.Framework.Servers | |||
57 | writer.Flush(); | 57 | writer.Flush(); |
58 | } | 58 | } |
59 | 59 | ||
60 | int length = (int)buffer.Length; | 60 | int length = (int) buffer.Length; |
61 | request.ContentLength = length; | 61 | request.ContentLength = length; |
62 | 62 | ||
63 | Stream requestStream = request.GetRequestStream(); | 63 | Stream requestStream = request.GetRequestStream(); |
@@ -65,12 +65,10 @@ namespace OpenSim.Framework.Servers | |||
65 | TResponse deserial = default(TResponse); | 65 | TResponse deserial = default(TResponse); |
66 | using (WebResponse resp = request.GetResponse()) | 66 | using (WebResponse resp = request.GetResponse()) |
67 | { | 67 | { |
68 | 68 | XmlSerializer deserializer = new XmlSerializer(typeof (TResponse)); | |
69 | XmlSerializer deserializer = new XmlSerializer(typeof(TResponse)); | 69 | deserial = (TResponse) deserializer.Deserialize(resp.GetResponseStream()); |
70 | deserial = (TResponse)deserializer.Deserialize(resp.GetResponseStream()); | ||
71 | } | 70 | } |
72 | return deserial; | 71 | return deserial; |
73 | } | 72 | } |
74 | |||
75 | } | 73 | } |
76 | } | 74 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Servers/XmlRpcMethod.cs b/OpenSim/Framework/Servers/XmlRpcMethod.cs index e4993e3..b156cdd 100644 --- a/OpenSim/Framework/Servers/XmlRpcMethod.cs +++ b/OpenSim/Framework/Servers/XmlRpcMethod.cs | |||
@@ -30,4 +30,4 @@ using Nwc.XmlRpc; | |||
30 | namespace OpenSim.Framework.Servers | 30 | namespace OpenSim.Framework.Servers |
31 | { | 31 | { |
32 | public delegate XmlRpcResponse XmlRpcMethod(XmlRpcRequest request); | 32 | public delegate XmlRpcResponse XmlRpcMethod(XmlRpcRequest request); |
33 | } | 33 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/UserConfig.cs b/OpenSim/Framework/UserConfig.cs index 39b1599..7ca2512 100644 --- a/OpenSim/Framework/UserConfig.cs +++ b/OpenSim/Framework/UserConfig.cs | |||
@@ -76,7 +76,8 @@ namespace OpenSim.Framework | |||
76 | configMember.addConfigurationOption("default_inventory_server", | 76 | configMember.addConfigurationOption("default_inventory_server", |
77 | ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, | 77 | ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, |
78 | "Default Inventory Server URI", | 78 | "Default Inventory Server URI", |
79 | "http://127.0.0.1:" + InventoryConfig.DefaultHttpPort.ToString() + "/", false); | 79 | "http://127.0.0.1:" + InventoryConfig.DefaultHttpPort.ToString() + "/", |
80 | false); | ||
80 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, | 81 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, |
81 | "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); | 82 | "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); |
82 | 83 | ||
@@ -107,7 +108,7 @@ namespace OpenSim.Framework | |||
107 | GridRecvKey = (string) configuration_result; | 108 | GridRecvKey = (string) configuration_result; |
108 | break; | 109 | break; |
109 | case "default_inventory_server": | 110 | case "default_inventory_server": |
110 | InventoryUrl = (string)configuration_result; | 111 | InventoryUrl = (string) configuration_result; |
111 | break; | 112 | break; |
112 | case "database_provider": | 113 | case "database_provider": |
113 | DatabaseProvider = (string) configuration_result; | 114 | DatabaseProvider = (string) configuration_result; |
@@ -116,13 +117,13 @@ namespace OpenSim.Framework | |||
116 | HttpPort = (uint) configuration_result; | 117 | HttpPort = (uint) configuration_result; |
117 | break; | 118 | break; |
118 | case "http_ssl": | 119 | case "http_ssl": |
119 | HttpSSL = (bool)configuration_result; | 120 | HttpSSL = (bool) configuration_result; |
120 | break; | 121 | break; |
121 | case "default_X": | 122 | case "default_X": |
122 | DefaultX = (uint)configuration_result; | 123 | DefaultX = (uint) configuration_result; |
123 | break; | 124 | break; |
124 | case "default_Y": | 125 | case "default_Y": |
125 | DefaultY = (uint)configuration_result; | 126 | DefaultY = (uint) configuration_result; |
126 | break; | 127 | break; |
127 | } | 128 | } |
128 | 129 | ||
diff --git a/OpenSim/Framework/UserProfileData.cs b/OpenSim/Framework/UserProfileData.cs index 40a3d78..4df1ebd 100644 --- a/OpenSim/Framework/UserProfileData.cs +++ b/OpenSim/Framework/UserProfileData.cs | |||
@@ -150,14 +150,13 @@ namespace OpenSim.Framework | |||
150 | /// </summary> | 150 | /// </summary> |
151 | //public class AvatarPickerAvatar | 151 | //public class AvatarPickerAvatar |
152 | //{ | 152 | //{ |
153 | //public LLUUID AvatarID; | 153 | //public LLUUID AvatarID; |
154 | //public string firstName; | 154 | //public string firstName; |
155 | //public string lastName; | 155 | //public string lastName; |
156 | //public AvatarPickerAvatar() | 156 | //public AvatarPickerAvatar() |
157 | //{ | 157 | //{ |
158 | //} | 158 | //} |
159 | //} | 159 | //} |
160 | |||
161 | /// <summary> | 160 | /// <summary> |
162 | /// Information about a users session | 161 | /// Information about a users session |
163 | /// </summary> | 162 | /// </summary> |
@@ -224,4 +223,4 @@ namespace OpenSim.Framework | |||
224 | /// </summary> | 223 | /// </summary> |
225 | public LLVector3 currentPos; | 224 | public LLVector3 currentPos; |
226 | } | 225 | } |
227 | } | 226 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index 1c8f273..3654a7d 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs | |||
@@ -46,12 +46,13 @@ namespace OpenSim.Framework | |||
46 | private static object XferLock = new object(); | 46 | private static object XferLock = new object(); |
47 | private static Dictionary<LLUUID, string> capsURLS = new Dictionary<LLUUID, string>(); | 47 | private static Dictionary<LLUUID, string> capsURLS = new Dictionary<LLUUID, string>(); |
48 | 48 | ||
49 | public static double GetDistanceTo(LLVector3 a, LLVector3 b) { | 49 | public static double GetDistanceTo(LLVector3 a, LLVector3 b) |
50 | float dx = a.X - b.X; | 50 | { |
51 | float dy = a.Y - b.Y; | 51 | float dx = a.X - b.X; |
52 | float dz = a.Z - b.Z; | 52 | float dy = a.Y - b.Y; |
53 | return Math.Sqrt(dx * dx + dy * dy + dz * dz); | 53 | float dz = a.Z - b.Z; |
54 | } | 54 | return Math.Sqrt(dx*dx + dy*dy + dz*dz); |
55 | } | ||
55 | 56 | ||
56 | public static ulong UIntsToLong(uint X, uint Y) | 57 | public static ulong UIntsToLong(uint X, uint Y) |
57 | { | 58 | { |
@@ -383,7 +384,7 @@ namespace OpenSim.Framework | |||
383 | { | 384 | { |
384 | return Math.Min(Math.Max(x, min), max); | 385 | return Math.Min(Math.Max(x, min), max); |
385 | } | 386 | } |
386 | 387 | ||
387 | /// <summary> | 388 | /// <summary> |
388 | /// Convert an LLUUID to a raw uuid string. Right now this is a string without hyphens. | 389 | /// Convert an LLUUID to a raw uuid string. Right now this is a string without hyphens. |
389 | /// </summary> | 390 | /// </summary> |
@@ -394,4 +395,4 @@ namespace OpenSim.Framework | |||
394 | return lluuid.UUID.ToString("n"); | 395 | return lluuid.UUID.ToString("n"); |
395 | } | 396 | } |
396 | } | 397 | } |
397 | } | 398 | } \ No newline at end of file |
diff --git a/OpenSim/Framework/sLLVector3.cs b/OpenSim/Framework/sLLVector3.cs index e74378d..2e2c005 100644 --- a/OpenSim/Framework/sLLVector3.cs +++ b/OpenSim/Framework/sLLVector3.cs | |||
@@ -29,7 +29,6 @@ | |||
29 | using System; | 29 | using System; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | 31 | ||
32 | |||
33 | namespace OpenSim.Framework | 32 | namespace OpenSim.Framework |
34 | { | 33 | { |
35 | [Serializable] | 34 | [Serializable] |
@@ -37,17 +36,17 @@ namespace OpenSim.Framework | |||
37 | { | 36 | { |
38 | public sLLVector3() | 37 | public sLLVector3() |
39 | { | 38 | { |
40 | |||
41 | } | 39 | } |
40 | |||
42 | public sLLVector3(LLVector3 v) | 41 | public sLLVector3(LLVector3 v) |
43 | { | 42 | { |
44 | x = v.X; | 43 | x = v.X; |
45 | y = v.Y; | 44 | y = v.Y; |
46 | z = v.Z; | 45 | z = v.Z; |
47 | } | 46 | } |
47 | |||
48 | public float x; | 48 | public float x; |
49 | public float y; | 49 | public float y; |
50 | public float z; | 50 | public float z; |
51 | } | 51 | } |
52 | 52 | } \ No newline at end of file | |
53 | } | ||
diff --git a/OpenSim/Grid/AssetServer/Main.cs b/OpenSim/Grid/AssetServer/Main.cs index c4e8e64..5d3d265 100644 --- a/OpenSim/Grid/AssetServer/Main.cs +++ b/OpenSim/Grid/AssetServer/Main.cs | |||
@@ -242,4 +242,4 @@ namespace OpenSim.Grid.AssetServer | |||
242 | { | 242 | { |
243 | } | 243 | } |
244 | } | 244 | } |
245 | } | 245 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs index 6608bd0..d598094 100644 --- a/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/AssetServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/AssetServer/RestService.cs b/OpenSim/Grid/AssetServer/RestService.cs index 1f44686..ee44108 100644 --- a/OpenSim/Grid/AssetServer/RestService.cs +++ b/OpenSim/Grid/AssetServer/RestService.cs | |||
@@ -45,7 +45,7 @@ namespace OpenSim.Grid.AssetServer | |||
45 | 45 | ||
46 | public override byte[] Handle(string path, Stream request) | 46 | public override byte[] Handle(string path, Stream request) |
47 | { | 47 | { |
48 | MainLog.Instance.Verbose("REST", "In Handle"); | 48 | MainLog.Instance.Verbose("REST", "In Handle"); |
49 | string param = GetParam(path); | 49 | string param = GetParam(path); |
50 | byte[] result = new byte[] {}; | 50 | byte[] result = new byte[] {}; |
51 | try | 51 | try |
@@ -129,4 +129,4 @@ namespace OpenSim.Grid.AssetServer | |||
129 | m_assetProvider = assetProvider; | 129 | m_assetProvider = assetProvider; |
130 | } | 130 | } |
131 | } | 131 | } |
132 | } | 132 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/GridManager.cs b/OpenSim/Grid/GridServer/GridManager.cs index cb9f979..65df708 100644 --- a/OpenSim/Grid/GridServer/GridManager.cs +++ b/OpenSim/Grid/GridServer/GridManager.cs | |||
@@ -434,8 +434,8 @@ namespace OpenSim.Grid.GridServer | |||
434 | } | 434 | } |
435 | else | 435 | else |
436 | { | 436 | { |
437 | MainLog.Instance.Verbose("DATA", "found " + (string)simData.regionName + " regionHandle = " + | 437 | MainLog.Instance.Verbose("DATA", "found " + (string) simData.regionName + " regionHandle = " + |
438 | (string)requestData["region_handle"]); | 438 | (string) requestData["region_handle"]); |
439 | responseData["sim_ip"] = Util.GetHostFromDNS(simData.serverIP).ToString(); | 439 | responseData["sim_ip"] = Util.GetHostFromDNS(simData.serverIP).ToString(); |
440 | responseData["sim_port"] = simData.serverPort.ToString(); | 440 | responseData["sim_port"] = simData.serverPort.ToString(); |
441 | responseData["http_port"] = simData.httpPort.ToString(); | 441 | responseData["http_port"] = simData.httpPort.ToString(); |
@@ -513,7 +513,7 @@ namespace OpenSim.Grid.GridServer | |||
513 | simProfileList.Add(simProfileBlock); | 513 | simProfileList.Add(simProfileBlock); |
514 | } | 514 | } |
515 | MainLog.Instance.Verbose("MAP", "Fast map " + simProfileList.Count.ToString() + | 515 | MainLog.Instance.Verbose("MAP", "Fast map " + simProfileList.Count.ToString() + |
516 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")" ); | 516 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); |
517 | } | 517 | } |
518 | else | 518 | else |
519 | { | 519 | { |
@@ -548,7 +548,7 @@ namespace OpenSim.Grid.GridServer | |||
548 | } | 548 | } |
549 | } | 549 | } |
550 | MainLog.Instance.Verbose("MAP", "Std map " + simProfileList.Count.ToString() + | 550 | MainLog.Instance.Verbose("MAP", "Std map " + simProfileList.Count.ToString() + |
551 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); | 551 | " regions @ (" + xmin + "," + ymin + ")..(" + xmax + "," + ymax + ")"); |
552 | } | 552 | } |
553 | 553 | ||
554 | responseData["sim-profiles"] = simProfileList; | 554 | responseData["sim-profiles"] = simProfileList; |
@@ -713,7 +713,8 @@ namespace OpenSim.Grid.GridServer | |||
713 | 713 | ||
714 | try | 714 | try |
715 | { | 715 | { |
716 | MainLog.Instance.Verbose("DATA", "Updating / adding via " + _plugins.Count + " storage provider(s) registered."); | 716 | MainLog.Instance.Verbose("DATA", |
717 | "Updating / adding via " + _plugins.Count + " storage provider(s) registered."); | ||
717 | foreach (KeyValuePair<string, IGridData> kvp in _plugins) | 718 | foreach (KeyValuePair<string, IGridData> kvp in _plugins) |
718 | { | 719 | { |
719 | try | 720 | try |
@@ -733,14 +734,14 @@ namespace OpenSim.Grid.GridServer | |||
733 | { | 734 | { |
734 | MainLog.Instance.Warn("grid", | 735 | MainLog.Instance.Warn("grid", |
735 | "Unable to update region (RestSetSimMethod): Incorrect reservation auth key."); | 736 | "Unable to update region (RestSetSimMethod): Incorrect reservation auth key."); |
736 | // Wanted: " + reserveData.gridRecvKey + ", Got: " + TheSim.regionRecvKey + "."); | 737 | // Wanted: " + reserveData.gridRecvKey + ", Got: " + TheSim.regionRecvKey + "."); |
737 | return "Unable to update region (RestSetSimMethod): Incorrect auth key."; | 738 | return "Unable to update region (RestSetSimMethod): Incorrect auth key."; |
738 | } | 739 | } |
739 | } | 740 | } |
740 | catch (Exception e) | 741 | catch (Exception e) |
741 | { | 742 | { |
742 | MainLog.Instance.Warn("GRID", "getRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + | 743 | MainLog.Instance.Warn("GRID", "getRegionPlugin Handle " + kvp.Key + " unable to add new sim: " + |
743 | e.ToString()); | 744 | e.ToString()); |
744 | } | 745 | } |
745 | } | 746 | } |
746 | return "OK"; | 747 | return "OK"; |
@@ -751,4 +752,4 @@ namespace OpenSim.Grid.GridServer | |||
751 | } | 752 | } |
752 | } | 753 | } |
753 | } | 754 | } |
754 | } | 755 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/Main.cs b/OpenSim/Grid/GridServer/Main.cs index 5bae6a6..cdd37c4 100644 --- a/OpenSim/Grid/GridServer/Main.cs +++ b/OpenSim/Grid/GridServer/Main.cs | |||
@@ -103,7 +103,7 @@ namespace OpenSim.Grid.GridServer | |||
103 | public void Startup() | 103 | public void Startup() |
104 | { | 104 | { |
105 | Cfg = new GridConfig("GRID SERVER", (Path.Combine(Util.configDir(), "GridServer_Config.xml"))); | 105 | Cfg = new GridConfig("GRID SERVER", (Path.Combine(Util.configDir(), "GridServer_Config.xml"))); |
106 | //Yeah srsly, that's it. | 106 | //Yeah srsly, that's it. |
107 | if (setuponly) Environment.Exit(0); | 107 | if (setuponly) Environment.Exit(0); |
108 | 108 | ||
109 | m_console.Verbose("GRID", "Connecting to Storage Server"); | 109 | m_console.Verbose("GRID", "Connecting to Storage Server"); |
@@ -218,4 +218,4 @@ namespace OpenSim.Grid.GridServer | |||
218 | } | 218 | } |
219 | }*/ | 219 | }*/ |
220 | } | 220 | } |
221 | } | 221 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs b/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs index 0399b3b..6f837e6 100644 --- a/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs +++ b/OpenSim/Grid/GridServer/Properties/AssemblyInfo.cs | |||
@@ -60,4 +60,4 @@ using System.Runtime.InteropServices; | |||
60 | // | 60 | // |
61 | 61 | ||
62 | [assembly : AssemblyVersion("1.0.0.0")] | 62 | [assembly : AssemblyVersion("1.0.0.0")] |
63 | [assembly : AssemblyFileVersion("1.0.0.0")] | 63 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/GridInventoryService.cs b/OpenSim/Grid/InventoryServer/GridInventoryService.cs index ca2e526..d36a915 100644 --- a/OpenSim/Grid/InventoryServer/GridInventoryService.cs +++ b/OpenSim/Grid/InventoryServer/GridInventoryService.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -28,23 +28,22 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using libsecondlife; |
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using OpenSim.Framework.Communications; | 33 | using OpenSim.Framework.Communications; |
34 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
35 | using libsecondlife; | ||
36 | 35 | ||
37 | namespace OpenSim.Grid.InventoryServer | 36 | namespace OpenSim.Grid.InventoryServer |
38 | { | 37 | { |
39 | public class GridInventoryService : InventoryServiceBase | 38 | public class GridInventoryService : InventoryServiceBase |
40 | { | 39 | { |
41 | public override void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, | 40 | public override void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, |
42 | InventoryItemInfo itemCallBack) | 41 | InventoryItemInfo itemCallBack) |
43 | { | 42 | { |
44 | |||
45 | } | 43 | } |
46 | 44 | ||
47 | private bool TryGetUsersInventory(LLUUID userID, out List<InventoryFolderBase> folderList, out List<InventoryItemBase> itemsList) | 45 | private bool TryGetUsersInventory(LLUUID userID, out List<InventoryFolderBase> folderList, |
46 | out List<InventoryItemBase> itemsList) | ||
48 | { | 47 | { |
49 | List<InventoryFolderBase> rootFolders = RequestFirstLevelFolders(userID); | 48 | List<InventoryFolderBase> rootFolders = RequestFirstLevelFolders(userID); |
50 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); | 49 | List<InventoryItemBase> allItems = new List<InventoryItemBase>(); |
@@ -107,10 +106,10 @@ namespace OpenSim.Grid.InventoryServer | |||
107 | public InventoryCollection GetUserInventory(Guid rawUserID) | 106 | public InventoryCollection GetUserInventory(Guid rawUserID) |
108 | { | 107 | { |
109 | LLUUID userID = new LLUUID(rawUserID); | 108 | LLUUID userID = new LLUUID(rawUserID); |
110 | 109 | ||
111 | // We get enough verbose messages later on for diagnostics | 110 | // We get enough verbose messages later on for diagnostics |
112 | //MainLog.Instance.Verbose("INVENTORY", "Request for inventory for " + userID.ToString()); | 111 | //MainLog.Instance.Verbose("INVENTORY", "Request for inventory for " + userID.ToString()); |
113 | 112 | ||
114 | InventoryCollection invCollection = new InventoryCollection(); | 113 | InventoryCollection invCollection = new InventoryCollection(); |
115 | List<InventoryFolderBase> folders; | 114 | List<InventoryFolderBase> folders; |
116 | List<InventoryItemBase> allItems; | 115 | List<InventoryItemBase> allItems; |
@@ -126,14 +125,14 @@ namespace OpenSim.Grid.InventoryServer | |||
126 | public bool CreateUsersInventory(Guid rawUserID) | 125 | public bool CreateUsersInventory(Guid rawUserID) |
127 | { | 126 | { |
128 | LLUUID userID = new LLUUID(rawUserID); | 127 | LLUUID userID = new LLUUID(rawUserID); |
129 | 128 | ||
130 | MainLog.Instance.Verbose( | 129 | MainLog.Instance.Verbose( |
131 | "INVENTORY", "Creating new set of inventory folders for " + userID.ToString()); | 130 | "INVENTORY", "Creating new set of inventory folders for " + userID.ToString()); |
132 | 131 | ||
133 | CreateNewUserInventory(userID); | 132 | CreateNewUserInventory(userID); |
134 | return true; | 133 | return true; |
135 | } | 134 | } |
136 | 135 | ||
137 | 136 | ||
138 | public override void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) | 137 | public override void AddNewInventoryFolder(LLUUID userID, InventoryFolderBase folder) |
139 | { | 138 | { |
@@ -156,30 +155,30 @@ namespace OpenSim.Grid.InventoryServer | |||
156 | MainLog.Instance.Verbose( | 155 | MainLog.Instance.Verbose( |
157 | "INVENTORY", | 156 | "INVENTORY", |
158 | "Updating in " + folder.parentID.ToString() | 157 | "Updating in " + folder.parentID.ToString() |
159 | + ", folder " + folder.name); | 158 | + ", folder " + folder.name); |
160 | 159 | ||
161 | AddNewInventoryFolder(folder.agentID, folder); | 160 | AddNewInventoryFolder(folder.agentID, folder); |
162 | return true; | 161 | return true; |
163 | } | 162 | } |
164 | 163 | ||
165 | public bool MoveInventoryFolder(InventoryFolderBase folder) | 164 | public bool MoveInventoryFolder(InventoryFolderBase folder) |
166 | { | 165 | { |
167 | MainLog.Instance.Verbose( | 166 | MainLog.Instance.Verbose( |
168 | "INVENTORY", | 167 | "INVENTORY", |
169 | "Moving folder " + folder.folderID | 168 | "Moving folder " + folder.folderID |
170 | + " to " + folder.parentID.ToString()); | 169 | + " to " + folder.parentID.ToString()); |
171 | 170 | ||
172 | MoveExistingInventoryFolder(folder); | 171 | MoveExistingInventoryFolder(folder); |
173 | return true; | 172 | return true; |
174 | } | 173 | } |
175 | 174 | ||
176 | public bool AddInventoryItem( InventoryItemBase item) | 175 | public bool AddInventoryItem(InventoryItemBase item) |
177 | { | 176 | { |
178 | // Right now, this actions act more like an update/insert combination than a simple create. | 177 | // Right now, this actions act more like an update/insert combination than a simple create. |
179 | MainLog.Instance.Verbose( | 178 | MainLog.Instance.Verbose( |
180 | "INVENTORY", | 179 | "INVENTORY", |
181 | "Updating in " + item.parentFolderID.ToString() | 180 | "Updating in " + item.parentFolderID.ToString() |
182 | + ", item " + item.inventoryName); | 181 | + ", item " + item.inventoryName); |
183 | 182 | ||
184 | AddNewInventoryItem(item.avatarID, item); | 183 | AddNewInventoryItem(item.avatarID, item); |
185 | return true; | 184 | return true; |
@@ -191,15 +190,15 @@ namespace OpenSim.Grid.InventoryServer | |||
191 | MainLog.Instance.Verbose( | 190 | MainLog.Instance.Verbose( |
192 | "INVENTORY", | 191 | "INVENTORY", |
193 | "Deleting in " + item.parentFolderID.ToString() | 192 | "Deleting in " + item.parentFolderID.ToString() |
194 | + ", item " + item.inventoryName); | 193 | + ", item " + item.inventoryName); |
195 | 194 | ||
196 | DeleteItem(item); | 195 | DeleteItem(item); |
197 | } | 196 | } |
198 | 197 | ||
199 | public bool DeleteInvItem( InventoryItemBase item) | 198 | public bool DeleteInvItem(InventoryItemBase item) |
200 | { | 199 | { |
201 | DeleteInventoryItem(item.avatarID, item); | 200 | DeleteInventoryItem(item.avatarID, item); |
202 | return true; | 201 | return true; |
203 | } | 202 | } |
204 | } | 203 | } |
205 | } | 204 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/InventoryManager.cs b/OpenSim/Grid/InventoryServer/InventoryManager.cs index 1070bcf..a003ce3 100644 --- a/OpenSim/Grid/InventoryServer/InventoryManager.cs +++ b/OpenSim/Grid/InventoryServer/InventoryManager.cs | |||
@@ -25,26 +25,23 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | |||
28 | using System; | 29 | using System; |
29 | using System.IO; | 30 | using System.IO; |
30 | using System.Text; | ||
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using System.Collections; | 32 | using System.Text; |
33 | using System.Collections.Generic; | ||
34 | using System.Xml; | 33 | using System.Xml; |
35 | using System.Xml.Serialization; | 34 | using System.Xml.Serialization; |
36 | using libsecondlife; | 35 | using libsecondlife; |
37 | |||
38 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Console; | 37 | using OpenSim.Framework.Console; |
40 | using OpenSim.Framework.Servers; | 38 | using OpenSim.Framework.Servers; |
41 | 39 | ||
42 | namespace OpenSim.Grid.InventoryServer | 40 | namespace OpenSim.Grid.InventoryServer |
43 | { | 41 | { |
44 | |||
45 | public class InventoryManager | 42 | public class InventoryManager |
46 | { | 43 | { |
47 | IInventoryData _databasePlugin; | 44 | private IInventoryData _databasePlugin; |
48 | 45 | ||
49 | /// <summary> | 46 | /// <summary> |
50 | /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded. | 47 | /// Adds a new inventory server plugin - user servers will be requested in the order they were loaded. |
@@ -55,7 +52,8 @@ namespace OpenSim.Grid.InventoryServer | |||
55 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, "Invenstorage: Attempting to load " + FileName); | 52 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, "Invenstorage: Attempting to load " + FileName); |
56 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); | 53 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); |
57 | 54 | ||
58 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces."); | 55 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, |
56 | "Invenstorage: Found " + pluginAssembly.GetTypes().Length + " interfaces."); | ||
59 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 57 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
60 | { | 58 | { |
61 | if (!pluginType.IsAbstract) | 59 | if (!pluginType.IsAbstract) |
@@ -64,10 +62,12 @@ namespace OpenSim.Grid.InventoryServer | |||
64 | 62 | ||
65 | if (typeInterface != null) | 63 | if (typeInterface != null) |
66 | { | 64 | { |
67 | IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 65 | IInventoryData plug = |
66 | (IInventoryData) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | ||
68 | plug.Initialise(); | 67 | plug.Initialise(); |
69 | _databasePlugin = plug; | 68 | _databasePlugin = plug; |
70 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, "Invenstorage: Added IInventoryData Interface"); | 69 | MainLog.Instance.Verbose(OpenInventory_Main.LogName, |
70 | "Invenstorage: Added IInventoryData Interface"); | ||
71 | break; | 71 | break; |
72 | } | 72 | } |
73 | 73 | ||
@@ -82,8 +82,8 @@ namespace OpenSim.Grid.InventoryServer | |||
82 | { | 82 | { |
83 | FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); | 83 | FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); |
84 | XmlReader reader = new XmlTextReader(fs); | 84 | XmlReader reader = new XmlTextReader(fs); |
85 | XmlSerializer x = new XmlSerializer(typeof(SerializableInventory)); | 85 | XmlSerializer x = new XmlSerializer(typeof (SerializableInventory)); |
86 | SerializableInventory inventory = (SerializableInventory)x.Deserialize(reader); | 86 | SerializableInventory inventory = (SerializableInventory) x.Deserialize(reader); |
87 | fs.Close(); | 87 | fs.Close(); |
88 | fs.Dispose(); | 88 | fs.Dispose(); |
89 | return inventory; | 89 | return inventory; |
@@ -93,11 +93,12 @@ namespace OpenSim.Grid.InventoryServer | |||
93 | { | 93 | { |
94 | XmlTextWriter writer = new XmlTextWriter(s, Encoding.UTF8); | 94 | XmlTextWriter writer = new XmlTextWriter(s, Encoding.UTF8); |
95 | writer.Formatting = Formatting.Indented; | 95 | writer.Formatting = Formatting.Indented; |
96 | XmlSerializer x = new XmlSerializer(typeof(SerializableInventory)); | 96 | XmlSerializer x = new XmlSerializer(typeof (SerializableInventory)); |
97 | x.Serialize(writer, inventory); | 97 | x.Serialize(writer, inventory); |
98 | } | 98 | } |
99 | 99 | ||
100 | protected static bool fixupFolder(SerializableInventory.SerializableFolder f, SerializableInventory.SerializableFolder parent) | 100 | protected static bool fixupFolder(SerializableInventory.SerializableFolder f, |
101 | SerializableInventory.SerializableFolder parent) | ||
101 | { | 102 | { |
102 | bool modified = false; | 103 | bool modified = false; |
103 | 104 | ||
@@ -142,6 +143,7 @@ namespace OpenSim.Grid.InventoryServer | |||
142 | { | 143 | { |
143 | private SerializableInventory _inventory; | 144 | private SerializableInventory _inventory; |
144 | private InventoryManager _manager; | 145 | private InventoryManager _manager; |
146 | |||
145 | public GetInventory(InventoryManager manager) | 147 | public GetInventory(InventoryManager manager) |
146 | : base("GET", "/inventory") | 148 | : base("GET", "/inventory") |
147 | { | 149 | { |
@@ -165,23 +167,24 @@ namespace OpenSim.Grid.InventoryServer | |||
165 | private byte[] GetUserInventory(LLUUID userID) | 167 | private byte[] GetUserInventory(LLUUID userID) |
166 | { | 168 | { |
167 | MainLog.Instance.Notice(OpenInventory_Main.LogName, "Getting Inventory for user {0}", userID.ToString()); | 169 | MainLog.Instance.Notice(OpenInventory_Main.LogName, "Getting Inventory for user {0}", userID.ToString()); |
168 | byte[] result = new byte[] { }; | 170 | byte[] result = new byte[] {}; |
169 | 171 | ||
170 | InventoryFolderBase fb = _manager._databasePlugin.getUserRootFolder(userID); | 172 | InventoryFolderBase fb = _manager._databasePlugin.getUserRootFolder(userID); |
171 | if (fb == null) | 173 | if (fb == null) |
172 | { | 174 | { |
173 | MainLog.Instance.Notice(OpenInventory_Main.LogName, "Inventory not found for user {0}, creating new", userID.ToString()); | 175 | MainLog.Instance.Notice(OpenInventory_Main.LogName, "Inventory not found for user {0}, creating new", |
176 | userID.ToString()); | ||
174 | CreateDefaultInventory(userID); | 177 | CreateDefaultInventory(userID); |
175 | } | 178 | } |
176 | 179 | ||
177 | return result; | 180 | return result; |
178 | } | 181 | } |
179 | 182 | ||
180 | override public byte[] Handle(string path, Stream request) | 183 | public override byte[] Handle(string path, Stream request) |
181 | { | 184 | { |
182 | byte[] result = new byte[] { }; | 185 | byte[] result = new byte[] {}; |
183 | 186 | ||
184 | string[] parms = path.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries); | 187 | string[] parms = path.Split(new char[] {'/'}, StringSplitOptions.RemoveEmptyEntries); |
185 | if (parms.Length > 1) | 188 | if (parms.Length > 1) |
186 | { | 189 | { |
187 | if (string.Compare(parms[1], "library", true) == 0) | 190 | if (string.Compare(parms[1], "library", true) == 0) |
@@ -190,7 +193,7 @@ namespace OpenSim.Grid.InventoryServer | |||
190 | saveInventoryToStream(_inventory, ms); | 193 | saveInventoryToStream(_inventory, ms); |
191 | 194 | ||
192 | result = ms.GetBuffer(); | 195 | result = ms.GetBuffer(); |
193 | Array.Resize<byte>(ref result, (int)ms.Length); | 196 | Array.Resize<byte>(ref result, (int) ms.Length); |
194 | } | 197 | } |
195 | else if (string.Compare(parms[1], "user", true) == 0) | 198 | else if (string.Compare(parms[1], "user", true) == 0) |
196 | { | 199 | { |
@@ -204,4 +207,4 @@ namespace OpenSim.Grid.InventoryServer | |||
204 | } | 207 | } |
205 | } | 208 | } |
206 | } | 209 | } |
207 | } | 210 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/InventoryServer/Main.cs b/OpenSim/Grid/InventoryServer/Main.cs index df854f9..ce371bf 100644 --- a/OpenSim/Grid/InventoryServer/Main.cs +++ b/OpenSim/Grid/InventoryServer/Main.cs | |||
@@ -25,29 +25,23 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | |||
28 | using System; | 29 | using System; |
29 | using System.Collections; | ||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Reflection; | ||
32 | using System.IO; | 31 | using System.IO; |
33 | using System.Text; | ||
34 | |||
35 | using libsecondlife; | 32 | using libsecondlife; |
36 | |||
37 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
38 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
39 | using OpenSim.Framework.Servers; | 35 | using OpenSim.Framework.Servers; |
40 | 36 | ||
41 | using InventoryManager = OpenSim.Grid.InventoryServer.InventoryManager; | ||
42 | |||
43 | namespace OpenSim.Grid.InventoryServer | 37 | namespace OpenSim.Grid.InventoryServer |
44 | { | 38 | { |
45 | public class OpenInventory_Main : conscmd_callback | 39 | public class OpenInventory_Main : conscmd_callback |
46 | { | 40 | { |
47 | LogBase m_console; | 41 | private LogBase m_console; |
48 | InventoryManager m_inventoryManager; | 42 | private InventoryManager m_inventoryManager; |
49 | InventoryConfig m_config; | 43 | private InventoryConfig m_config; |
50 | GridInventoryService m_inventoryService; | 44 | private GridInventoryService m_inventoryService; |
51 | 45 | ||
52 | public const string LogName = "INVENTORY"; | 46 | public const string LogName = "INVENTORY"; |
53 | 47 | ||
@@ -72,20 +66,20 @@ namespace OpenSim.Grid.InventoryServer | |||
72 | m_config = new InventoryConfig(LogName, (Path.Combine(Util.configDir(), "InventoryServer_Config.xml"))); | 66 | m_config = new InventoryConfig(LogName, (Path.Combine(Util.configDir(), "InventoryServer_Config.xml"))); |
73 | 67 | ||
74 | m_inventoryService = new GridInventoryService(); | 68 | m_inventoryService = new GridInventoryService(); |
75 | // m_inventoryManager = new InventoryManager(); | 69 | // m_inventoryManager = new InventoryManager(); |
76 | m_inventoryService.AddPlugin(m_config.DatabaseProvider); | 70 | m_inventoryService.AddPlugin(m_config.DatabaseProvider); |
77 | 71 | ||
78 | MainLog.Instance.Notice(LogName, "Starting HTTP server ..."); | 72 | MainLog.Instance.Notice(LogName, "Starting HTTP server ..."); |
79 | BaseHttpServer httpServer = new BaseHttpServer(m_config.HttpPort); | 73 | BaseHttpServer httpServer = new BaseHttpServer(m_config.HttpPort); |
80 | httpServer.AddStreamHandler( | 74 | httpServer.AddStreamHandler( |
81 | new RestDeserialisehandler<Guid, InventoryCollection>("POST", "/GetInventory/", | 75 | new RestDeserialisehandler<Guid, InventoryCollection>("POST", "/GetInventory/", |
82 | m_inventoryService.GetUserInventory)); | 76 | m_inventoryService.GetUserInventory)); |
83 | httpServer.AddStreamHandler( | 77 | httpServer.AddStreamHandler( |
84 | new RestDeserialisehandler<Guid, bool>("POST", "/CreateInventory/", | 78 | new RestDeserialisehandler<Guid, bool>("POST", "/CreateInventory/", |
85 | m_inventoryService.CreateUsersInventory)); | 79 | m_inventoryService.CreateUsersInventory)); |
86 | httpServer.AddStreamHandler( | 80 | httpServer.AddStreamHandler( |
87 | new RestDeserialisehandler<InventoryFolderBase, bool>("POST", "/NewFolder/", | 81 | new RestDeserialisehandler<InventoryFolderBase, bool>("POST", "/NewFolder/", |
88 | m_inventoryService.AddInventoryFolder)); | 82 | m_inventoryService.AddInventoryFolder)); |
89 | 83 | ||
90 | httpServer.AddStreamHandler( | 84 | httpServer.AddStreamHandler( |
91 | new RestDeserialisehandler<InventoryFolderBase, bool>("POST", "/MoveFolder/", | 85 | new RestDeserialisehandler<InventoryFolderBase, bool>("POST", "/MoveFolder/", |
@@ -93,16 +87,16 @@ namespace OpenSim.Grid.InventoryServer | |||
93 | 87 | ||
94 | httpServer.AddStreamHandler( | 88 | httpServer.AddStreamHandler( |
95 | new RestDeserialisehandler<InventoryItemBase, bool>("POST", "/NewItem/", | 89 | new RestDeserialisehandler<InventoryItemBase, bool>("POST", "/NewItem/", |
96 | m_inventoryService.AddInventoryItem)); | 90 | m_inventoryService.AddInventoryItem)); |
97 | httpServer.AddStreamHandler( | 91 | httpServer.AddStreamHandler( |
98 | new RestDeserialisehandler<InventoryItemBase, bool>("POST", "/DeleteItem/", | 92 | new RestDeserialisehandler<InventoryItemBase, bool>("POST", "/DeleteItem/", |
99 | m_inventoryService.DeleteInvItem)); | 93 | m_inventoryService.DeleteInvItem)); |
100 | 94 | ||
101 | httpServer.AddStreamHandler( | 95 | httpServer.AddStreamHandler( |
102 | new RestDeserialisehandler<Guid, List<InventoryFolderBase>>("POST", "/RootFolders/", | 96 | new RestDeserialisehandler<Guid, List<InventoryFolderBase>>("POST", "/RootFolders/", |
103 | m_inventoryService.RequestFirstLevelFolders)); | 97 | m_inventoryService.RequestFirstLevelFolders)); |
104 | 98 | ||
105 | // httpServer.AddStreamHandler(new InventoryManager.GetInventory(m_inventoryManager)); | 99 | // httpServer.AddStreamHandler(new InventoryManager.GetInventory(m_inventoryManager)); |
106 | 100 | ||
107 | httpServer.Start(); | 101 | httpServer.Start(); |
108 | MainLog.Instance.Notice(LogName, "Started HTTP server"); | 102 | MainLog.Instance.Notice(LogName, "Started HTTP server"); |
@@ -137,4 +131,4 @@ namespace OpenSim.Grid.InventoryServer | |||
137 | { | 131 | { |
138 | } | 132 | } |
139 | } | 133 | } |
140 | } | 134 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/Application.cs b/OpenSim/Grid/ScriptServer/Application.cs index dd1da66..5076618 100644 --- a/OpenSim/Grid/ScriptServer/Application.cs +++ b/OpenSim/Grid/ScriptServer/Application.cs | |||
@@ -52,4 +52,4 @@ namespace OpenSim.Grid.ScriptServer | |||
52 | Console.WriteLine(e.ExceptionObject.ToString()); | 52 | Console.WriteLine(e.ExceptionObject.ToString()); |
53 | } | 53 | } |
54 | } | 54 | } |
55 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs b/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs index 87198d1..7d29129 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/RegionCommManager.cs | |||
@@ -101,4 +101,4 @@ namespace OpenSim.Grid.ScriptServer | |||
101 | Regions.Add(new RegionConnectionManager(m_ScriptServerMain, m_log, null)); | 101 | Regions.Add(new RegionConnectionManager(m_ScriptServerMain, m_log, null)); |
102 | } | 102 | } |
103 | } | 103 | } |
104 | } | 104 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineInterface.cs b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineInterface.cs index fc6939c..518c198 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineInterface.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineInterface.cs | |||
@@ -35,4 +35,4 @@ namespace OpenSim.Grid.ScriptServer | |||
35 | void Shutdown(); | 35 | void Shutdown(); |
36 | // void StartScript(string ScriptID, IScriptHost ObjectID); | 36 | // void StartScript(string ScriptID, IScriptHost ObjectID); |
37 | } | 37 | } |
38 | } | 38 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineLoader.cs b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineLoader.cs index d02955e..7f39931 100644 --- a/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineLoader.cs +++ b/OpenSim/Grid/ScriptServer/ScriptServer/ScriptEngineManager/ScriptEngineLoader.cs | |||
@@ -121,4 +121,4 @@ namespace OpenSim.Grid.ScriptServer | |||
121 | return ret; | 121 | return ret; |
122 | } | 122 | } |
123 | } | 123 | } |
124 | } | 124 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/Main.cs b/OpenSim/Grid/UserServer/Main.cs index 4806e52..6e3ccb7 100644 --- a/OpenSim/Grid/UserServer/Main.cs +++ b/OpenSim/Grid/UserServer/Main.cs | |||
@@ -129,7 +129,8 @@ namespace OpenSim.Grid.UserServer | |||
129 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); | 129 | tempMD5Passwd = Util.Md5Hash(Util.Md5Hash(tempMD5Passwd) + ":" + ""); |
130 | 130 | ||
131 | LLUUID userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); | 131 | LLUUID userID = m_userManager.AddUserProfile(tempfirstname, templastname, tempMD5Passwd, regX, regY); |
132 | RestObjectPoster.BeginPostObject<Guid>(m_userManager._config.InventoryUrl + "CreateInventory/", userID.UUID); | 132 | RestObjectPoster.BeginPostObject<Guid>(m_userManager._config.InventoryUrl + "CreateInventory/", |
133 | userID.UUID); | ||
133 | m_lastCreatedUser = userID; | 134 | m_lastCreatedUser = userID; |
134 | break; | 135 | break; |
135 | } | 136 | } |
@@ -154,17 +155,23 @@ namespace OpenSim.Grid.UserServer | |||
154 | break; | 155 | break; |
155 | 156 | ||
156 | case "test-inventory": | 157 | case "test-inventory": |
157 | // RestObjectPosterResponse<List<InventoryFolderBase>> requester = new RestObjectPosterResponse<List<InventoryFolderBase>>(); | 158 | // RestObjectPosterResponse<List<InventoryFolderBase>> requester = new RestObjectPosterResponse<List<InventoryFolderBase>>(); |
158 | // requester.ReturnResponseVal = TestResponse; | 159 | // requester.ReturnResponseVal = TestResponse; |
159 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); | 160 | // requester.BeginPostObject<LLUUID>(m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); |
160 | List<InventoryFolderBase> folders = SynchronousRestObjectPoster.BeginPostObject< LLUUID, List<InventoryFolderBase>>("POST",m_userManager._config.InventoryUrl + "RootFolders/", m_lastCreatedUser); | 161 | List<InventoryFolderBase> folders = |
162 | SynchronousRestObjectPoster.BeginPostObject<LLUUID, List<InventoryFolderBase>>("POST", | ||
163 | m_userManager. | ||
164 | _config. | ||
165 | InventoryUrl + | ||
166 | "RootFolders/", | ||
167 | m_lastCreatedUser); | ||
161 | break; | 168 | break; |
162 | } | 169 | } |
163 | } | 170 | } |
164 | 171 | ||
165 | public void TestResponse(List<InventoryFolderBase> resp) | 172 | public void TestResponse(List<InventoryFolderBase> resp) |
166 | { | 173 | { |
167 | System.Console.WriteLine("response got"); | 174 | Console.WriteLine("response got"); |
168 | } | 175 | } |
169 | 176 | ||
170 | /*private void ConfigDB(IGenericConfig configData) | 177 | /*private void ConfigDB(IGenericConfig configData) |
@@ -194,4 +201,4 @@ namespace OpenSim.Grid.UserServer | |||
194 | { | 201 | { |
195 | } | 202 | } |
196 | } | 203 | } |
197 | } | 204 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/UserLoginService.cs b/OpenSim/Grid/UserServer/UserLoginService.cs index 9b9360d..0eb2db1 100644 --- a/OpenSim/Grid/UserServer/UserLoginService.cs +++ b/OpenSim/Grid/UserServer/UserLoginService.cs | |||
@@ -29,16 +29,15 @@ | |||
29 | using System; | 29 | using System; |
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using System.Net; | ||
33 | using System.Threading; | 32 | using System.Threading; |
34 | using Nwc.XmlRpc; | ||
35 | using libsecondlife; | 33 | using libsecondlife; |
34 | using Nwc.XmlRpc; | ||
36 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
37 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
38 | using OpenSim.Framework.Servers; | ||
39 | using OpenSim.Framework.Data; | 37 | using OpenSim.Framework.Data; |
38 | using OpenSim.Framework.Servers; | ||
40 | using OpenSim.Framework.UserManagement; | 39 | using OpenSim.Framework.UserManagement; |
41 | using InventoryFolder = OpenSim.Framework.InventoryFolder; | 40 | using InventoryFolder=OpenSim.Framework.InventoryFolder; |
42 | 41 | ||
43 | namespace OpenSim.Grid.UserServer | 42 | namespace OpenSim.Grid.UserServer |
44 | { | 43 | { |
@@ -72,8 +71,8 @@ namespace OpenSim.Grid.UserServer | |||
72 | // Customise the response | 71 | // Customise the response |
73 | //CFK: This is redundant and the next message should always appear. | 72 | //CFK: This is redundant and the next message should always appear. |
74 | //CFK: MainLog.Instance.Verbose("LOGIN", "Home Location"); | 73 | //CFK: MainLog.Instance.Verbose("LOGIN", "Home Location"); |
75 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + | 74 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX*256).ToString() + ",r" + |
76 | (SimInfo.regionLocY * 256).ToString() + "], " + | 75 | (SimInfo.regionLocY*256).ToString() + "], " + |
77 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + | 76 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + |
78 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " + | 77 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " + |
79 | "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + | 78 | "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + |
@@ -106,7 +105,7 @@ namespace OpenSim.Grid.UserServer | |||
106 | SimParams["firstname"] = theUser.username; | 105 | SimParams["firstname"] = theUser.username; |
107 | SimParams["lastname"] = theUser.surname; | 106 | SimParams["lastname"] = theUser.surname; |
108 | SimParams["agent_id"] = theUser.UUID.ToString(); | 107 | SimParams["agent_id"] = theUser.UUID.ToString(); |
109 | SimParams["circuit_code"] = (Int32)Convert.ToUInt32(response.CircuitCode); | 108 | SimParams["circuit_code"] = (Int32) Convert.ToUInt32(response.CircuitCode); |
110 | SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString(); | 109 | SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString(); |
111 | SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString(); | 110 | SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString(); |
112 | SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString(); | 111 | SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString(); |
@@ -119,9 +118,9 @@ namespace OpenSim.Grid.UserServer | |||
119 | theUser.currentAgent.currentRegion = SimInfo.UUID; | 118 | theUser.currentAgent.currentRegion = SimInfo.UUID; |
120 | theUser.currentAgent.currentHandle = SimInfo.regionHandle; | 119 | theUser.currentAgent.currentHandle = SimInfo.regionHandle; |
121 | 120 | ||
122 | MainLog.Instance.Verbose("LOGIN", SimInfo.regionName + " @ " + SimInfo.httpServerURI + " " + | 121 | MainLog.Instance.Verbose("LOGIN", SimInfo.regionName + " @ " + SimInfo.httpServerURI + " " + |
123 | SimInfo.regionLocX + "," + SimInfo.regionLocY); | 122 | SimInfo.regionLocX + "," + SimInfo.regionLocY); |
124 | 123 | ||
125 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); | 124 | XmlRpcRequest GridReq = new XmlRpcRequest("expect_user", SendParams); |
126 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000); | 125 | XmlRpcResponse GridResp = GridReq.Send(SimInfo.httpServerURI, 6000); |
127 | } | 126 | } |
@@ -129,17 +128,17 @@ namespace OpenSim.Grid.UserServer | |||
129 | { | 128 | { |
130 | tryDefault = true; | 129 | tryDefault = true; |
131 | } | 130 | } |
132 | if(tryDefault) | 131 | if (tryDefault) |
133 | { | 132 | { |
134 | // Send him to default region instead | 133 | // Send him to default region instead |
135 | // Load information from the gridserver | 134 | // Load information from the gridserver |
136 | 135 | ||
137 | ulong defaultHandle = (((ulong)m_config.DefaultX * 256) << 32) | ((ulong) m_config.DefaultY * 256); | 136 | ulong defaultHandle = (((ulong) m_config.DefaultX*256) << 32) | ((ulong) m_config.DefaultY*256); |
138 | 137 | ||
139 | MainLog.Instance.Warn( | 138 | MainLog.Instance.Warn( |
140 | "LOGIN", | 139 | "LOGIN", |
141 | "Home region not available: sending to default " + defaultHandle.ToString()); | 140 | "Home region not available: sending to default " + defaultHandle.ToString()); |
142 | 141 | ||
143 | SimInfo = new RegionProfileData(); | 142 | SimInfo = new RegionProfileData(); |
144 | try | 143 | try |
145 | { | 144 | { |
@@ -149,15 +148,16 @@ namespace OpenSim.Grid.UserServer | |||
149 | 148 | ||
150 | // Customise the response | 149 | // Customise the response |
151 | MainLog.Instance.Verbose("LOGIN", "Home Location"); | 150 | MainLog.Instance.Verbose("LOGIN", "Home Location"); |
152 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX * 256).ToString() + ",r" + | 151 | response.Home = "{'region_handle':[r" + (SimInfo.regionLocX*256).ToString() + ",r" + |
153 | (SimInfo.regionLocY * 256).ToString() + "], " + | 152 | (SimInfo.regionLocY*256).ToString() + "], " + |
154 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + | 153 | "'position':[r" + theUser.homeLocation.X.ToString() + ",r" + |
155 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " + | 154 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "], " + |
156 | "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + | 155 | "'look_at':[r" + theUser.homeLocation.X.ToString() + ",r" + |
157 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "]}"; | 156 | theUser.homeLocation.Y.ToString() + ",r" + theUser.homeLocation.Z.ToString() + "]}"; |
158 | 157 | ||
159 | // Destination | 158 | // Destination |
160 | MainLog.Instance.Verbose("LOGIN", "CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + | 159 | MainLog.Instance.Verbose("LOGIN", |
160 | "CUSTOMISERESPONSE: Region X: " + SimInfo.regionLocX + "; Region Y: " + | ||
161 | SimInfo.regionLocY); | 161 | SimInfo.regionLocY); |
162 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverIP).ToString(); | 162 | response.SimAddress = Util.GetHostFromDNS(SimInfo.serverIP).ToString(); |
163 | response.SimPort = (uint) SimInfo.serverPort; | 163 | response.SimPort = (uint) SimInfo.serverPort; |
@@ -182,7 +182,7 @@ namespace OpenSim.Grid.UserServer | |||
182 | SimParams["firstname"] = theUser.username; | 182 | SimParams["firstname"] = theUser.username; |
183 | SimParams["lastname"] = theUser.surname; | 183 | SimParams["lastname"] = theUser.surname; |
184 | SimParams["agent_id"] = theUser.UUID.ToString(); | 184 | SimParams["agent_id"] = theUser.UUID.ToString(); |
185 | SimParams["circuit_code"] = (Int32)Convert.ToUInt32(response.CircuitCode); | 185 | SimParams["circuit_code"] = (Int32) Convert.ToUInt32(response.CircuitCode); |
186 | SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString(); | 186 | SimParams["startpos_x"] = theUser.currentAgent.currentPos.X.ToString(); |
187 | SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString(); | 187 | SimParams["startpos_y"] = theUser.currentAgent.currentPos.Y.ToString(); |
188 | SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString(); | 188 | SimParams["startpos_z"] = theUser.currentAgent.currentPos.Z.ToString(); |
@@ -202,35 +202,34 @@ namespace OpenSim.Grid.UserServer | |||
202 | MainLog.Instance.Warn("LOGIN", "Default region also not available"); | 202 | MainLog.Instance.Warn("LOGIN", "Default region also not available"); |
203 | MainLog.Instance.Warn("LOGIN", e.ToString()); | 203 | MainLog.Instance.Warn("LOGIN", e.ToString()); |
204 | } | 204 | } |
205 | |||
206 | } | 205 | } |
207 | } | 206 | } |
208 | 207 | ||
209 | protected override InventoryData CreateInventoryData(LLUUID userID) | 208 | protected override InventoryData CreateInventoryData(LLUUID userID) |
210 | { | 209 | { |
211 | List<InventoryFolderBase> folders | 210 | List<InventoryFolderBase> folders |
212 | = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( | 211 | = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( |
213 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); | 212 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); |
214 | 213 | ||
215 | // In theory, the user will only ever be missing a root folder in situations where a grid | 214 | // In theory, the user will only ever be missing a root folder in situations where a grid |
216 | // which didn't previously run a grid wide inventory server is being transitioned to one | 215 | // which didn't previously run a grid wide inventory server is being transitioned to one |
217 | // which does. | 216 | // which does. |
218 | if (null == folders | folders.Count == 0) | 217 | if (null == folders | folders.Count == 0) |
219 | { | 218 | { |
220 | MainLog.Instance.Warn( | 219 | MainLog.Instance.Warn( |
221 | "LOGIN", | 220 | "LOGIN", |
222 | "A root inventory folder for user ID " + userID + " was not found. A new set" | 221 | "A root inventory folder for user ID " + userID + " was not found. A new set" |
223 | + " of empty inventory folders is being created."); | 222 | + " of empty inventory folders is being created."); |
224 | 223 | ||
225 | RestObjectPoster.BeginPostObject<Guid>( | 224 | RestObjectPoster.BeginPostObject<Guid>( |
226 | m_config.InventoryUrl + "CreateInventory/", userID.UUID); | 225 | m_config.InventoryUrl + "CreateInventory/", userID.UUID); |
227 | 226 | ||
228 | // A big delay should be okay here since the recreation of the user's root folders should | 227 | // A big delay should be okay here since the recreation of the user's root folders should |
229 | // only ever happen once. We need to sleep to let the inventory server do its work - | 228 | // only ever happen once. We need to sleep to let the inventory server do its work - |
230 | // previously 1000ms has been found to be too short. | 229 | // previously 1000ms has been found to be too short. |
231 | Thread.Sleep(10000); | 230 | Thread.Sleep(10000); |
232 | folders = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( | 231 | folders = SynchronousRestObjectPoster.BeginPostObject<Guid, List<InventoryFolderBase>>( |
233 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); | 232 | "POST", m_config.InventoryUrl + "RootFolders/", userID.UUID); |
234 | } | 233 | } |
235 | 234 | ||
236 | if (folders.Count > 0) | 235 | if (folders.Count > 0) |
@@ -247,8 +246,8 @@ namespace OpenSim.Grid.UserServer | |||
247 | TempHash = new Hashtable(); | 246 | TempHash = new Hashtable(); |
248 | TempHash["name"] = InvFolder.name; | 247 | TempHash["name"] = InvFolder.name; |
249 | TempHash["parent_id"] = InvFolder.parentID.ToString(); | 248 | TempHash["parent_id"] = InvFolder.parentID.ToString(); |
250 | TempHash["version"] = (Int32)InvFolder.version; | 249 | TempHash["version"] = (Int32) InvFolder.version; |
251 | TempHash["type_default"] = (Int32)InvFolder.type; | 250 | TempHash["type_default"] = (Int32) InvFolder.type; |
252 | TempHash["folder_id"] = InvFolder.folderID.ToString(); | 251 | TempHash["folder_id"] = InvFolder.folderID.ToString(); |
253 | AgentInventoryArray.Add(TempHash); | 252 | AgentInventoryArray.Add(TempHash); |
254 | } | 253 | } |
@@ -257,8 +256,8 @@ namespace OpenSim.Grid.UserServer | |||
257 | else | 256 | else |
258 | { | 257 | { |
259 | MainLog.Instance.Warn("LOGIN", "The root inventory folder could still not be retrieved" + | 258 | MainLog.Instance.Warn("LOGIN", "The root inventory folder could still not be retrieved" + |
260 | " for user ID " + userID); | 259 | " for user ID " + userID); |
261 | 260 | ||
262 | AgentInventory userInventory = new AgentInventory(); | 261 | AgentInventory userInventory = new AgentInventory(); |
263 | userInventory.CreateRootFolder(userID, false); | 262 | userInventory.CreateRootFolder(userID, false); |
264 | 263 | ||
@@ -269,8 +268,8 @@ namespace OpenSim.Grid.UserServer | |||
269 | TempHash = new Hashtable(); | 268 | TempHash = new Hashtable(); |
270 | TempHash["name"] = InvFolder.FolderName; | 269 | TempHash["name"] = InvFolder.FolderName; |
271 | TempHash["parent_id"] = InvFolder.ParentID.ToString(); | 270 | TempHash["parent_id"] = InvFolder.ParentID.ToString(); |
272 | TempHash["version"] = (Int32)InvFolder.Version; | 271 | TempHash["version"] = (Int32) InvFolder.Version; |
273 | TempHash["type_default"] = (Int32)InvFolder.DefaultType; | 272 | TempHash["type_default"] = (Int32) InvFolder.DefaultType; |
274 | TempHash["folder_id"] = InvFolder.FolderID.ToString(); | 273 | TempHash["folder_id"] = InvFolder.FolderID.ToString(); |
275 | AgentInventoryArray.Add(TempHash); | 274 | AgentInventoryArray.Add(TempHash); |
276 | } | 275 | } |
@@ -279,4 +278,4 @@ namespace OpenSim.Grid.UserServer | |||
279 | } | 278 | } |
280 | } | 279 | } |
281 | } | 280 | } |
282 | } | 281 | } \ No newline at end of file |
diff --git a/OpenSim/Grid/UserServer/UserManager.cs b/OpenSim/Grid/UserServer/UserManager.cs index be9e6f1..a50419e 100644 --- a/OpenSim/Grid/UserServer/UserManager.cs +++ b/OpenSim/Grid/UserServer/UserManager.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | using System; | 28 | using System; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text.RegularExpressions; | ||
31 | using libsecondlife; | 32 | using libsecondlife; |
32 | using Nwc.XmlRpc; | 33 | using Nwc.XmlRpc; |
33 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
@@ -76,8 +77,8 @@ namespace OpenSim.Grid.UserServer | |||
76 | XmlRpcResponse response = new XmlRpcResponse(); | 77 | XmlRpcResponse response = new XmlRpcResponse(); |
77 | Hashtable responseData = new Hashtable(); | 78 | Hashtable responseData = new Hashtable(); |
78 | // Query Result Information | 79 | // Query Result Information |
79 | responseData["queryid"] = (string)queryID.ToString(); | 80 | responseData["queryid"] = (string) queryID.ToString(); |
80 | responseData["avcount"] = (string)returnUsers.Count.ToString(); | 81 | responseData["avcount"] = (string) returnUsers.Count.ToString(); |
81 | 82 | ||
82 | for (int i = 0; i < returnUsers.Count; i++) | 83 | for (int i = 0; i < returnUsers.Count; i++) |
83 | { | 84 | { |
@@ -86,9 +87,10 @@ namespace OpenSim.Grid.UserServer | |||
86 | responseData["lastname" + i.ToString()] = returnUsers[i].lastName; | 87 | responseData["lastname" + i.ToString()] = returnUsers[i].lastName; |
87 | } | 88 | } |
88 | response.Value = responseData; | 89 | response.Value = responseData; |
89 | 90 | ||
90 | return response; | 91 | return response; |
91 | } | 92 | } |
93 | |||
92 | /// <summary> | 94 | /// <summary> |
93 | /// Converts a user profile to an XML element which can be returned | 95 | /// Converts a user profile to an XML element which can be returned |
94 | /// </summary> | 96 | /// </summary> |
@@ -135,18 +137,18 @@ namespace OpenSim.Grid.UserServer | |||
135 | public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request) | 137 | public XmlRpcResponse XmlRPCGetAvatarPickerAvatar(XmlRpcRequest request) |
136 | { | 138 | { |
137 | XmlRpcResponse response = new XmlRpcResponse(); | 139 | XmlRpcResponse response = new XmlRpcResponse(); |
138 | Hashtable requestData = (Hashtable)request.Params[0]; | 140 | Hashtable requestData = (Hashtable) request.Params[0]; |
139 | List<AvatarPickerAvatar> returnAvatar = new List<AvatarPickerAvatar>(); | 141 | List<AvatarPickerAvatar> returnAvatar = new List<AvatarPickerAvatar>(); |
140 | LLUUID queryID = new LLUUID(LLUUID.Zero.ToString()); | 142 | LLUUID queryID = new LLUUID(LLUUID.Zero.ToString()); |
141 | 143 | ||
142 | if (requestData.Contains("avquery") && requestData.Contains("queryid")) | 144 | if (requestData.Contains("avquery") && requestData.Contains("queryid")) |
143 | { | 145 | { |
144 | queryID = new LLUUID((string)requestData["queryid"]); | 146 | queryID = new LLUUID((string) requestData["queryid"]); |
145 | returnAvatar = GenerateAgentPickerRequestResponse(queryID,(string)requestData["avquery"]); | 147 | returnAvatar = GenerateAgentPickerRequestResponse(queryID, (string) requestData["avquery"]); |
146 | } | 148 | } |
147 | 149 | ||
148 | Console.WriteLine("[AVATARINFO]: Servicing Avatar Query: " + (string)requestData["avquery"]); | 150 | Console.WriteLine("[AVATARINFO]: Servicing Avatar Query: " + (string) requestData["avquery"]); |
149 | return AvatarPickerListtoXmlRPCResponse(queryID,returnAvatar); | 151 | return AvatarPickerListtoXmlRPCResponse(queryID, returnAvatar); |
150 | } | 152 | } |
151 | 153 | ||
152 | public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request) | 154 | public XmlRpcResponse XmlRPCGetUserMethodName(XmlRpcRequest request) |
@@ -156,16 +158,16 @@ namespace OpenSim.Grid.UserServer | |||
156 | UserProfileData userProfile; | 158 | UserProfileData userProfile; |
157 | if (requestData.Contains("avatar_name")) | 159 | if (requestData.Contains("avatar_name")) |
158 | { | 160 | { |
159 | string query = (string)requestData["avatar_name"]; | 161 | string query = (string) requestData["avatar_name"]; |
160 | 162 | ||
161 | System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9]"); | 163 | Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9]"); |
162 | 164 | ||
163 | string[] querysplit; | 165 | string[] querysplit; |
164 | querysplit = query.Split(' '); | 166 | querysplit = query.Split(' '); |
165 | 167 | ||
166 | if (querysplit.Length == 2) | 168 | if (querysplit.Length == 2) |
167 | { | 169 | { |
168 | userProfile = GetUserProfile(querysplit[0],querysplit[1]); | 170 | userProfile = GetUserProfile(querysplit[0], querysplit[1]); |
169 | if (userProfile == null) | 171 | if (userProfile == null) |
170 | { | 172 | { |
171 | return CreateUnknownUserErrorResponse(); | 173 | return CreateUnknownUserErrorResponse(); |
@@ -196,11 +198,11 @@ namespace OpenSim.Grid.UserServer | |||
196 | LLUUID guess = new LLUUID(); | 198 | LLUUID guess = new LLUUID(); |
197 | try | 199 | try |
198 | { | 200 | { |
199 | guess = new LLUUID((string)requestData["avatar_uuid"]); | 201 | guess = new LLUUID((string) requestData["avatar_uuid"]); |
200 | 202 | ||
201 | userProfile = GetUserProfile(guess); | 203 | userProfile = GetUserProfile(guess); |
202 | } | 204 | } |
203 | catch (System.FormatException) | 205 | catch (FormatException) |
204 | { | 206 | { |
205 | return CreateUnknownUserErrorResponse(); | 207 | return CreateUnknownUserErrorResponse(); |
206 | } | 208 | } |
@@ -231,9 +233,9 @@ namespace OpenSim.Grid.UserServer | |||
231 | throw new Exception("The method or operation is not implemented."); | 233 | throw new Exception("The method or operation is not implemented."); |
232 | } | 234 | } |
233 | 235 | ||
234 | public override UserProfileData SetupMasterUser(libsecondlife.LLUUID uuid) | 236 | public override UserProfileData SetupMasterUser(LLUUID uuid) |
235 | { | 237 | { |
236 | throw new Exception("The method or operation is not implemented."); | 238 | throw new Exception("The method or operation is not implemented."); |
237 | } | 239 | } |
238 | } | 240 | } |
239 | } | 241 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Application/Application.cs b/OpenSim/Region/Application/Application.cs index 130199d..cb3bd40 100644 --- a/OpenSim/Region/Application/Application.cs +++ b/OpenSim/Region/Application/Application.cs | |||
@@ -77,4 +77,4 @@ namespace OpenSim | |||
77 | } | 77 | } |
78 | } | 78 | } |
79 | } | 79 | } |
80 | } | 80 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Application/IApplicationPlugin.cs b/OpenSim/Region/Application/IApplicationPlugin.cs index 17c81e1..4f81354 100644 --- a/OpenSim/Region/Application/IApplicationPlugin.cs +++ b/OpenSim/Region/Application/IApplicationPlugin.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -26,13 +26,10 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using Mono.Addins; | 29 | using Mono.Addins; |
33 | using Mono.Addins.Description; | ||
34 | 30 | ||
35 | [assembly: AddinRoot("OpenSim", "0.4")] | 31 | [assembly : AddinRoot("OpenSim", "0.4")] |
32 | |||
36 | namespace OpenSim | 33 | namespace OpenSim |
37 | { | 34 | { |
38 | [TypeExtensionPoint("/OpenSim/Startup")] | 35 | [TypeExtensionPoint("/OpenSim/Startup")] |
@@ -41,4 +38,4 @@ namespace OpenSim | |||
41 | void Initialise(OpenSimMain openSim); | 38 | void Initialise(OpenSimMain openSim); |
42 | void Close(); | 39 | void Close(); |
43 | } | 40 | } |
44 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index b3daf0c..fa2a989 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs | |||
@@ -30,6 +30,10 @@ using System; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.IO; | 31 | using System.IO; |
32 | using System.Text; | 32 | using System.Text; |
33 | using System.Threading; | ||
34 | using System.Timers; | ||
35 | using libsecondlife; | ||
36 | using Mono.Addins; | ||
33 | using Nini.Config; | 37 | using Nini.Config; |
34 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Communications.Cache; | 39 | using OpenSim.Framework.Communications.Cache; |
@@ -42,9 +46,7 @@ using OpenSim.Region.Environment; | |||
42 | using OpenSim.Region.Environment.Interfaces; | 46 | using OpenSim.Region.Environment.Interfaces; |
43 | using OpenSim.Region.Environment.Scenes; | 47 | using OpenSim.Region.Environment.Scenes; |
44 | using OpenSim.Region.Physics.Manager; | 48 | using OpenSim.Region.Physics.Manager; |
45 | using libsecondlife; | 49 | using Timer=System.Timers.Timer; |
46 | using Mono.Addins; | ||
47 | using Mono.Addins.Description; | ||
48 | 50 | ||
49 | namespace OpenSim | 51 | namespace OpenSim |
50 | { | 52 | { |
@@ -86,7 +88,7 @@ namespace OpenSim | |||
86 | private string m_assetStorage = "sqlite"; | 88 | private string m_assetStorage = "sqlite"; |
87 | 89 | ||
88 | private string m_timedScript = "disabled"; | 90 | private string m_timedScript = "disabled"; |
89 | private System.Timers.Timer m_scriptTimer; | 91 | private Timer m_scriptTimer; |
90 | 92 | ||
91 | public ConsoleCommand CreateAccount = null; | 93 | public ConsoleCommand CreateAccount = null; |
92 | private bool m_dumpAssetsToFile; | 94 | private bool m_dumpAssetsToFile; |
@@ -238,7 +240,7 @@ namespace OpenSim | |||
238 | m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); | 240 | m_permissions = startupConfig.GetBoolean("serverside_object_permissions", false); |
239 | 241 | ||
240 | m_storageDll = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.MonoSqlite.dll"); | 242 | m_storageDll = startupConfig.GetString("storage_plugin", "OpenSim.DataStore.MonoSqlite.dll"); |
241 | m_storageConnectionString | 243 | m_storageConnectionString |
242 | = startupConfig.GetString("storage_connection_string", "URI=file:OpenSim.db,version=3"); | 244 | = startupConfig.GetString("storage_connection_string", "URI=file:OpenSim.db,version=3"); |
243 | 245 | ||
244 | m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", ""); | 246 | m_startupCommandsFile = startupConfig.GetString("startup_console_commands_file", ""); |
@@ -268,7 +270,7 @@ namespace OpenSim | |||
268 | if (!m_sandbox) | 270 | if (!m_sandbox) |
269 | m_SendChildAgentTaskData = false; | 271 | m_SendChildAgentTaskData = false; |
270 | 272 | ||
271 | 273 | ||
272 | m_networkServersInfo.loadFromConfiguration(m_config); | 274 | m_networkServersInfo.loadFromConfiguration(m_config); |
273 | } | 275 | } |
274 | 276 | ||
@@ -327,16 +329,16 @@ namespace OpenSim | |||
327 | MainLog.Instance.Verbose("Plugins", "Loading OpenSim application plugins"); | 329 | MainLog.Instance.Verbose("Plugins", "Loading OpenSim application plugins"); |
328 | foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/OpenSim/Startup")) | 330 | foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes("/OpenSim/Startup")) |
329 | { | 331 | { |
330 | IApplicationPlugin plugin = (IApplicationPlugin)node.CreateInstance(); | 332 | IApplicationPlugin plugin = (IApplicationPlugin) node.CreateInstance(); |
331 | plugin.Initialise(this); | 333 | plugin.Initialise(this); |
332 | m_plugins.Add(plugin); | 334 | m_plugins.Add(plugin); |
333 | } | 335 | } |
334 | 336 | ||
335 | // Start UDP servers | 337 | // Start UDP servers |
336 | //for (int i = 0; i < m_udpServers.Count; i++) | 338 | //for (int i = 0; i < m_udpServers.Count; i++) |
337 | //{ | 339 | //{ |
338 | // m_udpServers[i].ServerListener(); | 340 | // m_udpServers[i].ServerListener(); |
339 | // } | 341 | // } |
340 | 342 | ||
341 | //Run Startup Commands | 343 | //Run Startup Commands |
342 | if (m_startupCommandsFile != "") | 344 | if (m_startupCommandsFile != "") |
@@ -353,10 +355,10 @@ namespace OpenSim | |||
353 | 355 | ||
354 | if (m_timedScript != "disabled") | 356 | if (m_timedScript != "disabled") |
355 | { | 357 | { |
356 | m_scriptTimer = new System.Timers.Timer(); | 358 | m_scriptTimer = new Timer(); |
357 | m_scriptTimer.Enabled = true; | 359 | m_scriptTimer.Enabled = true; |
358 | m_scriptTimer.Interval = (int)(1200 * 1000); | 360 | m_scriptTimer.Interval = (int) (1200*1000); |
359 | m_scriptTimer.Elapsed += new System.Timers.ElapsedEventHandler(RunAutoTimerScript); | 361 | m_scriptTimer.Elapsed += new ElapsedEventHandler(RunAutoTimerScript); |
360 | } | 362 | } |
361 | } | 363 | } |
362 | 364 | ||
@@ -402,11 +404,13 @@ namespace OpenSim | |||
402 | SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); | 404 | SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); |
403 | if (m_SendChildAgentTaskData) | 405 | if (m_SendChildAgentTaskData) |
404 | { | 406 | { |
405 | MainLog.Instance.Error("WARNING", "Send Child Agent Task Updates is enabled. This is for testing only. It doesn't work on grid mode!"); | 407 | MainLog.Instance.Error("WARNING", |
406 | System.Threading.Thread.Sleep(12000); | 408 | "Send Child Agent Task Updates is enabled. This is for testing only. It doesn't work on grid mode!"); |
409 | Thread.Sleep(12000); | ||
407 | } | 410 | } |
408 | return | 411 | return |
409 | new Scene(regionInfo, circuitManager, permissionManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer, | 412 | new Scene(regionInfo, circuitManager, permissionManager, m_commsManager, sceneGridService, m_assetCache, |
413 | storageManager, m_httpServer, | ||
410 | m_moduleLoader, m_dumpAssetsToFile, m_physicalPrim, m_SendChildAgentTaskData); | 414 | m_moduleLoader, m_dumpAssetsToFile, m_physicalPrim, m_SendChildAgentTaskData); |
411 | } | 415 | } |
412 | 416 | ||
@@ -440,16 +444,15 @@ namespace OpenSim | |||
440 | m_assetCache = new AssetCache(assetServer, m_log); | 444 | m_assetCache = new AssetCache(assetServer, m_log); |
441 | // m_assetCache = new assetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); | 445 | // m_assetCache = new assetCache("OpenSim.Region.GridInterfaces.Local.dll", m_networkServersInfo.AssetURL, m_networkServersInfo.AssetSendKey); |
442 | m_sceneManager.OnRestartSim += handleRestartRegion; | 446 | m_sceneManager.OnRestartSim += handleRestartRegion; |
443 | |||
444 | } | 447 | } |
445 | 448 | ||
446 | public void handleRestartRegion(RegionInfo whichRegion) | 449 | public void handleRestartRegion(RegionInfo whichRegion) |
447 | { | 450 | { |
448 | MainLog.Instance.Error("MAIN", "Got restart signal from SceneManager"); | 451 | MainLog.Instance.Error("MAIN", "Got restart signal from SceneManager"); |
449 | // Shutting down the UDP server | 452 | // Shutting down the UDP server |
450 | bool foundUDPServer = false; | 453 | bool foundUDPServer = false; |
451 | int UDPServerElement = 0; | 454 | int UDPServerElement = 0; |
452 | 455 | ||
453 | for (int i = 0; i < m_udpServers.Count; i++) | 456 | for (int i = 0; i < m_udpServers.Count; i++) |
454 | { | 457 | { |
455 | if (m_udpServers[i].RegionHandle == whichRegion.RegionHandle) | 458 | if (m_udpServers[i].RegionHandle == whichRegion.RegionHandle) |
@@ -459,9 +462,9 @@ namespace OpenSim | |||
459 | break; | 462 | break; |
460 | } | 463 | } |
461 | } | 464 | } |
462 | if (foundUDPServer) | 465 | if (foundUDPServer) |
463 | { | 466 | { |
464 | // m_udpServers[UDPServerElement].Server.End | 467 | // m_udpServers[UDPServerElement].Server.End |
465 | m_udpServers[UDPServerElement].Server.Close(); | 468 | m_udpServers[UDPServerElement].Server.Close(); |
466 | m_udpServers.RemoveAt(UDPServerElement); | 469 | m_udpServers.RemoveAt(UDPServerElement); |
467 | } | 470 | } |
@@ -479,7 +482,7 @@ namespace OpenSim | |||
479 | { | 482 | { |
480 | m_regionData.RemoveAt(RegionHandleElement); | 483 | m_regionData.RemoveAt(RegionHandleElement); |
481 | } | 484 | } |
482 | 485 | ||
483 | CreateRegion(whichRegion); | 486 | CreateRegion(whichRegion); |
484 | //UDPServer restartingRegion = CreateRegion(whichRegion); | 487 | //UDPServer restartingRegion = CreateRegion(whichRegion); |
485 | //restartingRegion.ServerListener(); | 488 | //restartingRegion.ServerListener(); |
@@ -537,7 +540,7 @@ namespace OpenSim | |||
537 | { | 540 | { |
538 | RunCommandScript(m_shutdownCommandsFile); | 541 | RunCommandScript(m_shutdownCommandsFile); |
539 | } | 542 | } |
540 | 543 | ||
541 | m_log.Verbose("SHUTDOWN", "Closing all threads"); | 544 | m_log.Verbose("SHUTDOWN", "Closing all threads"); |
542 | m_log.Verbose("SHUTDOWN", "Killing listener thread"); | 545 | m_log.Verbose("SHUTDOWN", "Killing listener thread"); |
543 | m_log.Verbose("SHUTDOWN", "Killing clients"); | 546 | m_log.Verbose("SHUTDOWN", "Killing clients"); |
@@ -557,6 +560,7 @@ namespace OpenSim | |||
557 | RunCommandScript(m_timedScript); | 560 | RunCommandScript(m_timedScript); |
558 | } | 561 | } |
559 | } | 562 | } |
563 | |||
560 | #region Console Commands | 564 | #region Console Commands |
561 | 565 | ||
562 | /// <summary> | 566 | /// <summary> |
@@ -679,10 +683,17 @@ namespace OpenSim | |||
679 | } | 683 | } |
680 | if (cmdparams.Length > 2) | 684 | if (cmdparams.Length > 2) |
681 | { | 685 | { |
682 | loadOffset.X = (float)Convert.ToDecimal(cmdparams[2]); | 686 | loadOffset.X = (float) Convert.ToDecimal(cmdparams[2]); |
683 | if (cmdparams.Length > 3) { loadOffset.Y = (float)Convert.ToDecimal(cmdparams[3]); } | 687 | if (cmdparams.Length > 3) |
684 | if (cmdparams.Length > 4) { loadOffset.Z = (float)Convert.ToDecimal(cmdparams[4]); } | 688 | { |
685 | m_log.Error("loadOffsets <X,Y,Z> = <" + loadOffset.X + "," + loadOffset.Y + "," + loadOffset.Z + ">"); | 689 | loadOffset.Y = (float) Convert.ToDecimal(cmdparams[3]); |
690 | } | ||
691 | if (cmdparams.Length > 4) | ||
692 | { | ||
693 | loadOffset.Z = (float) Convert.ToDecimal(cmdparams[4]); | ||
694 | } | ||
695 | m_log.Error("loadOffsets <X,Y,Z> = <" + loadOffset.X + "," + loadOffset.Y + "," + | ||
696 | loadOffset.Z + ">"); | ||
686 | } | 697 | } |
687 | } | 698 | } |
688 | m_sceneManager.LoadCurrentSceneFromXml(cmdparams[0], generateNewIDS, loadOffset); | 699 | m_sceneManager.LoadCurrentSceneFromXml(cmdparams[0], generateNewIDS, loadOffset); |
@@ -795,12 +806,13 @@ namespace OpenSim | |||
795 | 806 | ||
796 | if (m_sceneManager.CurrentScene == null) | 807 | if (m_sceneManager.CurrentScene == null) |
797 | { | 808 | { |
798 | MainLog.Instance.Verbose("CONSOLE", | 809 | MainLog.Instance.Verbose("CONSOLE", |
799 | "Currently at Root level. To change region please use 'change-region <regioname>'"); | 810 | "Currently at Root level. To change region please use 'change-region <regioname>'"); |
800 | } | 811 | } |
801 | else | 812 | else |
802 | { | 813 | { |
803 | MainLog.Instance.Verbose("CONSOLE", "Current Region: " + m_sceneManager.CurrentScene.RegionInfo.RegionName + | 814 | MainLog.Instance.Verbose("CONSOLE", |
815 | "Current Region: " + m_sceneManager.CurrentScene.RegionInfo.RegionName + | ||
804 | ". To change region please use 'change-region <regioname>'"); | 816 | ". To change region please use 'change-region <regioname>'"); |
805 | } | 817 | } |
806 | 818 | ||
@@ -901,10 +913,13 @@ namespace OpenSim | |||
901 | break; | 913 | break; |
902 | 914 | ||
903 | case "regions": | 915 | case "regions": |
904 | m_sceneManager.ForEachScene(delegate(Scene scene) | 916 | m_sceneManager.ForEachScene( |
905 | { | 917 | delegate(Scene scene) |
906 | m_log.Error("Region Name: " + scene.RegionInfo.RegionName + " , Region XLoc: " + scene.RegionInfo.RegionLocX + " , Region YLoc: " + scene.RegionInfo.RegionLocY); | 918 | { |
907 | }); | 919 | m_log.Error("Region Name: " + scene.RegionInfo.RegionName + " , Region XLoc: " + |
920 | scene.RegionInfo.RegionLocX + " , Region YLoc: " + | ||
921 | scene.RegionInfo.RegionLocY); | ||
922 | }); | ||
908 | break; | 923 | break; |
909 | } | 924 | } |
910 | } | 925 | } |
@@ -922,4 +937,4 @@ namespace OpenSim | |||
922 | 937 | ||
923 | #endregion | 938 | #endregion |
924 | } | 939 | } |
925 | } | 940 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Application/VersionInfo.cs b/OpenSim/Region/Application/VersionInfo.cs index 8d8217f..0f798e4 100644 --- a/OpenSim/Region/Application/VersionInfo.cs +++ b/OpenSim/Region/Application/VersionInfo.cs | |||
@@ -33,4 +33,4 @@ namespace OpenSim | |||
33 | { | 33 | { |
34 | public static string Version = "0.4, SVN build "; | 34 | public static string Version = "0.4, SVN build "; |
35 | } | 35 | } |
36 | } | 36 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/ClientStackNetworkHandler.cs b/OpenSim/Region/ClientStack/ClientStackNetworkHandler.cs index 7bfadea..b3af1cc 100644 --- a/OpenSim/Region/ClientStack/ClientStackNetworkHandler.cs +++ b/OpenSim/Region/ClientStack/ClientStackNetworkHandler.cs | |||
@@ -35,4 +35,4 @@ namespace OpenSim.Region.ClientStack | |||
35 | void RemoveClientCircuit(uint circuitcode); | 35 | void RemoveClientCircuit(uint circuitcode); |
36 | void RegisterPacketServer(PacketServer server); | 36 | void RegisterPacketServer(PacketServer server); |
37 | } | 37 | } |
38 | } | 38 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/ClientView.cs b/OpenSim/Region/ClientStack/ClientView.cs index f29d2f9..b232ed6 100644 --- a/OpenSim/Region/ClientStack/ClientView.cs +++ b/OpenSim/Region/ClientStack/ClientView.cs | |||
@@ -38,6 +38,7 @@ using libsecondlife.Packets; | |||
38 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Communications.Cache; | 39 | using OpenSim.Framework.Communications.Cache; |
40 | using OpenSim.Framework.Console; | 40 | using OpenSim.Framework.Console; |
41 | using OpenSim.Region.Environment.Scenes; | ||
41 | using Timer=System.Timers.Timer; | 42 | using Timer=System.Timers.Timer; |
42 | 43 | ||
43 | namespace OpenSim.Region.ClientStack | 44 | namespace OpenSim.Region.ClientStack |
@@ -71,9 +72,10 @@ namespace OpenSim.Region.ClientStack | |||
71 | private readonly uint m_circuitCode; | 72 | private readonly uint m_circuitCode; |
72 | private int m_moneyBalance; | 73 | private int m_moneyBalance; |
73 | 74 | ||
74 | private readonly byte[] m_channelVersion=new byte[] { 0x00} ; // Dummy value needed by libSL | 75 | private readonly byte[] m_channelVersion = new byte[] {0x00}; // Dummy value needed by libSL |
75 | 76 | ||
76 | /* protected variables */ | 77 | /* protected variables */ |
78 | |||
77 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = | 79 | protected static Dictionary<PacketType, PacketMethod> PacketHandlers = |
78 | new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients | 80 | new Dictionary<PacketType, PacketMethod>(); //Global/static handlers for all clients |
79 | 81 | ||
@@ -94,7 +96,7 @@ namespace OpenSim.Region.ClientStack | |||
94 | protected const int RESEND_TIMEOUT = 4000; | 96 | protected const int RESEND_TIMEOUT = 4000; |
95 | protected const int MAX_SEQUENCE = 0xFFFFFF; | 97 | protected const int MAX_SEQUENCE = 0xFFFFFF; |
96 | protected PacketServer m_networkServer; | 98 | protected PacketServer m_networkServer; |
97 | 99 | ||
98 | /* public variables */ | 100 | /* public variables */ |
99 | protected string m_firstName; | 101 | protected string m_firstName; |
100 | protected string m_lastName; | 102 | protected string m_lastName; |
@@ -103,11 +105,12 @@ namespace OpenSim.Region.ClientStack | |||
103 | protected EndPoint m_userEndPoint; | 105 | protected EndPoint m_userEndPoint; |
104 | 106 | ||
105 | /* Properties */ | 107 | /* Properties */ |
108 | |||
106 | public LLUUID SecureSessionId | 109 | public LLUUID SecureSessionId |
107 | { | 110 | { |
108 | get { return m_secureSessionId; } | 111 | get { return m_secureSessionId; } |
109 | } | 112 | } |
110 | 113 | ||
111 | public IScene Scene | 114 | public IScene Scene |
112 | { | 115 | { |
113 | get { return m_scene; } | 116 | get { return m_scene; } |
@@ -144,7 +147,7 @@ namespace OpenSim.Region.ClientStack | |||
144 | { | 147 | { |
145 | get { return m_lastName; } | 148 | get { return m_lastName; } |
146 | } | 149 | } |
147 | 150 | ||
148 | /// <summary> | 151 | /// <summary> |
149 | /// Full name of the client (first name and last name) | 152 | /// Full name of the client (first name and last name) |
150 | /// </summary> | 153 | /// </summary> |
@@ -162,10 +165,11 @@ namespace OpenSim.Region.ClientStack | |||
162 | { | 165 | { |
163 | get { return m_moneyBalance; } | 166 | get { return m_moneyBalance; } |
164 | } | 167 | } |
165 | 168 | ||
166 | /* METHODS */ | 169 | /* METHODS */ |
167 | 170 | ||
168 | public ClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, PacketServer packServer, AgentCircuitManager authenSessions, LLUUID agentId, LLUUID sessionId, uint circuitCode) | 171 | public ClientView(EndPoint remoteEP, IScene scene, AssetCache assetCache, PacketServer packServer, |
172 | AgentCircuitManager authenSessions, LLUUID agentId, LLUUID sessionId, uint circuitCode) | ||
169 | { | 173 | { |
170 | m_moneyBalance = 1000; | 174 | m_moneyBalance = 1000; |
171 | 175 | ||
@@ -209,7 +213,6 @@ namespace OpenSim.Region.ClientStack | |||
209 | 213 | ||
210 | private void CloseCleanup() | 214 | private void CloseCleanup() |
211 | { | 215 | { |
212 | |||
213 | m_scene.RemoveClient(AgentId); | 216 | m_scene.RemoveClient(AgentId); |
214 | // Send the STOP packet | 217 | // Send the STOP packet |
215 | DisableSimulatorPacket disable = new DisableSimulatorPacket(); | 218 | DisableSimulatorPacket disable = new DisableSimulatorPacket(); |
@@ -222,9 +225,6 @@ namespace OpenSim.Region.ClientStack | |||
222 | 225 | ||
223 | Thread.Sleep(2000); | 226 | Thread.Sleep(2000); |
224 | 227 | ||
225 | |||
226 | |||
227 | |||
228 | 228 | ||
229 | // Shut down timers | 229 | // Shut down timers |
230 | m_ackTimer.Stop(); | 230 | m_ackTimer.Stop(); |
@@ -243,18 +243,15 @@ namespace OpenSim.Region.ClientStack | |||
243 | 243 | ||
244 | public void Close(bool ShutdownCircult) | 244 | public void Close(bool ShutdownCircult) |
245 | { | 245 | { |
246 | |||
247 | // Pull Client out of Region | 246 | // Pull Client out of Region |
248 | MainLog.Instance.Verbose("CLIENT", "Close has been called"); | 247 | MainLog.Instance.Verbose("CLIENT", "Close has been called"); |
249 | 248 | ||
250 | //raiseevent on the packet server to Shutdown the circuit | 249 | //raiseevent on the packet server to Shutdown the circuit |
251 | if (ShutdownCircult) | 250 | if (ShutdownCircult) |
252 | OnConnectionClosed(this); | 251 | OnConnectionClosed(this); |
253 | |||
254 | 252 | ||
255 | CloseCleanup(); | ||
256 | 253 | ||
257 | 254 | CloseCleanup(); | |
258 | } | 255 | } |
259 | 256 | ||
260 | public void Kick(string message) | 257 | public void Kick(string message) |
@@ -262,8 +259,8 @@ namespace OpenSim.Region.ClientStack | |||
262 | KickUserPacket kupack = new KickUserPacket(); | 259 | KickUserPacket kupack = new KickUserPacket(); |
263 | kupack.UserInfo.AgentID = AgentId; | 260 | kupack.UserInfo.AgentID = AgentId; |
264 | kupack.UserInfo.SessionID = SessionId; | 261 | kupack.UserInfo.SessionID = SessionId; |
265 | kupack.TargetBlock.TargetIP = (uint)0; | 262 | kupack.TargetBlock.TargetIP = (uint) 0; |
266 | kupack.TargetBlock.TargetPort = (ushort)0; | 263 | kupack.TargetBlock.TargetPort = (ushort) 0; |
267 | kupack.UserInfo.Reason = Helpers.StringToField(message); | 264 | kupack.UserInfo.Reason = Helpers.StringToField(message); |
268 | OutPacket(kupack, ThrottleOutPacketType.Task); | 265 | OutPacket(kupack, ThrottleOutPacketType.Task); |
269 | } | 266 | } |
@@ -340,9 +337,9 @@ namespace OpenSim.Region.ClientStack | |||
340 | if (m_debug < 254 && packet.Type == PacketType.ViewerEffect) | 337 | if (m_debug < 254 && packet.Type == PacketType.ViewerEffect) |
341 | return; | 338 | return; |
342 | if (m_debug < 253 && ( | 339 | if (m_debug < 253 && ( |
343 | packet.Type == PacketType.CompletePingCheck || | 340 | packet.Type == PacketType.CompletePingCheck || |
344 | packet.Type == PacketType.StartPingCheck | 341 | packet.Type == PacketType.StartPingCheck |
345 | )) | 342 | )) |
346 | return; | 343 | return; |
347 | if (m_debug < 252 && packet.Type == PacketType.PacketAck) | 344 | if (m_debug < 252 && packet.Type == PacketType.PacketAck) |
348 | return; | 345 | return; |
@@ -552,7 +549,7 @@ namespace OpenSim.Region.ClientStack | |||
552 | public event EstateOwnerMessageRequest OnEstateOwnerMessage; | 549 | public event EstateOwnerMessageRequest OnEstateOwnerMessage; |
553 | public event RegionInfoRequest OnRegionInfoRequest; | 550 | public event RegionInfoRequest OnRegionInfoRequest; |
554 | public event EstateCovenantRequest OnEstateCovenantRequest; | 551 | public event EstateCovenantRequest OnEstateCovenantRequest; |
555 | 552 | ||
556 | #region Scene/Avatar to Client | 553 | #region Scene/Avatar to Client |
557 | 554 | ||
558 | /// <summary> | 555 | /// <summary> |
@@ -561,7 +558,8 @@ namespace OpenSim.Region.ClientStack | |||
561 | /// <param name="regionInfo"></param> | 558 | /// <param name="regionInfo"></param> |
562 | public void SendRegionHandshake(RegionInfo regionInfo) | 559 | public void SendRegionHandshake(RegionInfo regionInfo) |
563 | { | 560 | { |
564 | RegionHandshakePacket handshake = (RegionHandshakePacket) PacketPool.Instance.GetPacket(PacketType.RegionHandshake); | 561 | RegionHandshakePacket handshake = |
562 | (RegionHandshakePacket) PacketPool.Instance.GetPacket(PacketType.RegionHandshake); | ||
565 | 563 | ||
566 | handshake.RegionInfo.BillableFactor = regionInfo.EstateSettings.billableFactor; | 564 | handshake.RegionInfo.BillableFactor = regionInfo.EstateSettings.billableFactor; |
567 | handshake.RegionInfo.IsEstateManager = false; | 565 | handshake.RegionInfo.IsEstateManager = false; |
@@ -645,7 +643,7 @@ namespace OpenSim.Region.ClientStack | |||
645 | 643 | ||
646 | OutPacket(reply, ThrottleOutPacketType.Task); | 644 | OutPacket(reply, ThrottleOutPacketType.Task); |
647 | } | 645 | } |
648 | 646 | ||
649 | /// <summary> | 647 | /// <summary> |
650 | /// | 648 | /// |
651 | /// </summary> | 649 | /// </summary> |
@@ -861,7 +859,7 @@ namespace OpenSim.Region.ClientStack | |||
861 | public void SendTeleportFailed() | 859 | public void SendTeleportFailed() |
862 | { | 860 | { |
863 | TeleportFailedPacket tpFailed = new TeleportFailedPacket(); | 861 | TeleportFailedPacket tpFailed = new TeleportFailedPacket(); |
864 | tpFailed.Info.AgentID = this.AgentId; | 862 | tpFailed.Info.AgentID = AgentId; |
865 | tpFailed.Info.Reason = Helpers.StringToField("unknown failure of teleport"); | 863 | tpFailed.Info.Reason = Helpers.StringToField("unknown failure of teleport"); |
866 | OutPacket(tpFailed, ThrottleOutPacketType.Task); | 864 | OutPacket(tpFailed, ThrottleOutPacketType.Task); |
867 | } | 865 | } |
@@ -914,8 +912,8 @@ namespace OpenSim.Region.ClientStack | |||
914 | /// <param name="items">The items contained in the folder identified by folderID</param> | 912 | /// <param name="items">The items contained in the folder identified by folderID</param> |
915 | /// <param name="fetchFolders">Do we need to send folder information?</param> | 913 | /// <param name="fetchFolders">Do we need to send folder information?</param> |
916 | /// <param name="fetchItems">Do we need to send item information?</param> | 914 | /// <param name="fetchItems">Do we need to send item information?</param> |
917 | public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items, | 915 | public void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, List<InventoryItemBase> items, |
918 | List<InventoryFolderBase> folders, | 916 | List<InventoryFolderBase> folders, |
919 | bool fetchFolders, bool fetchItems) | 917 | bool fetchFolders, bool fetchItems) |
920 | { | 918 | { |
921 | // An inventory descendents packet consists of a single agent section and an inventory details | 919 | // An inventory descendents packet consists of a single agent section and an inventory details |
@@ -929,14 +927,14 @@ namespace OpenSim.Region.ClientStack | |||
929 | // for one example of this kind of thing. So we'll go for a cautious max | 927 | // for one example of this kind of thing. So we'll go for a cautious max |
930 | // items of 20 which gives a packet size of about 11k | 928 | // items of 20 which gives a packet size of about 11k |
931 | int MAX_ITEMS_PER_PACKET = 20; | 929 | int MAX_ITEMS_PER_PACKET = 20; |
932 | 930 | ||
933 | Encoding enc = Encoding.ASCII; | 931 | Encoding enc = Encoding.ASCII; |
934 | uint FULL_MASK_PERMISSIONS = 2147483647; | 932 | uint FULL_MASK_PERMISSIONS = 2147483647; |
935 | 933 | ||
936 | if (fetchItems) | 934 | if (fetchItems) |
937 | { | 935 | { |
938 | InventoryDescendentsPacket descend = CreateInventoryDescendentsPacket(ownerID, folderID); | 936 | InventoryDescendentsPacket descend = CreateInventoryDescendentsPacket(ownerID, folderID); |
939 | 937 | ||
940 | if (items.Count < MAX_ITEMS_PER_PACKET) | 938 | if (items.Count < MAX_ITEMS_PER_PACKET) |
941 | { | 939 | { |
942 | descend.ItemData = new InventoryDescendentsPacket.ItemDataBlock[items.Count]; | 940 | descend.ItemData = new InventoryDescendentsPacket.ItemDataBlock[items.Count]; |
@@ -947,7 +945,7 @@ namespace OpenSim.Region.ClientStack | |||
947 | descend.ItemData = new InventoryDescendentsPacket.ItemDataBlock[MAX_ITEMS_PER_PACKET]; | 945 | descend.ItemData = new InventoryDescendentsPacket.ItemDataBlock[MAX_ITEMS_PER_PACKET]; |
948 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; | 946 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; |
949 | } | 947 | } |
950 | 948 | ||
951 | // Even if we aren't fetching the folders, we still need to include the folder count | 949 | // Even if we aren't fetching the folders, we still need to include the folder count |
952 | // in the total number of descendents. Failure to do so will cause subtle bugs such | 950 | // in the total number of descendents. Failure to do so will cause subtle bugs such |
953 | // as the failure of textures which haven't been expanded in inventory to show up | 951 | // as the failure of textures which haven't been expanded in inventory to show up |
@@ -956,7 +954,7 @@ namespace OpenSim.Region.ClientStack | |||
956 | { | 954 | { |
957 | descend.AgentData.Descendents += folders.Count; | 955 | descend.AgentData.Descendents += folders.Count; |
958 | } | 956 | } |
959 | 957 | ||
960 | int count = 0; | 958 | int count = 0; |
961 | int i = 0; | 959 | int i = 0; |
962 | foreach (InventoryItemBase item in items) | 960 | foreach (InventoryItemBase item in items) |
@@ -973,28 +971,31 @@ namespace OpenSim.Region.ClientStack | |||
973 | descend.ItemData[i].FolderID = item.parentFolderID; | 971 | descend.ItemData[i].FolderID = item.parentFolderID; |
974 | descend.ItemData[i].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); | 972 | descend.ItemData[i].GroupID = new LLUUID("00000000-0000-0000-0000-000000000000"); |
975 | descend.ItemData[i].GroupMask = 0; | 973 | descend.ItemData[i].GroupMask = 0; |
976 | descend.ItemData[i].InvType = (sbyte)item.invType; | 974 | descend.ItemData[i].InvType = (sbyte) item.invType; |
977 | descend.ItemData[i].Name = Helpers.StringToField(item.inventoryName); | 975 | descend.ItemData[i].Name = Helpers.StringToField(item.inventoryName); |
978 | descend.ItemData[i].NextOwnerMask = item.inventoryNextPermissions; | 976 | descend.ItemData[i].NextOwnerMask = item.inventoryNextPermissions; |
979 | descend.ItemData[i].OwnerID = item.avatarID; | 977 | descend.ItemData[i].OwnerID = item.avatarID; |
980 | descend.ItemData[i].OwnerMask = item.inventoryCurrentPermissions; | 978 | descend.ItemData[i].OwnerMask = item.inventoryCurrentPermissions; |
981 | descend.ItemData[i].SalePrice = 0; | 979 | descend.ItemData[i].SalePrice = 0; |
982 | descend.ItemData[i].SaleType = 0; | 980 | descend.ItemData[i].SaleType = 0; |
983 | descend.ItemData[i].Type = (sbyte)item.assetType; | 981 | descend.ItemData[i].Type = (sbyte) item.assetType; |
984 | descend.ItemData[i].CRC = | 982 | descend.ItemData[i].CRC = |
985 | Helpers.InventoryCRC(descend.ItemData[i].CreationDate, descend.ItemData[i].SaleType, | 983 | Helpers.InventoryCRC(descend.ItemData[i].CreationDate, descend.ItemData[i].SaleType, |
986 | descend.ItemData[i].InvType, descend.ItemData[i].Type, | 984 | descend.ItemData[i].InvType, descend.ItemData[i].Type, |
987 | descend.ItemData[i].AssetID, descend.ItemData[i].GroupID, descend.ItemData[i].SalePrice, | 985 | descend.ItemData[i].AssetID, descend.ItemData[i].GroupID, |
986 | descend.ItemData[i].SalePrice, | ||
988 | descend.ItemData[i].OwnerID, descend.ItemData[i].CreatorID, | 987 | descend.ItemData[i].OwnerID, descend.ItemData[i].CreatorID, |
989 | descend.ItemData[i].ItemID, descend.ItemData[i].FolderID, descend.ItemData[i].EveryoneMask, | 988 | descend.ItemData[i].ItemID, descend.ItemData[i].FolderID, |
990 | descend.ItemData[i].Flags, descend.ItemData[i].OwnerMask, descend.ItemData[i].GroupMask, item.inventoryCurrentPermissions); | 989 | descend.ItemData[i].EveryoneMask, |
991 | 990 | descend.ItemData[i].Flags, descend.ItemData[i].OwnerMask, | |
991 | descend.ItemData[i].GroupMask, item.inventoryCurrentPermissions); | ||
992 | |||
992 | i++; | 993 | i++; |
993 | count++; | 994 | count++; |
994 | if (i == MAX_ITEMS_PER_PACKET) | 995 | if (i == MAX_ITEMS_PER_PACKET) |
995 | { | 996 | { |
996 | OutPacket(descend, ThrottleOutPacketType.Asset); | 997 | OutPacket(descend, ThrottleOutPacketType.Asset); |
997 | 998 | ||
998 | if ((items.Count - count) > 0) | 999 | if ((items.Count - count) > 0) |
999 | { | 1000 | { |
1000 | descend = CreateInventoryDescendentsPacket(ownerID, folderID); | 1001 | descend = CreateInventoryDescendentsPacket(ownerID, folderID); |
@@ -1012,7 +1013,7 @@ namespace OpenSim.Region.ClientStack | |||
1012 | } | 1013 | } |
1013 | } | 1014 | } |
1014 | } | 1015 | } |
1015 | 1016 | ||
1016 | if (i < MAX_ITEMS_PER_PACKET) | 1017 | if (i < MAX_ITEMS_PER_PACKET) |
1017 | { | 1018 | { |
1018 | OutPacket(descend, ThrottleOutPacketType.Asset); | 1019 | OutPacket(descend, ThrottleOutPacketType.Asset); |
@@ -1023,7 +1024,7 @@ namespace OpenSim.Region.ClientStack | |||
1023 | if (fetchFolders) | 1024 | if (fetchFolders) |
1024 | { | 1025 | { |
1025 | InventoryDescendentsPacket descend = CreateInventoryDescendentsPacket(ownerID, folderID); | 1026 | InventoryDescendentsPacket descend = CreateInventoryDescendentsPacket(ownerID, folderID); |
1026 | 1027 | ||
1027 | if (folders.Count < MAX_ITEMS_PER_PACKET) | 1028 | if (folders.Count < MAX_ITEMS_PER_PACKET) |
1028 | { | 1029 | { |
1029 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[folders.Count]; | 1030 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[folders.Count]; |
@@ -1034,14 +1035,14 @@ namespace OpenSim.Region.ClientStack | |||
1034 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[MAX_ITEMS_PER_PACKET]; | 1035 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[MAX_ITEMS_PER_PACKET]; |
1035 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; | 1036 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; |
1036 | } | 1037 | } |
1037 | 1038 | ||
1038 | // Not sure if this scenario ever actually occurs, but nonetheless we include the items | 1039 | // Not sure if this scenario ever actually occurs, but nonetheless we include the items |
1039 | // count even if we're not sending item data for the same reasons as above. | 1040 | // count even if we're not sending item data for the same reasons as above. |
1040 | if (!fetchItems) | 1041 | if (!fetchItems) |
1041 | { | 1042 | { |
1042 | descend.AgentData.Descendents += items.Count; | 1043 | descend.AgentData.Descendents += items.Count; |
1043 | } | 1044 | } |
1044 | 1045 | ||
1045 | int i = 0; | 1046 | int i = 0; |
1046 | int count = 0; | 1047 | int count = 0; |
1047 | foreach (InventoryFolderBase folder in folders) | 1048 | foreach (InventoryFolderBase folder in folders) |
@@ -1050,32 +1051,34 @@ namespace OpenSim.Region.ClientStack | |||
1050 | descend.FolderData[i].FolderID = folder.folderID; | 1051 | descend.FolderData[i].FolderID = folder.folderID; |
1051 | descend.FolderData[i].Name = Helpers.StringToField(folder.name); | 1052 | descend.FolderData[i].Name = Helpers.StringToField(folder.name); |
1052 | descend.FolderData[i].ParentID = folder.parentID; | 1053 | descend.FolderData[i].ParentID = folder.parentID; |
1053 | descend.FolderData[i].Type = (sbyte)folder.type; | 1054 | descend.FolderData[i].Type = (sbyte) folder.type; |
1054 | 1055 | ||
1055 | i++; | 1056 | i++; |
1056 | count++; | 1057 | count++; |
1057 | if (i == MAX_ITEMS_PER_PACKET) | 1058 | if (i == MAX_ITEMS_PER_PACKET) |
1058 | { | 1059 | { |
1059 | OutPacket(descend, ThrottleOutPacketType.Asset); | 1060 | OutPacket(descend, ThrottleOutPacketType.Asset); |
1060 | 1061 | ||
1061 | if ((folders.Count - count) > 0) | 1062 | if ((folders.Count - count) > 0) |
1062 | { | 1063 | { |
1063 | descend = CreateInventoryDescendentsPacket(ownerID, folderID); | 1064 | descend = CreateInventoryDescendentsPacket(ownerID, folderID); |
1064 | if ((folders.Count - count) < MAX_ITEMS_PER_PACKET) | 1065 | if ((folders.Count - count) < MAX_ITEMS_PER_PACKET) |
1065 | { | 1066 | { |
1066 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[folders.Count - count]; | 1067 | descend.FolderData = |
1068 | new InventoryDescendentsPacket.FolderDataBlock[folders.Count - count]; | ||
1067 | descend.AgentData.Descendents = folders.Count - count; | 1069 | descend.AgentData.Descendents = folders.Count - count; |
1068 | } | 1070 | } |
1069 | else | 1071 | else |
1070 | { | 1072 | { |
1071 | descend.FolderData = new InventoryDescendentsPacket.FolderDataBlock[MAX_ITEMS_PER_PACKET]; | 1073 | descend.FolderData = |
1074 | new InventoryDescendentsPacket.FolderDataBlock[MAX_ITEMS_PER_PACKET]; | ||
1072 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; | 1075 | descend.AgentData.Descendents = MAX_ITEMS_PER_PACKET; |
1073 | } | 1076 | } |
1074 | i = 0; | 1077 | i = 0; |
1075 | } | 1078 | } |
1076 | } | 1079 | } |
1077 | } | 1080 | } |
1078 | 1081 | ||
1079 | if (i < MAX_ITEMS_PER_PACKET) | 1082 | if (i < MAX_ITEMS_PER_PACKET) |
1080 | { | 1083 | { |
1081 | OutPacket(descend, ThrottleOutPacketType.Asset); | 1084 | OutPacket(descend, ThrottleOutPacketType.Asset); |
@@ -1204,6 +1207,7 @@ namespace OpenSim.Region.ClientStack | |||
1204 | sendXfer.DataPacket.Data = data; | 1207 | sendXfer.DataPacket.Data = data; |
1205 | OutPacket(sendXfer, ThrottleOutPacketType.Task); | 1208 | OutPacket(sendXfer, ThrottleOutPacketType.Task); |
1206 | } | 1209 | } |
1210 | |||
1207 | public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) | 1211 | public void SendAvatarPickerReply(AvatarPickerReplyPacket replyPacket) |
1208 | { | 1212 | { |
1209 | OutPacket(replyPacket, ThrottleOutPacketType.Task); | 1213 | OutPacket(replyPacket, ThrottleOutPacketType.Task); |
@@ -1272,7 +1276,7 @@ namespace OpenSim.Region.ClientStack | |||
1272 | OutPacket(sound, ThrottleOutPacketType.Task); | 1276 | OutPacket(sound, ThrottleOutPacketType.Task); |
1273 | } | 1277 | } |
1274 | 1278 | ||
1275 | public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) | 1279 | public void SendSunPos(LLVector3 sunPos, LLVector3 sunVel) |
1276 | { | 1280 | { |
1277 | SimulatorViewerTimeMessagePacket viewertime = new SimulatorViewerTimeMessagePacket(); | 1281 | SimulatorViewerTimeMessagePacket viewertime = new SimulatorViewerTimeMessagePacket(); |
1278 | viewertime.TimeInfo.SunDirection = sunPos; | 1282 | viewertime.TimeInfo.SunDirection = sunPos; |
@@ -1524,12 +1528,13 @@ namespace OpenSim.Region.ClientStack | |||
1524 | 1528 | ||
1525 | OutPacket(attach, ThrottleOutPacketType.Task); | 1529 | OutPacket(attach, ThrottleOutPacketType.Task); |
1526 | } | 1530 | } |
1527 | 1531 | ||
1528 | 1532 | ||
1529 | public void SendPrimitiveToClient( | 1533 | public void SendPrimitiveToClient( |
1530 | ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, | 1534 | ulong regionHandle, ushort timeDilation, uint localID, PrimitiveBaseShape primShape, LLVector3 pos, |
1531 | uint flags, | 1535 | uint flags, |
1532 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, LLQuaternion rotation, byte clickAction) | 1536 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, byte[] particleSystem, |
1537 | LLQuaternion rotation, byte clickAction) | ||
1533 | { | 1538 | { |
1534 | ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); | 1539 | ObjectUpdatePacket outPacket = new ObjectUpdatePacket(); |
1535 | outPacket.RegionData.RegionHandle = regionHandle; | 1540 | outPacket.RegionData.RegionHandle = regionHandle; |
@@ -1572,8 +1577,8 @@ namespace OpenSim.Region.ClientStack | |||
1572 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 1577 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
1573 | LLQuaternion rotation) | 1578 | LLQuaternion rotation) |
1574 | { | 1579 | { |
1575 | LLVector3 velocity = new LLVector3(0f,0f,0f); | 1580 | LLVector3 velocity = new LLVector3(0f, 0f, 0f); |
1576 | LLVector3 rotationalvelocity = new LLVector3(0f,0f,0f); | 1581 | LLVector3 rotationalvelocity = new LLVector3(0f, 0f, 0f); |
1577 | ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); | 1582 | ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); |
1578 | terse.RegionData.RegionHandle = regionHandle; | 1583 | terse.RegionData.RegionHandle = regionHandle; |
1579 | terse.RegionData.TimeDilation = timeDilation; | 1584 | terse.RegionData.TimeDilation = timeDilation; |
@@ -1582,10 +1587,10 @@ namespace OpenSim.Region.ClientStack | |||
1582 | 1587 | ||
1583 | OutPacket(terse, ThrottleOutPacketType.Task); | 1588 | OutPacket(terse, ThrottleOutPacketType.Task); |
1584 | } | 1589 | } |
1590 | |||
1585 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, | 1591 | public void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, LLVector3 position, |
1586 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) | 1592 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) |
1587 | { | 1593 | { |
1588 | |||
1589 | ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); | 1594 | ImprovedTerseObjectUpdatePacket terse = new ImprovedTerseObjectUpdatePacket(); |
1590 | terse.RegionData.RegionHandle = regionHandle; | 1595 | terse.RegionData.RegionHandle = regionHandle; |
1591 | terse.RegionData.TimeDilation = timeDilation; | 1596 | terse.RegionData.TimeDilation = timeDilation; |
@@ -1594,7 +1599,6 @@ namespace OpenSim.Region.ClientStack | |||
1594 | 1599 | ||
1595 | OutPacket(terse, ThrottleOutPacketType.Task); | 1600 | OutPacket(terse, ThrottleOutPacketType.Task); |
1596 | } | 1601 | } |
1597 | |||
1598 | 1602 | ||
1599 | #endregion | 1603 | #endregion |
1600 | 1604 | ||
@@ -1696,7 +1700,9 @@ namespace OpenSim.Region.ClientStack | |||
1696 | /// <returns></returns> | 1700 | /// <returns></returns> |
1697 | protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreatePrimImprovedBlock(uint localID, | 1701 | protected ImprovedTerseObjectUpdatePacket.ObjectDataBlock CreatePrimImprovedBlock(uint localID, |
1698 | LLVector3 position, | 1702 | LLVector3 position, |
1699 | LLQuaternion rotation, LLVector3 velocity, LLVector3 rotationalvelocity) | 1703 | LLQuaternion rotation, |
1704 | LLVector3 velocity, | ||
1705 | LLVector3 rotationalvelocity) | ||
1700 | { | 1706 | { |
1701 | uint ID = localID; | 1707 | uint ID = localID; |
1702 | byte[] bytes = new byte[60]; | 1708 | byte[] bytes = new byte[60]; |
@@ -1724,16 +1730,16 @@ namespace OpenSim.Region.ClientStack | |||
1724 | vel.y += 1; | 1730 | vel.y += 1; |
1725 | vel.z += 1; | 1731 | vel.z += 1; |
1726 | //vel | 1732 | //vel |
1727 | velx = (ushort)(32768 * (vel.x)); | 1733 | velx = (ushort) (32768*(vel.x)); |
1728 | vely = (ushort)(32768 * (vel.y)); | 1734 | vely = (ushort) (32768*(vel.y)); |
1729 | velz = (ushort)(32768 * (vel.z)); | 1735 | velz = (ushort) (32768*(vel.z)); |
1730 | 1736 | ||
1731 | bytes[i++] = (byte) (velx % 256); | 1737 | bytes[i++] = (byte) (velx%256); |
1732 | bytes[i++] = (byte) ((velx >> 8) % 256); | 1738 | bytes[i++] = (byte) ((velx >> 8)%256); |
1733 | bytes[i++] = (byte) (vely % 256); | 1739 | bytes[i++] = (byte) (vely%256); |
1734 | bytes[i++] = (byte) ((vely >> 8) % 256); | 1740 | bytes[i++] = (byte) ((vely >> 8)%256); |
1735 | bytes[i++] = (byte) (velz % 256); | 1741 | bytes[i++] = (byte) (velz%256); |
1736 | bytes[i++] = (byte) ((velz >> 8) % 256); | 1742 | bytes[i++] = (byte) ((velz >> 8)%256); |
1737 | 1743 | ||
1738 | //accel | 1744 | //accel |
1739 | bytes[i++] = (byte) (ac%256); | 1745 | bytes[i++] = (byte) (ac%256); |
@@ -1763,21 +1769,21 @@ namespace OpenSim.Region.ClientStack | |||
1763 | ushort rvelx, rvely, rvelz; | 1769 | ushort rvelx, rvely, rvelz; |
1764 | Vector3 rvel = new Vector3(rotationalvelocity.X, rotationalvelocity.Y, rotationalvelocity.Z); | 1770 | Vector3 rvel = new Vector3(rotationalvelocity.X, rotationalvelocity.Y, rotationalvelocity.Z); |
1765 | 1771 | ||
1766 | rvel = rvel / 128.0f; | 1772 | rvel = rvel/128.0f; |
1767 | rvel.x += 1; | 1773 | rvel.x += 1; |
1768 | rvel.y += 1; | 1774 | rvel.y += 1; |
1769 | rvel.z += 1; | 1775 | rvel.z += 1; |
1770 | //vel | 1776 | //vel |
1771 | rvelx = (ushort)(32768 * (rvel.x)); | 1777 | rvelx = (ushort) (32768*(rvel.x)); |
1772 | rvely = (ushort)(32768 * (rvel.y)); | 1778 | rvely = (ushort) (32768*(rvel.y)); |
1773 | rvelz = (ushort)(32768 * (rvel.z)); | 1779 | rvelz = (ushort) (32768*(rvel.z)); |
1774 | 1780 | ||
1775 | bytes[i++] = (byte)(rvelx % 256); | 1781 | bytes[i++] = (byte) (rvelx%256); |
1776 | bytes[i++] = (byte)((rvelx >> 8) % 256); | 1782 | bytes[i++] = (byte) ((rvelx >> 8)%256); |
1777 | bytes[i++] = (byte)(rvely % 256); | 1783 | bytes[i++] = (byte) (rvely%256); |
1778 | bytes[i++] = (byte)((rvely >> 8) % 256); | 1784 | bytes[i++] = (byte) ((rvely >> 8)%256); |
1779 | bytes[i++] = (byte)(rvelz % 256); | 1785 | bytes[i++] = (byte) (rvelz%256); |
1780 | bytes[i++] = (byte)((rvelz >> 8) % 256); | 1786 | bytes[i++] = (byte) ((rvelz >> 8)%256); |
1781 | 1787 | ||
1782 | dat.Data = bytes; | 1788 | dat.Data = bytes; |
1783 | return dat; | 1789 | return dat; |
@@ -1906,7 +1912,7 @@ namespace OpenSim.Region.ClientStack | |||
1906 | objdata.Sound = LLUUID.Zero; | 1912 | objdata.Sound = LLUUID.Zero; |
1907 | LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); | 1913 | LLObject.TextureEntry ntex = new LLObject.TextureEntry(new LLUUID("00000000-0000-0000-5005-000000000005")); |
1908 | objdata.TextureEntry = ntex.ToBytes(); | 1914 | objdata.TextureEntry = ntex.ToBytes(); |
1909 | 1915 | ||
1910 | objdata.State = 0; | 1916 | objdata.State = 0; |
1911 | objdata.Data = new byte[0]; | 1917 | objdata.Data = new byte[0]; |
1912 | 1918 | ||
@@ -1993,13 +1999,13 @@ namespace OpenSim.Region.ClientStack | |||
1993 | { | 1999 | { |
1994 | MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket) packet; | 2000 | MultipleObjectUpdatePacket multipleupdate = (MultipleObjectUpdatePacket) packet; |
1995 | // System.Console.WriteLine("new multi update packet " + multipleupdate.ToString()); | 2001 | // System.Console.WriteLine("new multi update packet " + multipleupdate.ToString()); |
1996 | OpenSim.Region.Environment.Scenes.Scene tScene = (OpenSim.Region.Environment.Scenes.Scene)this.m_scene; | 2002 | Scene tScene = (Scene) m_scene; |
1997 | 2003 | ||
1998 | for (int i = 0; i < multipleupdate.ObjectData.Length; i++) | 2004 | for (int i = 0; i < multipleupdate.ObjectData.Length; i++) |
1999 | { | 2005 | { |
2000 | // Can't act on Null Data | 2006 | // Can't act on Null Data |
2001 | if (multipleupdate.ObjectData[i].Data != null) | 2007 | if (multipleupdate.ObjectData[i].Data != null) |
2002 | { | 2008 | { |
2003 | LLUUID editobj = tScene.GetSceneObjectPart(multipleupdate.ObjectData[i].ObjectLocalID).UUID; | 2009 | LLUUID editobj = tScene.GetSceneObjectPart(multipleupdate.ObjectData[i].ObjectLocalID).UUID; |
2004 | if (editobj != null) | 2010 | if (editobj != null) |
2005 | { | 2011 | { |
@@ -2024,8 +2030,8 @@ namespace OpenSim.Region.ClientStack | |||
2024 | OnUpdatePrimSinglePosition(multipleupdate.ObjectData[i].ObjectLocalID, pos, this); | 2030 | OnUpdatePrimSinglePosition(multipleupdate.ObjectData[i].ObjectLocalID, pos, this); |
2025 | } | 2031 | } |
2026 | } | 2032 | } |
2027 | #endregion position | 2033 | #endregion position |
2028 | #region rotation | 2034 | #region rotation |
2029 | 2035 | ||
2030 | else if (multipleupdate.ObjectData[i].Type == 2) // single item of group rotation from tab | 2036 | else if (multipleupdate.ObjectData[i].Type == 2) // single item of group rotation from tab |
2031 | { | 2037 | { |
@@ -2062,11 +2068,12 @@ namespace OpenSim.Region.ClientStack | |||
2062 | LLQuaternion rot = new LLQuaternion(multipleupdate.ObjectData[i].Data, 12, true); | 2068 | LLQuaternion rot = new LLQuaternion(multipleupdate.ObjectData[i].Data, 12, true); |
2063 | //Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z); | 2069 | //Console.WriteLine("new rotation position is " + pos.X + " , " + pos.Y + " , " + pos.Z); |
2064 | // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); | 2070 | // Console.WriteLine("new rotation is " + rot.X + " , " + rot.Y + " , " + rot.Z + " , " + rot.W); |
2065 | OnUpdatePrimGroupMouseRotation(multipleupdate.ObjectData[i].ObjectLocalID, pos, rot, this); | 2071 | OnUpdatePrimGroupMouseRotation(multipleupdate.ObjectData[i].ObjectLocalID, pos, rot, |
2072 | this); | ||
2066 | } | 2073 | } |
2067 | } | 2074 | } |
2068 | #endregion | 2075 | #endregion |
2069 | #region scale | 2076 | #region scale |
2070 | 2077 | ||
2071 | else if (multipleupdate.ObjectData[i].Type == 13) //group scale from object tab | 2078 | else if (multipleupdate.ObjectData[i].Type == 13) //group scale from object tab |
2072 | { | 2079 | { |
@@ -2118,9 +2125,9 @@ namespace OpenSim.Region.ClientStack | |||
2118 | else | 2125 | else |
2119 | { | 2126 | { |
2120 | // It's a ghost! tell the client to delete it from view. | 2127 | // It's a ghost! tell the client to delete it from view. |
2121 | simClient.SendKillObject(this.Scene.RegionInfo.RegionHandle, multipleupdate.ObjectData[i].ObjectLocalID); | 2128 | simClient.SendKillObject(Scene.RegionInfo.RegionHandle, |
2129 | multipleupdate.ObjectData[i].ObjectLocalID); | ||
2122 | } | 2130 | } |
2123 | |||
2124 | } | 2131 | } |
2125 | } | 2132 | } |
2126 | return true; | 2133 | return true; |
@@ -2173,10 +2180,12 @@ namespace OpenSim.Region.ClientStack | |||
2173 | this.OutPacket(mbReply, ThrottleOutPacketType.Land); | 2180 | this.OutPacket(mbReply, ThrottleOutPacketType.Land); |
2174 | */ | 2181 | */ |
2175 | } | 2182 | } |
2183 | |||
2176 | public void SetChildAgentThrottle(byte[] throttles) | 2184 | public void SetChildAgentThrottle(byte[] throttles) |
2177 | { | 2185 | { |
2178 | m_packetQueue.SetThrottleFromClient(throttles); | 2186 | m_packetQueue.SetThrottleFromClient(throttles); |
2179 | } | 2187 | } |
2188 | |||
2180 | // Previously ClientView.m_packetQueue | 2189 | // Previously ClientView.m_packetQueue |
2181 | 2190 | ||
2182 | // A thread safe sequence number allocator. | 2191 | // A thread safe sequence number allocator. |
@@ -2198,7 +2207,7 @@ namespace OpenSim.Region.ClientStack | |||
2198 | } | 2207 | } |
2199 | return seq; | 2208 | return seq; |
2200 | } | 2209 | } |
2201 | 2210 | ||
2202 | protected void AddAck(Packet Pack) | 2211 | protected void AddAck(Packet Pack) |
2203 | { | 2212 | { |
2204 | lock (m_needAck) | 2213 | lock (m_needAck) |
@@ -2236,13 +2245,13 @@ namespace OpenSim.Region.ClientStack | |||
2236 | { | 2245 | { |
2237 | Pack.Header.AckList = new uint[m_pendingAcks.Count]; | 2246 | Pack.Header.AckList = new uint[m_pendingAcks.Count]; |
2238 | int i = 0; | 2247 | int i = 0; |
2239 | 2248 | ||
2240 | foreach (uint ack in m_pendingAcks.Values) | 2249 | foreach (uint ack in m_pendingAcks.Values) |
2241 | { | 2250 | { |
2242 | Pack.Header.AckList[i] = ack; | 2251 | Pack.Header.AckList[i] = ack; |
2243 | i++; | 2252 | i++; |
2244 | } | 2253 | } |
2245 | 2254 | ||
2246 | m_pendingAcks.Clear(); | 2255 | m_pendingAcks.Clear(); |
2247 | Pack.Header.AppendedAcks = true; | 2256 | Pack.Header.AppendedAcks = true; |
2248 | } | 2257 | } |
@@ -2272,22 +2281,22 @@ namespace OpenSim.Region.ClientStack | |||
2272 | // Actually make the byte array and send it | 2281 | // Actually make the byte array and send it |
2273 | try | 2282 | try |
2274 | { | 2283 | { |
2275 | byte[] sendbuffer = Pack.ToBytes(); | 2284 | byte[] sendbuffer = Pack.ToBytes(); |
2276 | if (Pack is RegionHandshakePacket) | 2285 | if (Pack is RegionHandshakePacket) |
2277 | { | 2286 | { |
2278 | PacketPool.Instance.ReturnPacket(Pack); | 2287 | PacketPool.Instance.ReturnPacket(Pack); |
2279 | } | 2288 | } |
2280 | 2289 | ||
2281 | if (Pack.Header.Zerocoded) | 2290 | if (Pack.Header.Zerocoded) |
2282 | { | 2291 | { |
2283 | byte[] ZeroOutBuffer = new byte[4096]; | 2292 | byte[] ZeroOutBuffer = new byte[4096]; |
2284 | int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer); | 2293 | int packetsize = Helpers.ZeroEncode(sendbuffer, sendbuffer.Length, ZeroOutBuffer); |
2285 | m_networkServer.SendPacketTo(ZeroOutBuffer, packetsize, SocketFlags.None, m_circuitCode); | 2294 | m_networkServer.SendPacketTo(ZeroOutBuffer, packetsize, SocketFlags.None, m_circuitCode); |
2286 | } | 2295 | } |
2287 | else | 2296 | else |
2288 | { | 2297 | { |
2289 | m_networkServer.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, m_circuitCode); | 2298 | m_networkServer.SendPacketTo(sendbuffer, sendbuffer.Length, SocketFlags.None, m_circuitCode); |
2290 | } | 2299 | } |
2291 | } | 2300 | } |
2292 | catch (Exception e) | 2301 | catch (Exception e) |
2293 | { | 2302 | { |
@@ -2298,7 +2307,7 @@ namespace OpenSim.Region.ClientStack | |||
2298 | Close(true); | 2307 | Close(true); |
2299 | } | 2308 | } |
2300 | } | 2309 | } |
2301 | 2310 | ||
2302 | public virtual void InPacket(Packet NewPack) | 2311 | public virtual void InPacket(Packet NewPack) |
2303 | { | 2312 | { |
2304 | // Handle appended ACKs | 2313 | // Handle appended ACKs |
@@ -2314,7 +2323,7 @@ namespace OpenSim.Region.ClientStack | |||
2314 | } | 2323 | } |
2315 | } | 2324 | } |
2316 | } | 2325 | } |
2317 | 2326 | ||
2318 | 2327 | ||
2319 | // Handle PacketAck packets | 2328 | // Handle PacketAck packets |
2320 | if (NewPack.Type == PacketType.PacketAck) | 2329 | if (NewPack.Type == PacketType.PacketAck) |
@@ -2353,7 +2362,7 @@ namespace OpenSim.Region.ClientStack | |||
2353 | item.Packet = NewPack; | 2362 | item.Packet = NewPack; |
2354 | item.Incoming = false; | 2363 | item.Incoming = false; |
2355 | item.throttleType = throttlePacketType; // Packet throttle type | 2364 | item.throttleType = throttlePacketType; // Packet throttle type |
2356 | m_packetQueue.Enqueue(item); | 2365 | m_packetQueue.Enqueue(item); |
2357 | } | 2366 | } |
2358 | 2367 | ||
2359 | # region Low Level Packet Methods | 2368 | # region Low Level Packet Methods |
@@ -2392,7 +2401,7 @@ namespace OpenSim.Region.ClientStack | |||
2392 | if ((now - packet.TickCount > RESEND_TIMEOUT) && (!packet.Header.Resent)) | 2401 | if ((now - packet.TickCount > RESEND_TIMEOUT) && (!packet.Header.Resent)) |
2393 | { | 2402 | { |
2394 | MainLog.Instance.Verbose("NETWORK", "Resending " + packet.Type.ToString() + " packet, " + | 2403 | MainLog.Instance.Verbose("NETWORK", "Resending " + packet.Type.ToString() + " packet, " + |
2395 | (now - packet.TickCount) + "ms have passed"); | 2404 | (now - packet.TickCount) + "ms have passed"); |
2396 | 2405 | ||
2397 | packet.Header.Resent = true; | 2406 | packet.Header.Resent = true; |
2398 | OutPacket(packet, ThrottleOutPacketType.Resend); | 2407 | OutPacket(packet, ThrottleOutPacketType.Resend); |
@@ -2442,6 +2451,7 @@ namespace OpenSim.Region.ClientStack | |||
2442 | } | 2451 | } |
2443 | 2452 | ||
2444 | #endregion | 2453 | #endregion |
2454 | |||
2445 | // Previously ClientView.ProcessPackets | 2455 | // Previously ClientView.ProcessPackets |
2446 | 2456 | ||
2447 | public bool AddMoney(int debit) | 2457 | public bool AddMoney(int debit) |
@@ -2539,12 +2549,13 @@ namespace OpenSim.Region.ClientStack | |||
2539 | { | 2549 | { |
2540 | if (OnModifyTerrain != null) | 2550 | if (OnModifyTerrain != null) |
2541 | { | 2551 | { |
2542 | for (int i=0; i < modify.ParcelData.Length; i++) | 2552 | for (int i = 0; i < modify.ParcelData.Length; i++) |
2543 | { | 2553 | { |
2544 | OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, | 2554 | OnModifyTerrain(modify.ModifyBlock.Height, modify.ModifyBlock.Seconds, |
2545 | modify.ModifyBlock.BrushSize, | 2555 | modify.ModifyBlock.BrushSize, |
2546 | modify.ModifyBlock.Action, modify.ParcelData[i].North, | 2556 | modify.ModifyBlock.Action, modify.ParcelData[i].North, |
2547 | modify.ParcelData[i].West, modify.ParcelData[i].South, modify.ParcelData[i].East, this); | 2557 | modify.ParcelData[i].West, modify.ParcelData[i].South, |
2558 | modify.ParcelData[i].East, this); | ||
2548 | } | 2559 | } |
2549 | } | 2560 | } |
2550 | } | 2561 | } |
@@ -2558,7 +2569,7 @@ namespace OpenSim.Region.ClientStack | |||
2558 | case PacketType.AgentWearablesRequest: | 2569 | case PacketType.AgentWearablesRequest: |
2559 | if (OnRequestWearables != null) | 2570 | if (OnRequestWearables != null) |
2560 | { | 2571 | { |
2561 | OnRequestWearables( ); | 2572 | OnRequestWearables(); |
2562 | } | 2573 | } |
2563 | if (OnRequestAvatarsData != null) | 2574 | if (OnRequestAvatarsData != null) |
2564 | { | 2575 | { |
@@ -2575,21 +2586,23 @@ namespace OpenSim.Region.ClientStack | |||
2575 | case PacketType.AgentIsNowWearing: | 2586 | case PacketType.AgentIsNowWearing: |
2576 | if (OnAvatarNowWearing != null) | 2587 | if (OnAvatarNowWearing != null) |
2577 | { | 2588 | { |
2578 | AgentIsNowWearingPacket nowWearing = (AgentIsNowWearingPacket)Pack; | 2589 | AgentIsNowWearingPacket nowWearing = (AgentIsNowWearingPacket) Pack; |
2579 | AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); | 2590 | AvatarWearingArgs wearingArgs = new AvatarWearingArgs(); |
2580 | for (int i = 0; i < nowWearing.WearableData.Length; i++) | 2591 | for (int i = 0; i < nowWearing.WearableData.Length; i++) |
2581 | { | 2592 | { |
2582 | AvatarWearingArgs.Wearable wearable = new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, nowWearing.WearableData[i].WearableType); | 2593 | AvatarWearingArgs.Wearable wearable = |
2594 | new AvatarWearingArgs.Wearable(nowWearing.WearableData[i].ItemID, | ||
2595 | nowWearing.WearableData[i].WearableType); | ||
2583 | wearingArgs.NowWearing.Add(wearable); | 2596 | wearingArgs.NowWearing.Add(wearable); |
2584 | } | 2597 | } |
2585 | OnAvatarNowWearing(this, wearingArgs); | 2598 | OnAvatarNowWearing(this, wearingArgs); |
2586 | } | 2599 | } |
2587 | break; | 2600 | break; |
2588 | case PacketType.SetAlwaysRun: | 2601 | case PacketType.SetAlwaysRun: |
2589 | SetAlwaysRunPacket run = (SetAlwaysRunPacket)Pack; | 2602 | SetAlwaysRunPacket run = (SetAlwaysRunPacket) Pack; |
2590 | 2603 | ||
2591 | if (OnSetAlwaysRun != null) | 2604 | if (OnSetAlwaysRun != null) |
2592 | OnSetAlwaysRun(this,run.AgentData.AlwaysRun); | 2605 | OnSetAlwaysRun(this, run.AgentData.AlwaysRun); |
2593 | 2606 | ||
2594 | break; | 2607 | break; |
2595 | case PacketType.CompleteAgentMovement: | 2608 | case PacketType.CompleteAgentMovement: |
@@ -2603,7 +2616,8 @@ namespace OpenSim.Region.ClientStack | |||
2603 | { | 2616 | { |
2604 | AgentUpdatePacket agenUpdate = (AgentUpdatePacket) Pack; | 2617 | AgentUpdatePacket agenUpdate = (AgentUpdatePacket) Pack; |
2605 | 2618 | ||
2606 | OnAgentUpdate(this, agenUpdate); //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); | 2619 | OnAgentUpdate(this, agenUpdate); |
2620 | //agenUpdate.AgentData.ControlFlags, agenUpdate.AgentData.BodyRotationa); | ||
2607 | } | 2621 | } |
2608 | break; | 2622 | break; |
2609 | case PacketType.AgentAnimation: | 2623 | case PacketType.AgentAnimation: |
@@ -2642,15 +2656,17 @@ namespace OpenSim.Region.ClientStack | |||
2642 | } | 2656 | } |
2643 | break; | 2657 | break; |
2644 | case PacketType.AvatarPickerRequest: | 2658 | case PacketType.AvatarPickerRequest: |
2645 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket)Pack; | 2659 | AvatarPickerRequestPacket avRequestQuery = (AvatarPickerRequestPacket) Pack; |
2646 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; | 2660 | AvatarPickerRequestPacket.AgentDataBlock Requestdata = avRequestQuery.AgentData; |
2647 | AvatarPickerRequestPacket.DataBlock querydata = avRequestQuery.Data; | 2661 | AvatarPickerRequestPacket.DataBlock querydata = avRequestQuery.Data; |
2648 | //System.Console.WriteLine("Agent Sends:" + Helpers.FieldToUTF8String(querydata.Name)); | 2662 | //System.Console.WriteLine("Agent Sends:" + Helpers.FieldToUTF8String(querydata.Name)); |
2649 | if (OnAvatarPickerRequest != null) | 2663 | if (OnAvatarPickerRequest != null) |
2650 | { | 2664 | { |
2651 | OnAvatarPickerRequest(this, Requestdata.AgentID, Requestdata.QueryID, Helpers.FieldToUTF8String(querydata.Name)); | 2665 | OnAvatarPickerRequest(this, Requestdata.AgentID, Requestdata.QueryID, |
2666 | Helpers.FieldToUTF8String(querydata.Name)); | ||
2652 | } | 2667 | } |
2653 | break; | 2668 | break; |
2669 | |||
2654 | #endregion | 2670 | #endregion |
2655 | 2671 | ||
2656 | #region Objects/m_sceneObjects | 2672 | #region Objects/m_sceneObjects |
@@ -2675,7 +2691,7 @@ namespace OpenSim.Region.ClientStack | |||
2675 | break; | 2691 | break; |
2676 | case PacketType.ObjectDelink: | 2692 | case PacketType.ObjectDelink: |
2677 | ObjectDelinkPacket delink = (ObjectDelinkPacket) Pack; | 2693 | ObjectDelinkPacket delink = (ObjectDelinkPacket) Pack; |
2678 | 2694 | ||
2679 | // It appears the prim at index 0 is not always the root prim (for | 2695 | // It appears the prim at index 0 is not always the root prim (for |
2680 | // instance, when one prim of a link set has been edited independently | 2696 | // instance, when one prim of a link set has been edited independently |
2681 | // of the others). Therefore, we'll pass all the ids onto the delink | 2697 | // of the others). Therefore, we'll pass all the ids onto the delink |
@@ -2683,11 +2699,11 @@ namespace OpenSim.Region.ClientStack | |||
2683 | List<uint> prims = new List<uint>(); | 2699 | List<uint> prims = new List<uint>(); |
2684 | for (int i = 0; i < delink.ObjectData.Length; i++) | 2700 | for (int i = 0; i < delink.ObjectData.Length; i++) |
2685 | { | 2701 | { |
2686 | prims.Add(delink.ObjectData[i].ObjectLocalID); | 2702 | prims.Add(delink.ObjectData[i].ObjectLocalID); |
2687 | } | 2703 | } |
2688 | 2704 | ||
2689 | if (OnDelinkObjects != null) | 2705 | if (OnDelinkObjects != null) |
2690 | { | 2706 | { |
2691 | OnDelinkObjects(prims); | 2707 | OnDelinkObjects(prims); |
2692 | } | 2708 | } |
2693 | 2709 | ||
@@ -2706,7 +2722,8 @@ namespace OpenSim.Region.ClientStack | |||
2706 | { | 2722 | { |
2707 | if (OnUpdatePrimShape != null) | 2723 | if (OnUpdatePrimShape != null) |
2708 | { | 2724 | { |
2709 | OnUpdatePrimShape(this.m_agentId, shapePacket.ObjectData[i].ObjectLocalID, shapePacket.ObjectData[i]); | 2725 | OnUpdatePrimShape(m_agentId, shapePacket.ObjectData[i].ObjectLocalID, |
2726 | shapePacket.ObjectData[i]); | ||
2710 | } | 2727 | } |
2711 | } | 2728 | } |
2712 | break; | 2729 | break; |
@@ -2714,7 +2731,8 @@ namespace OpenSim.Region.ClientStack | |||
2714 | ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket) Pack; | 2731 | ObjectExtraParamsPacket extraPar = (ObjectExtraParamsPacket) Pack; |
2715 | if (OnUpdateExtraParams != null) | 2732 | if (OnUpdateExtraParams != null) |
2716 | { | 2733 | { |
2717 | OnUpdateExtraParams(this.m_agentId, extraPar.ObjectData[0].ObjectLocalID, extraPar.ObjectData[0].ParamType, | 2734 | OnUpdateExtraParams(m_agentId, extraPar.ObjectData[0].ObjectLocalID, |
2735 | extraPar.ObjectData[0].ParamType, | ||
2718 | extraPar.ObjectData[0].ParamInUse, extraPar.ObjectData[0].ParamData); | 2736 | extraPar.ObjectData[0].ParamInUse, extraPar.ObjectData[0].ParamData); |
2719 | } | 2737 | } |
2720 | break; | 2738 | break; |
@@ -2726,7 +2744,8 @@ namespace OpenSim.Region.ClientStack | |||
2726 | if (OnObjectDuplicate != null) | 2744 | if (OnObjectDuplicate != null) |
2727 | { | 2745 | { |
2728 | OnObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, | 2746 | OnObjectDuplicate(dupe.ObjectData[i].ObjectLocalID, dupe.SharedData.Offset, |
2729 | dupe.SharedData.DuplicateFlags, AgentandGroupData.AgentID, AgentandGroupData.GroupID); | 2747 | dupe.SharedData.DuplicateFlags, AgentandGroupData.AgentID, |
2748 | AgentandGroupData.GroupID); | ||
2730 | } | 2749 | } |
2731 | } | 2750 | } |
2732 | 2751 | ||
@@ -2809,21 +2828,23 @@ namespace OpenSim.Region.ClientStack | |||
2809 | { | 2828 | { |
2810 | if (OnObjectName != null) | 2829 | if (OnObjectName != null) |
2811 | { | 2830 | { |
2812 | OnObjectName(this, objName.ObjectData[i].LocalID, m_encoding.GetString(objName.ObjectData[i].Name)); | 2831 | OnObjectName(this, objName.ObjectData[i].LocalID, |
2832 | m_encoding.GetString(objName.ObjectData[i].Name)); | ||
2813 | } | 2833 | } |
2814 | } | 2834 | } |
2815 | break; | 2835 | break; |
2816 | case PacketType.ObjectPermissions: | 2836 | case PacketType.ObjectPermissions: |
2817 | MainLog.Instance.Warn("CLIENT", "unhandled packet " + PacketType.ObjectPermissions.ToString()); | 2837 | MainLog.Instance.Warn("CLIENT", "unhandled packet " + PacketType.ObjectPermissions.ToString()); |
2818 | ObjectPermissionsPacket newobjPerms = (ObjectPermissionsPacket)Pack; | 2838 | ObjectPermissionsPacket newobjPerms = (ObjectPermissionsPacket) Pack; |
2839 | |||
2840 | List<ObjectPermissionsPacket.ObjectDataBlock> permChanges = | ||
2841 | new List<ObjectPermissionsPacket.ObjectDataBlock>(); | ||
2819 | 2842 | ||
2820 | List<ObjectPermissionsPacket.ObjectDataBlock> permChanges = new List<ObjectPermissionsPacket.ObjectDataBlock>(); | ||
2821 | |||
2822 | for (int i = 0; i < newobjPerms.ObjectData.Length; i++) | 2843 | for (int i = 0; i < newobjPerms.ObjectData.Length; i++) |
2823 | { | 2844 | { |
2824 | permChanges.Add(newobjPerms.ObjectData[i]); | 2845 | permChanges.Add(newobjPerms.ObjectData[i]); |
2825 | } | 2846 | } |
2826 | 2847 | ||
2827 | // Here's our data, | 2848 | // Here's our data, |
2828 | // PermField contains the field the info goes into | 2849 | // PermField contains the field the info goes into |
2829 | // PermField determines which mask we're changing | 2850 | // PermField determines which mask we're changing |
@@ -2847,16 +2868,15 @@ namespace OpenSim.Region.ClientStack | |||
2847 | 2868 | ||
2848 | case PacketType.RequestObjectPropertiesFamily: | 2869 | case PacketType.RequestObjectPropertiesFamily: |
2849 | //This powers the little tooltip that appears when you move your mouse over an object | 2870 | //This powers the little tooltip that appears when you move your mouse over an object |
2850 | RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket)Pack; | 2871 | RequestObjectPropertiesFamilyPacket packToolTip = (RequestObjectPropertiesFamilyPacket) Pack; |
2851 | 2872 | ||
2852 | 2873 | ||
2853 | RequestObjectPropertiesFamilyPacket.ObjectDataBlock packObjBlock = packToolTip.ObjectData; | 2874 | RequestObjectPropertiesFamilyPacket.ObjectDataBlock packObjBlock = packToolTip.ObjectData; |
2854 | 2875 | ||
2855 | if (OnRequestObjectPropertiesFamily != null) | 2876 | if (OnRequestObjectPropertiesFamily != null) |
2856 | { | 2877 | { |
2857 | OnRequestObjectPropertiesFamily(this, this.m_agentId, packObjBlock.RequestFlags, packObjBlock.ObjectID); | 2878 | OnRequestObjectPropertiesFamily(this, m_agentId, packObjBlock.RequestFlags, |
2858 | 2879 | packObjBlock.ObjectID); | |
2859 | |||
2860 | } | 2880 | } |
2861 | 2881 | ||
2862 | break; | 2882 | break; |
@@ -2882,7 +2902,7 @@ namespace OpenSim.Region.ClientStack | |||
2882 | OnRequestTexture(this, args); | 2902 | OnRequestTexture(this, args); |
2883 | } | 2903 | } |
2884 | 2904 | ||
2885 | // m_assetCache.AddTextureRequest(this, imageRequest.RequestImage[i].Image, | 2905 | // m_assetCache.AddTextureRequest(this, imageRequest.RequestImage[i].Image, |
2886 | // imageRequest.RequestImage[i].Packet, | 2906 | // imageRequest.RequestImage[i].Packet, |
2887 | // imageRequest.RequestImage[i].DiscardLevel); | 2907 | // imageRequest.RequestImage[i].DiscardLevel); |
2888 | } | 2908 | } |
@@ -2898,10 +2918,11 @@ namespace OpenSim.Region.ClientStack | |||
2898 | // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionId).ToString()); | 2918 | // Console.WriteLine("upload request was for assetid: " + request.AssetBlock.TransactionID.Combine(this.SecureSessionId).ToString()); |
2899 | if (OnAssetUploadRequest != null) | 2919 | if (OnAssetUploadRequest != null) |
2900 | { | 2920 | { |
2901 | LLUUID temp=libsecondlife.LLUUID.Combine(request.AssetBlock.TransactionID, SecureSessionId); | 2921 | LLUUID temp = LLUUID.Combine(request.AssetBlock.TransactionID, SecureSessionId); |
2902 | OnAssetUploadRequest(this, temp, | 2922 | OnAssetUploadRequest(this, temp, |
2903 | request.AssetBlock.TransactionID, request.AssetBlock.Type, | 2923 | request.AssetBlock.TransactionID, request.AssetBlock.Type, |
2904 | request.AssetBlock.AssetData, request.AssetBlock.StoreLocal, request.AssetBlock.Tempfile); | 2924 | request.AssetBlock.AssetData, request.AssetBlock.StoreLocal, |
2925 | request.AssetBlock.Tempfile); | ||
2905 | } | 2926 | } |
2906 | break; | 2927 | break; |
2907 | case PacketType.RequestXfer: | 2928 | case PacketType.RequestXfer: |
@@ -2938,24 +2959,24 @@ namespace OpenSim.Region.ClientStack | |||
2938 | case PacketType.UpdateInventoryFolder: | 2959 | case PacketType.UpdateInventoryFolder: |
2939 | if (OnUpdateInventoryFolder != null) | 2960 | if (OnUpdateInventoryFolder != null) |
2940 | { | 2961 | { |
2941 | UpdateInventoryFolderPacket invFolder = (UpdateInventoryFolderPacket)Pack; | 2962 | UpdateInventoryFolderPacket invFolder = (UpdateInventoryFolderPacket) Pack; |
2942 | for (int i = 0; i < invFolder.FolderData.Length; i++) | 2963 | for (int i = 0; i < invFolder.FolderData.Length; i++) |
2943 | { | 2964 | { |
2944 | OnUpdateInventoryFolder(this, invFolder.FolderData[i].FolderID, | 2965 | OnUpdateInventoryFolder(this, invFolder.FolderData[i].FolderID, |
2945 | (ushort)invFolder.FolderData[i].Type, | 2966 | (ushort) invFolder.FolderData[i].Type, |
2946 | Util.FieldToString(invFolder.FolderData[i].Name), | 2967 | Util.FieldToString(invFolder.FolderData[i].Name), |
2947 | invFolder.FolderData[i].ParentID); | 2968 | invFolder.FolderData[i].ParentID); |
2948 | } | 2969 | } |
2949 | } | 2970 | } |
2950 | break; | 2971 | break; |
2951 | case PacketType.MoveInventoryFolder: | 2972 | case PacketType.MoveInventoryFolder: |
2952 | if (OnMoveInventoryFolder != null) | 2973 | if (OnMoveInventoryFolder != null) |
2953 | { | 2974 | { |
2954 | MoveInventoryFolderPacket invFolder = (MoveInventoryFolderPacket)Pack; | 2975 | MoveInventoryFolderPacket invFolder = (MoveInventoryFolderPacket) Pack; |
2955 | for (int i = 0; i < invFolder.InventoryData.Length; i++) | 2976 | for (int i = 0; i < invFolder.InventoryData.Length; i++) |
2956 | { | 2977 | { |
2957 | OnMoveInventoryFolder(this, invFolder.InventoryData[i].FolderID, | 2978 | OnMoveInventoryFolder(this, invFolder.InventoryData[i].FolderID, |
2958 | invFolder.InventoryData[i].ParentID); | 2979 | invFolder.InventoryData[i].ParentID); |
2959 | } | 2980 | } |
2960 | } | 2981 | } |
2961 | break; | 2982 | break; |
@@ -2997,7 +3018,7 @@ namespace OpenSim.Region.ClientStack | |||
2997 | case PacketType.PurgeInventoryDescendents: | 3018 | case PacketType.PurgeInventoryDescendents: |
2998 | if (OnPurgeInventoryDescendents != null) | 3019 | if (OnPurgeInventoryDescendents != null) |
2999 | { | 3020 | { |
3000 | PurgeInventoryDescendentsPacket Purge = (PurgeInventoryDescendentsPacket)Pack; | 3021 | PurgeInventoryDescendentsPacket Purge = (PurgeInventoryDescendentsPacket) Pack; |
3001 | OnPurgeInventoryDescendents(this, Purge.InventoryData.FolderID); | 3022 | OnPurgeInventoryDescendents(this, Purge.InventoryData.FolderID); |
3002 | } | 3023 | } |
3003 | break; | 3024 | break; |
@@ -3007,11 +3028,11 @@ namespace OpenSim.Region.ClientStack | |||
3007 | { | 3028 | { |
3008 | for (int i = 0; i < update.InventoryData.Length; i++) | 3029 | for (int i = 0; i < update.InventoryData.Length; i++) |
3009 | { | 3030 | { |
3010 | OnUpdateInventoryItem(this, update.InventoryData[i].TransactionID, | 3031 | OnUpdateInventoryItem(this, update.InventoryData[i].TransactionID, |
3011 | update.InventoryData[i].ItemID, | 3032 | update.InventoryData[i].ItemID, |
3012 | Util.FieldToString(update.InventoryData[i].Name), | 3033 | Util.FieldToString(update.InventoryData[i].Name), |
3013 | Util.FieldToString(update.InventoryData[i].Description), | 3034 | Util.FieldToString(update.InventoryData[i].Description), |
3014 | update.InventoryData[i].NextOwnerMask); | 3035 | update.InventoryData[i].NextOwnerMask); |
3015 | } | 3036 | } |
3016 | } | 3037 | } |
3017 | //Console.WriteLine(Pack.ToString()); | 3038 | //Console.WriteLine(Pack.ToString()); |
@@ -3051,17 +3072,20 @@ namespace OpenSim.Region.ClientStack | |||
3051 | { | 3072 | { |
3052 | foreach (CopyInventoryItemPacket.InventoryDataBlock datablock in copyitem.InventoryData) | 3073 | foreach (CopyInventoryItemPacket.InventoryDataBlock datablock in copyitem.InventoryData) |
3053 | { | 3074 | { |
3054 | OnCopyInventoryItem(this, datablock.CallbackID, datablock.OldAgentID, datablock.OldItemID, datablock.NewFolderID, Util.FieldToString(datablock.NewName)); | 3075 | OnCopyInventoryItem(this, datablock.CallbackID, datablock.OldAgentID, |
3076 | datablock.OldItemID, datablock.NewFolderID, | ||
3077 | Util.FieldToString(datablock.NewName)); | ||
3055 | } | 3078 | } |
3056 | } | 3079 | } |
3057 | break; | 3080 | break; |
3058 | case PacketType.MoveInventoryItem: | 3081 | case PacketType.MoveInventoryItem: |
3059 | MoveInventoryItemPacket moveitem = (MoveInventoryItemPacket)Pack; | 3082 | MoveInventoryItemPacket moveitem = (MoveInventoryItemPacket) Pack; |
3060 | if (OnMoveInventoryItem != null) | 3083 | if (OnMoveInventoryItem != null) |
3061 | { | 3084 | { |
3062 | foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData) | 3085 | foreach (MoveInventoryItemPacket.InventoryDataBlock datablock in moveitem.InventoryData) |
3063 | { | 3086 | { |
3064 | OnMoveInventoryItem(this, datablock.FolderID, datablock.ItemID, datablock.Length, Util.FieldToString(datablock.NewName)); | 3087 | OnMoveInventoryItem(this, datablock.FolderID, datablock.ItemID, datablock.Length, |
3088 | Util.FieldToString(datablock.NewName)); | ||
3065 | } | 3089 | } |
3066 | } | 3090 | } |
3067 | break; | 3091 | break; |
@@ -3115,7 +3139,7 @@ namespace OpenSim.Region.ClientStack | |||
3115 | case PacketType.MapNameRequest: | 3139 | case PacketType.MapNameRequest: |
3116 | MapNameRequestPacket map = (MapNameRequestPacket) Pack; | 3140 | MapNameRequestPacket map = (MapNameRequestPacket) Pack; |
3117 | string mapName = UTF8Encoding.UTF8.GetString(map.NameData.Name, 0, | 3141 | string mapName = UTF8Encoding.UTF8.GetString(map.NameData.Name, 0, |
3118 | map.NameData.Name.Length - 1); | 3142 | map.NameData.Name.Length - 1); |
3119 | if (OnMapNameRequest != null) | 3143 | if (OnMapNameRequest != null) |
3120 | { | 3144 | { |
3121 | OnMapNameRequest(this, mapName); | 3145 | OnMapNameRequest(this, mapName); |
@@ -3202,29 +3226,34 @@ namespace OpenSim.Region.ClientStack | |||
3202 | break; | 3226 | break; |
3203 | 3227 | ||
3204 | #region Parcel related packets | 3228 | #region Parcel related packets |
3229 | |||
3205 | case PacketType.ParcelAccessListRequest: | 3230 | case PacketType.ParcelAccessListRequest: |
3206 | ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket)Pack; | 3231 | ParcelAccessListRequestPacket requestPacket = (ParcelAccessListRequestPacket) Pack; |
3207 | if (OnParcelAccessListRequest != null) | 3232 | if (OnParcelAccessListRequest != null) |
3208 | { | 3233 | { |
3209 | OnParcelAccessListRequest(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID, requestPacket.Data.Flags, requestPacket.Data.SequenceID, requestPacket.Data.LocalID,this); | 3234 | OnParcelAccessListRequest(requestPacket.AgentData.AgentID, requestPacket.AgentData.SessionID, |
3235 | requestPacket.Data.Flags, requestPacket.Data.SequenceID, | ||
3236 | requestPacket.Data.LocalID, this); | ||
3210 | } | 3237 | } |
3211 | break; | 3238 | break; |
3212 | 3239 | ||
3213 | case PacketType.ParcelAccessListUpdate: | 3240 | case PacketType.ParcelAccessListUpdate: |
3214 | ParcelAccessListUpdatePacket updatePacket = (ParcelAccessListUpdatePacket)Pack; | 3241 | ParcelAccessListUpdatePacket updatePacket = (ParcelAccessListUpdatePacket) Pack; |
3215 | List<ParcelManager.ParcelAccessEntry> entries = new List<ParcelManager.ParcelAccessEntry>(); | 3242 | List<ParcelManager.ParcelAccessEntry> entries = new List<ParcelManager.ParcelAccessEntry>(); |
3216 | foreach (ParcelAccessListUpdatePacket.ListBlock block in updatePacket.List) | 3243 | foreach (ParcelAccessListUpdatePacket.ListBlock block in updatePacket.List) |
3217 | { | 3244 | { |
3218 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 3245 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
3219 | entry.AgentID = block.ID; | 3246 | entry.AgentID = block.ID; |
3220 | entry.Flags = (ParcelManager.AccessList)block.Flags; | 3247 | entry.Flags = (ParcelManager.AccessList) block.Flags; |
3221 | entry.Time = new DateTime(); | 3248 | entry.Time = new DateTime(); |
3222 | entries.Add(entry); | 3249 | entries.Add(entry); |
3223 | } | 3250 | } |
3224 | 3251 | ||
3225 | if (OnParcelAccessListUpdateRequest != null) | 3252 | if (OnParcelAccessListUpdateRequest != null) |
3226 | { | 3253 | { |
3227 | OnParcelAccessListUpdateRequest(updatePacket.AgentData.AgentID, updatePacket.AgentData.SessionID, updatePacket.Data.Flags, updatePacket.Data.LocalID, entries, this); | 3254 | OnParcelAccessListUpdateRequest(updatePacket.AgentData.AgentID, |
3255 | updatePacket.AgentData.SessionID, updatePacket.Data.Flags, | ||
3256 | updatePacket.Data.LocalID, entries, this); | ||
3228 | } | 3257 | } |
3229 | break; | 3258 | break; |
3230 | case PacketType.ParcelPropertiesRequest: | 3259 | case PacketType.ParcelPropertiesRequest: |
@@ -3296,28 +3325,30 @@ namespace OpenSim.Region.ClientStack | |||
3296 | } | 3325 | } |
3297 | break; | 3326 | break; |
3298 | case PacketType.RequestRegionInfo: | 3327 | case PacketType.RequestRegionInfo: |
3299 | RequestRegionInfoPacket.AgentDataBlock mPacket = ((RequestRegionInfoPacket)Pack).AgentData; | 3328 | RequestRegionInfoPacket.AgentDataBlock mPacket = ((RequestRegionInfoPacket) Pack).AgentData; |
3300 | if (OnRegionInfoRequest != null) | 3329 | if (OnRegionInfoRequest != null) |
3301 | { | 3330 | { |
3302 | OnRegionInfoRequest(this, mPacket.SessionID); | 3331 | OnRegionInfoRequest(this, mPacket.SessionID); |
3303 | } | 3332 | } |
3304 | break; | 3333 | break; |
3305 | case PacketType.EstateCovenantRequest: | 3334 | case PacketType.EstateCovenantRequest: |
3306 | // TODO: handle this packet | 3335 | // TODO: handle this packet |
3307 | EstateCovenantRequestPacket.AgentDataBlock epack = ((EstateCovenantRequestPacket)Pack).AgentData; | 3336 | EstateCovenantRequestPacket.AgentDataBlock epack = |
3337 | ((EstateCovenantRequestPacket) Pack).AgentData; | ||
3308 | if (OnEstateCovenantRequest != null) | 3338 | if (OnEstateCovenantRequest != null) |
3309 | { | 3339 | { |
3310 | OnEstateCovenantRequest(this, epack.SessionID); | 3340 | OnEstateCovenantRequest(this, epack.SessionID); |
3311 | } | 3341 | } |
3312 | break; | 3342 | break; |
3313 | case PacketType.AgentThrottle: | 3343 | case PacketType.AgentThrottle: |
3314 | AgentThrottlePacket atpack = (AgentThrottlePacket)Pack; | 3344 | AgentThrottlePacket atpack = (AgentThrottlePacket) Pack; |
3315 | m_packetQueue.SetThrottleFromClient(atpack.Throttle.Throttles); | 3345 | m_packetQueue.SetThrottleFromClient(atpack.Throttle.Throttles); |
3316 | break; | 3346 | break; |
3317 | 3347 | ||
3318 | #endregion | 3348 | #endregion |
3319 | 3349 | ||
3320 | #region unimplemented handlers | 3350 | #region unimplemented handlers |
3351 | |||
3321 | case PacketType.RequestGodlikePowers: | 3352 | case PacketType.RequestGodlikePowers: |
3322 | RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket) Pack; | 3353 | RequestGodlikePowersPacket rglpPack = (RequestGodlikePowersPacket) Pack; |
3323 | RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock; | 3354 | RequestGodlikePowersPacket.RequestBlockBlock rblock = rglpPack.RequestBlock; |
@@ -3325,16 +3356,17 @@ namespace OpenSim.Region.ClientStack | |||
3325 | RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData; | 3356 | RequestGodlikePowersPacket.AgentDataBlock ablock = rglpPack.AgentData; |
3326 | 3357 | ||
3327 | OnRequestGodlikePowers(ablock.AgentID, ablock.SessionID, token, this); | 3358 | OnRequestGodlikePowers(ablock.AgentID, ablock.SessionID, token, this); |
3328 | 3359 | ||
3329 | break; | 3360 | break; |
3330 | case PacketType.GodKickUser: | 3361 | case PacketType.GodKickUser: |
3331 | MainLog.Instance.Warn("CLIENT", "unhandled GodKickUser packet"); | 3362 | MainLog.Instance.Warn("CLIENT", "unhandled GodKickUser packet"); |
3332 | 3363 | ||
3333 | GodKickUserPacket gkupack = (GodKickUserPacket) Pack; | 3364 | GodKickUserPacket gkupack = (GodKickUserPacket) Pack; |
3334 | 3365 | ||
3335 | if (gkupack.UserInfo.GodSessionID == SessionId && this.AgentId == gkupack.UserInfo.GodID) | 3366 | if (gkupack.UserInfo.GodSessionID == SessionId && AgentId == gkupack.UserInfo.GodID) |
3336 | { | 3367 | { |
3337 | OnGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, gkupack.UserInfo.AgentID, (uint) 0, gkupack.UserInfo.Reason); | 3368 | OnGodKickUser(gkupack.UserInfo.GodID, gkupack.UserInfo.GodSessionID, |
3369 | gkupack.UserInfo.AgentID, (uint) 0, gkupack.UserInfo.Reason); | ||
3338 | } | 3370 | } |
3339 | else | 3371 | else |
3340 | { | 3372 | { |
@@ -3404,7 +3436,7 @@ namespace OpenSim.Region.ClientStack | |||
3404 | // TODO: handle this packet | 3436 | // TODO: handle this packet |
3405 | MainLog.Instance.Warn("CLIENT", "unhandled AgentDataUpdateRequest packet"); | 3437 | MainLog.Instance.Warn("CLIENT", "unhandled AgentDataUpdateRequest packet"); |
3406 | break; | 3438 | break; |
3407 | 3439 | ||
3408 | case PacketType.ParcelDwellRequest: | 3440 | case PacketType.ParcelDwellRequest: |
3409 | // TODO: handle this packet | 3441 | // TODO: handle this packet |
3410 | MainLog.Instance.Warn("CLIENT", "unhandled ParcelDwellRequest packet"); | 3442 | MainLog.Instance.Warn("CLIENT", "unhandled ParcelDwellRequest packet"); |
@@ -3440,7 +3472,7 @@ namespace OpenSim.Region.ClientStack | |||
3440 | default: | 3472 | default: |
3441 | MainLog.Instance.Warn("CLIENT", "unhandled packet " + Pack.ToString()); | 3473 | MainLog.Instance.Warn("CLIENT", "unhandled packet " + Pack.ToString()); |
3442 | break; | 3474 | break; |
3443 | 3475 | ||
3444 | #endregion | 3476 | #endregion |
3445 | } | 3477 | } |
3446 | } | 3478 | } |
@@ -3490,4 +3522,4 @@ namespace OpenSim.Region.ClientStack | |||
3490 | OutPacket(logReply, ThrottleOutPacketType.Task); | 3522 | OutPacket(logReply, ThrottleOutPacketType.Task); |
3491 | } | 3523 | } |
3492 | } | 3524 | } |
3493 | } | 3525 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/PacketQueue.cs b/OpenSim/Region/ClientStack/PacketQueue.cs index 4c9295e..1065f63 100644 --- a/OpenSim/Region/ClientStack/PacketQueue.cs +++ b/OpenSim/Region/ClientStack/PacketQueue.cs | |||
@@ -27,17 +27,10 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Net; | ||
31 | using System.Net.Sockets; | ||
32 | using System.Text; | ||
33 | using System.Threading; | 30 | using System.Threading; |
34 | using System.Timers; | 31 | using System.Timers; |
35 | using Axiom.Math; | ||
36 | using libsecondlife; | ||
37 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
38 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
39 | using OpenSim.Framework.Communications.Cache; | ||
40 | using OpenSim.Framework.Console; | ||
41 | using Timer=System.Timers.Timer; | 34 | using Timer=System.Timers.Timer; |
42 | 35 | ||
43 | namespace OpenSim.Region.ClientStack | 36 | namespace OpenSim.Region.ClientStack |
@@ -47,7 +40,7 @@ namespace OpenSim.Region.ClientStack | |||
47 | private bool m_enabled = true; | 40 | private bool m_enabled = true; |
48 | 41 | ||
49 | private BlockingQueue<QueItem> SendQueue; | 42 | private BlockingQueue<QueItem> SendQueue; |
50 | 43 | ||
51 | private Queue<QueItem> IncomingPacketQueue; | 44 | private Queue<QueItem> IncomingPacketQueue; |
52 | private Queue<QueItem> OutgoingPacketQueue; | 45 | private Queue<QueItem> OutgoingPacketQueue; |
53 | private Queue<QueItem> ResendOutgoingPacketQueue; | 46 | private Queue<QueItem> ResendOutgoingPacketQueue; |
@@ -57,7 +50,7 @@ namespace OpenSim.Region.ClientStack | |||
57 | private Queue<QueItem> TaskOutgoingPacketQueue; | 50 | private Queue<QueItem> TaskOutgoingPacketQueue; |
58 | private Queue<QueItem> TextureOutgoingPacketQueue; | 51 | private Queue<QueItem> TextureOutgoingPacketQueue; |
59 | private Queue<QueItem> AssetOutgoingPacketQueue; | 52 | private Queue<QueItem> AssetOutgoingPacketQueue; |
60 | 53 | ||
61 | private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>(); | 54 | private Dictionary<uint, uint> PendingAcks = new Dictionary<uint, uint>(); |
62 | private Dictionary<uint, Packet> NeedAck = new Dictionary<uint, Packet>(); | 55 | private Dictionary<uint, Packet> NeedAck = new Dictionary<uint, Packet>(); |
63 | 56 | ||
@@ -82,15 +75,15 @@ namespace OpenSim.Region.ClientStack | |||
82 | // private long ThrottleInterval; | 75 | // private long ThrottleInterval; |
83 | private Timer throttleTimer; | 76 | private Timer throttleTimer; |
84 | 77 | ||
85 | public PacketQueue() | 78 | public PacketQueue() |
86 | { | 79 | { |
87 | // While working on this, the BlockingQueue had me fooled for a bit. | 80 | // While working on this, the BlockingQueue had me fooled for a bit. |
88 | // The Blocking queue causes the thread to stop until there's something | 81 | // The Blocking queue causes the thread to stop until there's something |
89 | // in it to process. it's an on-purpose threadlock though because | 82 | // in it to process. it's an on-purpose threadlock though because |
90 | // without it, the clientloop will suck up all sim resources. | 83 | // without it, the clientloop will suck up all sim resources. |
91 | 84 | ||
92 | SendQueue = new BlockingQueue<QueItem>(); | 85 | SendQueue = new BlockingQueue<QueItem>(); |
93 | 86 | ||
94 | IncomingPacketQueue = new Queue<QueItem>(); | 87 | IncomingPacketQueue = new Queue<QueItem>(); |
95 | OutgoingPacketQueue = new Queue<QueItem>(); | 88 | OutgoingPacketQueue = new Queue<QueItem>(); |
96 | ResendOutgoingPacketQueue = new Queue<QueItem>(); | 89 | ResendOutgoingPacketQueue = new Queue<QueItem>(); |
@@ -100,7 +93,7 @@ namespace OpenSim.Region.ClientStack | |||
100 | TaskOutgoingPacketQueue = new Queue<QueItem>(); | 93 | TaskOutgoingPacketQueue = new Queue<QueItem>(); |
101 | TextureOutgoingPacketQueue = new Queue<QueItem>(); | 94 | TextureOutgoingPacketQueue = new Queue<QueItem>(); |
102 | AssetOutgoingPacketQueue = new Queue<QueItem>(); | 95 | AssetOutgoingPacketQueue = new Queue<QueItem>(); |
103 | 96 | ||
104 | 97 | ||
105 | // Set up the throttle classes (min, max, current) in bytes | 98 | // Set up the throttle classes (min, max, current) in bytes |
106 | ResendThrottle = new PacketThrottle(5000, 100000, 50000); | 99 | ResendThrottle = new PacketThrottle(5000, 100000, 50000); |
@@ -114,14 +107,13 @@ namespace OpenSim.Region.ClientStack | |||
114 | // Number of bytes allowed to go out per second. (256kbps per client) | 107 | // Number of bytes allowed to go out per second. (256kbps per client) |
115 | TotalThrottle = new PacketThrottle(0, 162144, 1536000); | 108 | TotalThrottle = new PacketThrottle(0, 162144, 1536000); |
116 | 109 | ||
117 | throttleTimer = new Timer((int)(throttletimems/throttleTimeDivisor)); | 110 | throttleTimer = new Timer((int) (throttletimems/throttleTimeDivisor)); |
118 | throttleTimer.Elapsed += new ElapsedEventHandler(ThrottleTimerElapsed); | 111 | throttleTimer.Elapsed += new ElapsedEventHandler(ThrottleTimerElapsed); |
119 | throttleTimer.Start(); | 112 | throttleTimer.Start(); |
120 | 113 | ||
121 | // TIMERS needed for this | 114 | // TIMERS needed for this |
122 | // LastThrottle = DateTime.Now.Ticks; | 115 | // LastThrottle = DateTime.Now.Ticks; |
123 | // ThrottleInterval = (long)(throttletimems/throttleTimeDivisor); | 116 | // ThrottleInterval = (long)(throttletimems/throttleTimeDivisor); |
124 | |||
125 | } | 117 | } |
126 | 118 | ||
127 | /* STANDARD QUEUE MANIPULATION INTERFACES */ | 119 | /* STANDARD QUEUE MANIPULATION INTERFACES */ |
@@ -129,44 +121,48 @@ namespace OpenSim.Region.ClientStack | |||
129 | 121 | ||
130 | public void Enqueue(QueItem item) | 122 | public void Enqueue(QueItem item) |
131 | { | 123 | { |
132 | if (!m_enabled) {return;} | 124 | if (!m_enabled) |
125 | { | ||
126 | return; | ||
127 | } | ||
133 | // We could micro lock, but that will tend to actually | 128 | // We could micro lock, but that will tend to actually |
134 | // probably be worse than just synchronizing on SendQueue | 129 | // probably be worse than just synchronizing on SendQueue |
135 | 130 | ||
136 | lock (this) { | 131 | lock (this) |
132 | { | ||
137 | switch (item.throttleType) | 133 | switch (item.throttleType) |
138 | { | 134 | { |
139 | case ThrottleOutPacketType.Resend: | 135 | case ThrottleOutPacketType.Resend: |
140 | ThrottleCheck(ref ResendThrottle, ref ResendOutgoingPacketQueue, item); | 136 | ThrottleCheck(ref ResendThrottle, ref ResendOutgoingPacketQueue, item); |
141 | break; | 137 | break; |
142 | case ThrottleOutPacketType.Texture: | 138 | case ThrottleOutPacketType.Texture: |
143 | ThrottleCheck(ref TextureThrottle, ref TextureOutgoingPacketQueue, item); | 139 | ThrottleCheck(ref TextureThrottle, ref TextureOutgoingPacketQueue, item); |
144 | break; | 140 | break; |
145 | case ThrottleOutPacketType.Task: | 141 | case ThrottleOutPacketType.Task: |
146 | ThrottleCheck(ref TaskThrottle, ref TaskOutgoingPacketQueue, item); | 142 | ThrottleCheck(ref TaskThrottle, ref TaskOutgoingPacketQueue, item); |
147 | break; | 143 | break; |
148 | case ThrottleOutPacketType.Land: | 144 | case ThrottleOutPacketType.Land: |
149 | ThrottleCheck(ref LandThrottle, ref LandOutgoingPacketQueue, item); | 145 | ThrottleCheck(ref LandThrottle, ref LandOutgoingPacketQueue, item); |
150 | break; | 146 | break; |
151 | case ThrottleOutPacketType.Asset: | 147 | case ThrottleOutPacketType.Asset: |
152 | ThrottleCheck(ref AssetThrottle, ref AssetOutgoingPacketQueue, item); | 148 | ThrottleCheck(ref AssetThrottle, ref AssetOutgoingPacketQueue, item); |
153 | break; | 149 | break; |
154 | case ThrottleOutPacketType.Cloud: | 150 | case ThrottleOutPacketType.Cloud: |
155 | ThrottleCheck(ref CloudThrottle, ref CloudOutgoingPacketQueue, item); | 151 | ThrottleCheck(ref CloudThrottle, ref CloudOutgoingPacketQueue, item); |
156 | break; | 152 | break; |
157 | case ThrottleOutPacketType.Wind: | 153 | case ThrottleOutPacketType.Wind: |
158 | ThrottleCheck(ref WindThrottle, ref WindOutgoingPacketQueue, item); | 154 | ThrottleCheck(ref WindThrottle, ref WindOutgoingPacketQueue, item); |
159 | break; | 155 | break; |
160 | 156 | ||
161 | default: | 157 | default: |
162 | // Acknowledgements and other such stuff should go directly to the blocking Queue | 158 | // Acknowledgements and other such stuff should go directly to the blocking Queue |
163 | // Throttling them may and likely 'will' be problematic | 159 | // Throttling them may and likely 'will' be problematic |
164 | SendQueue.Enqueue(item); | 160 | SendQueue.Enqueue(item); |
165 | break; | 161 | break; |
166 | } | 162 | } |
167 | } | 163 | } |
168 | } | 164 | } |
169 | 165 | ||
170 | public QueItem Dequeue() | 166 | public QueItem Dequeue() |
171 | { | 167 | { |
172 | return SendQueue.Dequeue(); | 168 | return SendQueue.Dequeue(); |
@@ -174,7 +170,8 @@ namespace OpenSim.Region.ClientStack | |||
174 | 170 | ||
175 | public void Flush() | 171 | public void Flush() |
176 | { | 172 | { |
177 | lock(this) { | 173 | lock (this) |
174 | { | ||
178 | while (PacketsWaiting()) | 175 | while (PacketsWaiting()) |
179 | { | 176 | { |
180 | //Now comes the fun part.. we dump all our elements into m_packetQueue that we've saved up. | 177 | //Now comes the fun part.. we dump all our elements into m_packetQueue that we've saved up. |
@@ -211,7 +208,7 @@ namespace OpenSim.Region.ClientStack | |||
211 | } | 208 | } |
212 | } | 209 | } |
213 | 210 | ||
214 | public void Close() | 211 | public void Close() |
215 | { | 212 | { |
216 | m_enabled = false; | 213 | m_enabled = false; |
217 | throttleTimer.Stop(); | 214 | throttleTimer.Stop(); |
@@ -242,22 +239,22 @@ namespace OpenSim.Region.ClientStack | |||
242 | 239 | ||
243 | public void ProcessThrottle() | 240 | public void ProcessThrottle() |
244 | { | 241 | { |
245 | |||
246 | // I was considering this.. Will an event fire if the thread it's on is blocked? | 242 | // I was considering this.. Will an event fire if the thread it's on is blocked? |
247 | 243 | ||
248 | // Then I figured out.. it doesn't really matter.. because this thread won't be blocked for long | 244 | // Then I figured out.. it doesn't really matter.. because this thread won't be blocked for long |
249 | // The General overhead of the UDP protocol gets sent to the queue un-throttled by this | 245 | // The General overhead of the UDP protocol gets sent to the queue un-throttled by this |
250 | // so This'll pick up about around the right time. | 246 | // so This'll pick up about around the right time. |
251 | 247 | ||
252 | int MaxThrottleLoops = 4550; // 50*7 packets can be dequeued at once. | 248 | int MaxThrottleLoops = 4550; // 50*7 packets can be dequeued at once. |
253 | int throttleLoops = 0; | 249 | int throttleLoops = 0; |
254 | 250 | ||
255 | // We're going to dequeue all of the saved up packets until | 251 | // We're going to dequeue all of the saved up packets until |
256 | // we've hit the throttle limit or there's no more packets to send | 252 | // we've hit the throttle limit or there's no more packets to send |
257 | lock (this) { | 253 | lock (this) |
254 | { | ||
258 | ResetCounters(); | 255 | ResetCounters(); |
259 | // MainLog.Instance.Verbose("THROTTLE", "Entering Throttle"); | 256 | // MainLog.Instance.Verbose("THROTTLE", "Entering Throttle"); |
260 | while (TotalThrottle.UnderLimit() && PacketsWaiting() && | 257 | while (TotalThrottle.UnderLimit() && PacketsWaiting() && |
261 | (throttleLoops <= MaxThrottleLoops)) | 258 | (throttleLoops <= MaxThrottleLoops)) |
262 | { | 259 | { |
263 | throttleLoops++; | 260 | throttleLoops++; |
@@ -265,7 +262,7 @@ namespace OpenSim.Region.ClientStack | |||
265 | if (ResendThrottle.UnderLimit() && ResendOutgoingPacketQueue.Count > 0) | 262 | if (ResendThrottle.UnderLimit() && ResendOutgoingPacketQueue.Count > 0) |
266 | { | 263 | { |
267 | QueItem qpack = ResendOutgoingPacketQueue.Dequeue(); | 264 | QueItem qpack = ResendOutgoingPacketQueue.Dequeue(); |
268 | 265 | ||
269 | SendQueue.Enqueue(qpack); | 266 | SendQueue.Enqueue(qpack); |
270 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 267 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
271 | ResendThrottle.Add(qpack.Packet.ToBytes().Length); | 268 | ResendThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -273,7 +270,7 @@ namespace OpenSim.Region.ClientStack | |||
273 | if (LandThrottle.UnderLimit() && LandOutgoingPacketQueue.Count > 0) | 270 | if (LandThrottle.UnderLimit() && LandOutgoingPacketQueue.Count > 0) |
274 | { | 271 | { |
275 | QueItem qpack = LandOutgoingPacketQueue.Dequeue(); | 272 | QueItem qpack = LandOutgoingPacketQueue.Dequeue(); |
276 | 273 | ||
277 | SendQueue.Enqueue(qpack); | 274 | SendQueue.Enqueue(qpack); |
278 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 275 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
279 | LandThrottle.Add(qpack.Packet.ToBytes().Length); | 276 | LandThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -281,7 +278,7 @@ namespace OpenSim.Region.ClientStack | |||
281 | if (WindThrottle.UnderLimit() && WindOutgoingPacketQueue.Count > 0) | 278 | if (WindThrottle.UnderLimit() && WindOutgoingPacketQueue.Count > 0) |
282 | { | 279 | { |
283 | QueItem qpack = WindOutgoingPacketQueue.Dequeue(); | 280 | QueItem qpack = WindOutgoingPacketQueue.Dequeue(); |
284 | 281 | ||
285 | SendQueue.Enqueue(qpack); | 282 | SendQueue.Enqueue(qpack); |
286 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 283 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
287 | WindThrottle.Add(qpack.Packet.ToBytes().Length); | 284 | WindThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -289,7 +286,7 @@ namespace OpenSim.Region.ClientStack | |||
289 | if (CloudThrottle.UnderLimit() && CloudOutgoingPacketQueue.Count > 0) | 286 | if (CloudThrottle.UnderLimit() && CloudOutgoingPacketQueue.Count > 0) |
290 | { | 287 | { |
291 | QueItem qpack = CloudOutgoingPacketQueue.Dequeue(); | 288 | QueItem qpack = CloudOutgoingPacketQueue.Dequeue(); |
292 | 289 | ||
293 | SendQueue.Enqueue(qpack); | 290 | SendQueue.Enqueue(qpack); |
294 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 291 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
295 | CloudThrottle.Add(qpack.Packet.ToBytes().Length); | 292 | CloudThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -297,7 +294,7 @@ namespace OpenSim.Region.ClientStack | |||
297 | if (TaskThrottle.UnderLimit() && TaskOutgoingPacketQueue.Count > 0) | 294 | if (TaskThrottle.UnderLimit() && TaskOutgoingPacketQueue.Count > 0) |
298 | { | 295 | { |
299 | QueItem qpack = TaskOutgoingPacketQueue.Dequeue(); | 296 | QueItem qpack = TaskOutgoingPacketQueue.Dequeue(); |
300 | 297 | ||
301 | SendQueue.Enqueue(qpack); | 298 | SendQueue.Enqueue(qpack); |
302 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 299 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
303 | TaskThrottle.Add(qpack.Packet.ToBytes().Length); | 300 | TaskThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -305,7 +302,7 @@ namespace OpenSim.Region.ClientStack | |||
305 | if (TextureThrottle.UnderLimit() && TextureOutgoingPacketQueue.Count > 0) | 302 | if (TextureThrottle.UnderLimit() && TextureOutgoingPacketQueue.Count > 0) |
306 | { | 303 | { |
307 | QueItem qpack = TextureOutgoingPacketQueue.Dequeue(); | 304 | QueItem qpack = TextureOutgoingPacketQueue.Dequeue(); |
308 | 305 | ||
309 | SendQueue.Enqueue(qpack); | 306 | SendQueue.Enqueue(qpack); |
310 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 307 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
311 | TextureThrottle.Add(qpack.Packet.ToBytes().Length); | 308 | TextureThrottle.Add(qpack.Packet.ToBytes().Length); |
@@ -313,19 +310,18 @@ namespace OpenSim.Region.ClientStack | |||
313 | if (AssetThrottle.UnderLimit() && AssetOutgoingPacketQueue.Count > 0) | 310 | if (AssetThrottle.UnderLimit() && AssetOutgoingPacketQueue.Count > 0) |
314 | { | 311 | { |
315 | QueItem qpack = AssetOutgoingPacketQueue.Dequeue(); | 312 | QueItem qpack = AssetOutgoingPacketQueue.Dequeue(); |
316 | 313 | ||
317 | SendQueue.Enqueue(qpack); | 314 | SendQueue.Enqueue(qpack); |
318 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); | 315 | TotalThrottle.Add(qpack.Packet.ToBytes().Length); |
319 | AssetThrottle.Add(qpack.Packet.ToBytes().Length); | 316 | AssetThrottle.Add(qpack.Packet.ToBytes().Length); |
320 | } | 317 | } |
321 | } | 318 | } |
322 | // MainLog.Instance.Verbose("THROTTLE", "Processed " + throttleLoops + " packets"); | 319 | // MainLog.Instance.Verbose("THROTTLE", "Processed " + throttleLoops + " packets"); |
323 | |||
324 | } | 320 | } |
325 | } | 321 | } |
326 | 322 | ||
327 | private void ThrottleTimerElapsed(object sender, ElapsedEventArgs e) | 323 | private void ThrottleTimerElapsed(object sender, ElapsedEventArgs e) |
328 | { | 324 | { |
329 | // just to change the signature, and that ProcessThrottle | 325 | // just to change the signature, and that ProcessThrottle |
330 | // will be used elsewhere possibly | 326 | // will be used elsewhere possibly |
331 | ProcessThrottle(); | 327 | ProcessThrottle(); |
@@ -339,7 +335,7 @@ namespace OpenSim.Region.ClientStack | |||
339 | // wait for the timer to fire to put things into the | 335 | // wait for the timer to fire to put things into the |
340 | // output queue | 336 | // output queue |
341 | 337 | ||
342 | if((q.Count == 0) && (throttle.UnderLimit())) | 338 | if ((q.Count == 0) && (throttle.UnderLimit())) |
343 | { | 339 | { |
344 | Monitor.Enter(this); | 340 | Monitor.Enter(this); |
345 | throttle.Add(item.Packet.ToBytes().Length); | 341 | throttle.Add(item.Packet.ToBytes().Length); |
@@ -357,31 +353,39 @@ namespace OpenSim.Region.ClientStack | |||
357 | 353 | ||
358 | private int ScaleThrottle(int value, int curmax, int newmax) | 354 | private int ScaleThrottle(int value, int curmax, int newmax) |
359 | { | 355 | { |
360 | return (int)(((float)value/(float)curmax) * newmax); | 356 | return (int) (((float) value/(float) curmax)*newmax); |
361 | } | 357 | } |
358 | |||
362 | private byte[] GetThrottlesPacked(float multiplier) | 359 | private byte[] GetThrottlesPacked(float multiplier) |
363 | { | 360 | { |
364 | int singlefloat = 4; | 361 | int singlefloat = 4; |
365 | float tResend = ResendThrottle.Throttle * multiplier; | 362 | float tResend = ResendThrottle.Throttle*multiplier; |
366 | float tLand = LandThrottle.Throttle * multiplier; | 363 | float tLand = LandThrottle.Throttle*multiplier; |
367 | float tWind = WindThrottle.Throttle * multiplier; | 364 | float tWind = WindThrottle.Throttle*multiplier; |
368 | float tCloud = CloudThrottle.Throttle * multiplier; | 365 | float tCloud = CloudThrottle.Throttle*multiplier; |
369 | float tTask = TaskThrottle.Throttle * multiplier; | 366 | float tTask = TaskThrottle.Throttle*multiplier; |
370 | float tTexture = TextureThrottle.Throttle * multiplier; | 367 | float tTexture = TextureThrottle.Throttle*multiplier; |
371 | float tAsset = AssetThrottle.Throttle * multiplier; | 368 | float tAsset = AssetThrottle.Throttle*multiplier; |
372 | 369 | ||
373 | byte[] throttles = new byte[singlefloat * 7]; | 370 | byte[] throttles = new byte[singlefloat*7]; |
374 | int i = 0; | 371 | int i = 0; |
375 | Buffer.BlockCopy(BitConverter.GetBytes(tResend), 0, throttles, singlefloat * i, singlefloat); i++; | 372 | Buffer.BlockCopy(BitConverter.GetBytes(tResend), 0, throttles, singlefloat*i, singlefloat); |
376 | Buffer.BlockCopy(BitConverter.GetBytes(tLand), 0, throttles, singlefloat * i, singlefloat); i++; | 373 | i++; |
377 | Buffer.BlockCopy(BitConverter.GetBytes(tWind), 0, throttles, singlefloat * i, singlefloat); i++; | 374 | Buffer.BlockCopy(BitConverter.GetBytes(tLand), 0, throttles, singlefloat*i, singlefloat); |
378 | Buffer.BlockCopy(BitConverter.GetBytes(tCloud), 0, throttles, singlefloat * i, singlefloat); i++; | 375 | i++; |
379 | Buffer.BlockCopy(BitConverter.GetBytes(tTask), 0, throttles, singlefloat * i, singlefloat); i++; | 376 | Buffer.BlockCopy(BitConverter.GetBytes(tWind), 0, throttles, singlefloat*i, singlefloat); |
380 | Buffer.BlockCopy(BitConverter.GetBytes(tTexture), 0, throttles, singlefloat * i, singlefloat); i++; | 377 | i++; |
381 | Buffer.BlockCopy(BitConverter.GetBytes(tAsset), 0, throttles, singlefloat * i, singlefloat); | 378 | Buffer.BlockCopy(BitConverter.GetBytes(tCloud), 0, throttles, singlefloat*i, singlefloat); |
379 | i++; | ||
380 | Buffer.BlockCopy(BitConverter.GetBytes(tTask), 0, throttles, singlefloat*i, singlefloat); | ||
381 | i++; | ||
382 | Buffer.BlockCopy(BitConverter.GetBytes(tTexture), 0, throttles, singlefloat*i, singlefloat); | ||
383 | i++; | ||
384 | Buffer.BlockCopy(BitConverter.GetBytes(tAsset), 0, throttles, singlefloat*i, singlefloat); | ||
382 | 385 | ||
383 | return throttles; | 386 | return throttles; |
384 | } | 387 | } |
388 | |||
385 | public void SetThrottleFromClient(byte[] throttle) | 389 | public void SetThrottleFromClient(byte[] throttle) |
386 | { | 390 | { |
387 | int tResend = -1; | 391 | int tResend = -1; |
@@ -401,25 +405,25 @@ namespace OpenSim.Region.ClientStack | |||
401 | // it might be smart to do this check more often... | 405 | // it might be smart to do this check more often... |
402 | if (!BitConverter.IsLittleEndian) | 406 | if (!BitConverter.IsLittleEndian) |
403 | for (int i = 0; i < 7; i++) | 407 | for (int i = 0; i < 7; i++) |
404 | Array.Reverse(throttle, j + i * singlefloat, singlefloat); | 408 | Array.Reverse(throttle, j + i*singlefloat, singlefloat); |
405 | 409 | ||
406 | // values gotten from libsecondlife.org/wiki/Throttle. Thanks MW_ | 410 | // values gotten from libsecondlife.org/wiki/Throttle. Thanks MW_ |
407 | // bytes | 411 | // bytes |
408 | // Convert to integer, since.. the full fp space isn't used. | 412 | // Convert to integer, since.. the full fp space isn't used. |
409 | tResend = (int)BitConverter.ToSingle(throttle, j); | 413 | tResend = (int) BitConverter.ToSingle(throttle, j); |
410 | j += singlefloat; | 414 | j += singlefloat; |
411 | tLand = (int)BitConverter.ToSingle(throttle, j); | 415 | tLand = (int) BitConverter.ToSingle(throttle, j); |
412 | j += singlefloat; | 416 | j += singlefloat; |
413 | tWind = (int)BitConverter.ToSingle(throttle, j); | 417 | tWind = (int) BitConverter.ToSingle(throttle, j); |
414 | j += singlefloat; | 418 | j += singlefloat; |
415 | tCloud = (int)BitConverter.ToSingle(throttle, j); | 419 | tCloud = (int) BitConverter.ToSingle(throttle, j); |
416 | j += singlefloat; | 420 | j += singlefloat; |
417 | tTask = (int)BitConverter.ToSingle(throttle, j); | 421 | tTask = (int) BitConverter.ToSingle(throttle, j); |
418 | j += singlefloat; | 422 | j += singlefloat; |
419 | tTexture = (int)BitConverter.ToSingle(throttle, j); | 423 | tTexture = (int) BitConverter.ToSingle(throttle, j); |
420 | j += singlefloat; | 424 | j += singlefloat; |
421 | tAsset = (int)BitConverter.ToSingle(throttle, j); | 425 | tAsset = (int) BitConverter.ToSingle(throttle, j); |
422 | 426 | ||
423 | tall = tResend + tLand + tWind + tCloud + tTask + tTexture + tAsset; | 427 | tall = tResend + tLand + tWind + tCloud + tTask + tTexture + tAsset; |
424 | /* | 428 | /* |
425 | MainLog.Instance.Verbose("CLIENT", "Client AgentThrottle - Got throttle:resendbytes=" + tResend + | 429 | MainLog.Instance.Verbose("CLIENT", "Client AgentThrottle - Got throttle:resendbytes=" + tResend + |
@@ -431,13 +435,13 @@ namespace OpenSim.Region.ClientStack | |||
431 | " Assetbytes=" + tAsset + | 435 | " Assetbytes=" + tAsset + |
432 | " Allbytes=" + tall); | 436 | " Allbytes=" + tall); |
433 | */ | 437 | */ |
434 | 438 | ||
435 | // Total Sanity | 439 | // Total Sanity |
436 | // Make sure that the client sent sane total values. | 440 | // Make sure that the client sent sane total values. |
437 | 441 | ||
438 | // If the client didn't send acceptable values.... | 442 | // If the client didn't send acceptable values.... |
439 | // Scale the clients values down until they are acceptable. | 443 | // Scale the clients values down until they are acceptable. |
440 | 444 | ||
441 | if (tall <= TotalThrottle.Max) | 445 | if (tall <= TotalThrottle.Max) |
442 | { | 446 | { |
443 | ResendThrottle.Throttle = tResend; | 447 | ResendThrottle.Throttle = tResend; |
@@ -448,7 +452,7 @@ namespace OpenSim.Region.ClientStack | |||
448 | TextureThrottle.Throttle = tTexture; | 452 | TextureThrottle.Throttle = tTexture; |
449 | AssetThrottle.Throttle = tAsset; | 453 | AssetThrottle.Throttle = tAsset; |
450 | TotalThrottle.Throttle = tall; | 454 | TotalThrottle.Throttle = tall; |
451 | } | 455 | } |
452 | else if (tall < 1) | 456 | else if (tall < 1) |
453 | { | 457 | { |
454 | // client is stupid, penalize him by minning everything | 458 | // client is stupid, penalize him by minning everything |
@@ -478,4 +482,4 @@ namespace OpenSim.Region.ClientStack | |||
478 | ResetCounters(); | 482 | ResetCounters(); |
479 | } | 483 | } |
480 | } | 484 | } |
481 | } | 485 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/PacketServer.cs b/OpenSim/Region/ClientStack/PacketServer.cs index a232db8..7e01adf 100644 --- a/OpenSim/Region/ClientStack/PacketServer.cs +++ b/OpenSim/Region/ClientStack/PacketServer.cs | |||
@@ -68,10 +68,11 @@ namespace OpenSim.Region.ClientStack | |||
68 | 68 | ||
69 | protected virtual IClientAPI CreateNewClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, | 69 | protected virtual IClientAPI CreateNewClient(EndPoint remoteEP, UseCircuitCodePacket initialcirpack, |
70 | ClientManager clientManager, IScene scene, AssetCache assetCache, | 70 | ClientManager clientManager, IScene scene, AssetCache assetCache, |
71 | PacketServer packServer, AgentCircuitManager authenSessions, LLUUID agentId, LLUUID sessionId, uint circuitCode) | 71 | PacketServer packServer, AgentCircuitManager authenSessions, |
72 | LLUUID agentId, LLUUID sessionId, uint circuitCode) | ||
72 | { | 73 | { |
73 | return | 74 | return |
74 | new ClientView(remoteEP, scene, assetCache, packServer, authenSessions, agentId, sessionId, circuitCode ); | 75 | new ClientView(remoteEP, scene, assetCache, packServer, authenSessions, agentId, sessionId, circuitCode); |
75 | } | 76 | } |
76 | 77 | ||
77 | public virtual bool AddNewClient(EndPoint epSender, UseCircuitCodePacket useCircuit, AssetCache assetCache, | 78 | public virtual bool AddNewClient(EndPoint epSender, UseCircuitCodePacket useCircuit, AssetCache assetCache, |
@@ -86,7 +87,8 @@ namespace OpenSim.Region.ClientStack | |||
86 | else | 87 | else |
87 | { | 88 | { |
88 | newuser = CreateNewClient(epSender, useCircuit, m_scene.ClientManager, m_scene, assetCache, this, | 89 | newuser = CreateNewClient(epSender, useCircuit, m_scene.ClientManager, m_scene, assetCache, this, |
89 | authenticateSessionsClass, useCircuit.CircuitCode.ID, useCircuit.CircuitCode.SessionID, useCircuit.CircuitCode.Code); | 90 | authenticateSessionsClass, useCircuit.CircuitCode.ID, |
91 | useCircuit.CircuitCode.SessionID, useCircuit.CircuitCode.Code); | ||
90 | 92 | ||
91 | m_scene.ClientManager.Add(useCircuit.CircuitCode.Code, newuser); | 93 | m_scene.ClientManager.Add(useCircuit.CircuitCode.Code, newuser); |
92 | 94 | ||
@@ -123,9 +125,8 @@ namespace OpenSim.Region.ClientStack | |||
123 | /// <param name="circuitcode"></param> | 125 | /// <param name="circuitcode"></param> |
124 | public virtual void CloseCircuit(uint circuitcode) | 126 | public virtual void CloseCircuit(uint circuitcode) |
125 | { | 127 | { |
126 | |||
127 | m_networkHandler.RemoveClientCircuit(circuitcode); | 128 | m_networkHandler.RemoveClientCircuit(circuitcode); |
128 | 129 | ||
129 | //m_scene.ClientManager.CloseAllAgents(circuitcode); | 130 | //m_scene.ClientManager.CloseAllAgents(circuitcode); |
130 | } | 131 | } |
131 | 132 | ||
@@ -135,4 +136,4 @@ namespace OpenSim.Region.ClientStack | |||
135 | client.Close(false); | 136 | client.Close(false); |
136 | } | 137 | } |
137 | } | 138 | } |
138 | } | 139 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/PacketThrottle.cs b/OpenSim/Region/ClientStack/PacketThrottle.cs index f9a5c09..f56f4f8 100644 --- a/OpenSim/Region/ClientStack/PacketThrottle.cs +++ b/OpenSim/Region/ClientStack/PacketThrottle.cs | |||
@@ -25,26 +25,10 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
29 | using System.Collections.Generic; | ||
30 | using System.Net; | ||
31 | using System.Net.Sockets; | ||
32 | using System.Text; | ||
33 | using System.Threading; | ||
34 | using System.Timers; | ||
35 | using Axiom.Math; | ||
36 | using libsecondlife; | ||
37 | using libsecondlife.Packets; | ||
38 | using OpenSim.Framework; | ||
39 | using OpenSim.Framework.Communications.Cache; | ||
40 | using OpenSim.Framework.Console; | ||
41 | using Timer=System.Timers.Timer; | ||
42 | |||
43 | namespace OpenSim.Region.ClientStack | 28 | namespace OpenSim.Region.ClientStack |
44 | { | 29 | { |
45 | public class PacketThrottle | 30 | public class PacketThrottle |
46 | { | 31 | { |
47 | |||
48 | private int max; // max allowable throttle | 32 | private int max; // max allowable throttle |
49 | private int min; // min allowable throttle | 33 | private int min; // min allowable throttle |
50 | private int throttle; // current throttle setting | 34 | private int throttle; // current throttle setting |
@@ -63,10 +47,10 @@ namespace OpenSim.Region.ClientStack | |||
63 | { | 47 | { |
64 | sent = 0; | 48 | sent = 0; |
65 | } | 49 | } |
66 | 50 | ||
67 | public bool UnderLimit() | 51 | public bool UnderLimit() |
68 | { | 52 | { |
69 | return (sent < (throttle / divisor)); | 53 | return (sent < (throttle/divisor)); |
70 | } | 54 | } |
71 | 55 | ||
72 | public int Add(int bytes) | 56 | public int Add(int bytes) |
@@ -78,27 +62,32 @@ namespace OpenSim.Region.ClientStack | |||
78 | // Properties | 62 | // Properties |
79 | public int Max | 63 | public int Max |
80 | { | 64 | { |
81 | get {return max;} | 65 | get { return max; } |
82 | } | 66 | } |
83 | 67 | ||
84 | public int Min | 68 | public int Min |
85 | { | 69 | { |
86 | get {return min;} | 70 | get { return min; } |
87 | } | 71 | } |
88 | 72 | ||
89 | public int Throttle | 73 | public int Throttle |
90 | { | 74 | { |
91 | get {return throttle;} | 75 | get { return throttle; } |
92 | set | 76 | set |
93 | { | 77 | { |
94 | if (value > max) { | 78 | if (value > max) |
79 | { | ||
95 | throttle = max; | 80 | throttle = max; |
96 | } else if (value < min) { | 81 | } |
82 | else if (value < min) | ||
83 | { | ||
97 | throttle = min; | 84 | throttle = min; |
98 | } else { | 85 | } |
86 | else | ||
87 | { | ||
99 | throttle = value; | 88 | throttle = value; |
100 | } | 89 | } |
101 | } | 90 | } |
102 | } | 91 | } |
103 | } | 92 | } |
104 | } | 93 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/QueItem.cs b/OpenSim/Region/ClientStack/QueItem.cs index 23b1648..ea0f680 100644 --- a/OpenSim/Region/ClientStack/QueItem.cs +++ b/OpenSim/Region/ClientStack/QueItem.cs | |||
@@ -31,14 +31,14 @@ using OpenSim.Framework; | |||
31 | 31 | ||
32 | namespace OpenSim.Region.ClientStack | 32 | namespace OpenSim.Region.ClientStack |
33 | { | 33 | { |
34 | public class QueItem | 34 | public class QueItem |
35 | { | ||
36 | public QueItem() | ||
35 | { | 37 | { |
36 | public QueItem() | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public Packet Packet; | ||
41 | public bool Incoming; | ||
42 | public ThrottleOutPacketType throttleType; | ||
43 | } | 38 | } |
44 | } | 39 | |
40 | public Packet Packet; | ||
41 | public bool Incoming; | ||
42 | public ThrottleOutPacketType throttleType; | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/ClientStack/RegionApplicationBase.cs b/OpenSim/Region/ClientStack/RegionApplicationBase.cs index f20b132..e9331e9 100644 --- a/OpenSim/Region/ClientStack/RegionApplicationBase.cs +++ b/OpenSim/Region/ClientStack/RegionApplicationBase.cs | |||
@@ -29,7 +29,6 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Net; | 30 | using System.Net; |
31 | using libsecondlife; | 31 | using libsecondlife; |
32 | using Nini.Config; | ||
33 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Communications; | 33 | using OpenSim.Framework.Communications; |
35 | using OpenSim.Framework.Communications.Cache; | 34 | using OpenSim.Framework.Communications.Cache; |
@@ -55,7 +54,7 @@ namespace OpenSim.Region.ClientStack | |||
55 | protected CommunicationsManager m_commsManager; | 54 | protected CommunicationsManager m_commsManager; |
56 | 55 | ||
57 | protected SceneManager m_sceneManager = new SceneManager(); | 56 | protected SceneManager m_sceneManager = new SceneManager(); |
58 | 57 | ||
59 | protected StorageManager m_storageManager; | 58 | protected StorageManager m_storageManager; |
60 | protected string m_storageConnectionString; | 59 | protected string m_storageConnectionString; |
61 | 60 | ||
@@ -73,7 +72,7 @@ namespace OpenSim.Region.ClientStack | |||
73 | { | 72 | { |
74 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); | 73 | ClientView.TerrainManager = new TerrainManager(new SecondLife()); |
75 | 74 | ||
76 | m_storageManager = CreateStorageManager(m_storageConnectionString ); | 75 | m_storageManager = CreateStorageManager(m_storageConnectionString); |
77 | 76 | ||
78 | Initialize(); | 77 | Initialize(); |
79 | 78 | ||
@@ -142,7 +141,7 @@ namespace OpenSim.Region.ClientStack | |||
142 | m_log.Verbose("PARCEL", "No master avatar found, using null."); | 141 | m_log.Verbose("PARCEL", "No master avatar found, using null."); |
143 | scene.RegionInfo.MasterAvatarAssignedUUID = LLUUID.Zero; | 142 | scene.RegionInfo.MasterAvatarAssignedUUID = LLUUID.Zero; |
144 | } | 143 | } |
145 | 144 | ||
146 | scene.LoadPrimsFromStorage(m_permissions); | 145 | scene.LoadPrimsFromStorage(m_permissions); |
147 | scene.loadAllLandObjectsFromStorage(); | 146 | scene.loadAllLandObjectsFromStorage(); |
148 | scene.performParcelPrimCountUpdate(); | 147 | scene.performParcelPrimCountUpdate(); |
@@ -153,4 +152,4 @@ namespace OpenSim.Region.ClientStack | |||
153 | protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, | 152 | protected abstract Scene CreateScene(RegionInfo regionInfo, StorageManager storageManager, |
154 | AgentCircuitManager circuitManager); | 153 | AgentCircuitManager circuitManager); |
155 | } | 154 | } |
156 | } | 155 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ClientStack/UDPServer.cs b/OpenSim/Region/ClientStack/UDPServer.cs index 47e0b3c..10435bf 100644 --- a/OpenSim/Region/ClientStack/UDPServer.cs +++ b/OpenSim/Region/ClientStack/UDPServer.cs | |||
@@ -30,6 +30,7 @@ using System.Collections; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Net; | 31 | using System.Net; |
32 | using System.Net.Sockets; | 32 | using System.Net.Sockets; |
33 | using libsecondlife; | ||
33 | using libsecondlife.Packets; | 34 | using libsecondlife.Packets; |
34 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Communications.Cache; | 36 | using OpenSim.Framework.Communications.Cache; |
@@ -44,24 +45,22 @@ namespace OpenSim.Region.ClientStack | |||
44 | { | 45 | { |
45 | } | 46 | } |
46 | 47 | ||
47 | static readonly PacketPool instance = new PacketPool(); | 48 | private static readonly PacketPool instance = new PacketPool(); |
48 | 49 | ||
49 | public static PacketPool Instance | 50 | public static PacketPool Instance |
50 | { | 51 | { |
51 | get | 52 | get { return instance; } |
52 | { | ||
53 | return instance; | ||
54 | } | ||
55 | } | 53 | } |
56 | 54 | ||
57 | private Hashtable pool = new Hashtable(); | 55 | private Hashtable pool = new Hashtable(); |
58 | 56 | ||
59 | public Packet GetPacket(PacketType type) { | 57 | public Packet GetPacket(PacketType type) |
58 | { | ||
60 | Packet packet = null; | 59 | Packet packet = null; |
61 | 60 | ||
62 | lock(pool) | 61 | lock (pool) |
63 | { | 62 | { |
64 | if(pool[type] == null || ((Stack) pool[type]).Count == 0) | 63 | if (pool[type] == null || ((Stack) pool[type]).Count == 0) |
65 | { | 64 | { |
66 | // Creating a new packet if we cannot reuse an old package | 65 | // Creating a new packet if we cannot reuse an old package |
67 | packet = Packet.BuildPacket(type); | 66 | packet = Packet.BuildPacket(type); |
@@ -69,30 +68,33 @@ namespace OpenSim.Region.ClientStack | |||
69 | else | 68 | else |
70 | { | 69 | { |
71 | // Recycle old packages | 70 | // Recycle old packages |
72 | packet=(Packet) ((Stack) pool[type]).Pop(); | 71 | packet = (Packet) ((Stack) pool[type]).Pop(); |
73 | } | 72 | } |
74 | } | 73 | } |
75 | 74 | ||
76 | return packet; | 75 | return packet; |
77 | } | 76 | } |
78 | 77 | ||
79 | public Packet GetPacket(byte[] bytes, ref int packetEnd, byte[] zeroBuffer) { | 78 | public Packet GetPacket(byte[] bytes, ref int packetEnd, byte[] zeroBuffer) |
79 | { | ||
80 | Packet packet = GetPacket(GetType(bytes, packetEnd, zeroBuffer)); | 80 | Packet packet = GetPacket(GetType(bytes, packetEnd, zeroBuffer)); |
81 | 81 | ||
82 | int i = 0; | 82 | int i = 0; |
83 | packet.FromBytes(bytes, ref i, ref packetEnd, zeroBuffer); | 83 | packet.FromBytes(bytes, ref i, ref packetEnd, zeroBuffer); |
84 | return packet; | 84 | return packet; |
85 | } | 85 | } |
86 | |||
86 | public PacketType GetType(byte[] bytes, int packetEnd, byte[] zeroBuffer) | 87 | public PacketType GetType(byte[] bytes, int packetEnd, byte[] zeroBuffer) |
87 | { | 88 | { |
88 | //Function removed from LibSL revision 1540 | 89 | //Function removed from LibSL revision 1540 |
89 | // We're using it.. so Built it into UDP server for now.. | 90 | // We're using it.. so Built it into UDP server for now.. |
90 | ushort id; libsecondlife.PacketFrequency freq; | 91 | ushort id; |
92 | PacketFrequency freq; | ||
91 | int i = 0, end = packetEnd; | 93 | int i = 0, end = packetEnd; |
92 | Header header = Header.BuildHeader(bytes, ref i, ref end); | 94 | Header header = Header.BuildHeader(bytes, ref i, ref end); |
93 | if (header.Zerocoded) | 95 | if (header.Zerocoded) |
94 | { | 96 | { |
95 | end = libsecondlife.Helpers.ZeroDecode(bytes, end + 1, zeroBuffer) - 1; | 97 | end = Helpers.ZeroDecode(bytes, end + 1, zeroBuffer) - 1; |
96 | bytes = zeroBuffer; | 98 | bytes = zeroBuffer; |
97 | } | 99 | } |
98 | 100 | ||
@@ -100,25 +102,30 @@ namespace OpenSim.Region.ClientStack | |||
100 | { | 102 | { |
101 | if (bytes[7] == 0xFF) | 103 | if (bytes[7] == 0xFF) |
102 | { | 104 | { |
103 | id = (ushort)((bytes[8] << 8) + bytes[9]); freq = libsecondlife.PacketFrequency.Low; | 105 | id = (ushort) ((bytes[8] << 8) + bytes[9]); |
106 | freq = PacketFrequency.Low; | ||
104 | } | 107 | } |
105 | else | 108 | else |
106 | { | 109 | { |
107 | id = (ushort)bytes[7]; freq = libsecondlife.PacketFrequency.Medium; | 110 | id = (ushort) bytes[7]; |
111 | freq = PacketFrequency.Medium; | ||
108 | } | 112 | } |
109 | } | 113 | } |
110 | else | 114 | else |
111 | { | 115 | { |
112 | id = (ushort)bytes[6]; freq = libsecondlife.PacketFrequency.High; | 116 | id = (ushort) bytes[6]; |
117 | freq = PacketFrequency.High; | ||
113 | } | 118 | } |
114 | return Packet.GetType(id, freq); | 119 | return Packet.GetType(id, freq); |
115 | } | 120 | } |
116 | public void ReturnPacket(Packet packet) { | 121 | |
117 | lock(pool) | 122 | public void ReturnPacket(Packet packet) |
123 | { | ||
124 | lock (pool) | ||
118 | { | 125 | { |
119 | PacketType type=packet.Type; | 126 | PacketType type = packet.Type; |
120 | 127 | ||
121 | if(pool[type] == null) | 128 | if (pool[type] == null) |
122 | { | 129 | { |
123 | pool[type] = new Stack(); | 130 | pool[type] = new Stack(); |
124 | } | 131 | } |
@@ -162,15 +169,11 @@ namespace OpenSim.Region.ClientStack | |||
162 | m_packetServer.LocalScene = m_localScene; | 169 | m_packetServer.LocalScene = m_localScene; |
163 | m_regionHandle = m_localScene.RegionInfo.RegionHandle; | 170 | m_regionHandle = m_localScene.RegionInfo.RegionHandle; |
164 | } | 171 | } |
165 | |||
166 | } | 172 | } |
167 | 173 | ||
168 | public ulong RegionHandle | 174 | public ulong RegionHandle |
169 | { | 175 | { |
170 | get | 176 | get { return m_regionHandle; } |
171 | { | ||
172 | return m_regionHandle; | ||
173 | } | ||
174 | } | 177 | } |
175 | 178 | ||
176 | public UDPServer() | 179 | public UDPServer() |
@@ -212,30 +215,29 @@ namespace OpenSim.Region.ClientStack | |||
212 | case SocketError.AlreadyInProgress: | 215 | case SocketError.AlreadyInProgress: |
213 | case SocketError.NetworkReset: | 216 | case SocketError.NetworkReset: |
214 | case SocketError.ConnectionReset: | 217 | case SocketError.ConnectionReset: |
215 | 218 | ||
216 | try | 219 | try |
217 | { | 220 | { |
218 | CloseEndPoint(epSender); | 221 | CloseEndPoint(epSender); |
219 | } | 222 | } |
220 | catch (System.Exception a) | 223 | catch (Exception a) |
221 | { | 224 | { |
222 | MainLog.Instance.Verbose("UDPSERVER", a.ToString()); | 225 | MainLog.Instance.Verbose("UDPSERVER", a.ToString()); |
223 | } | 226 | } |
224 | try | 227 | try |
225 | { | 228 | { |
226 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null); | 229 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, |
227 | 230 | ReceivedData, null); | |
231 | |||
228 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. | 232 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. |
229 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. | 233 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. |
230 | // This will happen over and over until we've gone through all packets | 234 | // This will happen over and over until we've gone through all packets |
231 | // sent to and from this particular user. | 235 | // sent to and from this particular user. |
232 | // Stupid I know.. | 236 | // Stupid I know.. |
233 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. | 237 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. |
234 | |||
235 | } | 238 | } |
236 | catch (SocketException) | 239 | catch (SocketException) |
237 | { | 240 | { |
238 | |||
239 | } | 241 | } |
240 | break; | 242 | break; |
241 | default: | 243 | default: |
@@ -243,13 +245,14 @@ namespace OpenSim.Region.ClientStack | |||
243 | { | 245 | { |
244 | CloseEndPoint(epSender); | 246 | CloseEndPoint(epSender); |
245 | } | 247 | } |
246 | catch (System.Exception) | 248 | catch (Exception) |
247 | { | 249 | { |
248 | //MainLog.Instance.Verbose("UDPSERVER", a.ToString()); | 250 | //MainLog.Instance.Verbose("UDPSERVER", a.ToString()); |
249 | } | 251 | } |
250 | try | 252 | try |
251 | { | 253 | { |
252 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, ReceivedData, null); | 254 | Server.BeginReceiveFrom(RecvBuffer, 0, RecvBuffer.Length, SocketFlags.None, ref epSender, |
255 | ReceivedData, null); | ||
253 | 256 | ||
254 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. | 257 | // Ter: For some stupid reason ConnectionReset basically kills our async event structure.. |
255 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. | 258 | // so therefore.. we've got to tell the server to BeginReceiveFrom again. |
@@ -257,17 +260,15 @@ namespace OpenSim.Region.ClientStack | |||
257 | // sent to and from this particular user. | 260 | // sent to and from this particular user. |
258 | // Stupid I know.. | 261 | // Stupid I know.. |
259 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. | 262 | // but Flusing the buffer would be even more stupid... so, we're stuck with this ugly method. |
260 | |||
261 | } | 263 | } |
262 | catch (SocketException) | 264 | catch (SocketException) |
263 | { | 265 | { |
264 | |||
265 | } | 266 | } |
266 | 267 | ||
267 | // Here's some reference code! :D | 268 | // Here's some reference code! :D |
268 | // Shutdown and restart the UDP listener! hehe | 269 | // Shutdown and restart the UDP listener! hehe |
269 | // Shiny | 270 | // Shiny |
270 | 271 | ||
271 | //Server.Shutdown(SocketShutdown.Both); | 272 | //Server.Shutdown(SocketShutdown.Both); |
272 | //CloseEndPoint(epSender); | 273 | //CloseEndPoint(epSender); |
273 | //ServerListener(); | 274 | //ServerListener(); |
@@ -276,7 +277,7 @@ namespace OpenSim.Region.ClientStack | |||
276 | 277 | ||
277 | return; | 278 | return; |
278 | } | 279 | } |
279 | catch (System.ObjectDisposedException) | 280 | catch (ObjectDisposedException) |
280 | { | 281 | { |
281 | //MainLog.Instance.Debug("UDPSERVER", e.ToString()); | 282 | //MainLog.Instance.Debug("UDPSERVER", e.ToString()); |
282 | return; | 283 | return; |
@@ -288,7 +289,7 @@ namespace OpenSim.Region.ClientStack | |||
288 | { | 289 | { |
289 | packet = PacketPool.Instance.GetPacket(RecvBuffer, ref packetEnd, ZeroBuffer); | 290 | packet = PacketPool.Instance.GetPacket(RecvBuffer, ref packetEnd, ZeroBuffer); |
290 | } | 291 | } |
291 | catch(Exception) | 292 | catch (Exception) |
292 | { | 293 | { |
293 | //MainLog.Instance.Debug("UDPSERVER", e.ToString()); | 294 | //MainLog.Instance.Debug("UDPSERVER", e.ToString()); |
294 | } | 295 | } |
@@ -311,7 +312,6 @@ namespace OpenSim.Region.ClientStack | |||
311 | } | 312 | } |
312 | else | 313 | else |
313 | { | 314 | { |
314 | |||
315 | // invalid client | 315 | // invalid client |
316 | //CFK: This message seems to have served its usefullness as of 12-15 so I am commenting it out for now | 316 | //CFK: This message seems to have served its usefullness as of 12-15 so I am commenting it out for now |
317 | //m_log.Warn("client", "Got a packet from an invalid client - " + epSender.ToString()); | 317 | //m_log.Warn("client", "Got a packet from an invalid client - " + epSender.ToString()); |
@@ -326,9 +326,7 @@ namespace OpenSim.Region.ClientStack | |||
326 | uint circuit; | 326 | uint circuit; |
327 | if (clientCircuits.TryGetValue(sender, out circuit)) | 327 | if (clientCircuits.TryGetValue(sender, out circuit)) |
328 | { | 328 | { |
329 | |||
330 | m_packetServer.CloseCircuit(circuit); | 329 | m_packetServer.CloseCircuit(circuit); |
331 | |||
332 | } | 330 | } |
333 | } | 331 | } |
334 | 332 | ||
@@ -381,14 +379,11 @@ namespace OpenSim.Region.ClientStack | |||
381 | EndPoint sendto = null; | 379 | EndPoint sendto = null; |
382 | if (clientCircuits_reverse.TryGetValue(circuitcode, out sendto)) | 380 | if (clientCircuits_reverse.TryGetValue(circuitcode, out sendto)) |
383 | { | 381 | { |
384 | |||
385 | clientCircuits.Remove(sendto); | 382 | clientCircuits.Remove(sendto); |
386 | |||
387 | 383 | ||
388 | 384 | ||
389 | clientCircuits_reverse.Remove(circuitcode); | 385 | clientCircuits_reverse.Remove(circuitcode); |
390 | |||
391 | } | 386 | } |
392 | } | 387 | } |
393 | } | 388 | } |
394 | } | 389 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs index 937f7c4..575d9d5 100644 --- a/OpenSim/Region/Communications/Local/CommunicationsLocal.cs +++ b/OpenSim/Region/Communications/Local/CommunicationsLocal.cs | |||
@@ -50,4 +50,4 @@ namespace OpenSim.Region.Communications.Local | |||
50 | m_interRegion = interRegionService; | 50 | m_interRegion = interRegionService; |
51 | } | 51 | } |
52 | } | 52 | } |
53 | } | 53 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs index f6137f7..4dec884 100644 --- a/OpenSim/Region/Communications/Local/LocalBackEndServices.cs +++ b/OpenSim/Region/Communications/Local/LocalBackEndServices.cs | |||
@@ -29,8 +29,8 @@ using System.Collections; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
32 | using OpenSim.Framework.Console; | ||
33 | using OpenSim.Framework.Communications; | 32 | using OpenSim.Framework.Communications; |
33 | using OpenSim.Framework.Console; | ||
34 | 34 | ||
35 | namespace OpenSim.Region.Communications.Local | 35 | namespace OpenSim.Region.Communications.Local |
36 | { | 36 | { |
@@ -50,21 +50,17 @@ namespace OpenSim.Region.Communications.Local | |||
50 | public string gdebugRegionName | 50 | public string gdebugRegionName |
51 | { | 51 | { |
52 | get { return _gdebugRegionName; } | 52 | get { return _gdebugRegionName; } |
53 | set | 53 | set { _gdebugRegionName = value; } |
54 | { | ||
55 | _gdebugRegionName = value; | ||
56 | } | ||
57 | } | 54 | } |
55 | |||
58 | public string _rdebugRegionName = ""; | 56 | public string _rdebugRegionName = ""; |
59 | 57 | ||
60 | public string rdebugRegionName | 58 | public string rdebugRegionName |
61 | { | 59 | { |
62 | get { return _rdebugRegionName; } | 60 | get { return _rdebugRegionName; } |
63 | set | 61 | set { _rdebugRegionName = value; } |
64 | { | ||
65 | _rdebugRegionName = value; | ||
66 | } | ||
67 | } | 62 | } |
63 | |||
68 | public LocalBackEndServices() | 64 | public LocalBackEndServices() |
69 | { | 65 | { |
70 | } | 66 | } |
@@ -85,7 +81,8 @@ namespace OpenSim.Region.Communications.Local | |||
85 | RegionCommsListener regionHost = new RegionCommsListener(); | 81 | RegionCommsListener regionHost = new RegionCommsListener(); |
86 | if (m_regionListeners.ContainsKey(regionInfo.RegionHandle)) | 82 | if (m_regionListeners.ContainsKey(regionInfo.RegionHandle)) |
87 | { | 83 | { |
88 | MainLog.Instance.Error("INTERREGION", "Error:Region registered twice as an Events listener for Interregion Communications but not as a listed region. In Standalone mode this will cause BIG issues. In grid mode, it means a region went down and came back up."); | 84 | MainLog.Instance.Error("INTERREGION", |
85 | "Error:Region registered twice as an Events listener for Interregion Communications but not as a listed region. In Standalone mode this will cause BIG issues. In grid mode, it means a region went down and came back up."); | ||
89 | m_regionListeners.Remove(regionInfo.RegionHandle); | 86 | m_regionListeners.Remove(regionInfo.RegionHandle); |
90 | } | 87 | } |
91 | m_regionListeners.Add(regionInfo.RegionHandle, regionHost); | 88 | m_regionListeners.Add(regionInfo.RegionHandle, regionHost); |
@@ -195,7 +192,7 @@ namespace OpenSim.Region.Communications.Local | |||
195 | return mapBlocks; | 192 | return mapBlocks; |
196 | } | 193 | } |
197 | 194 | ||
198 | 195 | ||
199 | public virtual bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) | 196 | public virtual bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) |
200 | { | 197 | { |
201 | RegionInfo region = new RegionInfo(sregion); | 198 | RegionInfo region = new RegionInfo(sregion); |
@@ -203,7 +200,7 @@ namespace OpenSim.Region.Communications.Local | |||
203 | { | 200 | { |
204 | return m_regionListeners[regionhandle].TriggerRegionUp(region); | 201 | return m_regionListeners[regionhandle].TriggerRegionUp(region); |
205 | } | 202 | } |
206 | 203 | ||
207 | return false; | 204 | return false; |
208 | } | 205 | } |
209 | 206 | ||
@@ -224,7 +221,7 @@ namespace OpenSim.Region.Communications.Local | |||
224 | // It never gets called. | 221 | // It never gets called. |
225 | public virtual Dictionary<string, string> GetGridSettings() | 222 | public virtual Dictionary<string, string> GetGridSettings() |
226 | { | 223 | { |
227 | Dictionary<string,string> returnGridSettings = new Dictionary<string,string>(); | 224 | Dictionary<string, string> returnGridSettings = new Dictionary<string, string>(); |
228 | lock (m_queuedGridSettings) | 225 | lock (m_queuedGridSettings) |
229 | { | 226 | { |
230 | returnGridSettings = m_queuedGridSettings; | 227 | returnGridSettings = m_queuedGridSettings; |
@@ -237,7 +234,6 @@ namespace OpenSim.Region.Communications.Local | |||
237 | public virtual void SetForcefulBanlistsDisallowed(ulong regionHandle) | 234 | public virtual void SetForcefulBanlistsDisallowed(ulong regionHandle) |
238 | { | 235 | { |
239 | m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE"); | 236 | m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE"); |
240 | |||
241 | } | 237 | } |
242 | 238 | ||
243 | public bool TriggerRegionUp(RegionInfo region, ulong regionhandle) | 239 | public bool TriggerRegionUp(RegionInfo region, ulong regionhandle) |
@@ -254,7 +250,7 @@ namespace OpenSim.Region.Communications.Local | |||
254 | { | 250 | { |
255 | if (m_regionListeners.ContainsKey(regionHandle)) | 251 | if (m_regionListeners.ContainsKey(regionHandle)) |
256 | { | 252 | { |
257 | return m_regionListeners[regionHandle].TriggerChildAgentUpdate(regionHandle,cAgentData); | 253 | return m_regionListeners[regionHandle].TriggerChildAgentUpdate(regionHandle, cAgentData); |
258 | } | 254 | } |
259 | return false; | 255 | return false; |
260 | } | 256 | } |
@@ -282,7 +278,7 @@ namespace OpenSim.Region.Communications.Local | |||
282 | return false; | 278 | return false; |
283 | } | 279 | } |
284 | 280 | ||
285 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 281 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) |
286 | { | 282 | { |
287 | if (m_regionListeners.ContainsKey(regionHandle)) | 283 | if (m_regionListeners.ContainsKey(regionHandle)) |
288 | { | 284 | { |
@@ -291,6 +287,7 @@ namespace OpenSim.Region.Communications.Local | |||
291 | } | 287 | } |
292 | return false; | 288 | return false; |
293 | } | 289 | } |
290 | |||
294 | /// <summary> | 291 | /// <summary> |
295 | /// | 292 | /// |
296 | /// </summary> | 293 | /// </summary> |
@@ -308,6 +305,7 @@ namespace OpenSim.Region.Communications.Local | |||
308 | } | 305 | } |
309 | return false; | 306 | return false; |
310 | } | 307 | } |
308 | |||
311 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) | 309 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) |
312 | { | 310 | { |
313 | if (m_regionListeners.ContainsKey(regionHandle)) | 311 | if (m_regionListeners.ContainsKey(regionHandle)) |
@@ -322,7 +320,7 @@ namespace OpenSim.Region.Communications.Local | |||
322 | { | 320 | { |
323 | if (m_regionListeners.ContainsKey(regionHandle)) | 321 | if (m_regionListeners.ContainsKey(regionHandle)) |
324 | { | 322 | { |
325 | m_regionListeners[regionHandle].TriggerCloseAgentConnection(regionHandle, agentID); | 323 | m_regionListeners[regionHandle].TriggerCloseAgentConnection(regionHandle, agentID); |
326 | } | 324 | } |
327 | } | 325 | } |
328 | 326 | ||
@@ -334,6 +332,7 @@ namespace OpenSim.Region.Communications.Local | |||
334 | } | 332 | } |
335 | return false; | 333 | return false; |
336 | } | 334 | } |
335 | |||
337 | public bool AcknowledgePrimCrossed(ulong regionHandle, LLUUID primID) | 336 | public bool AcknowledgePrimCrossed(ulong regionHandle, LLUUID primID) |
338 | { | 337 | { |
339 | if (m_regionListeners.ContainsKey(regionHandle)) | 338 | if (m_regionListeners.ContainsKey(regionHandle)) |
@@ -415,14 +414,15 @@ namespace OpenSim.Region.Communications.Local | |||
415 | { | 414 | { |
416 | if (m_regionListeners.ContainsKey(regionHandle)) | 415 | if (m_regionListeners.ContainsKey(regionHandle)) |
417 | { | 416 | { |
418 | return m_regionListeners[regionHandle].TriggerExpectPrimCrossing(regionHandle, primID, position, isPhysical); | 417 | return |
418 | m_regionListeners[regionHandle].TriggerExpectPrimCrossing(regionHandle, primID, position, isPhysical); | ||
419 | } | 419 | } |
420 | return false; | 420 | return false; |
421 | } | 421 | } |
422 | 422 | ||
423 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) | 423 | public bool IncomingChildAgent(ulong regionHandle, AgentCircuitData agentData) |
424 | { | 424 | { |
425 | // MainLog.Instance.Verbose("INTER", rdebugRegionName + ":Local BackEnd: Other local region is sending child agent our way: " + agentData.firstname + " " + agentData.lastname); | 425 | // MainLog.Instance.Verbose("INTER", rdebugRegionName + ":Local BackEnd: Other local region is sending child agent our way: " + agentData.firstname + " " + agentData.lastname); |
426 | 426 | ||
427 | if (m_regionListeners.ContainsKey(regionHandle)) | 427 | if (m_regionListeners.ContainsKey(regionHandle)) |
428 | { | 428 | { |
@@ -435,4 +435,4 @@ namespace OpenSim.Region.Communications.Local | |||
435 | return false; | 435 | return false; |
436 | } | 436 | } |
437 | } | 437 | } |
438 | } | 438 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/Local/LocalInventoryService.cs b/OpenSim/Region/Communications/Local/LocalInventoryService.cs index 08bd850..730c40f 100644 --- a/OpenSim/Region/Communications/Local/LocalInventoryService.cs +++ b/OpenSim/Region/Communications/Local/LocalInventoryService.cs | |||
@@ -82,14 +82,14 @@ namespace OpenSim.Region.Communications.Local | |||
82 | { | 82 | { |
83 | DeleteItem(item); | 83 | DeleteItem(item); |
84 | } | 84 | } |
85 | 85 | ||
86 | /// <summary> | 86 | /// <summary> |
87 | /// Send the given inventory folder and its item contents back to the requester. | 87 | /// Send the given inventory folder and its item contents back to the requester. |
88 | /// </summary> | 88 | /// </summary> |
89 | /// <param name="userID"></param> | 89 | /// <param name="userID"></param> |
90 | /// <param name="folder"></param> | 90 | /// <param name="folder"></param> |
91 | private InventoryFolderImpl RequestInventoryFolder(LLUUID userID, InventoryFolderBase folder, | 91 | private InventoryFolderImpl RequestInventoryFolder(LLUUID userID, InventoryFolderBase folder, |
92 | InventoryFolderInfo folderCallBack, | 92 | InventoryFolderInfo folderCallBack, |
93 | InventoryItemInfo itemCallBack) | 93 | InventoryItemInfo itemCallBack) |
94 | { | 94 | { |
95 | InventoryFolderImpl newFolder = new InventoryFolderImpl(folder); | 95 | InventoryFolderImpl newFolder = new InventoryFolderImpl(folder); |
@@ -99,9 +99,9 @@ namespace OpenSim.Region.Communications.Local | |||
99 | foreach (InventoryItemBase item in items) | 99 | foreach (InventoryItemBase item in items) |
100 | { | 100 | { |
101 | itemCallBack(userID, item); | 101 | itemCallBack(userID, item); |
102 | } | 102 | } |
103 | 103 | ||
104 | return newFolder; | 104 | return newFolder; |
105 | } | 105 | } |
106 | } | 106 | } |
107 | } | 107 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/Local/LocalLoginService.cs b/OpenSim/Region/Communications/Local/LocalLoginService.cs index 2c08707..bf5f205 100644 --- a/OpenSim/Region/Communications/Local/LocalLoginService.cs +++ b/OpenSim/Region/Communications/Local/LocalLoginService.cs | |||
@@ -73,7 +73,7 @@ namespace OpenSim.Region.Communications.Local | |||
73 | if (!authUsers) | 73 | if (!authUsers) |
74 | { | 74 | { |
75 | //no current user account so make one | 75 | //no current user account so make one |
76 | MainLog.Instance.Notice("LOGIN", "No user account found so creating a new one."); | 76 | MainLog.Instance.Notice("LOGIN", "No user account found so creating a new one."); |
77 | 77 | ||
78 | m_userManager.AddUserProfile(firstname, lastname, "test", defaultHomeX, defaultHomeY); | 78 | m_userManager.AddUserProfile(firstname, lastname, "test", defaultHomeX, defaultHomeY); |
79 | 79 | ||
@@ -93,14 +93,14 @@ namespace OpenSim.Region.Communications.Local | |||
93 | if (!authUsers) | 93 | if (!authUsers) |
94 | { | 94 | { |
95 | //for now we will accept any password in sandbox mode | 95 | //for now we will accept any password in sandbox mode |
96 | MainLog.Instance.Notice("LOGIN", "Authorising user (no actual password check)"); | 96 | MainLog.Instance.Notice("LOGIN", "Authorising user (no actual password check)"); |
97 | 97 | ||
98 | return true; | 98 | return true; |
99 | } | 99 | } |
100 | else | 100 | else |
101 | { | 101 | { |
102 | MainLog.Instance.Notice( | 102 | MainLog.Instance.Notice( |
103 | "LOGIN", "Authenticating " + profile.username + " " + profile.surname); | 103 | "LOGIN", "Authenticating " + profile.username + " " + profile.surname); |
104 | 104 | ||
105 | password = password.Remove(0, 3); //remove $1$ | 105 | password = password.Remove(0, 3); //remove $1$ |
106 | 106 | ||
@@ -134,7 +134,7 @@ namespace OpenSim.Region.Communications.Local | |||
134 | // response.SeedCapability = "http://" + reg.ExternalHostName + ":" + this.serversInfo.HttpListenerPort.ToString() + "/CapsSeed/" + capsPath + "0000/"; | 134 | // response.SeedCapability = "http://" + reg.ExternalHostName + ":" + this.serversInfo.HttpListenerPort.ToString() + "/CapsSeed/" + capsPath + "0000/"; |
135 | theUser.currentAgent.currentRegion = reg.RegionID; | 135 | theUser.currentAgent.currentRegion = reg.RegionID; |
136 | theUser.currentAgent.currentHandle = reg.RegionHandle; | 136 | theUser.currentAgent.currentHandle = reg.RegionHandle; |
137 | 137 | ||
138 | LoginResponse.BuddyList buddyList = new LoginResponse.BuddyList(); | 138 | LoginResponse.BuddyList buddyList = new LoginResponse.BuddyList(); |
139 | buddyList.AddNewBuddy(new LoginResponse.BuddyList.BuddyInfo("11111111-1111-0000-0000-000100bba000")); | 139 | buddyList.AddNewBuddy(new LoginResponse.BuddyList.BuddyInfo("11111111-1111-0000-0000-000100bba000")); |
140 | response.BuddList = buddyList; | 140 | response.BuddList = buddyList; |
@@ -157,7 +157,7 @@ namespace OpenSim.Region.Communications.Local | |||
157 | } | 157 | } |
158 | else | 158 | else |
159 | { | 159 | { |
160 | MainLog.Instance.Warn("LOGIN", "Not found region " + currentRegion); | 160 | MainLog.Instance.Warn("LOGIN", "Not found region " + currentRegion); |
161 | } | 161 | } |
162 | } | 162 | } |
163 | 163 | ||
@@ -207,4 +207,4 @@ namespace OpenSim.Region.Communications.Local | |||
207 | } | 207 | } |
208 | } | 208 | } |
209 | } | 209 | } |
210 | } | 210 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/Local/LocalUserServices.cs b/OpenSim/Region/Communications/Local/LocalUserServices.cs index d8c4b1d..6269565 100644 --- a/OpenSim/Region/Communications/Local/LocalUserServices.cs +++ b/OpenSim/Region/Communications/Local/LocalUserServices.cs | |||
@@ -27,6 +27,7 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using libsecondlife; | ||
30 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
31 | using OpenSim.Framework.Communications; | 32 | using OpenSim.Framework.Communications; |
32 | using OpenSim.Framework.UserManagement; | 33 | using OpenSim.Framework.UserManagement; |
@@ -82,7 +83,7 @@ namespace OpenSim.Region.Communications.Local | |||
82 | return profile; | 83 | return profile; |
83 | } | 84 | } |
84 | 85 | ||
85 | public override UserProfileData SetupMasterUser(libsecondlife.LLUUID uuid) | 86 | public override UserProfileData SetupMasterUser(LLUUID uuid) |
86 | { | 87 | { |
87 | UserProfileData data = GetUserProfile(uuid); | 88 | UserProfileData data = GetUserProfile(uuid); |
88 | if (data == null) | 89 | if (data == null) |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs index 2754c4e..8d52eeb 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1GridServices.cs | |||
@@ -60,23 +60,17 @@ namespace OpenSim.Region.Communications.OGS1 | |||
60 | public string gdebugRegionName | 60 | public string gdebugRegionName |
61 | { | 61 | { |
62 | get { return _gdebugRegionName; } | 62 | get { return _gdebugRegionName; } |
63 | set | 63 | set { _gdebugRegionName = value; } |
64 | { | ||
65 | _gdebugRegionName = value; | ||
66 | |||
67 | } | ||
68 | } | 64 | } |
65 | |||
69 | public string _rdebugRegionName = ""; | 66 | public string _rdebugRegionName = ""; |
70 | 67 | ||
71 | public string rdebugRegionName | 68 | public string rdebugRegionName |
72 | { | 69 | { |
73 | get { return _rdebugRegionName; } | 70 | get { return _rdebugRegionName; } |
74 | set | 71 | set { _rdebugRegionName = value; } |
75 | { | ||
76 | _rdebugRegionName = value; | ||
77 | |||
78 | } | ||
79 | } | 72 | } |
73 | |||
80 | /// <summary> | 74 | /// <summary> |
81 | /// | 75 | /// |
82 | /// </summary> | 76 | /// </summary> |
@@ -128,7 +122,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
128 | // Process Response | 122 | // Process Response |
129 | if (GridRespData.ContainsKey("error")) | 123 | if (GridRespData.ContainsKey("error")) |
130 | { | 124 | { |
131 | string errorstring = (string)GridRespData["error"]; | 125 | string errorstring = (string) GridRespData["error"]; |
132 | MainLog.Instance.Error("Unable to connect to grid: " + errorstring); | 126 | MainLog.Instance.Error("Unable to connect to grid: " + errorstring); |
133 | return null; | 127 | return null; |
134 | } | 128 | } |
@@ -137,14 +131,12 @@ namespace OpenSim.Region.Communications.OGS1 | |||
137 | m_knownRegions = RequestNeighbours(regionInfo.RegionLocX, regionInfo.RegionLocY); | 131 | m_knownRegions = RequestNeighbours(regionInfo.RegionLocX, regionInfo.RegionLocY); |
138 | if (GridRespData.ContainsKey("allow_forceful_banlines")) | 132 | if (GridRespData.ContainsKey("allow_forceful_banlines")) |
139 | { | 133 | { |
140 | 134 | if ((string) GridRespData["allow_forceful_banlines"] != "TRUE") | |
141 | if ((string)GridRespData["allow_forceful_banlines"] != "TRUE") | ||
142 | { | 135 | { |
143 | //m_localBackend.SetForcefulBanlistsDisallowed(regionInfo.RegionHandle); | 136 | //m_localBackend.SetForcefulBanlistsDisallowed(regionInfo.RegionHandle); |
144 | m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE"); | 137 | m_queuedGridSettings.Add("allow_forceful_banlines", "FALSE"); |
145 | } | 138 | } |
146 | } | 139 | } |
147 | |||
148 | } | 140 | } |
149 | return m_localBackend.RegisterRegion(regionInfo); | 141 | return m_localBackend.RegisterRegion(regionInfo); |
150 | } | 142 | } |
@@ -153,6 +145,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
153 | { | 145 | { |
154 | return false; | 146 | return false; |
155 | } | 147 | } |
148 | |||
156 | public virtual Dictionary<string, string> GetGridSettings() | 149 | public virtual Dictionary<string, string> GetGridSettings() |
157 | { | 150 | { |
158 | Dictionary<string, string> returnGridSettings = new Dictionary<string, string>(); | 151 | Dictionary<string, string> returnGridSettings = new Dictionary<string, string>(); |
@@ -161,15 +154,15 @@ namespace OpenSim.Region.Communications.OGS1 | |||
161 | foreach (string Dictkey in m_queuedGridSettings.Keys) | 154 | foreach (string Dictkey in m_queuedGridSettings.Keys) |
162 | { | 155 | { |
163 | returnGridSettings.Add(Dictkey, m_queuedGridSettings[Dictkey]); | 156 | returnGridSettings.Add(Dictkey, m_queuedGridSettings[Dictkey]); |
164 | |||
165 | } | 157 | } |
166 | 158 | ||
167 | 159 | ||
168 | m_queuedGridSettings.Clear(); | 160 | m_queuedGridSettings.Clear(); |
169 | } | 161 | } |
170 | 162 | ||
171 | return returnGridSettings; | 163 | return returnGridSettings; |
172 | } | 164 | } |
165 | |||
173 | /// <summary> | 166 | /// <summary> |
174 | /// | 167 | /// |
175 | /// </summary> | 168 | /// </summary> |
@@ -223,7 +216,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
223 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); | 216 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); |
224 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); | 217 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); |
225 | 218 | ||
226 | Hashtable responseData = (Hashtable)GridResp.Value; | 219 | Hashtable responseData = (Hashtable) GridResp.Value; |
227 | 220 | ||
228 | if (responseData.ContainsKey("error")) | 221 | if (responseData.ContainsKey("error")) |
229 | { | 222 | { |
@@ -231,29 +224,30 @@ namespace OpenSim.Region.Communications.OGS1 | |||
231 | return null; | 224 | return null; |
232 | } | 225 | } |
233 | 226 | ||
234 | uint regX = Convert.ToUInt32((string)responseData["region_locx"]); | 227 | uint regX = Convert.ToUInt32((string) responseData["region_locx"]); |
235 | uint regY = Convert.ToUInt32((string)responseData["region_locy"]); | 228 | uint regY = Convert.ToUInt32((string) responseData["region_locy"]); |
236 | string internalIpStr = (string)responseData["sim_ip"]; | 229 | string internalIpStr = (string) responseData["sim_ip"]; |
237 | uint port = Convert.ToUInt32(responseData["sim_port"]); | 230 | uint port = Convert.ToUInt32(responseData["sim_port"]); |
238 | string externalUri = (string)responseData["sim_uri"]; | 231 | string externalUri = (string) responseData["sim_uri"]; |
239 | 232 | ||
240 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int)port); | 233 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port); |
241 | string neighbourExternalUri = externalUri; | 234 | string neighbourExternalUri = externalUri; |
242 | regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr); | 235 | regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr); |
243 | 236 | ||
244 | regionInfo.RemotingPort = Convert.ToUInt32((string)responseData["remoting_port"]); | 237 | regionInfo.RemotingPort = Convert.ToUInt32((string) responseData["remoting_port"]); |
245 | regionInfo.RemotingAddress = internalIpStr; | 238 | regionInfo.RemotingAddress = internalIpStr; |
246 | 239 | ||
247 | regionInfo.RegionID = new LLUUID((string)responseData["region_UUID"]); | 240 | regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]); |
248 | regionInfo.RegionName = (string)responseData["region_name"]; | 241 | regionInfo.RegionName = (string) responseData["region_name"]; |
249 | 242 | ||
250 | if (requestData.ContainsKey("regionHandle")) | 243 | if (requestData.ContainsKey("regionHandle")) |
251 | { | 244 | { |
252 | m_remoteRegionInfoCache.Add(Convert.ToUInt64((string)requestData["regionHandle"]), regionInfo); | 245 | m_remoteRegionInfoCache.Add(Convert.ToUInt64((string) requestData["regionHandle"]), regionInfo); |
253 | } | 246 | } |
254 | 247 | ||
255 | return regionInfo; | 248 | return regionInfo; |
256 | } | 249 | } |
250 | |||
257 | /// <summary> | 251 | /// <summary> |
258 | /// | 252 | /// |
259 | /// </summary> | 253 | /// </summary> |
@@ -283,7 +277,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
283 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); | 277 | XmlRpcRequest GridReq = new XmlRpcRequest("simulator_data_request", SendParams); |
284 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); | 278 | XmlRpcResponse GridResp = GridReq.Send(serversInfo.GridURL, 3000); |
285 | 279 | ||
286 | Hashtable responseData = (Hashtable)GridResp.Value; | 280 | Hashtable responseData = (Hashtable) GridResp.Value; |
287 | 281 | ||
288 | if (responseData.ContainsKey("error")) | 282 | if (responseData.ContainsKey("error")) |
289 | { | 283 | { |
@@ -291,27 +285,29 @@ namespace OpenSim.Region.Communications.OGS1 | |||
291 | return null; | 285 | return null; |
292 | } | 286 | } |
293 | 287 | ||
294 | uint regX = Convert.ToUInt32((string)responseData["region_locx"]); | 288 | uint regX = Convert.ToUInt32((string) responseData["region_locx"]); |
295 | uint regY = Convert.ToUInt32((string)responseData["region_locy"]); | 289 | uint regY = Convert.ToUInt32((string) responseData["region_locy"]); |
296 | string internalIpStr = (string)responseData["sim_ip"]; | 290 | string internalIpStr = (string) responseData["sim_ip"]; |
297 | uint port = Convert.ToUInt32(responseData["sim_port"]); | 291 | uint port = Convert.ToUInt32(responseData["sim_port"]); |
298 | string externalUri = (string)responseData["sim_uri"]; | 292 | string externalUri = (string) responseData["sim_uri"]; |
299 | 293 | ||
300 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int)port); | 294 | IPEndPoint neighbourInternalEndPoint = new IPEndPoint(IPAddress.Parse(internalIpStr), (int) port); |
301 | string neighbourExternalUri = externalUri; | 295 | string neighbourExternalUri = externalUri; |
302 | regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr); | 296 | regionInfo = new RegionInfo(regX, regY, neighbourInternalEndPoint, internalIpStr); |
303 | 297 | ||
304 | regionInfo.RemotingPort = Convert.ToUInt32((string)responseData["remoting_port"]); | 298 | regionInfo.RemotingPort = Convert.ToUInt32((string) responseData["remoting_port"]); |
305 | regionInfo.RemotingAddress = internalIpStr; | 299 | regionInfo.RemotingAddress = internalIpStr; |
306 | 300 | ||
307 | regionInfo.RegionID = new LLUUID((string)responseData["region_UUID"]); | 301 | regionInfo.RegionID = new LLUUID((string) responseData["region_UUID"]); |
308 | regionInfo.RegionName = (string)responseData["region_name"]; | 302 | regionInfo.RegionName = (string) responseData["region_name"]; |
309 | 303 | ||
310 | m_remoteRegionInfoCache.Add(regionHandle, regionInfo); | 304 | m_remoteRegionInfoCache.Add(regionHandle, regionInfo); |
311 | } | 305 | } |
312 | catch (System.Net.WebException) | 306 | catch (WebException) |
313 | { | 307 | { |
314 | MainLog.Instance.Error("GRID", "Region lookup failed for: " + regionHandle.ToString() + " - Is the GridServer down?"); | 308 | MainLog.Instance.Error("GRID", |
309 | "Region lookup failed for: " + regionHandle.ToString() + | ||
310 | " - Is the GridServer down?"); | ||
315 | return null; | 311 | return null; |
316 | } | 312 | } |
317 | } | 313 | } |
@@ -462,12 +458,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
462 | 458 | ||
463 | return new XmlRpcResponse(); | 459 | return new XmlRpcResponse(); |
464 | } | 460 | } |
465 | |||
466 | 461 | ||
467 | |||
468 | |||
469 | |||
470 | |||
471 | #region m_interRegion Comms | 462 | #region m_interRegion Comms |
472 | 463 | ||
473 | /// <summary> | 464 | /// <summary> |
@@ -510,8 +501,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
510 | bool retValue = false; | 501 | bool retValue = false; |
511 | 502 | ||
512 | 503 | ||
513 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting)Activator.GetObject( | 504 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting) Activator.GetObject( |
514 | typeof(OGS1InterRegionRemoting), | 505 | typeof (OGS1InterRegionRemoting), |
515 | "tcp://" + regInfo.RemotingAddress + | 506 | "tcp://" + regInfo.RemotingAddress + |
516 | ":" + regInfo.RemotingPort + | 507 | ":" + regInfo.RemotingPort + |
517 | "/InterRegions"); | 508 | "/InterRegions"); |
@@ -525,7 +516,10 @@ namespace OpenSim.Region.Communications.OGS1 | |||
525 | Console.WriteLine("remoting object not found"); | 516 | Console.WriteLine("remoting object not found"); |
526 | } | 517 | } |
527 | remObject = null; | 518 | remObject = null; |
528 | MainLog.Instance.Verbose("INTER", gdebugRegionName + ": OGS1 tried to Update Child Agent data on outside region and got " + retValue.ToString()); | 519 | MainLog.Instance.Verbose("INTER", |
520 | gdebugRegionName + | ||
521 | ": OGS1 tried to Update Child Agent data on outside region and got " + | ||
522 | retValue.ToString()); | ||
529 | 523 | ||
530 | return retValue; | 524 | return retValue; |
531 | } | 525 | } |
@@ -534,35 +528,39 @@ namespace OpenSim.Region.Communications.OGS1 | |||
534 | } | 528 | } |
535 | catch (RemotingException e) | 529 | catch (RemotingException e) |
536 | { | 530 | { |
537 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 531 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + |
532 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
538 | MainLog.Instance.Debug(e.ToString()); | 533 | MainLog.Instance.Debug(e.ToString()); |
539 | return false; | 534 | return false; |
540 | } | 535 | } |
541 | catch (SocketException e) | 536 | catch (SocketException e) |
542 | { | 537 | { |
543 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 538 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + |
539 | regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
544 | MainLog.Instance.Debug(e.ToString()); | 540 | MainLog.Instance.Debug(e.ToString()); |
545 | return false; | 541 | return false; |
546 | } | 542 | } |
547 | catch (InvalidCredentialException e) | 543 | catch (InvalidCredentialException e) |
548 | { | 544 | { |
549 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 545 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + |
546 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
550 | MainLog.Instance.Debug(e.ToString()); | 547 | MainLog.Instance.Debug(e.ToString()); |
551 | return false; | 548 | return false; |
552 | } | 549 | } |
553 | catch (AuthenticationException e) | 550 | catch (AuthenticationException e) |
554 | { | 551 | { |
555 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 552 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + |
553 | regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
556 | MainLog.Instance.Debug(e.ToString()); | 554 | MainLog.Instance.Debug(e.ToString()); |
557 | return false; | 555 | return false; |
558 | } | 556 | } |
559 | catch (Exception e) | 557 | catch (Exception e) |
560 | { | 558 | { |
561 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 559 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + |
560 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
562 | MainLog.Instance.Debug(e.ToString()); | 561 | MainLog.Instance.Debug(e.ToString()); |
563 | return false; | 562 | return false; |
564 | } | 563 | } |
565 | |||
566 | } | 564 | } |
567 | 565 | ||
568 | /// <summary> | 566 | /// <summary> |
@@ -571,7 +569,6 @@ namespace OpenSim.Region.Communications.OGS1 | |||
571 | /// <param name="regionHandle"></param> | 569 | /// <param name="regionHandle"></param> |
572 | /// <param name="agentData"></param> | 570 | /// <param name="agentData"></param> |
573 | /// <returns></returns> | 571 | /// <returns></returns> |
574 | |||
575 | public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) | 572 | public bool InformRegionOfChildAgent(ulong regionHandle, AgentCircuitData agentData) |
576 | { | 573 | { |
577 | RegionInfo regInfo = null; | 574 | RegionInfo regInfo = null; |
@@ -604,7 +601,10 @@ namespace OpenSim.Region.Communications.OGS1 | |||
604 | Console.WriteLine("remoting object not found"); | 601 | Console.WriteLine("remoting object not found"); |
605 | } | 602 | } |
606 | remObject = null; | 603 | remObject = null; |
607 | MainLog.Instance.Verbose("INTER", gdebugRegionName + ": OGS1 tried to InformRegionOfChildAgent for " + agentData.firstname + " " + agentData.lastname + " and got " + retValue.ToString()); | 604 | MainLog.Instance.Verbose("INTER", |
605 | gdebugRegionName + ": OGS1 tried to InformRegionOfChildAgent for " + | ||
606 | agentData.firstname + " " + agentData.lastname + " and got " + | ||
607 | retValue.ToString()); | ||
608 | 608 | ||
609 | return retValue; | 609 | return retValue; |
610 | } | 610 | } |
@@ -613,31 +613,36 @@ namespace OpenSim.Region.Communications.OGS1 | |||
613 | } | 613 | } |
614 | catch (RemotingException e) | 614 | catch (RemotingException e) |
615 | { | 615 | { |
616 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 616 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + |
617 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
617 | MainLog.Instance.Debug(e.ToString()); | 618 | MainLog.Instance.Debug(e.ToString()); |
618 | return false; | 619 | return false; |
619 | } | 620 | } |
620 | catch (SocketException e) | 621 | catch (SocketException e) |
621 | { | 622 | { |
622 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 623 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + |
624 | regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
623 | MainLog.Instance.Debug(e.ToString()); | 625 | MainLog.Instance.Debug(e.ToString()); |
624 | return false; | 626 | return false; |
625 | } | 627 | } |
626 | catch (InvalidCredentialException e) | 628 | catch (InvalidCredentialException e) |
627 | { | 629 | { |
628 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 630 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + |
631 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
629 | MainLog.Instance.Debug(e.ToString()); | 632 | MainLog.Instance.Debug(e.ToString()); |
630 | return false; | 633 | return false; |
631 | } | 634 | } |
632 | catch (AuthenticationException e) | 635 | catch (AuthenticationException e) |
633 | { | 636 | { |
634 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 637 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + |
638 | regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
635 | MainLog.Instance.Debug(e.ToString()); | 639 | MainLog.Instance.Debug(e.ToString()); |
636 | return false; | 640 | return false; |
637 | } | 641 | } |
638 | catch (Exception e) | 642 | catch (Exception e) |
639 | { | 643 | { |
640 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 644 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + |
645 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
641 | MainLog.Instance.Debug(e.ToString()); | 646 | MainLog.Instance.Debug(e.ToString()); |
642 | return false; | 647 | return false; |
643 | } | 648 | } |
@@ -656,7 +661,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
656 | region = new SearializableRegionInfo(RequestNeighbourInfo(region.RegionHandle)); | 661 | region = new SearializableRegionInfo(RequestNeighbourInfo(region.RegionHandle)); |
657 | region.RemotingAddress = region.ExternalHostName; | 662 | region.RemotingAddress = region.ExternalHostName; |
658 | region.RemotingPort = NetworkServersInfo.RemotingListenerPort; | 663 | region.RemotingPort = NetworkServersInfo.RemotingListenerPort; |
659 | if (m_localBackend.RegionUp(region,regionhandle)) | 664 | if (m_localBackend.RegionUp(region, regionhandle)) |
660 | { | 665 | { |
661 | return true; | 666 | return true; |
662 | } | 667 | } |
@@ -671,9 +676,11 @@ namespace OpenSim.Region.Communications.OGS1 | |||
671 | bool retValue = false; | 676 | bool retValue = false; |
672 | 677 | ||
673 | 678 | ||
674 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting)Activator.GetObject( | 679 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting) Activator.GetObject( |
675 | typeof(OGS1InterRegionRemoting), | 680 | typeof ( |
676 | "tcp://" + regInfo.RemotingAddress + | 681 | OGS1InterRegionRemoting), |
682 | "tcp://" + | ||
683 | regInfo.RemotingAddress + | ||
677 | ":" + regInfo.RemotingPort + | 684 | ":" + regInfo.RemotingPort + |
678 | "/InterRegions"); | 685 | "/InterRegions"); |
679 | 686 | ||
@@ -703,33 +710,39 @@ namespace OpenSim.Region.Communications.OGS1 | |||
703 | } | 710 | } |
704 | catch (RemotingException e) | 711 | catch (RemotingException e) |
705 | { | 712 | { |
706 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + | 713 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region using tcp://" + |
707 | ":" + regInfo.RemotingPort + | 714 | regInfo.RemotingAddress + |
708 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + " - Is this neighbor up?"); | 715 | ":" + regInfo.RemotingPort + |
716 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + | ||
717 | " - Is this neighbor up?"); | ||
709 | MainLog.Instance.Debug(e.ToString()); | 718 | MainLog.Instance.Debug(e.ToString()); |
710 | return false; | 719 | return false; |
711 | } | 720 | } |
712 | catch (SocketException e) | 721 | catch (SocketException e) |
713 | { | 722 | { |
714 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + | 723 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region using tcp://" + |
715 | ":" + regInfo.RemotingPort + | 724 | regInfo.RemotingAddress + |
716 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + " - Is this neighbor up?"); | 725 | ":" + regInfo.RemotingPort + |
726 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + | ||
727 | " - Is this neighbor up?"); | ||
717 | MainLog.Instance.Debug(e.ToString()); | 728 | MainLog.Instance.Debug(e.ToString()); |
718 | return false; | 729 | return false; |
719 | } | 730 | } |
720 | catch (InvalidCredentialException e) | 731 | catch (InvalidCredentialException e) |
721 | { | 732 | { |
722 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + | 733 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region using tcp://" + |
723 | ":" + regInfo.RemotingPort + | 734 | regInfo.RemotingAddress + |
724 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 735 | ":" + regInfo.RemotingPort + |
736 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
725 | MainLog.Instance.Debug(e.ToString()); | 737 | MainLog.Instance.Debug(e.ToString()); |
726 | return false; | 738 | return false; |
727 | } | 739 | } |
728 | catch (AuthenticationException e) | 740 | catch (AuthenticationException e) |
729 | { | 741 | { |
730 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + | 742 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region using tcp://" + |
731 | ":" + regInfo.RemotingPort + | 743 | regInfo.RemotingAddress + |
732 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 744 | ":" + regInfo.RemotingPort + |
745 | "/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
733 | MainLog.Instance.Debug(e.ToString()); | 746 | MainLog.Instance.Debug(e.ToString()); |
734 | return false; | 747 | return false; |
735 | } | 748 | } |
@@ -737,25 +750,25 @@ namespace OpenSim.Region.Communications.OGS1 | |||
737 | { | 750 | { |
738 | // This line errors with a Null Reference Exception.. Why? @.@ | 751 | // This line errors with a Null Reference Exception.. Why? @.@ |
739 | //MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + | 752 | //MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region using tcp://" + regInfo.RemotingAddress + |
740 | // ":" + regInfo.RemotingPort + | 753 | // ":" + regInfo.RemotingPort + |
741 | //"/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + " - This is likely caused by an incompatibility in the protocol between this sim and that one"); | 754 | //"/InterRegions - @ " + regInfo.RegionLocX + "," + regInfo.RegionLocY + " - This is likely caused by an incompatibility in the protocol between this sim and that one"); |
742 | MainLog.Instance.Debug(e.ToString()); | 755 | MainLog.Instance.Debug(e.ToString()); |
743 | return false; | 756 | return false; |
744 | } | 757 | } |
745 | } | 758 | } |
759 | |||
746 | /// <summary> | 760 | /// <summary> |
747 | /// | 761 | /// |
748 | /// </summary> | 762 | /// </summary> |
749 | /// <param name="regionHandle"></param> | 763 | /// <param name="regionHandle"></param> |
750 | /// <param name="agentData"></param> | 764 | /// <param name="agentData"></param> |
751 | /// <returns></returns> | 765 | /// <returns></returns> |
752 | |||
753 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 766 | public bool InformRegionOfPrimCrossing(ulong regionHandle, LLUUID primID, string objData) |
754 | { | 767 | { |
755 | RegionInfo regInfo = null; | 768 | RegionInfo regInfo = null; |
756 | try | 769 | try |
757 | { | 770 | { |
758 | if (m_localBackend.InformRegionOfPrimCrossing(regionHandle,primID, objData)) | 771 | if (m_localBackend.InformRegionOfPrimCrossing(regionHandle, primID, objData)) |
759 | { | 772 | { |
760 | return true; | 773 | return true; |
761 | } | 774 | } |
@@ -775,7 +788,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
775 | 788 | ||
776 | if (remObject != null) | 789 | if (remObject != null) |
777 | { | 790 | { |
778 | retValue = remObject.InformRegionOfPrimCrossing(regionHandle,primID.UUID, objData); | 791 | retValue = remObject.InformRegionOfPrimCrossing(regionHandle, primID.UUID, objData); |
779 | } | 792 | } |
780 | else | 793 | else |
781 | { | 794 | { |
@@ -791,35 +804,41 @@ namespace OpenSim.Region.Communications.OGS1 | |||
791 | } | 804 | } |
792 | catch (RemotingException e) | 805 | catch (RemotingException e) |
793 | { | 806 | { |
794 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 807 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + |
808 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
795 | MainLog.Instance.Debug(e.ToString()); | 809 | MainLog.Instance.Debug(e.ToString()); |
796 | return false; | 810 | return false; |
797 | } | 811 | } |
798 | catch (SocketException e) | 812 | catch (SocketException e) |
799 | { | 813 | { |
800 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 814 | MainLog.Instance.Warn("Socket Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + |
815 | regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
801 | MainLog.Instance.Debug(e.ToString()); | 816 | MainLog.Instance.Debug(e.ToString()); |
802 | return false; | 817 | return false; |
803 | } | 818 | } |
804 | catch (InvalidCredentialException e) | 819 | catch (InvalidCredentialException e) |
805 | { | 820 | { |
806 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 821 | MainLog.Instance.Warn("Invalid Credentials: Unable to connect to adjacent region: " + regInfo.RegionName + |
822 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
807 | MainLog.Instance.Debug(e.ToString()); | 823 | MainLog.Instance.Debug(e.ToString()); |
808 | return false; | 824 | return false; |
809 | } | 825 | } |
810 | catch (AuthenticationException e) | 826 | catch (AuthenticationException e) |
811 | { | 827 | { |
812 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 828 | MainLog.Instance.Warn("Authentication exception: Unable to connect to adjacent region: " + |
829 | regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
813 | MainLog.Instance.Debug(e.ToString()); | 830 | MainLog.Instance.Debug(e.ToString()); |
814 | return false; | 831 | return false; |
815 | } | 832 | } |
816 | catch (Exception e) | 833 | catch (Exception e) |
817 | { | 834 | { |
818 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 835 | MainLog.Instance.Warn("Unknown exception: Unable to connect to adjacent region: " + regInfo.RegionName + |
836 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
819 | MainLog.Instance.Debug(e.ToString()); | 837 | MainLog.Instance.Debug(e.ToString()); |
820 | return false; | 838 | return false; |
821 | } | 839 | } |
822 | } | 840 | } |
841 | |||
823 | /// <summary> | 842 | /// <summary> |
824 | /// | 843 | /// |
825 | /// </summary> | 844 | /// </summary> |
@@ -848,7 +867,9 @@ namespace OpenSim.Region.Communications.OGS1 | |||
848 | "/InterRegions"); | 867 | "/InterRegions"); |
849 | if (remObject != null) | 868 | if (remObject != null) |
850 | { | 869 | { |
851 | retValue = remObject.ExpectAvatarCrossing(regionHandle, agentID.UUID, new sLLVector3(position), isFlying); | 870 | retValue = |
871 | remObject.ExpectAvatarCrossing(regionHandle, agentID.UUID, new sLLVector3(position), | ||
872 | isFlying); | ||
852 | } | 873 | } |
853 | else | 874 | else |
854 | { | 875 | { |
@@ -864,7 +885,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
864 | } | 885 | } |
865 | catch (RemotingException e) | 886 | catch (RemotingException e) |
866 | { | 887 | { |
867 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 888 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + |
889 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
868 | MainLog.Instance.Debug(e.ToString()); | 890 | MainLog.Instance.Debug(e.ToString()); |
869 | return false; | 891 | return false; |
870 | } | 892 | } |
@@ -873,6 +895,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
873 | return false; | 895 | return false; |
874 | } | 896 | } |
875 | } | 897 | } |
898 | |||
876 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isPhysical) | 899 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isPhysical) |
877 | { | 900 | { |
878 | RegionInfo regInfo = null; | 901 | RegionInfo regInfo = null; |
@@ -887,14 +910,16 @@ namespace OpenSim.Region.Communications.OGS1 | |||
887 | if (regInfo != null) | 910 | if (regInfo != null) |
888 | { | 911 | { |
889 | bool retValue = false; | 912 | bool retValue = false; |
890 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting)Activator.GetObject( | 913 | OGS1InterRegionRemoting remObject = (OGS1InterRegionRemoting) Activator.GetObject( |
891 | typeof(OGS1InterRegionRemoting), | 914 | typeof (OGS1InterRegionRemoting), |
892 | "tcp://" + regInfo.RemotingAddress + | 915 | "tcp://" + regInfo.RemotingAddress + |
893 | ":" + regInfo.RemotingPort + | 916 | ":" + regInfo.RemotingPort + |
894 | "/InterRegions"); | 917 | "/InterRegions"); |
895 | if (remObject != null) | 918 | if (remObject != null) |
896 | { | 919 | { |
897 | retValue = remObject.ExpectAvatarCrossing(regionHandle, agentID.UUID, new sLLVector3(position), isPhysical); | 920 | retValue = |
921 | remObject.ExpectAvatarCrossing(regionHandle, agentID.UUID, new sLLVector3(position), | ||
922 | isPhysical); | ||
898 | } | 923 | } |
899 | else | 924 | else |
900 | { | 925 | { |
@@ -910,7 +935,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
910 | } | 935 | } |
911 | catch (RemotingException e) | 936 | catch (RemotingException e) |
912 | { | 937 | { |
913 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | 938 | MainLog.Instance.Warn("Remoting Error: Unable to connect to adjacent region: " + regInfo.RegionName + |
939 | " " + regInfo.RegionLocX + "," + regInfo.RegionLocY); | ||
914 | MainLog.Instance.Debug(e.ToString()); | 940 | MainLog.Instance.Debug(e.ToString()); |
915 | return false; | 941 | return false; |
916 | } | 942 | } |
@@ -922,7 +948,6 @@ namespace OpenSim.Region.Communications.OGS1 | |||
922 | 948 | ||
923 | public void TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID) | 949 | public void TellRegionToCloseChildConnection(ulong regionHandle, LLUUID agentID) |
924 | { | 950 | { |
925 | |||
926 | } | 951 | } |
927 | 952 | ||
928 | public bool AcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentId) | 953 | public bool AcknowledgeAgentCrossed(ulong regionHandle, LLUUID agentId) |
@@ -934,6 +959,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
934 | { | 959 | { |
935 | return m_localBackend.AcknowledgePrimCrossed(regionHandle, primId); | 960 | return m_localBackend.AcknowledgePrimCrossed(regionHandle, primId); |
936 | } | 961 | } |
962 | |||
937 | #endregion | 963 | #endregion |
938 | 964 | ||
939 | #region Methods triggered by calls from external instances | 965 | #region Methods triggered by calls from external instances |
@@ -961,8 +987,9 @@ namespace OpenSim.Region.Communications.OGS1 | |||
961 | 987 | ||
962 | public bool TriggerRegionUp(SearializableRegionInfo regionData, ulong regionhandle) | 988 | public bool TriggerRegionUp(SearializableRegionInfo regionData, ulong regionhandle) |
963 | { | 989 | { |
964 | 990 | MainLog.Instance.Verbose("INTER", | |
965 | MainLog.Instance.Verbose("INTER", gdebugRegionName + "Incoming OGS1 RegionUpReport: " + "(" + regionData.RegionLocX + "," + regionData.RegionLocY + ")"); | 991 | gdebugRegionName + "Incoming OGS1 RegionUpReport: " + "(" + regionData.RegionLocX + |
992 | "," + regionData.RegionLocY + ")"); | ||
966 | 993 | ||
967 | try | 994 | try |
968 | { | 995 | { |
@@ -975,6 +1002,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
975 | return false; | 1002 | return false; |
976 | } | 1003 | } |
977 | } | 1004 | } |
1005 | |||
978 | public bool TriggerChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 1006 | public bool TriggerChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) |
979 | { | 1007 | { |
980 | MainLog.Instance.Verbose("INTER", "Incoming OGS1 Child Agent Data Update"); | 1008 | MainLog.Instance.Verbose("INTER", "Incoming OGS1 Child Agent Data Update"); |
@@ -988,7 +1016,6 @@ namespace OpenSim.Region.Communications.OGS1 | |||
988 | MainLog.Instance.Error("Remoting Error: Unable to connect to adjacent region.\n" + e.ToString()); | 1016 | MainLog.Instance.Error("Remoting Error: Unable to connect to adjacent region.\n" + e.ToString()); |
989 | return false; | 1017 | return false; |
990 | } | 1018 | } |
991 | |||
992 | } | 1019 | } |
993 | 1020 | ||
994 | /// <summary> | 1021 | /// <summary> |
@@ -1012,6 +1039,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1012 | return false; | 1039 | return false; |
1013 | } | 1040 | } |
1014 | } | 1041 | } |
1042 | |||
1015 | /// <summary> | 1043 | /// <summary> |
1016 | /// | 1044 | /// |
1017 | /// </summary> | 1045 | /// </summary> |
@@ -1031,6 +1059,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1031 | return false; | 1059 | return false; |
1032 | } | 1060 | } |
1033 | } | 1061 | } |
1062 | |||
1034 | public bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isPhysical) | 1063 | public bool TriggerExpectPrimCrossing(ulong regionHandle, LLUUID agentID, LLVector3 position, bool isPhysical) |
1035 | { | 1064 | { |
1036 | try | 1065 | try |
@@ -1048,4 +1077,4 @@ namespace OpenSim.Region.Communications.OGS1 | |||
1048 | 1077 | ||
1049 | #endregion | 1078 | #endregion |
1050 | } | 1079 | } |
1051 | } | 1080 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs index 683c471..a0da07e 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InterSimComms.cs | |||
@@ -41,7 +41,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
41 | 41 | ||
42 | public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData); | 42 | public delegate bool PrimGroupArrival(ulong regionHandle, LLUUID primID, string objData); |
43 | 43 | ||
44 | public delegate bool RegionUp (SearializableRegionInfo region, ulong regionhandle); | 44 | public delegate bool RegionUp(SearializableRegionInfo region, ulong regionhandle); |
45 | 45 | ||
46 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate childUpdate); | 46 | public delegate bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate childUpdate); |
47 | 47 | ||
@@ -81,7 +81,6 @@ namespace OpenSim.Region.Communications.OGS1 | |||
81 | 81 | ||
82 | public bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) | 82 | public bool RegionUp(SearializableRegionInfo sregion, ulong regionhandle) |
83 | { | 83 | { |
84 | |||
85 | if (OnRegionUp != null) | 84 | if (OnRegionUp != null) |
86 | { | 85 | { |
87 | return OnRegionUp(sregion, regionhandle); | 86 | return OnRegionUp(sregion, regionhandle); |
@@ -106,6 +105,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
106 | } | 105 | } |
107 | return false; | 106 | return false; |
108 | } | 107 | } |
108 | |||
109 | public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) | 109 | public bool InformRegionPrim(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) |
110 | { | 110 | { |
111 | if (OnPrimGroupNear != null) | 111 | if (OnPrimGroupNear != null) |
@@ -114,6 +114,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
114 | } | 114 | } |
115 | return false; | 115 | return false; |
116 | } | 116 | } |
117 | |||
117 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData) | 118 | public bool ExpectPrimCrossing(ulong regionHandle, LLUUID primID, string objData) |
118 | { | 119 | { |
119 | if (OnPrimGroupArrival != null) | 120 | if (OnPrimGroupArrival != null) |
@@ -134,7 +135,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
134 | { | 135 | { |
135 | try | 136 | try |
136 | { | 137 | { |
137 | return InterRegionSingleton.Instance.InformRegionOfChildAgent(regionHandle, new AgentCircuitData(agentData)); | 138 | return |
139 | InterRegionSingleton.Instance.InformRegionOfChildAgent(regionHandle, new AgentCircuitData(agentData)); | ||
138 | } | 140 | } |
139 | catch (RemotingException e) | 141 | catch (RemotingException e) |
140 | { | 142 | { |
@@ -142,7 +144,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
142 | return false; | 144 | return false; |
143 | } | 145 | } |
144 | } | 146 | } |
145 | public bool RegionUp(SearializableRegionInfo region, ulong regionhandle) | 147 | |
148 | public bool RegionUp(SearializableRegionInfo region, ulong regionhandle) | ||
146 | { | 149 | { |
147 | try | 150 | try |
148 | { | 151 | { |
@@ -155,25 +158,27 @@ namespace OpenSim.Region.Communications.OGS1 | |||
155 | } | 158 | } |
156 | } | 159 | } |
157 | 160 | ||
158 | public bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 161 | public bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) |
159 | { | 162 | { |
160 | try | 163 | try |
161 | { | 164 | { |
162 | return InterRegionSingleton.Instance.ChildAgentUpdate(regionHandle,cAgentData); | 165 | return InterRegionSingleton.Instance.ChildAgentUpdate(regionHandle, cAgentData); |
163 | } | 166 | } |
164 | catch (RemotingException e) | 167 | catch (RemotingException e) |
165 | { | 168 | { |
166 | Console.WriteLine("Remoting Error: Unable to send Child agent update to remote region.\n" + e.ToString()); | 169 | Console.WriteLine("Remoting Error: Unable to send Child agent update to remote region.\n" + e.ToString()); |
167 | return false; | 170 | return false; |
168 | } | 171 | } |
169 | |||
170 | } | 172 | } |
171 | 173 | ||
172 | public bool ExpectAvatarCrossing(ulong regionHandle, Guid agentID, sLLVector3 position, bool isFlying) | 174 | public bool ExpectAvatarCrossing(ulong regionHandle, Guid agentID, sLLVector3 position, bool isFlying) |
173 | { | 175 | { |
174 | try | 176 | try |
175 | { | 177 | { |
176 | return InterRegionSingleton.Instance.ExpectAvatarCrossing(regionHandle, new LLUUID(agentID), new LLVector3(position.x,position.y,position.z), isFlying); | 178 | return |
179 | InterRegionSingleton.Instance.ExpectAvatarCrossing(regionHandle, new LLUUID(agentID), | ||
180 | new LLVector3(position.x, position.y, position.z), | ||
181 | isFlying); | ||
177 | } | 182 | } |
178 | catch (RemotingException e) | 183 | catch (RemotingException e) |
179 | { | 184 | { |
@@ -181,20 +186,24 @@ namespace OpenSim.Region.Communications.OGS1 | |||
181 | return false; | 186 | return false; |
182 | } | 187 | } |
183 | } | 188 | } |
189 | |||
184 | public bool InformRegionPrim(ulong regionHandle, Guid SceneObjectGroupID, sLLVector3 position, bool isPhysical) | 190 | public bool InformRegionPrim(ulong regionHandle, Guid SceneObjectGroupID, sLLVector3 position, bool isPhysical) |
185 | { | 191 | { |
186 | try | 192 | try |
187 | { | 193 | { |
188 | return InterRegionSingleton.Instance.InformRegionPrim(regionHandle, new LLUUID(SceneObjectGroupID), new LLVector3(position.x,position.y,position.z), isPhysical); | 194 | return |
195 | InterRegionSingleton.Instance.InformRegionPrim(regionHandle, new LLUUID(SceneObjectGroupID), | ||
196 | new LLVector3(position.x, position.y, position.z), | ||
197 | isPhysical); | ||
189 | } | 198 | } |
190 | catch (RemotingException e) | 199 | catch (RemotingException e) |
191 | { | 200 | { |
192 | Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString()); | 201 | Console.WriteLine("Remoting Error: Unable to connect to remote region.\n" + e.ToString()); |
193 | return false; | 202 | return false; |
194 | } | 203 | } |
195 | |||
196 | } | 204 | } |
197 | public bool InformRegionOfPrimCrossing(ulong regionHandle,Guid primID, string objData) | 205 | |
206 | public bool InformRegionOfPrimCrossing(ulong regionHandle, Guid primID, string objData) | ||
198 | { | 207 | { |
199 | try | 208 | try |
200 | { | 209 | { |
@@ -206,6 +215,5 @@ namespace OpenSim.Region.Communications.OGS1 | |||
206 | return false; | 215 | return false; |
207 | } | 216 | } |
208 | } | 217 | } |
209 | |||
210 | } | 218 | } |
211 | } \ No newline at end of file | 219 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs index 0fb083a..0d97074 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1InventoryService.cs | |||
@@ -29,10 +29,10 @@ using System; | |||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
32 | using OpenSim.Framework.Servers; | ||
33 | using OpenSim.Framework.Communications; | 32 | using OpenSim.Framework.Communications; |
34 | using OpenSim.Framework.Communications.Cache; | 33 | using OpenSim.Framework.Communications.Cache; |
35 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
35 | using OpenSim.Framework.Servers; | ||
36 | 36 | ||
37 | namespace OpenSim.Region.Communications.OGS1 | 37 | namespace OpenSim.Region.Communications.OGS1 |
38 | { | 38 | { |
@@ -51,7 +51,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
51 | // See IInventoryServices | 51 | // See IInventoryServices |
52 | public void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, | 52 | public void RequestInventoryForUser(LLUUID userID, InventoryFolderInfo folderCallBack, |
53 | InventoryItemInfo itemCallBack) | 53 | InventoryItemInfo itemCallBack) |
54 | { | 54 | { |
55 | if (!m_RequestingInventory.ContainsKey(userID)) | 55 | if (!m_RequestingInventory.ContainsKey(userID)) |
56 | { | 56 | { |
57 | InventoryRequest request = new InventoryRequest(userID, folderCallBack, itemCallBack); | 57 | InventoryRequest request = new InventoryRequest(userID, folderCallBack, itemCallBack); |
@@ -72,10 +72,10 @@ namespace OpenSim.Region.Communications.OGS1 | |||
72 | try | 72 | try |
73 | { | 73 | { |
74 | MainLog.Instance.Verbose( | 74 | MainLog.Instance.Verbose( |
75 | "INVENTORY", "Requesting inventory from {0}/GetInventory/ for user {1}", | 75 | "INVENTORY", "Requesting inventory from {0}/GetInventory/ for user {1}", |
76 | _inventoryServerUrl, userID); | 76 | _inventoryServerUrl, userID); |
77 | 77 | ||
78 | RestObjectPosterResponse<InventoryCollection> requester | 78 | RestObjectPosterResponse<InventoryCollection> requester |
79 | = new RestObjectPosterResponse<InventoryCollection>(); | 79 | = new RestObjectPosterResponse<InventoryCollection>(); |
80 | requester.ResponseCallback = InventoryResponse; | 80 | requester.ResponseCallback = InventoryResponse; |
81 | 81 | ||
@@ -96,10 +96,10 @@ namespace OpenSim.Region.Communications.OGS1 | |||
96 | LLUUID userID = response.UserID; | 96 | LLUUID userID = response.UserID; |
97 | if (m_RequestingInventory.ContainsKey(userID)) | 97 | if (m_RequestingInventory.ContainsKey(userID)) |
98 | { | 98 | { |
99 | MainLog.Instance.Verbose("INVENTORY", | 99 | MainLog.Instance.Verbose("INVENTORY", |
100 | "Received inventory response for user {0} containing {1} folders and {2} items", | 100 | "Received inventory response for user {0} containing {1} folders and {2} items", |
101 | userID, response.Folders.Count, response.AllItems.Count); | 101 | userID, response.Folders.Count, response.AllItems.Count); |
102 | 102 | ||
103 | InventoryFolderImpl rootFolder = null; | 103 | InventoryFolderImpl rootFolder = null; |
104 | InventoryRequest request = m_RequestingInventory[userID]; | 104 | InventoryRequest request = m_RequestingInventory[userID]; |
105 | foreach (InventoryFolderBase folder in response.Folders) | 105 | foreach (InventoryFolderBase folder in response.Folders) |
@@ -133,8 +133,8 @@ namespace OpenSim.Region.Communications.OGS1 | |||
133 | else | 133 | else |
134 | { | 134 | { |
135 | MainLog.Instance.Warn( | 135 | MainLog.Instance.Warn( |
136 | "INVENTORY", | 136 | "INVENTORY", |
137 | "Received inventory response for {0} for which we do not have a record of requesting!", | 137 | "Received inventory response for {0} for which we do not have a record of requesting!", |
138 | userID); | 138 | userID); |
139 | } | 139 | } |
140 | } | 140 | } |
@@ -150,7 +150,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
150 | SynchronousRestObjectPoster.BeginPostObject<InventoryFolderBase, bool>( | 150 | SynchronousRestObjectPoster.BeginPostObject<InventoryFolderBase, bool>( |
151 | "POST", _inventoryServerUrl + "/MoveFolder/", folder); | 151 | "POST", _inventoryServerUrl + "/MoveFolder/", folder); |
152 | } | 152 | } |
153 | 153 | ||
154 | public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) | 154 | public void AddNewInventoryItem(LLUUID userID, InventoryItemBase item) |
155 | { | 155 | { |
156 | SynchronousRestObjectPoster.BeginPostObject<InventoryItemBase, bool>( | 156 | SynchronousRestObjectPoster.BeginPostObject<InventoryItemBase, bool>( |
@@ -188,4 +188,4 @@ namespace OpenSim.Region.Communications.OGS1 | |||
188 | } | 188 | } |
189 | } | 189 | } |
190 | } | 190 | } |
191 | } | 191 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs index c1e6ba6..3a2e138 100644 --- a/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs +++ b/OpenSim/Region/Communications/OGS1/OGS1UserServices.cs | |||
@@ -30,6 +30,7 @@ using System; | |||
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using System.Net; | 32 | using System.Net; |
33 | using System.Text.RegularExpressions; | ||
33 | using libsecondlife; | 34 | using libsecondlife; |
34 | using Nwc.XmlRpc; | 35 | using Nwc.XmlRpc; |
35 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
@@ -50,7 +51,9 @@ namespace OpenSim.Region.Communications.OGS1 | |||
50 | { | 51 | { |
51 | if (data.Contains("error_type")) | 52 | if (data.Contains("error_type")) |
52 | { | 53 | { |
53 | MainLog.Instance.Warn("GRID", "Error sent by user server when trying to get user profile: (" + data["error_type"] + | 54 | MainLog.Instance.Warn("GRID", |
55 | "Error sent by user server when trying to get user profile: (" + | ||
56 | data["error_type"] + | ||
54 | "): " + data["error_desc"]); | 57 | "): " + data["error_desc"]); |
55 | return null; | 58 | return null; |
56 | } | 59 | } |
@@ -80,19 +83,19 @@ namespace OpenSim.Region.Communications.OGS1 | |||
80 | return userData; | 83 | return userData; |
81 | } | 84 | } |
82 | 85 | ||
83 | public List<AvatarPickerAvatar> ConvertXMLRPCDataToAvatarPickerList(LLUUID queryID,Hashtable data) | 86 | public List<AvatarPickerAvatar> ConvertXMLRPCDataToAvatarPickerList(LLUUID queryID, Hashtable data) |
84 | { | 87 | { |
85 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); | 88 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); |
86 | int pickercount = Convert.ToInt32((string)data["avcount"]); | 89 | int pickercount = Convert.ToInt32((string) data["avcount"]); |
87 | LLUUID respqueryID = new LLUUID((string)data["queryid"]); | 90 | LLUUID respqueryID = new LLUUID((string) data["queryid"]); |
88 | if (queryID == respqueryID) | 91 | if (queryID == respqueryID) |
89 | { | 92 | { |
90 | for (int i = 0; i < pickercount; i++) | 93 | for (int i = 0; i < pickercount; i++) |
91 | { | 94 | { |
92 | AvatarPickerAvatar apicker = new AvatarPickerAvatar(); | 95 | AvatarPickerAvatar apicker = new AvatarPickerAvatar(); |
93 | LLUUID avatarID = new LLUUID((string)data["avatarid" + i.ToString()]); | 96 | LLUUID avatarID = new LLUUID((string) data["avatarid" + i.ToString()]); |
94 | string firstname = (string)data["firstname" + i.ToString()]; | 97 | string firstname = (string) data["firstname" + i.ToString()]; |
95 | string lastname = (string)data["lastname" + i.ToString()]; | 98 | string lastname = (string) data["lastname" + i.ToString()]; |
96 | apicker.AvatarID = avatarID; | 99 | apicker.AvatarID = avatarID; |
97 | apicker.firstName = firstname; | 100 | apicker.firstName = firstname; |
98 | apicker.lastName = lastname; | 101 | apicker.lastName = lastname; |
@@ -114,18 +117,18 @@ namespace OpenSim.Region.Communications.OGS1 | |||
114 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) | 117 | public List<AvatarPickerAvatar> GenerateAgentPickerRequestResponse(LLUUID queryID, string query) |
115 | { | 118 | { |
116 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); | 119 | List<AvatarPickerAvatar> pickerlist = new List<AvatarPickerAvatar>(); |
117 | System.Text.RegularExpressions.Regex objAlphaNumericPattern = new System.Text.RegularExpressions.Regex("[^a-zA-Z0-9 ]"); | 120 | Regex objAlphaNumericPattern = new Regex("[^a-zA-Z0-9 ]"); |
118 | try | 121 | try |
119 | { | 122 | { |
120 | Hashtable param = new Hashtable(); | 123 | Hashtable param = new Hashtable(); |
121 | param["queryid"] = (string)queryID.ToString(); | 124 | param["queryid"] = (string) queryID.ToString(); |
122 | param["avquery"] = objAlphaNumericPattern.Replace(query, ""); | 125 | param["avquery"] = objAlphaNumericPattern.Replace(query, ""); |
123 | IList parameters = new ArrayList(); | 126 | IList parameters = new ArrayList(); |
124 | parameters.Add(param); | 127 | parameters.Add(param); |
125 | XmlRpcRequest req = new XmlRpcRequest("get_avatar_picker_avatar", parameters); | 128 | XmlRpcRequest req = new XmlRpcRequest("get_avatar_picker_avatar", parameters); |
126 | XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000); | 129 | XmlRpcResponse resp = req.Send(m_parent.NetworkServersInfo.UserURL, 3000); |
127 | Hashtable respData = (Hashtable)resp.Value; | 130 | Hashtable respData = (Hashtable) resp.Value; |
128 | pickerlist = ConvertXMLRPCDataToAvatarPickerList(queryID,respData); | 131 | pickerlist = ConvertXMLRPCDataToAvatarPickerList(queryID, respData); |
129 | } | 132 | } |
130 | catch (WebException e) | 133 | catch (WebException e) |
131 | { | 134 | { |
@@ -196,7 +199,7 @@ namespace OpenSim.Region.Communications.OGS1 | |||
196 | return profile; | 199 | return profile; |
197 | } | 200 | } |
198 | 201 | ||
199 | public UserProfileData SetupMasterUser(libsecondlife.LLUUID uuid) | 202 | public UserProfileData SetupMasterUser(LLUUID uuid) |
200 | { | 203 | { |
201 | UserProfileData data = GetUserProfile(uuid); | 204 | UserProfileData data = GetUserProfile(uuid); |
202 | if (data == null) | 205 | if (data == null) |
@@ -211,4 +214,4 @@ namespace OpenSim.Region.Communications.OGS1 | |||
211 | throw new Exception("The method or operation is not implemented."); | 214 | throw new Exception("The method or operation is not implemented."); |
212 | } | 215 | } |
213 | } | 216 | } |
214 | } | 217 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/EstateManager.cs b/OpenSim/Region/Environment/EstateManager.cs index 081a8cd..3ca9796 100644 --- a/OpenSim/Region/Environment/EstateManager.cs +++ b/OpenSim/Region/Environment/EstateManager.cs | |||
@@ -334,6 +334,7 @@ namespace OpenSim.Region.Environment | |||
334 | } | 334 | } |
335 | } | 335 | } |
336 | } | 336 | } |
337 | |||
337 | private void estateRestartSim(EstateOwnerMessagePacket packet) | 338 | private void estateRestartSim(EstateOwnerMessagePacket packet) |
338 | { | 339 | { |
339 | // There's only 1 block in the estateResetSim.. and that's the number of seconds till restart. | 340 | // There's only 1 block in the estateResetSim.. and that's the number of seconds till restart. |
@@ -341,26 +342,25 @@ namespace OpenSim.Region.Environment | |||
341 | { | 342 | { |
342 | float timeSeconds = 0; | 343 | float timeSeconds = 0; |
343 | timeSeconds = BitConverter.ToInt16(block.Parameter, 1); | 344 | timeSeconds = BitConverter.ToInt16(block.Parameter, 1); |
344 | timeSeconds = (int)((timeSeconds / 100) - 3); | 345 | timeSeconds = (int) ((timeSeconds/100) - 3); |
345 | m_scene.Restart(timeSeconds); | 346 | m_scene.Restart(timeSeconds); |
346 | |||
347 | } | 347 | } |
348 | } | 348 | } |
349 | |||
349 | private void EstateChangeCovenant(EstateOwnerMessagePacket packet) | 350 | private void EstateChangeCovenant(EstateOwnerMessagePacket packet) |
350 | { | 351 | { |
351 | foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList) | 352 | foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList) |
352 | { | 353 | { |
353 | LLUUID newCovenantID = new LLUUID(Helpers.FieldToUTF8String(block.Parameter)); | 354 | LLUUID newCovenantID = new LLUUID(Helpers.FieldToUTF8String(block.Parameter)); |
354 | m_regInfo.CovenantID = newCovenantID; | 355 | m_regInfo.CovenantID = newCovenantID; |
355 | |||
356 | } | 356 | } |
357 | |||
358 | } | 357 | } |
358 | |||
359 | public void HandleRegionInfoRequest(IClientAPI client, LLUUID sessionID) | 359 | public void HandleRegionInfoRequest(IClientAPI client, LLUUID sessionID) |
360 | { | 360 | { |
361 | RegionInfoPacket rinfopack = new RegionInfoPacket(); | 361 | RegionInfoPacket rinfopack = new RegionInfoPacket(); |
362 | RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock(); | 362 | RegionInfoPacket.RegionInfoBlock rinfoblk = new RegionInfoPacket.RegionInfoBlock(); |
363 | 363 | ||
364 | rinfoblk.BillableFactor = 0; | 364 | rinfoblk.BillableFactor = 0; |
365 | rinfoblk.EstateID = 02; | 365 | rinfoblk.EstateID = 02; |
366 | rinfoblk.MaxAgents = 100; | 366 | rinfoblk.MaxAgents = 100; |
@@ -369,20 +369,20 @@ namespace OpenSim.Region.Environment | |||
369 | rinfoblk.PricePerMeter = 0; | 369 | rinfoblk.PricePerMeter = 0; |
370 | rinfoblk.RedirectGridX = 0; | 370 | rinfoblk.RedirectGridX = 0; |
371 | rinfoblk.RedirectGridY = 0; | 371 | rinfoblk.RedirectGridY = 0; |
372 | rinfoblk.RegionFlags = (uint)m_regInfo.EstateSettings.regionFlags; | 372 | rinfoblk.RegionFlags = (uint) m_regInfo.EstateSettings.regionFlags; |
373 | rinfoblk.SimAccess = (byte)m_regInfo.EstateSettings.simAccess; | 373 | rinfoblk.SimAccess = (byte) m_regInfo.EstateSettings.simAccess; |
374 | rinfoblk.SunHour = m_regInfo.EstateSettings.sunHour; | 374 | rinfoblk.SunHour = m_regInfo.EstateSettings.sunHour; |
375 | rinfoblk.TerrainLowerLimit = 20; | 375 | rinfoblk.TerrainLowerLimit = 20; |
376 | rinfoblk.TerrainRaiseLimit = 20; | 376 | rinfoblk.TerrainRaiseLimit = 20; |
377 | rinfoblk.UseEstateSun = true; | 377 | rinfoblk.UseEstateSun = true; |
378 | rinfoblk.WaterHeight = m_regInfo.EstateSettings.waterHeight; | 378 | rinfoblk.WaterHeight = m_regInfo.EstateSettings.waterHeight; |
379 | rinfoblk.SimName = Helpers.StringToField(m_regInfo.RegionName); | 379 | rinfoblk.SimName = Helpers.StringToField(m_regInfo.RegionName); |
380 | 380 | ||
381 | rinfopack.RegionInfo = rinfoblk; | 381 | rinfopack.RegionInfo = rinfoblk; |
382 | 382 | ||
383 | client.OutPacket(rinfopack, ThrottleOutPacketType.Task); | 383 | client.OutPacket(rinfopack, ThrottleOutPacketType.Task); |
384 | |||
385 | } | 384 | } |
385 | |||
386 | public void HandleEstateCovenantRequest(IClientAPI client, LLUUID sessionID) | 386 | public void HandleEstateCovenantRequest(IClientAPI client, LLUUID sessionID) |
387 | { | 387 | { |
388 | EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket(); | 388 | EstateCovenantReplyPacket einfopack = new EstateCovenantReplyPacket(); |
@@ -390,10 +390,12 @@ namespace OpenSim.Region.Environment | |||
390 | edata.CovenantID = m_regInfo.CovenantID; | 390 | edata.CovenantID = m_regInfo.CovenantID; |
391 | edata.CovenantTimestamp = 0; | 391 | edata.CovenantTimestamp = 0; |
392 | edata.EstateOwnerID = m_regInfo.MasterAvatarAssignedUUID; | 392 | edata.EstateOwnerID = m_regInfo.MasterAvatarAssignedUUID; |
393 | edata.EstateName = Helpers.StringToField(m_regInfo.MasterAvatarFirstName + " " + m_regInfo.MasterAvatarLastName); | 393 | edata.EstateName = |
394 | Helpers.StringToField(m_regInfo.MasterAvatarFirstName + " " + m_regInfo.MasterAvatarLastName); | ||
394 | einfopack.Data = edata; | 395 | einfopack.Data = edata; |
395 | client.OutPacket(einfopack, ThrottleOutPacketType.Task); | 396 | client.OutPacket(einfopack, ThrottleOutPacketType.Task); |
396 | } | 397 | } |
398 | |||
397 | #endregion | 399 | #endregion |
398 | 400 | ||
399 | #region Outgoing Packets | 401 | #region Outgoing Packets |
@@ -451,4 +453,4 @@ namespace OpenSim.Region.Environment | |||
451 | 453 | ||
452 | #endregion | 454 | #endregion |
453 | } | 455 | } |
454 | } | 456 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Interfaces/IAvatarFactory.cs b/OpenSim/Region/Environment/Interfaces/IAvatarFactory.cs index ee4d8bc..fb83150 100644 --- a/OpenSim/Region/Environment/Interfaces/IAvatarFactory.cs +++ b/OpenSim/Region/Environment/Interfaces/IAvatarFactory.cs | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using libsecondlife; | 29 | using libsecondlife; |
30 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Environment.Scenes; | 30 | using OpenSim.Region.Environment.Scenes; |
32 | 31 | ||
33 | namespace OpenSim.Region.Environment.Interfaces | 32 | namespace OpenSim.Region.Environment.Interfaces |
diff --git a/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs index c974616..6aa8f35 100644 --- a/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs +++ b/OpenSim/Region/Environment/Interfaces/IHttpRequests.cs | |||
@@ -26,9 +26,9 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System.Collections.Generic; | ||
29 | using libsecondlife; | 30 | using libsecondlife; |
30 | using OpenSim.Region.Environment.Modules; | 31 | using OpenSim.Region.Environment.Modules; |
31 | using System.Collections.Generic; | ||
32 | 32 | ||
33 | namespace OpenSim.Region.Environment.Interfaces | 33 | namespace OpenSim.Region.Environment.Interfaces |
34 | { | 34 | { |
diff --git a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs index 91aa5ff..78ad428 100644 --- a/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs +++ b/OpenSim/Region/Environment/Interfaces/IRegionDataStore.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Environment.LandManagement; | 32 | using OpenSim.Region.Environment.LandManagement; |
32 | using OpenSim.Region.Environment.Scenes; | 33 | using OpenSim.Region.Environment.Scenes; |
33 | 34 | ||
@@ -51,10 +52,10 @@ namespace OpenSim.Region.Environment.Interfaces | |||
51 | void StoreTerrain(double[,] terrain, LLUUID regionID); | 52 | void StoreTerrain(double[,] terrain, LLUUID regionID); |
52 | double[,] LoadTerrain(LLUUID regionID); | 53 | double[,] LoadTerrain(LLUUID regionID); |
53 | 54 | ||
54 | void StoreLandObject(Land Parcel,LLUUID regionUUID); | 55 | void StoreLandObject(Land Parcel, LLUUID regionUUID); |
55 | void RemoveLandObject(LLUUID globalID); | 56 | void RemoveLandObject(LLUUID globalID); |
56 | List<Framework.LandData> LoadLandObjects(LLUUID regionUUID); | 57 | List<LandData> LoadLandObjects(LLUUID regionUUID); |
57 | 58 | ||
58 | void Shutdown(); | 59 | void Shutdown(); |
59 | } | 60 | } |
60 | } | 61 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs index 7977c78..ff16319 100644 --- a/OpenSim/Region/Environment/LandManagement/Land.cs +++ b/OpenSim/Region/Environment/LandManagement/Land.cs | |||
@@ -32,7 +32,6 @@ using libsecondlife; | |||
32 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Region.Environment.Scenes; | 34 | using OpenSim.Region.Environment.Scenes; |
35 | using OpenSim.Region.Environment.Interfaces; | ||
36 | 35 | ||
37 | namespace OpenSim.Region.Environment.LandManagement | 36 | namespace OpenSim.Region.Environment.LandManagement |
38 | { | 37 | { |
@@ -98,7 +97,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
98 | return newLand; | 97 | return newLand; |
99 | } | 98 | } |
100 | 99 | ||
101 | |||
102 | #endregion | 100 | #endregion |
103 | 101 | ||
104 | #region Packet Request Handling | 102 | #region Packet Request Handling |
@@ -202,7 +200,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
202 | //Needs later group support | 200 | //Needs later group support |
203 | LandData newData = landData.Copy(); | 201 | LandData newData = landData.Copy(); |
204 | newData.authBuyerID = packet.ParcelData.AuthBuyerID; | 202 | newData.authBuyerID = packet.ParcelData.AuthBuyerID; |
205 | newData.category = (Parcel.ParcelCategory)packet.ParcelData.Category; | 203 | newData.category = (Parcel.ParcelCategory) packet.ParcelData.Category; |
206 | newData.landDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc); | 204 | newData.landDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc); |
207 | newData.groupID = packet.ParcelData.GroupID; | 205 | newData.groupID = packet.ParcelData.GroupID; |
208 | newData.landingType = packet.ParcelData.LandingType; | 206 | newData.landingType = packet.ParcelData.LandingType; |
@@ -222,8 +220,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
222 | m_scene.LandManager.updateLandObject(landData.localID, newData); | 220 | m_scene.LandManager.updateLandObject(landData.localID, newData); |
223 | 221 | ||
224 | sendLandUpdateToAvatarsOverMe(); | 222 | sendLandUpdateToAvatarsOverMe(); |
225 | |||
226 | |||
227 | } | 223 | } |
228 | } | 224 | } |
229 | 225 | ||
@@ -242,13 +238,13 @@ namespace OpenSim.Region.Environment.LandManagement | |||
242 | 238 | ||
243 | public bool isBannedFromLand(LLUUID avatar) | 239 | public bool isBannedFromLand(LLUUID avatar) |
244 | { | 240 | { |
245 | if ((this.landData.landFlags & (uint)Parcel.ParcelFlags.UseBanList) > 0) | 241 | if ((landData.landFlags & (uint) Parcel.ParcelFlags.UseBanList) > 0) |
246 | { | 242 | { |
247 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 243 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
248 | entry.AgentID = avatar; | 244 | entry.AgentID = avatar; |
249 | entry.Flags = ParcelManager.AccessList.Ban; | 245 | entry.Flags = ParcelManager.AccessList.Ban; |
250 | entry.Time = new DateTime(); | 246 | entry.Time = new DateTime(); |
251 | if (this.landData.parcelAccessList.Contains(entry)) | 247 | if (landData.parcelAccessList.Contains(entry)) |
252 | { | 248 | { |
253 | //They are banned, so lets send them a notice about this parcel | 249 | //They are banned, so lets send them a notice about this parcel |
254 | return true; | 250 | return true; |
@@ -259,13 +255,13 @@ namespace OpenSim.Region.Environment.LandManagement | |||
259 | 255 | ||
260 | public bool isRestrictedFromLand(LLUUID avatar) | 256 | public bool isRestrictedFromLand(LLUUID avatar) |
261 | { | 257 | { |
262 | if ((this.landData.landFlags & (uint)Parcel.ParcelFlags.UseAccessList) > 0) | 258 | if ((landData.landFlags & (uint) Parcel.ParcelFlags.UseAccessList) > 0) |
263 | { | 259 | { |
264 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 260 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
265 | entry.AgentID = avatar; | 261 | entry.AgentID = avatar; |
266 | entry.Flags = ParcelManager.AccessList.Access; | 262 | entry.Flags = ParcelManager.AccessList.Access; |
267 | entry.Time = new DateTime(); | 263 | entry.Time = new DateTime(); |
268 | if (!this.landData.parcelAccessList.Contains(entry)) | 264 | if (!landData.parcelAccessList.Contains(entry)) |
269 | { | 265 | { |
270 | //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel | 266 | //They are not allowed in this parcel, but not banned, so lets send them a notice about this parcel |
271 | return true; | 267 | return true; |
@@ -310,7 +306,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
310 | { | 306 | { |
311 | ParcelAccessListReplyPacket.ListBlock listBlock = new ParcelAccessListReplyPacket.ListBlock(); | 307 | ParcelAccessListReplyPacket.ListBlock listBlock = new ParcelAccessListReplyPacket.ListBlock(); |
312 | 308 | ||
313 | listBlock.Flags = (uint)0; | 309 | listBlock.Flags = (uint) 0; |
314 | listBlock.ID = entry.AgentID; | 310 | listBlock.ID = entry.AgentID; |
315 | listBlock.Time = 0; | 311 | listBlock.Time = 0; |
316 | 312 | ||
@@ -322,7 +318,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
322 | { | 318 | { |
323 | ParcelAccessListReplyPacket.ListBlock listBlock = new ParcelAccessListReplyPacket.ListBlock(); | 319 | ParcelAccessListReplyPacket.ListBlock listBlock = new ParcelAccessListReplyPacket.ListBlock(); |
324 | 320 | ||
325 | listBlock.Flags = (uint)0; | 321 | listBlock.Flags = (uint) 0; |
326 | listBlock.ID = LLUUID.Zero; | 322 | listBlock.ID = LLUUID.Zero; |
327 | listBlock.Time = 0; | 323 | listBlock.Time = 0; |
328 | 324 | ||
@@ -331,38 +327,37 @@ namespace OpenSim.Region.Environment.LandManagement | |||
331 | return list.ToArray(); | 327 | return list.ToArray(); |
332 | } | 328 | } |
333 | 329 | ||
334 | public void sendAccessList(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, IClientAPI remote_client) | 330 | public void sendAccessList(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, |
331 | IClientAPI remote_client) | ||
335 | { | 332 | { |
336 | |||
337 | ParcelAccessListReplyPacket replyPacket; | 333 | ParcelAccessListReplyPacket replyPacket; |
338 | 334 | ||
339 | if (flags == (uint)ParcelManager.AccessList.Access || flags == (uint)ParcelManager.AccessList.Both) | 335 | if (flags == (uint) ParcelManager.AccessList.Access || flags == (uint) ParcelManager.AccessList.Both) |
340 | { | 336 | { |
341 | replyPacket = new ParcelAccessListReplyPacket(); | 337 | replyPacket = new ParcelAccessListReplyPacket(); |
342 | replyPacket.Data.AgentID = agentID; | 338 | replyPacket.Data.AgentID = agentID; |
343 | replyPacket.Data.Flags = (uint)ParcelManager.AccessList.Access; | 339 | replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Access; |
344 | replyPacket.Data.LocalID = this.landData.localID; | 340 | replyPacket.Data.LocalID = landData.localID; |
345 | replyPacket.Data.SequenceID = 0; | 341 | replyPacket.Data.SequenceID = 0; |
346 | 342 | ||
347 | replyPacket.List = createAccessListArrayByFlag(ParcelManager.AccessList.Access); | 343 | replyPacket.List = createAccessListArrayByFlag(ParcelManager.AccessList.Access); |
348 | remote_client.OutPacket((Packet)replyPacket, ThrottleOutPacketType.Task); | 344 | remote_client.OutPacket((Packet) replyPacket, ThrottleOutPacketType.Task); |
349 | } | 345 | } |
350 | 346 | ||
351 | if (flags == (uint)ParcelManager.AccessList.Ban || flags == (uint)ParcelManager.AccessList.Both) | 347 | if (flags == (uint) ParcelManager.AccessList.Ban || flags == (uint) ParcelManager.AccessList.Both) |
352 | { | 348 | { |
353 | replyPacket = new ParcelAccessListReplyPacket(); | 349 | replyPacket = new ParcelAccessListReplyPacket(); |
354 | replyPacket.Data.AgentID = agentID; | 350 | replyPacket.Data.AgentID = agentID; |
355 | replyPacket.Data.Flags = (uint)ParcelManager.AccessList.Ban; | 351 | replyPacket.Data.Flags = (uint) ParcelManager.AccessList.Ban; |
356 | replyPacket.Data.LocalID = this.landData.localID; | 352 | replyPacket.Data.LocalID = landData.localID; |
357 | replyPacket.Data.SequenceID = 0; | 353 | replyPacket.Data.SequenceID = 0; |
358 | 354 | ||
359 | replyPacket.List = createAccessListArrayByFlag(ParcelManager.AccessList.Ban); | 355 | replyPacket.List = createAccessListArrayByFlag(ParcelManager.AccessList.Ban); |
360 | remote_client.OutPacket((Packet)replyPacket, ThrottleOutPacketType.Task); | 356 | remote_client.OutPacket((Packet) replyPacket, ThrottleOutPacketType.Task); |
361 | } | 357 | } |
362 | |||
363 | } | 358 | } |
364 | 359 | ||
365 | public void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client) | 360 | public void updateAccessList(uint flags, List<ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client) |
366 | { | 361 | { |
367 | LandData newData = landData.Copy(); | 362 | LandData newData = landData.Copy(); |
368 | 363 | ||
@@ -370,11 +365,11 @@ namespace OpenSim.Region.Environment.LandManagement | |||
370 | { | 365 | { |
371 | entries.Clear(); | 366 | entries.Clear(); |
372 | } | 367 | } |
373 | 368 | ||
374 | List<ParcelManager.ParcelAccessEntry> toRemove = new List<ParcelManager.ParcelAccessEntry>(); | 369 | List<ParcelManager.ParcelAccessEntry> toRemove = new List<ParcelManager.ParcelAccessEntry>(); |
375 | foreach (ParcelManager.ParcelAccessEntry entry in newData.parcelAccessList) | 370 | foreach (ParcelManager.ParcelAccessEntry entry in newData.parcelAccessList) |
376 | { | 371 | { |
377 | if (entry.Flags == (ParcelManager.AccessList)flags) | 372 | if (entry.Flags == (ParcelManager.AccessList) flags) |
378 | { | 373 | { |
379 | toRemove.Add(entry); | 374 | toRemove.Add(entry); |
380 | } | 375 | } |
@@ -388,8 +383,8 @@ namespace OpenSim.Region.Environment.LandManagement | |||
388 | { | 383 | { |
389 | ParcelManager.ParcelAccessEntry temp = new ParcelManager.ParcelAccessEntry(); | 384 | ParcelManager.ParcelAccessEntry temp = new ParcelManager.ParcelAccessEntry(); |
390 | temp.AgentID = entry.AgentID; | 385 | temp.AgentID = entry.AgentID; |
391 | temp.Time = new DateTime() ; //Pointless? Yes. | 386 | temp.Time = new DateTime(); //Pointless? Yes. |
392 | temp.Flags = (ParcelManager.AccessList)flags; | 387 | temp.Flags = (ParcelManager.AccessList) flags; |
393 | 388 | ||
394 | if (!newData.parcelAccessList.Contains(temp)) | 389 | if (!newData.parcelAccessList.Contains(temp)) |
395 | { | 390 | { |
@@ -398,7 +393,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
398 | } | 393 | } |
399 | 394 | ||
400 | m_scene.LandManager.updateLandObject(landData.localID, newData); | 395 | m_scene.LandManager.updateLandObject(landData.localID, newData); |
401 | |||
402 | } | 396 | } |
403 | 397 | ||
404 | #endregion | 398 | #endregion |
@@ -437,7 +431,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
437 | new LLVector3((float) (max_x*4), (float) (max_y*4), | 431 | new LLVector3((float) (max_x*4), (float) (max_y*4), |
438 | (float) m_scene.Terrain.GetHeight((max_x*4), (max_y*4))); | 432 | (float) m_scene.Terrain.GetHeight((max_x*4), (max_y*4))); |
439 | landData.area = tempArea; | 433 | landData.area = tempArea; |
440 | |||
441 | } | 434 | } |
442 | 435 | ||
443 | public void updateLandBitmapByteArray() | 436 | public void updateLandBitmapByteArray() |
@@ -650,9 +643,9 @@ namespace OpenSim.Region.Environment.LandManagement | |||
650 | { | 643 | { |
651 | resultLocalIDs.Add(obj.LocalId); | 644 | resultLocalIDs.Add(obj.LocalId); |
652 | } | 645 | } |
653 | // else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && ...) // TODO: group support | 646 | // else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && ...) // TODO: group support |
654 | // { | 647 | // { |
655 | // } | 648 | // } |
656 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER && | 649 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER && |
657 | obj.OwnerID != remote_client.AgentId) | 650 | obj.OwnerID != remote_client.AgentId) |
658 | { | 651 | { |
@@ -732,10 +725,8 @@ namespace OpenSim.Region.Environment.LandManagement | |||
732 | 725 | ||
733 | num++; | 726 | num++; |
734 | } | 727 | } |
735 | 728 | ||
736 | pack.Data = dataBlock; | 729 | pack.Data = dataBlock; |
737 | |||
738 | |||
739 | } | 730 | } |
740 | remote_client.OutPacket(pack, ThrottleOutPacketType.Task); | 731 | remote_client.OutPacket(pack, ThrottleOutPacketType.Task); |
741 | } | 732 | } |
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs index ecd458d..772fe2e 100644 --- a/OpenSim/Region/Environment/LandManagement/LandManager.cs +++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs | |||
@@ -27,11 +27,13 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using Axiom.Math; | ||
30 | using libsecondlife; | 31 | using libsecondlife; |
31 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
32 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | ||
33 | using OpenSim.Region.Environment.Scenes; | 35 | using OpenSim.Region.Environment.Scenes; |
34 | using OpenSim.Region.Environment.Interfaces; | 36 | using OpenSim.Region.Physics.Manager; |
35 | 37 | ||
36 | namespace OpenSim.Region.Environment.LandManagement | 38 | namespace OpenSim.Region.Environment.LandManagement |
37 | { | 39 | { |
@@ -93,7 +95,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
93 | private readonly RegionInfo m_regInfo; | 95 | private readonly RegionInfo m_regInfo; |
94 | 96 | ||
95 | public bool allowedForcefulBans = true; | 97 | public bool allowedForcefulBans = true; |
96 | 98 | ||
97 | #endregion | 99 | #endregion |
98 | 100 | ||
99 | #region Constructors | 101 | #region Constructors |
@@ -103,14 +105,13 @@ namespace OpenSim.Region.Environment.LandManagement | |||
103 | m_scene = scene; | 105 | m_scene = scene; |
104 | m_regInfo = reginfo; | 106 | m_regInfo = reginfo; |
105 | landIDList.Initialize(); | 107 | landIDList.Initialize(); |
106 | scene.EventManager.OnAvatarEnteringNewParcel += new EventManager.AvatarEnteringNewParcel(handleAvatarChangingParcel); | 108 | scene.EventManager.OnAvatarEnteringNewParcel += |
107 | scene.EventManager.OnClientMovement += new EventManager.ClientMovement(this.handleAnyClientMovement); | 109 | new EventManager.AvatarEnteringNewParcel(handleAvatarChangingParcel); |
110 | scene.EventManager.OnClientMovement += new EventManager.ClientMovement(handleAnyClientMovement); | ||
108 | } | 111 | } |
109 | 112 | ||
110 | |||
111 | |||
112 | #endregion | 113 | #endregion |
113 | 114 | ||
114 | #region Member Functions | 115 | #region Member Functions |
115 | 116 | ||
116 | #region Land Object From Storage Functions | 117 | #region Land Object From Storage Functions |
@@ -147,7 +148,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
147 | /// <returns></returns> | 148 | /// <returns></returns> |
148 | public Land createBaseLand() | 149 | public Land createBaseLand() |
149 | { | 150 | { |
150 | |||
151 | return new Land(LLUUID.Zero, false, m_scene); | 151 | return new Land(LLUUID.Zero, false, m_scene); |
152 | } | 152 | } |
153 | 153 | ||
@@ -175,7 +175,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
175 | } | 175 | } |
176 | } | 176 | } |
177 | landList[lastLandLocalID].forceUpdateLandInfo(); | 177 | landList[lastLandLocalID].forceUpdateLandInfo(); |
178 | m_scene.EventManager.TriggerLandObjectAdded(new_land,m_scene.RegionInfo.RegionID); | 178 | m_scene.EventManager.TriggerLandObjectAdded(new_land, m_scene.RegionInfo.RegionID); |
179 | return new_land; | 179 | return new_land; |
180 | } | 180 | } |
181 | 181 | ||
@@ -207,7 +207,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
207 | if (landList.ContainsKey(local_id)) | 207 | if (landList.ContainsKey(local_id)) |
208 | { | 208 | { |
209 | landList[local_id].landData = newData.Copy(); | 209 | landList[local_id].landData = newData.Copy(); |
210 | m_scene.EventManager.TriggerLandObjectUpdated((uint)local_id, landList[local_id]); | 210 | m_scene.EventManager.TriggerLandObjectUpdated((uint) local_id, landList[local_id]); |
211 | } | 211 | } |
212 | else | 212 | else |
213 | { | 213 | { |
@@ -335,7 +335,7 @@ namespace OpenSim.Region.Environment.LandManagement | |||
335 | 335 | ||
336 | //Now add the new land object | 336 | //Now add the new land object |
337 | Land result = addLandObject(newLand); | 337 | Land result = addLandObject(newLand); |
338 | updateLandObject(startLandObject.landData.localID,startLandObject.landData); | 338 | updateLandObject(startLandObject.landData.localID, startLandObject.landData); |
339 | result.sendLandUpdateToAvatarsOverMe(); | 339 | result.sendLandUpdateToAvatarsOverMe(); |
340 | 340 | ||
341 | 341 | ||
@@ -463,11 +463,11 @@ namespace OpenSim.Region.Environment.LandManagement | |||
463 | Land southParcel = null; | 463 | Land southParcel = null; |
464 | if (x > 0) | 464 | if (x > 0) |
465 | { | 465 | { |
466 | westParcel = getLandObject((x - 1) * 4, y * 4); | 466 | westParcel = getLandObject((x - 1)*4, y*4); |
467 | } | 467 | } |
468 | if (y > 0) | 468 | if (y > 0) |
469 | { | 469 | { |
470 | southParcel = getLandObject(x * 4, (y - 1) * 4); | 470 | southParcel = getLandObject(x*4, (y - 1)*4); |
471 | } | 471 | } |
472 | 472 | ||
473 | if (x == 0) | 473 | if (x == 0) |
@@ -496,14 +496,15 @@ namespace OpenSim.Region.Environment.LandManagement | |||
496 | packet = new ParcelOverlayPacket(); | 496 | packet = new ParcelOverlayPacket(); |
497 | packet.ParcelData.Data = byteArray; | 497 | packet.ParcelData.Data = byteArray; |
498 | packet.ParcelData.SequenceID = sequenceID; | 498 | packet.ParcelData.SequenceID = sequenceID; |
499 | remote_client.OutPacket((Packet)packet, ThrottleOutPacketType.Task); | 499 | remote_client.OutPacket((Packet) packet, ThrottleOutPacketType.Task); |
500 | sequenceID++; | 500 | sequenceID++; |
501 | byteArray = new byte[LAND_BLOCKS_PER_PACKET]; | 501 | byteArray = new byte[LAND_BLOCKS_PER_PACKET]; |
502 | } | 502 | } |
503 | } | 503 | } |
504 | catch (System.Exception e) | 504 | catch (Exception e) |
505 | { | 505 | { |
506 | OpenSim.Framework.Console.MainLog.Instance.Debug("LAND", "Skipped Land checks because avatar is out of bounds: " + e.Message); | 506 | MainLog.Instance.Debug("LAND", |
507 | "Skipped Land checks because avatar is out of bounds: " + e.Message); | ||
507 | } | 508 | } |
508 | } | 509 | } |
509 | } | 510 | } |
@@ -599,7 +600,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
599 | 600 | ||
600 | public List<Land> parcelsNearPoint(LLVector3 position) | 601 | public List<Land> parcelsNearPoint(LLVector3 position) |
601 | { | 602 | { |
602 | |||
603 | List<Land> parcelsNear = new List<Land>(); | 603 | List<Land> parcelsNear = new List<Land>(); |
604 | int x, y; | 604 | int x, y; |
605 | for (x = -4; x <= 4; x += 4) | 605 | for (x = -4; x <= 4; x += 4) |
@@ -617,22 +617,25 @@ namespace OpenSim.Region.Environment.LandManagement | |||
617 | } | 617 | } |
618 | } | 618 | } |
619 | 619 | ||
620 | return parcelsNear; | 620 | return parcelsNear; |
621 | |||
622 | } | 621 | } |
623 | 622 | ||
624 | public void sendYouAreBannedNotice(ScenePresence avatar) | 623 | public void sendYouAreBannedNotice(ScenePresence avatar) |
625 | { | 624 | { |
626 | if (allowedForcefulBans) | 625 | if (allowedForcefulBans) |
627 | { | 626 | { |
628 | avatar.ControllingClient.SendAlertMessage("You are not allowed on this parcel because you are banned. Please go away. <3 OpenSim Developers"); | 627 | avatar.ControllingClient.SendAlertMessage( |
628 | "You are not allowed on this parcel because you are banned. Please go away. <3 OpenSim Developers"); | ||
629 | 629 | ||
630 | avatar.PhysicsActor.Position = new OpenSim.Region.Physics.Manager.PhysicsVector(avatar.lastKnownAllowedPosition.x, avatar.lastKnownAllowedPosition.y, avatar.lastKnownAllowedPosition.z); | 630 | avatar.PhysicsActor.Position = |
631 | avatar.PhysicsActor.Velocity = new OpenSim.Region.Physics.Manager.PhysicsVector(0, 0, 0); | 631 | new PhysicsVector(avatar.lastKnownAllowedPosition.x, avatar.lastKnownAllowedPosition.y, |
632 | avatar.lastKnownAllowedPosition.z); | ||
633 | avatar.PhysicsActor.Velocity = new PhysicsVector(0, 0, 0); | ||
632 | } | 634 | } |
633 | else | 635 | else |
634 | { | 636 | { |
635 | avatar.ControllingClient.SendAlertMessage("You are not allowed on this parcel because you are banned; however, the grid administrator has disabled ban lines globally. Please obey the land owner's requests or you can be banned from the entire sim! <3 OpenSim Developers"); | 637 | avatar.ControllingClient.SendAlertMessage( |
638 | "You are not allowed on this parcel because you are banned; however, the grid administrator has disabled ban lines globally. Please obey the land owner's requests or you can be banned from the entire sim! <3 OpenSim Developers"); | ||
636 | } | 639 | } |
637 | } | 640 | } |
638 | 641 | ||
@@ -651,7 +654,8 @@ namespace OpenSim.Region.Environment.LandManagement | |||
651 | } | 654 | } |
652 | else if (parcelAvatarIsEntering.isRestrictedFromLand(avatar.UUID)) | 655 | else if (parcelAvatarIsEntering.isRestrictedFromLand(avatar.UUID)) |
653 | { | 656 | { |
654 | avatar.ControllingClient.SendAlertMessage("You are not allowed on this parcel because the land owner has restricted access. For now, you can enter, but please respect the land owner's decisions (or he can ban you!). <3 OpenSim Developers"); | 657 | avatar.ControllingClient.SendAlertMessage( |
658 | "You are not allowed on this parcel because the land owner has restricted access. For now, you can enter, but please respect the land owner's decisions (or he can ban you!). <3 OpenSim Developers"); | ||
655 | } | 659 | } |
656 | else | 660 | else |
657 | { | 661 | { |
@@ -668,7 +672,6 @@ namespace OpenSim.Region.Environment.LandManagement | |||
668 | 672 | ||
669 | public void sendOutNearestBanLine(IClientAPI avatar) | 673 | public void sendOutNearestBanLine(IClientAPI avatar) |
670 | { | 674 | { |
671 | |||
672 | List<ScenePresence> avatars = m_scene.GetAvatars(); | 675 | List<ScenePresence> avatars = m_scene.GetAvatars(); |
673 | foreach (ScenePresence presence in avatars) | 676 | foreach (ScenePresence presence in avatars) |
674 | { | 677 | { |
@@ -679,15 +682,14 @@ namespace OpenSim.Region.Environment.LandManagement | |||
679 | { | 682 | { |
680 | if (checkBan.isBannedFromLand(avatar.AgentId)) | 683 | if (checkBan.isBannedFromLand(avatar.AgentId)) |
681 | { | 684 | { |
682 | checkBan.sendLandProperties(-30000, false, (int)ParcelManager.ParcelResult.Single, avatar); | 685 | checkBan.sendLandProperties(-30000, false, (int) ParcelManager.ParcelResult.Single, avatar); |
683 | return; //Only send one | 686 | return; //Only send one |
684 | } | 687 | } |
685 | else if (checkBan.isRestrictedFromLand(avatar.AgentId)) | 688 | else if (checkBan.isRestrictedFromLand(avatar.AgentId)) |
686 | { | 689 | { |
687 | checkBan.sendLandProperties(-40000, false, (int)ParcelManager.ParcelResult.Single, avatar); | 690 | checkBan.sendLandProperties(-40000, false, (int) ParcelManager.ParcelResult.Single, avatar); |
688 | return; //Only send one | 691 | return; //Only send one |
689 | } | 692 | } |
690 | |||
691 | } | 693 | } |
692 | return; | 694 | return; |
693 | } | 695 | } |
@@ -696,8 +698,8 @@ namespace OpenSim.Region.Environment.LandManagement | |||
696 | 698 | ||
697 | public void sendLandUpdate(ScenePresence avatar) | 699 | public void sendLandUpdate(ScenePresence avatar) |
698 | { | 700 | { |
699 | Land over = getLandObject((int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.X))), | 701 | Land over = getLandObject((int) Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.X))), |
700 | (int)Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.Y)))); | 702 | (int) Math.Min(255, Math.Max(0, Math.Round(avatar.AbsolutePosition.Y)))); |
701 | 703 | ||
702 | if (over != null) | 704 | if (over != null) |
703 | { | 705 | { |
@@ -705,10 +707,10 @@ namespace OpenSim.Region.Environment.LandManagement | |||
705 | if (avatar.currentParcelUUID != over.landData.globalID) | 707 | if (avatar.currentParcelUUID != over.landData.globalID) |
706 | { | 708 | { |
707 | avatar.currentParcelUUID = over.landData.globalID; | 709 | avatar.currentParcelUUID = over.landData.globalID; |
708 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.localID, this.m_scene.RegionInfo.RegionID); | 710 | m_scene.EventManager.TriggerAvatarEnteringNewParcel(avatar, over.landData.localID, |
711 | m_scene.RegionInfo.RegionID); | ||
709 | } | 712 | } |
710 | } | 713 | } |
711 | |||
712 | } | 714 | } |
713 | 715 | ||
714 | public void handleSignificantClientMovement(IClientAPI remote_client) | 716 | public void handleSignificantClientMovement(IClientAPI remote_client) |
@@ -722,16 +724,18 @@ namespace OpenSim.Region.Environment.LandManagement | |||
722 | Land parcel = getLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y); | 724 | Land parcel = getLandObject(clientAvatar.AbsolutePosition.X, clientAvatar.AbsolutePosition.Y); |
723 | if (parcel != null) | 725 | if (parcel != null) |
724 | { | 726 | { |
725 | if (clientAvatar.AbsolutePosition.Z < BAN_LINE_SAFETY_HIEGHT && clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) | 727 | if (clientAvatar.AbsolutePosition.Z < BAN_LINE_SAFETY_HIEGHT && |
728 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown) | ||
726 | { | 729 | { |
727 | 730 | handleAvatarChangingParcel(clientAvatar, parcel.landData.localID, m_scene.RegionInfo.RegionID); | |
728 | handleAvatarChangingParcel(clientAvatar, parcel.landData.localID, m_scene.RegionInfo.RegionID); //They are going below the safety line! | 731 | //They are going below the safety line! |
729 | if (!parcel.isBannedFromLand(clientAvatar.UUID)) | 732 | if (!parcel.isBannedFromLand(clientAvatar.UUID)) |
730 | { | 733 | { |
731 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; | 734 | clientAvatar.sentMessageAboutRestrictedParcelFlyingDown = false; |
732 | } | 735 | } |
733 | } | 736 | } |
734 | else if (clientAvatar.AbsolutePosition.Z < BAN_LINE_SAFETY_HIEGHT && parcel.isBannedFromLand(clientAvatar.UUID)) | 737 | else if (clientAvatar.AbsolutePosition.Z < BAN_LINE_SAFETY_HIEGHT && |
738 | parcel.isBannedFromLand(clientAvatar.UUID)) | ||
735 | { | 739 | { |
736 | sendYouAreBannedNotice(clientAvatar); | 740 | sendYouAreBannedNotice(clientAvatar); |
737 | } | 741 | } |
@@ -739,30 +743,33 @@ namespace OpenSim.Region.Environment.LandManagement | |||
739 | } | 743 | } |
740 | } | 744 | } |
741 | 745 | ||
742 | public void handleAnyClientMovement(ScenePresence avatar) //Like handleSignificantClientMovement, but called with an AgentUpdate regardless of distance. | 746 | public void handleAnyClientMovement(ScenePresence avatar) |
747 | //Like handleSignificantClientMovement, but called with an AgentUpdate regardless of distance. | ||
743 | { | 748 | { |
744 | Land over = getLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); | 749 | Land over = getLandObject(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y); |
745 | if (over != null) | 750 | if (over != null) |
746 | { | 751 | { |
747 | if (!over.isBannedFromLand(avatar.UUID) || avatar.AbsolutePosition.Z >= BAN_LINE_SAFETY_HIEGHT) | 752 | if (!over.isBannedFromLand(avatar.UUID) || avatar.AbsolutePosition.Z >= BAN_LINE_SAFETY_HIEGHT) |
748 | { | 753 | { |
749 | avatar.lastKnownAllowedPosition = new Axiom.Math.Vector3(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y, avatar.AbsolutePosition.Z); | 754 | avatar.lastKnownAllowedPosition = |
750 | 755 | new Vector3(avatar.AbsolutePosition.X, avatar.AbsolutePosition.Y, avatar.AbsolutePosition.Z); | |
751 | |||
752 | } | 756 | } |
753 | } | 757 | } |
754 | } | 758 | } |
755 | 759 | ||
756 | 760 | ||
757 | public void handleParcelAccessRequest(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, int landLocalID, IClientAPI remote_client) | 761 | public void handleParcelAccessRequest(LLUUID agentID, LLUUID sessionID, uint flags, int sequenceID, |
762 | int landLocalID, IClientAPI remote_client) | ||
758 | { | 763 | { |
759 | if (landList.ContainsKey(landLocalID)) | 764 | if (landList.ContainsKey(landLocalID)) |
760 | { | 765 | { |
761 | landList[landLocalID].sendAccessList(agentID, sessionID, flags, sequenceID,remote_client); | 766 | landList[landLocalID].sendAccessList(agentID, sessionID, flags, sequenceID, remote_client); |
762 | } | 767 | } |
763 | } | 768 | } |
764 | 769 | ||
765 | public void handleParcelAccessUpdateRequest(LLUUID agentID, LLUUID sessionID,uint flags, int landLocalID, List<libsecondlife.ParcelManager.ParcelAccessEntry> entries, IClientAPI remote_client) | 770 | public void handleParcelAccessUpdateRequest(LLUUID agentID, LLUUID sessionID, uint flags, int landLocalID, |
771 | List<ParcelManager.ParcelAccessEntry> entries, | ||
772 | IClientAPI remote_client) | ||
766 | { | 773 | { |
767 | if (landList.ContainsKey(landLocalID)) | 774 | if (landList.ContainsKey(landLocalID)) |
768 | { | 775 | { |
@@ -849,4 +856,4 @@ namespace OpenSim.Region.Environment.LandManagement | |||
849 | } | 856 | } |
850 | 857 | ||
851 | #endregion | 858 | #endregion |
852 | } | 859 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs index b1ab330..fcf0f72 100644 --- a/OpenSim/Region/Environment/ModuleLoader.cs +++ b/OpenSim/Region/Environment/ModuleLoader.cs | |||
@@ -220,7 +220,7 @@ namespace OpenSim.Region.Environment | |||
220 | { | 220 | { |
221 | if (pluginType.GetInterface("IRegionModule") != null) | 221 | if (pluginType.GetInterface("IRegionModule") != null) |
222 | { | 222 | { |
223 | modules.Add((IRegionModule)Activator.CreateInstance(pluginType)); | 223 | modules.Add((IRegionModule) Activator.CreateInstance(pluginType)); |
224 | } | 224 | } |
225 | } | 225 | } |
226 | } | 226 | } |
diff --git a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs index 0b95aee..c31a79b 100644 --- a/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs +++ b/OpenSim/Region/Environment/Modules/AvatarFactoryModule.cs | |||
@@ -27,11 +27,12 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using libsecondlife; | ||
31 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using libsecondlife; | ||
32 | using Nini.Config; | 32 | using Nini.Config; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Communications.Cache; | 34 | using OpenSim.Framework.Communications.Cache; |
35 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Region.Environment.Interfaces; | 36 | using OpenSim.Region.Environment.Interfaces; |
36 | using OpenSim.Region.Environment.Scenes; | 37 | using OpenSim.Region.Environment.Scenes; |
37 | 38 | ||
@@ -59,9 +60,9 @@ namespace OpenSim.Region.Environment.Modules | |||
59 | { | 60 | { |
60 | m_avatarsAppearance[avatarId] = appearance; | 61 | m_avatarsAppearance[avatarId] = appearance; |
61 | } | 62 | } |
62 | catch (System.NullReferenceException) | 63 | catch (NullReferenceException) |
63 | { | 64 | { |
64 | OpenSim.Framework.Console.MainLog.Instance.Error("AVATAR", "Unable to load appearance for uninitialized avatar"); | 65 | MainLog.Instance.Error("AVATAR", "Unable to load appearance for uninitialized avatar"); |
65 | } | 66 | } |
66 | return true; | 67 | return true; |
67 | } | 68 | } |
@@ -98,17 +99,17 @@ namespace OpenSim.Region.Environment.Modules | |||
98 | 99 | ||
99 | public void NewClient(IClientAPI client) | 100 | public void NewClient(IClientAPI client) |
100 | { | 101 | { |
101 | client.OnAvatarNowWearing += AvatarIsWearing; | 102 | client.OnAvatarNowWearing += AvatarIsWearing; |
102 | } | 103 | } |
103 | 104 | ||
104 | public void RemoveClient(IClientAPI client) | 105 | public void RemoveClient(IClientAPI client) |
105 | { | 106 | { |
106 | // client.OnAvatarNowWearing -= AvatarIsWearing; | 107 | // client.OnAvatarNowWearing -= AvatarIsWearing; |
107 | } | 108 | } |
108 | 109 | ||
109 | public void AvatarIsWearing(Object sender, AvatarWearingArgs e) | 110 | public void AvatarIsWearing(Object sender, AvatarWearingArgs e) |
110 | { | 111 | { |
111 | IClientAPI clientView = (IClientAPI)sender; | 112 | IClientAPI clientView = (IClientAPI) sender; |
112 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); | 113 | CachedUserInfo profile = m_scene.CommsManager.UserProfileCacheService.GetUserDetails(clientView.AgentId); |
113 | if (profile != null) | 114 | if (profile != null) |
114 | { | 115 | { |
@@ -127,7 +128,7 @@ namespace OpenSim.Region.Environment.Modules | |||
127 | { | 128 | { |
128 | assetId = baseItem.assetID; | 129 | assetId = baseItem.assetID; |
129 | //temporary dictionary storage. This should be storing to a database | 130 | //temporary dictionary storage. This should be storing to a database |
130 | 131 | ||
131 | if (m_avatarsAppearance.ContainsKey(clientView.AgentId)) | 132 | if (m_avatarsAppearance.ContainsKey(clientView.AgentId)) |
132 | { | 133 | { |
133 | AvatarAppearance avatAppearance = m_avatarsAppearance[clientView.AgentId]; | 134 | AvatarAppearance avatAppearance = m_avatarsAppearance[clientView.AgentId]; |
@@ -158,4 +159,4 @@ namespace OpenSim.Region.Environment.Modules | |||
158 | return visualParams; | 159 | return visualParams; |
159 | } | 160 | } |
160 | } | 161 | } |
161 | } | 162 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/ChatModule.cs b/OpenSim/Region/Environment/Modules/ChatModule.cs index 069eb3f..d6df978 100644 --- a/OpenSim/Region/Environment/Modules/ChatModule.cs +++ b/OpenSim/Region/Environment/Modules/ChatModule.cs | |||
@@ -176,10 +176,10 @@ namespace OpenSim.Region.Environment.Modules | |||
176 | foreach (Scene s in m_scenes) | 176 | foreach (Scene s in m_scenes) |
177 | { | 177 | { |
178 | s.ForEachScenePresence(delegate(ScenePresence presence) | 178 | s.ForEachScenePresence(delegate(ScenePresence presence) |
179 | { | 179 | { |
180 | TrySendChatMessage(presence, fromPos, regionPos, | 180 | TrySendChatMessage(presence, fromPos, regionPos, |
181 | fromAgentID, fromName, e.Type, message); | 181 | fromAgentID, fromName, e.Type, message); |
182 | }); | 182 | }); |
183 | } | 183 | } |
184 | } | 184 | } |
185 | } | 185 | } |
@@ -373,4 +373,4 @@ namespace OpenSim.Region.Environment.Modules | |||
373 | m_tcp.Close(); | 373 | m_tcp.Close(); |
374 | } | 374 | } |
375 | } | 375 | } |
376 | } | 376 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs b/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs index d47004b..f8798dc 100644 --- a/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs +++ b/OpenSim/Region/Environment/Modules/ScriptsHttpRequests.cs | |||
@@ -27,18 +27,15 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
30 | using System.IO; | 31 | using System.IO; |
31 | using System.Net; | 32 | using System.Net; |
32 | using System.Text; | 33 | using System.Text; |
33 | using OpenSim.Region.Environment.Interfaces; | ||
34 | using OpenSim.Region.Environment.Scenes; | ||
35 | using System.Collections; | ||
36 | using System.Collections.Generic; | ||
37 | using System.Threading; | 34 | using System.Threading; |
38 | using libsecondlife; | 35 | using libsecondlife; |
39 | using Nini.Config; | 36 | using Nini.Config; |
40 | using Nwc.XmlRpc; | 37 | using OpenSim.Region.Environment.Interfaces; |
41 | using OpenSim.Framework.Servers; | 38 | using OpenSim.Region.Environment.Scenes; |
42 | 39 | ||
43 | /***************************************************** | 40 | /***************************************************** |
44 | * | 41 | * |
@@ -85,120 +82,120 @@ using OpenSim.Framework.Servers; | |||
85 | 82 | ||
86 | namespace OpenSim.Region.Environment.Modules | 83 | namespace OpenSim.Region.Environment.Modules |
87 | { | 84 | { |
88 | public class ScriptHTTPRequests : IRegionModule, IHttpRequests | 85 | public class ScriptHTTPRequests : IRegionModule, IHttpRequests |
89 | { | 86 | { |
90 | private Scene m_scene; | 87 | private Scene m_scene; |
91 | private Queue<HttpRequestClass> rpcQueue = new Queue<HttpRequestClass>(); | 88 | private Queue<HttpRequestClass> rpcQueue = new Queue<HttpRequestClass>(); |
92 | private object HttpListLock = new object(); | 89 | private object HttpListLock = new object(); |
93 | private string m_name = "HttpScriptRequests"; | 90 | private string m_name = "HttpScriptRequests"; |
94 | private int httpTimeout = 300; | 91 | private int httpTimeout = 300; |
95 | 92 | ||
96 | // <request id, HttpRequestClass> | 93 | // <request id, HttpRequestClass> |
97 | private Dictionary<LLUUID, HttpRequestClass> m_pendingRequests; | 94 | private Dictionary<LLUUID, HttpRequestClass> m_pendingRequests; |
98 | 95 | ||
99 | public ScriptHTTPRequests() | 96 | public ScriptHTTPRequests() |
100 | { | 97 | { |
101 | } | 98 | } |
102 | 99 | ||
103 | public void Initialise(Scene scene, IConfigSource config) | 100 | public void Initialise(Scene scene, IConfigSource config) |
104 | { | 101 | { |
105 | m_scene = scene; | 102 | m_scene = scene; |
106 | 103 | ||
107 | m_scene.RegisterModuleInterface<IHttpRequests>(this); | 104 | m_scene.RegisterModuleInterface<IHttpRequests>(this); |
108 | 105 | ||
109 | m_pendingRequests = new Dictionary<LLUUID, HttpRequestClass>(); | 106 | m_pendingRequests = new Dictionary<LLUUID, HttpRequestClass>(); |
110 | } | 107 | } |
111 | 108 | ||
112 | public void PostInitialise() | 109 | public void PostInitialise() |
113 | { | 110 | { |
114 | } | 111 | } |
115 | 112 | ||
116 | public void Close() | 113 | public void Close() |
117 | { | 114 | { |
118 | } | 115 | } |
119 | 116 | ||
120 | public string Name | 117 | public string Name |
121 | { | 118 | { |
122 | get { return m_name; } | 119 | get { return m_name; } |
123 | } | 120 | } |
124 | 121 | ||
125 | public bool IsSharedModule | 122 | public bool IsSharedModule |
126 | { | 123 | { |
127 | get { return true; } | 124 | get { return true; } |
128 | } | 125 | } |
129 | 126 | ||
130 | public LLUUID MakeHttpRequest(string url, string parameters, string body) { | 127 | public LLUUID MakeHttpRequest(string url, string parameters, string body) |
131 | return LLUUID.Zero; | 128 | { |
132 | } | 129 | return LLUUID.Zero; |
133 | 130 | } | |
134 | public LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, string body) | 131 | |
135 | { | 132 | public LLUUID StartHttpRequest(uint localID, LLUUID itemID, string url, List<string> parameters, string body) |
136 | LLUUID reqID = LLUUID.Random(); | 133 | { |
137 | HttpRequestClass htc = new HttpRequestClass(); | 134 | LLUUID reqID = LLUUID.Random(); |
138 | 135 | HttpRequestClass htc = new HttpRequestClass(); | |
139 | // Parameters are expected in {key, value, ... , key, value} | 136 | |
140 | if( parameters != null ) | 137 | // Parameters are expected in {key, value, ... , key, value} |
141 | { | 138 | if (parameters != null) |
142 | string[] parms = parameters.ToArray(); | 139 | { |
143 | for (int i = 0; i < parms.Length / 2; i += 2) | 140 | string[] parms = parameters.ToArray(); |
141 | for (int i = 0; i < parms.Length/2; i += 2) | ||
144 | { | 142 | { |
145 | switch( Int32.Parse(parms[i]) ) | 143 | switch (Int32.Parse(parms[i])) |
146 | { | 144 | { |
147 | case HttpRequestClass.HTTP_METHOD: | 145 | case HttpRequestClass.HTTP_METHOD: |
148 | 146 | ||
149 | htc.httpMethod = parms[i + 1]; | 147 | htc.httpMethod = parms[i + 1]; |
150 | break; | 148 | break; |
151 | 149 | ||
152 | case HttpRequestClass.HTTP_MIMETYPE: | 150 | case HttpRequestClass.HTTP_MIMETYPE: |
153 | 151 | ||
154 | htc.httpMIMEType = parms[i + 1]; | 152 | htc.httpMIMEType = parms[i + 1]; |
155 | break; | 153 | break; |
156 | 154 | ||
157 | case HttpRequestClass.HTTP_BODY_MAXLENGTH: | 155 | case HttpRequestClass.HTTP_BODY_MAXLENGTH: |
158 | 156 | ||
159 | // TODO implement me | 157 | // TODO implement me |
160 | break; | 158 | break; |
161 | 159 | ||
162 | case HttpRequestClass.HTTP_VERIFY_CERT: | 160 | case HttpRequestClass.HTTP_VERIFY_CERT: |
163 | 161 | ||
164 | // TODO implement me | 162 | // TODO implement me |
165 | break; | 163 | break; |
166 | } | 164 | } |
167 | } | 165 | } |
168 | } | 166 | } |
169 | 167 | ||
170 | htc.localID = localID; | 168 | htc.localID = localID; |
171 | htc.itemID = itemID; | 169 | htc.itemID = itemID; |
172 | htc.url = url; | 170 | htc.url = url; |
173 | htc.reqID = reqID; | 171 | htc.reqID = reqID; |
174 | htc.httpTimeout = httpTimeout; | 172 | htc.httpTimeout = httpTimeout; |
175 | htc.outbound_body = body; | 173 | htc.outbound_body = body; |
176 | 174 | ||
177 | lock (HttpListLock) | 175 | lock (HttpListLock) |
178 | { | 176 | { |
179 | m_pendingRequests.Add(reqID, htc); | 177 | m_pendingRequests.Add(reqID, htc); |
180 | } | 178 | } |
181 | 179 | ||
182 | htc.process(); | 180 | htc.process(); |
183 | 181 | ||
184 | return reqID; | 182 | return reqID; |
185 | } | 183 | } |
186 | 184 | ||
187 | public void StopHttpRequest(uint m_localID, LLUUID m_itemID) | 185 | public void StopHttpRequest(uint m_localID, LLUUID m_itemID) |
188 | { | 186 | { |
189 | lock (HttpListLock) | 187 | lock (HttpListLock) |
190 | { | 188 | { |
191 | 189 | HttpRequestClass tmpReq; | |
192 | HttpRequestClass tmpReq; | 190 | if (m_pendingRequests.TryGetValue(m_itemID, out tmpReq)) |
193 | if (m_pendingRequests.TryGetValue(m_itemID, out tmpReq)) | 191 | { |
194 | { | 192 | tmpReq.Stop(); |
195 | tmpReq.Stop(); | 193 | m_pendingRequests.Remove(m_itemID); |
196 | m_pendingRequests.Remove(m_itemID); | 194 | } |
197 | } | 195 | } |
198 | } | 196 | } |
199 | } | 197 | |
200 | 198 | /* | |
201 | /* | ||
202 | * TODO | 199 | * TODO |
203 | * Not sure how important ordering is is here - the next first | 200 | * Not sure how important ordering is is here - the next first |
204 | * one completed in the list is returned, based soley on its list | 201 | * one completed in the list is returned, based soley on its list |
@@ -206,10 +203,11 @@ namespace OpenSim.Region.Environment.Modules | |||
206 | * finsihed. I thought about setting up a queue for this, but | 203 | * finsihed. I thought about setting up a queue for this, but |
207 | * it will need some refactoring and this works 'enough' right now | 204 | * it will need some refactoring and this works 'enough' right now |
208 | */ | 205 | */ |
209 | public HttpRequestClass GetNextCompletedRequest() | 206 | |
210 | { | 207 | public HttpRequestClass GetNextCompletedRequest() |
211 | lock (HttpListLock) | 208 | { |
212 | { | 209 | lock (HttpListLock) |
210 | { | ||
213 | foreach (LLUUID luid in m_pendingRequests.Keys) | 211 | foreach (LLUUID luid in m_pendingRequests.Keys) |
214 | { | 212 | { |
215 | HttpRequestClass tmpReq; | 213 | HttpRequestClass tmpReq; |
@@ -225,18 +223,16 @@ namespace OpenSim.Region.Environment.Modules | |||
225 | } | 223 | } |
226 | } | 224 | } |
227 | return null; | 225 | return null; |
228 | } | 226 | } |
229 | 227 | } | |
230 | |||
231 | } | ||
232 | 228 | ||
233 | // | 229 | // |
234 | // HTTP REAQUEST | 230 | // HTTP REAQUEST |
235 | // This class was originally in LSLLongCmdHandler | 231 | // This class was originally in LSLLongCmdHandler |
236 | // | 232 | // |
237 | // TODO: setter/getter methods, maybe pass some in | 233 | // TODO: setter/getter methods, maybe pass some in |
238 | // constructor | 234 | // constructor |
239 | // | 235 | // |
240 | 236 | ||
241 | public class HttpRequestClass | 237 | public class HttpRequestClass |
242 | { | 238 | { |
@@ -280,9 +276,9 @@ namespace OpenSim.Region.Environment.Modules | |||
280 | * TODO: More work on the response codes. Right now | 276 | * TODO: More work on the response codes. Right now |
281 | * returning 200 for success or 499 for exception | 277 | * returning 200 for success or 499 for exception |
282 | */ | 278 | */ |
279 | |||
283 | public void SendRequest() | 280 | public void SendRequest() |
284 | { | 281 | { |
285 | |||
286 | HttpWebResponse response = null; | 282 | HttpWebResponse response = null; |
287 | StringBuilder sb = new StringBuilder(); | 283 | StringBuilder sb = new StringBuilder(); |
288 | byte[] buf = new byte[8192]; | 284 | byte[] buf = new byte[8192]; |
@@ -292,14 +288,14 @@ namespace OpenSim.Region.Environment.Modules | |||
292 | try | 288 | try |
293 | { | 289 | { |
294 | request = (HttpWebRequest) | 290 | request = (HttpWebRequest) |
295 | WebRequest.Create(url); | 291 | WebRequest.Create(url); |
296 | request.Method = httpMethod; | 292 | request.Method = httpMethod; |
297 | request.ContentType = httpMIMEType; | 293 | request.ContentType = httpMIMEType; |
298 | 294 | ||
299 | request.Timeout = httpTimeout; | 295 | request.Timeout = httpTimeout; |
300 | // execute the request | 296 | // execute the request |
301 | response = (HttpWebResponse) | 297 | response = (HttpWebResponse) |
302 | request.GetResponse(); | 298 | request.GetResponse(); |
303 | 299 | ||
304 | Stream resStream = response.GetResponseStream(); | 300 | Stream resStream = response.GetResponseStream(); |
305 | 301 | ||
@@ -317,11 +313,9 @@ namespace OpenSim.Region.Environment.Modules | |||
317 | // continue building the string | 313 | // continue building the string |
318 | sb.Append(tempString); | 314 | sb.Append(tempString); |
319 | } | 315 | } |
320 | } | 316 | } while (count > 0); // any more data to read? |
321 | while (count > 0); // any more data to read? | ||
322 | 317 | ||
323 | response_body = sb.ToString(); | 318 | response_body = sb.ToString(); |
324 | |||
325 | } | 319 | } |
326 | catch (Exception e) | 320 | catch (Exception e) |
327 | { | 321 | { |
@@ -333,7 +327,6 @@ namespace OpenSim.Region.Environment.Modules | |||
333 | 327 | ||
334 | status = 200; | 328 | status = 200; |
335 | finished = true; | 329 | finished = true; |
336 | |||
337 | } | 330 | } |
338 | 331 | ||
339 | public void Stop() | 332 | public void Stop() |
@@ -342,8 +335,9 @@ namespace OpenSim.Region.Environment.Modules | |||
342 | { | 335 | { |
343 | httpThread.Abort(); | 336 | httpThread.Abort(); |
344 | } | 337 | } |
345 | catch (Exception) { } | 338 | catch (Exception) |
339 | { | ||
340 | } | ||
346 | } | 341 | } |
347 | } | 342 | } |
348 | 343 | } \ No newline at end of file | |
349 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/Environment/Modules/SunModule.cs b/OpenSim/Region/Environment/Modules/SunModule.cs index 233c83c..bd6cd63 100644 --- a/OpenSim/Region/Environment/Modules/SunModule.cs +++ b/OpenSim/Region/Environment/Modules/SunModule.cs | |||
@@ -28,13 +28,12 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using libsecondlife; | ||
31 | using Nini.Config; | 32 | using Nini.Config; |
32 | using OpenSim.Region.Environment.Interfaces; | ||
33 | using OpenSim.Region.Environment.Scenes; | ||
34 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
36 | using libsecondlife; | 35 | using OpenSim.Region.Environment.Interfaces; |
37 | 36 | using OpenSim.Region.Environment.Scenes; | |
38 | 37 | ||
39 | namespace OpenSim.Region.Environment.Modules | 38 | namespace OpenSim.Region.Environment.Modules |
40 | { | 39 | { |
@@ -55,17 +54,20 @@ namespace OpenSim.Region.Environment.Modules | |||
55 | { | 54 | { |
56 | m_start = DateTime.Now.Ticks; | 55 | m_start = DateTime.Now.Ticks; |
57 | m_frame = 0; | 56 | m_frame = 0; |
58 | 57 | ||
59 | // Just in case they don't have the stanzas | 58 | // Just in case they don't have the stanzas |
60 | try { | 59 | try |
60 | { | ||
61 | m_day_length = config.Configs["Sun"].GetDouble("day_length", m_real_day); | 61 | m_day_length = config.Configs["Sun"].GetDouble("day_length", m_real_day); |
62 | m_frame_mod = config.Configs["Sun"].GetInt("frame_rate", m_default_frame); | 62 | m_frame_mod = config.Configs["Sun"].GetInt("frame_rate", m_default_frame); |
63 | } catch (Exception) { | 63 | } |
64 | catch (Exception) | ||
65 | { | ||
64 | m_day_length = m_real_day; | 66 | m_day_length = m_real_day; |
65 | m_frame_mod = m_default_frame; | 67 | m_frame_mod = m_default_frame; |
66 | } | 68 | } |
67 | 69 | ||
68 | m_dilation = (int)(m_real_day / m_day_length); | 70 | m_dilation = (int) (m_real_day/m_day_length); |
69 | m_scene = scene; | 71 | m_scene = scene; |
70 | m_log = MainLog.Instance; | 72 | m_log = MainLog.Instance; |
71 | scene.EventManager.OnFrame += SunUpdate; | 73 | scene.EventManager.OnFrame += SunUpdate; |
@@ -94,10 +96,11 @@ namespace OpenSim.Region.Environment.Modules | |||
94 | { | 96 | { |
95 | client.SendSunPos(SunPos(HourOfTheDay()), new LLVector3(0, 0.0f, 10.0f)); | 97 | client.SendSunPos(SunPos(HourOfTheDay()), new LLVector3(0, 0.0f, 10.0f)); |
96 | } | 98 | } |
97 | 99 | ||
98 | public void SunUpdate() | 100 | public void SunUpdate() |
99 | { | 101 | { |
100 | if (m_frame < m_frame_mod) { | 102 | if (m_frame < m_frame_mod) |
103 | { | ||
101 | m_frame++; | 104 | m_frame++; |
102 | return; | 105 | return; |
103 | } | 106 | } |
@@ -115,20 +118,20 @@ namespace OpenSim.Region.Environment.Modules | |||
115 | // time when the simulator starts, then run time forward | 118 | // time when the simulator starts, then run time forward |
116 | // faster based on time dilation factor. This means that | 119 | // faster based on time dilation factor. This means that |
117 | // ticks don't get out of hand | 120 | // ticks don't get out of hand |
118 | private double HourOfTheDay() | 121 | private double HourOfTheDay() |
119 | { | 122 | { |
120 | long m_addticks = (DateTime.Now.Ticks - m_start) * m_dilation; | 123 | long m_addticks = (DateTime.Now.Ticks - m_start)*m_dilation; |
121 | DateTime dt = new DateTime(m_start + m_addticks); | 124 | DateTime dt = new DateTime(m_start + m_addticks); |
122 | return (double)dt.Hour + ((double)dt.Minute / 60.0); | 125 | return (double) dt.Hour + ((double) dt.Minute/60.0); |
123 | } | 126 | } |
124 | 127 | ||
125 | private LLVector3 SunPos(double hour) | 128 | private LLVector3 SunPos(double hour) |
126 | { | 129 | { |
127 | // now we have our radian position | 130 | // now we have our radian position |
128 | double rad = (hour / m_real_day) * 2 * Math.PI - (Math.PI / 2.0); | 131 | double rad = (hour/m_real_day)*2*Math.PI - (Math.PI/2.0); |
129 | double z = Math.Sin(rad); | 132 | double z = Math.Sin(rad); |
130 | double x = Math.Cos(rad); | 133 | double x = Math.Cos(rad); |
131 | return new LLVector3((float)x, 0f, (float)z); | 134 | return new LLVector3((float) x, 0f, (float) z); |
132 | } | 135 | } |
133 | 136 | ||
134 | // TODO: clear this out. This is here so that I remember to | 137 | // TODO: clear this out. This is here so that I remember to |
diff --git a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs index 0adace1..813be8d 100644 --- a/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs +++ b/OpenSim/Region/Environment/Modules/TextureDownloadModule.cs | |||
@@ -32,6 +32,7 @@ using libsecondlife; | |||
32 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
33 | using Nini.Config; | 33 | using Nini.Config; |
34 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Region.Environment.Interfaces; | 36 | using OpenSim.Region.Environment.Interfaces; |
36 | using OpenSim.Region.Environment.Scenes; | 37 | using OpenSim.Region.Environment.Scenes; |
37 | 38 | ||
@@ -48,7 +49,8 @@ namespace OpenSim.Region.Environment.Modules | |||
48 | 49 | ||
49 | private BlockingQueue<TextureSender> QueueSenders = new BlockingQueue<TextureSender>(); | 50 | private BlockingQueue<TextureSender> QueueSenders = new BlockingQueue<TextureSender>(); |
50 | 51 | ||
51 | private Dictionary<LLUUID, UserTextureDownloadService> m_userTextureServices = new Dictionary<LLUUID, UserTextureDownloadService>(); | 52 | private Dictionary<LLUUID, UserTextureDownloadService> m_userTextureServices = |
53 | new Dictionary<LLUUID, UserTextureDownloadService>(); | ||
52 | 54 | ||
53 | private Thread m_thread; | 55 | private Thread m_thread; |
54 | 56 | ||
@@ -72,7 +74,6 @@ namespace OpenSim.Region.Environment.Modules | |||
72 | m_scene = scene; | 74 | m_scene = scene; |
73 | m_scene.EventManager.OnNewClient += NewClient; | 75 | m_scene.EventManager.OnNewClient += NewClient; |
74 | } | 76 | } |
75 | |||
76 | } | 77 | } |
77 | 78 | ||
78 | public void PostInitialise() | 79 | public void PostInitialise() |
@@ -115,7 +116,7 @@ namespace OpenSim.Region.Environment.Modules | |||
115 | 116 | ||
116 | public void TextureRequest(Object sender, TextureRequestArgs e) | 117 | public void TextureRequest(Object sender, TextureRequestArgs e) |
117 | { | 118 | { |
118 | IClientAPI client = (IClientAPI)sender; | 119 | IClientAPI client = (IClientAPI) sender; |
119 | UserTextureDownloadService textureService; | 120 | UserTextureDownloadService textureService; |
120 | if (TryGetUserTextureService(client.AgentId, out textureService)) | 121 | if (TryGetUserTextureService(client.AgentId, out textureService)) |
121 | { | 122 | { |
@@ -175,7 +176,8 @@ namespace OpenSim.Region.Environment.Modules | |||
175 | { | 176 | { |
176 | if (!m_textureSenders.ContainsKey(e.RequestedAssetID)) | 177 | if (!m_textureSenders.ContainsKey(e.RequestedAssetID)) |
177 | { | 178 | { |
178 | TextureSender requestHandler = new TextureSender(client, e.RequestedAssetID, e.DiscardLevel, e.PacketNumber); | 179 | TextureSender requestHandler = |
180 | new TextureSender(client, e.RequestedAssetID, e.DiscardLevel, e.PacketNumber); | ||
179 | m_textureSenders.Add(e.RequestedAssetID, requestHandler); | 181 | m_textureSenders.Add(e.RequestedAssetID, requestHandler); |
180 | m_scene.AssetCache.GetAsset(e.RequestedAssetID, TextureCallback); | 182 | m_scene.AssetCache.GetAsset(e.RequestedAssetID, TextureCallback); |
181 | } | 183 | } |
@@ -183,7 +185,8 @@ namespace OpenSim.Region.Environment.Modules | |||
183 | { | 185 | { |
184 | m_textureSenders[e.RequestedAssetID].UpdateRequest(e.DiscardLevel, e.PacketNumber); | 186 | m_textureSenders[e.RequestedAssetID].UpdateRequest(e.DiscardLevel, e.PacketNumber); |
185 | m_textureSenders[e.RequestedAssetID].counter = 0; | 187 | m_textureSenders[e.RequestedAssetID].counter = 0; |
186 | if ((m_textureSenders[e.RequestedAssetID].ImageLoaded) && (m_textureSenders[e.RequestedAssetID].Sending ==false)) | 188 | if ((m_textureSenders[e.RequestedAssetID].ImageLoaded) && |
189 | (m_textureSenders[e.RequestedAssetID].Sending == false)) | ||
187 | { | 190 | { |
188 | m_textureSenders[e.RequestedAssetID].Sending = true; | 191 | m_textureSenders[e.RequestedAssetID].Sending = true; |
189 | m_sharedSendersQueue.Enqueue(m_textureSenders[e.RequestedAssetID]); | 192 | m_sharedSendersQueue.Enqueue(m_textureSenders[e.RequestedAssetID]); |
@@ -256,7 +259,7 @@ namespace OpenSim.Region.Environment.Modules | |||
256 | { | 259 | { |
257 | m_asset = asset; | 260 | m_asset = asset; |
258 | NumPackets = CalculateNumPackets(asset.Data.Length); | 261 | NumPackets = CalculateNumPackets(asset.Data.Length); |
259 | PacketCounter = (int)StartPacketNumber; | 262 | PacketCounter = (int) StartPacketNumber; |
260 | ImageLoaded = true; | 263 | ImageLoaded = true; |
261 | } | 264 | } |
262 | 265 | ||
@@ -264,14 +267,15 @@ namespace OpenSim.Region.Environment.Modules | |||
264 | { | 267 | { |
265 | RequestedDiscardLevel = discardLevel; | 268 | RequestedDiscardLevel = discardLevel; |
266 | StartPacketNumber = packetNumber; | 269 | StartPacketNumber = packetNumber; |
267 | PacketCounter = (int)StartPacketNumber; | 270 | PacketCounter = (int) StartPacketNumber; |
268 | } | 271 | } |
269 | 272 | ||
270 | public bool SendTexturePacket() | 273 | public bool SendTexturePacket() |
271 | { | 274 | { |
272 | SendPacket(); | 275 | SendPacket(); |
273 | counter++; | 276 | counter++; |
274 | if ((NumPackets == 0) || (RequestedDiscardLevel == -1) || (PacketCounter > NumPackets) || ((RequestedDiscardLevel > 0) && (counter > 50 + (NumPackets / (RequestedDiscardLevel + 1)))) ) | 277 | if ((NumPackets == 0) || (RequestedDiscardLevel == -1) || (PacketCounter > NumPackets) || |
278 | ((RequestedDiscardLevel > 0) && (counter > 50 + (NumPackets/(RequestedDiscardLevel + 1))))) | ||
275 | { | 279 | { |
276 | return true; | 280 | return true; |
277 | } | 281 | } |
@@ -290,7 +294,7 @@ namespace OpenSim.Region.Environment.Modules | |||
290 | im.Header.Reliable = false; | 294 | im.Header.Reliable = false; |
291 | im.ImageID.Packets = 1; | 295 | im.ImageID.Packets = 1; |
292 | im.ImageID.ID = m_asset.FullID; | 296 | im.ImageID.ID = m_asset.FullID; |
293 | im.ImageID.Size = (uint)m_asset.Data.Length; | 297 | im.ImageID.Size = (uint) m_asset.Data.Length; |
294 | im.ImageData.Data = m_asset.Data; | 298 | im.ImageData.Data = m_asset.Data; |
295 | im.ImageID.Codec = 2; | 299 | im.ImageID.Codec = 2; |
296 | RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); | 300 | RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); |
@@ -300,9 +304,9 @@ namespace OpenSim.Region.Environment.Modules | |||
300 | { | 304 | { |
301 | ImageDataPacket im = new ImageDataPacket(); | 305 | ImageDataPacket im = new ImageDataPacket(); |
302 | im.Header.Reliable = false; | 306 | im.Header.Reliable = false; |
303 | im.ImageID.Packets = (ushort)(NumPackets); | 307 | im.ImageID.Packets = (ushort) (NumPackets); |
304 | im.ImageID.ID = m_asset.FullID; | 308 | im.ImageID.ID = m_asset.FullID; |
305 | im.ImageID.Size = (uint)m_asset.Data.Length; | 309 | im.ImageID.Size = (uint) m_asset.Data.Length; |
306 | im.ImageData.Data = new byte[600]; | 310 | im.ImageData.Data = new byte[600]; |
307 | Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600); | 311 | Array.Copy(m_asset.Data, 0, im.ImageData.Data, 0, 600); |
308 | im.ImageID.Codec = 2; | 312 | im.ImageID.Codec = 2; |
@@ -314,18 +318,20 @@ namespace OpenSim.Region.Environment.Modules | |||
314 | { | 318 | { |
315 | ImagePacketPacket im = new ImagePacketPacket(); | 319 | ImagePacketPacket im = new ImagePacketPacket(); |
316 | im.Header.Reliable = false; | 320 | im.Header.Reliable = false; |
317 | im.ImageID.Packet = (ushort)(PacketCounter); | 321 | im.ImageID.Packet = (ushort) (PacketCounter); |
318 | im.ImageID.ID = m_asset.FullID; | 322 | im.ImageID.ID = m_asset.FullID; |
319 | int size = m_asset.Data.Length - 600 - (1000 * (PacketCounter - 1)); | 323 | int size = m_asset.Data.Length - 600 - (1000*(PacketCounter - 1)); |
320 | if (size > 1000) size = 1000; | 324 | if (size > 1000) size = 1000; |
321 | im.ImageData.Data = new byte[size]; | 325 | im.ImageData.Data = new byte[size]; |
322 | try | 326 | try |
323 | { | 327 | { |
324 | Array.Copy(m_asset.Data, 600 + (1000 * (PacketCounter - 1)), im.ImageData.Data, 0, size); | 328 | Array.Copy(m_asset.Data, 600 + (1000*(PacketCounter - 1)), im.ImageData.Data, 0, size); |
325 | } | 329 | } |
326 | catch (System.ArgumentOutOfRangeException) | 330 | catch (ArgumentOutOfRangeException) |
327 | { | 331 | { |
328 | OpenSim.Framework.Console.MainLog.Instance.Warn("TEXTURE", "Unable to separate texture into multiple packets: Array bounds failure on asset:" + m_asset.FullID.ToString() + "- TextureDownloadModule.cs. line:328"); | 332 | MainLog.Instance.Warn("TEXTURE", |
333 | "Unable to separate texture into multiple packets: Array bounds failure on asset:" + | ||
334 | m_asset.FullID.ToString() + "- TextureDownloadModule.cs. line:328"); | ||
329 | return; | 335 | return; |
330 | } | 336 | } |
331 | RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); | 337 | RequestUser.OutPacket(im, ThrottleOutPacketType.Texture); |
@@ -342,14 +348,12 @@ namespace OpenSim.Region.Environment.Modules | |||
342 | { | 348 | { |
343 | //over 600 bytes so split up file | 349 | //over 600 bytes so split up file |
344 | int restData = (length - 600); | 350 | int restData = (length - 600); |
345 | int restPackets = ((restData + 999) / 1000); | 351 | int restPackets = ((restData + 999)/1000); |
346 | numPackets = restPackets; | 352 | numPackets = restPackets; |
347 | } | 353 | } |
348 | 354 | ||
349 | return numPackets; | 355 | return numPackets; |
350 | } | 356 | } |
351 | } | 357 | } |
352 | |||
353 | |||
354 | } | 358 | } |
355 | } \ No newline at end of file | 359 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/WorldCommModule.cs b/OpenSim/Region/Environment/Modules/WorldCommModule.cs index 0dad998..6b9ae46 100644 --- a/OpenSim/Region/Environment/Modules/WorldCommModule.cs +++ b/OpenSim/Region/Environment/Modules/WorldCommModule.cs | |||
@@ -135,7 +135,7 @@ namespace OpenSim.Region.Environment.Modules | |||
135 | { | 135 | { |
136 | m_listenerManager.Remove(handle); | 136 | m_listenerManager.Remove(handle); |
137 | } | 137 | } |
138 | 138 | ||
139 | // This method scans nearby objects and determines if they are listeners, | 139 | // This method scans nearby objects and determines if they are listeners, |
140 | // and if so if this message fits the filter. If it does, then | 140 | // and if so if this message fits the filter. If it does, then |
141 | // enqueue the message for delivery to the objects listen event handler. | 141 | // enqueue the message for delivery to the objects listen event handler. |
@@ -490,4 +490,4 @@ namespace OpenSim.Region.Environment.Modules | |||
490 | return m_id; | 490 | return m_id; |
491 | } | 491 | } |
492 | } | 492 | } |
493 | } | 493 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Modules/XMLRPCModule.cs b/OpenSim/Region/Environment/Modules/XMLRPCModule.cs index f13b2bb..481ba3f 100644 --- a/OpenSim/Region/Environment/Modules/XMLRPCModule.cs +++ b/OpenSim/Region/Environment/Modules/XMLRPCModule.cs | |||
@@ -33,10 +33,10 @@ using System.Threading; | |||
33 | using libsecondlife; | 33 | using libsecondlife; |
34 | using Nini.Config; | 34 | using Nini.Config; |
35 | using Nwc.XmlRpc; | 35 | using Nwc.XmlRpc; |
36 | using OpenSim.Framework.Console; | ||
36 | using OpenSim.Framework.Servers; | 37 | using OpenSim.Framework.Servers; |
37 | using OpenSim.Region.Environment.Interfaces; | 38 | using OpenSim.Region.Environment.Interfaces; |
38 | using OpenSim.Region.Environment.Scenes; | 39 | using OpenSim.Region.Environment.Scenes; |
39 | using OpenSim.Framework.Console; | ||
40 | 40 | ||
41 | /***************************************************** | 41 | /***************************************************** |
42 | * | 42 | * |
@@ -116,15 +116,16 @@ namespace OpenSim.Region.Environment.Modules | |||
116 | 116 | ||
117 | public void PostInitialise() | 117 | public void PostInitialise() |
118 | { | 118 | { |
119 | if ( IsEnabled() ) | 119 | if (IsEnabled()) |
120 | { | 120 | { |
121 | m_openChannels = new Dictionary<LLUUID, RPCChannelInfo>(); | 121 | m_openChannels = new Dictionary<LLUUID, RPCChannelInfo>(); |
122 | m_pendingResponse = new Dictionary<LLUUID, RPCRequestInfo>(); | 122 | m_pendingResponse = new Dictionary<LLUUID, RPCRequestInfo>(); |
123 | 123 | ||
124 | // Start http server | 124 | // Start http server |
125 | // Attach xmlrpc handlers | 125 | // Attach xmlrpc handlers |
126 | m_log.Verbose("REMOTE_DATA", "Starting XMLRPC Server on port " + m_remoteDataPort + " for llRemoteData commands."); | 126 | m_log.Verbose("REMOTE_DATA", |
127 | BaseHttpServer httpServer = new BaseHttpServer((uint)m_remoteDataPort); | 127 | "Starting XMLRPC Server on port " + m_remoteDataPort + " for llRemoteData commands."); |
128 | BaseHttpServer httpServer = new BaseHttpServer((uint) m_remoteDataPort); | ||
128 | httpServer.AddXmlRPCHandler("llRemoteData", XmlRpcRemoteData); | 129 | httpServer.AddXmlRPCHandler("llRemoteData", XmlRpcRemoteData); |
129 | httpServer.Start(); | 130 | httpServer.Start(); |
130 | } | 131 | } |
diff --git a/OpenSim/Region/Environment/PermissionManager.cs b/OpenSim/Region/Environment/PermissionManager.cs index 53fa08a..76601ec 100644 --- a/OpenSim/Region/Environment/PermissionManager.cs +++ b/OpenSim/Region/Environment/PermissionManager.cs | |||
@@ -35,13 +35,13 @@ namespace OpenSim.Region.Environment | |||
35 | public class PermissionManager | 35 | public class PermissionManager |
36 | { | 36 | { |
37 | protected Scene m_scene; | 37 | protected Scene m_scene; |
38 | 38 | ||
39 | // These are here for testing. They will be taken out | 39 | // These are here for testing. They will be taken out |
40 | private uint PERM_ALL = (uint)2147483647; | 40 | private uint PERM_ALL = (uint) 2147483647; |
41 | private uint PERM_COPY = (uint)32768; | 41 | private uint PERM_COPY = (uint) 32768; |
42 | private uint PERM_MODIFY = (uint)16384; | 42 | private uint PERM_MODIFY = (uint) 16384; |
43 | private uint PERM_MOVE = (uint)524288; | 43 | private uint PERM_MOVE = (uint) 524288; |
44 | private uint PERM_TRANS = (uint)8192; | 44 | private uint PERM_TRANS = (uint) 8192; |
45 | // Bypasses the permissions engine (always returns OK) | 45 | // Bypasses the permissions engine (always returns OK) |
46 | // disable in any production environment | 46 | // disable in any production environment |
47 | // TODO: Change this to false when permissions are a desired default | 47 | // TODO: Change this to false when permissions are a desired default |
@@ -109,10 +109,11 @@ namespace OpenSim.Region.Environment | |||
109 | 109 | ||
110 | string reason = "Insufficient permission"; | 110 | string reason = "Insufficient permission"; |
111 | 111 | ||
112 | Land land = this.m_scene.LandManager.getLandObject(position.X, position.Y); | 112 | Land land = m_scene.LandManager.getLandObject(position.X, position.Y); |
113 | if (land == null) return false; | 113 | if (land == null) return false; |
114 | 114 | ||
115 | if ((land.landData.landFlags & ((int)Parcel.ParcelFlags.CreateObjects)) == (int)Parcel.ParcelFlags.CreateObjects) | 115 | if ((land.landData.landFlags & ((int) Parcel.ParcelFlags.CreateObjects)) == |
116 | (int) Parcel.ParcelFlags.CreateObjects) | ||
116 | permission = true; | 117 | permission = true; |
117 | 118 | ||
118 | //TODO: check for group rights | 119 | //TODO: check for group rights |
@@ -143,8 +144,6 @@ namespace OpenSim.Region.Environment | |||
143 | 144 | ||
144 | #region Object Permissions | 145 | #region Object Permissions |
145 | 146 | ||
146 | |||
147 | |||
148 | public virtual uint GenerateClientFlags(LLUUID user, LLUUID objID) | 147 | public virtual uint GenerateClientFlags(LLUUID user, LLUUID objID) |
149 | { | 148 | { |
150 | if (!m_scene.Entities.ContainsKey(objID)) | 149 | if (!m_scene.Entities.ContainsKey(objID)) |
@@ -158,7 +157,7 @@ namespace OpenSim.Region.Environment | |||
158 | return 0; | 157 | return 0; |
159 | } | 158 | } |
160 | 159 | ||
161 | SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[objID]; | 160 | SceneObjectGroup task = (SceneObjectGroup) m_scene.Entities[objID]; |
162 | LLUUID taskOwner = null; | 161 | LLUUID taskOwner = null; |
163 | // Added this because at this point in time it wouldn't be wise for | 162 | // Added this because at this point in time it wouldn't be wise for |
164 | // the administrator object permissions to take effect. | 163 | // the administrator object permissions to take effect. |
@@ -274,7 +273,7 @@ namespace OpenSim.Region.Environment | |||
274 | 273 | ||
275 | public virtual bool CanEditObjectPosition(LLUUID user, LLUUID obj) | 274 | public virtual bool CanEditObjectPosition(LLUUID user, LLUUID obj) |
276 | { | 275 | { |
277 | bool permission = GenericObjectPermission(user,obj); | 276 | bool permission = GenericObjectPermission(user, obj); |
278 | if (!permission) | 277 | if (!permission) |
279 | { | 278 | { |
280 | if (!m_scene.Entities.ContainsKey(obj)) | 279 | if (!m_scene.Entities.ContainsKey(obj)) |
@@ -288,7 +287,7 @@ namespace OpenSim.Region.Environment | |||
288 | return false; | 287 | return false; |
289 | } | 288 | } |
290 | 289 | ||
291 | SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[obj]; | 290 | SceneObjectGroup task = (SceneObjectGroup) m_scene.Entities[obj]; |
292 | LLUUID taskOwner = null; | 291 | LLUUID taskOwner = null; |
293 | // Added this because at this point in time it wouldn't be wise for | 292 | // Added this because at this point in time it wouldn't be wise for |
294 | // the administrator object permissions to take effect. | 293 | // the administrator object permissions to take effect. |
@@ -298,6 +297,7 @@ namespace OpenSim.Region.Environment | |||
298 | } | 297 | } |
299 | return permission; | 298 | return permission; |
300 | } | 299 | } |
300 | |||
301 | public virtual bool CanCopyObject(LLUUID user, LLUUID obj) | 301 | public virtual bool CanCopyObject(LLUUID user, LLUUID obj) |
302 | { | 302 | { |
303 | bool permission = GenericObjectPermission(user, obj); | 303 | bool permission = GenericObjectPermission(user, obj); |
@@ -314,7 +314,7 @@ namespace OpenSim.Region.Environment | |||
314 | return false; | 314 | return false; |
315 | } | 315 | } |
316 | 316 | ||
317 | SceneObjectGroup task = (SceneObjectGroup)m_scene.Entities[obj]; | 317 | SceneObjectGroup task = (SceneObjectGroup) m_scene.Entities[obj]; |
318 | LLUUID taskOwner = null; | 318 | LLUUID taskOwner = null; |
319 | // Added this because at this point in time it wouldn't be wise for | 319 | // Added this because at this point in time it wouldn't be wise for |
320 | // the administrator object permissions to take effect. | 320 | // the administrator object permissions to take effect. |
@@ -324,6 +324,7 @@ namespace OpenSim.Region.Environment | |||
324 | } | 324 | } |
325 | return permission; | 325 | return permission; |
326 | } | 326 | } |
327 | |||
327 | public virtual bool CanReturnObject(LLUUID user, LLUUID obj) | 328 | public virtual bool CanReturnObject(LLUUID user, LLUUID obj) |
328 | { | 329 | { |
329 | return GenericObjectPermission(user, obj); | 330 | return GenericObjectPermission(user, obj); |
@@ -491,4 +492,4 @@ namespace OpenSim.Region.Environment | |||
491 | 492 | ||
492 | #endregion | 493 | #endregion |
493 | } | 494 | } |
494 | } | 495 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAnimations.cs b/OpenSim/Region/Environment/Scenes/AvatarAnimations.cs index cffe846..5466865 100644 --- a/OpenSim/Region/Environment/Scenes/AvatarAnimations.cs +++ b/OpenSim/Region/Environment/Scenes/AvatarAnimations.cs | |||
@@ -25,11 +25,11 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | ||
28 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
29 | using System.Xml; | 30 | using System.Xml; |
30 | using libsecondlife; | 31 | using libsecondlife; |
31 | using libsecondlife.Packets; | 32 | using OpenSim.Framework.Console; |
32 | |||
33 | 33 | ||
34 | namespace OpenSim.Region.Environment.Scenes | 34 | namespace OpenSim.Region.Environment.Scenes |
35 | { | 35 | { |
@@ -37,11 +37,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
37 | { | 37 | { |
38 | public Dictionary<string, LLUUID> AnimsLLUUID = new Dictionary<string, LLUUID>(); | 38 | public Dictionary<string, LLUUID> AnimsLLUUID = new Dictionary<string, LLUUID>(); |
39 | public Dictionary<LLUUID, string> AnimsNames = new Dictionary<LLUUID, string>(); | 39 | public Dictionary<LLUUID, string> AnimsNames = new Dictionary<LLUUID, string>(); |
40 | 40 | ||
41 | public AvatarAnimations() | 41 | public AvatarAnimations() |
42 | { | 42 | { |
43 | } | 43 | } |
44 | 44 | ||
45 | public void LoadAnims() | 45 | public void LoadAnims() |
46 | { | 46 | { |
47 | //MainLog.Instance.Verbose("CLIENT", "Loading avatar animations"); | 47 | //MainLog.Instance.Verbose("CLIENT", "Loading avatar animations"); |
@@ -57,7 +57,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
60 | 60 | ||
61 | // MainLog.Instance.Verbose("CLIENT", "Loaded " + AnimsLLUUID.Count.ToString() + " animation(s)"); | 61 | // MainLog.Instance.Verbose("CLIENT", "Loaded " + AnimsLLUUID.Count.ToString() + " animation(s)"); |
62 | 62 | ||
63 | try | 63 | try |
@@ -68,11 +68,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
68 | AnimsNames.Add(kp.Value, kp.Key); | 68 | AnimsNames.Add(kp.Value, kp.Key); |
69 | } | 69 | } |
70 | } | 70 | } |
71 | catch (System.InvalidOperationException) | 71 | catch (InvalidOperationException) |
72 | { | 72 | { |
73 | OpenSim.Framework.Console.MainLog.Instance.Warn("AVATAR", "Unable to load animation names for an Avatar"); | 73 | MainLog.Instance.Warn("AVATAR", "Unable to load animation names for an Avatar"); |
74 | } | 74 | } |
75 | |||
76 | } | 75 | } |
77 | } | 76 | } |
78 | } | 77 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs index 2ec4dbe..1583124 100644 --- a/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs +++ b/OpenSim/Region/Environment/Scenes/AvatarAppearance.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -26,15 +26,9 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using libsecondlife; | 29 | using libsecondlife; |
33 | using libsecondlife.Packets; | 30 | using libsecondlife.Packets; |
34 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Console; | ||
36 | using OpenSim.Framework.Communications; | ||
37 | using OpenSim.Region.Environment.Types; | ||
38 | 32 | ||
39 | namespace OpenSim.Region.Environment.Scenes | 33 | namespace OpenSim.Region.Environment.Scenes |
40 | { | 34 | { |
@@ -106,8 +100,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
106 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. | 100 | // Teravus : Nifty AV Height Getting Maaaaagical formula. Oh how we love turning 0-255 into meters. |
107 | // (float)m_visualParams[25] = Height | 101 | // (float)m_visualParams[25] = Height |
108 | // (float)m_visualParams[125] = LegLength | 102 | // (float)m_visualParams[125] = LegLength |
109 | m_avatarHeight = (1.50856f + (((float)m_visualParams[25] / 255.0f) * (2.525506f - 1.50856f))) | 103 | m_avatarHeight = (1.50856f + (((float) m_visualParams[25]/255.0f)*(2.525506f - 1.50856f))) |
110 | + (((float)m_visualParams[125] / 255.0f) / 1.5f); | 104 | + (((float) m_visualParams[125]/255.0f)/1.5f); |
111 | } | 105 | } |
112 | 106 | ||
113 | /// <summary> | 107 | /// <summary> |
@@ -144,4 +138,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
144 | return textu; | 138 | return textu; |
145 | } | 139 | } |
146 | } | 140 | } |
147 | } | 141 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/EntityBase.cs b/OpenSim/Region/Environment/Scenes/EntityBase.cs index 4556c63..18799e4 100644 --- a/OpenSim/Region/Environment/Scenes/EntityBase.cs +++ b/OpenSim/Region/Environment/Scenes/EntityBase.cs | |||
@@ -145,7 +145,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
145 | return (EntityBase) MemberwiseClone(); | 145 | return (EntityBase) MemberwiseClone(); |
146 | } | 146 | } |
147 | 147 | ||
148 | |||
149 | 148 | ||
150 | public abstract void SetText(string text, Vector3 color, double alpha); | 149 | public abstract void SetText(string text, Vector3 color, double alpha); |
151 | } | 150 | } |
@@ -161,15 +160,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
161 | 160 | ||
162 | public EntityIntersection() | 161 | public EntityIntersection() |
163 | { | 162 | { |
164 | |||
165 | |||
166 | } | 163 | } |
164 | |||
167 | public EntityIntersection(Vector3 _ipoint, float _normal, bool _HitTF) | 165 | public EntityIntersection(Vector3 _ipoint, float _normal, bool _HitTF) |
168 | { | 166 | { |
169 | ipoint = _ipoint; | 167 | ipoint = _ipoint; |
170 | normal = _normal; | 168 | normal = _normal; |
171 | HitTF = _HitTF; | 169 | HitTF = _HitTF; |
172 | } | 170 | } |
173 | |||
174 | } | 171 | } |
175 | } \ No newline at end of file | 172 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs b/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs index b9d1232..3e87981 100644 --- a/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs +++ b/OpenSim/Region/Environment/Scenes/IScenePresenceBody.cs | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using libsecondlife; | 29 | using libsecondlife; |
30 | using libsecondlife.Packets; | ||
31 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
32 | 31 | ||
33 | namespace OpenSim.Region.Environment.Scenes | 32 | namespace OpenSim.Region.Environment.Scenes |
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index 0ca3405..4233853 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -28,7 +28,6 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using Axiom.Math; | 31 | using Axiom.Math; |
33 | using libsecondlife; | 32 | using libsecondlife; |
34 | using libsecondlife.Packets; | 33 | using libsecondlife.Packets; |
@@ -44,10 +43,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
44 | public class InnerScene | 43 | public class InnerScene |
45 | { | 44 | { |
46 | #region Events | 45 | #region Events |
46 | |||
47 | public event PhysicsCrash UnRecoverableError; | 47 | public event PhysicsCrash UnRecoverableError; |
48 | |||
48 | #endregion | 49 | #endregion |
49 | 50 | ||
50 | #region Fields | 51 | #region Fields |
52 | |||
51 | public Dictionary<LLUUID, ScenePresence> ScenePresences; | 53 | public Dictionary<LLUUID, ScenePresence> ScenePresences; |
52 | public Dictionary<LLUUID, SceneObjectGroup> SceneObjects; | 54 | public Dictionary<LLUUID, SceneObjectGroup> SceneObjects; |
53 | public Dictionary<LLUUID, EntityBase> Entities; | 55 | public Dictionary<LLUUID, EntityBase> Entities; |
@@ -65,6 +67,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
65 | internal object m_syncRoot = new object(); | 67 | internal object m_syncRoot = new object(); |
66 | 68 | ||
67 | public PhysicsScene _PhyScene; | 69 | public PhysicsScene _PhyScene; |
70 | |||
68 | #endregion | 71 | #endregion |
69 | 72 | ||
70 | public InnerScene(Scene parent, RegionInfo regInfo, PermissionManager permissionsMngr) | 73 | public InnerScene(Scene parent, RegionInfo regInfo, PermissionManager permissionsMngr) |
@@ -79,28 +82,27 @@ namespace OpenSim.Region.Environment.Scenes | |||
79 | 82 | ||
80 | public PhysicsScene PhysicsScene | 83 | public PhysicsScene PhysicsScene |
81 | { | 84 | { |
82 | get | 85 | get { return _PhyScene; } |
83 | { return _PhyScene; } | ||
84 | set | 86 | set |
85 | { | 87 | { |
86 | // If we're not doing the initial set | 88 | // If we're not doing the initial set |
87 | // Then we've got to remove the previous | 89 | // Then we've got to remove the previous |
88 | // event handler | 90 | // event handler |
89 | try | 91 | try |
90 | { | 92 | { |
91 | _PhyScene.OnPhysicsCrash -= physicsBasedCrash; | 93 | _PhyScene.OnPhysicsCrash -= physicsBasedCrash; |
92 | } | 94 | } |
93 | catch (System.NullReferenceException) | 95 | catch (NullReferenceException) |
94 | { | 96 | { |
95 | // This occurs when storing to _PhyScene the first time. | 97 | // This occurs when storing to _PhyScene the first time. |
96 | // Is there a better way to check the event handler before | 98 | // Is there a better way to check the event handler before |
97 | // getting here | 99 | // getting here |
98 | // This can be safely ignored. We're setting the first inital | 100 | // This can be safely ignored. We're setting the first inital |
99 | // there are no event handler's registered. | 101 | // there are no event handler's registered. |
100 | } | 102 | } |
101 | 103 | ||
102 | _PhyScene = value; | 104 | _PhyScene = value; |
103 | 105 | ||
104 | _PhyScene.OnPhysicsCrash += physicsBasedCrash; | 106 | _PhyScene.OnPhysicsCrash += physicsBasedCrash; |
105 | } | 107 | } |
106 | } | 108 | } |
@@ -113,6 +115,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
113 | } | 115 | } |
114 | 116 | ||
115 | #region Update Methods | 117 | #region Update Methods |
118 | |||
116 | internal void UpdatePreparePhysics() | 119 | internal void UpdatePreparePhysics() |
117 | { | 120 | { |
118 | // If we are using a threaded physics engine | 121 | // If we are using a threaded physics engine |
@@ -141,7 +144,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
141 | { | 144 | { |
142 | lock (m_syncRoot) | 145 | lock (m_syncRoot) |
143 | { | 146 | { |
144 | return _PhyScene.Simulate((float)elapsed); | 147 | return _PhyScene.Simulate((float) elapsed); |
145 | } | 148 | } |
146 | } | 149 | } |
147 | 150 | ||
@@ -151,12 +154,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
151 | 154 | ||
152 | foreach (EntityBase entity in moveEntities) | 155 | foreach (EntityBase entity in moveEntities) |
153 | { | 156 | { |
154 | entity.UpdateMovement(); | 157 | entity.UpdateMovement(); |
155 | } | 158 | } |
156 | } | 159 | } |
160 | |||
157 | #endregion | 161 | #endregion |
158 | 162 | ||
159 | #region Entity Methods | 163 | #region Entity Methods |
164 | |||
160 | public void AddEntityFromStorage(SceneObjectGroup sceneObject) | 165 | public void AddEntityFromStorage(SceneObjectGroup sceneObject) |
161 | { | 166 | { |
162 | sceneObject.RegionHandle = m_regInfo.RegionHandle; | 167 | sceneObject.RegionHandle = m_regInfo.RegionHandle; |
@@ -181,14 +186,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | m_numPrim++; | 186 | m_numPrim++; |
182 | } | 187 | } |
183 | } | 188 | } |
189 | |||
184 | public void AddPhysicalPrim(int number) | 190 | public void AddPhysicalPrim(int number) |
185 | { | 191 | { |
186 | m_physicalPrim++; | 192 | m_physicalPrim++; |
187 | } | 193 | } |
194 | |||
188 | public void RemovePhysicalPrim(int number) | 195 | public void RemovePhysicalPrim(int number) |
189 | { | 196 | { |
190 | m_physicalPrim--; | 197 | m_physicalPrim--; |
191 | } | 198 | } |
199 | |||
192 | public void RemovePrim(uint localID, LLUUID avatar_deleter) | 200 | public void RemovePrim(uint localID, LLUUID avatar_deleter) |
193 | { | 201 | { |
194 | List<EntityBase> EntityList = GetEntities(); | 202 | List<EntityBase> EntityList = GetEntities(); |
@@ -197,9 +205,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
197 | { | 205 | { |
198 | if (obj is SceneObjectGroup) | 206 | if (obj is SceneObjectGroup) |
199 | { | 207 | { |
200 | if (((SceneObjectGroup)obj).LocalId == localID) | 208 | if (((SceneObjectGroup) obj).LocalId == localID) |
201 | { | 209 | { |
202 | m_parentScene.RemoveEntity((SceneObjectGroup)obj); | 210 | m_parentScene.RemoveEntity((SceneObjectGroup) obj); |
203 | m_numPrim--; | 211 | m_numPrim--; |
204 | return; | 212 | return; |
205 | } | 213 | } |
@@ -253,7 +261,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
253 | 261 | ||
254 | return newAvatar; | 262 | return newAvatar; |
255 | } | 263 | } |
256 | public void SwapRootChildAgent(bool direction_RC_CR_T_F) | 264 | |
265 | public void SwapRootChildAgent(bool direction_RC_CR_T_F) | ||
257 | { | 266 | { |
258 | if (direction_RC_CR_T_F) | 267 | if (direction_RC_CR_T_F) |
259 | { | 268 | { |
@@ -266,25 +275,29 @@ namespace OpenSim.Region.Environment.Scenes | |||
266 | m_numRootAgents++; | 275 | m_numRootAgents++; |
267 | } | 276 | } |
268 | } | 277 | } |
278 | |||
269 | public void removeUserCount(bool TypeRCTF) | 279 | public void removeUserCount(bool TypeRCTF) |
270 | { | 280 | { |
271 | if (TypeRCTF) | 281 | if (TypeRCTF) |
272 | { | 282 | { |
273 | m_numRootAgents--; | 283 | m_numRootAgents--; |
274 | } | 284 | } |
275 | else | 285 | else |
276 | { | 286 | { |
277 | m_numChildAgents--; | 287 | m_numChildAgents--; |
278 | } | 288 | } |
279 | } | 289 | } |
290 | |||
280 | public void RemoveAPrimCount() | 291 | public void RemoveAPrimCount() |
281 | { | 292 | { |
282 | m_numPrim--; | 293 | m_numPrim--; |
283 | } | 294 | } |
295 | |||
284 | public void AddAPrimCount() | 296 | public void AddAPrimCount() |
285 | { | 297 | { |
286 | m_numPrim++; | 298 | m_numPrim++; |
287 | } | 299 | } |
300 | |||
288 | public int GetChildAgentCount() | 301 | public int GetChildAgentCount() |
289 | { | 302 | { |
290 | return m_numChildAgents; | 303 | return m_numChildAgents; |
@@ -375,8 +388,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
375 | { | 388 | { |
376 | if (ent is SceneObjectGroup) | 389 | if (ent is SceneObjectGroup) |
377 | { | 390 | { |
378 | if (((SceneObjectGroup)ent).HasChildPrim(localID)) | 391 | if (((SceneObjectGroup) ent).HasChildPrim(localID)) |
379 | return (SceneObjectGroup)ent; | 392 | return (SceneObjectGroup) ent; |
380 | } | 393 | } |
381 | } | 394 | } |
382 | return null; | 395 | return null; |
@@ -390,8 +403,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
390 | { | 403 | { |
391 | if (ent is SceneObjectGroup) | 404 | if (ent is SceneObjectGroup) |
392 | { | 405 | { |
393 | if (((SceneObjectGroup)ent).HasChildPrim(fullID)) | 406 | if (((SceneObjectGroup) ent).HasChildPrim(fullID)) |
394 | return (SceneObjectGroup)ent; | 407 | return (SceneObjectGroup) ent; |
395 | } | 408 | } |
396 | } | 409 | } |
397 | return null; | 410 | return null; |
@@ -406,7 +419,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
406 | { | 419 | { |
407 | if (ent is SceneObjectGroup) | 420 | if (ent is SceneObjectGroup) |
408 | { | 421 | { |
409 | SceneObjectGroup reportingG = (SceneObjectGroup)ent; | 422 | SceneObjectGroup reportingG = (SceneObjectGroup) ent; |
410 | EntityIntersection result = reportingG.TestIntersection(hray); | 423 | EntityIntersection result = reportingG.TestIntersection(hray); |
411 | if (result.HitTF) | 424 | if (result.HitTF) |
412 | { | 425 | { |
@@ -417,7 +430,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
417 | } | 430 | } |
418 | } | 431 | } |
419 | } | 432 | } |
420 | |||
421 | } | 433 | } |
422 | return returnResult; | 434 | return returnResult; |
423 | } | 435 | } |
@@ -531,17 +543,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
531 | //float distResult = Vector3Distance(avPosition, objPosition); | 543 | //float distResult = Vector3Distance(avPosition, objPosition); |
532 | //if (distResult > 512) | 544 | //if (distResult > 512) |
533 | //{ | 545 | //{ |
534 | //int x = 0; | 546 | //int x = 0; |
535 | //} | 547 | //} |
536 | //if (distResult < presence.DrawDistance) | 548 | //if (distResult < presence.DrawDistance) |
537 | //{ | 549 | //{ |
538 | ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence); | 550 | ((SceneObjectGroup) ent).ScheduleFullUpdateToAvatar(presence); |
539 | //} | 551 | //} |
540 | |||
541 | } | 552 | } |
542 | else | 553 | else |
543 | { | 554 | { |
544 | ((SceneObjectGroup)ent).ScheduleFullUpdateToAvatar(presence); | 555 | ((SceneObjectGroup) ent).ScheduleFullUpdateToAvatar(presence); |
545 | } | 556 | } |
546 | } | 557 | } |
547 | } | 558 | } |
@@ -554,9 +565,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
554 | action(presence.ControllingClient); | 565 | action(presence.ControllingClient); |
555 | } | 566 | } |
556 | } | 567 | } |
568 | |||
557 | #endregion | 569 | #endregion |
558 | 570 | ||
559 | #region Client Event handlers | 571 | #region Client Event handlers |
572 | |||
560 | /// <summary> | 573 | /// <summary> |
561 | /// | 574 | /// |
562 | /// </summary> | 575 | /// </summary> |
@@ -583,13 +596,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
583 | /// <param name="AgentID"></param> | 596 | /// <param name="AgentID"></param> |
584 | /// <param name="RequestFlags"></param> | 597 | /// <param name="RequestFlags"></param> |
585 | /// <param name="ObjectID"></param> | 598 | /// <param name="ObjectID"></param> |
586 | public void RequestObjectPropertiesFamily(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags, LLUUID ObjectID) | 599 | public void RequestObjectPropertiesFamily(IClientAPI remoteClient, LLUUID AgentID, uint RequestFlags, |
600 | LLUUID ObjectID) | ||
587 | { | 601 | { |
588 | SceneObjectGroup group = GetGroupByPrim(ObjectID); | 602 | SceneObjectGroup group = GetGroupByPrim(ObjectID); |
589 | if (group != null) | 603 | if (group != null) |
590 | group.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags); | 604 | group.ServiceObjectPropertiesFamilyRequest(remoteClient, AgentID, RequestFlags); |
591 | |||
592 | |||
593 | } | 605 | } |
594 | 606 | ||
595 | /// <summary> | 607 | /// <summary> |
@@ -708,10 +720,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
708 | { | 720 | { |
709 | if (PermissionsMngr.CanEditObject(remoteClient.AgentId, group.UUID)) | 721 | if (PermissionsMngr.CanEditObject(remoteClient.AgentId, group.UUID)) |
710 | { | 722 | { |
711 | group.UpdatePrimFlags(localID, (ushort)packet.Type, true, packet.ToBytes()); | 723 | group.UpdatePrimFlags(localID, (ushort) packet.Type, true, packet.ToBytes()); |
712 | } | 724 | } |
713 | } | 725 | } |
714 | |||
715 | } | 726 | } |
716 | 727 | ||
717 | public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | 728 | public void MoveObject(LLUUID objectID, LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) |
@@ -763,7 +774,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
763 | public void UpdateExtraParam(LLUUID agentID, uint primLocalID, ushort type, bool inUse, byte[] data) | 774 | public void UpdateExtraParam(LLUUID agentID, uint primLocalID, ushort type, bool inUse, byte[] data) |
764 | { | 775 | { |
765 | SceneObjectGroup group = GetGroupByPrim(primLocalID); | 776 | SceneObjectGroup group = GetGroupByPrim(primLocalID); |
766 | 777 | ||
767 | if (group != null) | 778 | if (group != null) |
768 | { | 779 | { |
769 | if (PermissionsMngr.CanEditObject(agentID, group.UUID)) | 780 | if (PermissionsMngr.CanEditObject(agentID, group.UUID)) |
@@ -771,7 +782,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
771 | group.UpdateExtraParam(primLocalID, type, inUse, data); | 782 | group.UpdateExtraParam(primLocalID, type, inUse, data); |
772 | } | 783 | } |
773 | } | 784 | } |
774 | |||
775 | } | 785 | } |
776 | 786 | ||
777 | /// <summary> | 787 | /// <summary> |
@@ -786,7 +796,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
786 | { | 796 | { |
787 | if (PermissionsMngr.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID))) | 797 | if (PermissionsMngr.CanEditObjectPosition(agentID, group.GetPartsFullID(primLocalID))) |
788 | { | 798 | { |
789 | |||
790 | group.UpdateShape(shapeBlock, primLocalID); | 799 | group.UpdateShape(shapeBlock, primLocalID); |
791 | } | 800 | } |
792 | } | 801 | } |
@@ -806,9 +815,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
806 | { | 815 | { |
807 | if (ent is SceneObjectGroup) | 816 | if (ent is SceneObjectGroup) |
808 | { | 817 | { |
809 | if (((SceneObjectGroup)ent).LocalId == parentPrim) | 818 | if (((SceneObjectGroup) ent).LocalId == parentPrim) |
810 | { | 819 | { |
811 | parenPrim = (SceneObjectGroup)ent; | 820 | parenPrim = (SceneObjectGroup) ent; |
812 | break; | 821 | break; |
813 | } | 822 | } |
814 | } | 823 | } |
@@ -823,9 +832,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
823 | { | 832 | { |
824 | if (ent is SceneObjectGroup) | 833 | if (ent is SceneObjectGroup) |
825 | { | 834 | { |
826 | if (((SceneObjectGroup)ent).LocalId == childPrims[i]) | 835 | if (((SceneObjectGroup) ent).LocalId == childPrims[i]) |
827 | { | 836 | { |
828 | children.Add((SceneObjectGroup)ent); | 837 | children.Add((SceneObjectGroup) ent); |
829 | } | 838 | } |
830 | } | 839 | } |
831 | } | 840 | } |
@@ -857,7 +866,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
857 | { | 866 | { |
858 | if (ent is SceneObjectGroup) | 867 | if (ent is SceneObjectGroup) |
859 | { | 868 | { |
860 | SceneObjectGroup obj = (SceneObjectGroup)ent; | 869 | SceneObjectGroup obj = (SceneObjectGroup) ent; |
861 | sceneObjects.Add(obj.LocalId, obj); | 870 | sceneObjects.Add(obj.LocalId, obj); |
862 | } | 871 | } |
863 | } | 872 | } |
@@ -882,9 +891,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
882 | } | 891 | } |
883 | else | 892 | else |
884 | { | 893 | { |
885 | MainLog.Instance.Verbose("SCENE", | 894 | MainLog.Instance.Verbose("SCENE", |
886 | "DelinkObjects(): Could not find a root prim out of {0} as given to a delink request!", | 895 | "DelinkObjects(): Could not find a root prim out of {0} as given to a delink request!", |
887 | primIds); | 896 | primIds); |
888 | } | 897 | } |
889 | } | 898 | } |
890 | 899 | ||
@@ -903,9 +912,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
903 | { | 912 | { |
904 | if (ent is SceneObjectGroup) | 913 | if (ent is SceneObjectGroup) |
905 | { | 914 | { |
906 | if (((SceneObjectGroup)ent).LocalId == originalPrim) | 915 | if (((SceneObjectGroup) ent).LocalId == originalPrim) |
907 | { | 916 | { |
908 | originPrim = (SceneObjectGroup)ent; | 917 | originPrim = (SceneObjectGroup) ent; |
909 | break; | 918 | break; |
910 | } | 919 | } |
911 | } | 920 | } |
@@ -929,7 +938,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
929 | { | 938 | { |
930 | MainLog.Instance.Warn("client", "Attempted to duplicate nonexistant prim"); | 939 | MainLog.Instance.Warn("client", "Attempted to duplicate nonexistant prim"); |
931 | } | 940 | } |
932 | |||
933 | } | 941 | } |
934 | 942 | ||
935 | /// <summary> | 943 | /// <summary> |
@@ -943,8 +951,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
943 | // We don't really need the double floating point precision... | 951 | // We don't really need the double floating point precision... |
944 | // so casting it to a single | 952 | // so casting it to a single |
945 | 953 | ||
946 | return (float)Math.Sqrt((v1.x - v2.x) * (v1.x - v2.x) + (v1.y - v2.y) * (v1.y - v2.y) + (v1.z - v2.z) * (v1.z - v2.z)); | 954 | return |
955 | (float) | ||
956 | Math.Sqrt((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y) + (v1.z - v2.z)*(v1.z - v2.z)); | ||
947 | } | 957 | } |
958 | |||
948 | #endregion | 959 | #endregion |
949 | } | 960 | } |
950 | } | 961 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs index 0689177..4c6e1c8 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.Inventory.cs | |||
@@ -26,14 +26,12 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using Axiom.Math; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using libsecondlife.Packets; | 31 | using libsecondlife.Packets; |
32 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
33 | using OpenSim.Framework.Communications.Cache; | 33 | using OpenSim.Framework.Communications.Cache; |
34 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
35 | using OpenSim.Region.Physics.Manager; | ||
36 | using System.Collections.Generic; | ||
37 | 35 | ||
38 | namespace OpenSim.Region.Environment.Scenes | 36 | namespace OpenSim.Region.Environment.Scenes |
39 | { | 37 | { |
@@ -41,7 +39,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
41 | { | 39 | { |
42 | //split these method into this partial as a lot of these (hopefully) are only temporary and won't be needed once Caps is more complete | 40 | //split these method into this partial as a lot of these (hopefully) are only temporary and won't be needed once Caps is more complete |
43 | // or at least some of they can be moved somewhere else | 41 | // or at least some of they can be moved somewhere else |
44 | 42 | ||
45 | /// <summary> | 43 | /// <summary> |
46 | /// Add an inventory item to an avatar's inventory. | 44 | /// Add an inventory item to an avatar's inventory. |
47 | /// </summary> | 45 | /// </summary> |
@@ -57,7 +55,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
57 | remoteClient.SendInventoryItemCreateUpdate(item); | 55 | remoteClient.SendInventoryItemCreateUpdate(item); |
58 | } | 56 | } |
59 | } | 57 | } |
60 | 58 | ||
61 | /// <summary> | 59 | /// <summary> |
62 | /// <see>AddInventoryItem(LLUUID, InventoryItemBase)</see> | 60 | /// <see>AddInventoryItem(LLUUID, InventoryItemBase)</see> |
63 | /// </summary> | 61 | /// </summary> |
@@ -71,10 +69,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
71 | if (!TryGetAvatar(avatarId, out avatar)) | 69 | if (!TryGetAvatar(avatarId, out avatar)) |
72 | { | 70 | { |
73 | MainLog.Instance.Error( | 71 | MainLog.Instance.Error( |
74 | "AGENTINVENTORY", "Could not find avatar {0} to add inventory item", avatarId); | 72 | "AGENTINVENTORY", "Could not find avatar {0} to add inventory item", avatarId); |
75 | return; | 73 | return; |
76 | } | 74 | } |
77 | 75 | ||
78 | AddInventoryItem(avatar.ControllingClient, item); | 76 | AddInventoryItem(avatar.ControllingClient, item); |
79 | } | 77 | } |
80 | 78 | ||
@@ -95,7 +93,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
95 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); | 93 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); |
96 | if (item != null) | 94 | if (item != null) |
97 | { | 95 | { |
98 | AssetBase asset = CreateAsset(item.inventoryName, item.inventoryDescription, (sbyte) item.invType, (sbyte) item.assetType, data); | 96 | AssetBase asset = |
97 | CreateAsset(item.inventoryName, item.inventoryDescription, (sbyte) item.invType, | ||
98 | (sbyte) item.assetType, data); | ||
99 | AssetCache.AddAsset(asset); | 99 | AssetCache.AddAsset(asset); |
100 | 100 | ||
101 | item.assetID = asset.FullID; | 101 | item.assetID = asset.FullID; |
@@ -117,7 +117,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
117 | } | 117 | } |
118 | return LLUUID.Zero; | 118 | return LLUUID.Zero; |
119 | } | 119 | } |
120 | 120 | ||
121 | /// <summary> | 121 | /// <summary> |
122 | /// <see>CapsUpdatedInventoryItemAsset(IClientAPI, LLUUID, byte[])</see> | 122 | /// <see>CapsUpdatedInventoryItemAsset(IClientAPI, LLUUID, byte[])</see> |
123 | /// </summary> | 123 | /// </summary> |
@@ -132,14 +132,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
132 | else | 132 | else |
133 | { | 133 | { |
134 | MainLog.Instance.Error( | 134 | MainLog.Instance.Error( |
135 | "AGENTINVENTORY", | 135 | "AGENTINVENTORY", |
136 | "Avatar {0} cannot be found to update its inventory item asset", | 136 | "Avatar {0} cannot be found to update its inventory item asset", |
137 | avatarId); | 137 | avatarId); |
138 | } | 138 | } |
139 | 139 | ||
140 | return LLUUID.Zero; | 140 | return LLUUID.Zero; |
141 | } | 141 | } |
142 | 142 | ||
143 | /// <summary> | 143 | /// <summary> |
144 | /// Capability originating call to update the asset of a script in a prim's (task's) inventory | 144 | /// Capability originating call to update the asset of a script in a prim's (task's) inventory |
145 | /// </summary> | 145 | /// </summary> |
@@ -149,17 +149,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
149 | /// <param name="isScriptRunning">Indicates whether the script to update is currently running</param> | 149 | /// <param name="isScriptRunning">Indicates whether the script to update is currently running</param> |
150 | /// <param name="data"></param> | 150 | /// <param name="data"></param> |
151 | /// <returns>Asset LLUID created</returns> | 151 | /// <returns>Asset LLUID created</returns> |
152 | public void CapsUpdateTaskInventoryScriptAsset(IClientAPI remoteClient, LLUUID itemId, | 152 | public void CapsUpdateTaskInventoryScriptAsset(IClientAPI remoteClient, LLUUID itemId, |
153 | LLUUID primId, bool isScriptRunning, byte[] data) | 153 | LLUUID primId, bool isScriptRunning, byte[] data) |
154 | { | 154 | { |
155 | // TODO Not currently doing anything with the isScriptRunning bool | 155 | // TODO Not currently doing anything with the isScriptRunning bool |
156 | 156 | ||
157 | MainLog.Instance.Verbose( | 157 | MainLog.Instance.Verbose( |
158 | "PRIMINVENTORY", | 158 | "PRIMINVENTORY", |
159 | "Prim inventory script save functionality not yet implemented." | 159 | "Prim inventory script save functionality not yet implemented." |
160 | + " remoteClient: {0}, itemID: {1}, primID: {2}, isScriptRunning: {3}", | 160 | + " remoteClient: {0}, itemID: {1}, primID: {2}, isScriptRunning: {3}", |
161 | remoteClient, itemId, primId, isScriptRunning); | 161 | remoteClient, itemId, primId, isScriptRunning); |
162 | 162 | ||
163 | // TODO | 163 | // TODO |
164 | // Retrieve client LLUID | 164 | // Retrieve client LLUID |
165 | // Retrieve sog containing primID | 165 | // Retrieve sog containing primID |
@@ -170,13 +170,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
170 | // Trigger rerunning of script (use TriggerRezScript event, see RezScript) | 170 | // Trigger rerunning of script (use TriggerRezScript event, see RezScript) |
171 | // return new asset id | 171 | // return new asset id |
172 | } | 172 | } |
173 | 173 | ||
174 | /// <summary> | 174 | /// <summary> |
175 | /// <see>CapsUpdateTaskInventoryScriptAsset(IClientAPI, LLUUID, LLUUID, bool, byte[])</see> | 175 | /// <see>CapsUpdateTaskInventoryScriptAsset(IClientAPI, LLUUID, LLUUID, bool, byte[])</see> |
176 | /// </summary> | 176 | /// </summary> |
177 | private void CapsUpdateTaskInventoryScriptAsset(LLUUID avatarId, LLUUID itemId, | 177 | private void CapsUpdateTaskInventoryScriptAsset(LLUUID avatarId, LLUUID itemId, |
178 | LLUUID primId, bool isScriptRunning, byte[] data) | 178 | LLUUID primId, bool isScriptRunning, byte[] data) |
179 | { | 179 | { |
180 | ScenePresence avatar; | 180 | ScenePresence avatar; |
181 | 181 | ||
182 | if (TryGetAvatar(avatarId, out avatar)) | 182 | if (TryGetAvatar(avatarId, out avatar)) |
@@ -187,10 +187,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
187 | else | 187 | else |
188 | { | 188 | { |
189 | MainLog.Instance.Error( | 189 | MainLog.Instance.Error( |
190 | "PRIMINVENTORY", | 190 | "PRIMINVENTORY", |
191 | "Avatar {0} cannot be found to update its prim item asset", | 191 | "Avatar {0} cannot be found to update its prim item asset", |
192 | avatarId); | 192 | avatarId); |
193 | } | 193 | } |
194 | } | 194 | } |
195 | 195 | ||
196 | /// <summary> | 196 | /// <summary> |
@@ -204,74 +204,75 @@ namespace OpenSim.Region.Environment.Scenes | |||
204 | /// <param name="name">The name of the updated item</param> | 204 | /// <param name="name">The name of the updated item</param> |
205 | /// <param name="description">The description of the updated item</param> | 205 | /// <param name="description">The description of the updated item</param> |
206 | /// <param name="nextOwnerMask">The permissions of the updated item</param> | 206 | /// <param name="nextOwnerMask">The permissions of the updated item</param> |
207 | public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, | 207 | public void UpdateInventoryItemAsset(IClientAPI remoteClient, LLUUID transactionID, |
208 | LLUUID itemID, string name, string description, | 208 | LLUUID itemID, string name, string description, |
209 | uint nextOwnerMask) | 209 | uint nextOwnerMask) |
210 | { | 210 | { |
211 | CachedUserInfo userInfo | 211 | CachedUserInfo userInfo |
212 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 212 | = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
213 | 213 | ||
214 | if (userInfo != null && userInfo.RootFolder != null) | 214 | if (userInfo != null && userInfo.RootFolder != null) |
215 | { | 215 | { |
216 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); | 216 | InventoryItemBase item = userInfo.RootFolder.HasItem(itemID); |
217 | if (item != null) | 217 | if (item != null) |
218 | { | 218 | { |
219 | if (LLUUID.Zero == transactionID) | 219 | if (LLUUID.Zero == transactionID) |
220 | { | 220 | { |
221 | item.inventoryName = name; | 221 | item.inventoryName = name; |
222 | item.inventoryDescription = description; | 222 | item.inventoryDescription = description; |
223 | item.inventoryNextPermissions = nextOwnerMask; | 223 | item.inventoryNextPermissions = nextOwnerMask; |
224 | 224 | ||
225 | userInfo.UpdateItem(remoteClient.AgentId, item); | 225 | userInfo.UpdateItem(remoteClient.AgentId, item); |
226 | } | 226 | } |
227 | else | 227 | else |
228 | { | 228 | { |
229 | AgentAssetTransactions transactions | 229 | AgentAssetTransactions transactions |
230 | = CommsManager.TransactionsManager.GetUserTransActions(remoteClient.AgentId); | 230 | = CommsManager.TransactionsManager.GetUserTransActions(remoteClient.AgentId); |
231 | 231 | ||
232 | if (transactions != null) | 232 | if (transactions != null) |
233 | { | 233 | { |
234 | LLUUID assetID = libsecondlife.LLUUID.Combine(transactionID, remoteClient.SecureSessionId); | 234 | LLUUID assetID = LLUUID.Combine(transactionID, remoteClient.SecureSessionId); |
235 | AssetBase asset | 235 | AssetBase asset |
236 | = AssetCache.GetAsset( | 236 | = AssetCache.GetAsset( |
237 | assetID, (item.assetType == (int)AssetType.Texture ? true : false)); | 237 | assetID, (item.assetType == (int) AssetType.Texture ? true : false)); |
238 | 238 | ||
239 | if (asset == null) | 239 | if (asset == null) |
240 | { | 240 | { |
241 | asset = transactions.GetTransactionAsset(transactionID); | 241 | asset = transactions.GetTransactionAsset(transactionID); |
242 | } | 242 | } |
243 | 243 | ||
244 | if (asset != null && asset.FullID == assetID) | 244 | if (asset != null && asset.FullID == assetID) |
245 | { | 245 | { |
246 | asset.Name = item.inventoryName; | 246 | asset.Name = item.inventoryName; |
247 | asset.Description = item.inventoryDescription; | 247 | asset.Description = item.inventoryDescription; |
248 | asset.InvType = (sbyte) item.invType; | 248 | asset.InvType = (sbyte) item.invType; |
249 | asset.Type = (sbyte) item.assetType; | 249 | asset.Type = (sbyte) item.assetType; |
250 | item.assetID = asset.FullID; | 250 | item.assetID = asset.FullID; |
251 | 251 | ||
252 | AssetCache.AddAsset(asset); | 252 | AssetCache.AddAsset(asset); |
253 | } | 253 | } |
254 | 254 | ||
255 | userInfo.UpdateItem(remoteClient.AgentId, item); | 255 | userInfo.UpdateItem(remoteClient.AgentId, item); |
256 | } | 256 | } |
257 | } | 257 | } |
258 | } | 258 | } |
259 | else | 259 | else |
260 | { | 260 | { |
261 | MainLog.Instance.Warn( | 261 | MainLog.Instance.Warn( |
262 | "AGENTINVENTORY", | 262 | "AGENTINVENTORY", |
263 | "Item ID " + itemID + " not found for an inventory item update."); | 263 | "Item ID " + itemID + " not found for an inventory item update."); |
264 | } | 264 | } |
265 | } | 265 | } |
266 | else | 266 | else |
267 | { | 267 | { |
268 | MainLog.Instance.Warn( | 268 | MainLog.Instance.Warn( |
269 | "AGENTINVENTORY", | 269 | "AGENTINVENTORY", |
270 | "Agent ID " + remoteClient.AgentId + " not found for an inventory item update."); | 270 | "Agent ID " + remoteClient.AgentId + " not found for an inventory item update."); |
271 | } | 271 | } |
272 | } | 272 | } |
273 | 273 | ||
274 | public void CopyInventoryItem(IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, LLUUID newFolderID, string newName) | 274 | public void CopyInventoryItem(IClientAPI remoteClient, uint callbackID, LLUUID oldAgentID, LLUUID oldItemID, |
275 | LLUUID newFolderID, string newName) | ||
275 | { | 276 | { |
276 | InventoryItemBase item = CommsManager.UserProfileCacheService.libraryRoot.HasItem(oldItemID); | 277 | InventoryItemBase item = CommsManager.UserProfileCacheService.libraryRoot.HasItem(oldItemID); |
277 | if (item == null) | 278 | if (item == null) |
@@ -308,7 +309,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
308 | } | 309 | } |
309 | 310 | ||
310 | asset.Name = (newName.Length == 0) ? item.inventoryName : newName; | 311 | asset.Name = (newName.Length == 0) ? item.inventoryName : newName; |
311 | 312 | ||
312 | // TODO: preserve current permissions? | 313 | // TODO: preserve current permissions? |
313 | CreateNewInventoryItem(remoteClient, newFolderID, callbackID, asset, item.inventoryNextPermissions); | 314 | CreateNewInventoryItem(remoteClient, newFolderID, callbackID, asset, item.inventoryNextPermissions); |
314 | } | 315 | } |
@@ -325,12 +326,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
325 | return asset; | 326 | return asset; |
326 | } | 327 | } |
327 | 328 | ||
328 | public void MoveInventoryItem(IClientAPI remoteClient,LLUUID folderID, LLUUID itemID, int length, string newName) | 329 | public void MoveInventoryItem(IClientAPI remoteClient, LLUUID folderID, LLUUID itemID, int length, |
330 | string newName) | ||
329 | { | 331 | { |
330 | MainLog.Instance.Verbose( | 332 | MainLog.Instance.Verbose( |
331 | "AGENTINVENTORY", | 333 | "AGENTINVENTORY", |
332 | "Moving item for " + remoteClient.AgentId.ToString()); | 334 | "Moving item for " + remoteClient.AgentId.ToString()); |
333 | 335 | ||
334 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 336 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); |
335 | if (userInfo == null) | 337 | if (userInfo == null) |
336 | { | 338 | { |
@@ -364,8 +366,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
364 | MainLog.Instance.Warn("AGENTINVENTORY", "Failed to find item " + itemID.ToString() + ", no root folder"); | 366 | MainLog.Instance.Warn("AGENTINVENTORY", "Failed to find item " + itemID.ToString() + ", no root folder"); |
365 | return; | 367 | return; |
366 | } | 368 | } |
367 | |||
368 | |||
369 | } | 369 | } |
370 | 370 | ||
371 | private void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID folderID, uint callbackID, | 371 | private void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID folderID, uint callbackID, |
@@ -406,7 +406,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
406 | /// <param name="wearableType"></param> | 406 | /// <param name="wearableType"></param> |
407 | /// <param name="nextOwnerMask"></param> | 407 | /// <param name="nextOwnerMask"></param> |
408 | public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID, | 408 | public void CreateNewInventoryItem(IClientAPI remoteClient, LLUUID transActionID, LLUUID folderID, |
409 | uint callbackID, string description, string name, sbyte invType, sbyte assetType, | 409 | uint callbackID, string description, string name, sbyte invType, |
410 | sbyte assetType, | ||
410 | byte wearableType, uint nextOwnerMask) | 411 | byte wearableType, uint nextOwnerMask) |
411 | { | 412 | { |
412 | if (transActionID == LLUUID.Zero) | 413 | if (transActionID == LLUUID.Zero) |
@@ -437,8 +438,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
437 | { | 438 | { |
438 | if (ent is SceneObjectGroup) | 439 | if (ent is SceneObjectGroup) |
439 | { | 440 | { |
440 | if (((SceneObjectGroup)ent).HasChildPrim(localID)) | 441 | if (((SceneObjectGroup) ent).HasChildPrim(localID)) |
441 | return (SceneObjectGroup)ent; | 442 | return (SceneObjectGroup) ent; |
442 | } | 443 | } |
443 | } | 444 | } |
444 | return null; | 445 | return null; |
@@ -491,13 +492,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
491 | else | 492 | else |
492 | { | 493 | { |
493 | MainLog.Instance.Warn( | 494 | MainLog.Instance.Warn( |
494 | "PRIMINVENTORY", | 495 | "PRIMINVENTORY", |
495 | "Removal of item {0} requested of prim {1} but this prim does not exist", | 496 | "Removal of item {0} requested of prim {1} but this prim does not exist", |
496 | itemID, | 497 | itemID, |
497 | localID); | 498 | localID); |
498 | } | 499 | } |
499 | } | 500 | } |
500 | 501 | ||
501 | /// <summary> | 502 | /// <summary> |
502 | /// Update an item in a prim (task) inventory. | 503 | /// Update an item in a prim (task) inventory. |
503 | /// This method does not handle scripts, <see>RezScript(IClientAPI, LLUUID, unit)</see> | 504 | /// This method does not handle scripts, <see>RezScript(IClientAPI, LLUUID, unit)</see> |
@@ -506,7 +507,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
506 | /// <param name="itemID"></param> | 507 | /// <param name="itemID"></param> |
507 | /// <param name="folderID"></param> | 508 | /// <param name="folderID"></param> |
508 | /// <param name="primLocalID"></param> | 509 | /// <param name="primLocalID"></param> |
509 | public void UpdateTaskInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID folderID, | 510 | public void UpdateTaskInventory(IClientAPI remoteClient, LLUUID itemID, LLUUID folderID, |
510 | uint primLocalID) | 511 | uint primLocalID) |
511 | { | 512 | { |
512 | SceneObjectGroup group = GetGroupByPrim(primLocalID); | 513 | SceneObjectGroup group = GetGroupByPrim(primLocalID); |
@@ -515,17 +516,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
515 | // TODO Retrieve itemID from client's inventory to pass on | 516 | // TODO Retrieve itemID from client's inventory to pass on |
516 | //group.AddInventoryItem(rmoteClient, primLocalID, null); | 517 | //group.AddInventoryItem(rmoteClient, primLocalID, null); |
517 | MainLog.Instance.Verbose( | 518 | MainLog.Instance.Verbose( |
518 | "PRIMINVENTORY", | 519 | "PRIMINVENTORY", |
519 | "UpdateTaskInventory called with script {0}, folder {1}, primLocalID {2}, user {3}", | 520 | "UpdateTaskInventory called with script {0}, folder {1}, primLocalID {2}, user {3}", |
520 | itemID, folderID, primLocalID, remoteClient.Name); | 521 | itemID, folderID, primLocalID, remoteClient.Name); |
521 | } | 522 | } |
522 | else | 523 | else |
523 | { | 524 | { |
524 | MainLog.Instance.Warn( | 525 | MainLog.Instance.Warn( |
525 | "PRIMINVENTORY", | 526 | "PRIMINVENTORY", |
526 | "Update with script {0} requested of prim {1} for {2} but this prim does not exist", | 527 | "Update with script {0} requested of prim {1} for {2} but this prim does not exist", |
527 | itemID, primLocalID, remoteClient.Name); | 528 | itemID, primLocalID, remoteClient.Name); |
528 | } | 529 | } |
529 | } | 530 | } |
530 | 531 | ||
531 | /// <summary> | 532 | /// <summary> |
@@ -551,7 +552,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
551 | { | 552 | { |
552 | isTexture = true; | 553 | isTexture = true; |
553 | } | 554 | } |
554 | 555 | ||
555 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, isTexture); | 556 | AssetBase rezAsset = AssetCache.GetAsset(item.assetID, isTexture); |
556 | 557 | ||
557 | if (rezAsset != null) | 558 | if (rezAsset != null) |
@@ -569,18 +570,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
569 | // TODO: do we care about the value of this bool? | 570 | // TODO: do we care about the value of this bool? |
570 | group.AddInventoryItem(remoteClient, localID, item, copyID); | 571 | group.AddInventoryItem(remoteClient, localID, item, copyID); |
571 | group.GetProperites(remoteClient); | 572 | group.GetProperites(remoteClient); |
572 | 573 | ||
573 | MainLog.Instance.Verbose( | 574 | MainLog.Instance.Verbose( |
574 | "PRIMINVENTORY", | 575 | "PRIMINVENTORY", |
575 | "Rezzed script {0} (asset {1}) into prim {2} for user {3}", | 576 | "Rezzed script {0} (asset {1}) into prim {2} for user {3}", |
576 | item.inventoryName, rezAsset.FullID, localID, remoteClient.Name); | 577 | item.inventoryName, rezAsset.FullID, localID, remoteClient.Name); |
577 | } | 578 | } |
578 | else | 579 | else |
579 | { | 580 | { |
580 | MainLog.Instance.Warn( | 581 | MainLog.Instance.Warn( |
581 | "PRIMINVENTORY", | 582 | "PRIMINVENTORY", |
582 | "Could not rez script {0} into prim {1} for user {2}" | 583 | "Could not rez script {0} into prim {1} for user {2}" |
583 | + " because the prim could not be found in the region!", | 584 | + " because the prim could not be found in the region!", |
584 | item.inventoryName, localID, remoteClient.Name); | 585 | item.inventoryName, localID, remoteClient.Name); |
585 | } | 586 | } |
586 | } | 587 | } |
@@ -589,7 +590,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
589 | MainLog.Instance.Warn( | 590 | MainLog.Instance.Warn( |
590 | "PRIMINVENTORY", | 591 | "PRIMINVENTORY", |
591 | "Could not rez script {0} into prim {1} for user {2}" | 592 | "Could not rez script {0} into prim {1} for user {2}" |
592 | + " because the item asset {3} could not be found!", | 593 | + " because the item asset {3} could not be found!", |
593 | item.inventoryName, localID, item.assetID, remoteClient.Name); | 594 | item.inventoryName, localID, item.assetID, remoteClient.Name); |
594 | } | 595 | } |
595 | } | 596 | } |
@@ -638,7 +639,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
638 | if (PermissionsMngr.CanDeRezObject(remoteClient.AgentId, ((SceneObjectGroup) selectedEnt).UUID)) | 639 | if (PermissionsMngr.CanDeRezObject(remoteClient.AgentId, ((SceneObjectGroup) selectedEnt).UUID)) |
639 | { | 640 | { |
640 | string sceneObjectXml = ((SceneObjectGroup) selectedEnt).ToXmlString(); | 641 | string sceneObjectXml = ((SceneObjectGroup) selectedEnt).ToXmlString(); |
641 | CachedUserInfo userInfo = CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | 642 | CachedUserInfo userInfo = |
643 | CommsManager.UserProfileCacheService.GetUserDetails(remoteClient.AgentId); | ||
642 | if (userInfo != null) | 644 | if (userInfo != null) |
643 | { | 645 | { |
644 | AssetBase asset = CreateAsset( | 646 | AssetBase asset = CreateAsset( |
@@ -661,9 +663,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
661 | item.parentFolderID = DeRezPacket.AgentBlock.DestinationID; | 663 | item.parentFolderID = DeRezPacket.AgentBlock.DestinationID; |
662 | item.inventoryCurrentPermissions = 2147483647; | 664 | item.inventoryCurrentPermissions = 2147483647; |
663 | item.inventoryNextPermissions = 2147483647; | 665 | item.inventoryNextPermissions = 2147483647; |
664 | item.inventoryEveryOnePermissions = ((SceneObjectGroup)selectedEnt).RootPart.EveryoneMask; | 666 | item.inventoryEveryOnePermissions = |
665 | item.inventoryBasePermissions = ((SceneObjectGroup)selectedEnt).RootPart.BaseMask; | 667 | ((SceneObjectGroup) selectedEnt).RootPart.EveryoneMask; |
666 | item.inventoryCurrentPermissions = ((SceneObjectGroup)selectedEnt).RootPart.OwnerMask; | 668 | item.inventoryBasePermissions = ((SceneObjectGroup) selectedEnt).RootPart.BaseMask; |
669 | item.inventoryCurrentPermissions = ((SceneObjectGroup) selectedEnt).RootPart.OwnerMask; | ||
667 | 670 | ||
668 | userInfo.AddItem(remoteClient.AgentId, item); | 671 | userInfo.AddItem(remoteClient.AgentId, item); |
669 | remoteClient.SendInventoryItemCreateUpdate(item); | 672 | remoteClient.SendInventoryItemCreateUpdate(item); |
@@ -730,20 +733,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
730 | //bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0)&& m_physicalPrim); | 733 | //bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0)&& m_physicalPrim); |
731 | //if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) | 734 | //if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
732 | //{ | 735 | //{ |
733 | //PrimitiveBaseShape pbs = rootPart.Shape; | 736 | //PrimitiveBaseShape pbs = rootPart.Shape; |
734 | //rootPart.PhysActor = PhysicsScene.AddPrimShape( | 737 | //rootPart.PhysActor = PhysicsScene.AddPrimShape( |
735 | //rootPart.Name, | 738 | //rootPart.Name, |
736 | //pbs, | 739 | //pbs, |
737 | //new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, | 740 | //new PhysicsVector(rootPart.AbsolutePosition.X, rootPart.AbsolutePosition.Y, |
738 | // rootPart.AbsolutePosition.Z), | 741 | // rootPart.AbsolutePosition.Z), |
739 | //new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), | 742 | //new PhysicsVector(rootPart.Scale.X, rootPart.Scale.Y, rootPart.Scale.Z), |
740 | //new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 743 | //new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
741 | // rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 744 | // rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
742 | 745 | ||
743 | // rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); | 746 | // rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
744 | 747 | ||
745 | // } | 748 | // } |
746 | rootPart.ScheduleFullUpdate(); | 749 | rootPart.ScheduleFullUpdate(); |
747 | } | 750 | } |
748 | } | 751 | } |
749 | } | 752 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs index 6a7c266..999b70f 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.PacketHandlers.cs | |||
@@ -29,8 +29,6 @@ using System.Collections.Generic; | |||
29 | using libsecondlife; | 29 | using libsecondlife; |
30 | using libsecondlife.Packets; | 30 | using libsecondlife.Packets; |
31 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
32 | using OpenSim.Framework.UserManagement; | ||
33 | using OpenSim.Framework.Console; | ||
34 | 32 | ||
35 | namespace OpenSim.Region.Environment.Scenes | 33 | namespace OpenSim.Region.Environment.Scenes |
36 | { | 34 | { |
@@ -45,7 +43,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
45 | /// <param name="action">The action to be performed</param> | 43 | /// <param name="action">The action to be performed</param> |
46 | /// <param name="north">Distance from the north border where the cursor is located</param> | 44 | /// <param name="north">Distance from the north border where the cursor is located</param> |
47 | /// <param name="west">Distance from the west border where the cursor is located</param> | 45 | /// <param name="west">Distance from the west border where the cursor is located</param> |
48 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, float south, float east, | 46 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, |
47 | float south, float east, | ||
49 | IClientAPI remoteUser) | 48 | IClientAPI remoteUser) |
50 | { | 49 | { |
51 | // Do a permissions check before allowing terraforming. | 50 | // Do a permissions check before allowing terraforming. |
@@ -157,7 +156,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
157 | } | 156 | } |
158 | } | 157 | } |
159 | } | 158 | } |
160 | 159 | ||
161 | public void ProcessAvatarPickerRequest(IClientAPI client, LLUUID avatarID, LLUUID RequestID, string query) | 160 | public void ProcessAvatarPickerRequest(IClientAPI client, LLUUID avatarID, LLUUID RequestID, string query) |
162 | { | 161 | { |
163 | //EventManager.TriggerAvatarPickerRequest(); | 162 | //EventManager.TriggerAvatarPickerRequest(); |
@@ -166,13 +165,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
166 | AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query); | 165 | AvatarResponses = CommsManager.GenerateAgentPickerRequestResponse(RequestID, query); |
167 | 166 | ||
168 | AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket(); | 167 | AvatarPickerReplyPacket replyPacket = new AvatarPickerReplyPacket(); |
169 | AvatarPickerReplyPacket.DataBlock[] searchData = new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count]; | 168 | AvatarPickerReplyPacket.DataBlock[] searchData = |
169 | new AvatarPickerReplyPacket.DataBlock[AvatarResponses.Count]; | ||
170 | AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); | 170 | AvatarPickerReplyPacket.AgentDataBlock agentData = new AvatarPickerReplyPacket.AgentDataBlock(); |
171 | 171 | ||
172 | agentData.AgentID = avatarID; | 172 | agentData.AgentID = avatarID; |
173 | agentData.QueryID = RequestID; | 173 | agentData.QueryID = RequestID; |
174 | replyPacket.AgentData = agentData; | 174 | replyPacket.AgentData = agentData; |
175 | byte[] bytes = new byte[AvatarResponses.Count * 32]; | 175 | byte[] bytes = new byte[AvatarResponses.Count*32]; |
176 | 176 | ||
177 | int i = 0; | 177 | int i = 0; |
178 | foreach (AvatarPickerAvatar item in AvatarResponses) | 178 | foreach (AvatarPickerAvatar item in AvatarResponses) |
@@ -180,10 +180,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
180 | LLUUID translatedIDtem = item.AvatarID; | 180 | LLUUID translatedIDtem = item.AvatarID; |
181 | searchData[i] = new AvatarPickerReplyPacket.DataBlock(); | 181 | searchData[i] = new AvatarPickerReplyPacket.DataBlock(); |
182 | searchData[i].AvatarID = translatedIDtem; | 182 | searchData[i].AvatarID = translatedIDtem; |
183 | searchData[i].FirstName = Helpers.StringToField((string)item.firstName); | 183 | searchData[i].FirstName = Helpers.StringToField((string) item.firstName); |
184 | searchData[i].LastName = Helpers.StringToField((string)item.lastName); | 184 | searchData[i].LastName = Helpers.StringToField((string) item.lastName); |
185 | i++; | 185 | i++; |
186 | |||
187 | } | 186 | } |
188 | if (AvatarResponses.Count == 0) | 187 | if (AvatarResponses.Count == 0) |
189 | { | 188 | { |
@@ -193,4 +192,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
193 | client.SendAvatarPickerReply(replyPacket); | 192 | client.SendAvatarPickerReply(replyPacket); |
194 | } | 193 | } |
195 | } | 194 | } |
196 | } | 195 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 0144c4c..c0fda61 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -27,27 +27,28 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.IO; | 30 | using System.Drawing; |
31 | using System.Net; | 31 | using System.Drawing.Imaging; |
32 | using System.Threading; | 32 | using System.Threading; |
33 | using System.Timers; | 33 | using System.Timers; |
34 | using System.Xml; | ||
35 | using Axiom.Math; | 34 | using Axiom.Math; |
36 | using libsecondlife; | 35 | using libsecondlife; |
36 | using libsecondlife.Packets; | ||
37 | using OpenJPEGNet; | ||
37 | using OpenSim.Framework; | 38 | using OpenSim.Framework; |
38 | using OpenSim.Framework.Communications; | 39 | using OpenSim.Framework.Communications; |
39 | using OpenSim.Framework.Communications.Cache; | 40 | using OpenSim.Framework.Communications.Cache; |
40 | using OpenSim.Framework.Console; | 41 | using OpenSim.Framework.Console; |
41 | using OpenSim.Region.Environment.LandManagement; | ||
42 | using OpenSim.Framework.Servers; | 42 | using OpenSim.Framework.Servers; |
43 | using OpenSim.Region.Capabilities; | ||
44 | using OpenSim.Region.Environment.Interfaces; | 43 | using OpenSim.Region.Environment.Interfaces; |
44 | using OpenSim.Region.Environment.LandManagement; | ||
45 | using OpenSim.Region.Environment.Modules; | 45 | using OpenSim.Region.Environment.Modules; |
46 | using OpenSim.Region.Environment.Scenes.Scripting; | 46 | using OpenSim.Region.Environment.Scenes.Scripting; |
47 | using OpenSim.Region.Environment.Types; | ||
48 | using OpenSim.Region.Physics.Manager; | 47 | using OpenSim.Region.Physics.Manager; |
49 | using OpenSim.Region.Terrain; | 48 | using OpenSim.Region.Terrain; |
50 | using Timer = System.Timers.Timer; | 49 | using Caps=OpenSim.Region.Capabilities.Caps; |
50 | using Image=System.Drawing.Image; | ||
51 | using Timer=System.Timers.Timer; | ||
51 | 52 | ||
52 | namespace OpenSim.Region.Environment.Scenes | 53 | namespace OpenSim.Region.Environment.Scenes |
53 | { | 54 | { |
@@ -56,6 +57,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
56 | public partial class Scene : SceneBase | 57 | public partial class Scene : SceneBase |
57 | { | 58 | { |
58 | #region Fields | 59 | #region Fields |
60 | |||
59 | protected Timer m_heartbeatTimer = new Timer(); | 61 | protected Timer m_heartbeatTimer = new Timer(); |
60 | protected Timer m_restartWaitTimer = new Timer(); | 62 | protected Timer m_restartWaitTimer = new Timer(); |
61 | 63 | ||
@@ -88,7 +90,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
88 | protected SceneCommunicationService m_sceneGridService; | 90 | protected SceneCommunicationService m_sceneGridService; |
89 | protected SceneXmlLoader m_sceneXmlLoader; | 91 | protected SceneXmlLoader m_sceneXmlLoader; |
90 | 92 | ||
91 | protected Dictionary<LLUUID, OpenSim.Region.Capabilities.Caps> m_capsHandlers = new Dictionary<LLUUID, OpenSim.Region.Capabilities.Caps>(); | 93 | protected Dictionary<LLUUID, Caps> m_capsHandlers = new Dictionary<LLUUID, Caps>(); |
92 | protected BaseHttpServer httpListener; | 94 | protected BaseHttpServer httpListener; |
93 | 95 | ||
94 | protected Dictionary<string, IRegionModule> Modules = new Dictionary<string, IRegionModule>(); | 96 | protected Dictionary<string, IRegionModule> Modules = new Dictionary<string, IRegionModule>(); |
@@ -122,6 +124,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
122 | private int m_update_terrain = 50; | 124 | private int m_update_terrain = 50; |
123 | private int m_update_land = 1; | 125 | private int m_update_land = 1; |
124 | private int m_update_avatars = 1; | 126 | private int m_update_avatars = 1; |
127 | |||
125 | #endregion | 128 | #endregion |
126 | 129 | ||
127 | #region Properties | 130 | #region Properties |
@@ -145,6 +148,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
145 | set { m_innerScene.PhysicsScene = value; } | 148 | set { m_innerScene.PhysicsScene = value; } |
146 | get { return (m_innerScene.PhysicsScene); } | 149 | get { return (m_innerScene.PhysicsScene); } |
147 | } | 150 | } |
151 | |||
148 | // This gets locked so things stay thread safe. | 152 | // This gets locked so things stay thread safe. |
149 | public object SyncRoot | 153 | public object SyncRoot |
150 | { | 154 | { |
@@ -204,7 +208,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
204 | 208 | ||
205 | #region Constructors | 209 | #region Constructors |
206 | 210 | ||
207 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, PermissionManager permissionManager, CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | 211 | public Scene(RegionInfo regInfo, AgentCircuitManager authen, PermissionManager permissionManager, |
212 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | ||
208 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, | 213 | AssetCache assetCach, StorageManager storeManager, BaseHttpServer httpServer, |
209 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, bool SendTasksToChild) | 214 | ModuleLoader moduleLoader, bool dumpAssetsToFile, bool physicalPrim, bool SendTasksToChild) |
210 | { | 215 | { |
@@ -230,9 +235,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
230 | m_LandManager = new LandManager(this, m_regInfo); | 235 | m_LandManager = new LandManager(this, m_regInfo); |
231 | 236 | ||
232 | //Bind Storage Manager functions to some land manager functions for this scene | 237 | //Bind Storage Manager functions to some land manager functions for this scene |
233 | EventManager.OnLandObjectAdded += new EventManager.LandObjectAdded(m_storageManager.DataStore.StoreLandObject); | 238 | EventManager.OnLandObjectAdded += |
234 | EventManager.OnLandObjectRemoved += new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject); | 239 | new EventManager.LandObjectAdded(m_storageManager.DataStore.StoreLandObject); |
235 | 240 | EventManager.OnLandObjectRemoved += | |
241 | new EventManager.LandObjectRemoved(m_storageManager.DataStore.RemoveLandObject); | ||
242 | |||
236 | m_estateManager = new EstateManager(this, m_regInfo); | 243 | m_estateManager = new EstateManager(this, m_regInfo); |
237 | 244 | ||
238 | m_permissionManager = permissionManager; | 245 | m_permissionManager = permissionManager; |
@@ -258,7 +265,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
258 | m_sceneObjects = new Dictionary<LLUUID, SceneObjectGroup>(); | 265 | m_sceneObjects = new Dictionary<LLUUID, SceneObjectGroup>(); |
259 | 266 | ||
260 | MainLog.Instance.Verbose("SCENE", "Creating LandMap"); | 267 | MainLog.Instance.Verbose("SCENE", "Creating LandMap"); |
261 | Terrain = new TerrainEngine((int)RegionInfo.RegionLocX, (int)RegionInfo.RegionLocY); | 268 | Terrain = new TerrainEngine((int) RegionInfo.RegionLocX, (int) RegionInfo.RegionLocY); |
262 | 269 | ||
263 | ScenePresence.LoadAnims(); | 270 | ScenePresence.LoadAnims(); |
264 | 271 | ||
@@ -276,7 +283,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
276 | protected virtual void RegisterDefaultSceneEvents() | 283 | protected virtual void RegisterDefaultSceneEvents() |
277 | { | 284 | { |
278 | m_eventManager.OnParcelPrimCountAdd += m_LandManager.addPrimToLandPrimCounts; | 285 | m_eventManager.OnParcelPrimCountAdd += m_LandManager.addPrimToLandPrimCounts; |
279 | m_eventManager.OnParcelPrimCountUpdate += this.addPrimsToParcelCounts; | 286 | m_eventManager.OnParcelPrimCountUpdate += addPrimsToParcelCounts; |
280 | m_eventManager.OnPermissionError += SendPermissionAlert; | 287 | m_eventManager.OnPermissionError += SendPermissionAlert; |
281 | } | 288 | } |
282 | 289 | ||
@@ -295,68 +302,65 @@ namespace OpenSim.Region.Environment.Scenes | |||
295 | 302 | ||
296 | if (RegionInfo.RegionHandle != otherRegion.RegionHandle) | 303 | if (RegionInfo.RegionHandle != otherRegion.RegionHandle) |
297 | { | 304 | { |
298 | for (int i = 0; i < m_neighbours.Count; i++) | 305 | for (int i = 0; i < m_neighbours.Count; i++) |
306 | { | ||
307 | // The purpose of this loop is to re-update the known neighbors | ||
308 | // when another region comes up on top of another one. | ||
309 | // The latest region in that location ends up in the | ||
310 | // 'known neighbors list' | ||
311 | // Additionally, the commFailTF property gets reset to false. | ||
312 | if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle) | ||
299 | { | 313 | { |
300 | // The purpose of this loop is to re-update the known neighbors | 314 | lock (m_neighbours) |
301 | // when another region comes up on top of another one. | ||
302 | // The latest region in that location ends up in the | ||
303 | // 'known neighbors list' | ||
304 | // Additionally, the commFailTF property gets reset to false. | ||
305 | if (m_neighbours[i].RegionHandle == otherRegion.RegionHandle) | ||
306 | { | 315 | { |
307 | lock (m_neighbours) | 316 | m_neighbours[i] = otherRegion; |
308 | { | ||
309 | m_neighbours[i] = otherRegion; | ||
310 | } | ||
311 | } | 317 | } |
312 | } | 318 | } |
319 | } | ||
313 | 320 | ||
314 | // If the value isn't in the neighbours, add it. | 321 | // If the value isn't in the neighbours, add it. |
315 | // If the RegionInfo isn't exact but is for the same XY World location, | 322 | // If the RegionInfo isn't exact but is for the same XY World location, |
316 | // then the above loop will fix that. | 323 | // then the above loop will fix that. |
317 | 324 | ||
318 | if (!(m_neighbours.Contains(otherRegion))) | 325 | if (!(m_neighbours.Contains(otherRegion))) |
326 | { | ||
327 | lock (m_neighbours) | ||
319 | { | 328 | { |
320 | lock (m_neighbours) | 329 | m_neighbours.Add(otherRegion); |
321 | { | ||
322 | m_neighbours.Add(otherRegion); | ||
323 | } | ||
324 | } | 330 | } |
325 | if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) | 331 | } |
332 | if ((Math.Abs(otherRegion.RegionLocX - RegionInfo.RegionLocX) <= 1) && | ||
333 | (Math.Abs(otherRegion.RegionLocY - RegionInfo.RegionLocY) <= 1)) | ||
326 | { | 334 | { |
327 | try | 335 | try |
328 | { | 336 | { |
329 | |||
330 | ForEachScenePresence(delegate(ScenePresence agent) | 337 | ForEachScenePresence(delegate(ScenePresence agent) |
331 | { | 338 | { |
332 | // If agent is a root agent. | 339 | // If agent is a root agent. |
333 | if (!agent.IsChildAgent) | 340 | if (!agent.IsChildAgent) |
334 | { | 341 | { |
335 | 342 | //agent.ControllingClient.new | |
336 | //agent.ControllingClient.new | 343 | //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); |
337 | //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); | 344 | InformClientOfNeighbor(agent, otherRegion); |
338 | InformClientOfNeighbor(agent, otherRegion); | 345 | } |
339 | } | 346 | } |
340 | } | 347 | ); |
341 | |||
342 | ); | ||
343 | } | 348 | } |
344 | catch (System.NullReferenceException) | 349 | catch (NullReferenceException) |
345 | { | 350 | { |
346 | // This means that we're not booted up completely yet. | 351 | // This means that we're not booted up completely yet. |
347 | // This shouldn't happen too often anymore. | 352 | // This shouldn't happen too often anymore. |
348 | MainLog.Instance.Error("SCENE", "Couldn't inform client of regionup because we got a null reference exception"); | 353 | MainLog.Instance.Error("SCENE", |
354 | "Couldn't inform client of regionup because we got a null reference exception"); | ||
349 | } | 355 | } |
350 | } | 356 | } |
351 | else | 357 | else |
352 | { | 358 | { |
353 | MainLog.Instance.Verbose("INTERGRID", "Got notice about far away Region: " + otherRegion.RegionName.ToString() + | 359 | MainLog.Instance.Verbose("INTERGRID", |
354 | " at (" + otherRegion.RegionLocX.ToString() + ", " + otherRegion.RegionLocY.ToString() + ")" ); | 360 | "Got notice about far away Region: " + otherRegion.RegionName.ToString() + |
361 | " at (" + otherRegion.RegionLocX.ToString() + ", " + | ||
362 | otherRegion.RegionLocY.ToString() + ")"); | ||
355 | } | 363 | } |
356 | |||
357 | |||
358 | |||
359 | |||
360 | } | 364 | } |
361 | return true; | 365 | return true; |
362 | } | 366 | } |
@@ -379,11 +383,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
379 | { | 383 | { |
380 | // Now we figure out what to set the timer to that does the notifications and calls, RestartNow() | 384 | // Now we figure out what to set the timer to that does the notifications and calls, RestartNow() |
381 | m_restartTimer.Interval = 15000; | 385 | m_restartTimer.Interval = 15000; |
382 | m_incrementsof15seconds = (int)seconds / 15; | 386 | m_incrementsof15seconds = (int) seconds/15; |
383 | m_RestartTimerCounter = 0; | 387 | m_RestartTimerCounter = 0; |
384 | m_restartTimer.AutoReset = true; | 388 | m_restartTimer.AutoReset = true; |
385 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); | 389 | m_restartTimer.Elapsed += new ElapsedEventHandler(RestartTimer_Elapsed); |
386 | MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds / 60) + " minutes"); | 390 | MainLog.Instance.Error("REGION", "Restarting Region in " + (seconds/60) + " minutes"); |
387 | m_restartTimer.Start(); | 391 | m_restartTimer.Start(); |
388 | SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes"); | 392 | SendGeneralAlert(RegionInfo.RegionName + ": Restarting in 2 Minutes"); |
389 | } | 393 | } |
@@ -399,7 +403,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
399 | if (m_RestartTimerCounter <= m_incrementsof15seconds) | 403 | if (m_RestartTimerCounter <= m_incrementsof15seconds) |
400 | { | 404 | { |
401 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) | 405 | if (m_RestartTimerCounter == 4 || m_RestartTimerCounter == 6 || m_RestartTimerCounter == 7) |
402 | SendGeneralAlert(RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter) * 15) + " seconds"); | 406 | SendGeneralAlert(RegionInfo.RegionName + ": Restarting in " + ((8 - m_RestartTimerCounter)*15) + |
407 | " seconds"); | ||
403 | } | 408 | } |
404 | else | 409 | else |
405 | { | 410 | { |
@@ -432,21 +437,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
432 | { | 437 | { |
433 | try | 438 | try |
434 | { | 439 | { |
435 | |||
436 | ForEachScenePresence(delegate(ScenePresence agent) | 440 | ForEachScenePresence(delegate(ScenePresence agent) |
437 | { | 441 | { |
438 | // If agent is a root agent. | 442 | // If agent is a root agent. |
439 | if (!agent.IsChildAgent) | 443 | if (!agent.IsChildAgent) |
440 | { | 444 | { |
441 | //agent.ControllingClient.new | 445 | //agent.ControllingClient.new |
442 | //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); | 446 | //this.CommsManager.InterRegion.InformRegionOfChildAgent(otherRegion.RegionHandle, agent.ControllingClient.RequestClientInfo()); |
443 | InformClientOfNeighbor(agent, region); | 447 | InformClientOfNeighbor(agent, region); |
444 | } | 448 | } |
445 | } | 449 | } |
446 | 450 | ); | |
447 | ); | ||
448 | } | 451 | } |
449 | catch (System.NullReferenceException) | 452 | catch (NullReferenceException) |
450 | { | 453 | { |
451 | // This means that we're not booted up completely yet. | 454 | // This means that we're not booted up completely yet. |
452 | // This shouldn't happen too often anymore. | 455 | // This shouldn't happen too often anymore. |
@@ -464,24 +467,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
464 | MainLog.Instance.Warn("SCENE", "Closing down the single simulator: " + RegionInfo.RegionName); | 467 | MainLog.Instance.Warn("SCENE", "Closing down the single simulator: " + RegionInfo.RegionName); |
465 | // Kick all ROOT agents with the message, 'The simulator is going down' | 468 | // Kick all ROOT agents with the message, 'The simulator is going down' |
466 | ForEachScenePresence(delegate(ScenePresence avatar) | 469 | ForEachScenePresence(delegate(ScenePresence avatar) |
467 | { | 470 | { |
468 | if (avatar.KnownChildRegions.Contains(RegionInfo.RegionHandle)) | 471 | if (avatar.KnownChildRegions.Contains(RegionInfo.RegionHandle)) |
469 | avatar.KnownChildRegions.Remove(RegionInfo.RegionHandle); | 472 | avatar.KnownChildRegions.Remove(RegionInfo.RegionHandle); |
470 | 473 | ||
471 | if (!avatar.IsChildAgent) | 474 | if (!avatar.IsChildAgent) |
472 | avatar.ControllingClient.Kick("The simulator is going down."); | 475 | avatar.ControllingClient.Kick("The simulator is going down."); |
473 | 476 | ||
474 | avatar.ControllingClient.OutPacket(new libsecondlife.Packets.DisableSimulatorPacket(), ThrottleOutPacketType.Task); | 477 | avatar.ControllingClient.OutPacket(new DisableSimulatorPacket(), |
475 | }); | 478 | ThrottleOutPacketType.Task); |
479 | }); | ||
476 | 480 | ||
477 | // Wait here, or the kick messages won't actually get to the agents before the scene terminates. | 481 | // Wait here, or the kick messages won't actually get to the agents before the scene terminates. |
478 | Thread.Sleep(500); | 482 | Thread.Sleep(500); |
479 | 483 | ||
480 | // Stop all client threads. | 484 | // Stop all client threads. |
481 | ForEachScenePresence(delegate(ScenePresence avatar) | 485 | ForEachScenePresence(delegate(ScenePresence avatar) { avatar.ControllingClient.Close(true); }); |
482 | { | ||
483 | avatar.ControllingClient.Close(true); | ||
484 | }); | ||
485 | // Stop updating the scene objects and agents. | 486 | // Stop updating the scene objects and agents. |
486 | m_heartbeatTimer.Close(); | 487 | m_heartbeatTimer.Close(); |
487 | // close the inner scene | 488 | // close the inner scene |
@@ -509,7 +510,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
509 | public void StartTimer() | 510 | public void StartTimer() |
510 | { | 511 | { |
511 | m_heartbeatTimer.Enabled = true; | 512 | m_heartbeatTimer.Enabled = true; |
512 | m_heartbeatTimer.Interval = (int)(m_timespan * 1000); | 513 | m_heartbeatTimer.Interval = (int) (m_timespan*1000); |
513 | m_heartbeatTimer.Elapsed += new ElapsedEventHandler(Heartbeat); | 514 | m_heartbeatTimer.Elapsed += new ElapsedEventHandler(Heartbeat); |
514 | } | 515 | } |
515 | 516 | ||
@@ -555,30 +556,30 @@ namespace OpenSim.Region.Environment.Scenes | |||
555 | if (m_frame == Int32.MaxValue) | 556 | if (m_frame == Int32.MaxValue) |
556 | m_frame = 0; | 557 | m_frame = 0; |
557 | 558 | ||
558 | if (m_frame % m_update_physics == 0) | 559 | if (m_frame%m_update_physics == 0) |
559 | m_innerScene.UpdatePreparePhysics(); | 560 | m_innerScene.UpdatePreparePhysics(); |
560 | 561 | ||
561 | if (m_frame % m_update_entitymovement == 0) | 562 | if (m_frame%m_update_entitymovement == 0) |
562 | m_innerScene.UpdateEntityMovement(); | 563 | m_innerScene.UpdateEntityMovement(); |
563 | 564 | ||
564 | if (m_frame % m_update_physics == 0) | 565 | if (m_frame%m_update_physics == 0) |
565 | physicsFPS = m_innerScene.UpdatePhysics( | 566 | physicsFPS = m_innerScene.UpdatePhysics( |
566 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) | 567 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) |
567 | ); | 568 | ); |
568 | 569 | ||
569 | if (m_frame % m_update_entities == 0) | 570 | if (m_frame%m_update_entities == 0) |
570 | m_innerScene.UpdateEntities(); | 571 | m_innerScene.UpdateEntities(); |
571 | 572 | ||
572 | if (m_frame % m_update_events == 0) | 573 | if (m_frame%m_update_events == 0) |
573 | UpdateEvents(); | 574 | UpdateEvents(); |
574 | 575 | ||
575 | if (m_frame % m_update_backup == 0) | 576 | if (m_frame%m_update_backup == 0) |
576 | UpdateStorageBackup(); | 577 | UpdateStorageBackup(); |
577 | 578 | ||
578 | if (m_frame % m_update_terrain == 0) | 579 | if (m_frame%m_update_terrain == 0) |
579 | UpdateTerrain(); | 580 | UpdateTerrain(); |
580 | 581 | ||
581 | if (m_frame % m_update_land == 0) | 582 | if (m_frame%m_update_land == 0) |
582 | UpdateLand(); | 583 | UpdateLand(); |
583 | 584 | ||
584 | // if (m_frame%m_update_avatars == 0) | 585 | // if (m_frame%m_update_avatars == 0) |
@@ -592,7 +593,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
592 | m_statsReporter.SetChildAgents(m_innerScene.GetChildAgentCount()); | 593 | m_statsReporter.SetChildAgents(m_innerScene.GetChildAgentCount()); |
593 | m_statsReporter.SetObjects(m_innerScene.GetTotalObjects()); | 594 | m_statsReporter.SetObjects(m_innerScene.GetTotalObjects()); |
594 | m_statsReporter.SetActiveObjects(m_innerScene.GetActiveObjects()); | 595 | m_statsReporter.SetActiveObjects(m_innerScene.GetActiveObjects()); |
595 | |||
596 | } | 596 | } |
597 | catch (NotImplementedException) | 597 | catch (NotImplementedException) |
598 | { | 598 | { |
@@ -606,10 +606,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
606 | { | 606 | { |
607 | updateLock.ReleaseMutex(); | 607 | updateLock.ReleaseMutex(); |
608 | 608 | ||
609 | m_timedilation = m_timespan / (float)SinceLastFrame.TotalSeconds; | 609 | m_timedilation = m_timespan/(float) SinceLastFrame.TotalSeconds; |
610 | m_lastupdate = DateTime.Now; | 610 | m_lastupdate = DateTime.Now; |
611 | } | 611 | } |
612 | } | 612 | } |
613 | |||
613 | //Updates the time in the viewer. | 614 | //Updates the time in the viewer. |
614 | private void UpdateInWorldTime() | 615 | private void UpdateInWorldTime() |
615 | { | 616 | { |
@@ -631,7 +632,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
631 | } | 632 | } |
632 | } | 633 | } |
633 | 634 | ||
634 | private void SendSimStatsPackets(libsecondlife.Packets.SimStatsPacket pack) | 635 | private void SendSimStatsPackets(SimStatsPacket pack) |
635 | { | 636 | { |
636 | List<ScenePresence> StatSendAgents = GetScenePresences(); | 637 | List<ScenePresence> StatSendAgents = GetScenePresences(); |
637 | foreach (ScenePresence agent in StatSendAgents) | 638 | foreach (ScenePresence agent in StatSendAgents) |
@@ -639,11 +640,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
639 | if (!agent.IsChildAgent) | 640 | if (!agent.IsChildAgent) |
640 | { | 641 | { |
641 | agent.ControllingClient.OutPacket(pack, ThrottleOutPacketType.Task); | 642 | agent.ControllingClient.OutPacket(pack, ThrottleOutPacketType.Task); |
642 | |||
643 | } | 643 | } |
644 | } | 644 | } |
645 | |||
646 | } | 645 | } |
646 | |||
647 | private void UpdateLand() | 647 | private void UpdateLand() |
648 | { | 648 | { |
649 | if (m_LandManager.landPrimCountTainted) | 649 | if (m_LandManager.landPrimCountTainted) |
@@ -676,7 +676,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
676 | { | 676 | { |
677 | for (int y = 0; y < 16; y++) | 677 | for (int y = 0; y < 16; y++) |
678 | { | 678 | { |
679 | if (Terrain.Tainted(x * 16, y * 16)) | 679 | if (Terrain.Tainted(x*16, y*16)) |
680 | { | 680 | { |
681 | client.SendLayerData(x, y, terData); | 681 | client.SendLayerData(x, y, terData); |
682 | } | 682 | } |
@@ -724,13 +724,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
724 | 724 | ||
725 | public void ExportWorldMap(string fileName) | 725 | public void ExportWorldMap(string fileName) |
726 | { | 726 | { |
727 | List<MapBlockData> mapBlocks = this.CommsManager.GridService.RequestNeighbourMapBlocks((int)(this.RegionInfo.RegionLocX - 9), (int)(this.RegionInfo.RegionLocY - 9), (int)(this.RegionInfo.RegionLocX + 9), (int)(this.RegionInfo.RegionLocY + 9)); | 727 | List<MapBlockData> mapBlocks = |
728 | CommsManager.GridService.RequestNeighbourMapBlocks((int) (RegionInfo.RegionLocX - 9), | ||
729 | (int) (RegionInfo.RegionLocY - 9), | ||
730 | (int) (RegionInfo.RegionLocX + 9), | ||
731 | (int) (RegionInfo.RegionLocY + 9)); | ||
728 | List<AssetBase> textures = new List<AssetBase>(); | 732 | List<AssetBase> textures = new List<AssetBase>(); |
729 | List<System.Drawing.Image> bitImages = new List<System.Drawing.Image>(); | 733 | List<Image> bitImages = new List<Image>(); |
730 | 734 | ||
731 | foreach (MapBlockData mapBlock in mapBlocks) | 735 | foreach (MapBlockData mapBlock in mapBlocks) |
732 | { | 736 | { |
733 | AssetBase texAsset = this.AssetCache.GetAsset(mapBlock.MapImageId, true); | 737 | AssetBase texAsset = AssetCache.GetAsset(mapBlock.MapImageId, true); |
734 | 738 | ||
735 | if (texAsset != null) | 739 | if (texAsset != null) |
736 | { | 740 | { |
@@ -738,7 +742,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
738 | } | 742 | } |
739 | else | 743 | else |
740 | { | 744 | { |
741 | texAsset = this.AssetCache.GetAsset(mapBlock.MapImageId, true); | 745 | texAsset = AssetCache.GetAsset(mapBlock.MapImageId, true); |
742 | if (texAsset != null) | 746 | if (texAsset != null) |
743 | { | 747 | { |
744 | textures.Add(texAsset); | 748 | textures.Add(texAsset); |
@@ -748,22 +752,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
748 | 752 | ||
749 | foreach (AssetBase asset in textures) | 753 | foreach (AssetBase asset in textures) |
750 | { | 754 | { |
751 | System.Drawing.Image image = OpenJPEGNet.OpenJPEG.DecodeToImage(asset.Data); | 755 | Image image = OpenJPEG.DecodeToImage(asset.Data); |
752 | bitImages.Add(image); | 756 | bitImages.Add(image); |
753 | } | 757 | } |
754 | 758 | ||
755 | System.Drawing.Bitmap mapTexture = new System.Drawing.Bitmap(2560, 2560); | 759 | Bitmap mapTexture = new Bitmap(2560, 2560); |
756 | System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(mapTexture); | 760 | Graphics g = Graphics.FromImage(mapTexture); |
757 | System.Drawing.SolidBrush sea = new System.Drawing.SolidBrush(System.Drawing.Color.DarkBlue); | 761 | SolidBrush sea = new SolidBrush(Color.DarkBlue); |
758 | g.FillRectangle(sea, 0, 0, 2560, 2560); | 762 | g.FillRectangle(sea, 0, 0, 2560, 2560); |
759 | 763 | ||
760 | for (int i = 0; i < mapBlocks.Count; i++) | 764 | for (int i = 0; i < mapBlocks.Count; i++) |
761 | { | 765 | { |
762 | ushort x = (ushort)((mapBlocks[i].X - this.RegionInfo.RegionLocX) + 10); | 766 | ushort x = (ushort) ((mapBlocks[i].X - RegionInfo.RegionLocX) + 10); |
763 | ushort y = (ushort)((mapBlocks[i].Y - this.RegionInfo.RegionLocY) + 10); | 767 | ushort y = (ushort) ((mapBlocks[i].Y - RegionInfo.RegionLocY) + 10); |
764 | g.DrawImage(bitImages[i], (x * 128), (y * 128), 128, 128); | 768 | g.DrawImage(bitImages[i], (x*128), (y*128), 128, 128); |
765 | } | 769 | } |
766 | mapTexture.Save(fileName, System.Drawing.Imaging.ImageFormat.Jpeg); | 770 | mapTexture.Save(fileName, ImageFormat.Jpeg); |
767 | } | 771 | } |
768 | 772 | ||
769 | /// <summary> | 773 | /// <summary> |
@@ -861,7 +865,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
861 | public void loadAllLandObjectsFromStorage() | 865 | public void loadAllLandObjectsFromStorage() |
862 | { | 866 | { |
863 | MainLog.Instance.Verbose("SCENE", "Loading land objects from storage"); | 867 | MainLog.Instance.Verbose("SCENE", "Loading land objects from storage"); |
864 | List<Framework.LandData> landData = m_storageManager.DataStore.LoadLandObjects(RegionInfo.RegionID); | 868 | List<LandData> landData = m_storageManager.DataStore.LoadLandObjects(RegionInfo.RegionID); |
865 | if (landData.Count == 0) | 869 | if (landData.Count == 0) |
866 | { | 870 | { |
867 | m_LandManager.NoLandDataFromStorage(); | 871 | m_LandManager.NoLandDataFromStorage(); |
@@ -871,7 +875,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
871 | m_LandManager.IncomingLandObjectsFromStorage(landData); | 875 | m_LandManager.IncomingLandObjectsFromStorage(landData); |
872 | } | 876 | } |
873 | } | 877 | } |
874 | 878 | ||
875 | #endregion | 879 | #endregion |
876 | 880 | ||
877 | #region Primitives Methods | 881 | #region Primitives Methods |
@@ -889,8 +893,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
889 | SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); | 893 | SceneObjectPart rootPart = prim.GetChildPart(prim.UUID); |
890 | rootPart.ApplySanePermissions(); | 894 | rootPart.ApplySanePermissions(); |
891 | 895 | ||
892 | bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); | 896 | bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); |
893 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 897 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
894 | rootPart.PhysActor = PhysicsScene.AddPrimShape( | 898 | rootPart.PhysActor = PhysicsScene.AddPrimShape( |
895 | rootPart.Name, | 899 | rootPart.Name, |
896 | rootPart.Shape, | 900 | rootPart.Shape, |
@@ -931,9 +935,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
931 | 935 | ||
932 | if (PermissionsMngr.CanRezObject(ownerID, pos)) | 936 | if (PermissionsMngr.CanRezObject(ownerID, pos)) |
933 | { | 937 | { |
934 | |||
935 | EntityIntersection rayTracing = null; | 938 | EntityIntersection rayTracing = null; |
936 | ScenePresence presence = ((ScenePresence)GetScenePresence(ownerID)); | 939 | ScenePresence presence = ((ScenePresence) GetScenePresence(ownerID)); |
937 | if (presence != null) | 940 | if (presence != null) |
938 | { | 941 | { |
939 | Vector3 CameraPosition = presence.CameraPosition; | 942 | Vector3 CameraPosition = presence.CameraPosition; |
@@ -941,14 +944,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
941 | 944 | ||
942 | float raydistance = m_innerScene.Vector3Distance(CameraPosition, rayEnd); | 945 | float raydistance = m_innerScene.Vector3Distance(CameraPosition, rayEnd); |
943 | 946 | ||
944 | Vector3 rayDirection = new Vector3(rayEnd.x / raydistance, rayEnd.y / raydistance, rayEnd.z / raydistance); | 947 | Vector3 rayDirection = new Vector3(rayEnd.x/raydistance, rayEnd.y/raydistance, rayEnd.z/raydistance); |
945 | 948 | ||
946 | Ray rezRay = new Ray(CameraPosition, rayDirection); | 949 | Ray rezRay = new Ray(CameraPosition, rayDirection); |
947 | 950 | ||
948 | Vector3 RezDirectionFromCamera = rezRay.Direction; | 951 | Vector3 RezDirectionFromCamera = rezRay.Direction; |
949 | 952 | ||
950 | rayTracing = m_innerScene.GetClosestIntersectingPrim(rezRay); | 953 | rayTracing = m_innerScene.GetClosestIntersectingPrim(rezRay); |
951 | |||
952 | } | 954 | } |
953 | 955 | ||
954 | if ((rayTracing != null) && (rayTracing.HitTF)) | 956 | if ((rayTracing != null) && (rayTracing.HitTF)) |
@@ -957,7 +959,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
957 | // We will rez the object somewhere close to the prim. Better math needed. This is a Stub | 959 | // We will rez the object somewhere close to the prim. Better math needed. This is a Stub |
958 | //Vector3 Newpos = new Vector3(rayTracing.obj.AbsolutePosition.X,rayTracing.obj.AbsolutePosition.Y,rayTracing.obj.AbsolutePosition.Z); | 960 | //Vector3 Newpos = new Vector3(rayTracing.obj.AbsolutePosition.X,rayTracing.obj.AbsolutePosition.Y,rayTracing.obj.AbsolutePosition.Z); |
959 | Vector3 Newpos = rayTracing.ipoint; | 961 | Vector3 Newpos = rayTracing.ipoint; |
960 | Vector3 NewScale = new Vector3(rayTracing.obj.Scale.X, rayTracing.obj.Scale.Y, rayTracing.obj.Scale.Z); | 962 | Vector3 NewScale = |
963 | new Vector3(rayTracing.obj.Scale.X, rayTracing.obj.Scale.Y, rayTracing.obj.Scale.Z); | ||
961 | 964 | ||
962 | Quaternion ParentRot = rayTracing.obj.ParentGroup.Rotation; | 965 | Quaternion ParentRot = rayTracing.obj.ParentGroup.Rotation; |
963 | //Quaternion ParentRot = new Quaternion(primParentRot.W,primParentRot.X,primParentRot.Y,primParentRot.Z); | 966 | //Quaternion ParentRot = new Quaternion(primParentRot.W,primParentRot.X,primParentRot.Y,primParentRot.Z); |
@@ -965,7 +968,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
965 | LLQuaternion primLocalRot = rayTracing.obj.RotationOffset; | 968 | LLQuaternion primLocalRot = rayTracing.obj.RotationOffset; |
966 | Quaternion LocalRot = new Quaternion(primLocalRot.W, primLocalRot.X, primLocalRot.Y, primLocalRot.Z); | 969 | Quaternion LocalRot = new Quaternion(primLocalRot.W, primLocalRot.X, primLocalRot.Y, primLocalRot.Z); |
967 | 970 | ||
968 | Quaternion NewRot = LocalRot * ParentRot; | 971 | Quaternion NewRot = LocalRot*ParentRot; |
969 | 972 | ||
970 | Vector3 RezPoint = Newpos; | 973 | Vector3 RezPoint = Newpos; |
971 | 974 | ||
@@ -990,8 +993,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
990 | //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom; | 993 | //rootPart.ObjectFlags += (uint)LLObject.ObjectFlags.Phantom; |
991 | } | 994 | } |
992 | // if not phantom, add to physics | 995 | // if not phantom, add to physics |
993 | bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); | 996 | bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && m_physicalPrim); |
994 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 997 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
995 | { | 998 | { |
996 | rootPart.PhysActor = | 999 | rootPart.PhysActor = |
997 | PhysicsScene.AddPrimShape( | 1000 | PhysicsScene.AddPrimShape( |
@@ -1007,14 +1010,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1007 | } | 1010 | } |
1008 | 1011 | ||
1009 | public void AddTree(LLVector3 scale, LLQuaternion rotation, LLVector3 position, | 1012 | public void AddTree(LLVector3 scale, LLQuaternion rotation, LLVector3 position, |
1010 | Tree treeType, bool newTree) | 1013 | Tree treeType, bool newTree) |
1011 | { | 1014 | { |
1012 | PrimitiveBaseShape treeShape = new PrimitiveBaseShape(); | 1015 | PrimitiveBaseShape treeShape = new PrimitiveBaseShape(); |
1013 | treeShape.PathCurve = 16; | 1016 | treeShape.PathCurve = 16; |
1014 | treeShape.PathEnd = 49900; | 1017 | treeShape.PathEnd = 49900; |
1015 | treeShape.PCode = newTree ? (byte)PCode.NewTree : (byte)PCode.Tree; | 1018 | treeShape.PCode = newTree ? (byte) PCode.NewTree : (byte) PCode.Tree; |
1016 | treeShape.Scale = scale; | 1019 | treeShape.Scale = scale; |
1017 | treeShape.State = (byte)treeType; | 1020 | treeShape.State = (byte) treeType; |
1018 | AddNewPrim(LLUUID.Random(), position, rotation, treeShape); | 1021 | AddNewPrim(LLUUID.Random(), position, rotation, treeShape); |
1019 | } | 1022 | } |
1020 | 1023 | ||
@@ -1135,7 +1138,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1135 | client.OnParcelObjectOwnerRequest += | 1138 | client.OnParcelObjectOwnerRequest += |
1136 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); | 1139 | new ParcelObjectOwnerRequest(m_LandManager.handleParcelObjectOwnersRequest); |
1137 | client.OnParcelAccessListRequest += new ParcelAccessListRequest(m_LandManager.handleParcelAccessRequest); | 1140 | client.OnParcelAccessListRequest += new ParcelAccessListRequest(m_LandManager.handleParcelAccessRequest); |
1138 | client.OnParcelAccessListUpdateRequest += new ParcelAccessListUpdateRequest(m_LandManager.handleParcelAccessUpdateRequest); | 1141 | client.OnParcelAccessListUpdateRequest += |
1142 | new ParcelAccessListUpdateRequest(m_LandManager.handleParcelAccessUpdateRequest); | ||
1139 | 1143 | ||
1140 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); | 1144 | client.OnEstateOwnerMessage += new EstateOwnerMessageRequest(m_estateManager.handleEstateOwnerMessage); |
1141 | client.OnRegionInfoRequest += m_estateManager.HandleRegionInfoRequest; | 1145 | client.OnRegionInfoRequest += m_estateManager.HandleRegionInfoRequest; |
@@ -1157,8 +1161,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1157 | client.OnAssetUploadRequest += CommsManager.TransactionsManager.HandleUDPUploadRequest; | 1161 | client.OnAssetUploadRequest += CommsManager.TransactionsManager.HandleUDPUploadRequest; |
1158 | client.OnXferReceive += CommsManager.TransactionsManager.HandleXfer; | 1162 | client.OnXferReceive += CommsManager.TransactionsManager.HandleXfer; |
1159 | client.OnRezScript += RezScript; | 1163 | client.OnRezScript += RezScript; |
1160 | 1164 | ||
1161 | client.OnRequestTaskInventory += RequestTaskInventory; | 1165 | client.OnRequestTaskInventory += RequestTaskInventory; |
1162 | client.OnRemoveTaskItem += RemoveTaskInventory; | 1166 | client.OnRemoveTaskItem += RemoveTaskInventory; |
1163 | client.OnUpdateTaskInventory += UpdateTaskInventory; | 1167 | client.OnUpdateTaskInventory += UpdateTaskInventory; |
1164 | 1168 | ||
@@ -1216,23 +1220,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
1216 | m_innerScene.removeUserCount(true); | 1220 | m_innerScene.removeUserCount(true); |
1217 | } | 1221 | } |
1218 | } | 1222 | } |
1219 | catch (System.NullReferenceException) | 1223 | catch (NullReferenceException) |
1220 | { | 1224 | { |
1221 | // We don't know which count to remove it from | 1225 | // We don't know which count to remove it from |
1222 | // Avatar is already disposed :/ | 1226 | // Avatar is already disposed :/ |
1223 | } | 1227 | } |
1224 | m_eventManager.TriggerOnRemovePresence(agentID); | 1228 | m_eventManager.TriggerOnRemovePresence(agentID); |
1225 | Broadcast(delegate(IClientAPI client) | 1229 | Broadcast(delegate(IClientAPI client) |
1226 | { | ||
1227 | try | ||
1228 | { | ||
1229 | client.SendKillObject(avatar.RegionHandle, avatar.LocalId); | ||
1230 | } | ||
1231 | catch (System.NullReferenceException) | ||
1232 | { | 1230 | { |
1233 | //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. | 1231 | try |
1234 | } | 1232 | { |
1235 | }); | 1233 | client.SendKillObject(avatar.RegionHandle, avatar.LocalId); |
1234 | } | ||
1235 | catch (NullReferenceException) | ||
1236 | { | ||
1237 | //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. | ||
1238 | } | ||
1239 | }); | ||
1236 | 1240 | ||
1237 | ForEachScenePresence( | 1241 | ForEachScenePresence( |
1238 | delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); | 1242 | delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); |
@@ -1251,7 +1255,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1251 | { | 1255 | { |
1252 | avatar.Close(); | 1256 | avatar.Close(); |
1253 | } | 1257 | } |
1254 | catch (System.NullReferenceException) | 1258 | catch (NullReferenceException) |
1255 | { | 1259 | { |
1256 | //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. | 1260 | //We can safely ignore null reference exceptions. It means the avatar are dead and cleaned up anyway. |
1257 | } | 1261 | } |
@@ -1263,19 +1267,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
1263 | // Remove client agent from profile, so new logins will work | 1267 | // Remove client agent from profile, so new logins will work |
1264 | CommsManager.UserService.clearUserAgent(agentID); | 1268 | CommsManager.UserService.clearUserAgent(agentID); |
1265 | } | 1269 | } |
1266 | public override void CloseAllAgents(uint circuitcode) | 1270 | |
1271 | public override void CloseAllAgents(uint circuitcode) | ||
1267 | { | 1272 | { |
1268 | // Called by ClientView to kill all circuit codes | 1273 | // Called by ClientView to kill all circuit codes |
1269 | ClientManager.CloseAllAgents(circuitcode); | 1274 | ClientManager.CloseAllAgents(circuitcode); |
1270 | |||
1271 | } | 1275 | } |
1276 | |||
1272 | public void NotifyMyCoarseLocationChange() | 1277 | public void NotifyMyCoarseLocationChange() |
1273 | { | 1278 | { |
1274 | ForEachScenePresence(delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); | 1279 | ForEachScenePresence(delegate(ScenePresence presence) { presence.CoarseLocationChange(); }); |
1275 | } | 1280 | } |
1281 | |||
1276 | #endregion | 1282 | #endregion |
1277 | 1283 | ||
1278 | #region Entities | 1284 | #region Entities |
1285 | |||
1279 | /// <summary> | 1286 | /// <summary> |
1280 | /// | 1287 | /// |
1281 | /// </summary> | 1288 | /// </summary> |
@@ -1312,7 +1319,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1312 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; | 1319 | m_sceneGridService.OnCloseAgentConnection += CloseConnection; |
1313 | m_sceneGridService.OnRegionUp += OtherRegionUp; | 1320 | m_sceneGridService.OnRegionUp += OtherRegionUp; |
1314 | m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; | 1321 | m_sceneGridService.OnChildAgentUpdate += IncomingChildAgentDataUpdate; |
1315 | 1322 | ||
1316 | 1323 | ||
1317 | m_sceneGridService.KillObject = SendKillObject; | 1324 | m_sceneGridService.KillObject = SendKillObject; |
1318 | } | 1325 | } |
@@ -1321,17 +1328,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1321 | /// | 1328 | /// |
1322 | /// </summary> | 1329 | /// </summary> |
1323 | public void UnRegisterReginWithComms() | 1330 | public void UnRegisterReginWithComms() |
1324 | { | 1331 | { |
1325 | |||
1326 | m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; | 1332 | m_sceneGridService.OnChildAgentUpdate -= IncomingChildAgentDataUpdate; |
1327 | m_sceneGridService.OnRegionUp -= OtherRegionUp; | 1333 | m_sceneGridService.OnRegionUp -= OtherRegionUp; |
1328 | m_sceneGridService.OnExpectUser -= NewUserConnection; | 1334 | m_sceneGridService.OnExpectUser -= NewUserConnection; |
1329 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; | 1335 | m_sceneGridService.OnAvatarCrossingIntoRegion -= AgentCrossing; |
1330 | m_sceneGridService.OnCloseAgentConnection -= CloseConnection; | 1336 | m_sceneGridService.OnCloseAgentConnection -= CloseConnection; |
1331 | 1337 | ||
1332 | m_sceneGridService.Close(); | 1338 | m_sceneGridService.Close(); |
1333 | } | 1339 | } |
1334 | 1340 | ||
1335 | 1341 | ||
1336 | /// <summary> | 1342 | /// <summary> |
1337 | /// | 1343 | /// |
@@ -1344,18 +1350,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
1344 | { | 1350 | { |
1345 | if (agent.CapsPath != "") | 1351 | if (agent.CapsPath != "") |
1346 | { | 1352 | { |
1347 | OpenSim.Region.Capabilities.Caps cap = | 1353 | Caps cap = |
1348 | new OpenSim.Region.Capabilities.Caps(AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port, | 1354 | new Caps(AssetCache, httpListener, m_regInfo.ExternalHostName, httpListener.Port, |
1349 | agent.CapsPath, agent.AgentID, m_dumpAssetsToFile); | 1355 | agent.CapsPath, agent.AgentID, m_dumpAssetsToFile); |
1350 | 1356 | ||
1351 | Util.SetCapsURL(agent.AgentID, "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + | 1357 | Util.SetCapsURL(agent.AgentID, |
1352 | "/CAPS/" + agent.CapsPath + "0000/"); | 1358 | "http://" + m_regInfo.ExternalHostName + ":" + httpListener.Port.ToString() + |
1359 | "/CAPS/" + agent.CapsPath + "0000/"); | ||
1353 | cap.RegisterHandlers(); | 1360 | cap.RegisterHandlers(); |
1354 | 1361 | ||
1355 | cap.AddNewInventoryItem = AddInventoryItem; | 1362 | cap.AddNewInventoryItem = AddInventoryItem; |
1356 | cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset; | 1363 | cap.ItemUpdatedCall = CapsUpdateInventoryItemAsset; |
1357 | cap.TaskScriptUpdatedCall = CapsUpdateTaskInventoryScriptAsset; | 1364 | cap.TaskScriptUpdatedCall = CapsUpdateTaskInventoryScriptAsset; |
1358 | 1365 | ||
1359 | if (m_capsHandlers.ContainsKey(agent.AgentID)) | 1366 | if (m_capsHandlers.ContainsKey(agent.AgentID)) |
1360 | { | 1367 | { |
1361 | //MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + | 1368 | //MainLog.Instance.Warn("client", "Adding duplicate CAPS entry for user " + |
@@ -1364,7 +1371,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1364 | { | 1371 | { |
1365 | m_capsHandlers[agent.AgentID] = cap; | 1372 | m_capsHandlers[agent.AgentID] = cap; |
1366 | } | 1373 | } |
1367 | catch (System.Collections.Generic.KeyNotFoundException) | 1374 | catch (KeyNotFoundException) |
1368 | { | 1375 | { |
1369 | // Fix for a potential race condition. | 1376 | // Fix for a potential race condition. |
1370 | m_capsHandlers.Add(agent.AgentID, cap); | 1377 | m_capsHandlers.Add(agent.AgentID, cap); |
@@ -1396,10 +1403,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1396 | { | 1403 | { |
1397 | m_scenePresences[agentID].MakeRootAgent(position, isFlying); | 1404 | m_scenePresences[agentID].MakeRootAgent(position, isFlying); |
1398 | } | 1405 | } |
1399 | catch (System.Exception e) | 1406 | catch (Exception e) |
1400 | { | 1407 | { |
1401 | MainLog.Instance.Verbose("SCENE", "Unable to do Agent Crossing."); | 1408 | MainLog.Instance.Verbose("SCENE", "Unable to do Agent Crossing."); |
1402 | MainLog.Instance.Debug("SCENE",e.ToString()); | 1409 | MainLog.Instance.Debug("SCENE", e.ToString()); |
1403 | } | 1410 | } |
1404 | //m_innerScene.SwapRootChildAgent(false); | 1411 | //m_innerScene.SwapRootChildAgent(false); |
1405 | } | 1412 | } |
@@ -1419,11 +1426,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
1419 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); | 1426 | childAgentUpdate.ChildAgentDataUpdate(cAgentData); |
1420 | // Not Implemented: | 1427 | // Not Implemented: |
1421 | //TODO: Do we need to pass the message on to one of our neighbors? | 1428 | //TODO: Do we need to pass the message on to one of our neighbors? |
1422 | |||
1423 | } | 1429 | } |
1424 | } | 1430 | } |
1425 | return true; | 1431 | return true; |
1426 | } | 1432 | } |
1433 | |||
1427 | /// <summary> | 1434 | /// <summary> |
1428 | /// Tell a single agent to disconnect from the region. | 1435 | /// Tell a single agent to disconnect from the region. |
1429 | /// </summary> | 1436 | /// </summary> |
@@ -1445,7 +1452,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1445 | m_innerScene.removeUserCount(true); | 1452 | m_innerScene.removeUserCount(true); |
1446 | } | 1453 | } |
1447 | // Tell a single agent to disconnect from the region. | 1454 | // Tell a single agent to disconnect from the region. |
1448 | libsecondlife.Packets.DisableSimulatorPacket disable = new libsecondlife.Packets.DisableSimulatorPacket(); | 1455 | DisableSimulatorPacket disable = new DisableSimulatorPacket(); |
1449 | presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task); | 1456 | presence.ControllingClient.OutPacket(disable, ThrottleOutPacketType.Task); |
1450 | } | 1457 | } |
1451 | } | 1458 | } |
@@ -1511,7 +1518,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1511 | { | 1518 | { |
1512 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) | 1519 | if (m_scenePresences.ContainsKey(remoteClient.AgentId)) |
1513 | { | 1520 | { |
1514 | m_sceneGridService.RequestTeleportToLocation(m_scenePresences[remoteClient.AgentId], regionHandle, position, lookAt, flags); | 1521 | m_sceneGridService.RequestTeleportToLocation(m_scenePresences[remoteClient.AgentId], regionHandle, |
1522 | position, lookAt, flags); | ||
1515 | } | 1523 | } |
1516 | } | 1524 | } |
1517 | 1525 | ||
@@ -1551,9 +1559,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1551 | /// <param name="mod"></param> | 1559 | /// <param name="mod"></param> |
1552 | public void RegisterModuleInterface<M>(M mod) | 1560 | public void RegisterModuleInterface<M>(M mod) |
1553 | { | 1561 | { |
1554 | if (!ModuleInterfaces.ContainsKey(typeof(M))) | 1562 | if (!ModuleInterfaces.ContainsKey(typeof (M))) |
1555 | { | 1563 | { |
1556 | ModuleInterfaces.Add(typeof(M), mod); | 1564 | ModuleInterfaces.Add(typeof (M), mod); |
1557 | } | 1565 | } |
1558 | } | 1566 | } |
1559 | 1567 | ||
@@ -1563,9 +1571,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1563 | /// <returns></returns> | 1571 | /// <returns></returns> |
1564 | public T RequestModuleInterface<T>() | 1572 | public T RequestModuleInterface<T>() |
1565 | { | 1573 | { |
1566 | if (ModuleInterfaces.ContainsKey(typeof(T))) | 1574 | if (ModuleInterfaces.ContainsKey(typeof (T))) |
1567 | { | 1575 | { |
1568 | return (T)ModuleInterfaces[typeof(T)]; | 1576 | return (T) ModuleInterfaces[typeof (T)]; |
1569 | } | 1577 | } |
1570 | else | 1578 | else |
1571 | { | 1579 | { |
@@ -1642,7 +1650,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1642 | { | 1650 | { |
1643 | if (obj is SceneObjectGroup) | 1651 | if (obj is SceneObjectGroup) |
1644 | { | 1652 | { |
1645 | m_eventManager.TriggerParcelPrimCountAdd((SceneObjectGroup)obj); | 1653 | m_eventManager.TriggerParcelPrimCountAdd((SceneObjectGroup) obj); |
1646 | } | 1654 | } |
1647 | } | 1655 | } |
1648 | } | 1656 | } |
@@ -1650,6 +1658,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1650 | #endregion | 1658 | #endregion |
1651 | 1659 | ||
1652 | #region Console Commands | 1660 | #region Console Commands |
1661 | |||
1653 | #region Alert Methods | 1662 | #region Alert Methods |
1654 | 1663 | ||
1655 | private void SendPermissionAlert(LLUUID user, string reason) | 1664 | private void SendPermissionAlert(LLUUID user, string reason) |
@@ -1692,7 +1701,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1692 | /// <param name="sessionID"></param> | 1701 | /// <param name="sessionID"></param> |
1693 | /// <param name="token"></param> | 1702 | /// <param name="token"></param> |
1694 | /// <param name="controllingClient"></param> | 1703 | /// <param name="controllingClient"></param> |
1695 | public void handleRequestGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token, IClientAPI controllingClient) | 1704 | public void handleRequestGodlikePowers(LLUUID agentID, LLUUID sessionID, LLUUID token, |
1705 | IClientAPI controllingClient) | ||
1696 | { | 1706 | { |
1697 | // First check that this is the sim owner | 1707 | // First check that this is the sim owner |
1698 | if (agentID == RegionInfo.MasterAvatarAssignedUUID) | 1708 | if (agentID == RegionInfo.MasterAvatarAssignedUUID) |
@@ -1736,37 +1746,38 @@ namespace OpenSim.Region.Environment.Scenes | |||
1736 | if (agentID == kickUserID) | 1746 | if (agentID == kickUserID) |
1737 | { | 1747 | { |
1738 | ClientManager.ForEachClient(delegate(IClientAPI controller) | 1748 | ClientManager.ForEachClient(delegate(IClientAPI controller) |
1739 | { | ||
1740 | ScenePresence p = GetScenePresence(controller.AgentId); | ||
1741 | bool childagent = !p.Equals(null) && p.IsChildAgent; | ||
1742 | if (controller.AgentId != godID && !childagent) // Do we really want to kick the initiator of this madness? | ||
1743 | { | 1749 | { |
1744 | controller.Kick(Helpers.FieldToUTF8String(reason)); | 1750 | ScenePresence p = GetScenePresence(controller.AgentId); |
1745 | 1751 | bool childagent = !p.Equals(null) && p.IsChildAgent; | |
1746 | if (childagent) | 1752 | if (controller.AgentId != godID && !childagent) |
1753 | // Do we really want to kick the initiator of this madness? | ||
1747 | { | 1754 | { |
1748 | m_innerScene.removeUserCount(false); | 1755 | controller.Kick(Helpers.FieldToUTF8String(reason)); |
1756 | |||
1757 | if (childagent) | ||
1758 | { | ||
1759 | m_innerScene.removeUserCount(false); | ||
1760 | } | ||
1761 | else | ||
1762 | { | ||
1763 | m_innerScene.removeUserCount(true); | ||
1764 | } | ||
1749 | } | 1765 | } |
1750 | else | ||
1751 | { | ||
1752 | m_innerScene.removeUserCount(true); | ||
1753 | } | ||
1754 | |||
1755 | } | 1766 | } |
1756 | } | ||
1757 | ); | 1767 | ); |
1758 | // This is a bit crude. It seems the client will be null before it actually stops the thread | 1768 | // This is a bit crude. It seems the client will be null before it actually stops the thread |
1759 | // The thread will kill itself eventually :/ | 1769 | // The thread will kill itself eventually :/ |
1760 | // Is there another way to make sure *all* clients get this 'inter region' message? | 1770 | // Is there another way to make sure *all* clients get this 'inter region' message? |
1761 | ClientManager.ForEachClient(delegate(IClientAPI controller) | 1771 | ClientManager.ForEachClient(delegate(IClientAPI controller) |
1762 | { | ||
1763 | ScenePresence p = GetScenePresence(controller.AgentId); | ||
1764 | bool childagent = !p.Equals(null) && p.IsChildAgent; | ||
1765 | if (controller.AgentId != godID && !childagent) // Do we really want to kick the initiator of this madness? | ||
1766 | { | 1772 | { |
1767 | controller.Close(true); | 1773 | ScenePresence p = GetScenePresence(controller.AgentId); |
1774 | bool childagent = !p.Equals(null) && p.IsChildAgent; | ||
1775 | if (controller.AgentId != godID && !childagent) | ||
1776 | // Do we really want to kick the initiator of this madness? | ||
1777 | { | ||
1778 | controller.Close(true); | ||
1779 | } | ||
1768 | } | 1780 | } |
1769 | } | ||
1770 | ); | 1781 | ); |
1771 | } | 1782 | } |
1772 | else | 1783 | else |
@@ -1799,7 +1810,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1799 | /// <param name="agentID"></param> | 1810 | /// <param name="agentID"></param> |
1800 | /// <param name="sessionID"></param> | 1811 | /// <param name="sessionID"></param> |
1801 | /// <param name="permChanges"></param> | 1812 | /// <param name="permChanges"></param> |
1802 | public void HandleObjectPermissionsUpdate(IClientAPI controller, LLUUID agentID, LLUUID sessionID, List<libsecondlife.Packets.ObjectPermissionsPacket.ObjectDataBlock> permChanges) | 1813 | public void HandleObjectPermissionsUpdate(IClientAPI controller, LLUUID agentID, LLUUID sessionID, |
1814 | List<ObjectPermissionsPacket.ObjectDataBlock> permChanges) | ||
1803 | { | 1815 | { |
1804 | // Check for spoofing.. since this is permissions we're talking about here! | 1816 | // Check for spoofing.. since this is permissions we're talking about here! |
1805 | if ((controller.SessionId == sessionID) && (controller.AgentId == agentID)) | 1817 | if ((controller.SessionId == sessionID) && (controller.AgentId == agentID)) |
@@ -1879,7 +1891,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1879 | { | 1891 | { |
1880 | if (ent is SceneObjectGroup) | 1892 | if (ent is SceneObjectGroup) |
1881 | { | 1893 | { |
1882 | ((SceneObjectGroup)ent).ScheduleGroupForFullUpdate(); | 1894 | ((SceneObjectGroup) ent).ScheduleGroupForFullUpdate(); |
1883 | } | 1895 | } |
1884 | } | 1896 | } |
1885 | } | 1897 | } |
@@ -1899,7 +1911,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1899 | { | 1911 | { |
1900 | if (ent is SceneObjectGroup) | 1912 | if (ent is SceneObjectGroup) |
1901 | { | 1913 | { |
1902 | SceneObjectPart part = ((SceneObjectGroup)ent).GetChildPart(((SceneObjectGroup)ent).UUID); | 1914 | SceneObjectPart part = ((SceneObjectGroup) ent).GetChildPart(((SceneObjectGroup) ent).UUID); |
1903 | if (part != null) | 1915 | if (part != null) |
1904 | { | 1916 | { |
1905 | if (part.Name == cmdparams[0]) | 1917 | if (part.Name == cmdparams[0]) |
@@ -1967,10 +1979,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1967 | { | 1979 | { |
1968 | m_eventManager.TriggerOnPluginConsole(args); | 1980 | m_eventManager.TriggerOnPluginConsole(args); |
1969 | } | 1981 | } |
1982 | |||
1970 | public double GetLandHeight(int x, int y) | 1983 | public double GetLandHeight(int x, int y) |
1971 | { | 1984 | { |
1972 | return Terrain.GetHeight(x, y); | 1985 | return Terrain.GetHeight(x, y); |
1973 | } | 1986 | } |
1987 | |||
1974 | public LLUUID GetLandOwner(float x, float y) | 1988 | public LLUUID GetLandOwner(float x, float y) |
1975 | { | 1989 | { |
1976 | Land land = LandManager.getLandObject(x, y); | 1990 | Land land = LandManager.getLandObject(x, y); |
@@ -1983,7 +1997,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1983 | return land.landData.ownerID; | 1997 | return land.landData.ownerID; |
1984 | } | 1998 | } |
1985 | } | 1999 | } |
1986 | 2000 | ||
1987 | public LandData GetLandData(float x, float y) | 2001 | public LandData GetLandData(float x, float y) |
1988 | { | 2002 | { |
1989 | return LandManager.getLandObject(x, y).landData; | 2003 | return LandManager.getLandObject(x, y).landData; |
@@ -2034,6 +2048,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
2034 | { | 2048 | { |
2035 | return m_innerScene.ConvertLocalIDToFullID(localID); | 2049 | return m_innerScene.ConvertLocalIDToFullID(localID); |
2036 | } | 2050 | } |
2051 | |||
2037 | public void SwapRootAgentCount(bool rootChildChildRootTF) | 2052 | public void SwapRootAgentCount(bool rootChildChildRootTF) |
2038 | { | 2053 | { |
2039 | m_innerScene.SwapRootChildAgent(rootChildChildRootTF); | 2054 | m_innerScene.SwapRootChildAgent(rootChildChildRootTF); |
@@ -2108,13 +2123,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
2108 | // We don't want to try to send messages if there are no avatar. | 2123 | // We don't want to try to send messages if there are no avatar. |
2109 | if (!(m_scenePresences.Equals(null))) | 2124 | if (!(m_scenePresences.Equals(null))) |
2110 | { | 2125 | { |
2111 | try { | 2126 | try |
2112 | List<ScenePresence> presenceList = GetScenePresences(); | 2127 | { |
2128 | List<ScenePresence> presenceList = GetScenePresences(); | ||
2113 | foreach (ScenePresence presence in presenceList) | 2129 | foreach (ScenePresence presence in presenceList) |
2114 | { | 2130 | { |
2115 | action(presence); | 2131 | action(presence); |
2116 | } | 2132 | } |
2117 | } catch (Exception e) { | 2133 | } |
2134 | catch (Exception e) | ||
2135 | { | ||
2118 | MainLog.Instance.Verbose("BUG", e.ToString()); | 2136 | MainLog.Instance.Verbose("BUG", e.ToString()); |
2119 | } | 2137 | } |
2120 | } | 2138 | } |
@@ -2181,4 +2199,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
2181 | 2199 | ||
2182 | #endregion | 2200 | #endregion |
2183 | } | 2201 | } |
2184 | } | 2202 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneBase.cs b/OpenSim/Region/Environment/Scenes/SceneBase.cs index 35d88eb..fe8f8da 100644 --- a/OpenSim/Region/Environment/Scenes/SceneBase.cs +++ b/OpenSim/Region/Environment/Scenes/SceneBase.cs | |||
@@ -26,8 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
30 | using System.Timers; | ||
31 | using libsecondlife; | 29 | using libsecondlife; |
32 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
33 | using OpenSim.Framework.Communications.Cache; | 31 | using OpenSim.Framework.Communications.Cache; |
@@ -43,8 +41,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
43 | public event restart OnRestart; | 41 | public event restart OnRestart; |
44 | 42 | ||
45 | #endregion | 43 | #endregion |
46 | 44 | ||
47 | #region Fields | 45 | #region Fields |
46 | |||
48 | private readonly ClientManager m_clientManager = new ClientManager(); | 47 | private readonly ClientManager m_clientManager = new ClientManager(); |
49 | 48 | ||
50 | public ClientManager ClientManager | 49 | public ClientManager ClientManager |
@@ -92,8 +91,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
92 | /// </summary> | 91 | /// </summary> |
93 | public abstract void Update(); | 92 | public abstract void Update(); |
94 | 93 | ||
95 | |||
96 | |||
97 | #endregion | 94 | #endregion |
98 | 95 | ||
99 | #region Terrain Methods | 96 | #region Terrain Methods |
@@ -163,8 +160,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
163 | 160 | ||
164 | public abstract bool OtherRegionUp(RegionInfo thisRegion); | 161 | public abstract bool OtherRegionUp(RegionInfo thisRegion); |
165 | 162 | ||
166 | |||
167 | #endregion | 163 | #endregion |
164 | |||
168 | #region Shutdown | 165 | #region Shutdown |
169 | 166 | ||
170 | /// <summary> | 167 | /// <summary> |
@@ -184,4 +181,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
184 | 181 | ||
185 | #endregion | 182 | #endregion |
186 | } | 183 | } |
187 | } | 184 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs index b184af2..3942397 100644 --- a/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs +++ b/OpenSim/Region/Environment/Scenes/SceneCommunicationService.cs | |||
@@ -1,4 +1,4 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://opensimulator.org/ | 2 | * Copyright (c) Contributors, http://opensimulator.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
@@ -29,11 +29,10 @@ | |||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Net; | 31 | using System.Net; |
32 | using System.Text; | ||
33 | using libsecondlife; | 32 | using libsecondlife; |
34 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
35 | using OpenSim.Framework.Console; | ||
36 | using OpenSim.Framework.Communications; | 34 | using OpenSim.Framework.Communications; |
35 | using OpenSim.Framework.Console; | ||
37 | 36 | ||
38 | namespace OpenSim.Region.Environment.Scenes | 37 | namespace OpenSim.Region.Environment.Scenes |
39 | { | 38 | { |
@@ -52,7 +51,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
52 | public event PrimCrossing OnPrimCrossingIntoRegion; | 51 | public event PrimCrossing OnPrimCrossingIntoRegion; |
53 | public event RegionUp OnRegionUp; | 52 | public event RegionUp OnRegionUp; |
54 | public event ChildAgentUpdate OnChildAgentUpdate; | 53 | public event ChildAgentUpdate OnChildAgentUpdate; |
55 | 54 | ||
56 | 55 | ||
57 | public KillObjectDelegate KillObject; | 56 | public KillObjectDelegate KillObject; |
58 | public string _debugRegionName = ""; | 57 | public string _debugRegionName = ""; |
@@ -60,10 +59,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
60 | public string debugRegionName | 59 | public string debugRegionName |
61 | { | 60 | { |
62 | get { return _debugRegionName; } | 61 | get { return _debugRegionName; } |
63 | set | 62 | set { _debugRegionName = value; } |
64 | { | ||
65 | _debugRegionName = value; | ||
66 | } | ||
67 | } | 63 | } |
68 | 64 | ||
69 | public SceneCommunicationService(CommunicationsManager commsMan) | 65 | public SceneCommunicationService(CommunicationsManager commsMan) |
@@ -90,7 +86,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
90 | regionCommsHost.OnCloseAgentConnection += CloseConnection; | 86 | regionCommsHost.OnCloseAgentConnection += CloseConnection; |
91 | regionCommsHost.OnRegionUp += newRegionUp; | 87 | regionCommsHost.OnRegionUp += newRegionUp; |
92 | regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate; | 88 | regionCommsHost.OnChildAgentUpdate += ChildAgentUpdate; |
93 | |||
94 | } | 89 | } |
95 | else | 90 | else |
96 | { | 91 | { |
@@ -102,7 +97,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
102 | { | 97 | { |
103 | if (regionCommsHost != null) | 98 | if (regionCommsHost != null) |
104 | { | 99 | { |
105 | |||
106 | regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate; | 100 | regionCommsHost.OnChildAgentUpdate -= ChildAgentUpdate; |
107 | regionCommsHost.OnRegionUp -= newRegionUp; | 101 | regionCommsHost.OnRegionUp -= newRegionUp; |
108 | regionCommsHost.OnExpectUser -= NewUserConnection; | 102 | regionCommsHost.OnExpectUser -= NewUserConnection; |
@@ -115,6 +109,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | } | 109 | } |
116 | 110 | ||
117 | #region CommsManager Event handlers | 111 | #region CommsManager Event handlers |
112 | |||
118 | /// <summary> | 113 | /// <summary> |
119 | /// | 114 | /// |
120 | /// </summary> | 115 | /// </summary> |
@@ -139,6 +134,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
139 | } | 134 | } |
140 | return true; | 135 | return true; |
141 | } | 136 | } |
137 | |||
142 | protected bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 138 | protected bool ChildAgentUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) |
143 | { | 139 | { |
144 | if (OnChildAgentUpdate != null) | 140 | if (OnChildAgentUpdate != null) |
@@ -155,6 +151,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
155 | OnAvatarCrossingIntoRegion(regionHandle, agentID, position, isFlying); | 151 | OnAvatarCrossingIntoRegion(regionHandle, agentID, position, isFlying); |
156 | } | 152 | } |
157 | } | 153 | } |
154 | |||
158 | protected void PrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) | 155 | protected void PrimCrossing(ulong regionHandle, LLUUID primID, LLVector3 position, bool isPhysical) |
159 | { | 156 | { |
160 | if (OnPrimCrossingIntoRegion != null) | 157 | if (OnPrimCrossingIntoRegion != null) |
@@ -174,12 +171,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
174 | #endregion | 171 | #endregion |
175 | 172 | ||
176 | #region Inform Client of Neighbours | 173 | #region Inform Client of Neighbours |
174 | |||
177 | private delegate void InformClientOfNeighbourDelegate( | 175 | private delegate void InformClientOfNeighbourDelegate( |
178 | ScenePresence avatar, AgentCircuitData a, ulong regionHandle, IPEndPoint endPoint); | 176 | ScenePresence avatar, AgentCircuitData a, ulong regionHandle, IPEndPoint endPoint); |
179 | 177 | ||
180 | private void InformClientOfNeighbourCompleted(IAsyncResult iar) | 178 | private void InformClientOfNeighbourCompleted(IAsyncResult iar) |
181 | { | 179 | { |
182 | InformClientOfNeighbourDelegate icon = (InformClientOfNeighbourDelegate)iar.AsyncState; | 180 | InformClientOfNeighbourDelegate icon = (InformClientOfNeighbourDelegate) iar.AsyncState; |
183 | icon.EndInvoke(iar); | 181 | icon.EndInvoke(iar); |
184 | } | 182 | } |
185 | 183 | ||
@@ -215,8 +213,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
215 | 213 | ||
216 | //blah.Address = region.RemotingAddress; | 214 | //blah.Address = region.RemotingAddress; |
217 | //blah.Port = region.RemotingPort; | 215 | //blah.Port = region.RemotingPort; |
218 | |||
219 | |||
220 | } | 216 | } |
221 | 217 | ||
222 | /// <summary> | 218 | /// <summary> |
@@ -227,7 +223,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
227 | { | 223 | { |
228 | List<SimpleRegionInfo> neighbours = new List<SimpleRegionInfo>(); | 224 | List<SimpleRegionInfo> neighbours = new List<SimpleRegionInfo>(); |
229 | 225 | ||
230 | //m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); | 226 | //m_commsProvider.GridService.RequestNeighbours(m_regionInfo.RegionLocX, m_regionInfo.RegionLocY); |
231 | for (int i = 0; i < lstneighbours.Count; i++) | 227 | for (int i = 0; i < lstneighbours.Count; i++) |
232 | { | 228 | { |
233 | // We don't want to keep sending to regions that consistently fail on comms. | 229 | // We don't want to keep sending to regions that consistently fail on comms. |
@@ -245,7 +241,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
245 | { | 241 | { |
246 | for (int i = 0; i < neighbours.Count; i++) | 242 | for (int i = 0; i < neighbours.Count; i++) |
247 | { | 243 | { |
248 | |||
249 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); | 244 | AgentCircuitData agent = avatar.ControllingClient.RequestClientInfo(); |
250 | agent.BaseFolder = LLUUID.Zero; | 245 | agent.BaseFolder = LLUUID.Zero; |
251 | agent.InventoryFolder = LLUUID.Zero; | 246 | agent.InventoryFolder = LLUUID.Zero; |
@@ -259,6 +254,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
259 | } | 254 | } |
260 | } | 255 | } |
261 | } | 256 | } |
257 | |||
262 | /// <summary> | 258 | /// <summary> |
263 | /// This informs a single neighboring region about agent "avatar". | 259 | /// This informs a single neighboring region about agent "avatar". |
264 | /// Calls an asynchronous method to do so.. so it doesn't lag the sim. | 260 | /// Calls an asynchronous method to do so.. so it doesn't lag the sim. |
@@ -278,11 +274,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
278 | } | 274 | } |
279 | 275 | ||
280 | #endregion | 276 | #endregion |
277 | |||
281 | public delegate void InformNeighbourThatRegionUpDelegate(RegionInfo region, ulong regionhandle); | 278 | public delegate void InformNeighbourThatRegionUpDelegate(RegionInfo region, ulong regionhandle); |
282 | 279 | ||
283 | private void InformNeighborsThatRegionisUpCompleted(IAsyncResult iar) | 280 | private void InformNeighborsThatRegionisUpCompleted(IAsyncResult iar) |
284 | { | 281 | { |
285 | InformNeighbourThatRegionUpDelegate icon = (InformNeighbourThatRegionUpDelegate)iar.AsyncState; | 282 | InformNeighbourThatRegionUpDelegate icon = (InformNeighbourThatRegionUpDelegate) iar.AsyncState; |
286 | icon.EndInvoke(iar); | 283 | icon.EndInvoke(iar); |
287 | } | 284 | } |
288 | 285 | ||
@@ -290,7 +287,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
290 | private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle) | 287 | private void InformNeighboursThatRegionIsUpAsync(RegionInfo region, ulong regionhandle) |
291 | { | 288 | { |
292 | MainLog.Instance.Notice("INTERGRID", "Starting to inform neighbors that I'm here"); | 289 | MainLog.Instance.Notice("INTERGRID", "Starting to inform neighbors that I'm here"); |
293 | bool regionAccepted = m_commsProvider.InterRegion.RegionUp((new SearializableRegionInfo(region)), regionhandle); | 290 | bool regionAccepted = |
291 | m_commsProvider.InterRegion.RegionUp((new SearializableRegionInfo(region)), regionhandle); | ||
294 | 292 | ||
295 | if (regionAccepted) | 293 | if (regionAccepted) |
296 | { | 294 | { |
@@ -301,6 +299,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
301 | MainLog.Instance.Notice("INTERGRID", "Failed to inform neighbors that I'm here"); | 299 | MainLog.Instance.Notice("INTERGRID", "Failed to inform neighbors that I'm here"); |
302 | } | 300 | } |
303 | } | 301 | } |
302 | |||
304 | /// <summary> | 303 | /// <summary> |
305 | /// Called by scene when region is initialized (not always when it's listening for agents) | 304 | /// Called by scene when region is initialized (not always when it's listening for agents) |
306 | /// This is an inter-region message that informs the surrounding neighbors that the sim is up. | 305 | /// This is an inter-region message that informs the surrounding neighbors that the sim is up. |
@@ -317,7 +316,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
317 | { | 316 | { |
318 | for (int i = 0; i < neighbours.Count; i++) | 317 | for (int i = 0; i < neighbours.Count; i++) |
319 | { | 318 | { |
320 | |||
321 | InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; | 319 | InformNeighbourThatRegionUpDelegate d = InformNeighboursThatRegionIsUpAsync; |
322 | 320 | ||
323 | d.BeginInvoke(region, neighbours[i].RegionHandle, | 321 | d.BeginInvoke(region, neighbours[i].RegionHandle, |
@@ -325,9 +323,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
325 | d); | 323 | d); |
326 | } | 324 | } |
327 | } | 325 | } |
328 | 326 | ||
329 | //bool val = m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region)); | 327 | //bool val = m_commsProvider.InterRegion.RegionUp(new SearializableRegionInfo(region)); |
330 | } | 328 | } |
329 | |||
331 | public delegate void SendChildAgentDataUpdateDelegate(ulong regionHandle, ChildAgentDataUpdate cAgentData); | 330 | public delegate void SendChildAgentDataUpdateDelegate(ulong regionHandle, ChildAgentDataUpdate cAgentData); |
332 | 331 | ||
333 | /// <summary> | 332 | /// <summary> |
@@ -340,7 +339,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
340 | private void SendChildAgentDataUpdateAsync(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 339 | private void SendChildAgentDataUpdateAsync(ulong regionHandle, ChildAgentDataUpdate cAgentData) |
341 | { | 340 | { |
342 | MainLog.Instance.Notice("INTERGRID", "Informing a neighbor about my agent."); | 341 | MainLog.Instance.Notice("INTERGRID", "Informing a neighbor about my agent."); |
343 | bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle,cAgentData); | 342 | bool regionAccepted = m_commsProvider.InterRegion.ChildAgentUpdate(regionHandle, cAgentData); |
344 | 343 | ||
345 | if (regionAccepted) | 344 | if (regionAccepted) |
346 | { | 345 | { |
@@ -351,11 +350,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
351 | MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); | 350 | MainLog.Instance.Notice("INTERGRID", "Failed sending a neighbor an update about my agent"); |
352 | } | 351 | } |
353 | } | 352 | } |
353 | |||
354 | private void SendChildAgentDataUpdateCompleted(IAsyncResult iar) | 354 | private void SendChildAgentDataUpdateCompleted(IAsyncResult iar) |
355 | { | 355 | { |
356 | SendChildAgentDataUpdateDelegate icon = (SendChildAgentDataUpdateDelegate)iar.AsyncState; | 356 | SendChildAgentDataUpdateDelegate icon = (SendChildAgentDataUpdateDelegate) iar.AsyncState; |
357 | icon.EndInvoke(iar); | 357 | icon.EndInvoke(iar); |
358 | } | 358 | } |
359 | |||
359 | public void SendChildAgentDataUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) | 360 | public void SendChildAgentDataUpdate(ulong regionHandle, ChildAgentDataUpdate cAgentData) |
360 | { | 361 | { |
361 | // This assumes that we know what our neighbors are. | 362 | // This assumes that we know what our neighbors are. |
@@ -363,9 +364,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
363 | d.BeginInvoke(regionHandle, cAgentData, | 364 | d.BeginInvoke(regionHandle, cAgentData, |
364 | SendChildAgentDataUpdateCompleted, | 365 | SendChildAgentDataUpdateCompleted, |
365 | d); | 366 | d); |
366 | |||
367 | } | 367 | } |
368 | 368 | ||
369 | 369 | ||
370 | /// <summary> | 370 | /// <summary> |
371 | /// Helper function to request neighbors from grid-comms | 371 | /// Helper function to request neighbors from grid-comms |
@@ -401,15 +401,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
401 | /// <param name="lookAt"></param> | 401 | /// <param name="lookAt"></param> |
402 | /// <param name="flags"></param> | 402 | /// <param name="flags"></param> |
403 | public virtual void RequestTeleportToLocation(ScenePresence avatar, ulong regionHandle, LLVector3 position, | 403 | public virtual void RequestTeleportToLocation(ScenePresence avatar, ulong regionHandle, LLVector3 position, |
404 | LLVector3 lookAt, uint flags) | 404 | LLVector3 lookAt, uint flags) |
405 | { | 405 | { |
406 | if (regionHandle == m_regionInfo.RegionHandle) | 406 | if (regionHandle == m_regionInfo.RegionHandle) |
407 | { | 407 | { |
408 | |||
409 | avatar.ControllingClient.SendTeleportLocationStart(); | 408 | avatar.ControllingClient.SendTeleportLocationStart(); |
410 | avatar.ControllingClient.SendLocalTeleport(position, lookAt, flags); | 409 | avatar.ControllingClient.SendLocalTeleport(position, lookAt, flags); |
411 | avatar.Teleport(position); | 410 | avatar.Teleport(position); |
412 | |||
413 | } | 411 | } |
414 | else | 412 | else |
415 | { | 413 | { |
@@ -424,20 +422,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
424 | agent.child = true; | 422 | agent.child = true; |
425 | avatar.Close(); | 423 | avatar.Close(); |
426 | m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent); | 424 | m_commsProvider.InterRegion.InformRegionOfChildAgent(regionHandle, agent); |
427 | m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId, position, false); | 425 | m_commsProvider.InterRegion.ExpectAvatarCrossing(regionHandle, avatar.ControllingClient.AgentId, |
426 | position, false); | ||
428 | AgentCircuitData circuitdata = avatar.ControllingClient.RequestClientInfo(); | 427 | AgentCircuitData circuitdata = avatar.ControllingClient.RequestClientInfo(); |
429 | string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId); | 428 | string capsPath = Util.GetCapsURL(avatar.ControllingClient.AgentId); |
430 | avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), capsPath); | 429 | avatar.ControllingClient.SendRegionTeleport(regionHandle, 13, reg.ExternalEndPoint, 4, (1 << 4), |
430 | capsPath); | ||
431 | avatar.MakeChildAgent(); | 431 | avatar.MakeChildAgent(); |
432 | if (KillObject != null) | 432 | if (KillObject != null) |
433 | { | 433 | { |
434 | KillObject(avatar.LocalId); | 434 | KillObject(avatar.LocalId); |
435 | } | 435 | } |
436 | uint newRegionX = (uint)(regionHandle >> 40); | 436 | uint newRegionX = (uint) (regionHandle >> 40); |
437 | uint newRegionY = (((uint)(regionHandle)) >> 8); | 437 | uint newRegionY = (((uint) (regionHandle)) >> 8); |
438 | uint oldRegionX = (uint)(m_regionInfo.RegionHandle >> 40); | 438 | uint oldRegionX = (uint) (m_regionInfo.RegionHandle >> 40); |
439 | uint oldRegionY = (((uint)(m_regionInfo.RegionHandle)) >> 8); | 439 | uint oldRegionY = (((uint) (m_regionInfo.RegionHandle)) >> 8); |
440 | if (Util.fast_distance2d((int)(newRegionX - oldRegionX), (int)(newRegionY - oldRegionY)) > 3) | 440 | if (Util.fast_distance2d((int) (newRegionX - oldRegionX), (int) (newRegionY - oldRegionY)) > 3) |
441 | { | 441 | { |
442 | CloseChildAgentConnections(avatar); | 442 | CloseChildAgentConnections(avatar); |
443 | } | 443 | } |
@@ -465,7 +465,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
465 | { | 465 | { |
466 | foreach (ulong regionHandle in presence.KnownChildRegions) | 466 | foreach (ulong regionHandle in presence.KnownChildRegions) |
467 | { | 467 | { |
468 | m_commsProvider.InterRegion.TellRegionToCloseChildConnection(regionHandle, presence.ControllingClient.AgentId); | 468 | m_commsProvider.InterRegion.TellRegionToCloseChildConnection(regionHandle, |
469 | presence.ControllingClient.AgentId); | ||
469 | presence.RemoveNeighbourRegion(regionHandle); | 470 | presence.RemoveNeighbourRegion(regionHandle); |
470 | } | 471 | } |
471 | } | 472 | } |
@@ -474,6 +475,5 @@ namespace OpenSim.Region.Environment.Scenes | |||
474 | { | 475 | { |
475 | return m_commsProvider.GridService.GetGridSettings(); | 476 | return m_commsProvider.GridService.GetGridSettings(); |
476 | } | 477 | } |
477 | |||
478 | } | 478 | } |
479 | } | 479 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneEvents.cs b/OpenSim/Region/Environment/Scenes/SceneEvents.cs index 9c8c62b..a6a8fb6 100644 --- a/OpenSim/Region/Environment/Scenes/SceneEvents.cs +++ b/OpenSim/Region/Environment/Scenes/SceneEvents.cs | |||
@@ -105,7 +105,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
105 | public delegate void LandObjectAdded(Land newParcel, LLUUID regionUUID); | 105 | public delegate void LandObjectAdded(Land newParcel, LLUUID regionUUID); |
106 | 106 | ||
107 | public event LandObjectAdded OnLandObjectAdded; | 107 | public event LandObjectAdded OnLandObjectAdded; |
108 | 108 | ||
109 | public delegate void LandObjectRemoved(LLUUID globalID); | 109 | public delegate void LandObjectRemoved(LLUUID globalID); |
110 | 110 | ||
111 | public event LandObjectRemoved OnLandObjectRemoved; | 111 | public event LandObjectRemoved OnLandObjectRemoved; |
@@ -117,7 +117,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
117 | 117 | ||
118 | public void TriggerOnClientMovement(ScenePresence avatar) | 118 | public void TriggerOnClientMovement(ScenePresence avatar) |
119 | { | 119 | { |
120 | if(OnClientMovement != null) | 120 | if (OnClientMovement != null) |
121 | OnClientMovement(avatar); | 121 | OnClientMovement(avatar); |
122 | } | 122 | } |
123 | 123 | ||
@@ -223,7 +223,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
223 | { | 223 | { |
224 | if (OnSceneGroupMove != null) | 224 | if (OnSceneGroupMove != null) |
225 | { | 225 | { |
226 | return OnSceneGroupMove(groupID, delta); | 226 | return OnSceneGroupMove(groupID, delta); |
227 | } | 227 | } |
228 | return true; | 228 | return true; |
229 | } | 229 | } |
@@ -236,13 +236,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
236 | } | 236 | } |
237 | } | 237 | } |
238 | 238 | ||
239 | public void TriggerLandObjectAdded(Land newParcel,LLUUID regionID) | 239 | public void TriggerLandObjectAdded(Land newParcel, LLUUID regionID) |
240 | { | 240 | { |
241 | if (OnLandObjectAdded != null) | 241 | if (OnLandObjectAdded != null) |
242 | { | 242 | { |
243 | OnLandObjectAdded(newParcel, regionID); | 243 | OnLandObjectAdded(newParcel, regionID); |
244 | } | 244 | } |
245 | } | 245 | } |
246 | |||
246 | public void TriggerLandObjectRemoved(LLUUID globalID) | 247 | public void TriggerLandObjectRemoved(LLUUID globalID) |
247 | { | 248 | { |
248 | if (OnLandObjectRemoved != null) | 249 | if (OnLandObjectRemoved != null) |
@@ -250,10 +251,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
250 | OnLandObjectRemoved(globalID); | 251 | OnLandObjectRemoved(globalID); |
251 | } | 252 | } |
252 | } | 253 | } |
254 | |||
253 | public void TriggerLandObjectUpdated(uint localParcelID, Land newParcel) | 255 | public void TriggerLandObjectUpdated(uint localParcelID, Land newParcel) |
254 | { | 256 | { |
255 | //triggerLandObjectRemoved(localParcelID); | 257 | //triggerLandObjectRemoved(localParcelID); |
256 | TriggerLandObjectAdded(newParcel,newParcel.m_scene.RegionInfo.RegionID); | 258 | TriggerLandObjectAdded(newParcel, newParcel.m_scene.RegionInfo.RegionID); |
257 | } | 259 | } |
258 | 260 | ||
259 | public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, LLUUID regionID) | 261 | public void TriggerAvatarEnteringNewParcel(ScenePresence avatar, int localLandID, LLUUID regionID) |
diff --git a/OpenSim/Region/Environment/Scenes/SceneManager.cs b/OpenSim/Region/Environment/Scenes/SceneManager.cs index e822874..1eac61b 100644 --- a/OpenSim/Region/Environment/Scenes/SceneManager.cs +++ b/OpenSim/Region/Environment/Scenes/SceneManager.cs | |||
@@ -84,7 +84,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
84 | { | 84 | { |
85 | if (m_localScenes[i].Equals(cscene)) | 85 | if (m_localScenes[i].Equals(cscene)) |
86 | { | 86 | { |
87 | |||
88 | m_localScenes[i].Close(); | 87 | m_localScenes[i].Close(); |
89 | } | 88 | } |
90 | } | 89 | } |
@@ -99,7 +98,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
99 | 98 | ||
100 | public void HandleRestart(RegionInfo rdata) | 99 | public void HandleRestart(RegionInfo rdata) |
101 | { | 100 | { |
102 | MainLog.Instance.Error("SCENEMANAGER", "Got Restart message for region:" + rdata.RegionName +" Sending up to main"); | 101 | MainLog.Instance.Error("SCENEMANAGER", |
102 | "Got Restart message for region:" + rdata.RegionName + " Sending up to main"); | ||
103 | int RegionSceneElement = -1; | 103 | int RegionSceneElement = -1; |
104 | for (int i = 0; i < m_localScenes.Count; i++) | 104 | for (int i = 0; i < m_localScenes.Count; i++) |
105 | { | 105 | { |
@@ -127,7 +127,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
127 | 127 | ||
128 | for (int i = 0; i < m_localScenes.Count; i++) | 128 | for (int i = 0; i < m_localScenes.Count; i++) |
129 | { | 129 | { |
130 | |||
131 | if (m_localScenes[i].RegionInfo.RegionHandle == regionHandle) | 130 | if (m_localScenes[i].RegionInfo.RegionHandle == regionHandle) |
132 | { | 131 | { |
133 | // Inform other regions to tell their avatar about me | 132 | // Inform other regions to tell their avatar about me |
@@ -223,7 +222,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
223 | { | 222 | { |
224 | ForEachCurrentScene(delegate(Scene scene) { scene.Backup(); }); | 223 | ForEachCurrentScene(delegate(Scene scene) { scene.Backup(); }); |
225 | } | 224 | } |
226 | 225 | ||
227 | public void HandleAlertCommandOnCurrentScene(string[] cmdparams) | 226 | public void HandleAlertCommandOnCurrentScene(string[] cmdparams) |
228 | { | 227 | { |
229 | ForEachCurrentScene(delegate(Scene scene) { scene.HandleAlertCommand(cmdparams); }); | 228 | ForEachCurrentScene(delegate(Scene scene) { scene.HandleAlertCommand(cmdparams); }); |
@@ -423,4 +422,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
423 | m_localScenes.ForEach(action); | 422 | m_localScenes.ForEach(action); |
424 | } | 423 | } |
425 | } | 424 | } |
426 | } | 425 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 20d596a..5b74c9b 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Drawing; | ||
31 | using System.IO; | 32 | using System.IO; |
32 | using System.Text; | 33 | using System.Text; |
33 | using System.Xml; | 34 | using System.Xml; |
@@ -38,7 +39,6 @@ using OpenSim.Framework; | |||
38 | using OpenSim.Framework.Console; | 39 | using OpenSim.Framework.Console; |
39 | using OpenSim.Region.Environment.Interfaces; | 40 | using OpenSim.Region.Environment.Interfaces; |
40 | using OpenSim.Region.Physics.Manager; | 41 | using OpenSim.Region.Physics.Manager; |
41 | using System.Drawing; | ||
42 | 42 | ||
43 | namespace OpenSim.Region.Environment.Scenes | 43 | namespace OpenSim.Region.Environment.Scenes |
44 | { | 44 | { |
@@ -74,11 +74,13 @@ namespace OpenSim.Region.Environment.Scenes | |||
74 | { | 74 | { |
75 | get { return m_rootPart.RotationOffset; } | 75 | get { return m_rootPart.RotationOffset; } |
76 | } | 76 | } |
77 | |||
77 | public LLUUID GroupID | 78 | public LLUUID GroupID |
78 | { | 79 | { |
79 | get { return m_rootPart.GroupID; } | 80 | get { return m_rootPart.GroupID; } |
80 | set { m_rootPart.GroupID = value; } | 81 | set { m_rootPart.GroupID = value; } |
81 | } | 82 | } |
83 | |||
82 | /// <summary> | 84 | /// <summary> |
83 | /// | 85 | /// |
84 | /// </summary> | 86 | /// </summary> |
@@ -242,7 +244,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
242 | part.ParentID = 0; | 244 | part.ParentID = 0; |
243 | part.LinkNum = 0; | 245 | part.LinkNum = 0; |
244 | m_parts.Add(part.UUID, part); | 246 | m_parts.Add(part.UUID, part); |
245 | 247 | ||
246 | SetPartAsRoot(part); | 248 | SetPartAsRoot(part); |
247 | 249 | ||
248 | RegionHandle = regionHandle; | 250 | RegionHandle = regionHandle; |
@@ -295,7 +297,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
295 | sr.Close(); | 297 | sr.Close(); |
296 | 298 | ||
297 | 299 | ||
298 | |||
299 | m_rootPart.LocalID = m_scene.PrimIDAllocate(); | 300 | m_rootPart.LocalID = m_scene.PrimIDAllocate(); |
300 | m_rootPart.ParentID = 0; | 301 | m_rootPart.ParentID = 0; |
301 | m_rootPart.RegionHandle = m_regionHandle; | 302 | m_rootPart.RegionHandle = m_regionHandle; |
@@ -376,9 +377,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
376 | 377 | ||
377 | foreach (SceneObjectPart part in m_parts.Values) | 378 | foreach (SceneObjectPart part in m_parts.Values) |
378 | { | 379 | { |
379 | 380 | Vector3 partPosition = | |
380 | Vector3 partPosition = new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z); | 381 | new Vector3(part.AbsolutePosition.X, part.AbsolutePosition.Y, part.AbsolutePosition.Z); |
381 | Quaternion parentrotation = new Quaternion(GroupRotation.W, GroupRotation.X, GroupRotation.Y, GroupRotation.Z); | 382 | Quaternion parentrotation = |
383 | new Quaternion(GroupRotation.W, GroupRotation.X, GroupRotation.Y, GroupRotation.Z); | ||
382 | 384 | ||
383 | // Telling the prim to raytrace. | 385 | // Telling the prim to raytrace. |
384 | EntityIntersection inter = part.TestIntersection(hRay, parentrotation); | 386 | EntityIntersection inter = part.TestIntersection(hRay, parentrotation); |
@@ -389,14 +391,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
389 | float idist = 256f; | 391 | float idist = 256f; |
390 | 392 | ||
391 | 393 | ||
392 | |||
393 | |||
394 | if (inter.HitTF) | 394 | if (inter.HitTF) |
395 | { | 395 | { |
396 | // We need to find the closest prim to return to the testcaller along the ray | 396 | // We need to find the closest prim to return to the testcaller along the ray |
397 | if (inter.distance < idist) | 397 | if (inter.distance < idist) |
398 | { | 398 | { |
399 | |||
400 | idist = inter.distance; | 399 | idist = inter.distance; |
401 | returnresult.HitTF = true; | 400 | returnresult.HitTF = true; |
402 | returnresult.ipoint = inter.ipoint; | 401 | returnresult.ipoint = inter.ipoint; |
@@ -405,15 +404,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
405 | returnresult.distance = inter.distance; | 404 | returnresult.distance = inter.distance; |
406 | } | 405 | } |
407 | } | 406 | } |
408 | |||
409 | |||
410 | } | 407 | } |
411 | return returnresult; | 408 | return returnresult; |
412 | |||
413 | } | 409 | } |
414 | 410 | ||
415 | 411 | ||
416 | |||
417 | /// <summary> | 412 | /// <summary> |
418 | /// | 413 | /// |
419 | /// </summary> | 414 | /// </summary> |
@@ -524,7 +519,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
524 | /// <returns></returns> | 519 | /// <returns></returns> |
525 | public SceneObjectGroup Copy(LLUUID cAgentID, LLUUID cGroupID) | 520 | public SceneObjectGroup Copy(LLUUID cAgentID, LLUUID cGroupID) |
526 | { | 521 | { |
527 | SceneObjectGroup dupe = (SceneObjectGroup)MemberwiseClone(); | 522 | SceneObjectGroup dupe = (SceneObjectGroup) MemberwiseClone(); |
528 | dupe.m_parts = new Dictionary<LLUUID, SceneObjectPart>(); | 523 | dupe.m_parts = new Dictionary<LLUUID, SceneObjectPart>(); |
529 | dupe.m_parts.Clear(); | 524 | dupe.m_parts.Clear(); |
530 | //dupe.OwnerID = AgentID; | 525 | //dupe.OwnerID = AgentID; |
@@ -549,9 +544,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
549 | new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), | 544 | new PhysicsVector(dupe.RootPart.Scale.X, dupe.RootPart.Scale.Y, dupe.RootPart.Scale.Z), |
550 | new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, | 545 | new Quaternion(dupe.RootPart.RotationOffset.W, dupe.RootPart.RotationOffset.X, |
551 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z), | 546 | dupe.RootPart.RotationOffset.Y, dupe.RootPart.RotationOffset.Z), |
552 | dupe.RootPart.PhysActor.IsPhysical); | 547 | dupe.RootPart.PhysActor.IsPhysical); |
553 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); | 548 | dupe.RootPart.DoPhysicsPropertyUpdate(dupe.RootPart.PhysActor.IsPhysical, true); |
554 | |||
555 | } | 549 | } |
556 | // Now we've made a copy that replaces this one, we need to | 550 | // Now we've made a copy that replaces this one, we need to |
557 | // switch the owner to the person who did the copying | 551 | // switch the owner to the person who did the copying |
@@ -559,8 +553,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
559 | // So, we have to make a copy of this one, set it in it's place then set the owner on this one | 553 | // So, we have to make a copy of this one, set it in it's place then set the owner on this one |
560 | 554 | ||
561 | SetRootPartOwner(m_rootPart, cAgentID, cGroupID); | 555 | SetRootPartOwner(m_rootPart, cAgentID, cGroupID); |
562 | 556 | ||
563 | 557 | ||
564 | m_rootPart.ScheduleFullUpdate(); | 558 | m_rootPart.ScheduleFullUpdate(); |
565 | 559 | ||
566 | List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values); | 560 | List<SceneObjectPart> partList = new List<SceneObjectPart>(m_parts.Values); |
@@ -571,7 +565,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
571 | dupe.CopyPart(part, OwnerID, GroupID); | 565 | dupe.CopyPart(part, OwnerID, GroupID); |
572 | SetPartOwner(part, cAgentID, cGroupID); | 566 | SetPartOwner(part, cAgentID, cGroupID); |
573 | part.ScheduleFullUpdate(); | 567 | part.ScheduleFullUpdate(); |
574 | |||
575 | } | 568 | } |
576 | } | 569 | } |
577 | dupe.UpdateParentIDs(); | 570 | dupe.UpdateParentIDs(); |
@@ -601,7 +594,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
601 | part.OwnerID = cAgentID; | 594 | part.OwnerID = cAgentID; |
602 | part.GroupID = cGroupID; | 595 | part.GroupID = cGroupID; |
603 | 596 | ||
604 | 597 | ||
605 | if (part.OwnerID != cAgentID) | 598 | if (part.OwnerID != cAgentID) |
606 | { | 599 | { |
607 | // Apply Next Owner Permissions if we're not bypassing permissions | 600 | // Apply Next Owner Permissions if we're not bypassing permissions |
@@ -637,6 +630,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
637 | m_parts.Add(part.UUID, part); | 630 | m_parts.Add(part.UUID, part); |
638 | } | 631 | } |
639 | } | 632 | } |
633 | |||
640 | /// <summary> | 634 | /// <summary> |
641 | /// | 635 | /// |
642 | /// </summary> | 636 | /// </summary> |
@@ -666,8 +660,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
666 | objPropDB.Description = Helpers.StringToField(RootPart.Description); | 660 | objPropDB.Description = Helpers.StringToField(RootPart.Description); |
667 | objPropFamilyPack.ObjectData = objPropDB; | 661 | objPropFamilyPack.ObjectData = objPropDB; |
668 | remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task); | 662 | remoteClient.OutPacket(objPropFamilyPack, ThrottleOutPacketType.Task); |
669 | |||
670 | } | 663 | } |
664 | |||
671 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) | 665 | public void SetPartOwner(SceneObjectPart part, LLUUID cAgentID, LLUUID cGroupID) |
672 | { | 666 | { |
673 | part.OwnerID = cAgentID; | 667 | part.OwnerID = cAgentID; |
@@ -884,12 +878,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
884 | Quaternion parentRot = | 878 | Quaternion parentRot = |
885 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | 879 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, |
886 | m_rootPart.RotationOffset.Z); | 880 | m_rootPart.RotationOffset.Z); |
887 | axPos = parentRot.Inverse() * axPos; | 881 | axPos = parentRot.Inverse()*axPos; |
888 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 882 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
889 | Quaternion oldRot = | 883 | Quaternion oldRot = |
890 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, | 884 | new Quaternion(linkPart.RotationOffset.W, linkPart.RotationOffset.X, linkPart.RotationOffset.Y, |
891 | linkPart.RotationOffset.Z); | 885 | linkPart.RotationOffset.Z); |
892 | Quaternion newRot = parentRot.Inverse() * oldRot; | 886 | Quaternion newRot = parentRot.Inverse()*oldRot; |
893 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 887 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
894 | linkPart.ParentID = m_rootPart.LocalID; | 888 | linkPart.ParentID = m_rootPart.LocalID; |
895 | linkPart.LinkNum = m_parts.Count; | 889 | linkPart.LinkNum = m_parts.Count; |
@@ -949,7 +943,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
949 | linkPart.OffsetPosition.Y, | 943 | linkPart.OffsetPosition.Y, |
950 | linkPart.OffsetPosition.Z); | 944 | linkPart.OffsetPosition.Z); |
951 | 945 | ||
952 | axPos = parentRot * axPos; | 946 | axPos = parentRot*axPos; |
953 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 947 | linkPart.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
954 | linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition; | 948 | linkPart.GroupPosition = AbsolutePosition + linkPart.OffsetPosition; |
955 | linkPart.OffsetPosition = new LLVector3(0, 0, 0); | 949 | linkPart.OffsetPosition = new LLVector3(0, 0, 0); |
@@ -960,7 +954,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
960 | linkPart.RotationOffset.X, | 954 | linkPart.RotationOffset.X, |
961 | linkPart.RotationOffset.Y, | 955 | linkPart.RotationOffset.Y, |
962 | linkPart.RotationOffset.Z); | 956 | linkPart.RotationOffset.Z); |
963 | Quaternion newRot = parentRot * oldRot; | 957 | Quaternion newRot = parentRot*oldRot; |
964 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 958 | linkPart.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
965 | 959 | ||
966 | // Add physics information back to delinked part if appropriate | 960 | // Add physics information back to delinked part if appropriate |
@@ -978,7 +972,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
978 | linkPart.RotationOffset.Y, linkPart.RotationOffset.Z), | 972 | linkPart.RotationOffset.Y, linkPart.RotationOffset.Z), |
979 | m_rootPart.PhysActor.IsPhysical); | 973 | m_rootPart.PhysActor.IsPhysical); |
980 | m_rootPart.DoPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical, true); | 974 | m_rootPart.DoPhysicsPropertyUpdate(m_rootPart.PhysActor.IsPhysical, true); |
981 | |||
982 | } | 975 | } |
983 | 976 | ||
984 | SceneObjectGroup objectGroup = new SceneObjectGroup(m_scene, m_regionHandle, linkPart); | 977 | SceneObjectGroup objectGroup = new SceneObjectGroup(m_scene, m_regionHandle, linkPart); |
@@ -990,8 +983,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
990 | else | 983 | else |
991 | { | 984 | { |
992 | MainLog.Instance.Verbose("SCENE", | 985 | MainLog.Instance.Verbose("SCENE", |
993 | "DelinkFromGroup(): Child prim local id {0} not found in object with root prim id {1}", | 986 | "DelinkFromGroup(): Child prim local id {0} not found in object with root prim id {1}", |
994 | partID, LocalId); | 987 | partID, LocalId); |
995 | } | 988 | } |
996 | } | 989 | } |
997 | 990 | ||
@@ -1008,7 +1001,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1008 | m_parts.Add(part.UUID, part); | 1001 | m_parts.Add(part.UUID, part); |
1009 | 1002 | ||
1010 | Vector3 axiomOldPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); | 1003 | Vector3 axiomOldPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); |
1011 | axiomOldPos = oldGroupRotation * axiomOldPos; | 1004 | axiomOldPos = oldGroupRotation*axiomOldPos; |
1012 | axiomOldPos += oldGroupPosition; | 1005 | axiomOldPos += oldGroupPosition; |
1013 | LLVector3 oldAbsolutePosition = new LLVector3(axiomOldPos.x, axiomOldPos.y, axiomOldPos.z); | 1006 | LLVector3 oldAbsolutePosition = new LLVector3(axiomOldPos.x, axiomOldPos.y, axiomOldPos.z); |
1014 | part.OffsetPosition = oldAbsolutePosition - AbsolutePosition; | 1007 | part.OffsetPosition = oldAbsolutePosition - AbsolutePosition; |
@@ -1018,15 +1011,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1018 | m_rootPart.RotationOffset.Z); | 1011 | m_rootPart.RotationOffset.Z); |
1019 | 1012 | ||
1020 | Vector3 axiomPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); | 1013 | Vector3 axiomPos = new Vector3(part.OffsetPosition.X, part.OffsetPosition.Y, part.OffsetPosition.Z); |
1021 | axiomPos = axiomRootRotation.Inverse() * axiomPos; | 1014 | axiomPos = axiomRootRotation.Inverse()*axiomPos; |
1022 | part.OffsetPosition = new LLVector3(axiomPos.x, axiomPos.y, axiomPos.z); | 1015 | part.OffsetPosition = new LLVector3(axiomPos.x, axiomPos.y, axiomPos.z); |
1023 | 1016 | ||
1024 | Quaternion axiomPartRotation = | 1017 | Quaternion axiomPartRotation = |
1025 | new Quaternion(part.RotationOffset.W, part.RotationOffset.X, part.RotationOffset.Y, | 1018 | new Quaternion(part.RotationOffset.W, part.RotationOffset.X, part.RotationOffset.Y, |
1026 | part.RotationOffset.Z); | 1019 | part.RotationOffset.Z); |
1027 | 1020 | ||
1028 | axiomPartRotation = oldGroupRotation * axiomPartRotation; | 1021 | axiomPartRotation = oldGroupRotation*axiomPartRotation; |
1029 | axiomPartRotation = axiomRootRotation.Inverse() * axiomPartRotation; | 1022 | axiomPartRotation = axiomRootRotation.Inverse()*axiomPartRotation; |
1030 | part.RotationOffset = | 1023 | part.RotationOffset = |
1031 | new LLQuaternion(axiomPartRotation.x, axiomPartRotation.y, axiomPartRotation.z, axiomPartRotation.w); | 1024 | new LLQuaternion(axiomPartRotation.x, axiomPartRotation.y, axiomPartRotation.z, axiomPartRotation.w); |
1032 | } | 1025 | } |
@@ -1056,12 +1049,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
1056 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; | 1049 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; |
1057 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); | 1050 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); |
1058 | proper.ObjectData[0].ItemID = LLUUID.Zero; | 1051 | proper.ObjectData[0].ItemID = LLUUID.Zero; |
1059 | proper.ObjectData[0].CreationDate = (ulong)m_rootPart.CreationDate; | 1052 | proper.ObjectData[0].CreationDate = (ulong) m_rootPart.CreationDate; |
1060 | proper.ObjectData[0].CreatorID = m_rootPart.CreatorID; | 1053 | proper.ObjectData[0].CreatorID = m_rootPart.CreatorID; |
1061 | proper.ObjectData[0].FolderID = LLUUID.Zero; | 1054 | proper.ObjectData[0].FolderID = LLUUID.Zero; |
1062 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; | 1055 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; |
1063 | proper.ObjectData[0].GroupID = LLUUID.Zero; | 1056 | proper.ObjectData[0].GroupID = LLUUID.Zero; |
1064 | proper.ObjectData[0].InventorySerial = (short)m_rootPart.InventorySerial; | 1057 | proper.ObjectData[0].InventorySerial = (short) m_rootPart.InventorySerial; |
1065 | proper.ObjectData[0].LastOwnerID = m_rootPart.LastOwnerID; | 1058 | proper.ObjectData[0].LastOwnerID = m_rootPart.LastOwnerID; |
1066 | proper.ObjectData[0].ObjectID = UUID; | 1059 | proper.ObjectData[0].ObjectID = UUID; |
1067 | proper.ObjectData[0].OwnerID = m_rootPart.OwnerID; | 1060 | proper.ObjectData[0].OwnerID = m_rootPart.OwnerID; |
@@ -1155,7 +1148,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1155 | else | 1148 | else |
1156 | { | 1149 | { |
1157 | MainLog.Instance.Warn( | 1150 | MainLog.Instance.Warn( |
1158 | "SCENE", | 1151 | "SCENE", |
1159 | "Couldn't find part {0} in object group {1} ({2}) to retreive prim inventory", | 1152 | "Couldn't find part {0} in object group {1} ({2}) to retreive prim inventory", |
1160 | localID, LocalId, UUID); | 1153 | localID, LocalId, UUID); |
1161 | } | 1154 | } |
@@ -1272,10 +1265,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1272 | public void UpdatePermissions(LLUUID AgentID, byte field, uint localID, uint mask, byte addRemTF) | 1265 | public void UpdatePermissions(LLUUID AgentID, byte field, uint localID, uint mask, byte addRemTF) |
1273 | { | 1266 | { |
1274 | SceneObjectPart updatePart = GetChildPart(localID); | 1267 | SceneObjectPart updatePart = GetChildPart(localID); |
1275 | updatePart.UpdatePermissions(AgentID,field,localID,mask,addRemTF); | 1268 | updatePart.UpdatePermissions(AgentID, field, localID, mask, addRemTF); |
1276 | } | 1269 | } |
1277 | |||
1278 | |||
1279 | 1270 | ||
1280 | #endregion | 1271 | #endregion |
1281 | 1272 | ||
@@ -1304,9 +1295,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1304 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, | 1295 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, |
1305 | m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), | 1296 | m_rootPart.RotationOffset.Y, m_rootPart.RotationOffset.Z), |
1306 | m_rootPart.PhysActor.IsPhysical); | 1297 | m_rootPart.PhysActor.IsPhysical); |
1307 | bool UsePhysics = ((m_rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 1298 | bool UsePhysics = ((m_rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); |
1308 | m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); | 1299 | m_rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
1309 | |||
1310 | } | 1300 | } |
1311 | } | 1301 | } |
1312 | 1302 | ||
@@ -1350,11 +1340,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1350 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) | 1340 | if (m_scene.EventManager.TriggerGroupMove(UUID, pos)) |
1351 | { | 1341 | { |
1352 | AbsolutePosition = pos; | 1342 | AbsolutePosition = pos; |
1353 | |||
1354 | } | 1343 | } |
1355 | //we need to do a terse update even if the move wasn't allowed | 1344 | //we need to do a terse update even if the move wasn't allowed |
1356 | // so that the position is reset in the client (the object snaps back) | 1345 | // so that the position is reset in the client (the object snaps back) |
1357 | ScheduleGroupForTerseUpdate(); | 1346 | ScheduleGroupForTerseUpdate(); |
1358 | } | 1347 | } |
1359 | 1348 | ||
1360 | /// <summary> | 1349 | /// <summary> |
@@ -1394,7 +1383,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1394 | Quaternion partRotation = | 1383 | Quaternion partRotation = |
1395 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, | 1384 | new Quaternion(m_rootPart.RotationOffset.W, m_rootPart.RotationOffset.X, m_rootPart.RotationOffset.Y, |
1396 | m_rootPart.RotationOffset.Z); | 1385 | m_rootPart.RotationOffset.Z); |
1397 | axDiff = partRotation.Inverse() * axDiff; | 1386 | axDiff = partRotation.Inverse()*axDiff; |
1398 | diff.X = axDiff.x; | 1387 | diff.X = axDiff.x; |
1399 | diff.Y = axDiff.y; | 1388 | diff.Y = axDiff.y; |
1400 | diff.Z = axDiff.z; | 1389 | diff.Z = axDiff.z; |
@@ -1496,14 +1485,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
1496 | if (prim.UUID != m_rootPart.UUID) | 1485 | if (prim.UUID != m_rootPart.UUID) |
1497 | { | 1486 | { |
1498 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); | 1487 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); |
1499 | axPos = oldParentRot * axPos; | 1488 | axPos = oldParentRot*axPos; |
1500 | axPos = axRot.Inverse() * axPos; | 1489 | axPos = axRot.Inverse()*axPos; |
1501 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 1490 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
1502 | Quaternion primsRot = | 1491 | Quaternion primsRot = |
1503 | new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, | 1492 | new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, |
1504 | prim.RotationOffset.Z); | 1493 | prim.RotationOffset.Z); |
1505 | Quaternion newRot = oldParentRot * primsRot; | 1494 | Quaternion newRot = oldParentRot*primsRot; |
1506 | newRot = axRot.Inverse() * newRot; | 1495 | newRot = axRot.Inverse()*newRot; |
1507 | prim.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); | 1496 | prim.RotationOffset = new LLQuaternion(newRot.x, newRot.y, newRot.z, newRot.w); |
1508 | prim.ScheduleTerseUpdate(); | 1497 | prim.ScheduleTerseUpdate(); |
1509 | } | 1498 | } |
@@ -1736,10 +1725,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1736 | 1725 | ||
1737 | public override void SetText(string text, Vector3 color, double alpha) | 1726 | public override void SetText(string text, Vector3 color, double alpha) |
1738 | { | 1727 | { |
1739 | Color = Color.FromArgb(0xff - (int)(alpha * 0xff), | 1728 | Color = Color.FromArgb(0xff - (int) (alpha*0xff), |
1740 | (int)(color.x * 0xff), | 1729 | (int) (color.x*0xff), |
1741 | (int)(color.y * 0xff), | 1730 | (int) (color.y*0xff), |
1742 | (int)(color.z * 0xff)); | 1731 | (int) (color.z*0xff)); |
1743 | Text = text; | 1732 | Text = text; |
1744 | } | 1733 | } |
1745 | 1734 | ||
@@ -1748,4 +1737,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
1748 | m_rootPart.ApplyPhysics(); | 1737 | m_rootPart.ApplyPhysics(); |
1749 | } | 1738 | } |
1750 | } | 1739 | } |
1751 | } | 1740 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs index f226150..90a975c 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Drawing; | ||
31 | using System.Xml; | 32 | using System.Xml; |
32 | using System.Xml.Serialization; | 33 | using System.Xml.Serialization; |
33 | using Axiom.Math; | 34 | using Axiom.Math; |
@@ -38,23 +39,26 @@ using OpenSim.Framework.Console; | |||
38 | using OpenSim.Region.Environment.Interfaces; | 39 | using OpenSim.Region.Environment.Interfaces; |
39 | using OpenSim.Region.Environment.Scenes.Scripting; | 40 | using OpenSim.Region.Environment.Scenes.Scripting; |
40 | using OpenSim.Region.Physics.Manager; | 41 | using OpenSim.Region.Physics.Manager; |
41 | using System.Drawing; | ||
42 | 42 | ||
43 | namespace OpenSim.Region.Environment.Scenes | 43 | namespace OpenSim.Region.Environment.Scenes |
44 | { | 44 | { |
45 | public class SceneObjectPart : IScriptHost | 45 | public class SceneObjectPart : IScriptHost |
46 | { | 46 | { |
47 | private const LLObject.ObjectFlags OBJFULL_MASK_GENERAL = LLObject.ObjectFlags.ObjectCopy | LLObject.ObjectFlags.ObjectModify | LLObject.ObjectFlags.ObjectTransfer; | 47 | private const LLObject.ObjectFlags OBJFULL_MASK_GENERAL = |
48 | private const LLObject.ObjectFlags OBJFULL_MASK_OWNER = LLObject.ObjectFlags.ObjectCopy | LLObject.ObjectFlags.ObjectModify | LLObject.ObjectFlags.ObjectOwnerModify | LLObject.ObjectFlags.ObjectTransfer | LLObject.ObjectFlags.ObjectYouOwner; | 48 | LLObject.ObjectFlags.ObjectCopy | LLObject.ObjectFlags.ObjectModify | LLObject.ObjectFlags.ObjectTransfer; |
49 | |||
50 | private const LLObject.ObjectFlags OBJFULL_MASK_OWNER = | ||
51 | LLObject.ObjectFlags.ObjectCopy | LLObject.ObjectFlags.ObjectModify | LLObject.ObjectFlags.ObjectOwnerModify | | ||
52 | LLObject.ObjectFlags.ObjectTransfer | LLObject.ObjectFlags.ObjectYouOwner; | ||
53 | |||
49 | private const uint OBJNEXT_OWNER = 2147483647; | 54 | private const uint OBJNEXT_OWNER = 2147483647; |
50 | 55 | ||
51 | private const uint FULL_MASK_PERMISSIONS_GENERAL = 2147483647; | 56 | private const uint FULL_MASK_PERMISSIONS_GENERAL = 2147483647; |
52 | private const uint FULL_MASK_PERMISSIONS_OWNER = 2147483647; | 57 | private const uint FULL_MASK_PERMISSIONS_OWNER = 2147483647; |
53 | private string m_inventoryFileName = ""; | 58 | private string m_inventoryFileName = ""; |
54 | private LLUUID m_folderID = LLUUID.Zero; | 59 | private LLUUID m_folderID = LLUUID.Zero; |
55 | 60 | ||
56 | [XmlIgnore] | 61 | [XmlIgnore] public PhysicsActor PhysActor = null; |
57 | public PhysicsActor PhysActor = null; | ||
58 | 62 | ||
59 | protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>(); | 63 | protected Dictionary<LLUUID, TaskInventoryItem> TaskInventory = new Dictionary<LLUUID, TaskInventoryItem>(); |
60 | public LLUUID LastOwnerID; | 64 | public LLUUID LastOwnerID; |
@@ -72,25 +76,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
72 | private Quaternion m_sitTargetOrientation = new Quaternion(0, 0, 0, 1); | 76 | private Quaternion m_sitTargetOrientation = new Quaternion(0, 0, 0, 1); |
73 | private LLUUID m_SitTargetAvatar = LLUUID.Zero; | 77 | private LLUUID m_SitTargetAvatar = LLUUID.Zero; |
74 | 78 | ||
75 | |||
76 | |||
77 | 79 | ||
78 | // Main grid has default permissions as follows | 80 | // Main grid has default permissions as follows |
79 | // | 81 | // |
80 | public uint OwnerMask = FULL_MASK_PERMISSIONS_OWNER; | 82 | public uint OwnerMask = FULL_MASK_PERMISSIONS_OWNER; |
81 | public uint NextOwnerMask = OBJNEXT_OWNER; | 83 | public uint NextOwnerMask = OBJNEXT_OWNER; |
82 | public uint GroupMask = (uint) LLObject.ObjectFlags.None; | 84 | public uint GroupMask = (uint) LLObject.ObjectFlags.None; |
83 | public uint EveryoneMask = (uint) LLObject.ObjectFlags.None; | 85 | public uint EveryoneMask = (uint) LLObject.ObjectFlags.None; |
84 | public uint BaseMask = FULL_MASK_PERMISSIONS_OWNER; | 86 | public uint BaseMask = FULL_MASK_PERMISSIONS_OWNER; |
85 | 87 | ||
86 | protected byte[] m_particleSystem = new byte[0]; | 88 | protected byte[] m_particleSystem = new byte[0]; |
87 | 89 | ||
88 | [XmlIgnore] | 90 | [XmlIgnore] public uint TimeStampFull = 0; |
89 | public uint TimeStampFull = 0; | 91 | [XmlIgnore] public uint TimeStampTerse = 0; |
90 | [XmlIgnore] | 92 | [XmlIgnore] public uint TimeStampLastActivity = 0; // Will be used for AutoReturn |
91 | public uint TimeStampTerse = 0; | ||
92 | [XmlIgnore] | ||
93 | public uint TimeStampLastActivity = 0; // Will be used for AutoReturn | ||
94 | 93 | ||
95 | /// <summary> | 94 | /// <summary> |
96 | /// Only used internally to schedule client updates | 95 | /// Only used internally to schedule client updates |
@@ -145,16 +144,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
145 | 144 | ||
146 | public uint ObjectFlags | 145 | public uint ObjectFlags |
147 | { | 146 | { |
148 | get { return (uint)m_flags; } | 147 | get { return (uint) m_flags; } |
149 | set { m_flags = (LLObject.ObjectFlags)value; } | 148 | set { m_flags = (LLObject.ObjectFlags) value; } |
150 | } | 149 | } |
151 | 150 | ||
152 | protected LLObject.MaterialType m_material = 0; | 151 | protected LLObject.MaterialType m_material = 0; |
153 | 152 | ||
154 | public byte Material | 153 | public byte Material |
155 | { | 154 | { |
156 | get { return (byte)m_material; } | 155 | get { return (byte) m_material; } |
157 | set { m_material = (LLObject.MaterialType)value; } | 156 | set { m_material = (LLObject.MaterialType) value; } |
158 | } | 157 | } |
159 | 158 | ||
160 | protected ulong m_regionHandle; | 159 | protected ulong m_regionHandle; |
@@ -168,7 +167,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
168 | //unkown if this will be kept, added as a way of removing the group position from the group class | 167 | //unkown if this will be kept, added as a way of removing the group position from the group class |
169 | protected LLVector3 m_groupPosition; | 168 | protected LLVector3 m_groupPosition; |
170 | 169 | ||
171 | |||
172 | 170 | ||
173 | public LLVector3 GroupPosition | 171 | public LLVector3 GroupPosition |
174 | { | 172 | { |
@@ -225,7 +223,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
225 | if (PhysActor != null) | 223 | if (PhysActor != null) |
226 | { | 224 | { |
227 | if (PhysActor.Orientation.x != 0 || PhysActor.Orientation.y != 0 | 225 | if (PhysActor.Orientation.x != 0 || PhysActor.Orientation.y != 0 |
228 | || PhysActor.Orientation.z != 0 || PhysActor.Orientation.w != 0) | 226 | || PhysActor.Orientation.z != 0 || PhysActor.Orientation.w != 0) |
229 | { | 227 | { |
230 | m_rotationOffset.X = PhysActor.Orientation.x; | 228 | m_rotationOffset.X = PhysActor.Orientation.x; |
231 | m_rotationOffset.Y = PhysActor.Orientation.y; | 229 | m_rotationOffset.Y = PhysActor.Orientation.y; |
@@ -281,6 +279,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
281 | } | 279 | } |
282 | set { m_velocity = value; } | 280 | set { m_velocity = value; } |
283 | } | 281 | } |
282 | |||
284 | public LLVector3 RotationalVelocity | 283 | public LLVector3 RotationalVelocity |
285 | { | 284 | { |
286 | get | 285 | get |
@@ -351,6 +350,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
351 | { | 350 | { |
352 | get { return m_sitTargetPosition; } | 351 | get { return m_sitTargetPosition; } |
353 | } | 352 | } |
353 | |||
354 | public Quaternion SitTargetOrientation | 354 | public Quaternion SitTargetOrientation |
355 | { | 355 | { |
356 | get { return m_sitTargetOrientation; } | 356 | get { return m_sitTargetOrientation; } |
@@ -383,6 +383,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
383 | } | 383 | } |
384 | 384 | ||
385 | private int m_linkNum = 0; | 385 | private int m_linkNum = 0; |
386 | |||
386 | public int LinkNum | 387 | public int LinkNum |
387 | { | 388 | { |
388 | get { return m_linkNum; } | 389 | get { return m_linkNum; } |
@@ -390,13 +391,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
390 | } | 391 | } |
391 | 392 | ||
392 | private byte m_clickAction = 0; | 393 | private byte m_clickAction = 0; |
394 | |||
393 | public byte ClickAction | 395 | public byte ClickAction |
394 | { | 396 | { |
395 | get { return m_clickAction; } | 397 | get { return m_clickAction; } |
396 | set | 398 | set |
397 | { | 399 | { |
398 | m_clickAction = value; | 400 | m_clickAction = value; |
399 | this.ScheduleFullUpdate(); | 401 | ScheduleFullUpdate(); |
400 | } | 402 | } |
401 | } | 403 | } |
402 | 404 | ||
@@ -423,6 +425,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
423 | 425 | ||
424 | // FIXME, TODO, ERROR: 'ParentGroup' can't be in here, move it out. | 426 | // FIXME, TODO, ERROR: 'ParentGroup' can't be in here, move it out. |
425 | protected SceneObjectGroup m_parentGroup; | 427 | protected SceneObjectGroup m_parentGroup; |
428 | |||
426 | public SceneObjectGroup ParentGroup | 429 | public SceneObjectGroup ParentGroup |
427 | { | 430 | { |
428 | get { return m_parentGroup; } | 431 | get { return m_parentGroup; } |
@@ -434,7 +437,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
434 | set { m_updateFlag = value; } | 437 | set { m_updateFlag = value; } |
435 | } | 438 | } |
436 | 439 | ||
437 | |||
438 | #region Constructors | 440 | #region Constructors |
439 | 441 | ||
440 | /// <summary> | 442 | /// <summary> |
@@ -469,18 +471,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
469 | m_regionHandle = regionHandle; | 471 | m_regionHandle = regionHandle; |
470 | m_parentGroup = parent; | 472 | m_parentGroup = parent; |
471 | 473 | ||
472 | CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; | 474 | CreationDate = (Int32) (DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; |
473 | OwnerID = ownerID; | 475 | OwnerID = ownerID; |
474 | CreatorID = OwnerID; | 476 | CreatorID = OwnerID; |
475 | LastOwnerID = LLUUID.Zero; | 477 | LastOwnerID = LLUUID.Zero; |
476 | UUID = LLUUID.Random(); | 478 | UUID = LLUUID.Random(); |
477 | LocalID = (uint)(localID); | 479 | LocalID = (uint) (localID); |
478 | Shape = shape; | 480 | Shape = shape; |
479 | // Todo: Add More Object Parameter from above! | 481 | // Todo: Add More Object Parameter from above! |
480 | OwnershipCost = 0; | 482 | OwnershipCost = 0; |
481 | ObjectSaleType = (byte)0; | 483 | ObjectSaleType = (byte) 0; |
482 | SalePrice = 0; | 484 | SalePrice = 0; |
483 | Category = (uint)0; | 485 | Category = (uint) 0; |
484 | LastOwnerID = CreatorID; | 486 | LastOwnerID = CreatorID; |
485 | // End Todo: /// | 487 | // End Todo: /// |
486 | GroupPosition = groupPosition; | 488 | GroupPosition = groupPosition; |
@@ -495,9 +497,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
495 | m_folderID = LLUUID.Random(); | 497 | m_folderID = LLUUID.Random(); |
496 | 498 | ||
497 | m_flags = 0; | 499 | m_flags = 0; |
498 | m_flags |= LLObject.ObjectFlags.Touch | | 500 | m_flags |= LLObject.ObjectFlags.Touch | |
499 | LLObject.ObjectFlags.AllowInventoryDrop | | 501 | LLObject.ObjectFlags.AllowInventoryDrop | |
500 | LLObject.ObjectFlags.CreateSelected; | 502 | LLObject.ObjectFlags.CreateSelected; |
501 | 503 | ||
502 | ApplySanePermissions(); | 504 | ApplySanePermissions(); |
503 | 505 | ||
@@ -520,18 +522,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
520 | { | 522 | { |
521 | m_regionHandle = regionHandle; | 523 | m_regionHandle = regionHandle; |
522 | m_parentGroup = parent; | 524 | m_parentGroup = parent; |
523 | TimeStampTerse = (uint)Util.UnixTimeSinceEpoch(); | 525 | TimeStampTerse = (uint) Util.UnixTimeSinceEpoch(); |
524 | CreationDate = creationDate; | 526 | CreationDate = creationDate; |
525 | OwnerID = ownerID; | 527 | OwnerID = ownerID; |
526 | CreatorID = creatorID; | 528 | CreatorID = creatorID; |
527 | LastOwnerID = lastOwnerID; | 529 | LastOwnerID = lastOwnerID; |
528 | UUID = LLUUID.Random(); | 530 | UUID = LLUUID.Random(); |
529 | LocalID = (uint)(localID); | 531 | LocalID = (uint) (localID); |
530 | Shape = shape; | 532 | Shape = shape; |
531 | OwnershipCost = 0; | 533 | OwnershipCost = 0; |
532 | ObjectSaleType = (byte)0; | 534 | ObjectSaleType = (byte) 0; |
533 | SalePrice = 0; | 535 | SalePrice = 0; |
534 | Category = (uint)0; | 536 | Category = (uint) 0; |
535 | LastOwnerID = CreatorID; | 537 | LastOwnerID = CreatorID; |
536 | OffsetPosition = position; | 538 | OffsetPosition = position; |
537 | RotationOffset = rotation; | 539 | RotationOffset = rotation; |
@@ -552,18 +554,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
552 | /// <returns></returns> | 554 | /// <returns></returns> |
553 | public static SceneObjectPart FromXml(XmlReader xmlReader) | 555 | public static SceneObjectPart FromXml(XmlReader xmlReader) |
554 | { | 556 | { |
555 | XmlSerializer serializer = new XmlSerializer(typeof(SceneObjectPart)); | 557 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
556 | SceneObjectPart newobject = (SceneObjectPart)serializer.Deserialize(xmlReader); | 558 | SceneObjectPart newobject = (SceneObjectPart) serializer.Deserialize(xmlReader); |
557 | return newobject; | 559 | return newobject; |
558 | } | 560 | } |
559 | 561 | ||
560 | public void ApplyPhysics() | 562 | public void ApplyPhysics() |
561 | { | 563 | { |
562 | bool isPhysical = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 564 | bool isPhysical = ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); |
563 | bool isPhantom = ((ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) != 0); | 565 | bool isPhantom = ((ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) != 0); |
564 | 566 | ||
565 | bool usePhysics = isPhysical && !isPhantom; | 567 | bool usePhysics = isPhysical && !isPhantom; |
566 | 568 | ||
567 | if (usePhysics) | 569 | if (usePhysics) |
568 | { | 570 | { |
569 | PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape( | 571 | PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape( |
@@ -576,101 +578,102 @@ namespace OpenSim.Region.Environment.Scenes | |||
576 | RotationOffset.Y, RotationOffset.Z), usePhysics); | 578 | RotationOffset.Y, RotationOffset.Z), usePhysics); |
577 | } | 579 | } |
578 | 580 | ||
579 | DoPhysicsPropertyUpdate(usePhysics, true); | 581 | DoPhysicsPropertyUpdate(usePhysics, true); |
580 | } | 582 | } |
583 | |||
581 | public void ApplyNextOwnerPermissions() | 584 | public void ApplyNextOwnerPermissions() |
582 | { | 585 | { |
583 | BaseMask = NextOwnerMask; | 586 | BaseMask = NextOwnerMask; |
584 | OwnerMask = NextOwnerMask; | 587 | OwnerMask = NextOwnerMask; |
585 | } | 588 | } |
589 | |||
586 | public void ApplySanePermissions() | 590 | public void ApplySanePermissions() |
587 | { | 591 | { |
588 | // These are some flags that The OwnerMask should never have | 592 | // These are some flags that The OwnerMask should never have |
589 | OwnerMask &= ~(uint)LLObject.ObjectFlags.ObjectGroupOwned; | 593 | OwnerMask &= ~(uint) LLObject.ObjectFlags.ObjectGroupOwned; |
590 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Physics; | 594 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Physics; |
591 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Phantom; | 595 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Phantom; |
592 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Scripted; | 596 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Scripted; |
593 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Touch; | 597 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Touch; |
594 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Temporary; | 598 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Temporary; |
595 | OwnerMask &= ~(uint)LLObject.ObjectFlags.TemporaryOnRez; | 599 | OwnerMask &= ~(uint) LLObject.ObjectFlags.TemporaryOnRez; |
596 | OwnerMask &= ~(uint)LLObject.ObjectFlags.ZlibCompressed; | 600 | OwnerMask &= ~(uint) LLObject.ObjectFlags.ZlibCompressed; |
597 | OwnerMask &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | 601 | OwnerMask &= ~(uint) LLObject.ObjectFlags.AllowInventoryDrop; |
598 | OwnerMask &= ~(uint)LLObject.ObjectFlags.AnimSource; | 602 | OwnerMask &= ~(uint) LLObject.ObjectFlags.AnimSource; |
599 | OwnerMask &= ~(uint)LLObject.ObjectFlags.Money; | 603 | OwnerMask &= ~(uint) LLObject.ObjectFlags.Money; |
600 | OwnerMask &= ~(uint)LLObject.ObjectFlags.CastShadows; | 604 | OwnerMask &= ~(uint) LLObject.ObjectFlags.CastShadows; |
601 | OwnerMask &= ~(uint)LLObject.ObjectFlags.InventoryEmpty; | 605 | OwnerMask &= ~(uint) LLObject.ObjectFlags.InventoryEmpty; |
602 | OwnerMask &= ~(uint)LLObject.ObjectFlags.CreateSelected; | 606 | OwnerMask &= ~(uint) LLObject.ObjectFlags.CreateSelected; |
603 | 607 | ||
604 | 608 | ||
605 | // These are some flags that the next owner mask should never have | 609 | // These are some flags that the next owner mask should never have |
606 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; | 610 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.ObjectYouOwner; |
607 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | 611 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.ObjectTransfer; |
608 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.ObjectOwnerModify; | 612 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.ObjectOwnerModify; |
609 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.ObjectGroupOwned; | 613 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.ObjectGroupOwned; |
610 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Physics; | 614 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Physics; |
611 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Phantom; | 615 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Phantom; |
612 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Scripted; | 616 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Scripted; |
613 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Touch; | 617 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Touch; |
614 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Temporary; | 618 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Temporary; |
615 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.TemporaryOnRez; | 619 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.TemporaryOnRez; |
616 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.ZlibCompressed; | 620 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.ZlibCompressed; |
617 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | 621 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.AllowInventoryDrop; |
618 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.AnimSource; | 622 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.AnimSource; |
619 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.Money; | 623 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.Money; |
620 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.CastShadows; | 624 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.CastShadows; |
621 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.InventoryEmpty; | 625 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.InventoryEmpty; |
622 | NextOwnerMask &= ~(uint)LLObject.ObjectFlags.CreateSelected; | 626 | NextOwnerMask &= ~(uint) LLObject.ObjectFlags.CreateSelected; |
623 | 627 | ||
624 | 628 | ||
625 | // These are some flags that the GroupMask should never have | 629 | // These are some flags that the GroupMask should never have |
626 | GroupMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; | 630 | GroupMask &= ~(uint) LLObject.ObjectFlags.ObjectYouOwner; |
627 | GroupMask &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | 631 | GroupMask &= ~(uint) LLObject.ObjectFlags.ObjectTransfer; |
628 | GroupMask &= ~(uint)LLObject.ObjectFlags.ObjectOwnerModify; | 632 | GroupMask &= ~(uint) LLObject.ObjectFlags.ObjectOwnerModify; |
629 | GroupMask &= ~(uint)LLObject.ObjectFlags.ObjectGroupOwned; | 633 | GroupMask &= ~(uint) LLObject.ObjectFlags.ObjectGroupOwned; |
630 | GroupMask &= ~(uint)LLObject.ObjectFlags.Physics; | 634 | GroupMask &= ~(uint) LLObject.ObjectFlags.Physics; |
631 | GroupMask &= ~(uint)LLObject.ObjectFlags.Phantom; | 635 | GroupMask &= ~(uint) LLObject.ObjectFlags.Phantom; |
632 | GroupMask &= ~(uint)LLObject.ObjectFlags.Scripted; | 636 | GroupMask &= ~(uint) LLObject.ObjectFlags.Scripted; |
633 | GroupMask &= ~(uint)LLObject.ObjectFlags.Touch; | 637 | GroupMask &= ~(uint) LLObject.ObjectFlags.Touch; |
634 | GroupMask &= ~(uint)LLObject.ObjectFlags.Temporary; | 638 | GroupMask &= ~(uint) LLObject.ObjectFlags.Temporary; |
635 | GroupMask &= ~(uint)LLObject.ObjectFlags.TemporaryOnRez; | 639 | GroupMask &= ~(uint) LLObject.ObjectFlags.TemporaryOnRez; |
636 | GroupMask &= ~(uint)LLObject.ObjectFlags.ZlibCompressed; | 640 | GroupMask &= ~(uint) LLObject.ObjectFlags.ZlibCompressed; |
637 | GroupMask &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | 641 | GroupMask &= ~(uint) LLObject.ObjectFlags.AllowInventoryDrop; |
638 | GroupMask &= ~(uint)LLObject.ObjectFlags.AnimSource; | 642 | GroupMask &= ~(uint) LLObject.ObjectFlags.AnimSource; |
639 | GroupMask &= ~(uint)LLObject.ObjectFlags.Money; | 643 | GroupMask &= ~(uint) LLObject.ObjectFlags.Money; |
640 | GroupMask &= ~(uint)LLObject.ObjectFlags.CastShadows; | 644 | GroupMask &= ~(uint) LLObject.ObjectFlags.CastShadows; |
641 | GroupMask &= ~(uint)LLObject.ObjectFlags.InventoryEmpty; | 645 | GroupMask &= ~(uint) LLObject.ObjectFlags.InventoryEmpty; |
642 | GroupMask &= ~(uint)LLObject.ObjectFlags.CreateSelected; | 646 | GroupMask &= ~(uint) LLObject.ObjectFlags.CreateSelected; |
643 | 647 | ||
644 | 648 | ||
645 | // These are some flags that EveryoneMask should never have | 649 | // These are some flags that EveryoneMask should never have |
646 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; | 650 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.ObjectYouOwner; |
647 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | 651 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.ObjectTransfer; |
648 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectOwnerModify; | 652 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.ObjectOwnerModify; |
649 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ObjectGroupOwned; | 653 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.ObjectGroupOwned; |
650 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Physics; | 654 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Physics; |
651 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Phantom; | 655 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Phantom; |
652 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Scripted; | 656 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Scripted; |
653 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Touch; | 657 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Touch; |
654 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Temporary; | 658 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Temporary; |
655 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.TemporaryOnRez; | 659 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.TemporaryOnRez; |
656 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.ZlibCompressed; | 660 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.ZlibCompressed; |
657 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.AllowInventoryDrop; | 661 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.AllowInventoryDrop; |
658 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.AnimSource; | 662 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.AnimSource; |
659 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.Money; | 663 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.Money; |
660 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.CastShadows; | 664 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.CastShadows; |
661 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.InventoryEmpty; | 665 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.InventoryEmpty; |
662 | EveryoneMask &= ~(uint)LLObject.ObjectFlags.CreateSelected; | 666 | EveryoneMask &= ~(uint) LLObject.ObjectFlags.CreateSelected; |
663 | |||
664 | 667 | ||
665 | // These are some flags that ObjectFlags (m_flags) should never have | ||
666 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectYouOwner; | ||
667 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectTransfer; | ||
668 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectOwnerModify; | ||
669 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectYouOfficer; | ||
670 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectCopy; | ||
671 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectModify; | ||
672 | ObjectFlags &= ~(uint)LLObject.ObjectFlags.ObjectMove; | ||
673 | 668 | ||
669 | // These are some flags that ObjectFlags (m_flags) should never have | ||
670 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectYouOwner; | ||
671 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectTransfer; | ||
672 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectOwnerModify; | ||
673 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectYouOfficer; | ||
674 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectCopy; | ||
675 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectModify; | ||
676 | ObjectFlags &= ~(uint) LLObject.ObjectFlags.ObjectMove; | ||
674 | } | 677 | } |
675 | 678 | ||
676 | /// <summary> | 679 | /// <summary> |
@@ -679,13 +682,12 @@ namespace OpenSim.Region.Environment.Scenes | |||
679 | /// <param name="xmlWriter"></param> | 682 | /// <param name="xmlWriter"></param> |
680 | public void ToXml(XmlWriter xmlWriter) | 683 | public void ToXml(XmlWriter xmlWriter) |
681 | { | 684 | { |
682 | XmlSerializer serializer = new XmlSerializer(typeof(SceneObjectPart)); | 685 | XmlSerializer serializer = new XmlSerializer(typeof (SceneObjectPart)); |
683 | serializer.Serialize(xmlWriter, this); | 686 | serializer.Serialize(xmlWriter, this); |
684 | } | 687 | } |
685 | 688 | ||
686 | public EntityIntersection TestIntersection(Ray iray, Quaternion parentrot) | 689 | public EntityIntersection TestIntersection(Ray iray, Quaternion parentrot) |
687 | { | 690 | { |
688 | |||
689 | // In this case we're using a sphere with a radius of the largest dimention of the prim | 691 | // In this case we're using a sphere with a radius of the largest dimention of the prim |
690 | // TODO: Change to take shape into account | 692 | // TODO: Change to take shape into account |
691 | 693 | ||
@@ -693,35 +695,34 @@ namespace OpenSim.Region.Environment.Scenes | |||
693 | EntityIntersection returnresult = new EntityIntersection(); | 695 | EntityIntersection returnresult = new EntityIntersection(); |
694 | Vector3 vAbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); | 696 | Vector3 vAbsolutePosition = new Vector3(AbsolutePosition.X, AbsolutePosition.Y, AbsolutePosition.Z); |
695 | Vector3 vScale = new Vector3(Scale.X, Scale.Y, Scale.Z); | 697 | Vector3 vScale = new Vector3(Scale.X, Scale.Y, Scale.Z); |
696 | Quaternion qRotation = new Quaternion(RotationOffset.W, RotationOffset.X, RotationOffset.Y, RotationOffset.Z); | 698 | Quaternion qRotation = |
697 | 699 | new Quaternion(RotationOffset.W, RotationOffset.X, RotationOffset.Y, RotationOffset.Z); | |
698 | 700 | ||
699 | 701 | ||
700 | Quaternion worldRotation = (qRotation * parentrot); | 702 | Quaternion worldRotation = (qRotation*parentrot); |
701 | Matrix3 worldRotM = worldRotation.ToRotationMatrix(); | 703 | Matrix3 worldRotM = worldRotation.ToRotationMatrix(); |
702 | 704 | ||
703 | 705 | ||
704 | |||
705 | Vector3 rOrigin = iray.Origin; | 706 | Vector3 rOrigin = iray.Origin; |
706 | Vector3 rDirection = iray.Direction; | 707 | Vector3 rDirection = iray.Direction; |
707 | 708 | ||
708 | 709 | ||
709 | // Buidling the first part of the Quadratic equation | 710 | // Buidling the first part of the Quadratic equation |
710 | Vector3 r2ndDirection = rDirection * rDirection; | 711 | Vector3 r2ndDirection = rDirection*rDirection; |
711 | float itestPart1 = r2ndDirection.x + r2ndDirection.y + r2ndDirection.z; | 712 | float itestPart1 = r2ndDirection.x + r2ndDirection.y + r2ndDirection.z; |
712 | 713 | ||
713 | // Buidling the second part of the Quadratic equation | 714 | // Buidling the second part of the Quadratic equation |
714 | Vector3 tmVal2 = rOrigin - vAbsolutePosition; | 715 | Vector3 tmVal2 = rOrigin - vAbsolutePosition; |
715 | Vector3 r2Direction = rDirection * 2.0f; | 716 | Vector3 r2Direction = rDirection*2.0f; |
716 | Vector3 tmVal3 = r2Direction * tmVal2; | 717 | Vector3 tmVal3 = r2Direction*tmVal2; |
717 | 718 | ||
718 | float itestPart2 = tmVal3.x + tmVal3.y + tmVal3.z; | 719 | float itestPart2 = tmVal3.x + tmVal3.y + tmVal3.z; |
719 | 720 | ||
720 | // Buidling the third part of the Quadratic equation | 721 | // Buidling the third part of the Quadratic equation |
721 | Vector3 tmVal4 = rOrigin * rOrigin; | 722 | Vector3 tmVal4 = rOrigin*rOrigin; |
722 | Vector3 tmVal5 = vAbsolutePosition * vAbsolutePosition; | 723 | Vector3 tmVal5 = vAbsolutePosition*vAbsolutePosition; |
723 | 724 | ||
724 | Vector3 tmVal6 = vAbsolutePosition * rOrigin; | 725 | Vector3 tmVal6 = vAbsolutePosition*rOrigin; |
725 | 726 | ||
726 | 727 | ||
727 | // Set Radius to the largest dimention of the prim | 728 | // Set Radius to the largest dimention of the prim |
@@ -735,21 +736,22 @@ namespace OpenSim.Region.Environment.Scenes | |||
735 | 736 | ||
736 | //radius = radius; | 737 | //radius = radius; |
737 | 738 | ||
738 | float itestPart3 = tmVal4.x + tmVal4.y + tmVal4.z + tmVal5.x + tmVal5.y + tmVal5.z - (2.0f * (tmVal6.x + tmVal6.y + tmVal6.z + (radius * radius))); | 739 | float itestPart3 = tmVal4.x + tmVal4.y + tmVal4.z + tmVal5.x + tmVal5.y + tmVal5.z - |
740 | (2.0f*(tmVal6.x + tmVal6.y + tmVal6.z + (radius*radius))); | ||
739 | 741 | ||
740 | // Yuk Quadradrics.. Solve first | 742 | // Yuk Quadradrics.. Solve first |
741 | float rootsqr = (itestPart2 * itestPart2) - (4.0f * itestPart1 * itestPart3); | 743 | float rootsqr = (itestPart2*itestPart2) - (4.0f*itestPart1*itestPart3); |
742 | if (rootsqr < 0.0f) | 744 | if (rootsqr < 0.0f) |
743 | { | 745 | { |
744 | // No intersection | 746 | // No intersection |
745 | return returnresult; | 747 | return returnresult; |
746 | } | 748 | } |
747 | float root = ((-itestPart2) - (float)Math.Sqrt((double)rootsqr)) / (itestPart1 * 2.0f); | 749 | float root = ((-itestPart2) - (float) Math.Sqrt((double) rootsqr))/(itestPart1*2.0f); |
748 | 750 | ||
749 | if (root < 0.0f) | 751 | if (root < 0.0f) |
750 | { | 752 | { |
751 | // perform second quadratic root solution | 753 | // perform second quadratic root solution |
752 | root = ((-itestPart2) + (float)Math.Sqrt((double)rootsqr)) / (itestPart1 * 2.0f); | 754 | root = ((-itestPart2) + (float) Math.Sqrt((double) rootsqr))/(itestPart1*2.0f); |
753 | 755 | ||
754 | // is there any intersection? | 756 | // is there any intersection? |
755 | if (root < 0.0f) | 757 | if (root < 0.0f) |
@@ -761,7 +763,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
761 | 763 | ||
762 | // We got an intersection. putting together an EntityIntersection object with the | 764 | // We got an intersection. putting together an EntityIntersection object with the |
763 | // intersection information | 765 | // intersection information |
764 | Vector3 ipoint = new Vector3(iray.Origin.x + (iray.Direction.x * root), iray.Origin.y + (iray.Direction.y * root), iray.Origin.z + (iray.Direction.z * root)); | 766 | Vector3 ipoint = |
767 | new Vector3(iray.Origin.x + (iray.Direction.x*root), iray.Origin.y + (iray.Direction.y*root), | ||
768 | iray.Origin.z + (iray.Direction.z*root)); | ||
765 | 769 | ||
766 | returnresult.HitTF = true; | 770 | returnresult.HitTF = true; |
767 | returnresult.ipoint = ipoint; | 771 | returnresult.ipoint = ipoint; |
@@ -775,7 +779,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
775 | 779 | ||
776 | LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z); | 780 | LLVector3 distanceConvert1 = new LLVector3(iray.Origin.x, iray.Origin.y, iray.Origin.z); |
777 | LLVector3 distanceConvert2 = new LLVector3(ipoint.x, ipoint.y, ipoint.z); | 781 | LLVector3 distanceConvert2 = new LLVector3(ipoint.x, ipoint.y, ipoint.z); |
778 | float distance = (float)Util.GetDistanceTo(distanceConvert1, distanceConvert2); | 782 | float distance = (float) Util.GetDistanceTo(distanceConvert1, distanceConvert2); |
779 | 783 | ||
780 | returnresult.distance = distance; | 784 | returnresult.distance = distance; |
781 | 785 | ||
@@ -783,7 +787,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
783 | } | 787 | } |
784 | 788 | ||
785 | 789 | ||
786 | |||
787 | /// <summary> | 790 | /// <summary> |
788 | /// | 791 | /// |
789 | /// </summary> | 792 | /// </summary> |
@@ -797,6 +800,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
797 | m_sitTargetPosition = offset; | 800 | m_sitTargetPosition = offset; |
798 | m_sitTargetOrientation = orientation; | 801 | m_sitTargetOrientation = orientation; |
799 | } | 802 | } |
803 | |||
800 | public LLVector3 GetSitTargetPositionLL() | 804 | public LLVector3 GetSitTargetPositionLL() |
801 | { | 805 | { |
802 | return new LLVector3(m_sitTargetPosition.x, m_sitTargetPosition.y, m_sitTargetPosition.z); | 806 | return new LLVector3(m_sitTargetPosition.x, m_sitTargetPosition.y, m_sitTargetPosition.z); |
@@ -804,13 +808,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
804 | 808 | ||
805 | public LLQuaternion GetSitTargetOrientationLL() | 809 | public LLQuaternion GetSitTargetOrientationLL() |
806 | { | 810 | { |
807 | return new LLQuaternion( m_sitTargetOrientation.x, m_sitTargetOrientation.y, m_sitTargetOrientation.z,m_sitTargetOrientation.w); | 811 | return |
812 | new LLQuaternion(m_sitTargetOrientation.x, m_sitTargetOrientation.y, m_sitTargetOrientation.z, | ||
813 | m_sitTargetOrientation.w); | ||
808 | } | 814 | } |
809 | 815 | ||
810 | // Utility function so the databases don't have to reference axiom.math | 816 | // Utility function so the databases don't have to reference axiom.math |
811 | public void SetSitTargetLL(LLVector3 offset, LLQuaternion orientation) | 817 | public void SetSitTargetLL(LLVector3 offset, LLQuaternion orientation) |
812 | { | 818 | { |
813 | if (!(offset.X == 0 && offset.Y == 0 && offset.Z == 0 && (orientation.W == 0 || orientation.W == 1) && orientation.X == 0 && orientation.Y == 0 && orientation.Z == 0)) | 819 | if ( |
820 | !(offset.X == 0 && offset.Y == 0 && offset.Z == 0 && (orientation.W == 0 || orientation.W == 1) && | ||
821 | orientation.X == 0 && orientation.Y == 0 && orientation.Z == 0)) | ||
814 | { | 822 | { |
815 | m_sitTargetPosition = new Vector3(offset.X, offset.Y, offset.Z); | 823 | m_sitTargetPosition = new Vector3(offset.X, offset.Y, offset.Z); |
816 | m_sitTargetOrientation = new Quaternion(orientation.W, orientation.X, orientation.Y, orientation.Z); | 824 | m_sitTargetOrientation = new Quaternion(orientation.W, orientation.X, orientation.Y, orientation.Z); |
@@ -869,7 +877,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
869 | /// <returns></returns> | 877 | /// <returns></returns> |
870 | public SceneObjectPart Copy(uint localID, LLUUID AgentID, LLUUID GroupID) | 878 | public SceneObjectPart Copy(uint localID, LLUUID AgentID, LLUUID GroupID) |
871 | { | 879 | { |
872 | SceneObjectPart dupe = (SceneObjectPart)MemberwiseClone(); | 880 | SceneObjectPart dupe = (SceneObjectPart) MemberwiseClone(); |
873 | dupe.m_shape = m_shape.Copy(); | 881 | dupe.m_shape = m_shape.Copy(); |
874 | dupe.m_regionHandle = m_regionHandle; | 882 | dupe.m_regionHandle = m_regionHandle; |
875 | dupe.UUID = LLUUID.Random(); | 883 | dupe.UUID = LLUUID.Random(); |
@@ -896,7 +904,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
896 | byte[] extraP = new byte[Shape.ExtraParams.Length]; | 904 | byte[] extraP = new byte[Shape.ExtraParams.Length]; |
897 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); | 905 | Array.Copy(Shape.ExtraParams, extraP, extraP.Length); |
898 | dupe.Shape.ExtraParams = extraP; | 906 | dupe.Shape.ExtraParams = extraP; |
899 | bool UsePhysics = ((dupe.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 907 | bool UsePhysics = ((dupe.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); |
900 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); | 908 | dupe.DoPhysicsPropertyUpdate(UsePhysics, true); |
901 | 909 | ||
902 | return dupe; | 910 | return dupe; |
@@ -923,7 +931,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
923 | { | 931 | { |
924 | m_parentGroup.HasChanged = true; | 932 | m_parentGroup.HasChanged = true; |
925 | } | 933 | } |
926 | TimeStampFull = (uint)Util.UnixTimeSinceEpoch(); | 934 | TimeStampFull = (uint) Util.UnixTimeSinceEpoch(); |
927 | m_updateFlag = 2; | 935 | m_updateFlag = 2; |
928 | } | 936 | } |
929 | 937 | ||
@@ -931,11 +939,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
931 | { | 939 | { |
932 | LLObject.ObjectFlags prevflag = m_flags; | 940 | LLObject.ObjectFlags prevflag = m_flags; |
933 | //uint objflags = m_flags; | 941 | //uint objflags = m_flags; |
934 | if ((ObjectFlags & (uint)flag) == 0) | 942 | if ((ObjectFlags & (uint) flag) == 0) |
935 | { | 943 | { |
936 | //Console.WriteLine("Adding flag: " + ((LLObject.ObjectFlags) flag).ToString()); | 944 | //Console.WriteLine("Adding flag: " + ((LLObject.ObjectFlags) flag).ToString()); |
937 | m_flags |= flag; | 945 | m_flags |= flag; |
938 | |||
939 | } | 946 | } |
940 | //uint currflag = (uint)m_flags; | 947 | //uint currflag = (uint)m_flags; |
941 | //System.Console.WriteLine("Aprev: " + prevflag.ToString() + " curr: " + m_flags.ToString()); | 948 | //System.Console.WriteLine("Aprev: " + prevflag.ToString() + " curr: " + m_flags.ToString()); |
@@ -945,11 +952,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
945 | public void RemFlag(LLObject.ObjectFlags flag) | 952 | public void RemFlag(LLObject.ObjectFlags flag) |
946 | { | 953 | { |
947 | LLObject.ObjectFlags prevflag = m_flags; | 954 | LLObject.ObjectFlags prevflag = m_flags; |
948 | if ((ObjectFlags & (uint)flag) != 0) | 955 | if ((ObjectFlags & (uint) flag) != 0) |
949 | { | 956 | { |
950 | //Console.WriteLine("Removing flag: " + ((LLObject.ObjectFlags)flag).ToString()); | 957 | //Console.WriteLine("Removing flag: " + ((LLObject.ObjectFlags)flag).ToString()); |
951 | m_flags &= ~flag; | 958 | m_flags &= ~flag; |
952 | |||
953 | } | 959 | } |
954 | //System.Console.WriteLine("prev: " + prevflag.ToString() + " curr: " + m_flags.ToString()); | 960 | //System.Console.WriteLine("prev: " + prevflag.ToString() + " curr: " + m_flags.ToString()); |
955 | //ScheduleFullUpdate(); | 961 | //ScheduleFullUpdate(); |
@@ -966,7 +972,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
966 | { | 972 | { |
967 | m_parentGroup.HasChanged = true; | 973 | m_parentGroup.HasChanged = true; |
968 | } | 974 | } |
969 | TimeStampTerse = (uint)Util.UnixTimeSinceEpoch(); | 975 | TimeStampTerse = (uint) Util.UnixTimeSinceEpoch(); |
970 | m_updateFlag = 1; | 976 | m_updateFlag = 1; |
971 | } | 977 | } |
972 | } | 978 | } |
@@ -1074,7 +1080,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1074 | { | 1080 | { |
1075 | if (m_inventorySerial > 0) | 1081 | if (m_inventorySerial > 0) |
1076 | { | 1082 | { |
1077 | client.SendTaskInventory(m_uuid, (short)m_inventorySerial, | 1083 | client.SendTaskInventory(m_uuid, (short) m_inventorySerial, |
1078 | Helpers.StringToField(m_inventoryFileName)); | 1084 | Helpers.StringToField(m_inventoryFileName)); |
1079 | return true; | 1085 | return true; |
1080 | } | 1086 | } |
@@ -1134,7 +1140,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1134 | bool IsTemporary = false; | 1140 | bool IsTemporary = false; |
1135 | bool IsPhantom = false; | 1141 | bool IsPhantom = false; |
1136 | bool castsShadows = false; | 1142 | bool castsShadows = false; |
1137 | bool wasUsingPhysics = ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) != 0); | 1143 | bool wasUsingPhysics = ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) != 0); |
1138 | //bool IsLocked = false; | 1144 | //bool IsLocked = false; |
1139 | int i = 0; | 1145 | int i = 0; |
1140 | 1146 | ||
@@ -1162,7 +1168,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
1162 | { | 1168 | { |
1163 | DoPhysicsPropertyUpdate(usePhysics, false); | 1169 | DoPhysicsPropertyUpdate(usePhysics, false); |
1164 | } | 1170 | } |
1165 | |||
1166 | } | 1171 | } |
1167 | else | 1172 | else |
1168 | { | 1173 | { |
@@ -1174,9 +1179,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
1174 | } | 1179 | } |
1175 | 1180 | ||
1176 | 1181 | ||
1177 | |||
1178 | |||
1179 | |||
1180 | if (IsPhantom) | 1182 | if (IsPhantom) |
1181 | { | 1183 | { |
1182 | AddFlag(LLObject.ObjectFlags.Phantom); | 1184 | AddFlag(LLObject.ObjectFlags.Phantom); |
@@ -1220,19 +1222,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
1220 | // System.Console.WriteLine("Update: PHY:" + UsePhysics.ToString() + ", T:" + IsTemporary.ToString() + ", PHA:" + IsPhantom.ToString() + " S:" + CastsShadows.ToString()); | 1222 | // System.Console.WriteLine("Update: PHY:" + UsePhysics.ToString() + ", T:" + IsTemporary.ToString() + ", PHA:" + IsPhantom.ToString() + " S:" + CastsShadows.ToString()); |
1221 | ScheduleFullUpdate(); | 1223 | ScheduleFullUpdate(); |
1222 | } | 1224 | } |
1225 | |||
1223 | public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew) | 1226 | public void DoPhysicsPropertyUpdate(bool UsePhysics, bool isNew) |
1224 | { | 1227 | { |
1225 | |||
1226 | if (PhysActor != null) | 1228 | if (PhysActor != null) |
1227 | { | 1229 | { |
1228 | if (UsePhysics != PhysActor.IsPhysical || isNew) | 1230 | if (UsePhysics != PhysActor.IsPhysical || isNew) |
1229 | { | 1231 | { |
1230 | |||
1231 | if (PhysActor.IsPhysical) | 1232 | if (PhysActor.IsPhysical) |
1232 | { | 1233 | { |
1233 | if (!isNew) | 1234 | if (!isNew) |
1234 | this.ParentGroup.m_scene.RemovePhysicalPrim(1); | 1235 | ParentGroup.m_scene.RemovePhysicalPrim(1); |
1235 | 1236 | ||
1236 | PhysActor.OnRequestTerseUpdate -= PhysicsRequestingTerseUpdate; | 1237 | PhysActor.OnRequestTerseUpdate -= PhysicsRequestingTerseUpdate; |
1237 | PhysActor.OnOutOfBounds -= PhysicsOutOfBounds; | 1238 | PhysActor.OnOutOfBounds -= PhysicsOutOfBounds; |
1238 | } | 1239 | } |
@@ -1244,7 +1245,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1244 | //PhysActor = null; | 1245 | //PhysActor = null; |
1245 | 1246 | ||
1246 | 1247 | ||
1247 | if ((ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 1248 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) |
1248 | { | 1249 | { |
1249 | //PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape( | 1250 | //PhysActor = m_parentGroup.m_scene.PhysicsScene.AddPrimShape( |
1250 | //Name, | 1251 | //Name, |
@@ -1256,8 +1257,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1256 | //RotationOffset.Y, RotationOffset.Z), UsePhysics); | 1257 | //RotationOffset.Y, RotationOffset.Z), UsePhysics); |
1257 | if (UsePhysics) | 1258 | if (UsePhysics) |
1258 | { | 1259 | { |
1259 | this.ParentGroup.m_scene.AddPhysicalPrim(1); | 1260 | ParentGroup.m_scene.AddPhysicalPrim(1); |
1260 | 1261 | ||
1261 | PhysActor.OnRequestTerseUpdate += PhysicsRequestingTerseUpdate; | 1262 | PhysActor.OnRequestTerseUpdate += PhysicsRequestingTerseUpdate; |
1262 | PhysActor.OnOutOfBounds += PhysicsOutOfBounds; | 1263 | PhysActor.OnOutOfBounds += PhysicsOutOfBounds; |
1263 | } | 1264 | } |
@@ -1271,15 +1272,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1271 | { | 1272 | { |
1272 | m_shape.ExtraParams = new byte[data.Length + 7]; | 1273 | m_shape.ExtraParams = new byte[data.Length + 7]; |
1273 | int i = 0; | 1274 | int i = 0; |
1274 | uint length = (uint)data.Length; | 1275 | uint length = (uint) data.Length; |
1275 | m_shape.ExtraParams[i++] = 1; | 1276 | m_shape.ExtraParams[i++] = 1; |
1276 | m_shape.ExtraParams[i++] = (byte)(type % 256); | 1277 | m_shape.ExtraParams[i++] = (byte) (type%256); |
1277 | m_shape.ExtraParams[i++] = (byte)((type >> 8) % 256); | 1278 | m_shape.ExtraParams[i++] = (byte) ((type >> 8)%256); |
1278 | 1279 | ||
1279 | m_shape.ExtraParams[i++] = (byte)(length % 256); | 1280 | m_shape.ExtraParams[i++] = (byte) (length%256); |
1280 | m_shape.ExtraParams[i++] = (byte)((length >> 8) % 256); | 1281 | m_shape.ExtraParams[i++] = (byte) ((length >> 8)%256); |
1281 | m_shape.ExtraParams[i++] = (byte)((length >> 16) % 256); | 1282 | m_shape.ExtraParams[i++] = (byte) ((length >> 16)%256); |
1282 | m_shape.ExtraParams[i++] = (byte)((length >> 24) % 256); | 1283 | m_shape.ExtraParams[i++] = (byte) ((length >> 24)%256); |
1283 | Array.Copy(data, 0, m_shape.ExtraParams, i, data.Length); | 1284 | Array.Copy(data, 0, m_shape.ExtraParams, i, data.Length); |
1284 | 1285 | ||
1285 | ScheduleFullUpdate(); | 1286 | ScheduleFullUpdate(); |
@@ -1305,7 +1306,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1305 | { | 1306 | { |
1306 | if (PhysActor != null) | 1307 | if (PhysActor != null) |
1307 | { | 1308 | { |
1308 | return new LLVector3(PhysActor.CenterOfMass.X,PhysActor.CenterOfMass.Y,PhysActor.CenterOfMass.Z); | 1309 | return new LLVector3(PhysActor.CenterOfMass.X, PhysActor.CenterOfMass.Y, PhysActor.CenterOfMass.Z); |
1309 | } | 1310 | } |
1310 | else | 1311 | else |
1311 | { | 1312 | { |
@@ -1323,7 +1324,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1323 | /// <param name="textureEntry"></param> | 1324 | /// <param name="textureEntry"></param> |
1324 | public void UpdateTextureEntry(byte[] textureEntry) | 1325 | public void UpdateTextureEntry(byte[] textureEntry) |
1325 | { | 1326 | { |
1326 | m_shape.Textures = new LLObject.TextureEntry( textureEntry, 0, textureEntry.Length ); | 1327 | m_shape.Textures = new LLObject.TextureEntry(textureEntry, 0, textureEntry.Length); |
1327 | ScheduleFullUpdate(); | 1328 | ScheduleFullUpdate(); |
1328 | } | 1329 | } |
1329 | 1330 | ||
@@ -1337,20 +1338,20 @@ namespace OpenSim.Region.Environment.Scenes | |||
1337 | { | 1338 | { |
1338 | if (tex.FaceTextures[i] != null) | 1339 | if (tex.FaceTextures[i] != null) |
1339 | { | 1340 | { |
1340 | tmpcolor = tex.GetFace((uint)i).RGBA; | 1341 | tmpcolor = tex.GetFace((uint) i).RGBA; |
1341 | tmpcolor.A = tmpcolor.A * 255; | 1342 | tmpcolor.A = tmpcolor.A*255; |
1342 | tmpcolor.R = tmpcolor.R * 255; | 1343 | tmpcolor.R = tmpcolor.R*255; |
1343 | tmpcolor.G = tmpcolor.G * 255; | 1344 | tmpcolor.G = tmpcolor.G*255; |
1344 | tmpcolor.B = tmpcolor.B * 255; | 1345 | tmpcolor.B = tmpcolor.B*255; |
1345 | tex.FaceTextures[i].RGBA = tmpcolor; | 1346 | tex.FaceTextures[i].RGBA = tmpcolor; |
1346 | } | 1347 | } |
1347 | } | 1348 | } |
1348 | tmpcolor = tex.DefaultTexture.RGBA; | 1349 | tmpcolor = tex.DefaultTexture.RGBA; |
1349 | tmpcolor.A = tmpcolor.A * 255; | 1350 | tmpcolor.A = tmpcolor.A*255; |
1350 | tmpcolor.R = tmpcolor.R * 255; | 1351 | tmpcolor.R = tmpcolor.R*255; |
1351 | tmpcolor.G = tmpcolor.G * 255; | 1352 | tmpcolor.G = tmpcolor.G*255; |
1352 | tmpcolor.B = tmpcolor.B * 255; | 1353 | tmpcolor.B = tmpcolor.B*255; |
1353 | tex.DefaultTexture.RGBA = tmpcolor; | 1354 | tex.DefaultTexture.RGBA = tmpcolor; |
1354 | UpdateTextureEntry(tex.ToBytes()); | 1355 | UpdateTextureEntry(tex.ToBytes()); |
1355 | } | 1356 | } |
1356 | 1357 | ||
@@ -1416,34 +1417,33 @@ namespace OpenSim.Region.Environment.Scenes | |||
1416 | // Are we the owner? | 1417 | // Are we the owner? |
1417 | if (AgentID == OwnerID) | 1418 | if (AgentID == OwnerID) |
1418 | { | 1419 | { |
1419 | MainLog.Instance.Verbose("PERMISSIONS", "field: " + field.ToString() + ", mask: " + mask.ToString() + " addRemTF: " + addRemTF.ToString()); | 1420 | MainLog.Instance.Verbose("PERMISSIONS", |
1420 | 1421 | "field: " + field.ToString() + ", mask: " + mask.ToString() + " addRemTF: " + | |
1422 | addRemTF.ToString()); | ||
1423 | |||
1421 | //Field 8 = EveryoneMask | 1424 | //Field 8 = EveryoneMask |
1422 | if (field == (byte)8) | 1425 | if (field == (byte) 8) |
1423 | { | 1426 | { |
1424 | MainLog.Instance.Verbose("PERMISSIONS", "Left over: " + (OwnerMask - EveryoneMask)); | 1427 | MainLog.Instance.Verbose("PERMISSIONS", "Left over: " + (OwnerMask - EveryoneMask)); |
1425 | if (addRemTF == (byte)0) | 1428 | if (addRemTF == (byte) 0) |
1426 | { | 1429 | { |
1427 | //EveryoneMask = (uint)0; | 1430 | //EveryoneMask = (uint)0; |
1428 | EveryoneMask &= ~mask; | 1431 | EveryoneMask &= ~mask; |
1429 | //EveryoneMask &= ~(uint)57344; | 1432 | //EveryoneMask &= ~(uint)57344; |
1430 | |||
1431 | |||
1432 | } | 1433 | } |
1433 | else | 1434 | else |
1434 | { | 1435 | { |
1435 | //EveryoneMask = (uint)0; | 1436 | //EveryoneMask = (uint)0; |
1436 | EveryoneMask |= mask; | 1437 | EveryoneMask |= mask; |
1437 | //EveryoneMask |= (uint)57344; | 1438 | //EveryoneMask |= (uint)57344; |
1438 | |||
1439 | } | 1439 | } |
1440 | //ScheduleFullUpdate(); | 1440 | //ScheduleFullUpdate(); |
1441 | SendFullUpdateToAllClients(); | 1441 | SendFullUpdateToAllClients(); |
1442 | } | 1442 | } |
1443 | //Field 16 = NextownerMask | 1443 | //Field 16 = NextownerMask |
1444 | if (field == (byte)16) | 1444 | if (field == (byte) 16) |
1445 | { | 1445 | { |
1446 | if (addRemTF == (byte)0) | 1446 | if (addRemTF == (byte) 0) |
1447 | { | 1447 | { |
1448 | NextOwnerMask &= ~mask; | 1448 | NextOwnerMask &= ~mask; |
1449 | } | 1449 | } |
@@ -1453,7 +1453,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
1453 | } | 1453 | } |
1454 | SendFullUpdateToAllClients(); | 1454 | SendFullUpdateToAllClients(); |
1455 | } | 1455 | } |
1456 | |||
1457 | } | 1456 | } |
1458 | } | 1457 | } |
1459 | 1458 | ||
@@ -1482,7 +1481,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1482 | for (int i = 0; i < avatars.Count; i++) | 1481 | for (int i = 0; i < avatars.Count; i++) |
1483 | { | 1482 | { |
1484 | // Ugly reference :( | 1483 | // Ugly reference :( |
1485 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, avatars[i].GenerateClientFlags(this.UUID)); | 1484 | m_parentGroup.SendPartFullUpdate(avatars[i].ControllingClient, this, |
1485 | avatars[i].GenerateClientFlags(UUID)); | ||
1486 | } | 1486 | } |
1487 | } | 1487 | } |
1488 | 1488 | ||
@@ -1515,19 +1515,19 @@ namespace OpenSim.Region.Environment.Scenes | |||
1515 | { | 1515 | { |
1516 | LLQuaternion lRot; | 1516 | LLQuaternion lRot; |
1517 | lRot = RotationOffset; | 1517 | lRot = RotationOffset; |
1518 | clientFlags &= ~(uint)LLObject.ObjectFlags.CreateSelected; | 1518 | clientFlags &= ~(uint) LLObject.ObjectFlags.CreateSelected; |
1519 | 1519 | ||
1520 | if (remoteClient.AgentId == OwnerID) | 1520 | if (remoteClient.AgentId == OwnerID) |
1521 | { | 1521 | { |
1522 | if ((uint)(m_flags & LLObject.ObjectFlags.CreateSelected) != 0) | 1522 | if ((uint) (m_flags & LLObject.ObjectFlags.CreateSelected) != 0) |
1523 | { | 1523 | { |
1524 | clientFlags |= (uint)LLObject.ObjectFlags.CreateSelected; | 1524 | clientFlags |= (uint) LLObject.ObjectFlags.CreateSelected; |
1525 | m_flags &= ~LLObject.ObjectFlags.CreateSelected; | 1525 | m_flags &= ~LLObject.ObjectFlags.CreateSelected; |
1526 | } | 1526 | } |
1527 | } | 1527 | } |
1528 | 1528 | ||
1529 | 1529 | ||
1530 | byte[] color = new byte[] { m_color.R, m_color.G, m_color.B, m_color.A }; | 1530 | byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A}; |
1531 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, | 1531 | remoteClient.SendPrimitiveToClient(m_regionHandle, 64096, LocalID, m_shape, lPos, clientFlags, m_uuid, |
1532 | OwnerID, | 1532 | OwnerID, |
1533 | m_text, color, ParentID, m_particleSystem, lRot, m_clickAction); | 1533 | m_text, color, ParentID, m_particleSystem, lRot, m_clickAction); |
@@ -1574,26 +1574,28 @@ namespace OpenSim.Region.Environment.Scenes | |||
1574 | LLVector3 lPos; | 1574 | LLVector3 lPos; |
1575 | lPos = OffsetPosition; | 1575 | lPos = OffsetPosition; |
1576 | LLQuaternion mRot = RotationOffset; | 1576 | LLQuaternion mRot = RotationOffset; |
1577 | if ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) | 1577 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
1578 | { | 1578 | { |
1579 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); | 1579 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); |
1580 | } | 1580 | } |
1581 | else | 1581 | else |
1582 | { | 1582 | { |
1583 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot, Velocity, RotationalVelocity); | 1583 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot, Velocity, |
1584 | RotationalVelocity); | ||
1584 | } | 1585 | } |
1585 | } | 1586 | } |
1586 | 1587 | ||
1587 | public void SendTerseUpdateToClient(IClientAPI remoteClient, LLVector3 lPos) | 1588 | public void SendTerseUpdateToClient(IClientAPI remoteClient, LLVector3 lPos) |
1588 | { | 1589 | { |
1589 | LLQuaternion mRot = RotationOffset; | 1590 | LLQuaternion mRot = RotationOffset; |
1590 | if ((ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) | 1591 | if ((ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
1591 | { | 1592 | { |
1592 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); | 1593 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot); |
1593 | } | 1594 | } |
1594 | else | 1595 | else |
1595 | { | 1596 | { |
1596 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot, Velocity, RotationalVelocity); | 1597 | remoteClient.SendPrimTerseUpdate(m_regionHandle, 64096, LocalID, lPos, mRot, Velocity, |
1598 | RotationalVelocity); | ||
1597 | //System.Console.WriteLine("RVel:" + RotationalVelocity); | 1599 | //System.Console.WriteLine("RVel:" + RotationalVelocity); |
1598 | } | 1600 | } |
1599 | } | 1601 | } |
@@ -1603,13 +1605,16 @@ namespace OpenSim.Region.Environment.Scenes | |||
1603 | public virtual void UpdateMovement() | 1605 | public virtual void UpdateMovement() |
1604 | { | 1606 | { |
1605 | } | 1607 | } |
1608 | |||
1606 | #region Events | 1609 | #region Events |
1610 | |||
1607 | public void PhysicsRequestingTerseUpdate() | 1611 | public void PhysicsRequestingTerseUpdate() |
1608 | { | 1612 | { |
1609 | ScheduleTerseUpdate(); | 1613 | ScheduleTerseUpdate(); |
1610 | 1614 | ||
1611 | //SendTerseUpdateToAllClients(); | 1615 | //SendTerseUpdateToAllClients(); |
1612 | } | 1616 | } |
1617 | |||
1613 | #endregion | 1618 | #endregion |
1614 | 1619 | ||
1615 | public void PhysicsOutOfBounds(PhysicsVector pos) | 1620 | public void PhysicsOutOfBounds(PhysicsVector pos) |
@@ -1626,10 +1631,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1626 | 1631 | ||
1627 | public void SetText(string text, Vector3 color, double alpha) | 1632 | public void SetText(string text, Vector3 color, double alpha) |
1628 | { | 1633 | { |
1629 | Color = Color.FromArgb(0xff - (int)(alpha * 0xff), | 1634 | Color = Color.FromArgb(0xff - (int) (alpha*0xff), |
1630 | (int)(color.x * 0xff), | 1635 | (int) (color.x*0xff), |
1631 | (int)(color.y * 0xff), | 1636 | (int) (color.y*0xff), |
1632 | (int)(color.z * 0xff)); | 1637 | (int) (color.z*0xff)); |
1633 | Text = text; | 1638 | Text = text; |
1634 | } | 1639 | } |
1635 | 1640 | ||
@@ -1725,7 +1730,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
1725 | public TaskInventoryItem() | 1730 | public TaskInventoryItem() |
1726 | { | 1731 | { |
1727 | } | 1732 | } |
1728 | |||
1729 | } | 1733 | } |
1730 | } | 1734 | } |
1731 | } | 1735 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 9a937a2..9454de0 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -32,7 +32,6 @@ using libsecondlife; | |||
32 | using libsecondlife.Packets; | 32 | using libsecondlife.Packets; |
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | 34 | using OpenSim.Framework.Console; |
35 | using OpenSim.Framework.Communications; | ||
36 | using OpenSim.Region.Environment.Types; | 35 | using OpenSim.Region.Environment.Types; |
37 | using OpenSim.Region.Physics.Manager; | 36 | using OpenSim.Region.Physics.Manager; |
38 | 37 | ||
@@ -60,14 +59,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
60 | private bool m_setAlwaysRun = false; | 59 | private bool m_setAlwaysRun = false; |
61 | 60 | ||
62 | private Quaternion m_bodyRot; | 61 | private Quaternion m_bodyRot; |
63 | 62 | ||
64 | public bool IsRestrictedToRegion = false; | 63 | public bool IsRestrictedToRegion = false; |
65 | 64 | ||
66 | // Agent moves with a PID controller causing a force to be exerted. | 65 | // Agent moves with a PID controller causing a force to be exerted. |
67 | private bool m_newForce = false; | 66 | private bool m_newForce = false; |
68 | private bool m_newCoarseLocations = true; | 67 | private bool m_newCoarseLocations = true; |
69 | private bool m_gotAllObjectsInScene = false; | 68 | private bool m_gotAllObjectsInScene = false; |
70 | 69 | ||
71 | // Default AV Height | 70 | // Default AV Height |
72 | private float m_avHeight = 127.0f; | 71 | private float m_avHeight = 127.0f; |
73 | 72 | ||
@@ -76,7 +75,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
76 | 75 | ||
77 | private readonly Vector3[] Dir_Vectors = new Vector3[6]; | 76 | private readonly Vector3[] Dir_Vectors = new Vector3[6]; |
78 | private LLVector3 lastPhysPos = new LLVector3(); | 77 | private LLVector3 lastPhysPos = new LLVector3(); |
79 | 78 | ||
80 | // Position of agent's camera in world (region cordinates) | 79 | // Position of agent's camera in world (region cordinates) |
81 | protected Vector3 m_CameraCenter = new Vector3(0, 0, 0); | 80 | protected Vector3 m_CameraCenter = new Vector3(0, 0, 0); |
82 | 81 | ||
@@ -85,17 +84,18 @@ namespace OpenSim.Region.Environment.Scenes | |||
85 | protected Vector3 m_CameraAtAxis = new Vector3(0, 0, 0); | 84 | protected Vector3 m_CameraAtAxis = new Vector3(0, 0, 0); |
86 | protected Vector3 m_CameraLeftAxis = new Vector3(0, 0, 0); | 85 | protected Vector3 m_CameraLeftAxis = new Vector3(0, 0, 0); |
87 | protected Vector3 m_CameraUpAxis = new Vector3(0, 0, 0); | 86 | protected Vector3 m_CameraUpAxis = new Vector3(0, 0, 0); |
88 | private uint m_AgentControlFlags = (uint)0; | 87 | private uint m_AgentControlFlags = (uint) 0; |
89 | private LLQuaternion m_headrotation = new LLQuaternion(); | 88 | private LLQuaternion m_headrotation = new LLQuaternion(); |
90 | private byte m_state = (byte)0; | 89 | private byte m_state = (byte) 0; |
91 | 90 | ||
92 | // Agent's Draw distance. | 91 | // Agent's Draw distance. |
93 | protected float m_DrawDistance = 0f; | 92 | protected float m_DrawDistance = 0f; |
94 | 93 | ||
95 | protected AvatarAppearance m_appearance; | 94 | protected AvatarAppearance m_appearance; |
96 | 95 | ||
97 | private readonly List<ulong> m_knownChildRegions = new List<ulong>(); //neighbouring regions we have enabled a child agent in | 96 | private readonly List<ulong> m_knownChildRegions = new List<ulong>(); |
98 | 97 | //neighbouring regions we have enabled a child agent in | |
98 | |||
99 | 99 | ||
100 | /// <summary> | 100 | /// <summary> |
101 | /// Implemented Control Flags | 101 | /// Implemented Control Flags |
@@ -172,6 +172,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
172 | } | 172 | } |
173 | 173 | ||
174 | protected bool m_allowMovement = true; | 174 | protected bool m_allowMovement = true; |
175 | |||
175 | public bool AllowMovement | 176 | public bool AllowMovement |
176 | { | 177 | { |
177 | get { return m_allowMovement; } | 178 | get { return m_allowMovement; } |
@@ -181,8 +182,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | /// <summary> | 182 | /// <summary> |
182 | /// This works out to be the ClientView object associated with this avatar, or it's UDP connection manager | 183 | /// This works out to be the ClientView object associated with this avatar, or it's UDP connection manager |
183 | /// </summary> | 184 | /// </summary> |
184 | |||
185 | private readonly IClientAPI m_controllingClient; | 185 | private readonly IClientAPI m_controllingClient; |
186 | |||
186 | protected PhysicsActor m_physicsActor; | 187 | protected PhysicsActor m_physicsActor; |
187 | 188 | ||
188 | public IClientAPI ControllingClient | 189 | public IClientAPI ControllingClient |
@@ -228,6 +229,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
228 | m_pos = value; | 229 | m_pos = value; |
229 | } | 230 | } |
230 | } | 231 | } |
232 | |||
231 | /// <summary> | 233 | /// <summary> |
232 | /// Current Velocity of the avatar. | 234 | /// Current Velocity of the avatar. |
233 | /// </summary> | 235 | /// </summary> |
@@ -294,6 +296,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
294 | { | 296 | { |
295 | get { return m_knownChildRegions; } | 297 | get { return m_knownChildRegions; } |
296 | } | 298 | } |
299 | |||
297 | #endregion | 300 | #endregion |
298 | 301 | ||
299 | #region Constructor(s) | 302 | #region Constructor(s) |
@@ -336,7 +339,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
336 | public ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo, AvatarAppearance appearance) | 339 | public ScenePresence(IClientAPI client, Scene world, RegionInfo reginfo, AvatarAppearance appearance) |
337 | : this(client, world, reginfo) | 340 | : this(client, world, reginfo) |
338 | { | 341 | { |
339 | m_appearance = appearance; | 342 | m_appearance = appearance; |
340 | } | 343 | } |
341 | 344 | ||
342 | private void RegisterToEvents() | 345 | private void RegisterToEvents() |
@@ -366,6 +369,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
366 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN | 369 | Dir_Vectors[5] = new Vector3(0, 0, -1); //DOWN |
367 | Dir_Vectors[5] = new Vector3(0, 0, -0.5f); //DOWN_Nudge | 370 | Dir_Vectors[5] = new Vector3(0, 0, -0.5f); //DOWN_Nudge |
368 | } | 371 | } |
372 | |||
369 | #endregion | 373 | #endregion |
370 | 374 | ||
371 | public void QueuePartForUpdate(SceneObjectPart part) | 375 | public void QueuePartForUpdate(SceneObjectPart part) |
@@ -381,7 +385,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
381 | 385 | ||
382 | public uint GenerateClientFlags(LLUUID ObjectID) | 386 | public uint GenerateClientFlags(LLUUID ObjectID) |
383 | { | 387 | { |
384 | return m_scene.PermissionsMngr.GenerateClientFlags(this.m_uuid, ObjectID); | 388 | return m_scene.PermissionsMngr.GenerateClientFlags(m_uuid, ObjectID); |
385 | } | 389 | } |
386 | 390 | ||
387 | public void SendPrimUpdates() | 391 | public void SendPrimUpdates() |
@@ -461,6 +465,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
461 | } | 465 | } |
462 | 466 | ||
463 | #region Status Methods | 467 | #region Status Methods |
468 | |||
464 | /// <summary> | 469 | /// <summary> |
465 | /// This turns a child agent, into a root agent | 470 | /// This turns a child agent, into a root agent |
466 | /// This is called when an agent teleports into a region, or if an | 471 | /// This is called when an agent teleports into a region, or if an |
@@ -531,6 +536,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
531 | public void StopMovement() | 536 | public void StopMovement() |
532 | { | 537 | { |
533 | } | 538 | } |
539 | |||
534 | public void StopFlying() | 540 | public void StopFlying() |
535 | { | 541 | { |
536 | // It turns out to get the agent to stop flying, you have to feed it stop flying velocities | 542 | // It turns out to get the agent to stop flying, you have to feed it stop flying velocities |
@@ -560,9 +566,11 @@ namespace OpenSim.Region.Environment.Scenes | |||
560 | m_knownChildRegions.Remove(regionHandle); | 566 | m_knownChildRegions.Remove(regionHandle); |
561 | } | 567 | } |
562 | } | 568 | } |
569 | |||
563 | #endregion | 570 | #endregion |
564 | 571 | ||
565 | #region Event Handlers | 572 | #region Event Handlers |
573 | |||
566 | /// <summary> | 574 | /// <summary> |
567 | /// Sets avatar height in the phyiscs plugin | 575 | /// Sets avatar height in the phyiscs plugin |
568 | /// </summary> | 576 | /// </summary> |
@@ -603,7 +611,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
603 | /// </summary> | 611 | /// </summary> |
604 | public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData) | 612 | public void HandleAgentUpdate(IClientAPI remoteClient, AgentUpdatePacket agentData) |
605 | { | 613 | { |
606 | |||
607 | //if (m_isChildAgent) | 614 | //if (m_isChildAgent) |
608 | //{ | 615 | //{ |
609 | // // Console.WriteLine("DEBUG: HandleAgentUpdate: child agent"); | 616 | // // Console.WriteLine("DEBUG: HandleAgentUpdate: child agent"); |
@@ -639,7 +646,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
639 | // The Agent's Draw distance setting | 646 | // The Agent's Draw distance setting |
640 | m_DrawDistance = agentData.AgentData.Far; | 647 | m_DrawDistance = agentData.AgentData.Far; |
641 | 648 | ||
642 | if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) | 649 | if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_STAND_UP) != 0) |
643 | { | 650 | { |
644 | StandUp(); | 651 | StandUp(); |
645 | } | 652 | } |
@@ -649,7 +656,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
649 | return; | 656 | return; |
650 | } | 657 | } |
651 | 658 | ||
652 | if ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_SIT_ON_GROUND) != 0) | 659 | if ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_SIT_ON_GROUND) != 0) |
653 | { | 660 | { |
654 | // TODO: This doesn't quite work yet -- probably a parent ID problem | 661 | // TODO: This doesn't quite work yet -- probably a parent ID problem |
655 | // m_parentID = (what should this be?) | 662 | // m_parentID = (what should this be?) |
@@ -672,7 +679,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
672 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); | 679 | Quaternion q = new Quaternion(bodyRotation.W, bodyRotation.X, bodyRotation.Y, bodyRotation.Z); |
673 | bool oldflying = PhysicsActor.Flying; | 680 | bool oldflying = PhysicsActor.Flying; |
674 | 681 | ||
675 | PhysicsActor.Flying = ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); | 682 | PhysicsActor.Flying = ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_FLY) != 0); |
676 | if (PhysicsActor.Flying != oldflying) | 683 | if (PhysicsActor.Flying != oldflying) |
677 | { | 684 | { |
678 | update_movementflag = true; | 685 | update_movementflag = true; |
@@ -686,23 +693,23 @@ namespace OpenSim.Region.Environment.Scenes | |||
686 | 693 | ||
687 | if (m_parentID == 0) | 694 | if (m_parentID == 0) |
688 | { | 695 | { |
689 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof(Dir_ControlFlags))) | 696 | foreach (Dir_ControlFlags DCF in Enum.GetValues(typeof (Dir_ControlFlags))) |
690 | { | 697 | { |
691 | if ((flags & (uint)DCF) != 0) | 698 | if ((flags & (uint) DCF) != 0) |
692 | { | 699 | { |
693 | DCFlagKeyPressed = true; | 700 | DCFlagKeyPressed = true; |
694 | agent_control_v3 += Dir_Vectors[i]; | 701 | agent_control_v3 += Dir_Vectors[i]; |
695 | if ((m_movementflag & (uint)DCF) == 0) | 702 | if ((m_movementflag & (uint) DCF) == 0) |
696 | { | 703 | { |
697 | m_movementflag += (byte)(uint)DCF; | 704 | m_movementflag += (byte) (uint) DCF; |
698 | update_movementflag = true; | 705 | update_movementflag = true; |
699 | } | 706 | } |
700 | } | 707 | } |
701 | else | 708 | else |
702 | { | 709 | { |
703 | if ((m_movementflag & (uint)DCF) != 0) | 710 | if ((m_movementflag & (uint) DCF) != 0) |
704 | { | 711 | { |
705 | m_movementflag -= (byte)(uint)DCF; | 712 | m_movementflag -= (byte) (uint) DCF; |
706 | update_movementflag = true; | 713 | update_movementflag = true; |
707 | } | 714 | } |
708 | } | 715 | } |
@@ -719,8 +726,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
719 | if (m_physicsActor.Flying) | 726 | if (m_physicsActor.Flying) |
720 | { | 727 | { |
721 | // Are the landing controls requirements filled? | 728 | // Are the landing controls requirements filled? |
722 | bool controlland = (((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || ((flags & (uint)AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)); | 729 | bool controlland = (((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) || |
723 | 730 | ((flags & (uint) AgentManager.ControlFlags.AGENT_CONTROL_NUDGE_UP_NEG) != 0)); | |
731 | |||
724 | // Are the collision requirements fulfilled? | 732 | // Are the collision requirements fulfilled? |
725 | bool colliding = (m_physicsActor.IsColliding == true); | 733 | bool colliding = (m_physicsActor.IsColliding == true); |
726 | 734 | ||
@@ -748,7 +756,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
748 | { | 756 | { |
749 | if (m_parentID != 0) | 757 | if (m_parentID != 0) |
750 | { | 758 | { |
751 | |||
752 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); | 759 | SceneObjectPart part = m_scene.GetSceneObjectPart(m_parentID); |
753 | if (part != null) | 760 | if (part != null) |
754 | { | 761 | { |
@@ -757,7 +764,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
757 | part.SetAvatarOnSitTarget(LLUUID.Zero); | 764 | part.SetAvatarOnSitTarget(LLUUID.Zero); |
758 | } | 765 | } |
759 | 766 | ||
760 | m_pos += m_parentPosition + new LLVector3(0.0f, 0.0f, 2.0f * m_sitAvatarHeight); | 767 | m_pos += m_parentPosition + new LLVector3(0.0f, 0.0f, 2.0f*m_sitAvatarHeight); |
761 | m_parentPosition = new LLVector3(); | 768 | m_parentPosition = new LLVector3(); |
762 | 769 | ||
763 | if (m_physicsActor == null) | 770 | if (m_physicsActor == null) |
@@ -778,14 +785,14 @@ namespace OpenSim.Region.Environment.Scenes | |||
778 | 785 | ||
779 | bool autopilot = true; | 786 | bool autopilot = true; |
780 | LLVector3 pos = new LLVector3(); | 787 | LLVector3 pos = new LLVector3(); |
781 | LLQuaternion sitOrientation = new LLQuaternion(0,0,0,1); | 788 | LLQuaternion sitOrientation = new LLQuaternion(0, 0, 0, 1); |
782 | 789 | ||
783 | SceneObjectPart part = m_scene.GetSceneObjectPart(targetID); | 790 | SceneObjectPart part = m_scene.GetSceneObjectPart(targetID); |
784 | if (part != null) | 791 | if (part != null) |
785 | { | 792 | { |
786 | // TODO: determine position to sit at based on scene geometry; don't trust offset from client | 793 | // TODO: determine position to sit at based on scene geometry; don't trust offset from client |
787 | // see http://wiki.secondlife.com/wiki/User:Andrew_Linden/Office_Hours/2007_11_06 for details on how LL does it | 794 | // see http://wiki.secondlife.com/wiki/User:Andrew_Linden/Office_Hours/2007_11_06 for details on how LL does it |
788 | 795 | ||
789 | 796 | ||
790 | // Is a sit target available? | 797 | // Is a sit target available? |
791 | Vector3 avSitOffSet = part.GetSitTargetPosition(); | 798 | Vector3 avSitOffSet = part.GetSitTargetPosition(); |
@@ -793,15 +800,17 @@ namespace OpenSim.Region.Environment.Scenes | |||
793 | LLUUID avOnTargetAlready = part.GetAvatarOnSitTarget(); | 800 | LLUUID avOnTargetAlready = part.GetAvatarOnSitTarget(); |
794 | 801 | ||
795 | bool SitTargetUnOccupied = (!(avOnTargetAlready != LLUUID.Zero)); | 802 | bool SitTargetUnOccupied = (!(avOnTargetAlready != LLUUID.Zero)); |
796 | bool SitTargetisSet = (!(avSitOffSet.x == 0 && avSitOffSet.y == 0 && avSitOffSet.z == 0 && avSitOrientation.w == 0 && avSitOrientation.x == 0 && avSitOrientation.y == 0 && avSitOrientation.z == 1)); | 803 | bool SitTargetisSet = |
804 | (!(avSitOffSet.x == 0 && avSitOffSet.y == 0 && avSitOffSet.z == 0 && avSitOrientation.w == 0 && | ||
805 | avSitOrientation.x == 0 && avSitOrientation.y == 0 && avSitOrientation.z == 1)); | ||
797 | 806 | ||
798 | if (SitTargetisSet && SitTargetUnOccupied) | 807 | if (SitTargetisSet && SitTargetUnOccupied) |
799 | { | 808 | { |
800 | part.SetAvatarOnSitTarget(UUID); | 809 | part.SetAvatarOnSitTarget(UUID); |
801 | offset = new LLVector3(avSitOffSet.x,avSitOffSet.y,avSitOffSet.z); | 810 | offset = new LLVector3(avSitOffSet.x, avSitOffSet.y, avSitOffSet.z); |
802 | sitOrientation = new LLQuaternion(avSitOrientation.w,avSitOrientation.x,avSitOrientation.y,avSitOrientation.z); | 811 | sitOrientation = |
812 | new LLQuaternion(avSitOrientation.w, avSitOrientation.x, avSitOrientation.y, avSitOrientation.z); | ||
803 | autopilot = false; | 813 | autopilot = false; |
804 | |||
805 | } | 814 | } |
806 | 815 | ||
807 | 816 | ||
@@ -817,43 +826,37 @@ namespace OpenSim.Region.Environment.Scenes | |||
817 | 826 | ||
818 | if (autopilot) | 827 | if (autopilot) |
819 | { | 828 | { |
820 | |||
821 | if (Util.GetDistanceTo(AbsolutePosition, pos) < 4.5) | 829 | if (Util.GetDistanceTo(AbsolutePosition, pos) < 4.5) |
822 | { | 830 | { |
823 | autopilot = false; | 831 | autopilot = false; |
824 | 832 | ||
825 | RemoveFromPhysicalScene(); | 833 | RemoveFromPhysicalScene(); |
826 | AbsolutePosition = pos + new LLVector3(0.0f, 0.0f, m_sitAvatarHeight); | 834 | AbsolutePosition = pos + new LLVector3(0.0f, 0.0f, m_sitAvatarHeight); |
827 | |||
828 | } | 835 | } |
829 | else | 836 | else |
830 | { | 837 | { |
831 | |||
832 | } | 838 | } |
833 | } | 839 | } |
834 | else | 840 | else |
835 | { | 841 | { |
836 | RemoveFromPhysicalScene(); | 842 | RemoveFromPhysicalScene(); |
837 | |||
838 | |||
839 | } | 843 | } |
840 | } // Physactor != null | 844 | } // Physactor != null |
841 | } // part != null | 845 | } // part != null |
842 | 846 | ||
843 | 847 | ||
844 | avatarSitResponse.SitTransform.AutoPilot = autopilot; | 848 | avatarSitResponse.SitTransform.AutoPilot = autopilot; |
845 | avatarSitResponse.SitTransform.SitPosition = offset; | 849 | avatarSitResponse.SitTransform.SitPosition = offset; |
846 | avatarSitResponse.SitTransform.SitRotation = sitOrientation; | 850 | avatarSitResponse.SitTransform.SitRotation = sitOrientation; |
847 | 851 | ||
848 | remoteClient.OutPacket(avatarSitResponse, ThrottleOutPacketType.Task); | 852 | remoteClient.OutPacket(avatarSitResponse, ThrottleOutPacketType.Task); |
849 | 853 | ||
850 | // This calls HandleAgentSit twice, once from here, and the client calls | 854 | // This calls HandleAgentSit twice, once from here, and the client calls |
851 | // HandleAgentSit itself after it gets to the location | 855 | // HandleAgentSit itself after it gets to the location |
852 | // It doesn't get to the location until we've moved them there though | 856 | // It doesn't get to the location until we've moved them there though |
853 | // which happens in HandleAgentSit :P | 857 | // which happens in HandleAgentSit :P |
854 | if (!autopilot) | 858 | if (!autopilot) |
855 | HandleAgentSit(remoteClient, UUID); | 859 | HandleAgentSit(remoteClient, UUID); |
856 | |||
857 | } | 860 | } |
858 | 861 | ||
859 | public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset) | 862 | public void HandleAgentRequestSit(IClientAPI remoteClient, LLUUID agentID, LLUUID targetID, LLVector3 offset) |
@@ -863,7 +866,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
863 | StandUp(); | 866 | StandUp(); |
864 | } | 867 | } |
865 | 868 | ||
866 | |||
867 | 869 | ||
868 | SceneObjectPart part = m_scene.GetSceneObjectPart(targetID); | 870 | SceneObjectPart part = m_scene.GetSceneObjectPart(targetID); |
869 | 871 | ||
@@ -919,7 +921,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
919 | // This may seem stupid, but Our Full updates don't send avatar rotation :P | 921 | // This may seem stupid, but Our Full updates don't send avatar rotation :P |
920 | // So we're also sending a terse update (which has avatar rotation) | 922 | // So we're also sending a terse update (which has avatar rotation) |
921 | SendTerseUpdateToAllClients(); | 923 | SendTerseUpdateToAllClients(); |
922 | |||
923 | } | 924 | } |
924 | 925 | ||
925 | /// <summary> | 926 | /// <summary> |
@@ -1003,7 +1004,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1003 | // We are flying | 1004 | // We are flying |
1004 | SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1); | 1005 | SetMovementAnimation(Animations.AnimsLLUUID["FLY"], 1); |
1005 | } | 1006 | } |
1006 | else if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && | 1007 | else if (((m_movementflag & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && |
1007 | PhysicsActor.IsColliding) | 1008 | PhysicsActor.IsColliding) |
1008 | { | 1009 | { |
1009 | // Client is pressing the page down button and moving and is colliding with something | 1010 | // Client is pressing the page down button and moving and is colliding with something |
@@ -1014,7 +1015,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1014 | // Client is moving and falling at a velocity greater then 6 meters per unit | 1015 | // Client is moving and falling at a velocity greater then 6 meters per unit |
1015 | SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); | 1016 | SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); |
1016 | } | 1017 | } |
1017 | else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) | 1018 | else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && |
1019 | (m_movementflag & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) | ||
1018 | { | 1020 | { |
1019 | // Client is moving, and colliding and pressing the page up button but isn't flying | 1021 | // Client is moving, and colliding and pressing the page up button but isn't flying |
1020 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); | 1022 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); |
@@ -1034,7 +1036,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1034 | { | 1036 | { |
1035 | // Not moving | 1037 | // Not moving |
1036 | 1038 | ||
1037 | if (((m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && | 1039 | if (((m_movementflag & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_NEG) != 0) && |
1038 | PhysicsActor.IsColliding) | 1040 | PhysicsActor.IsColliding) |
1039 | { | 1041 | { |
1040 | // Client pressing the page down button | 1042 | // Client pressing the page down button |
@@ -1045,7 +1047,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1045 | // Not colliding and not flying, and we're falling at high speed | 1047 | // Not colliding and not flying, and we're falling at high speed |
1046 | SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); | 1048 | SetMovementAnimation(Animations.AnimsLLUUID["FALLDOWN"], 1); |
1047 | } | 1049 | } |
1048 | else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && !m_physicsActor.Flying && (m_movementflag & (uint)AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) | 1050 | else if (!PhysicsActor.IsColliding && Velocity.Z > 0 && !m_physicsActor.Flying && |
1051 | (m_movementflag & (uint) AgentManager.ControlFlags.AGENT_CONTROL_UP_POS) != 0) | ||
1049 | { | 1052 | { |
1050 | // This is the standing jump | 1053 | // This is the standing jump |
1051 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); | 1054 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); |
@@ -1063,6 +1066,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1063 | } | 1066 | } |
1064 | } | 1067 | } |
1065 | } | 1068 | } |
1069 | |||
1066 | /// <summary> | 1070 | /// <summary> |
1067 | /// Adds a new movement | 1071 | /// Adds a new movement |
1068 | /// </summary> | 1072 | /// </summary> |
@@ -1075,10 +1079,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
1075 | } | 1079 | } |
1076 | m_rotation = rotation; | 1080 | m_rotation = rotation; |
1077 | NewForce newVelocity = new NewForce(); | 1081 | NewForce newVelocity = new NewForce(); |
1078 | Vector3 direc = rotation * vec; | 1082 | Vector3 direc = rotation*vec; |
1079 | direc.Normalize(); | 1083 | direc.Normalize(); |
1080 | 1084 | ||
1081 | direc *= 0.03f * 128f; | 1085 | direc *= 0.03f*128f; |
1082 | if (m_physicsActor.Flying) | 1086 | if (m_physicsActor.Flying) |
1083 | { | 1087 | { |
1084 | direc *= 4; | 1088 | direc *= 4; |
@@ -1108,7 +1112,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
1108 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); | 1112 | SetMovementAnimation(Animations.AnimsLLUUID["JUMP"], 1); |
1109 | } | 1113 | } |
1110 | } | 1114 | } |
1111 | |||
1112 | } | 1115 | } |
1113 | 1116 | ||
1114 | newVelocity.X = direc.x; | 1117 | newVelocity.X = direc.x; |
@@ -1173,7 +1176,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1173 | { | 1176 | { |
1174 | LLVector3 pos = m_pos; | 1177 | LLVector3 pos = m_pos; |
1175 | LLVector3 vel = Velocity; | 1178 | LLVector3 vel = Velocity; |
1176 | LLQuaternion rot=new LLQuaternion(m_bodyRot.x, m_bodyRot.y, m_bodyRot.z, m_bodyRot.w); | 1179 | LLQuaternion rot = new LLQuaternion(m_bodyRot.x, m_bodyRot.y, m_bodyRot.z, m_bodyRot.w); |
1177 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z), | 1180 | remoteClient.SendAvatarTerseUpdate(m_regionHandle, 64096, LocalId, new LLVector3(pos.X, pos.Y, pos.Z), |
1178 | new LLVector3(vel.X, vel.Y, vel.Z), rot); | 1181 | new LLVector3(vel.X, vel.Y, vel.Z), rot); |
1179 | } | 1182 | } |
@@ -1213,7 +1216,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1213 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) | 1216 | public void SendFullUpdateToOtherClient(ScenePresence remoteAvatar) |
1214 | { | 1217 | { |
1215 | remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, | 1218 | remoteAvatar.m_controllingClient.SendAvatarData(m_regionInfo.RegionHandle, m_firstname, m_lastname, m_uuid, |
1216 | LocalId, m_pos, m_appearance.TextureEntry.ToBytes(), m_parentID); | 1219 | LocalId, m_pos, m_appearance.TextureEntry.ToBytes(), |
1220 | m_parentID); | ||
1217 | } | 1221 | } |
1218 | 1222 | ||
1219 | /// <summary> | 1223 | /// <summary> |
@@ -1303,10 +1307,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1303 | /// <param name="seqs"></param> | 1307 | /// <param name="seqs"></param> |
1304 | public void SendAnimPack(LLUUID[] animations, int[] seqs) | 1308 | public void SendAnimPack(LLUUID[] animations, int[] seqs) |
1305 | { | 1309 | { |
1306 | m_scene.Broadcast(delegate(IClientAPI client) | 1310 | m_scene.Broadcast( |
1307 | { | 1311 | delegate(IClientAPI client) { client.SendAnimations(animations, seqs, m_controllingClient.AgentId); }); |
1308 | client.SendAnimations(animations, seqs, m_controllingClient.AgentId); | ||
1309 | }); | ||
1310 | } | 1312 | } |
1311 | 1313 | ||
1312 | /// <summary> | 1314 | /// <summary> |
@@ -1320,6 +1322,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1320 | #endregion | 1322 | #endregion |
1321 | 1323 | ||
1322 | #region Significant Movement Method | 1324 | #region Significant Movement Method |
1325 | |||
1323 | /// <summary> | 1326 | /// <summary> |
1324 | /// This checks for a significant movement and sends a courselocationchange update | 1327 | /// This checks for a significant movement and sends a courselocationchange update |
1325 | /// </summary> | 1328 | /// </summary> |
@@ -1349,9 +1352,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1349 | LLVector3 vel = Velocity; | 1352 | LLVector3 vel = Velocity; |
1350 | 1353 | ||
1351 | float timeStep = 0.1f; | 1354 | float timeStep = 0.1f; |
1352 | pos2.X = pos2.X + (vel.X * timeStep); | 1355 | pos2.X = pos2.X + (vel.X*timeStep); |
1353 | pos2.Y = pos2.Y + (vel.Y * timeStep); | 1356 | pos2.Y = pos2.Y + (vel.Y*timeStep); |
1354 | pos2.Z = pos2.Z + (vel.Z * timeStep); | 1357 | pos2.Z = pos2.Z + (vel.Z*timeStep); |
1355 | 1358 | ||
1356 | if ((pos2.X < 0) || (pos2.X > 256)) | 1359 | if ((pos2.X < 0) || (pos2.X > 256)) |
1357 | { | 1360 | { |
@@ -1411,7 +1414,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1411 | } | 1414 | } |
1412 | 1415 | ||
1413 | LLVector3 vel = m_velocity; | 1416 | LLVector3 vel = m_velocity; |
1414 | ulong neighbourHandle = Helpers.UIntsToLong((uint)(neighbourx * 256), (uint)(neighboury * 256)); | 1417 | ulong neighbourHandle = Helpers.UIntsToLong((uint) (neighbourx*256), (uint) (neighboury*256)); |
1415 | SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); | 1418 | SimpleRegionInfo neighbourRegion = m_scene.RequestNeighbouringRegionInfo(neighbourHandle); |
1416 | if (neighbourRegion != null) | 1419 | if (neighbourRegion != null) |
1417 | { | 1420 | { |
@@ -1432,6 +1435,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1432 | } | 1435 | } |
1433 | 1436 | ||
1434 | #endregion | 1437 | #endregion |
1438 | |||
1435 | /// <summary> | 1439 | /// <summary> |
1436 | /// This allows the Sim owner the abiility to kick users from their sim currently. | 1440 | /// This allows the Sim owner the abiility to kick users from their sim currently. |
1437 | /// It tells the client that the agent has permission to do so. | 1441 | /// It tells the client that the agent has permission to do so. |
@@ -1445,7 +1449,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1445 | adb.AgentID = agentID; | 1449 | adb.AgentID = agentID; |
1446 | adb.SessionID = sessionID; // More security | 1450 | adb.SessionID = sessionID; // More security |
1447 | 1451 | ||
1448 | gdb.GodLevel = (byte)100; | 1452 | gdb.GodLevel = (byte) 100; |
1449 | gdb.Token = token; | 1453 | gdb.Token = token; |
1450 | //respondPacket.AgentData = (GrantGodlikePowersPacket.AgentDataBlock)ablock; | 1454 | //respondPacket.AgentData = (GrantGodlikePowersPacket.AgentDataBlock)ablock; |
1451 | respondPacket.GrantData = gdb; | 1455 | respondPacket.GrantData = gdb; |
@@ -1462,7 +1466,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
1462 | // | 1466 | // |
1463 | m_DrawDistance = cAgentData.drawdistance; | 1467 | m_DrawDistance = cAgentData.drawdistance; |
1464 | m_pos = new LLVector3(cAgentData.Position.x, cAgentData.Position.y, cAgentData.Position.z); | 1468 | m_pos = new LLVector3(cAgentData.Position.x, cAgentData.Position.y, cAgentData.Position.z); |
1465 | m_CameraCenter = new Vector3(cAgentData.cameraPosition.x, cAgentData.cameraPosition.y, cAgentData.cameraPosition.z); | 1469 | m_CameraCenter = |
1470 | new Vector3(cAgentData.cameraPosition.x, cAgentData.cameraPosition.y, cAgentData.cameraPosition.z); | ||
1466 | m_godlevel = cAgentData.godlevel; | 1471 | m_godlevel = cAgentData.godlevel; |
1467 | ControllingClient.SetChildAgentThrottle(cAgentData.throttles); | 1472 | ControllingClient.SetChildAgentThrottle(cAgentData.throttles); |
1468 | //cAgentData.AVHeight; | 1473 | //cAgentData.AVHeight; |
@@ -1555,6 +1560,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1555 | m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; | 1560 | m_physicsActor.OnRequestTerseUpdate += SendTerseUpdateToAllClients; |
1556 | m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; | 1561 | m_physicsActor.OnCollisionUpdate += PhysicsCollisionUpdate; |
1557 | } | 1562 | } |
1563 | |||
1558 | // Event called by the physics plugin to tell the avatar about a collision. | 1564 | // Event called by the physics plugin to tell the avatar about a collision. |
1559 | private void PhysicsCollisionUpdate(EventArgs e) | 1565 | private void PhysicsCollisionUpdate(EventArgs e) |
1560 | { | 1566 | { |
@@ -1567,4 +1573,4 @@ namespace OpenSim.Region.Environment.Scenes | |||
1567 | RemoveFromPhysicalScene(); | 1573 | RemoveFromPhysicalScene(); |
1568 | } | 1574 | } |
1569 | } | 1575 | } |
1570 | } | 1576 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs b/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs index aeb9c61..8c4a951 100644 --- a/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs +++ b/OpenSim/Region/Environment/Scenes/SceneXmlLoader.cs | |||
@@ -28,17 +28,16 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | using System.Xml; | ||
33 | using System.IO; | 31 | using System.IO; |
34 | using libsecondlife; | 32 | using System.Xml; |
35 | using Axiom.Math; | 33 | using Axiom.Math; |
34 | using libsecondlife; | ||
36 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
37 | using OpenSim.Region.Physics.Manager; | 36 | using OpenSim.Region.Physics.Manager; |
38 | 37 | ||
39 | namespace OpenSim.Region.Environment.Scenes | 38 | namespace OpenSim.Region.Environment.Scenes |
40 | { | 39 | { |
41 | public class SceneXmlLoader // can move to a module? | 40 | public class SceneXmlLoader // can move to a module? |
42 | { | 41 | { |
43 | protected InnerScene m_innerScene; | 42 | protected InnerScene m_innerScene; |
44 | protected RegionInfo m_regInfo; | 43 | protected RegionInfo m_regInfo; |
@@ -78,8 +77,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
78 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 77 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
79 | // Apply loadOffsets for load/import and move combinations | 78 | // Apply loadOffsets for load/import and move combinations |
80 | rootPart.GroupPosition = rootPart.AbsolutePosition + loadOffset; | 79 | rootPart.GroupPosition = rootPart.AbsolutePosition + loadOffset; |
81 | bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim); | 80 | bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && |
82 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 81 | m_parentScene.m_physicalPrim); |
82 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) | ||
83 | { | 83 | { |
84 | rootPart.PhysActor = m_innerScene.PhysicsScene.AddPrimShape( | 84 | rootPart.PhysActor = m_innerScene.PhysicsScene.AddPrimShape( |
85 | rootPart.Name, | 85 | rootPart.Name, |
@@ -91,7 +91,6 @@ namespace OpenSim.Region.Environment.Scenes | |||
91 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, | 91 | new Quaternion(rootPart.RotationOffset.W, rootPart.RotationOffset.X, |
92 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); | 92 | rootPart.RotationOffset.Y, rootPart.RotationOffset.Z), UsePhysics); |
93 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); | 93 | rootPart.DoPhysicsPropertyUpdate(UsePhysics, true); |
94 | |||
95 | } | 94 | } |
96 | primCount++; | 95 | primCount++; |
97 | } | 96 | } |
@@ -115,7 +114,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
115 | { | 114 | { |
116 | if (ent is SceneObjectGroup) | 115 | if (ent is SceneObjectGroup) |
117 | { | 116 | { |
118 | stream.WriteLine(((SceneObjectGroup)ent).ToXmlString()); | 117 | stream.WriteLine(((SceneObjectGroup) ent).ToXmlString()); |
119 | primCount++; | 118 | primCount++; |
120 | } | 119 | } |
121 | } | 120 | } |
@@ -152,8 +151,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
152 | m_innerScene.AddEntityFromStorage(obj); | 151 | m_innerScene.AddEntityFromStorage(obj); |
153 | 152 | ||
154 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); | 153 | SceneObjectPart rootPart = obj.GetChildPart(obj.UUID); |
155 | bool UsePhysics = (((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) > 0) && m_parentScene.m_physicalPrim); | 154 | bool UsePhysics = (((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) > 0) && |
156 | if ((rootPart.ObjectFlags & (uint)LLObject.ObjectFlags.Phantom) == 0) | 155 | m_parentScene.m_physicalPrim); |
156 | if ((rootPart.ObjectFlags & (uint) LLObject.ObjectFlags.Phantom) == 0) | ||
157 | { | 157 | { |
158 | rootPart.PhysActor = m_innerScene.PhysicsScene.AddPrimShape( | 158 | rootPart.PhysActor = m_innerScene.PhysicsScene.AddPrimShape( |
159 | rootPart.Name, | 159 | rootPart.Name, |
@@ -180,7 +180,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
180 | { | 180 | { |
181 | if (ent is SceneObjectGroup) | 181 | if (ent is SceneObjectGroup) |
182 | { | 182 | { |
183 | stream.WriteLine(((SceneObjectGroup)ent).ToXmlString2()); | 183 | stream.WriteLine(((SceneObjectGroup) ent).ToXmlString2()); |
184 | primCount++; | 184 | primCount++; |
185 | } | 185 | } |
186 | } | 186 | } |
@@ -188,6 +188,5 @@ namespace OpenSim.Region.Environment.Scenes | |||
188 | stream.Close(); | 188 | stream.Close(); |
189 | file.Close(); | 189 | file.Close(); |
190 | } | 190 | } |
191 | |||
192 | } | 191 | } |
193 | } | 192 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs index 294a6c9..d781806 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineInterface.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.Environment.Scenes.Scripting | |||
37 | void Shutdown(); | 37 | void Shutdown(); |
38 | // void StartScript(string ScriptID, IScriptHost ObjectID); | 38 | // void StartScript(string ScriptID, IScriptHost ObjectID); |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs index d3fdad6..5dbe500 100644 --- a/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs +++ b/OpenSim/Region/Environment/Scenes/Scripting/ScriptEngineLoader.cs | |||
@@ -121,4 +121,4 @@ namespace OpenSim.Region.Environment.Scenes.Scripting | |||
121 | return ret; | 121 | return ret; |
122 | } | 122 | } |
123 | } | 123 | } |
124 | } | 124 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs index bfdacfe..b183c04 100644 --- a/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs +++ b/OpenSim/Region/Environment/Scenes/SimStatsReporter.cs | |||
@@ -27,22 +27,19 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using System.Timers; | 30 | using System.Timers; |
33 | using libsecondlife.Packets; | 31 | using libsecondlife.Packets; |
34 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
35 | using Timer = System.Timers.Timer; | ||
36 | 33 | ||
37 | namespace OpenSim.Region.Environment.Scenes | 34 | namespace OpenSim.Region.Environment.Scenes |
38 | { | 35 | { |
39 | public class SimStatsReporter | 36 | public class SimStatsReporter |
40 | { | 37 | { |
41 | public delegate void SendStatResult(SimStatsPacket pack); | 38 | public delegate void SendStatResult(SimStatsPacket pack); |
42 | 39 | ||
43 | public event SendStatResult OnSendStatsResult; | 40 | public event SendStatResult OnSendStatsResult; |
44 | 41 | ||
45 | private enum Stats : uint | 42 | private enum Stats : uint |
46 | { | 43 | { |
47 | TimeDilation = 0, | 44 | TimeDilation = 0, |
48 | SimFPS = 1, | 45 | SimFPS = 1, |
@@ -72,7 +69,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
72 | private RegionInfo ReportingRegion; | 69 | private RegionInfo ReportingRegion; |
73 | 70 | ||
74 | private Timer m_report = new Timer(); | 71 | private Timer m_report = new Timer(); |
75 | 72 | ||
76 | 73 | ||
77 | public SimStatsReporter(RegionInfo regionData) | 74 | public SimStatsReporter(RegionInfo regionData) |
78 | { | 75 | { |
@@ -93,23 +90,24 @@ namespace OpenSim.Region.Environment.Scenes | |||
93 | statpack.Region.RegionY = ReportingRegion.RegionLocY; | 90 | statpack.Region.RegionY = ReportingRegion.RegionLocY; |
94 | try | 91 | try |
95 | { | 92 | { |
96 | statpack.Region.RegionFlags = (uint)ReportingRegion.EstateSettings.regionFlags; | 93 | statpack.Region.RegionFlags = (uint) ReportingRegion.EstateSettings.regionFlags; |
97 | } | 94 | } |
98 | catch(System.Exception) | 95 | catch (Exception) |
99 | { | 96 | { |
100 | statpack.Region.RegionFlags = (uint)0; | 97 | statpack.Region.RegionFlags = (uint) 0; |
101 | } | 98 | } |
102 | statpack.Region.ObjectCapacity = (uint)15000; | 99 | statpack.Region.ObjectCapacity = (uint) 15000; |
103 | 100 | ||
104 | #region various statistic googly moogly | 101 | #region various statistic googly moogly |
105 | float simfps = (int)(m_fps * 5); | 102 | |
103 | float simfps = (int) (m_fps*5); | ||
106 | 104 | ||
107 | if (simfps > 45) | 105 | if (simfps > 45) |
108 | simfps = simfps - (simfps - 45); | 106 | simfps = simfps - (simfps - 45); |
109 | if (simfps < 0) | 107 | if (simfps < 0) |
110 | simfps = 0; | 108 | simfps = 0; |
111 | 109 | ||
112 | float physfps = (m_pfps / statsUpdatesEveryMS); | 110 | float physfps = (m_pfps/statsUpdatesEveryMS); |
113 | 111 | ||
114 | if (physfps > 50) | 112 | if (physfps > 50) |
115 | physfps = physfps - (physfps - 50); | 113 | physfps = physfps - (physfps - 50); |
@@ -120,49 +118,49 @@ namespace OpenSim.Region.Environment.Scenes | |||
120 | #endregion | 118 | #endregion |
121 | 119 | ||
122 | sb[0] = new SimStatsPacket.StatBlock(); | 120 | sb[0] = new SimStatsPacket.StatBlock(); |
123 | sb[0].StatID = (uint)Stats.TimeDilation; | 121 | sb[0].StatID = (uint) Stats.TimeDilation; |
124 | sb[0].StatValue = (m_timeDilation); | 122 | sb[0].StatValue = (m_timeDilation); |
125 | 123 | ||
126 | sb[1] = new SimStatsPacket.StatBlock(); | 124 | sb[1] = new SimStatsPacket.StatBlock(); |
127 | sb[1].StatID = (uint)Stats.SimFPS; | 125 | sb[1].StatID = (uint) Stats.SimFPS; |
128 | sb[1].StatValue = simfps; | 126 | sb[1].StatValue = simfps; |
129 | 127 | ||
130 | sb[2] = new SimStatsPacket.StatBlock(); | 128 | sb[2] = new SimStatsPacket.StatBlock(); |
131 | sb[2].StatID = (uint)Stats.PhysicsFPS; | 129 | sb[2].StatID = (uint) Stats.PhysicsFPS; |
132 | sb[2].StatValue = physfps; | 130 | sb[2].StatValue = physfps; |
133 | 131 | ||
134 | sb[3] = new SimStatsPacket.StatBlock(); | 132 | sb[3] = new SimStatsPacket.StatBlock(); |
135 | sb[3].StatID = (uint)Stats.AgentUpdates; | 133 | sb[3].StatID = (uint) Stats.AgentUpdates; |
136 | sb[3].StatValue = (m_agentUpdates / statsUpdatesEveryMS); | 134 | sb[3].StatValue = (m_agentUpdates/statsUpdatesEveryMS); |
137 | 135 | ||
138 | sb[4] = new SimStatsPacket.StatBlock(); | 136 | sb[4] = new SimStatsPacket.StatBlock(); |
139 | sb[4].StatID = (uint)Stats.Agents; | 137 | sb[4].StatID = (uint) Stats.Agents; |
140 | sb[4].StatValue = m_rootAgents; | 138 | sb[4].StatValue = m_rootAgents; |
141 | 139 | ||
142 | sb[5] = new SimStatsPacket.StatBlock(); | 140 | sb[5] = new SimStatsPacket.StatBlock(); |
143 | sb[5].StatID = (uint)Stats.ChildAgents; | 141 | sb[5].StatID = (uint) Stats.ChildAgents; |
144 | sb[5].StatValue = m_childAgents; | 142 | sb[5].StatValue = m_childAgents; |
145 | 143 | ||
146 | sb[6] = new SimStatsPacket.StatBlock(); | 144 | sb[6] = new SimStatsPacket.StatBlock(); |
147 | sb[6].StatID = (uint)Stats.TotalPrim; | 145 | sb[6].StatID = (uint) Stats.TotalPrim; |
148 | sb[6].StatValue = m_numPrim; | 146 | sb[6].StatValue = m_numPrim; |
149 | 147 | ||
150 | sb[7] = new SimStatsPacket.StatBlock(); | 148 | sb[7] = new SimStatsPacket.StatBlock(); |
151 | sb[7].StatID = (uint)Stats.ActivePrim; | 149 | sb[7].StatID = (uint) Stats.ActivePrim; |
152 | sb[7].StatValue = m_activePrim; | 150 | sb[7].StatValue = m_activePrim; |
153 | 151 | ||
154 | sb[8] = new SimStatsPacket.StatBlock(); | 152 | sb[8] = new SimStatsPacket.StatBlock(); |
155 | sb[8].StatID = (uint)Stats.InPacketsPerSecond; | 153 | sb[8].StatID = (uint) Stats.InPacketsPerSecond; |
156 | sb[8].StatValue = (int)(m_inPacketsPerSecond / statsUpdatesEveryMS); | 154 | sb[8].StatValue = (int) (m_inPacketsPerSecond/statsUpdatesEveryMS); |
157 | 155 | ||
158 | sb[9] = new SimStatsPacket.StatBlock(); | 156 | sb[9] = new SimStatsPacket.StatBlock(); |
159 | sb[9].StatID = (uint)Stats.OutPacketsPerSecond; | 157 | sb[9].StatID = (uint) Stats.OutPacketsPerSecond; |
160 | sb[9].StatValue = (int)(m_outPacketsPerSecond / statsUpdatesEveryMS); | 158 | sb[9].StatValue = (int) (m_outPacketsPerSecond/statsUpdatesEveryMS); |
161 | 159 | ||
162 | sb[10] = new SimStatsPacket.StatBlock(); | 160 | sb[10] = new SimStatsPacket.StatBlock(); |
163 | sb[10].StatID = (uint)Stats.UnAckedBytes; | 161 | sb[10].StatID = (uint) Stats.UnAckedBytes; |
164 | sb[10].StatValue = (int) (m_unAckedBytes / statsUpdatesEveryMS); | 162 | sb[10].StatValue = (int) (m_unAckedBytes/statsUpdatesEveryMS); |
165 | 163 | ||
166 | statpack.Stat = sb; | 164 | statpack.Stat = sb; |
167 | 165 | ||
168 | if (OnSendStatsResult != null) | 166 | if (OnSendStatsResult != null) |
@@ -181,8 +179,8 @@ namespace OpenSim.Region.Environment.Scenes | |||
181 | m_inPacketsPerSecond = 0; | 179 | m_inPacketsPerSecond = 0; |
182 | m_outPacketsPerSecond = 0; | 180 | m_outPacketsPerSecond = 0; |
183 | m_unAckedBytes = 0; | 181 | m_unAckedBytes = 0; |
184 | |||
185 | } | 182 | } |
183 | |||
186 | public void SetTimeDilation(float td) | 184 | public void SetTimeDilation(float td) |
187 | { | 185 | { |
188 | m_timeDilation = td; | 186 | m_timeDilation = td; |
@@ -191,47 +189,56 @@ namespace OpenSim.Region.Environment.Scenes | |||
191 | 189 | ||
192 | if (m_timeDilation < 0) | 190 | if (m_timeDilation < 0) |
193 | m_timeDilation = 0.0f; | 191 | m_timeDilation = 0.0f; |
194 | |||
195 | } | 192 | } |
193 | |||
196 | public void SetRootAgents(int rootAgents) | 194 | public void SetRootAgents(int rootAgents) |
197 | { | 195 | { |
198 | m_rootAgents = rootAgents; | 196 | m_rootAgents = rootAgents; |
199 | } | 197 | } |
198 | |||
200 | public void SetChildAgents(int childAgents) | 199 | public void SetChildAgents(int childAgents) |
201 | { | 200 | { |
202 | m_childAgents = childAgents; | 201 | m_childAgents = childAgents; |
203 | } | 202 | } |
203 | |||
204 | public void SetObjects(int objects) | 204 | public void SetObjects(int objects) |
205 | { | 205 | { |
206 | m_numPrim = objects; | 206 | m_numPrim = objects; |
207 | } | 207 | } |
208 | |||
208 | public void SetActiveObjects(int objects) | 209 | public void SetActiveObjects(int objects) |
209 | { | 210 | { |
210 | m_activePrim = objects; | 211 | m_activePrim = objects; |
211 | } | 212 | } |
213 | |||
212 | public void AddFPS(int frames) | 214 | public void AddFPS(int frames) |
213 | { | 215 | { |
214 | m_fps += frames; | 216 | m_fps += frames; |
215 | } | 217 | } |
218 | |||
216 | public void AddPhysicsFPS(float frames) | 219 | public void AddPhysicsFPS(float frames) |
217 | { | 220 | { |
218 | m_pfps += frames; | 221 | m_pfps += frames; |
219 | } | 222 | } |
223 | |||
220 | public void AddAgentUpdates(float numUpdates) | 224 | public void AddAgentUpdates(float numUpdates) |
221 | { | 225 | { |
222 | m_agentUpdates += numUpdates; | 226 | m_agentUpdates += numUpdates; |
223 | } | 227 | } |
228 | |||
224 | public void AddInPackets(int numPackets) | 229 | public void AddInPackets(int numPackets) |
225 | { | 230 | { |
226 | m_inPacketsPerSecond += numPackets; | 231 | m_inPacketsPerSecond += numPackets; |
227 | } | 232 | } |
233 | |||
228 | public void AddOutPackets(int numPackets) | 234 | public void AddOutPackets(int numPackets) |
229 | { | 235 | { |
230 | m_outPacketsPerSecond += numPackets; | 236 | m_outPacketsPerSecond += numPackets; |
231 | } | 237 | } |
238 | |||
232 | public void AddunAckedBytes(int numBytes) | 239 | public void AddunAckedBytes(int numBytes) |
233 | { | 240 | { |
234 | m_unAckedBytes += numBytes; | 241 | m_unAckedBytes += numBytes; |
235 | } | 242 | } |
236 | } | 243 | } |
237 | } | 244 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs b/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs index b3084a2..2d8441e 100644 --- a/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs +++ b/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs | |||
@@ -26,7 +26,6 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | ||
30 | using System.IO; | 29 | using System.IO; |
31 | using libsecondlife; | 30 | using libsecondlife; |
32 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs index ec93362..3e191b4 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyNpcCharacter.cs | |||
@@ -29,7 +29,6 @@ | |||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Net; | 31 | using System.Net; |
32 | using System.Text; | ||
33 | using libsecondlife; | 32 | using libsecondlife; |
34 | using libsecondlife.Packets; | 33 | using libsecondlife.Packets; |
35 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
@@ -62,7 +61,7 @@ namespace SimpleApp | |||
62 | public event LinkObjects OnLinkObjects; | 61 | public event LinkObjects OnLinkObjects; |
63 | public event DelinkObjects OnDelinkObjects; | 62 | public event DelinkObjects OnDelinkObjects; |
64 | public event RequestMapBlocks OnRequestMapBlocks; | 63 | public event RequestMapBlocks OnRequestMapBlocks; |
65 | public event RequestMapName OnMapNameRequest; | 64 | public event RequestMapName OnMapNameRequest; |
66 | public event TeleportLocationRequest OnTeleportLocationRequest; | 65 | public event TeleportLocationRequest OnTeleportLocationRequest; |
67 | public event DisconnectUser OnDisconnectUser; | 66 | public event DisconnectUser OnDisconnectUser; |
68 | public event RequestAvatarProperties OnRequestAvatarProperties; | 67 | public event RequestAvatarProperties OnRequestAvatarProperties; |
@@ -139,7 +138,7 @@ namespace SimpleApp | |||
139 | public event EstateOwnerMessageRequest OnEstateOwnerMessage; | 138 | public event EstateOwnerMessageRequest OnEstateOwnerMessage; |
140 | public event RegionInfoRequest OnRegionInfoRequest; | 139 | public event RegionInfoRequest OnRegionInfoRequest; |
141 | public event EstateCovenantRequest OnEstateCovenantRequest; | 140 | public event EstateCovenantRequest OnEstateCovenantRequest; |
142 | 141 | ||
143 | 142 | ||
144 | #pragma warning restore 67 | 143 | #pragma warning restore 67 |
145 | 144 | ||
@@ -168,7 +167,7 @@ namespace SimpleApp | |||
168 | { | 167 | { |
169 | get { return LLUUID.Zero; } | 168 | get { return LLUUID.Zero; } |
170 | } | 169 | } |
171 | 170 | ||
172 | public LLUUID SecureSessionId | 171 | public LLUUID SecureSessionId |
173 | { | 172 | { |
174 | get { return LLUUID.Zero; } | 173 | get { return LLUUID.Zero; } |
@@ -185,7 +184,7 @@ namespace SimpleApp | |||
185 | { | 184 | { |
186 | get { return lastName; } | 185 | get { return lastName; } |
187 | } | 186 | } |
188 | 187 | ||
189 | public virtual String Name | 188 | public virtual String Name |
190 | { | 189 | { |
191 | get { return FirstName + LastName; } | 190 | get { return FirstName + LastName; } |
@@ -314,7 +313,8 @@ namespace SimpleApp | |||
314 | 313 | ||
315 | public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, | 314 | public virtual void SendPrimitiveToClient(ulong regionHandle, ushort timeDilation, uint localID, |
316 | PrimitiveBaseShape primShape, LLVector3 pos, uint flags, | 315 | PrimitiveBaseShape primShape, LLVector3 pos, uint flags, |
317 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, uint parentID, | 316 | LLUUID objectID, LLUUID ownerID, string text, byte[] color, |
317 | uint parentID, | ||
318 | byte[] particleSystem, LLQuaternion rotation, byte clickAction) | 318 | byte[] particleSystem, LLQuaternion rotation, byte clickAction) |
319 | { | 319 | { |
320 | } | 320 | } |
@@ -323,14 +323,16 @@ namespace SimpleApp | |||
323 | LLVector3 position, LLQuaternion rotation) | 323 | LLVector3 position, LLQuaternion rotation) |
324 | { | 324 | { |
325 | } | 325 | } |
326 | |||
326 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, | 327 | public virtual void SendPrimTerseUpdate(ulong regionHandle, ushort timeDilation, uint localID, |
327 | LLVector3 position, LLQuaternion rotation,LLVector3 velocity, LLVector3 rotationalvelocity) | 328 | LLVector3 position, LLQuaternion rotation, LLVector3 velocity, |
329 | LLVector3 rotationalvelocity) | ||
328 | { | 330 | { |
329 | } | 331 | } |
330 | 332 | ||
331 | public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, | 333 | public virtual void SendInventoryFolderDetails(LLUUID ownerID, LLUUID folderID, |
332 | List<InventoryItemBase> items, | 334 | List<InventoryItemBase> items, |
333 | List<InventoryFolderBase> folders, | 335 | List<InventoryFolderBase> folders, |
334 | bool fetchFolders, | 336 | bool fetchFolders, |
335 | bool fetchItems) | 337 | bool fetchItems) |
336 | { | 338 | { |
@@ -376,9 +378,11 @@ namespace SimpleApp | |||
376 | public void SendAgentAlertMessage(string message, bool modal) | 378 | public void SendAgentAlertMessage(string message, bool modal) |
377 | { | 379 | { |
378 | } | 380 | } |
381 | |||
379 | public void SendSystemAlertMessage(string message) | 382 | public void SendSystemAlertMessage(string message) |
380 | { | 383 | { |
381 | } | 384 | } |
385 | |||
382 | public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, | 386 | public void SendLoadURL(string objectname, LLUUID objectID, LLUUID ownerID, bool groupOwned, string message, |
383 | string url) | 387 | string url) |
384 | { | 388 | { |
@@ -477,7 +481,6 @@ namespace SimpleApp | |||
477 | 481 | ||
478 | public void Stop() | 482 | public void Stop() |
479 | { | 483 | { |
480 | |||
481 | } | 484 | } |
482 | 485 | ||
483 | private uint m_circuitCode; | 486 | private uint m_circuitCode; |
@@ -492,4 +495,4 @@ namespace SimpleApp | |||
492 | { | 495 | { |
493 | } | 496 | } |
494 | } | 497 | } |
495 | } | 498 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Examples/SimpleApp/MyWorld.cs b/OpenSim/Region/Examples/SimpleApp/MyWorld.cs index d5f702d..4c12b3f 100644 --- a/OpenSim/Region/Examples/SimpleApp/MyWorld.cs +++ b/OpenSim/Region/Examples/SimpleApp/MyWorld.cs | |||
@@ -41,10 +41,13 @@ namespace SimpleApp | |||
41 | { | 41 | { |
42 | private List<ScenePresence> m_avatars; | 42 | private List<ScenePresence> m_avatars; |
43 | 43 | ||
44 | public MyWorld(RegionInfo regionInfo, AgentCircuitManager authen, PermissionManager permissionManager, CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | 44 | public MyWorld(RegionInfo regionInfo, AgentCircuitManager authen, PermissionManager permissionManager, |
45 | CommunicationsManager commsMan, SceneCommunicationService sceneGridService, | ||
45 | AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer, | 46 | AssetCache assetCach, StorageManager storeMan, BaseHttpServer httpServer, |
46 | ModuleLoader moduleLoader, bool physicalPrim, bool ChildGetTasks) | 47 | ModuleLoader moduleLoader, bool physicalPrim, bool ChildGetTasks) |
47 | : base(regionInfo, authen, permissionManager, commsMan, sceneGridService, assetCach, storeMan, httpServer, moduleLoader, false, true, false) | 48 | : base( |
49 | regionInfo, authen, permissionManager, commsMan, sceneGridService, assetCach, storeMan, httpServer, | ||
50 | moduleLoader, false, true, false) | ||
48 | { | 51 | { |
49 | m_avatars = new List<ScenePresence>(); | 52 | m_avatars = new List<ScenePresence>(); |
50 | } | 53 | } |
@@ -73,7 +76,7 @@ namespace SimpleApp | |||
73 | 76 | ||
74 | client.OnCompleteMovementToRegion += | 77 | client.OnCompleteMovementToRegion += |
75 | delegate() { client.SendChatMessage("Welcome to My World.", 1, pos, "System", LLUUID.Zero); }; | 78 | delegate() { client.SendChatMessage("Welcome to My World.", 1, pos, "System", LLUUID.Zero); }; |
76 | 79 | ||
77 | client.SendRegionHandshake(m_regInfo); | 80 | client.SendRegionHandshake(m_regInfo); |
78 | } | 81 | } |
79 | } | 82 | } |
diff --git a/OpenSim/Region/Examples/SimpleApp/Program.cs b/OpenSim/Region/Examples/SimpleApp/Program.cs index 02108d0..d872bf6 100644 --- a/OpenSim/Region/Examples/SimpleApp/Program.cs +++ b/OpenSim/Region/Examples/SimpleApp/Program.cs | |||
@@ -179,7 +179,8 @@ namespace SimpleApp | |||
179 | PermissionManager permissionManager = new PermissionManager(); | 179 | PermissionManager permissionManager = new PermissionManager(); |
180 | SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); | 180 | SceneCommunicationService sceneGridService = new SceneCommunicationService(m_commsManager); |
181 | return | 181 | return |
182 | new MyWorld(regionInfo, circuitManager, permissionManager, m_commsManager, sceneGridService, m_assetCache, storageManager, m_httpServer, | 182 | new MyWorld(regionInfo, circuitManager, permissionManager, m_commsManager, sceneGridService, |
183 | m_assetCache, storageManager, m_httpServer, | ||
183 | new ModuleLoader(m_log, m_config), true, false); | 184 | new ModuleLoader(m_log, m_config), true, false); |
184 | } | 185 | } |
185 | 186 | ||
@@ -214,4 +215,4 @@ namespace SimpleApp | |||
214 | app.Run(); | 215 | app.Run(); |
215 | } | 216 | } |
216 | } | 217 | } |
217 | } | 218 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/CSharpScriptEngine.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/CSharpScriptEngine.cs index 89c3743..b625f43 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/CSharpScriptEngine.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/CSharpScriptEngine.cs | |||
@@ -101,4 +101,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.CSharp | |||
101 | return LoadDotNetScript(csharpProvider, filename); | 101 | return LoadDotNetScript(csharpProvider, filename); |
102 | } | 102 | } |
103 | } | 103 | } |
104 | } | 104 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs index 09b7f48..a25d027 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/CSharp/Examples/ExportRegionToLSL.cs | |||
@@ -91,4 +91,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.CSharp.Examples | |||
91 | return ""; | 91 | return ""; |
92 | } | 92 | } |
93 | } | 93 | } |
94 | } | 94 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JScript/JScriptEngine.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JScript/JScriptEngine.cs index 425c3a4..bc5c413 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JScript/JScriptEngine.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JScript/JScriptEngine.cs | |||
@@ -101,4 +101,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JScript | |||
101 | return LoadDotNetScript(jscriptProvider, filename); | 101 | return LoadDotNetScript(jscriptProvider, filename); |
102 | } | 102 | } |
103 | } | 103 | } |
104 | } | 104 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassInstance.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassInstance.cs index 7a2a96b..c12fda5 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassInstance.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassInstance.cs | |||
@@ -40,4 +40,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
40 | { | 40 | { |
41 | } | 41 | } |
42 | } | 42 | } |
43 | } | 43 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassRecord.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassRecord.cs index adf7d66..b152df2 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassRecord.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/ClassRecord.cs | |||
@@ -645,4 +645,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
645 | 645 | ||
646 | #endregion | 646 | #endregion |
647 | } | 647 | } |
648 | } | 648 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Heap.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Heap.cs index 500c991..4308a19 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Heap.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Heap.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
37 | { | 37 | { |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Logic.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Logic.cs index 03e0756..d9f5ce1 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Logic.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Logic.cs | |||
@@ -616,4 +616,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
616 | } | 616 | } |
617 | } | 617 | } |
618 | } | 618 | } |
619 | } | 619 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Methods.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Methods.cs index 25bc2a8..fb8a16e 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Methods.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Methods.cs | |||
@@ -99,4 +99,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
99 | } | 99 | } |
100 | } | 100 | } |
101 | } | 101 | } |
102 | } | 102 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Return.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Return.cs index 9580159..60cf8d4 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Return.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.Return.cs | |||
@@ -33,4 +33,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
33 | { | 33 | { |
34 | } | 34 | } |
35 | } | 35 | } |
36 | } | 36 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.cs index 3634c24..64e9275 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Interpreter.cs | |||
@@ -129,4 +129,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
129 | } | 129 | } |
130 | } | 130 | } |
131 | } | 131 | } |
132 | } | 132 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MainMemory.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MainMemory.cs index 9a06cad..6e62d5a 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MainMemory.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MainMemory.cs | |||
@@ -38,4 +38,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
38 | HeapArea = new Heap(); | 38 | HeapArea = new Heap(); |
39 | } | 39 | } |
40 | } | 40 | } |
41 | } | 41 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MethodMemory.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MethodMemory.cs index d73fec6..2d3fc47 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MethodMemory.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/MethodMemory.cs | |||
@@ -41,4 +41,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
41 | MethodBuffer = new byte[20000]; | 41 | MethodBuffer = new byte[20000]; |
42 | } | 42 | } |
43 | } | 43 | } |
44 | } | 44 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Object.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Object.cs index bad71c9..f17bf43 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Object.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Object.cs | |||
@@ -30,4 +30,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
30 | public class Object | 30 | public class Object |
31 | { | 31 | { |
32 | } | 32 | } |
33 | } | 33 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Stack.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Stack.cs index 88d5af0..ff01307 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Stack.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Stack.cs | |||
@@ -37,4 +37,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
37 | { | 37 | { |
38 | } | 38 | } |
39 | } | 39 | } |
40 | } | 40 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/StackFrame.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/StackFrame.cs index a73ebd0..40bec4c 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/StackFrame.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/StackFrame.cs | |||
@@ -43,4 +43,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
43 | LocalVariables = new BaseType[20]; | 43 | LocalVariables = new BaseType[20]; |
44 | } | 44 | } |
45 | } | 45 | } |
46 | } | 46 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Thread.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Thread.cs index 50c9c09..7f3af0e 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Thread.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/JVM/Thread.cs | |||
@@ -108,4 +108,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine.JVM | |||
108 | return m_Interpreter.Excute(); | 108 | return m_Interpreter.Excute(); |
109 | } | 109 | } |
110 | } | 110 | } |
111 | } | 111 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/OpenSimJVM.cs b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/OpenSimJVM.cs index 00c2d1c..449f715 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/OpenSimJVM.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Engines/JVMEngine/OpenSimJVM.cs | |||
@@ -163,4 +163,4 @@ namespace OpenSim.Region.ExtensionsScriptModule.JVMEngine | |||
163 | } | 163 | } |
164 | } | 164 | } |
165 | } | 165 | } |
166 | } | 166 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/Script.cs b/OpenSim/Region/ExtensionsScriptModule/Script.cs index 3a9edfe..0555277 100644 --- a/OpenSim/Region/ExtensionsScriptModule/Script.cs +++ b/OpenSim/Region/ExtensionsScriptModule/Script.cs | |||
@@ -61,4 +61,4 @@ namespace OpenSim.Region.ExtensionsScriptModule | |||
61 | //script.logger.Verbose("TESTSCRIPT", "Hello World!"); | 61 | //script.logger.Verbose("TESTSCRIPT", "Hello World!"); |
62 | } | 62 | } |
63 | } | 63 | } |
64 | } | 64 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/ScriptInfo.cs b/OpenSim/Region/ExtensionsScriptModule/ScriptInfo.cs index 4fccef1..af54a4e 100644 --- a/OpenSim/Region/ExtensionsScriptModule/ScriptInfo.cs +++ b/OpenSim/Region/ExtensionsScriptModule/ScriptInfo.cs | |||
@@ -61,4 +61,4 @@ namespace OpenSim.Region.ExtensionsScriptModule | |||
61 | api = new ScriptAPI(world, task); | 61 | api = new ScriptAPI(world, task); |
62 | } | 62 | } |
63 | } | 63 | } |
64 | } | 64 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ExtensionsScriptModule/ScriptManager.cs b/OpenSim/Region/ExtensionsScriptModule/ScriptManager.cs index 1f26d22..d080ab8 100644 --- a/OpenSim/Region/ExtensionsScriptModule/ScriptManager.cs +++ b/OpenSim/Region/ExtensionsScriptModule/ScriptManager.cs | |||
@@ -146,4 +146,4 @@ namespace OpenSim.Region.ExtensionsScriptModule | |||
146 | Dictionary<string, IScript> compile(string filename); | 146 | Dictionary<string, IScript> compile(string filename); |
147 | string FileExt(); | 147 | string FileExt(); |
148 | } | 148 | } |
149 | } | 149 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/AssemblyInfo.cs index 919910c..b76fbbf 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs index 5ac651f..636cf1a 100644 --- a/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs +++ b/OpenSim/Region/Physics/BasicPhysicsPlugin/BasicPhysicsPlugin.cs | |||
@@ -106,18 +106,19 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
106 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 106 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
107 | PhysicsVector size, Quaternion rotation) | 107 | PhysicsVector size, Quaternion rotation) |
108 | { | 108 | { |
109 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 109 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
110 | } | 110 | } |
111 | 111 | ||
112 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 112 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
113 | PhysicsVector size, Quaternion rotation, bool isPhysical) | 113 | PhysicsVector size, Quaternion rotation, bool isPhysical) |
114 | { | 114 | { |
115 | return null; | 115 | return null; |
116 | } | 116 | } |
117 | |||
117 | public override void AddPhysicsActorTaint(PhysicsActor prim) | 118 | public override void AddPhysicsActorTaint(PhysicsActor prim) |
118 | { | 119 | { |
119 | |||
120 | } | 120 | } |
121 | |||
121 | public override float Simulate(float timeStep) | 122 | public override float Simulate(float timeStep) |
122 | { | 123 | { |
123 | float fps = 0; | 124 | float fps = 0; |
@@ -125,8 +126,8 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
125 | { | 126 | { |
126 | BasicActor actor = _actors[i]; | 127 | BasicActor actor = _actors[i]; |
127 | 128 | ||
128 | actor.Position.X += actor.Velocity.X * timeStep; | 129 | actor.Position.X += actor.Velocity.X*timeStep; |
129 | actor.Position.Y += actor.Velocity.Y * timeStep; | 130 | actor.Position.Y += actor.Velocity.Y*timeStep; |
130 | 131 | ||
131 | if (actor.Position.Y < 0) | 132 | if (actor.Position.Y < 0) |
132 | { | 133 | { |
@@ -146,18 +147,18 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
146 | actor.Position.X = 255.9F; | 147 | actor.Position.X = 255.9F; |
147 | } | 148 | } |
148 | 149 | ||
149 | float height = _heightMap[(int) actor.Position.Y * 256 + (int) actor.Position.X] + 1.0f; | 150 | float height = _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 1.0f; |
150 | if (actor.Flying) | 151 | if (actor.Flying) |
151 | { | 152 | { |
152 | if (actor.Position.Z + (actor.Velocity.Z * timeStep) < | 153 | if (actor.Position.Z + (actor.Velocity.Z*timeStep) < |
153 | _heightMap[(int) actor.Position.Y * 256 + (int) actor.Position.X] + 2) | 154 | _heightMap[(int) actor.Position.Y*256 + (int) actor.Position.X] + 2) |
154 | { | 155 | { |
155 | actor.Position.Z = height; | 156 | actor.Position.Z = height; |
156 | actor.Velocity.Z = 0; | 157 | actor.Velocity.Z = 0; |
157 | } | 158 | } |
158 | else | 159 | else |
159 | { | 160 | { |
160 | actor.Position.Z += actor.Velocity.Z * timeStep; | 161 | actor.Position.Z += actor.Velocity.Z*timeStep; |
161 | } | 162 | } |
162 | } | 163 | } |
163 | else | 164 | else |
@@ -204,31 +205,37 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
204 | _position = new PhysicsVector(); | 205 | _position = new PhysicsVector(); |
205 | _acceleration = new PhysicsVector(); | 206 | _acceleration = new PhysicsVector(); |
206 | } | 207 | } |
208 | |||
207 | public override int PhysicsActorType | 209 | public override int PhysicsActorType |
208 | { | 210 | { |
209 | get { return (int)ActorTypes.Agent; } | 211 | get { return (int) ActorTypes.Agent; } |
210 | set { return; } | 212 | set { return; } |
211 | } | 213 | } |
214 | |||
212 | public override PhysicsVector RotationalVelocity | 215 | public override PhysicsVector RotationalVelocity |
213 | { | 216 | { |
214 | get { return m_rotationalVelocity; } | 217 | get { return m_rotationalVelocity; } |
215 | set { m_rotationalVelocity = value; } | 218 | set { m_rotationalVelocity = value; } |
216 | } | 219 | } |
220 | |||
217 | public override bool SetAlwaysRun | 221 | public override bool SetAlwaysRun |
218 | { | 222 | { |
219 | get { return false; } | 223 | get { return false; } |
220 | set { return; } | 224 | set { return; } |
221 | } | 225 | } |
226 | |||
222 | public override bool IsPhysical | 227 | public override bool IsPhysical |
223 | { | 228 | { |
224 | get { return false; } | 229 | get { return false; } |
225 | set { return; } | 230 | set { return; } |
226 | } | 231 | } |
232 | |||
227 | public override bool ThrottleUpdates | 233 | public override bool ThrottleUpdates |
228 | { | 234 | { |
229 | get { return false; } | 235 | get { return false; } |
230 | set { return; } | 236 | set { return; } |
231 | } | 237 | } |
238 | |||
232 | public override bool Flying | 239 | public override bool Flying |
233 | { | 240 | { |
234 | get { return flying; } | 241 | get { return flying; } |
@@ -240,16 +247,19 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
240 | get { return iscolliding; } | 247 | get { return iscolliding; } |
241 | set { iscolliding = value; } | 248 | set { iscolliding = value; } |
242 | } | 249 | } |
250 | |||
243 | public override bool CollidingGround | 251 | public override bool CollidingGround |
244 | { | 252 | { |
245 | get { return false; } | 253 | get { return false; } |
246 | set { return; } | 254 | set { return; } |
247 | } | 255 | } |
256 | |||
248 | public override bool CollidingObj | 257 | public override bool CollidingObj |
249 | { | 258 | { |
250 | get { return false; } | 259 | get { return false; } |
251 | set { return; } | 260 | set { return; } |
252 | } | 261 | } |
262 | |||
253 | public override PhysicsVector Position | 263 | public override PhysicsVector Position |
254 | { | 264 | { |
255 | get { return _position; } | 265 | get { return _position; } |
@@ -264,27 +274,29 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
264 | 274 | ||
265 | public override PrimitiveBaseShape Shape | 275 | public override PrimitiveBaseShape Shape |
266 | { | 276 | { |
267 | set | 277 | set { return; } |
268 | { | ||
269 | return; | ||
270 | } | ||
271 | } | 278 | } |
279 | |||
272 | public override float Mass | 280 | public override float Mass |
273 | { | 281 | { |
274 | get { return 0f; } | 282 | get { return 0f; } |
275 | } | 283 | } |
284 | |||
276 | public override PhysicsVector Force | 285 | public override PhysicsVector Force |
277 | { | 286 | { |
278 | get { return PhysicsVector.Zero; } | 287 | get { return PhysicsVector.Zero; } |
279 | } | 288 | } |
289 | |||
280 | public override PhysicsVector CenterOfMass | 290 | public override PhysicsVector CenterOfMass |
281 | { | 291 | { |
282 | get { return PhysicsVector.Zero; } | 292 | get { return PhysicsVector.Zero; } |
283 | } | 293 | } |
294 | |||
284 | public override PhysicsVector GeometricCenter | 295 | public override PhysicsVector GeometricCenter |
285 | { | 296 | { |
286 | get { return PhysicsVector.Zero; } | 297 | get { return PhysicsVector.Zero; } |
287 | } | 298 | } |
299 | |||
288 | public override PhysicsVector Velocity | 300 | public override PhysicsVector Velocity |
289 | { | 301 | { |
290 | get { return _velocity; } | 302 | get { return _velocity; } |
@@ -321,4 +333,4 @@ namespace OpenSim.Region.Physics.BasicPhysicsPlugin | |||
321 | { | 333 | { |
322 | } | 334 | } |
323 | } | 335 | } |
324 | } | 336 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/BulletXPlugin/AssemblyInfo.cs index 06d4fe3..6b7ce82 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.0.0")] | 58 | [assembly : AssemblyVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs index 5602301..a88299e 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/BulletXPlugin.cs | |||
@@ -70,12 +70,11 @@ using XnaDevRu.BulletX; | |||
70 | using XnaDevRu.BulletX.Dynamics; | 70 | using XnaDevRu.BulletX.Dynamics; |
71 | using AxiomQuaternion = Axiom.Math.Quaternion; | 71 | using AxiomQuaternion = Axiom.Math.Quaternion; |
72 | using BoxShape=XnaDevRu.BulletX.BoxShape; | 72 | using BoxShape=XnaDevRu.BulletX.BoxShape; |
73 | #endregion | ||
74 | 73 | ||
74 | #endregion | ||
75 | 75 | ||
76 | namespace OpenSim.Region.Physics.BulletXPlugin | 76 | namespace OpenSim.Region.Physics.BulletXPlugin |
77 | { | 77 | { |
78 | |||
79 | /// <summary> | 78 | /// <summary> |
80 | /// BulletXConversions are called now BulletXMaths | 79 | /// BulletXConversions are called now BulletXMaths |
81 | /// This Class converts objects and types for BulletX and give some operations | 80 | /// This Class converts objects and types for BulletX and give some operations |
@@ -263,25 +262,25 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
263 | 262 | ||
264 | // Class to detect and debug collisions | 263 | // Class to detect and debug collisions |
265 | // Mainly used for debugging purposes | 264 | // Mainly used for debugging purposes |
266 | class CollisionDispatcherLocal : CollisionDispatcher | 265 | internal class CollisionDispatcherLocal : CollisionDispatcher |
267 | { | 266 | { |
268 | 267 | private BulletXScene relatedScene; | |
269 | BulletXScene relatedScene; | ||
270 | 268 | ||
271 | public CollisionDispatcherLocal(BulletXScene s) | 269 | public CollisionDispatcherLocal(BulletXScene s) |
272 | : base() | 270 | : base() |
273 | { | 271 | { |
274 | relatedScene=s; | 272 | relatedScene = s; |
275 | } | 273 | } |
276 | 274 | ||
277 | public override bool NeedsCollision(CollisionObject bodyA, CollisionObject bodyB) | 275 | public override bool NeedsCollision(CollisionObject bodyA, CollisionObject bodyB) |
278 | { | 276 | { |
279 | RigidBody rb; | 277 | RigidBody rb; |
280 | BulletXCharacter bxcA=null; | 278 | BulletXCharacter bxcA = null; |
281 | BulletXPrim bxpA = null; | 279 | BulletXPrim bxpA = null; |
282 | Type t = bodyA.GetType(); | 280 | Type t = bodyA.GetType(); |
283 | if (t==typeof(RigidBody)) { | 281 | if (t == typeof (RigidBody)) |
284 | rb = (RigidBody)bodyA; | 282 | { |
283 | rb = (RigidBody) bodyA; | ||
285 | relatedScene._characters.TryGetValue(rb, out bxcA); | 284 | relatedScene._characters.TryGetValue(rb, out bxcA); |
286 | relatedScene._prims.TryGetValue(rb, out bxpA); | 285 | relatedScene._prims.TryGetValue(rb, out bxpA); |
287 | } | 286 | } |
@@ -296,9 +295,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
296 | BulletXCharacter bxcB = null; | 295 | BulletXCharacter bxcB = null; |
297 | BulletXPrim bxpB = null; | 296 | BulletXPrim bxpB = null; |
298 | t = bodyB.GetType(); | 297 | t = bodyB.GetType(); |
299 | if (t == typeof(RigidBody)) | 298 | if (t == typeof (RigidBody)) |
300 | { | 299 | { |
301 | rb = (RigidBody)bodyB; | 300 | rb = (RigidBody) bodyB; |
302 | relatedScene._characters.TryGetValue(rb, out bxcB); | 301 | relatedScene._characters.TryGetValue(rb, out bxcB); |
303 | relatedScene._prims.TryGetValue(rb, out bxpB); | 302 | relatedScene._prims.TryGetValue(rb, out bxpB); |
304 | } | 303 | } |
@@ -310,15 +309,16 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
310 | else | 309 | else |
311 | nameB = "null"; | 310 | nameB = "null"; |
312 | 311 | ||
313 | bool needsCollision=base.NeedsCollision(bodyA, bodyB); | 312 | bool needsCollision = base.NeedsCollision(bodyA, bodyB); |
314 | 313 | ||
315 | MainLog.Instance.Debug("BulletX", "A collision was detected between {0} and {1} --> {2}", nameA, nameB, needsCollision); | 314 | MainLog.Instance.Debug("BulletX", "A collision was detected between {0} and {1} --> {2}", nameA, nameB, |
315 | needsCollision); | ||
316 | 316 | ||
317 | 317 | ||
318 | return needsCollision; | 318 | return needsCollision; |
319 | } | 319 | } |
320 | } | 320 | } |
321 | 321 | ||
322 | /// <summary> | 322 | /// <summary> |
323 | /// PhysicsScene Class for BulletX | 323 | /// PhysicsScene Class for BulletX |
324 | /// </summary> | 324 | /// </summary> |
@@ -439,7 +439,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
439 | ((BulletXCharacter) actor).RigidBody.ActivationState = ActivationState.DisableSimulation; | 439 | ((BulletXCharacter) actor).RigidBody.ActivationState = ActivationState.DisableSimulation; |
440 | AddForgottenRigidBody(((BulletXCharacter) actor).RigidBody); | 440 | AddForgottenRigidBody(((BulletXCharacter) actor).RigidBody); |
441 | } | 441 | } |
442 | _characters.Remove(((BulletXCharacter)actor).RigidBody); | 442 | _characters.Remove(((BulletXCharacter) actor).RigidBody); |
443 | } | 443 | } |
444 | GC.Collect(); | 444 | GC.Collect(); |
445 | } | 445 | } |
@@ -448,8 +448,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
448 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 448 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
449 | PhysicsVector size, AxiomQuaternion rotation) | 449 | PhysicsVector size, AxiomQuaternion rotation) |
450 | { | 450 | { |
451 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 451 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
452 | } | 452 | } |
453 | |||
453 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 454 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
454 | PhysicsVector size, AxiomQuaternion rotation, bool isPhysical) | 455 | PhysicsVector size, AxiomQuaternion rotation, bool isPhysical) |
455 | { | 456 | { |
@@ -514,7 +515,6 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
514 | 515 | ||
515 | public override void AddPhysicsActorTaint(PhysicsActor prim) | 516 | public override void AddPhysicsActorTaint(PhysicsActor prim) |
516 | { | 517 | { |
517 | |||
518 | } | 518 | } |
519 | 519 | ||
520 | public override float Simulate(float timeStep) | 520 | public override float Simulate(float timeStep) |
@@ -526,10 +526,10 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
526 | RemoveForgottenRigidBodies(); | 526 | RemoveForgottenRigidBodies(); |
527 | //End of remove | 527 | //End of remove |
528 | MoveAllObjects(timeStep); | 528 | MoveAllObjects(timeStep); |
529 | 529 | ||
530 | 530 | ||
531 | fps = (timeStep * simulationSubSteps); | 531 | fps = (timeStep*simulationSubSteps); |
532 | 532 | ||
533 | ddWorld.StepSimulation(timeStep, simulationSubSteps, timeStep); | 533 | ddWorld.StepSimulation(timeStep, simulationSubSteps, timeStep); |
534 | //Extra Heightmap Validation: BulletX's HeightFieldTerrain somestimes doesn't work so fine. | 534 | //Extra Heightmap Validation: BulletX's HeightFieldTerrain somestimes doesn't work so fine. |
535 | ValidateHeightForAll(); | 535 | ValidateHeightForAll(); |
@@ -768,7 +768,13 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
768 | public override PhysicsVector Size | 768 | public override PhysicsVector Size |
769 | { | 769 | { |
770 | get { return _size; } | 770 | get { return _size; } |
771 | set { lock (BulletXScene.BulletXLock) { _size = value; } } | 771 | set |
772 | { | ||
773 | lock (BulletXScene.BulletXLock) | ||
774 | { | ||
775 | _size = value; | ||
776 | } | ||
777 | } | ||
772 | } | 778 | } |
773 | 779 | ||
774 | public override PhysicsVector Force | 780 | public override PhysicsVector Force |
@@ -788,10 +794,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
788 | 794 | ||
789 | public override PrimitiveBaseShape Shape | 795 | public override PrimitiveBaseShape Shape |
790 | { | 796 | { |
791 | set | 797 | set { return; } |
792 | { | ||
793 | return; | ||
794 | } | ||
795 | } | 798 | } |
796 | 799 | ||
797 | public override bool SetAlwaysRun | 800 | public override bool SetAlwaysRun |
@@ -818,9 +821,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
818 | } | 821 | } |
819 | } | 822 | } |
820 | 823 | ||
821 | public override float Mass | 824 | public override float Mass |
822 | { | 825 | { |
823 | get { return ActorMass; } | 826 | get { return ActorMass; } |
824 | } | 827 | } |
825 | 828 | ||
826 | public virtual float ActorMass | 829 | public virtual float ActorMass |
@@ -841,7 +844,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
841 | 844 | ||
842 | public Vector3 RigidBodyPosition | 845 | public Vector3 RigidBodyPosition |
843 | { | 846 | { |
844 | get { return this.rigidBody.CenterOfMassPosition; } | 847 | get { return rigidBody.CenterOfMassPosition; } |
845 | } | 848 | } |
846 | 849 | ||
847 | public override bool IsPhysical | 850 | public override bool IsPhysical |
@@ -855,6 +858,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
855 | get { return flying; } | 858 | get { return flying; } |
856 | set { flying = value; } | 859 | set { flying = value; } |
857 | } | 860 | } |
861 | |||
858 | public override bool ThrottleUpdates | 862 | public override bool ThrottleUpdates |
859 | { | 863 | { |
860 | get { return false; } | 864 | get { return false; } |
@@ -889,19 +893,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
889 | 893 | ||
890 | public override bool Kinematic | 894 | public override bool Kinematic |
891 | { | 895 | { |
892 | get | 896 | get { return false; } |
893 | { | 897 | set { } |
894 | return false; | ||
895 | } | ||
896 | set | ||
897 | { | ||
898 | |||
899 | } | ||
900 | } | 898 | } |
901 | 899 | ||
902 | public override void AddForce(PhysicsVector force) | 900 | public override void AddForce(PhysicsVector force) |
903 | { | 901 | { |
904 | |||
905 | } | 902 | } |
906 | 903 | ||
907 | public override void SetMomentum(PhysicsVector momentum) | 904 | public override void SetMomentum(PhysicsVector momentum) |
@@ -917,31 +914,37 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
917 | } | 914 | } |
918 | 915 | ||
919 | #region Methods for updating values of RigidBody | 916 | #region Methods for updating values of RigidBody |
920 | internal protected void Translate() | 917 | |
918 | protected internal void Translate() | ||
921 | { | 919 | { |
922 | Translate(this._position); | 920 | Translate(_position); |
923 | } | 921 | } |
924 | internal protected void Translate(PhysicsVector _newPos) | 922 | |
923 | protected internal void Translate(PhysicsVector _newPos) | ||
925 | { | 924 | { |
926 | Vector3 _translation; | 925 | Vector3 _translation; |
927 | _translation = BulletXMaths.PhysicsVectorToXnaVector3(_newPos) - rigidBody.CenterOfMassPosition; | 926 | _translation = BulletXMaths.PhysicsVectorToXnaVector3(_newPos) - rigidBody.CenterOfMassPosition; |
928 | rigidBody.Translate(_translation); | 927 | rigidBody.Translate(_translation); |
929 | } | 928 | } |
930 | internal protected void Speed() | 929 | |
930 | protected internal void Speed() | ||
931 | { | 931 | { |
932 | Speed(this._velocity); | 932 | Speed(_velocity); |
933 | } | 933 | } |
934 | internal protected void Speed(PhysicsVector _newSpeed) | 934 | |
935 | protected internal void Speed(PhysicsVector _newSpeed) | ||
935 | { | 936 | { |
936 | Vector3 _speed; | 937 | Vector3 _speed; |
937 | _speed = BulletXMaths.PhysicsVectorToXnaVector3(_newSpeed); | 938 | _speed = BulletXMaths.PhysicsVectorToXnaVector3(_newSpeed); |
938 | rigidBody.LinearVelocity = _speed; | 939 | rigidBody.LinearVelocity = _speed; |
939 | } | 940 | } |
940 | internal protected void ReOrient() | 941 | |
942 | protected internal void ReOrient() | ||
941 | { | 943 | { |
942 | ReOrient(this._orientation); | 944 | ReOrient(_orientation); |
943 | } | 945 | } |
944 | internal protected void ReOrient(AxiomQuaternion _newOrient) | 946 | |
947 | protected internal void ReOrient(AxiomQuaternion _newOrient) | ||
945 | { | 948 | { |
946 | Quaternion _newOrientation; | 949 | Quaternion _newOrientation; |
947 | _newOrientation = BulletXMaths.AxiomQuaternionToXnaQuaternion(_newOrient); | 950 | _newOrientation = BulletXMaths.AxiomQuaternionToXnaQuaternion(_newOrient); |
@@ -949,17 +952,21 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
949 | BulletXMaths.SetRotation(ref _comTransform, _newOrientation); | 952 | BulletXMaths.SetRotation(ref _comTransform, _newOrientation); |
950 | rigidBody.CenterOfMassTransform = _comTransform; | 953 | rigidBody.CenterOfMassTransform = _comTransform; |
951 | } | 954 | } |
952 | internal protected void ReSize() | 955 | |
956 | protected internal void ReSize() | ||
953 | { | 957 | { |
954 | ReSize(this._size); | 958 | ReSize(_size); |
955 | } | 959 | } |
956 | internal protected virtual void ReSize(PhysicsVector _newSize) | 960 | |
961 | protected internal virtual void ReSize(PhysicsVector _newSize) | ||
957 | { | 962 | { |
958 | } | 963 | } |
964 | |||
959 | public virtual void ScheduleTerseUpdate() | 965 | public virtual void ScheduleTerseUpdate() |
960 | { | 966 | { |
961 | base.RequestPhysicsterseUpdate(); | 967 | base.RequestPhysicsterseUpdate(); |
962 | } | 968 | } |
969 | |||
963 | #endregion | 970 | #endregion |
964 | } | 971 | } |
965 | 972 | ||
@@ -972,11 +979,13 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
972 | : this("", parent_scene, pos) | 979 | : this("", parent_scene, pos) |
973 | { | 980 | { |
974 | } | 981 | } |
982 | |||
975 | public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos) | 983 | public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos) |
976 | : this(avName, parent_scene, pos, new PhysicsVector(), new PhysicsVector(), new PhysicsVector(), | 984 | : this(avName, parent_scene, pos, new PhysicsVector(), new PhysicsVector(), new PhysicsVector(), |
977 | AxiomQuaternion.Identity) | 985 | AxiomQuaternion.Identity) |
978 | { | 986 | { |
979 | } | 987 | } |
988 | |||
980 | public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity, | 989 | public BulletXCharacter(String avName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity, |
981 | PhysicsVector size, PhysicsVector acceleration, AxiomQuaternion orientation) | 990 | PhysicsVector size, PhysicsVector acceleration, AxiomQuaternion orientation) |
982 | : base(avName) | 991 | : base(avName) |
@@ -1026,45 +1035,54 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1026 | parent_scene.ddWorld.AddRigidBody(rigidBody); | 1035 | parent_scene.ddWorld.AddRigidBody(rigidBody); |
1027 | } | 1036 | } |
1028 | } | 1037 | } |
1038 | |||
1029 | public override int PhysicsActorType | 1039 | public override int PhysicsActorType |
1030 | { | 1040 | { |
1031 | get { return (int)ActorTypes.Agent; } | 1041 | get { return (int) ActorTypes.Agent; } |
1032 | set { return; } | 1042 | set { return; } |
1033 | } | 1043 | } |
1044 | |||
1034 | public override PhysicsVector Position | 1045 | public override PhysicsVector Position |
1035 | { | 1046 | { |
1036 | get { return base.Position; } | 1047 | get { return base.Position; } |
1037 | set { base.Position = value; } | 1048 | set { base.Position = value; } |
1038 | } | 1049 | } |
1050 | |||
1039 | public override PhysicsVector Velocity | 1051 | public override PhysicsVector Velocity |
1040 | { | 1052 | { |
1041 | get { return base.Velocity; } | 1053 | get { return base.Velocity; } |
1042 | set { base.Velocity = value; } | 1054 | set { base.Velocity = value; } |
1043 | } | 1055 | } |
1056 | |||
1044 | public override PhysicsVector Size | 1057 | public override PhysicsVector Size |
1045 | { | 1058 | { |
1046 | get { return base.Size; } | 1059 | get { return base.Size; } |
1047 | set { base.Size = value; } | 1060 | set { base.Size = value; } |
1048 | } | 1061 | } |
1062 | |||
1049 | public override PhysicsVector Acceleration | 1063 | public override PhysicsVector Acceleration |
1050 | { | 1064 | { |
1051 | get { return base.Acceleration; } | 1065 | get { return base.Acceleration; } |
1052 | } | 1066 | } |
1067 | |||
1053 | public override AxiomQuaternion Orientation | 1068 | public override AxiomQuaternion Orientation |
1054 | { | 1069 | { |
1055 | get { return base.Orientation; } | 1070 | get { return base.Orientation; } |
1056 | set { base.Orientation = value; } | 1071 | set { base.Orientation = value; } |
1057 | } | 1072 | } |
1073 | |||
1058 | public override bool Flying | 1074 | public override bool Flying |
1059 | { | 1075 | { |
1060 | get { return base.Flying; } | 1076 | get { return base.Flying; } |
1061 | set { base.Flying = value; } | 1077 | set { base.Flying = value; } |
1062 | } | 1078 | } |
1079 | |||
1063 | public override bool IsColliding | 1080 | public override bool IsColliding |
1064 | { | 1081 | { |
1065 | get { return base.IsColliding; } | 1082 | get { return base.IsColliding; } |
1066 | set { base.IsColliding = value; } | 1083 | set { base.IsColliding = value; } |
1067 | } | 1084 | } |
1085 | |||
1068 | public override bool Kinematic | 1086 | public override bool Kinematic |
1069 | { | 1087 | { |
1070 | get { return base.Kinematic; } | 1088 | get { return base.Kinematic; } |
@@ -1075,10 +1093,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1075 | { | 1093 | { |
1076 | base.SetAcceleration(accel); | 1094 | base.SetAcceleration(accel); |
1077 | } | 1095 | } |
1096 | |||
1078 | public override void AddForce(PhysicsVector force) | 1097 | public override void AddForce(PhysicsVector force) |
1079 | { | 1098 | { |
1080 | base.AddForce(force); | 1099 | base.AddForce(force); |
1081 | } | 1100 | } |
1101 | |||
1082 | public override void SetMomentum(PhysicsVector momentum) | 1102 | public override void SetMomentum(PhysicsVector momentum) |
1083 | { | 1103 | { |
1084 | base.SetMomentum(momentum); | 1104 | base.SetMomentum(momentum); |
@@ -1117,6 +1137,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1117 | } | 1137 | } |
1118 | rigidBody.LinearVelocity = vec; | 1138 | rigidBody.LinearVelocity = vec; |
1119 | } | 1139 | } |
1140 | |||
1120 | //This validation is very basic | 1141 | //This validation is very basic |
1121 | internal override void ValidateHeight(float heighmapPositionValue) | 1142 | internal override void ValidateHeight(float heighmapPositionValue) |
1122 | { | 1143 | { |
@@ -1131,6 +1152,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1131 | Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f)); | 1152 | Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f)); |
1132 | } | 1153 | } |
1133 | } | 1154 | } |
1155 | |||
1134 | internal override void UpdateKinetics() | 1156 | internal override void UpdateKinetics() |
1135 | { | 1157 | { |
1136 | _position = BulletXMaths.XnaVector3ToPhysicsVector(rigidBody.CenterOfMassPosition); | 1158 | _position = BulletXMaths.XnaVector3ToPhysicsVector(rigidBody.CenterOfMassPosition); |
@@ -1154,12 +1176,15 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1154 | 1176 | ||
1155 | public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector size, | 1177 | public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector size, |
1156 | AxiomQuaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool isPhysical) | 1178 | AxiomQuaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, bool isPhysical) |
1157 | : this(primName, parent_scene, pos, new PhysicsVector(), size, new PhysicsVector(), rotation, mesh, pbs, isPhysical) | 1179 | : this( |
1180 | primName, parent_scene, pos, new PhysicsVector(), size, new PhysicsVector(), rotation, mesh, pbs, | ||
1181 | isPhysical) | ||
1158 | { | 1182 | { |
1159 | } | 1183 | } |
1184 | |||
1160 | public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity, | 1185 | public BulletXPrim(String primName, BulletXScene parent_scene, PhysicsVector pos, PhysicsVector velocity, |
1161 | PhysicsVector size, | 1186 | PhysicsVector size, |
1162 | PhysicsVector acceleration, AxiomQuaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, | 1187 | PhysicsVector acceleration, AxiomQuaternion rotation, IMesh mesh, PrimitiveBaseShape pbs, |
1163 | bool isPhysical) | 1188 | bool isPhysical) |
1164 | : base(primName) | 1189 | : base(primName) |
1165 | { | 1190 | { |
@@ -1177,27 +1202,28 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1177 | 1202 | ||
1178 | CreateRigidBody(parent_scene, mesh, pos, size); | 1203 | CreateRigidBody(parent_scene, mesh, pos, size); |
1179 | } | 1204 | } |
1205 | |||
1180 | public override int PhysicsActorType | 1206 | public override int PhysicsActorType |
1181 | { | 1207 | { |
1182 | get { return (int)ActorTypes.Prim; } | 1208 | get { return (int) ActorTypes.Prim; } |
1183 | set { return; } | 1209 | set { return; } |
1184 | } | 1210 | } |
1211 | |||
1185 | public override PhysicsVector Position | 1212 | public override PhysicsVector Position |
1186 | { | 1213 | { |
1187 | get { return base.Position; } | 1214 | get { return base.Position; } |
1188 | set { base.Position = value; } | 1215 | set { base.Position = value; } |
1189 | } | 1216 | } |
1217 | |||
1190 | public override PhysicsVector Velocity | 1218 | public override PhysicsVector Velocity |
1191 | { | 1219 | { |
1192 | get { return base.Velocity; } | 1220 | get { return base.Velocity; } |
1193 | set { base.Velocity = value; } | 1221 | set { base.Velocity = value; } |
1194 | } | 1222 | } |
1223 | |||
1195 | public override PhysicsVector Size | 1224 | public override PhysicsVector Size |
1196 | { | 1225 | { |
1197 | get | 1226 | get { return _size; } |
1198 | { | ||
1199 | return _size; | ||
1200 | } | ||
1201 | set | 1227 | set |
1202 | { | 1228 | { |
1203 | lock (BulletXScene.BulletXLock) | 1229 | lock (BulletXScene.BulletXLock) |
@@ -1207,29 +1233,30 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1207 | } | 1233 | } |
1208 | } | 1234 | } |
1209 | } | 1235 | } |
1236 | |||
1210 | public override PhysicsVector Acceleration | 1237 | public override PhysicsVector Acceleration |
1211 | { | 1238 | { |
1212 | get { return base.Acceleration; } | 1239 | get { return base.Acceleration; } |
1213 | } | 1240 | } |
1241 | |||
1214 | public override AxiomQuaternion Orientation | 1242 | public override AxiomQuaternion Orientation |
1215 | { | 1243 | { |
1216 | get { return base.Orientation; } | 1244 | get { return base.Orientation; } |
1217 | set { base.Orientation = value; } | 1245 | set { base.Orientation = value; } |
1218 | } | 1246 | } |
1247 | |||
1219 | public override float ActorMass | 1248 | public override float ActorMass |
1220 | { | 1249 | { |
1221 | get | 1250 | get |
1222 | { | 1251 | { |
1223 | //For now all prims are boxes | 1252 | //For now all prims are boxes |
1224 | return (_physical ? 1 : 0) * _density * _size.X * _size.Y * _size.Z; | 1253 | return (_physical ? 1 : 0)*_density*_size.X*_size.Y*_size.Z; |
1225 | } | 1254 | } |
1226 | } | 1255 | } |
1256 | |||
1227 | public override bool IsPhysical | 1257 | public override bool IsPhysical |
1228 | { | 1258 | { |
1229 | get | 1259 | get { return base.IsPhysical; } |
1230 | { | ||
1231 | return base.IsPhysical; | ||
1232 | } | ||
1233 | set | 1260 | set |
1234 | { | 1261 | { |
1235 | base.IsPhysical = value; | 1262 | base.IsPhysical = value; |
@@ -1238,27 +1265,30 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1238 | //--- | 1265 | //--- |
1239 | PhysicsPluginManager.PhysicsPluginMessage("Physical - Recreate", true); | 1266 | PhysicsPluginManager.PhysicsPluginMessage("Physical - Recreate", true); |
1240 | //--- | 1267 | //--- |
1241 | ReCreateRigidBody(this._size); | 1268 | ReCreateRigidBody(_size); |
1242 | } | 1269 | } |
1243 | else | 1270 | else |
1244 | { | 1271 | { |
1245 | //--- | 1272 | //--- |
1246 | PhysicsPluginManager.PhysicsPluginMessage("Physical - SetMassProps", true); | 1273 | PhysicsPluginManager.PhysicsPluginMessage("Physical - SetMassProps", true); |
1247 | //--- | 1274 | //--- |
1248 | this.rigidBody.SetMassProps(Mass, new Vector3()); | 1275 | rigidBody.SetMassProps(Mass, new Vector3()); |
1249 | } | 1276 | } |
1250 | } | 1277 | } |
1251 | } | 1278 | } |
1279 | |||
1252 | public override bool Flying | 1280 | public override bool Flying |
1253 | { | 1281 | { |
1254 | get { return base.Flying; } | 1282 | get { return base.Flying; } |
1255 | set { base.Flying = value; } | 1283 | set { base.Flying = value; } |
1256 | } | 1284 | } |
1285 | |||
1257 | public override bool IsColliding | 1286 | public override bool IsColliding |
1258 | { | 1287 | { |
1259 | get { return base.IsColliding; } | 1288 | get { return base.IsColliding; } |
1260 | set { base.IsColliding = value; } | 1289 | set { base.IsColliding = value; } |
1261 | } | 1290 | } |
1291 | |||
1262 | public override bool Kinematic | 1292 | public override bool Kinematic |
1263 | { | 1293 | { |
1264 | get { return base.Kinematic; } | 1294 | get { return base.Kinematic; } |
@@ -1272,10 +1302,12 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1272 | _acceleration = accel; | 1302 | _acceleration = accel; |
1273 | } | 1303 | } |
1274 | } | 1304 | } |
1305 | |||
1275 | public override void AddForce(PhysicsVector force) | 1306 | public override void AddForce(PhysicsVector force) |
1276 | { | 1307 | { |
1277 | base.AddForce(force); | 1308 | base.AddForce(force); |
1278 | } | 1309 | } |
1310 | |||
1279 | public override void SetMomentum(PhysicsVector momentum) | 1311 | public override void SetMomentum(PhysicsVector momentum) |
1280 | { | 1312 | { |
1281 | base.SetMomentum(momentum); | 1313 | base.SetMomentum(momentum); |
@@ -1296,6 +1328,7 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1296 | Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f)); | 1328 | Speed(new PhysicsVector(rigidBody.LinearVelocity.X, rigidBody.LinearVelocity.Y, 0.0f)); |
1297 | } | 1329 | } |
1298 | } | 1330 | } |
1331 | |||
1299 | internal override void UpdateKinetics() | 1332 | internal override void UpdateKinetics() |
1300 | { | 1333 | { |
1301 | if (_physical) //Updates properties. Prim updates its properties physically | 1334 | if (_physical) //Updates properties. Prim updates its properties physically |
@@ -1320,7 +1353,6 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1320 | { | 1353 | { |
1321 | m_lastUpdateSent = false; | 1354 | m_lastUpdateSent = false; |
1322 | base.ScheduleTerseUpdate(); | 1355 | base.ScheduleTerseUpdate(); |
1323 | |||
1324 | } | 1356 | } |
1325 | m_prev_position = _position; | 1357 | m_prev_position = _position; |
1326 | } | 1358 | } |
@@ -1333,7 +1365,9 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1333 | } | 1365 | } |
1334 | 1366 | ||
1335 | #region Methods for updating values of RigidBody | 1367 | #region Methods for updating values of RigidBody |
1336 | internal protected void CreateRigidBody(BulletXScene parent_scene, IMesh mesh, PhysicsVector pos, PhysicsVector size) | 1368 | |
1369 | protected internal void CreateRigidBody(BulletXScene parent_scene, IMesh mesh, PhysicsVector pos, | ||
1370 | PhysicsVector size) | ||
1337 | { | 1371 | { |
1338 | //For RigidBody Constructor. The next values might change | 1372 | //For RigidBody Constructor. The next values might change |
1339 | float _linearDamping = 0.0f; | 1373 | float _linearDamping = 0.0f; |
@@ -1349,27 +1383,31 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1349 | CollisionShape _collisionShape; | 1383 | CollisionShape _collisionShape; |
1350 | if (mesh == null) | 1384 | if (mesh == null) |
1351 | { | 1385 | { |
1352 | _collisionShape = new XnaDevRu.BulletX.BoxShape(BulletXMaths.PhysicsVectorToXnaVector3(size) / 2.0f); | 1386 | _collisionShape = new BoxShape(BulletXMaths.PhysicsVectorToXnaVector3(size)/2.0f); |
1353 | } else { | 1387 | } |
1388 | else | ||
1389 | { | ||
1354 | int iVertexCount = mesh.getVertexList().Count; | 1390 | int iVertexCount = mesh.getVertexList().Count; |
1355 | int[] indices = mesh.getIndexListAsInt(); | 1391 | int[] indices = mesh.getIndexListAsInt(); |
1356 | Vector3[] v3Vertices = new Vector3[iVertexCount]; | 1392 | Vector3[] v3Vertices = new Vector3[iVertexCount]; |
1357 | for (int i = 0; i < iVertexCount; i++) | 1393 | for (int i = 0; i < iVertexCount; i++) |
1358 | { | 1394 | { |
1359 | PhysicsVector v=mesh.getVertexList()[i]; | 1395 | PhysicsVector v = mesh.getVertexList()[i]; |
1360 | if (v != null) // Note, null has special meaning. See meshing code for details | 1396 | if (v != null) // Note, null has special meaning. See meshing code for details |
1361 | v3Vertices[i] = BulletXMaths.PhysicsVectorToXnaVector3(v); | 1397 | v3Vertices[i] = BulletXMaths.PhysicsVectorToXnaVector3(v); |
1362 | else | 1398 | else |
1363 | v3Vertices[i] = MonoXnaCompactMaths.Vector3.Zero; | 1399 | v3Vertices[i] = Vector3.Zero; |
1364 | } | 1400 | } |
1365 | TriangleIndexVertexArray triMesh = new TriangleIndexVertexArray(indices, v3Vertices); | 1401 | TriangleIndexVertexArray triMesh = new TriangleIndexVertexArray(indices, v3Vertices); |
1366 | 1402 | ||
1367 | _collisionShape = new XnaDevRu.BulletX.TriangleMeshShape(triMesh); | 1403 | _collisionShape = new TriangleMeshShape(triMesh); |
1368 | } | 1404 | } |
1369 | DefaultMotionState _motionState = new DefaultMotionState(_startTransform, _centerOfMassOffset); | 1405 | DefaultMotionState _motionState = new DefaultMotionState(_startTransform, _centerOfMassOffset); |
1370 | Vector3 _localInertia = new Vector3(); | 1406 | Vector3 _localInertia = new Vector3(); |
1371 | if (_physical) _collisionShape.CalculateLocalInertia(Mass, out _localInertia); //Always when mass > 0 | 1407 | if (_physical) _collisionShape.CalculateLocalInertia(Mass, out _localInertia); //Always when mass > 0 |
1372 | rigidBody = new RigidBody(Mass, _motionState, _collisionShape, _localInertia, _linearDamping, _angularDamping, _friction, _restitution); | 1408 | rigidBody = |
1409 | new RigidBody(Mass, _motionState, _collisionShape, _localInertia, _linearDamping, _angularDamping, | ||
1410 | _friction, _restitution); | ||
1373 | //rigidBody.ActivationState = ActivationState.DisableDeactivation; | 1411 | //rigidBody.ActivationState = ActivationState.DisableDeactivation; |
1374 | //It's seems that there are a bug with rigidBody constructor and its CenterOfMassPosition | 1412 | //It's seems that there are a bug with rigidBody constructor and its CenterOfMassPosition |
1375 | Vector3 _vDebugTranslation; | 1413 | Vector3 _vDebugTranslation; |
@@ -1379,30 +1417,34 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1379 | parent_scene.ddWorld.AddRigidBody(rigidBody); | 1417 | parent_scene.ddWorld.AddRigidBody(rigidBody); |
1380 | } | 1418 | } |
1381 | } | 1419 | } |
1382 | internal protected void ReCreateRigidBody(PhysicsVector size) | 1420 | |
1421 | protected internal void ReCreateRigidBody(PhysicsVector size) | ||
1383 | { | 1422 | { |
1384 | //There is a bug when trying to remove a rigidBody that is colliding with something.. | 1423 | //There is a bug when trying to remove a rigidBody that is colliding with something.. |
1385 | try | 1424 | try |
1386 | { | 1425 | { |
1387 | this._parent_scene.ddWorld.RemoveRigidBody(rigidBody); | 1426 | _parent_scene.ddWorld.RemoveRigidBody(rigidBody); |
1388 | } | 1427 | } |
1389 | catch (Exception ex) | 1428 | catch (Exception ex) |
1390 | { | 1429 | { |
1391 | this._parent_scene.BulletXMessage(this._parent_scene.is_ex_message + ex.Message, true); | 1430 | _parent_scene.BulletXMessage(_parent_scene.is_ex_message + ex.Message, true); |
1392 | rigidBody.ActivationState = ActivationState.DisableSimulation; | 1431 | rigidBody.ActivationState = ActivationState.DisableSimulation; |
1393 | this._parent_scene.AddForgottenRigidBody(rigidBody); | 1432 | _parent_scene.AddForgottenRigidBody(rigidBody); |
1394 | } | 1433 | } |
1395 | CreateRigidBody(this._parent_scene, null, this._position, size); // Note, null for the meshing definitely is wrong. It's here for the moment to apease the compiler | 1434 | CreateRigidBody(_parent_scene, null, _position, size); |
1396 | if (_physical) Speed();//Static objects don't have linear velocity | 1435 | // Note, null for the meshing definitely is wrong. It's here for the moment to apease the compiler |
1436 | if (_physical) Speed(); //Static objects don't have linear velocity | ||
1397 | ReOrient(); | 1437 | ReOrient(); |
1398 | GC.Collect(); | 1438 | GC.Collect(); |
1399 | } | 1439 | } |
1400 | internal protected override void ReSize(PhysicsVector _newSize) | 1440 | |
1441 | protected internal override void ReSize(PhysicsVector _newSize) | ||
1401 | { | 1442 | { |
1402 | //I wonder to know how to resize with a simple instruction in BulletX. It seems that for now there isn't | 1443 | //I wonder to know how to resize with a simple instruction in BulletX. It seems that for now there isn't |
1403 | //so i have to do it manually. That's recreating rigidbody | 1444 | //so i have to do it manually. That's recreating rigidbody |
1404 | ReCreateRigidBody(_newSize); | 1445 | ReCreateRigidBody(_newSize); |
1405 | } | 1446 | } |
1447 | |||
1406 | #endregion | 1448 | #endregion |
1407 | } | 1449 | } |
1408 | 1450 | ||
@@ -1486,4 +1528,4 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
1486 | return height; | 1528 | return height; |
1487 | } | 1529 | } |
1488 | } | 1530 | } |
1489 | } | 1531 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/TriangleIndexVertexArray.cs b/OpenSim/Region/Physics/BulletXPlugin/TriangleIndexVertexArray.cs index 4f63687..e73c953 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/TriangleIndexVertexArray.cs +++ b/OpenSim/Region/Physics/BulletXPlugin/TriangleIndexVertexArray.cs | |||
@@ -34,8 +34,8 @@ | |||
34 | */ | 34 | */ |
35 | using System; | 35 | using System; |
36 | using System.Collections.Generic; | 36 | using System.Collections.Generic; |
37 | using System.Text; | ||
38 | using MonoXnaCompactMaths; | 37 | using MonoXnaCompactMaths; |
38 | using XnaDevRu.BulletX; | ||
39 | 39 | ||
40 | namespace OpenSim.Region.Physics.BulletXPlugin | 40 | namespace OpenSim.Region.Physics.BulletXPlugin |
41 | { | 41 | { |
@@ -52,7 +52,8 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
52 | private Vector3[] _vertexBase; | 52 | private Vector3[] _vertexBase; |
53 | private int _vertexStride; | 53 | private int _vertexStride; |
54 | 54 | ||
55 | public IndexedMesh(int numTriangleIndices, int[] triangleIndexBase, int triangleIndexStride, int numVertices, Vector3[] vertexBase, int vertexStride) | 55 | public IndexedMesh(int numTriangleIndices, int[] triangleIndexBase, int triangleIndexStride, int numVertices, |
56 | Vector3[] vertexBase, int vertexStride) | ||
56 | { | 57 | { |
57 | _numTriangles = numTriangleIndices; | 58 | _numTriangles = numTriangleIndices; |
58 | _triangleIndexBase = triangleIndexBase; | 59 | _triangleIndexBase = triangleIndexBase; |
@@ -72,25 +73,57 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
72 | _vertexStride = 24; | 73 | _vertexStride = 24; |
73 | } | 74 | } |
74 | 75 | ||
75 | public int TriangleCount { get { return _numTriangles; } set { _numTriangles = value; } } | 76 | public int TriangleCount |
76 | public int[] TriangleIndexBase { get { return _triangleIndexBase; } set { _triangleIndexBase = value; } } | 77 | { |
77 | public int TriangleIndexStride { get { return _triangleIndexStride; } set { _triangleIndexStride = value; } } | 78 | get { return _numTriangles; } |
78 | public int VertexCount { get { return _numVertices; } set { _numVertices = value; } } | 79 | set { _numTriangles = value; } |
79 | public Vector3[] VertexBase { get { return _vertexBase; } set { _vertexBase = value; } } | 80 | } |
80 | public int VertexStride { get { return _vertexStride; } set { _vertexStride = value; } } | 81 | |
82 | public int[] TriangleIndexBase | ||
83 | { | ||
84 | get { return _triangleIndexBase; } | ||
85 | set { _triangleIndexBase = value; } | ||
86 | } | ||
87 | |||
88 | public int TriangleIndexStride | ||
89 | { | ||
90 | get { return _triangleIndexStride; } | ||
91 | set { _triangleIndexStride = value; } | ||
92 | } | ||
93 | |||
94 | public int VertexCount | ||
95 | { | ||
96 | get { return _numVertices; } | ||
97 | set { _numVertices = value; } | ||
98 | } | ||
99 | |||
100 | public Vector3[] VertexBase | ||
101 | { | ||
102 | get { return _vertexBase; } | ||
103 | set { _vertexBase = value; } | ||
104 | } | ||
105 | |||
106 | public int VertexStride | ||
107 | { | ||
108 | get { return _vertexStride; } | ||
109 | set { _vertexStride = value; } | ||
110 | } | ||
81 | } | 111 | } |
82 | 112 | ||
83 | /// <summary> | 113 | /// <summary> |
84 | /// TriangleIndexVertexArray allows to use multiple meshes, by indexing into existing triangle/index arrays. | 114 | /// TriangleIndexVertexArray allows to use multiple meshes, by indexing into existing triangle/index arrays. |
85 | /// Additional meshes can be added using addIndexedMesh | 115 | /// Additional meshes can be added using addIndexedMesh |
86 | /// </summary> | 116 | /// </summary> |
87 | public class TriangleIndexVertexArray : XnaDevRu.BulletX.StridingMeshInterface | 117 | public class TriangleIndexVertexArray : StridingMeshInterface |
88 | { | 118 | { |
89 | List<IndexedMesh> _indexedMeshes = new List<IndexedMesh>(); | 119 | private List<IndexedMesh> _indexedMeshes = new List<IndexedMesh>(); |
90 | 120 | ||
91 | public TriangleIndexVertexArray() { } | 121 | public TriangleIndexVertexArray() |
122 | { | ||
123 | } | ||
92 | 124 | ||
93 | public TriangleIndexVertexArray(int numTriangleIndices, int[] triangleIndexBase, int triangleIndexStride, int numVertices, Vector3[] vertexBase, int vertexStride) | 125 | public TriangleIndexVertexArray(int numTriangleIndices, int[] triangleIndexBase, int triangleIndexStride, |
126 | int numVertices, Vector3[] vertexBase, int vertexStride) | ||
94 | { | 127 | { |
95 | IndexedMesh mesh = new IndexedMesh(); | 128 | IndexedMesh mesh = new IndexedMesh(); |
96 | mesh.TriangleCount = numTriangleIndices; | 129 | mesh.TriangleCount = numTriangleIndices; |
@@ -104,19 +137,23 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
104 | } | 137 | } |
105 | 138 | ||
106 | public TriangleIndexVertexArray(int[] triangleIndexBase, Vector3[] vertexBase) | 139 | public TriangleIndexVertexArray(int[] triangleIndexBase, Vector3[] vertexBase) |
107 | : this(triangleIndexBase.Length, triangleIndexBase, 32, vertexBase.Length, vertexBase, 24) { } | 140 | : this(triangleIndexBase.Length, triangleIndexBase, 32, vertexBase.Length, vertexBase, 24) |
141 | { | ||
142 | } | ||
108 | 143 | ||
109 | public void AddIndexedMesh(IndexedMesh indexedMesh) | 144 | public void AddIndexedMesh(IndexedMesh indexedMesh) |
110 | { | 145 | { |
111 | _indexedMeshes.Add(indexedMesh); | 146 | _indexedMeshes.Add(indexedMesh); |
112 | } | 147 | } |
113 | 148 | ||
114 | public override void GetLockedVertexIndexBase(out List<Vector3> verts, out List<int> indicies, out int numfaces, int subpart) | 149 | public override void GetLockedVertexIndexBase(out List<Vector3> verts, out List<int> indicies, out int numfaces, |
150 | int subpart) | ||
115 | { | 151 | { |
116 | throw new Exception("The method or operation is not implemented."); | 152 | throw new Exception("The method or operation is not implemented."); |
117 | } | 153 | } |
118 | 154 | ||
119 | public override void GetLockedReadOnlyVertexIndexBase(out List<Vector3> verts, out List<int> indicies, out int numfaces, int subpart) | 155 | public override void GetLockedReadOnlyVertexIndexBase(out List<Vector3> verts, out List<int> indicies, |
156 | out int numfaces, int subpart) | ||
120 | { | 157 | { |
121 | IndexedMesh m = _indexedMeshes[0]; | 158 | IndexedMesh m = _indexedMeshes[0]; |
122 | Vector3[] vertexBase = m.VertexBase; | 159 | Vector3[] vertexBase = m.VertexBase; |
@@ -158,4 +195,4 @@ namespace OpenSim.Region.Physics.BulletXPlugin | |||
158 | throw new Exception("The method or operation is not implemented."); | 195 | throw new Exception("The method or operation is not implemented."); |
159 | } | 196 | } |
160 | } | 197 | } |
161 | } | 198 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/AssemblyInfo.cs b/OpenSim/Region/Physics/Manager/AssemblyInfo.cs index 3d95d6d..983a2b9 100644 --- a/OpenSim/Region/Physics/Manager/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/Manager/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/IMesher.cs b/OpenSim/Region/Physics/Manager/IMesher.cs index 1648a98..80b3320 100644 --- a/OpenSim/Region/Physics/Manager/IMesher.cs +++ b/OpenSim/Region/Physics/Manager/IMesher.cs | |||
@@ -28,8 +28,6 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | |||
33 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
34 | 32 | ||
35 | namespace OpenSim.Region.Physics.Manager | 33 | namespace OpenSim.Region.Physics.Manager |
@@ -39,7 +37,8 @@ namespace OpenSim.Region.Physics.Manager | |||
39 | IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size); | 37 | IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size); |
40 | } | 38 | } |
41 | 39 | ||
42 | public interface IVertex { | 40 | public interface IVertex |
41 | { | ||
43 | } | 42 | } |
44 | 43 | ||
45 | public interface IMesh | 44 | public interface IMesh |
@@ -48,7 +47,5 @@ namespace OpenSim.Region.Physics.Manager | |||
48 | int[] getIndexListAsInt(); | 47 | int[] getIndexListAsInt(); |
49 | int[] getIndexListAsIntLocked(); | 48 | int[] getIndexListAsIntLocked(); |
50 | float[] getVertexListAsFloatLocked(); | 49 | float[] getVertexListAsFloatLocked(); |
51 | |||
52 | |||
53 | } | 50 | } |
54 | } | 51 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsActor.cs b/OpenSim/Region/Physics/Manager/PhysicsActor.cs index 5894ab0..d393b62 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsActor.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsActor.cs | |||
@@ -25,10 +25,10 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using Axiom.Math; | ||
29 | using OpenSim.Framework; | ||
30 | using System; | 28 | using System; |
31 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using Axiom.Math; | ||
31 | using OpenSim.Framework; | ||
32 | 32 | ||
33 | namespace OpenSim.Region.Physics.Manager | 33 | namespace OpenSim.Region.Physics.Manager |
34 | { | 34 | { |
@@ -37,14 +37,16 @@ namespace OpenSim.Region.Physics.Manager | |||
37 | public delegate void VelocityUpdate(PhysicsVector velocity); | 37 | public delegate void VelocityUpdate(PhysicsVector velocity); |
38 | 38 | ||
39 | public delegate void OrientationUpdate(Quaternion orientation); | 39 | public delegate void OrientationUpdate(Quaternion orientation); |
40 | |||
40 | public enum ActorTypes : int | 41 | public enum ActorTypes : int |
41 | { | 42 | { |
42 | Unknown = 0, | 43 | Unknown = 0, |
43 | Agent = 1, | 44 | Agent = 1, |
44 | Prim = 2, | 45 | Prim = 2, |
45 | Ground = 3 | 46 | Ground = 3 |
46 | } | 47 | } |
47 | public class CollisionEventUpdate : EventArgs | 48 | |
49 | public class CollisionEventUpdate : EventArgs | ||
48 | { | 50 | { |
49 | // Raising the event on the object, so don't need to provide location.. further up the tree knows that info. | 51 | // Raising the event on the object, so don't need to provide location.. further up the tree knows that info. |
50 | 52 | ||
@@ -53,52 +55,53 @@ namespace OpenSim.Region.Physics.Manager | |||
53 | public bool m_startOrEnd; | 55 | public bool m_startOrEnd; |
54 | //public uint m_LocalID; | 56 | //public uint m_LocalID; |
55 | public List<uint> m_objCollisionList; | 57 | public List<uint> m_objCollisionList; |
58 | |||
56 | public CollisionEventUpdate(uint localID, int colliderType, bool startOrEnd, List<uint> objCollisionList) | 59 | public CollisionEventUpdate(uint localID, int colliderType, bool startOrEnd, List<uint> objCollisionList) |
57 | { | 60 | { |
58 | m_colliderType = colliderType; | 61 | m_colliderType = colliderType; |
59 | m_startOrEnd = startOrEnd; | 62 | m_startOrEnd = startOrEnd; |
60 | m_objCollisionList = objCollisionList; | 63 | m_objCollisionList = objCollisionList; |
61 | |||
62 | } | 64 | } |
63 | public CollisionEventUpdate(bool startOrEnd){ | 65 | |
64 | m_colliderType = (int)ActorTypes.Unknown; | 66 | public CollisionEventUpdate(bool startOrEnd) |
67 | { | ||
68 | m_colliderType = (int) ActorTypes.Unknown; | ||
65 | m_startOrEnd = startOrEnd; | 69 | m_startOrEnd = startOrEnd; |
66 | m_objCollisionList = null; | 70 | m_objCollisionList = null; |
67 | } | 71 | } |
68 | public CollisionEventUpdate() { | 72 | |
69 | m_colliderType = (int)ActorTypes.Unknown; | 73 | public CollisionEventUpdate() |
74 | { | ||
75 | m_colliderType = (int) ActorTypes.Unknown; | ||
70 | m_startOrEnd = false; | 76 | m_startOrEnd = false; |
71 | m_objCollisionList = null; | 77 | m_objCollisionList = null; |
72 | } | 78 | } |
73 | public int collidertype{ | 79 | |
74 | get { | 80 | public int collidertype |
75 | return m_colliderType; | 81 | { |
76 | } | 82 | get { return m_colliderType; } |
77 | set { | 83 | set { m_colliderType = value; } |
78 | m_colliderType = value; | ||
79 | } | ||
80 | } | 84 | } |
81 | public bool startOrEnd { | 85 | |
82 | get { | 86 | public bool startOrEnd |
83 | return m_startOrEnd; | 87 | { |
84 | } | 88 | get { return m_startOrEnd; } |
85 | set { | 89 | set { m_startOrEnd = value; } |
86 | m_startOrEnd = value; | ||
87 | } | ||
88 | } | 90 | } |
89 | public void addCollider(uint localID) { | 91 | |
92 | public void addCollider(uint localID) | ||
93 | { | ||
90 | m_objCollisionList.Add(localID); | 94 | m_objCollisionList.Add(localID); |
91 | } | 95 | } |
92 | } | 96 | } |
93 | |||
94 | |||
95 | 97 | ||
96 | |||
97 | 98 | ||
98 | public abstract class PhysicsActor | 99 | public abstract class PhysicsActor |
99 | { | 100 | { |
100 | public delegate void RequestTerseUpdate(); | 101 | public delegate void RequestTerseUpdate(); |
102 | |||
101 | public delegate void CollisionUpdate(EventArgs e); | 103 | public delegate void CollisionUpdate(EventArgs e); |
104 | |||
102 | public delegate void OutOfBounds(PhysicsVector pos); | 105 | public delegate void OutOfBounds(PhysicsVector pos); |
103 | 106 | ||
104 | #pragma warning disable 67 | 107 | #pragma warning disable 67 |
@@ -117,10 +120,8 @@ namespace OpenSim.Region.Physics.Manager | |||
117 | 120 | ||
118 | public abstract PhysicsVector Size { get; set; } | 121 | public abstract PhysicsVector Size { get; set; } |
119 | 122 | ||
120 | public abstract PrimitiveBaseShape Shape | 123 | public abstract PrimitiveBaseShape Shape { set; } |
121 | { | 124 | |
122 | set; | ||
123 | } | ||
124 | public virtual void RequestPhysicsterseUpdate() | 125 | public virtual void RequestPhysicsterseUpdate() |
125 | { | 126 | { |
126 | // Make a temporary copy of the event to avoid possibility of | 127 | // Make a temporary copy of the event to avoid possibility of |
@@ -131,8 +132,8 @@ namespace OpenSim.Region.Physics.Manager | |||
131 | { | 132 | { |
132 | OnRequestTerseUpdate(); | 133 | OnRequestTerseUpdate(); |
133 | } | 134 | } |
134 | |||
135 | } | 135 | } |
136 | |||
136 | public virtual void RaiseOutOfBounds(PhysicsVector pos) | 137 | public virtual void RaiseOutOfBounds(PhysicsVector pos) |
137 | { | 138 | { |
138 | // Make a temporary copy of the event to avoid possibility of | 139 | // Make a temporary copy of the event to avoid possibility of |
@@ -143,8 +144,8 @@ namespace OpenSim.Region.Physics.Manager | |||
143 | { | 144 | { |
144 | OnOutOfBounds(pos); | 145 | OnOutOfBounds(pos); |
145 | } | 146 | } |
146 | |||
147 | } | 147 | } |
148 | |||
148 | public virtual void SendCollisionUpdate(EventArgs e) | 149 | public virtual void SendCollisionUpdate(EventArgs e) |
149 | { | 150 | { |
150 | CollisionUpdate handler = OnCollisionUpdate; | 151 | CollisionUpdate handler = OnCollisionUpdate; |
@@ -159,7 +160,7 @@ namespace OpenSim.Region.Physics.Manager | |||
159 | 160 | ||
160 | public abstract float Mass { get; } | 161 | public abstract float Mass { get; } |
161 | 162 | ||
162 | public abstract PhysicsVector Force { get;} | 163 | public abstract PhysicsVector Force { get; } |
163 | 164 | ||
164 | public abstract PhysicsVector GeometricCenter { get; } | 165 | public abstract PhysicsVector GeometricCenter { get; } |
165 | 166 | ||
@@ -172,7 +173,7 @@ namespace OpenSim.Region.Physics.Manager | |||
172 | public abstract Quaternion Orientation { get; set; } | 173 | public abstract Quaternion Orientation { get; set; } |
173 | public abstract int PhysicsActorType { get; set; } | 174 | public abstract int PhysicsActorType { get; set; } |
174 | 175 | ||
175 | public abstract bool IsPhysical {get; set;} | 176 | public abstract bool IsPhysical { get; set; } |
176 | 177 | ||
177 | public abstract bool Flying { get; set; } | 178 | public abstract bool Flying { get; set; } |
178 | public abstract bool SetAlwaysRun { get; set; } | 179 | public abstract bool SetAlwaysRun { get; set; } |
@@ -198,48 +199,54 @@ namespace OpenSim.Region.Physics.Manager | |||
198 | get { return PhysicsVector.Zero; } | 199 | get { return PhysicsVector.Zero; } |
199 | set { return; } | 200 | set { return; } |
200 | } | 201 | } |
202 | |||
201 | public override bool SetAlwaysRun | 203 | public override bool SetAlwaysRun |
202 | { | 204 | { |
203 | get { return false; } | 205 | get { return false; } |
204 | set { return; } | 206 | set { return; } |
205 | } | 207 | } |
208 | |||
206 | public override bool CollidingGround | 209 | public override bool CollidingGround |
207 | { | 210 | { |
208 | get {return false;} | 211 | get { return false; } |
209 | set {return;} | 212 | set { return; } |
210 | } | 213 | } |
211 | public override bool CollidingObj | 214 | |
215 | public override bool CollidingObj | ||
212 | { | 216 | { |
213 | get { return false; } | 217 | get { return false; } |
214 | set { return; } | 218 | set { return; } |
215 | } | 219 | } |
220 | |||
216 | public override PhysicsVector Size | 221 | public override PhysicsVector Size |
217 | { | 222 | { |
218 | get { return PhysicsVector.Zero; } | 223 | get { return PhysicsVector.Zero; } |
219 | set { return; } | 224 | set { return; } |
220 | } | 225 | } |
226 | |||
221 | public override float Mass | 227 | public override float Mass |
222 | { | 228 | { |
223 | get { return 0f; } | 229 | get { return 0f; } |
224 | } | 230 | } |
231 | |||
225 | public override PhysicsVector Force | 232 | public override PhysicsVector Force |
226 | { | 233 | { |
227 | get { return PhysicsVector.Zero; } | 234 | get { return PhysicsVector.Zero; } |
228 | } | 235 | } |
236 | |||
229 | public override PhysicsVector CenterOfMass | 237 | public override PhysicsVector CenterOfMass |
230 | { | 238 | { |
231 | get { return PhysicsVector.Zero; } | 239 | get { return PhysicsVector.Zero; } |
232 | } | 240 | } |
241 | |||
233 | public override PhysicsVector GeometricCenter | 242 | public override PhysicsVector GeometricCenter |
234 | { | 243 | { |
235 | get { return PhysicsVector.Zero; } | 244 | get { return PhysicsVector.Zero; } |
236 | } | 245 | } |
246 | |||
237 | public override PrimitiveBaseShape Shape | 247 | public override PrimitiveBaseShape Shape |
238 | { | 248 | { |
239 | set | 249 | set { return; } |
240 | { | ||
241 | return; | ||
242 | } | ||
243 | } | 250 | } |
244 | 251 | ||
245 | public override PhysicsVector Velocity | 252 | public override PhysicsVector Velocity |
@@ -270,6 +277,7 @@ namespace OpenSim.Region.Physics.Manager | |||
270 | get { return false; } | 277 | get { return false; } |
271 | set { return; } | 278 | set { return; } |
272 | } | 279 | } |
280 | |||
273 | public override bool ThrottleUpdates | 281 | public override bool ThrottleUpdates |
274 | { | 282 | { |
275 | get { return false; } | 283 | get { return false; } |
@@ -281,9 +289,10 @@ namespace OpenSim.Region.Physics.Manager | |||
281 | get { return false; } | 289 | get { return false; } |
282 | set { return; } | 290 | set { return; } |
283 | } | 291 | } |
292 | |||
284 | public override int PhysicsActorType | 293 | public override int PhysicsActorType |
285 | { | 294 | { |
286 | get { return (int)ActorTypes.Unknown; } | 295 | get { return (int) ActorTypes.Unknown; } |
287 | set { return; } | 296 | set { return; } |
288 | } | 297 | } |
289 | 298 | ||
@@ -297,14 +306,16 @@ namespace OpenSim.Region.Physics.Manager | |||
297 | { | 306 | { |
298 | return; | 307 | return; |
299 | } | 308 | } |
309 | |||
300 | public override PhysicsVector RotationalVelocity | 310 | public override PhysicsVector RotationalVelocity |
301 | { | 311 | { |
302 | get { return PhysicsVector.Zero; } | 312 | get { return PhysicsVector.Zero; } |
303 | set { return; } | 313 | set { return; } |
304 | } | 314 | } |
315 | |||
305 | public override void SetMomentum(PhysicsVector momentum) | 316 | public override void SetMomentum(PhysicsVector momentum) |
306 | { | 317 | { |
307 | return; | 318 | return; |
308 | } | 319 | } |
309 | } | 320 | } |
310 | } | 321 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs index badcc04..a4ac54f 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsPluginManager.cs | |||
@@ -30,7 +30,6 @@ using System.Collections.Generic; | |||
30 | using System.IO; | 30 | using System.IO; |
31 | using System.Reflection; | 31 | using System.Reflection; |
32 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
33 | using Nini.Config; | ||
34 | 33 | ||
35 | namespace OpenSim.Region.Physics.Manager | 34 | namespace OpenSim.Region.Physics.Manager |
36 | { | 35 | { |
@@ -91,7 +90,7 @@ namespace OpenSim.Region.Physics.Manager | |||
91 | plugHard = new ZeroMesherPlugin(); | 90 | plugHard = new ZeroMesherPlugin(); |
92 | _MeshPlugins.Add(plugHard.GetName(), plugHard); | 91 | _MeshPlugins.Add(plugHard.GetName(), plugHard); |
93 | MainLog.Instance.Verbose("PHYSICS", "Added meshing engine: " + plugHard.GetName()); | 92 | MainLog.Instance.Verbose("PHYSICS", "Added meshing engine: " + plugHard.GetName()); |
94 | 93 | ||
95 | // And now walk all assemblies (DLLs effectively) and see if they are home | 94 | // And now walk all assemblies (DLLs effectively) and see if they are home |
96 | // of a plugin that is of interest for us | 95 | // of a plugin that is of interest for us |
97 | string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Physics"); | 96 | string path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Physics"); |
@@ -129,7 +128,7 @@ namespace OpenSim.Region.Physics.Manager | |||
129 | if (meshTypeInterface != null) | 128 | if (meshTypeInterface != null) |
130 | { | 129 | { |
131 | IMeshingPlugin plug = | 130 | IMeshingPlugin plug = |
132 | (IMeshingPlugin)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 131 | (IMeshingPlugin) Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
133 | _MeshPlugins.Add(plug.GetName(), plug); | 132 | _MeshPlugins.Add(plug.GetName(), plug); |
134 | MainLog.Instance.Verbose("PHYSICS", "Added meshing engine: " + plug.GetName()); | 133 | MainLog.Instance.Verbose("PHYSICS", "Added meshing engine: " + plug.GetName()); |
135 | } | 134 | } |
@@ -155,6 +154,7 @@ namespace OpenSim.Region.Physics.Manager | |||
155 | MainLog.Instance.Verbose("PHYSICS", message); | 154 | MainLog.Instance.Verbose("PHYSICS", message); |
156 | } | 155 | } |
157 | } | 156 | } |
157 | |||
158 | //--- | 158 | //--- |
159 | } | 159 | } |
160 | 160 | ||
@@ -171,4 +171,4 @@ namespace OpenSim.Region.Physics.Manager | |||
171 | string GetName(); | 171 | string GetName(); |
172 | IMesher GetMesher(); | 172 | IMesher GetMesher(); |
173 | } | 173 | } |
174 | } | 174 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsScene.cs b/OpenSim/Region/Physics/Manager/PhysicsScene.cs index c63a66d..37481f1 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsScene.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsScene.cs | |||
@@ -28,7 +28,6 @@ | |||
28 | using Axiom.Math; | 28 | using Axiom.Math; |
29 | using OpenSim.Framework; | 29 | using OpenSim.Framework; |
30 | using OpenSim.Framework.Console; | 30 | using OpenSim.Framework.Console; |
31 | using OpenSim.Region.Physics.Manager; | ||
32 | 31 | ||
33 | namespace OpenSim.Region.Physics.Manager | 32 | namespace OpenSim.Region.Physics.Manager |
34 | { | 33 | { |
@@ -45,6 +44,7 @@ namespace OpenSim.Region.Physics.Manager | |||
45 | { | 44 | { |
46 | get { return new NullPhysicsScene(); } | 45 | get { return new NullPhysicsScene(); } |
47 | } | 46 | } |
47 | |||
48 | public virtual void TriggerPhysicsBasedRestart() | 48 | public virtual void TriggerPhysicsBasedRestart() |
49 | { | 49 | { |
50 | physicsCrash handler = OnPhysicsCrash; | 50 | physicsCrash handler = OnPhysicsCrash; |
@@ -52,9 +52,8 @@ namespace OpenSim.Region.Physics.Manager | |||
52 | { | 52 | { |
53 | OnPhysicsCrash(); | 53 | OnPhysicsCrash(); |
54 | } | 54 | } |
55 | |||
56 | } | 55 | } |
57 | 56 | ||
58 | 57 | ||
59 | public abstract void Initialise(IMesher meshmerizer); | 58 | public abstract void Initialise(IMesher meshmerizer); |
60 | 59 | ||
@@ -68,6 +67,7 @@ namespace OpenSim.Region.Physics.Manager | |||
68 | PhysicsVector size, Quaternion rotation); //To be removed | 67 | PhysicsVector size, Quaternion rotation); //To be removed |
69 | public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 68 | public abstract PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
70 | PhysicsVector size, Quaternion rotation, bool isPhysical); | 69 | PhysicsVector size, Quaternion rotation, bool isPhysical); |
70 | |||
71 | public abstract void AddPhysicsActorTaint(PhysicsActor prim); | 71 | public abstract void AddPhysicsActorTaint(PhysicsActor prim); |
72 | 72 | ||
73 | public abstract float Simulate(float timeStep); | 73 | public abstract float Simulate(float timeStep); |
@@ -111,21 +111,24 @@ namespace OpenSim.Region.Physics.Manager | |||
111 | return PhysicsActor.Null; | 111 | return PhysicsActor.Null; |
112 | } | 112 | } |
113 | */ | 113 | */ |
114 | |||
114 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 115 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
115 | PhysicsVector size, Quaternion rotation) //To be removed | 116 | PhysicsVector size, Quaternion rotation) //To be removed |
116 | { | 117 | { |
117 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 118 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
118 | } | 119 | } |
120 | |||
119 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 121 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
120 | PhysicsVector size, Quaternion rotation, bool isPhysical) | 122 | PhysicsVector size, Quaternion rotation, bool isPhysical) |
121 | { | 123 | { |
122 | MainLog.Instance.Verbose("PHYSICS", "NullPhysicsScene : AddPrim({0},{1})", position, size); | 124 | MainLog.Instance.Verbose("PHYSICS", "NullPhysicsScene : AddPrim({0},{1})", position, size); |
123 | return PhysicsActor.Null; | 125 | return PhysicsActor.Null; |
124 | } | 126 | } |
127 | |||
125 | public override void AddPhysicsActorTaint(PhysicsActor prim) | 128 | public override void AddPhysicsActorTaint(PhysicsActor prim) |
126 | { | 129 | { |
127 | |||
128 | } | 130 | } |
131 | |||
129 | public override float Simulate(float timeStep) | 132 | public override float Simulate(float timeStep) |
130 | { | 133 | { |
131 | m_workIndicator = (m_workIndicator + 1)%10; | 134 | m_workIndicator = (m_workIndicator + 1)%10; |
@@ -154,4 +157,4 @@ namespace OpenSim.Region.Physics.Manager | |||
154 | } | 157 | } |
155 | } | 158 | } |
156 | } | 159 | } |
157 | } | 160 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/PhysicsVector.cs b/OpenSim/Region/Physics/Manager/PhysicsVector.cs index be82fca..1f5d0dc 100644 --- a/OpenSim/Region/Physics/Manager/PhysicsVector.cs +++ b/OpenSim/Region/Physics/Manager/PhysicsVector.cs | |||
@@ -28,7 +28,6 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | 30 | ||
31 | |||
32 | namespace OpenSim.Region.Physics.Manager | 31 | namespace OpenSim.Region.Physics.Manager |
33 | { | 32 | { |
34 | public class PhysicsVector | 33 | public class PhysicsVector |
@@ -68,27 +67,27 @@ namespace OpenSim.Region.Physics.Manager | |||
68 | 67 | ||
69 | public static PhysicsVector cross(PhysicsVector a, PhysicsVector b) | 68 | public static PhysicsVector cross(PhysicsVector a, PhysicsVector b) |
70 | { | 69 | { |
71 | return new PhysicsVector(a.Y * b.Z - a.Z * b.Y, a.Z * b.X - a.X * b.Z, a.X * b.Y - a.Y * b.X); | 70 | return new PhysicsVector(a.Y*b.Z - a.Z*b.Y, a.Z*b.X - a.X*b.Z, a.X*b.Y - a.Y*b.X); |
72 | } | 71 | } |
73 | 72 | ||
74 | public float length() | 73 | public float length() |
75 | { | 74 | { |
76 | return (float)Math.Sqrt(X*X + Y*Y + Z*Z); | 75 | return (float) Math.Sqrt(X*X + Y*Y + Z*Z); |
77 | } | 76 | } |
78 | 77 | ||
79 | public static PhysicsVector operator / (PhysicsVector v, float f) | 78 | public static PhysicsVector operator /(PhysicsVector v, float f) |
80 | { | 79 | { |
81 | return new PhysicsVector(v.X / f, v.Y / f, v.Z / f); | 80 | return new PhysicsVector(v.X/f, v.Y/f, v.Z/f); |
82 | } | 81 | } |
83 | 82 | ||
84 | public static PhysicsVector operator *(PhysicsVector v, float f) | 83 | public static PhysicsVector operator *(PhysicsVector v, float f) |
85 | { | 84 | { |
86 | return new PhysicsVector(v.X * f, v.Y * f, v.Z * f); | 85 | return new PhysicsVector(v.X*f, v.Y*f, v.Z*f); |
87 | } | 86 | } |
88 | 87 | ||
89 | public static PhysicsVector operator *(float f, PhysicsVector v) | 88 | public static PhysicsVector operator *(float f, PhysicsVector v) |
90 | { | 89 | { |
91 | return v * f; | 90 | return v*f; |
92 | } | 91 | } |
93 | 92 | ||
94 | public virtual bool IsIdentical(PhysicsVector v, float tolerance) | 93 | public virtual bool IsIdentical(PhysicsVector v, float tolerance) |
@@ -101,4 +100,4 @@ namespace OpenSim.Region.Physics.Manager | |||
101 | return false; | 100 | return false; |
102 | } | 101 | } |
103 | } | 102 | } |
104 | } | 103 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Manager/ZeroMesher.cs b/OpenSim/Region/Physics/Manager/ZeroMesher.cs index a88656e..7dae4ac 100644 --- a/OpenSim/Region/Physics/Manager/ZeroMesher.cs +++ b/OpenSim/Region/Physics/Manager/ZeroMesher.cs | |||
@@ -27,11 +27,8 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using OpenSim.Framework; | 30 | using OpenSim.Framework; |
33 | 31 | ||
34 | |||
35 | /* | 32 | /* |
36 | * This is the zero mesher. | 33 | * This is the zero mesher. |
37 | * Whatever you want him to mesh, he can't, telling you that by responding with a null pointer. | 34 | * Whatever you want him to mesh, he can't, telling you that by responding with a null pointer. |
@@ -62,13 +59,11 @@ namespace OpenSim.Region.Physics.Manager | |||
62 | } | 59 | } |
63 | } | 60 | } |
64 | 61 | ||
65 | public class ZeroMesher: IMesher | 62 | public class ZeroMesher : IMesher |
66 | { | 63 | { |
67 | |||
68 | public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size) | 64 | public IMesh CreateMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size) |
69 | { | 65 | { |
70 | return null; | 66 | return null; |
71 | } | 67 | } |
72 | } | 68 | } |
73 | 69 | } \ No newline at end of file | |
74 | } | ||
diff --git a/OpenSim/Region/Physics/Meshing/Extruder.cs b/OpenSim/Region/Physics/Meshing/Extruder.cs index eecac5a..7ef5b5b 100644 --- a/OpenSim/Region/Physics/Meshing/Extruder.cs +++ b/OpenSim/Region/Physics/Meshing/Extruder.cs | |||
@@ -26,24 +26,22 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using OpenSim.Region.Physics.Manager; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | 30 | ||
33 | namespace OpenSim.Region.Physics.Meshing | 31 | namespace OpenSim.Region.Physics.Meshing |
34 | { | 32 | { |
35 | class Extruder | 33 | internal class Extruder |
36 | { | 34 | { |
37 | public float startParameter; | 35 | public float startParameter; |
38 | public float stopParameter; | 36 | public float stopParameter; |
39 | public Manager.PhysicsVector size; | 37 | public PhysicsVector size; |
40 | 38 | ||
41 | public Mesh Extrude(Mesh m) | 39 | public Mesh Extrude(Mesh m) |
42 | { | 40 | { |
43 | // Currently only works for iSteps=1; | 41 | // Currently only works for iSteps=1; |
44 | Mesh result = new Mesh(); | 42 | Mesh result = new Mesh(); |
45 | 43 | ||
46 | Mesh workingPlus = m.Clone(); | 44 | Mesh workingPlus = m.Clone(); |
47 | Mesh workingMinus = m.Clone(); | 45 | Mesh workingMinus = m.Clone(); |
48 | 46 | ||
49 | foreach (Vertex v in workingPlus.vertices) | 47 | foreach (Vertex v in workingPlus.vertices) |
@@ -80,14 +78,14 @@ namespace OpenSim.Region.Physics.Meshing | |||
80 | for (int i = 0; i < workingPlus.vertices.Count; i++) | 78 | for (int i = 0; i < workingPlus.vertices.Count; i++) |
81 | { | 79 | { |
82 | int iNext = (i + 1); | 80 | int iNext = (i + 1); |
83 | 81 | ||
84 | if (workingPlus.vertices[i] == null) // Can't make a simplex here | 82 | if (workingPlus.vertices[i] == null) // Can't make a simplex here |
85 | { | 83 | { |
86 | iLastNull = i+1; | 84 | iLastNull = i + 1; |
87 | continue; | 85 | continue; |
88 | } | 86 | } |
89 | 87 | ||
90 | if (i == workingPlus.vertices.Count-1) // End of list | 88 | if (i == workingPlus.vertices.Count - 1) // End of list |
91 | { | 89 | { |
92 | iNext = iLastNull; | 90 | iNext = iLastNull; |
93 | } | 91 | } |
@@ -101,11 +99,12 @@ namespace OpenSim.Region.Physics.Meshing | |||
101 | tSide = new Triangle(workingPlus.vertices[i], workingMinus.vertices[i], workingPlus.vertices[iNext]); | 99 | tSide = new Triangle(workingPlus.vertices[i], workingMinus.vertices[i], workingPlus.vertices[iNext]); |
102 | result.Add(tSide); | 100 | result.Add(tSide); |
103 | 101 | ||
104 | tSide = new Triangle(workingPlus.vertices[iNext], workingMinus.vertices[i], workingMinus.vertices[iNext]); | 102 | tSide = |
103 | new Triangle(workingPlus.vertices[iNext], workingMinus.vertices[i], workingMinus.vertices[iNext]); | ||
105 | result.Add(tSide); | 104 | result.Add(tSide); |
106 | } | 105 | } |
107 | 106 | ||
108 | return result; | 107 | return result; |
109 | } | 108 | } |
110 | } | 109 | } |
111 | } | 110 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Meshing/HelperTypes.cs b/OpenSim/Region/Physics/Meshing/HelperTypes.cs index be82c32..ac06614 100644 --- a/OpenSim/Region/Physics/Meshing/HelperTypes.cs +++ b/OpenSim/Region/Physics/Meshing/HelperTypes.cs | |||
@@ -30,9 +30,7 @@ using System; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Diagnostics; | 31 | using System.Diagnostics; |
32 | using System.Globalization; | 32 | using System.Globalization; |
33 | using OpenSim.Framework.Console; | ||
34 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
35 | |||
36 | using OpenSim.Region.Physics.Meshing; | 34 | using OpenSim.Region.Physics.Meshing; |
37 | 35 | ||
38 | public class Vertex : PhysicsVector, IComparable<Vertex> | 36 | public class Vertex : PhysicsVector, IComparable<Vertex> |
@@ -54,7 +52,7 @@ public class Vertex : PhysicsVector, IComparable<Vertex> | |||
54 | 52 | ||
55 | public static Vertex FromAngle(double angle) | 53 | public static Vertex FromAngle(double angle) |
56 | { | 54 | { |
57 | return new Vertex((float)Math.Cos(angle), (float)Math.Sin(angle), 0.0f); | 55 | return new Vertex((float) Math.Cos(angle), (float) Math.Sin(angle), 0.0f); |
58 | } | 56 | } |
59 | 57 | ||
60 | 58 | ||
@@ -101,6 +99,7 @@ public class Vertex : PhysicsVector, IComparable<Vertex> | |||
101 | { | 99 | { |
102 | return me.CompareTo(other) < 0; | 100 | return me.CompareTo(other) < 0; |
103 | } | 101 | } |
102 | |||
104 | public String ToRaw() | 103 | public String ToRaw() |
105 | { | 104 | { |
106 | // Why this stuff with the number formatter? | 105 | // Why this stuff with the number formatter? |
@@ -117,7 +116,6 @@ public class Vertex : PhysicsVector, IComparable<Vertex> | |||
117 | 116 | ||
118 | return s1; | 117 | return s1; |
119 | } | 118 | } |
120 | |||
121 | } | 119 | } |
122 | 120 | ||
123 | public class Triangle | 121 | public class Triangle |
@@ -283,7 +281,7 @@ public class Triangle | |||
283 | float l = n.length(); | 281 | float l = n.length(); |
284 | 282 | ||
285 | // Normalized "normal" | 283 | // Normalized "normal" |
286 | n = n / l; | 284 | n = n/l; |
287 | 285 | ||
288 | return n; | 286 | return n; |
289 | } | 287 | } |
@@ -300,7 +298,7 @@ public class Triangle | |||
300 | // debugging purposes | 298 | // debugging purposes |
301 | public String ToStringRaw() | 299 | public String ToStringRaw() |
302 | { | 300 | { |
303 | String output = v1.ToRaw() + " " + v2.ToRaw() + " " +v3.ToRaw(); | 301 | String output = v1.ToRaw() + " " + v2.ToRaw() + " " + v3.ToRaw(); |
304 | return output; | 302 | return output; |
305 | } | 303 | } |
306 | } \ No newline at end of file | 304 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Meshing/Mesh.cs b/OpenSim/Region/Physics/Meshing/Mesh.cs index 2ebfa1c..9c2667e 100644 --- a/OpenSim/Region/Physics/Meshing/Mesh.cs +++ b/OpenSim/Region/Physics/Meshing/Mesh.cs | |||
@@ -26,14 +26,11 @@ | |||
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | |||
29 | using System; | 30 | using System; |
30 | using System.IO; | ||
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using System.Text; | 32 | using System.IO; |
33 | |||
34 | using System.Runtime.InteropServices; | 33 | using System.Runtime.InteropServices; |
35 | |||
36 | |||
37 | using OpenSim.Region.Physics.Manager; | 34 | using OpenSim.Region.Physics.Manager; |
38 | 35 | ||
39 | namespace OpenSim.Region.Physics.Meshing | 36 | namespace OpenSim.Region.Physics.Meshing |
@@ -66,9 +63,9 @@ namespace OpenSim.Region.Physics.Meshing | |||
66 | foreach (Triangle t in triangles) | 63 | foreach (Triangle t in triangles) |
67 | { | 64 | { |
68 | int iV1, iV2, iV3; | 65 | int iV1, iV2, iV3; |
69 | iV1 = this.vertices.IndexOf(t.v1); | 66 | iV1 = vertices.IndexOf(t.v1); |
70 | iV2 = this.vertices.IndexOf(t.v2); | 67 | iV2 = vertices.IndexOf(t.v2); |
71 | iV3 = this.vertices.IndexOf(t.v3); | 68 | iV3 = vertices.IndexOf(t.v3); |
72 | 69 | ||
73 | Triangle newT = new Triangle(result.vertices[iV1], result.vertices[iV2], result.vertices[iV3]); | 70 | Triangle newT = new Triangle(result.vertices[iV1], result.vertices[iV2], result.vertices[iV3]); |
74 | result.Add(newT); | 71 | result.Add(newT); |
@@ -77,8 +74,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
77 | return result; | 74 | return result; |
78 | } | 75 | } |
79 | 76 | ||
80 | 77 | ||
81 | |||
82 | public void Add(Triangle triangle) | 78 | public void Add(Triangle triangle) |
83 | { | 79 | { |
84 | int i; | 80 | int i; |
@@ -160,15 +156,15 @@ namespace OpenSim.Region.Physics.Meshing | |||
160 | 156 | ||
161 | public float[] getVertexListAsFloatLocked() | 157 | public float[] getVertexListAsFloatLocked() |
162 | { | 158 | { |
163 | float[] result = new float[vertices.Count * 3]; | 159 | float[] result = new float[vertices.Count*3]; |
164 | for (int i = 0; i < vertices.Count; i++) | 160 | for (int i = 0; i < vertices.Count; i++) |
165 | { | 161 | { |
166 | Vertex v = vertices[i]; | 162 | Vertex v = vertices[i]; |
167 | if (v == null) | 163 | if (v == null) |
168 | continue; | 164 | continue; |
169 | result[3 * i + 0] = v.X; | 165 | result[3*i + 0] = v.X; |
170 | result[3 * i + 1] = v.Y; | 166 | result[3*i + 1] = v.Y; |
171 | result[3 * i + 2] = v.Z; | 167 | result[3*i + 2] = v.Z; |
172 | } | 168 | } |
173 | GCHandle.Alloc(result, GCHandleType.Pinned); | 169 | GCHandle.Alloc(result, GCHandleType.Pinned); |
174 | return result; | 170 | return result; |
@@ -176,13 +172,13 @@ namespace OpenSim.Region.Physics.Meshing | |||
176 | 172 | ||
177 | public int[] getIndexListAsInt() | 173 | public int[] getIndexListAsInt() |
178 | { | 174 | { |
179 | int[] result = new int[triangles.Count * 3]; | 175 | int[] result = new int[triangles.Count*3]; |
180 | for (int i = 0; i < triangles.Count; i++) | 176 | for (int i = 0; i < triangles.Count; i++) |
181 | { | 177 | { |
182 | Triangle t = triangles[i]; | 178 | Triangle t = triangles[i]; |
183 | result[3 * i + 0] = vertices.IndexOf(t.v1); | 179 | result[3*i + 0] = vertices.IndexOf(t.v1); |
184 | result[3 * i + 1] = vertices.IndexOf(t.v2); | 180 | result[3*i + 1] = vertices.IndexOf(t.v2); |
185 | result[3 * i + 2] = vertices.IndexOf(t.v3); | 181 | result[3*i + 2] = vertices.IndexOf(t.v3); |
186 | } | 182 | } |
187 | return result; | 183 | return result; |
188 | } | 184 | } |
@@ -202,7 +198,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
202 | 198 | ||
203 | foreach (Triangle t in newMesh.triangles) | 199 | foreach (Triangle t in newMesh.triangles) |
204 | Add(t); | 200 | Add(t); |
205 | |||
206 | } | 201 | } |
207 | 202 | ||
208 | // Do a linear transformation of mesh. | 203 | // Do a linear transformation of mesh. |
@@ -213,9 +208,9 @@ namespace OpenSim.Region.Physics.Meshing | |||
213 | if (v == null) | 208 | if (v == null) |
214 | continue; | 209 | continue; |
215 | float x, y, z; | 210 | float x, y, z; |
216 | x = v.X * matrix[0, 0] + v.Y * matrix[1, 0] + v.Z * matrix[2, 0]; | 211 | x = v.X*matrix[0, 0] + v.Y*matrix[1, 0] + v.Z*matrix[2, 0]; |
217 | y = v.X * matrix[0, 1] + v.Y * matrix[1, 1] + v.Z * matrix[2, 1]; | 212 | y = v.X*matrix[0, 1] + v.Y*matrix[1, 1] + v.Z*matrix[2, 1]; |
218 | z = v.X * matrix[0, 2] + v.Y * matrix[1, 2] + v.Z * matrix[2, 2]; | 213 | z = v.X*matrix[0, 2] + v.Y*matrix[1, 2] + v.Z*matrix[2, 2]; |
219 | v.X = x + offset[0]; | 214 | v.X = x + offset[0]; |
220 | v.Y = y + offset[1]; | 215 | v.Y = y + offset[1]; |
221 | v.Z = z + offset[2]; | 216 | v.Z = z + offset[2]; |
@@ -237,5 +232,4 @@ namespace OpenSim.Region.Physics.Meshing | |||
237 | sw.Close(); | 232 | sw.Close(); |
238 | } | 233 | } |
239 | } | 234 | } |
240 | 235 | } \ No newline at end of file | |
241 | } | ||
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index 9c35f81..3217dd8 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -27,18 +27,13 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.IO; | ||
31 | using System.Globalization; | ||
32 | using System.Diagnostics; | ||
33 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
34 | using System.Runtime.InteropServices; | ||
35 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
37 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
38 | 34 | ||
39 | namespace OpenSim.Region.Physics.Meshing | 35 | namespace OpenSim.Region.Physics.Meshing |
40 | { | 36 | { |
41 | |||
42 | public class MeshmerizerPlugin : IMeshingPlugin | 37 | public class MeshmerizerPlugin : IMeshingPlugin |
43 | { | 38 | { |
44 | public MeshmerizerPlugin() | 39 | public MeshmerizerPlugin() |
@@ -61,10 +56,11 @@ namespace OpenSim.Region.Physics.Meshing | |||
61 | // Setting baseDir to a path will enable the dumping of raw files | 56 | // Setting baseDir to a path will enable the dumping of raw files |
62 | // raw files can be imported by blender so a visual inspection of the results can be done | 57 | // raw files can be imported by blender so a visual inspection of the results can be done |
63 | // const string baseDir = "rawFiles"; | 58 | // const string baseDir = "rawFiles"; |
64 | const string baseDir = null; | 59 | private const string baseDir = null; |
65 | 60 | ||
66 | static void IntersectionParameterPD(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2, PhysicsVector r2, ref float lambda, ref float mu) | 61 | private static void IntersectionParameterPD(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2, |
67 | { | 62 | PhysicsVector r2, ref float lambda, ref float mu) |
63 | { | ||
68 | // p1, p2, points on the straight | 64 | // p1, p2, points on the straight |
69 | // r1, r2, directional vectors of the straight. Not necessarily of length 1! | 65 | // r1, r2, directional vectors of the straight. Not necessarily of length 1! |
70 | // note, that l, m can be scaled such, that the range 0..1 is mapped to the area between two points, | 66 | // note, that l, m can be scaled such, that the range 0..1 is mapped to the area between two points, |
@@ -88,9 +84,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
88 | float p1y = p1.Y; | 84 | float p1y = p1.Y; |
89 | float p2x = p2.X; | 85 | float p2x = p2.X; |
90 | float p2y = p2.Y; | 86 | float p2y = p2.Y; |
91 | lambda = (-p2x * r2y + p1x * r2y + (p2y - p1y) * r2x) / denom; | 87 | lambda = (-p2x*r2y + p1x*r2y + (p2y - p1y)*r2x)/denom; |
92 | mu = (-p2x * r1y + p1x * r1y + (p2y - p1y) * r1x) / denom; | 88 | mu = (-p2x*r1y + p1x*r1y + (p2y - p1y)*r1x)/denom; |
93 | |||
94 | } | 89 | } |
95 | 90 | ||
96 | private static List<Triangle> FindInfluencedTriangles(List<Triangle> triangles, Vertex v) | 91 | private static List<Triangle> FindInfluencedTriangles(List<Triangle> triangles, Vertex v) |
@@ -105,8 +100,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
105 | } | 100 | } |
106 | return influenced; | 101 | return influenced; |
107 | } | 102 | } |
108 | 103 | ||
109 | 104 | ||
110 | private static void InsertVertices(List<Vertex> vertices, int usedForSeed, List<Triangle> triangles) | 105 | private static void InsertVertices(List<Vertex> vertices, int usedForSeed, List<Triangle> triangles) |
111 | { | 106 | { |
112 | // This is a variant of the delaunay algorithm | 107 | // This is a variant of the delaunay algorithm |
@@ -126,10 +121,10 @@ namespace OpenSim.Region.Physics.Meshing | |||
126 | // do not fulfill this condition with respect to the new triangle | 121 | // do not fulfill this condition with respect to the new triangle |
127 | 122 | ||
128 | // Find the triangles that are influenced by the new vertex | 123 | // Find the triangles that are influenced by the new vertex |
129 | Vertex v=vertices[iCurrentVertex]; | 124 | Vertex v = vertices[iCurrentVertex]; |
130 | if (v == null) | 125 | if (v == null) |
131 | continue; // Null is polygon stop marker. Ignore it | 126 | continue; // Null is polygon stop marker. Ignore it |
132 | List<Triangle> influencedTriangles=FindInfluencedTriangles(triangles, v); | 127 | List<Triangle> influencedTriangles = FindInfluencedTriangles(triangles, v); |
133 | 128 | ||
134 | List<Simplex> simplices = new List<Simplex>(); | 129 | List<Simplex> simplices = new List<Simplex>(); |
135 | 130 | ||
@@ -177,12 +172,11 @@ namespace OpenSim.Region.Physics.Meshing | |||
177 | } | 172 | } |
178 | } | 173 | } |
179 | } | 174 | } |
180 | |||
181 | } | 175 | } |
182 | 176 | ||
183 | 177 | ||
184 | static Mesh CreateBoxMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size) | 178 | private static Mesh CreateBoxMesh(String primName, PrimitiveBaseShape primShape, PhysicsVector size) |
185 | // Builds the z (+ and -) surfaces of a box shaped prim | 179 | // Builds the z (+ and -) surfaces of a box shaped prim |
186 | { | 180 | { |
187 | UInt16 hollowFactor = primShape.ProfileHollow; | 181 | UInt16 hollowFactor = primShape.ProfileHollow; |
188 | UInt16 profileBegin = primShape.ProfileBegin; | 182 | UInt16 profileBegin = primShape.ProfileBegin; |
@@ -201,7 +195,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
201 | Vertex MP = new Vertex(-0.5f, +0.5f, 0.0f); | 195 | Vertex MP = new Vertex(-0.5f, +0.5f, 0.0f); |
202 | Vertex PP = new Vertex(+0.5f, +0.5f, 0.0f); | 196 | Vertex PP = new Vertex(+0.5f, +0.5f, 0.0f); |
203 | 197 | ||
204 | Meshing.SimpleHull outerHull = new SimpleHull(); | 198 | SimpleHull outerHull = new SimpleHull(); |
205 | outerHull.AddVertex(MM); | 199 | outerHull.AddVertex(MM); |
206 | outerHull.AddVertex(PM); | 200 | outerHull.AddVertex(PM); |
207 | outerHull.AddVertex(PP); | 201 | outerHull.AddVertex(PP); |
@@ -210,9 +204,10 @@ namespace OpenSim.Region.Physics.Meshing | |||
210 | // Deal with cuts now | 204 | // Deal with cuts now |
211 | if ((profileBegin != 0) || (profileEnd != 0)) | 205 | if ((profileBegin != 0) || (profileEnd != 0)) |
212 | { | 206 | { |
213 | double fProfileBeginAngle = profileBegin / 50000.0 * 360.0; // In degree, for easier debugging and understanding | 207 | double fProfileBeginAngle = profileBegin/50000.0*360.0; |
214 | fProfileBeginAngle -= (90.0 + 45.0); // for some reasons, the SL client counts from the corner -X/-Y | 208 | // In degree, for easier debugging and understanding |
215 | double fProfileEndAngle = 360.0 - profileEnd / 50000.0 * 360.0; // Pathend comes as complement to 1.0 | 209 | fProfileBeginAngle -= (90.0 + 45.0); // for some reasons, the SL client counts from the corner -X/-Y |
210 | double fProfileEndAngle = 360.0 - profileEnd/50000.0*360.0; // Pathend comes as complement to 1.0 | ||
216 | fProfileEndAngle -= (90.0 + 45.0); | 211 | fProfileEndAngle -= (90.0 + 45.0); |
217 | if (fProfileBeginAngle < fProfileEndAngle) | 212 | if (fProfileBeginAngle < fProfileEndAngle) |
218 | fProfileEndAngle -= 360.0; | 213 | fProfileEndAngle -= 360.0; |
@@ -222,20 +217,23 @@ namespace OpenSim.Region.Physics.Meshing | |||
222 | // and we approximate this arc by a polygon chain | 217 | // and we approximate this arc by a polygon chain |
223 | // Also note, that these vectors are of length 1.0 and thus their endpoints lay outside the model space | 218 | // Also note, that these vectors are of length 1.0 and thus their endpoints lay outside the model space |
224 | // So it can easily be subtracted from the outer hull | 219 | // So it can easily be subtracted from the outer hull |
225 | int iSteps = (int)(((fProfileBeginAngle - fProfileEndAngle) / 45.0) + .5); // how many steps do we need with approximately 45 degree | 220 | int iSteps = (int) (((fProfileBeginAngle - fProfileEndAngle)/45.0) + .5); |
226 | double dStepWidth=(fProfileBeginAngle-fProfileEndAngle)/iSteps; | 221 | // how many steps do we need with approximately 45 degree |
222 | double dStepWidth = (fProfileBeginAngle - fProfileEndAngle)/iSteps; | ||
227 | 223 | ||
228 | Vertex origin = new Vertex(0.0f, 0.0f, 0.0f); | 224 | Vertex origin = new Vertex(0.0f, 0.0f, 0.0f); |
229 | 225 | ||
230 | // Note the sequence of vertices here. It's important to have the other rotational sense than in outerHull | 226 | // Note the sequence of vertices here. It's important to have the other rotational sense than in outerHull |
231 | SimpleHull cutHull = new SimpleHull(); | 227 | SimpleHull cutHull = new SimpleHull(); |
232 | cutHull.AddVertex(origin); | 228 | cutHull.AddVertex(origin); |
233 | for (int i=0; i<iSteps; i++) { | 229 | for (int i = 0; i < iSteps; i++) |
234 | double angle=fProfileBeginAngle-i*dStepWidth; // we count against the angle orientation!!!! | 230 | { |
235 | Vertex v = Vertex.FromAngle(angle * Math.PI / 180.0); | 231 | double angle = fProfileBeginAngle - i*dStepWidth; // we count against the angle orientation!!!! |
232 | Vertex v = Vertex.FromAngle(angle*Math.PI/180.0); | ||
236 | cutHull.AddVertex(v); | 233 | cutHull.AddVertex(v); |
237 | } | 234 | } |
238 | Vertex legEnd = Vertex.FromAngle(fProfileEndAngle * Math.PI / 180.0); // Calculated separately to avoid errors | 235 | Vertex legEnd = Vertex.FromAngle(fProfileEndAngle*Math.PI/180.0); |
236 | // Calculated separately to avoid errors | ||
239 | cutHull.AddVertex(legEnd); | 237 | cutHull.AddVertex(legEnd); |
240 | 238 | ||
241 | MainLog.Instance.Debug("Starting cutting of the hollow shape from the prim {1}", 0, primName); | 239 | MainLog.Instance.Debug("Starting cutting of the hollow shape from the prim {1}", 0, primName); |
@@ -248,10 +246,10 @@ namespace OpenSim.Region.Physics.Meshing | |||
248 | if (hollowFactor > 0) | 246 | if (hollowFactor > 0) |
249 | { | 247 | { |
250 | float hollowFactorF = (float) hollowFactor/(float) 50000; | 248 | float hollowFactorF = (float) hollowFactor/(float) 50000; |
251 | Vertex IMM = new Vertex(-0.5f * hollowFactorF, -0.5f * hollowFactorF, 0.0f); | 249 | Vertex IMM = new Vertex(-0.5f*hollowFactorF, -0.5f*hollowFactorF, 0.0f); |
252 | Vertex IPM = new Vertex(+0.5f * hollowFactorF, -0.5f * hollowFactorF, 0.0f); | 250 | Vertex IPM = new Vertex(+0.5f*hollowFactorF, -0.5f*hollowFactorF, 0.0f); |
253 | Vertex IMP = new Vertex(-0.5f * hollowFactorF, +0.5f * hollowFactorF, 0.0f); | 251 | Vertex IMP = new Vertex(-0.5f*hollowFactorF, +0.5f*hollowFactorF, 0.0f); |
254 | Vertex IPP = new Vertex(+0.5f * hollowFactorF, +0.5f * hollowFactorF, 0.0f); | 252 | Vertex IPP = new Vertex(+0.5f*hollowFactorF, +0.5f*hollowFactorF, 0.0f); |
255 | 253 | ||
256 | SimpleHull holeHull = new SimpleHull(); | 254 | SimpleHull holeHull = new SimpleHull(); |
257 | 255 | ||
@@ -263,7 +261,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
263 | SimpleHull hollowedHull = SimpleHull.SubtractHull(outerHull, holeHull); | 261 | SimpleHull hollowedHull = SimpleHull.SubtractHull(outerHull, holeHull); |
264 | 262 | ||
265 | outerHull = hollowedHull; | 263 | outerHull = hollowedHull; |
266 | |||
267 | } | 264 | } |
268 | 265 | ||
269 | Mesh m = new Mesh(); | 266 | Mesh m = new Mesh(); |
@@ -286,7 +283,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
286 | m.Remove(Seed2); | 283 | m.Remove(Seed2); |
287 | m.Remove(Seed3); | 284 | m.Remove(Seed3); |
288 | m.DumpRaw(baseDir, primName, "Proto seeds removed"); | 285 | m.DumpRaw(baseDir, primName, "Proto seeds removed"); |
289 | 286 | ||
290 | m.RemoveTrianglesOutside(outerHull); | 287 | m.RemoveTrianglesOutside(outerHull); |
291 | m.DumpRaw(baseDir, primName, "Proto outsides removed"); | 288 | m.DumpRaw(baseDir, primName, "Proto outsides removed"); |
292 | 289 | ||
@@ -374,7 +371,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
374 | switch (primShape.ProfileShape) | 371 | switch (primShape.ProfileShape) |
375 | { | 372 | { |
376 | case ProfileShape.Square: | 373 | case ProfileShape.Square: |
377 | mesh=CreateBoxMesh(primName, primShape, size); | 374 | mesh = CreateBoxMesh(primName, primShape, size); |
378 | CalcNormals(mesh); | 375 | CalcNormals(mesh); |
379 | break; | 376 | break; |
380 | default: | 377 | default: |
@@ -389,5 +386,4 @@ namespace OpenSim.Region.Physics.Meshing | |||
389 | return mesh; | 386 | return mesh; |
390 | } | 387 | } |
391 | } | 388 | } |
392 | 389 | } \ No newline at end of file | |
393 | } | ||
diff --git a/OpenSim/Region/Physics/Meshing/SimpleHull.cs b/OpenSim/Region/Physics/Meshing/SimpleHull.cs index a769053..809f3d5 100644 --- a/OpenSim/Region/Physics/Meshing/SimpleHull.cs +++ b/OpenSim/Region/Physics/Meshing/SimpleHull.cs | |||
@@ -28,9 +28,8 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | ||
32 | |||
33 | using OpenSim.Framework.Console; | 31 | using OpenSim.Framework.Console; |
32 | using OpenSim.Region.Physics.Manager; | ||
34 | 33 | ||
35 | namespace OpenSim.Region.Physics.Meshing | 34 | namespace OpenSim.Region.Physics.Meshing |
36 | { | 35 | { |
@@ -43,17 +42,18 @@ namespace OpenSim.Region.Physics.Meshing | |||
43 | // is defined by the hull lies inside or outside the simplex chain | 42 | // is defined by the hull lies inside or outside the simplex chain |
44 | public class SimpleHull | 43 | public class SimpleHull |
45 | { | 44 | { |
46 | List<Vertex> vertices = new List<Vertex>(); | 45 | private List<Vertex> vertices = new List<Vertex>(); |
47 | List<Vertex> holeVertices = new List<Vertex>(); // Only used, when the hull is hollow | 46 | private List<Vertex> holeVertices = new List<Vertex>(); // Only used, when the hull is hollow |
48 | 47 | ||
49 | // Adds a vertex to the end of the list | 48 | // Adds a vertex to the end of the list |
50 | public void AddVertex(Vertex v) { | 49 | public void AddVertex(Vertex v) |
50 | { | ||
51 | vertices.Add(v); | 51 | vertices.Add(v); |
52 | } | 52 | } |
53 | 53 | ||
54 | override public String ToString() | 54 | public override String ToString() |
55 | { | 55 | { |
56 | String result=""; | 56 | String result = ""; |
57 | foreach (Vertex v in vertices) | 57 | foreach (Vertex v in vertices) |
58 | { | 58 | { |
59 | result += "b:" + v.ToString() + "\n"; | 59 | result += "b:" + v.ToString() + "\n"; |
@@ -63,7 +63,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
63 | } | 63 | } |
64 | 64 | ||
65 | 65 | ||
66 | public List<Vertex> getVertices() { | 66 | public List<Vertex> getVertices() |
67 | { | ||
67 | List<Vertex> newVertices = new List<Vertex>(); | 68 | List<Vertex> newVertices = new List<Vertex>(); |
68 | 69 | ||
69 | newVertices.AddRange(vertices); | 70 | newVertices.AddRange(vertices); |
@@ -81,27 +82,27 @@ namespace OpenSim.Region.Physics.Meshing | |||
81 | result.AddVertex(v.Clone()); | 82 | result.AddVertex(v.Clone()); |
82 | } | 83 | } |
83 | 84 | ||
84 | foreach (Vertex v in this.holeVertices) | 85 | foreach (Vertex v in holeVertices) |
85 | { | 86 | { |
86 | result.holeVertices.Add(v.Clone()); | 87 | result.holeVertices.Add(v.Clone()); |
87 | } | 88 | } |
88 | 89 | ||
89 | return result; | 90 | return result; |
90 | } | 91 | } |
91 | 92 | ||
92 | public bool IsPointIn(Vertex v1) | 93 | public bool IsPointIn(Vertex v1) |
93 | { | 94 | { |
94 | int iCounter=0; | 95 | int iCounter = 0; |
95 | List<Simplex> simplices=buildSimplexList(); | 96 | List<Simplex> simplices = buildSimplexList(); |
96 | foreach (Simplex s in simplices) | 97 | foreach (Simplex s in simplices) |
97 | { | 98 | { |
98 | // Send a ray along the positive X-Direction | 99 | // Send a ray along the positive X-Direction |
99 | // Note, that this direction must correlate with the "below" interpretation | 100 | // Note, that this direction must correlate with the "below" interpretation |
100 | // of handling for the special cases below | 101 | // of handling for the special cases below |
101 | Manager.PhysicsVector intersection = s.RayIntersect(v1, new Manager.PhysicsVector(1.0f, 0.0f, 0.0f), true); | 102 | PhysicsVector intersection = s.RayIntersect(v1, new PhysicsVector(1.0f, 0.0f, 0.0f), true); |
102 | 103 | ||
103 | if (intersection == null) | 104 | if (intersection == null) |
104 | continue; // No intersection. Done. More tests to follow otherwise | 105 | continue; // No intersection. Done. More tests to follow otherwise |
105 | 106 | ||
106 | // Did we hit the end of a simplex? | 107 | // Did we hit the end of a simplex? |
107 | // Then this can be one of two special cases: | 108 | // Then this can be one of two special cases: |
@@ -111,19 +112,21 @@ namespace OpenSim.Region.Physics.Meshing | |||
111 | // Solution: If the other vertex is "below" the ray, we don't count it | 112 | // Solution: If the other vertex is "below" the ray, we don't count it |
112 | // Thus corners pointing down are counted twice, corners pointing up are not counted | 113 | // Thus corners pointing down are counted twice, corners pointing up are not counted |
113 | // borders are counted once | 114 | // borders are counted once |
114 | if (intersection.IsIdentical(s.v1, 0.001f)) { | 115 | if (intersection.IsIdentical(s.v1, 0.001f)) |
116 | { | ||
115 | if (s.v2.Y < v1.Y) | 117 | if (s.v2.Y < v1.Y) |
116 | continue; | 118 | continue; |
117 | } | 119 | } |
118 | // Do this for the other vertex two | 120 | // Do this for the other vertex two |
119 | if (intersection.IsIdentical(s.v2, 0.001f)) { | 121 | if (intersection.IsIdentical(s.v2, 0.001f)) |
120 | if (s.v1.Y<v1.Y) | 122 | { |
123 | if (s.v1.Y < v1.Y) | ||
121 | continue; | 124 | continue; |
122 | } | 125 | } |
123 | iCounter++; | 126 | iCounter++; |
124 | } | 127 | } |
125 | 128 | ||
126 | return iCounter % 2 == 1; // Point is inside if the number of intersections is odd | 129 | return iCounter%2 == 1; // Point is inside if the number of intersections is odd |
127 | } | 130 | } |
128 | 131 | ||
129 | public bool containsPointsFrom(SimpleHull otherHull) | 132 | public bool containsPointsFrom(SimpleHull otherHull) |
@@ -138,19 +141,20 @@ namespace OpenSim.Region.Physics.Meshing | |||
138 | } | 141 | } |
139 | 142 | ||
140 | 143 | ||
141 | List<Simplex> buildSimplexList() { | 144 | private List<Simplex> buildSimplexList() |
142 | 145 | { | |
143 | List<Simplex> result = new List<Simplex>(); | 146 | List<Simplex> result = new List<Simplex>(); |
144 | 147 | ||
145 | // Not asserted but assumed: at least three vertices | 148 | // Not asserted but assumed: at least three vertices |
146 | for (int i=0; i<vertices.Count-1; i++) { | 149 | for (int i = 0; i < vertices.Count - 1; i++) |
147 | Simplex s=new Simplex(vertices[i], vertices[i+1]); | 150 | { |
151 | Simplex s = new Simplex(vertices[i], vertices[i + 1]); | ||
148 | result.Add(s); | 152 | result.Add(s); |
149 | } | 153 | } |
150 | Simplex s1=new Simplex(vertices[vertices.Count-1], vertices[0]); | 154 | Simplex s1 = new Simplex(vertices[vertices.Count - 1], vertices[0]); |
151 | result.Add(s1); | 155 | result.Add(s1); |
152 | 156 | ||
153 | if (holeVertices.Count==0) | 157 | if (holeVertices.Count == 0) |
154 | return result; | 158 | return result; |
155 | 159 | ||
156 | // Same here. At least three vertices in hole assumed | 160 | // Same here. At least three vertices in hole assumed |
@@ -159,19 +163,19 @@ namespace OpenSim.Region.Physics.Meshing | |||
159 | Simplex s = new Simplex(holeVertices[i], holeVertices[i + 1]); | 163 | Simplex s = new Simplex(holeVertices[i], holeVertices[i + 1]); |
160 | result.Add(s); | 164 | result.Add(s); |
161 | } | 165 | } |
162 | 166 | ||
163 | s1 = new Simplex(holeVertices[holeVertices.Count - 1], holeVertices[0]); | 167 | s1 = new Simplex(holeVertices[holeVertices.Count - 1], holeVertices[0]); |
164 | result.Add(s1); | 168 | result.Add(s1); |
165 | return result; | 169 | return result; |
166 | } | 170 | } |
167 | 171 | ||
168 | bool InsertVertex(Vertex v, int iAfter) | 172 | private bool InsertVertex(Vertex v, int iAfter) |
169 | { | 173 | { |
170 | vertices.Insert(iAfter + 1, v); | 174 | vertices.Insert(iAfter + 1, v); |
171 | return true; | 175 | return true; |
172 | } | 176 | } |
173 | 177 | ||
174 | Vertex getNextVertex(Vertex currentVertex) | 178 | private Vertex getNextVertex(Vertex currentVertex) |
175 | { | 179 | { |
176 | int iCurrentIndex; | 180 | int iCurrentIndex; |
177 | iCurrentIndex = vertices.IndexOf(currentVertex); | 181 | iCurrentIndex = vertices.IndexOf(currentVertex); |
@@ -185,8 +189,10 @@ namespace OpenSim.Region.Physics.Meshing | |||
185 | return vertices[iCurrentIndex]; | 189 | return vertices[iCurrentIndex]; |
186 | } | 190 | } |
187 | 191 | ||
188 | public Vertex FindVertex(Vertex vBase, float tolerance) { | 192 | public Vertex FindVertex(Vertex vBase, float tolerance) |
189 | foreach (Vertex v in vertices) { | 193 | { |
194 | foreach (Vertex v in vertices) | ||
195 | { | ||
190 | if (v.IsIdentical(vBase, tolerance)) | 196 | if (v.IsIdentical(vBase, tolerance)) |
191 | return v; | 197 | return v; |
192 | } | 198 | } |
@@ -196,32 +202,31 @@ namespace OpenSim.Region.Physics.Meshing | |||
196 | 202 | ||
197 | public void FindIntersection(Simplex s, ref Vertex Intersection, ref Vertex nextVertex) | 203 | public void FindIntersection(Simplex s, ref Vertex Intersection, ref Vertex nextVertex) |
198 | { | 204 | { |
199 | Vertex bestIntersection=null; | 205 | Vertex bestIntersection = null; |
200 | float distToV1=Single.PositiveInfinity; | 206 | float distToV1 = Single.PositiveInfinity; |
201 | Simplex bestIntersectingSimplex=null; | 207 | Simplex bestIntersectingSimplex = null; |
202 | 208 | ||
203 | List<Simplex> simple = buildSimplexList(); | 209 | List<Simplex> simple = buildSimplexList(); |
204 | foreach (Simplex sTest in simple) | 210 | foreach (Simplex sTest in simple) |
205 | { | 211 | { |
206 | Manager.PhysicsVector vvTemp = Simplex.Intersect(sTest, s, -.001f, -.001f, 0.999f, .999f); | 212 | PhysicsVector vvTemp = Simplex.Intersect(sTest, s, -.001f, -.001f, 0.999f, .999f); |
207 | 213 | ||
208 | Vertex vTemp=null; | 214 | Vertex vTemp = null; |
209 | if (vvTemp != null) | 215 | if (vvTemp != null) |
210 | vTemp = new Vertex(vvTemp); | 216 | vTemp = new Vertex(vvTemp); |
211 | 217 | ||
212 | if (vTemp!=null) { | 218 | if (vTemp != null) |
213 | 219 | { | |
214 | Manager.PhysicsVector diff=(s.v1-vTemp); | 220 | PhysicsVector diff = (s.v1 - vTemp); |
215 | float distTemp=diff.length(); | 221 | float distTemp = diff.length(); |
216 | 222 | ||
217 | if (bestIntersection==null || distTemp<distToV1) { | 223 | if (bestIntersection == null || distTemp < distToV1) |
218 | bestIntersection=vTemp; | 224 | { |
219 | distToV1=distTemp; | 225 | bestIntersection = vTemp; |
226 | distToV1 = distTemp; | ||
220 | bestIntersectingSimplex = sTest; | 227 | bestIntersectingSimplex = sTest; |
221 | } | 228 | } |
222 | |||
223 | } // end if vTemp | 229 | } // end if vTemp |
224 | |||
225 | } // end foreach | 230 | } // end foreach |
226 | 231 | ||
227 | Intersection = bestIntersection; | 232 | Intersection = bestIntersection; |
@@ -234,7 +239,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
234 | 239 | ||
235 | public static SimpleHull SubtractHull(SimpleHull baseHull, SimpleHull otherHull) | 240 | public static SimpleHull SubtractHull(SimpleHull baseHull, SimpleHull otherHull) |
236 | { | 241 | { |
237 | |||
238 | SimpleHull baseHullClone = baseHull.Clone(); | 242 | SimpleHull baseHullClone = baseHull.Clone(); |
239 | SimpleHull otherHullClone = otherHull.Clone(); | 243 | SimpleHull otherHullClone = otherHull.Clone(); |
240 | bool intersects = false; | 244 | bool intersects = false; |
@@ -249,15 +253,16 @@ namespace OpenSim.Region.Physics.Meshing | |||
249 | // Insert into baseHull | 253 | // Insert into baseHull |
250 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) | 254 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) |
251 | { | 255 | { |
252 | int iBaseNext = (iBase + 1) % baseHullClone.vertices.Count; | 256 | int iBaseNext = (iBase + 1)%baseHullClone.vertices.Count; |
253 | Simplex sBase = new Simplex(baseHullClone.vertices[iBase], baseHullClone.vertices[iBaseNext]); | 257 | Simplex sBase = new Simplex(baseHullClone.vertices[iBase], baseHullClone.vertices[iBaseNext]); |
254 | 258 | ||
255 | for (iOther = 0; iOther < otherHullClone.vertices.Count; iOther++) | 259 | for (iOther = 0; iOther < otherHullClone.vertices.Count; iOther++) |
256 | { | 260 | { |
257 | int iOtherNext = (iOther + 1) % otherHullClone.vertices.Count; | 261 | int iOtherNext = (iOther + 1)%otherHullClone.vertices.Count; |
258 | Simplex sOther = new Simplex(otherHullClone.vertices[iOther], otherHullClone.vertices[iOtherNext]); | 262 | Simplex sOther = |
263 | new Simplex(otherHullClone.vertices[iOther], otherHullClone.vertices[iOtherNext]); | ||
259 | 264 | ||
260 | Manager.PhysicsVector intersect = Simplex.Intersect(sBase, sOther, 0.001f, -.001f, 0.999f, 1.001f); | 265 | PhysicsVector intersect = Simplex.Intersect(sBase, sOther, 0.001f, -.001f, 0.999f, 1.001f); |
261 | if (intersect != null) | 266 | if (intersect != null) |
262 | { | 267 | { |
263 | Vertex vIntersect = new Vertex(intersect); | 268 | Vertex vIntersect = new Vertex(intersect); |
@@ -278,15 +283,15 @@ namespace OpenSim.Region.Physics.Meshing | |||
278 | // Insert into otherHull | 283 | // Insert into otherHull |
279 | for (iOther = 0; iOther < otherHullClone.vertices.Count; iOther++) | 284 | for (iOther = 0; iOther < otherHullClone.vertices.Count; iOther++) |
280 | { | 285 | { |
281 | int iOtherNext = (iOther + 1) % otherHullClone.vertices.Count; | 286 | int iOtherNext = (iOther + 1)%otherHullClone.vertices.Count; |
282 | Simplex sOther = new Simplex(otherHullClone.vertices[iOther], otherHullClone.vertices[iOtherNext]); | 287 | Simplex sOther = new Simplex(otherHullClone.vertices[iOther], otherHullClone.vertices[iOtherNext]); |
283 | 288 | ||
284 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) | 289 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) |
285 | { | 290 | { |
286 | int iBaseNext = (iBase + 1) % baseHullClone.vertices.Count; | 291 | int iBaseNext = (iBase + 1)%baseHullClone.vertices.Count; |
287 | Simplex sBase = new Simplex(baseHullClone.vertices[iBase], baseHullClone.vertices[iBaseNext]); | 292 | Simplex sBase = new Simplex(baseHullClone.vertices[iBase], baseHullClone.vertices[iBaseNext]); |
288 | 293 | ||
289 | Manager.PhysicsVector intersect = Simplex.Intersect(sBase, sOther, -.001f, 0.001f, 1.001f, 0.999f); | 294 | PhysicsVector intersect = Simplex.Intersect(sBase, sOther, -.001f, 0.001f, 1.001f, 0.999f); |
290 | if (intersect != null) | 295 | if (intersect != null) |
291 | { | 296 | { |
292 | Vertex vIntersect = new Vertex(intersect); | 297 | Vertex vIntersect = new Vertex(intersect); |
@@ -321,8 +326,8 @@ namespace OpenSim.Region.Physics.Meshing | |||
321 | int iBase; | 326 | int iBase; |
322 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) | 327 | for (iBase = 0; iBase < baseHullClone.vertices.Count; iBase++) |
323 | { | 328 | { |
324 | int iBaseNext = (iBase + 1) % baseHullClone.vertices.Count; | 329 | int iBaseNext = (iBase + 1)%baseHullClone.vertices.Count; |
325 | Vertex center = new Vertex((baseHullClone.vertices[iBase] + baseHullClone.vertices[iBaseNext]) / 2.0f); | 330 | Vertex center = new Vertex((baseHullClone.vertices[iBase] + baseHullClone.vertices[iBaseNext])/2.0f); |
326 | bool isOutside = !otherHullClone.IsPointIn(center); | 331 | bool isOutside = !otherHullClone.IsPointIn(center); |
327 | if (isOutside) | 332 | if (isOutside) |
328 | { | 333 | { |
@@ -334,7 +339,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
334 | 339 | ||
335 | 340 | ||
336 | if (baseStartVertex == null) // i.e. no simplex fulfilled the "outside" condition. | 341 | if (baseStartVertex == null) // i.e. no simplex fulfilled the "outside" condition. |
337 | // In otherwords, subtractHull completely embraces baseHull | 342 | // In otherwords, subtractHull completely embraces baseHull |
338 | { | 343 | { |
339 | return result; | 344 | return result; |
340 | } | 345 | } |
@@ -369,7 +374,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
369 | 374 | ||
370 | if (nextVertex != null) // A node that represents an intersection | 375 | if (nextVertex != null) // A node that represents an intersection |
371 | { | 376 | { |
372 | V1 = nextVertex; // Needed to find the next vertex on the other hull | 377 | V1 = nextVertex; // Needed to find the next vertex on the other hull |
373 | onBase = !onBase; | 378 | onBase = !onBase; |
374 | } | 379 | } |
375 | 380 | ||
@@ -385,7 +390,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
385 | MainLog.Instance.Debug("The resulting Hull is:\n{1}", 0, result.ToString()); | 390 | MainLog.Instance.Debug("The resulting Hull is:\n{1}", 0, result.ToString()); |
386 | 391 | ||
387 | return result; | 392 | return result; |
388 | |||
389 | } | 393 | } |
390 | } | 394 | } |
391 | } | 395 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/Meshing/Simplex.cs b/OpenSim/Region/Physics/Meshing/Simplex.cs index 98e693a..8fba2bf 100644 --- a/OpenSim/Region/Physics/Meshing/Simplex.cs +++ b/OpenSim/Region/Physics/Meshing/Simplex.cs | |||
@@ -27,8 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using System.Text; | ||
32 | using OpenSim.Region.Physics.Manager; | 30 | using OpenSim.Region.Physics.Manager; |
33 | 31 | ||
34 | namespace OpenSim.Region.Physics.Meshing | 32 | namespace OpenSim.Region.Physics.Meshing |
@@ -49,7 +47,6 @@ namespace OpenSim.Region.Physics.Meshing | |||
49 | 47 | ||
50 | public int CompareTo(Simplex other) | 48 | public int CompareTo(Simplex other) |
51 | { | 49 | { |
52 | |||
53 | Vertex lv1, lv2, ov1, ov2, temp; | 50 | Vertex lv1, lv2, ov1, ov2, temp; |
54 | 51 | ||
55 | lv1 = v1; | 52 | lv1 = v1; |
@@ -92,8 +89,9 @@ namespace OpenSim.Region.Physics.Meshing | |||
92 | return 0; | 89 | return 0; |
93 | } | 90 | } |
94 | 91 | ||
95 | private static void intersectParameter(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2, PhysicsVector r2, ref float lambda, ref float mu) | 92 | private static void intersectParameter(PhysicsVector p1, PhysicsVector r1, PhysicsVector p2, PhysicsVector r2, |
96 | { | 93 | ref float lambda, ref float mu) |
94 | { | ||
97 | // Intersects two straights | 95 | // Intersects two straights |
98 | // p1, p2, points on the straight | 96 | // p1, p2, points on the straight |
99 | // r1, r2, directional vectors of the straight. Not necessarily of length 1! | 97 | // r1, r2, directional vectors of the straight. Not necessarily of length 1! |
@@ -112,27 +110,28 @@ namespace OpenSim.Region.Physics.Meshing | |||
112 | float p2x = p2.X; | 110 | float p2x = p2.X; |
113 | float p2y = p2.Y; | 111 | float p2y = p2.Y; |
114 | 112 | ||
115 | float z1=-p2x * r2y + p1x * r2y + (p2y - p1y) * r2x; | 113 | float z1 = -p2x*r2y + p1x*r2y + (p2y - p1y)*r2x; |
116 | float z2=-p2x * r1y + p1x * r1y + (p2y - p1y) * r1x; | 114 | float z2 = -p2x*r1y + p1x*r1y + (p2y - p1y)*r1x; |
117 | 115 | ||
118 | if (denom == 0.0f) // Means the straights are parallel. Either no intersection or an infinite number of them | 116 | if (denom == 0.0f) // Means the straights are parallel. Either no intersection or an infinite number of them |
119 | { | 117 | { |
120 | if (z1==0.0f) {// Means they are identical -> many, many intersections | 118 | if (z1 == 0.0f) |
119 | { | ||
120 | // Means they are identical -> many, many intersections | ||
121 | lambda = Single.NaN; | 121 | lambda = Single.NaN; |
122 | mu = Single.NaN; | 122 | mu = Single.NaN; |
123 | } else { | 123 | } |
124 | else | ||
125 | { | ||
124 | lambda = Single.PositiveInfinity; | 126 | lambda = Single.PositiveInfinity; |
125 | mu = Single.PositiveInfinity; | 127 | mu = Single.PositiveInfinity; |
126 | } | 128 | } |
127 | return; | 129 | return; |
128 | |||
129 | } | 130 | } |
130 | 131 | ||
131 | 132 | ||
132 | 133 | lambda = z1/denom; | |
133 | lambda = z1 / denom; | 134 | mu = z2/denom; |
134 | mu = z2 / denom; | ||
135 | |||
136 | } | 135 | } |
137 | 136 | ||
138 | 137 | ||
@@ -145,12 +144,12 @@ namespace OpenSim.Region.Physics.Meshing | |||
145 | // upperBorder2 : 1.0 | 144 | // upperBorder2 : 1.0 |
146 | // Set these to values near the given parameters (e.g. 0.001 instead of 1 to exclude simplex starts safely, or to -0.001 to include them safely) | 145 | // Set these to values near the given parameters (e.g. 0.001 instead of 1 to exclude simplex starts safely, or to -0.001 to include them safely) |
147 | public static PhysicsVector Intersect( | 146 | public static PhysicsVector Intersect( |
148 | Simplex s1, | 147 | Simplex s1, |
149 | Simplex s2, | 148 | Simplex s2, |
150 | float lowerBorder1, | 149 | float lowerBorder1, |
151 | float lowerBorder2, | 150 | float lowerBorder2, |
152 | float upperBorder1, | 151 | float upperBorder1, |
153 | float upperBorder2) | 152 | float upperBorder2) |
154 | { | 153 | { |
155 | PhysicsVector firstSimplexDirection = s1.v2 - s1.v1; | 154 | PhysicsVector firstSimplexDirection = s1.v2 - s1.v1; |
156 | PhysicsVector secondSimplexDirection = s2.v2 - s2.v1; | 155 | PhysicsVector secondSimplexDirection = s2.v2 - s2.v1; |
@@ -181,8 +180,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
181 | if (mu > upperBorder2) // outside simplex 2 | 180 | if (mu > upperBorder2) // outside simplex 2 |
182 | return null; | 181 | return null; |
183 | 182 | ||
184 | return s1.v1 + lambda * firstSimplexDirection; | 183 | return s1.v1 + lambda*firstSimplexDirection; |
185 | |||
186 | } | 184 | } |
187 | 185 | ||
188 | // Intersects the simplex with a ray. The ray is defined as all p=origin + lambda*direction | 186 | // Intersects the simplex with a ray. The ray is defined as all p=origin + lambda*direction |
@@ -212,15 +210,12 @@ namespace OpenSim.Region.Physics.Meshing | |||
212 | return null; | 210 | return null; |
213 | 211 | ||
214 | if (lambda == 1.0 && !bEndsIncluded) | 212 | if (lambda == 1.0 && !bEndsIncluded) |
215 | return null; // The end of the simplices are not included | 213 | return null; // The end of the simplices are not included |
216 | 214 | ||
217 | if (lambda < 0.0f) // we're before v1; | 215 | if (lambda < 0.0f) // we're before v1; |
218 | return null; | 216 | return null; |
219 | 217 | ||
220 | return this.v1 + lambda * simplexDirection; | 218 | return v1 + lambda*simplexDirection; |
221 | |||
222 | } | 219 | } |
223 | |||
224 | |||
225 | } | 220 | } |
226 | } \ No newline at end of file | 221 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/OdePlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/OdePlugin/AssemblyInfo.cs index 1e5713b..1ea5458 100644 --- a/OpenSim/Region/Physics/OdePlugin/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/OdePlugin/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index 9676db4..a118e7c 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -27,11 +27,9 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using Axiom.Math; | 30 | using Axiom.Math; |
32 | using Ode.NET; | 31 | using Ode.NET; |
33 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
36 | 34 | ||
37 | namespace OpenSim.Region.Physics.OdePlugin | 35 | namespace OpenSim.Region.Physics.OdePlugin |
@@ -87,7 +85,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
87 | _acceleration = new PhysicsVector(); | 85 | _acceleration = new PhysicsVector(); |
88 | _parent_scene = parent_scene; | 86 | _parent_scene = parent_scene; |
89 | 87 | ||
90 | m_StandUpRotation = new d.Matrix3(0.8184158f, -0.5744568f, -0.0139677f, 0.5744615f, 0.8185215f, -0.004074608f, 0.01377355f, -0.004689182f, 0.9998941f); | 88 | m_StandUpRotation = |
89 | new d.Matrix3(0.8184158f, -0.5744568f, -0.0139677f, 0.5744615f, 0.8185215f, -0.004074608f, 0.01377355f, | ||
90 | -0.004689182f, 0.9998941f); | ||
91 | 91 | ||
92 | for (int i = 0; i < 11; i++) | 92 | for (int i = 0; i < 11; i++) |
93 | { | 93 | { |
@@ -105,12 +105,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
105 | d.GeomSetBody(Shell, Body); | 105 | d.GeomSetBody(Shell, Body); |
106 | 106 | ||
107 | 107 | ||
108 | |||
109 | |||
110 | d.BodySetRotation(Body, ref m_StandUpRotation); | 108 | d.BodySetRotation(Body, ref m_StandUpRotation); |
111 | 109 | ||
112 | 110 | ||
113 | |||
114 | //Amotor = d.JointCreateAMotor(parent_scene.world, IntPtr.Zero); | 111 | //Amotor = d.JointCreateAMotor(parent_scene.world, IntPtr.Zero); |
115 | //d.JointAttach(Amotor, Body, IntPtr.Zero); | 112 | //d.JointAttach(Amotor, Body, IntPtr.Zero); |
116 | //d.JointSetAMotorMode(Amotor, dAMotorEuler); | 113 | //d.JointSetAMotorMode(Amotor, dAMotorEuler); |
@@ -124,45 +121,47 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
124 | //d.JointSetAMotorParam(Amotor, 0, -0); | 121 | //d.JointSetAMotorParam(Amotor, 0, -0); |
125 | //d.JointSetAMotorParam(Amotor, 0x200, -0); | 122 | //d.JointSetAMotorParam(Amotor, 0x200, -0); |
126 | //d.JointSetAMotorParam(Amotor, 0x100, -0); | 123 | //d.JointSetAMotorParam(Amotor, 0x100, -0); |
127 | // d.JointSetAMotorParam(Amotor, 0, 0); | 124 | // d.JointSetAMotorParam(Amotor, 0, 0); |
128 | // d.JointSetAMotorParam(Amotor, 3, 0); | 125 | // d.JointSetAMotorParam(Amotor, 3, 0); |
129 | // d.JointSetAMotorParam(Amotor, 2, 0); | 126 | // d.JointSetAMotorParam(Amotor, 2, 0); |
130 | |||
131 | |||
132 | |||
133 | } | 127 | } |
134 | m_name = avName; | 128 | m_name = avName; |
135 | parent_scene.geom_name_map[Shell] = avName; | 129 | parent_scene.geom_name_map[Shell] = avName; |
136 | parent_scene.actor_name_map[Shell] = (PhysicsActor)this; | 130 | parent_scene.actor_name_map[Shell] = (PhysicsActor) this; |
137 | } | 131 | } |
132 | |||
138 | public override int PhysicsActorType | 133 | public override int PhysicsActorType |
139 | { | 134 | { |
140 | get { return (int)ActorTypes.Agent; } | 135 | get { return (int) ActorTypes.Agent; } |
141 | set { return; } | 136 | set { return; } |
142 | } | 137 | } |
138 | |||
143 | public override bool SetAlwaysRun | 139 | public override bool SetAlwaysRun |
144 | { | 140 | { |
145 | get { return m_alwaysRun; } | 141 | get { return m_alwaysRun; } |
146 | set { m_alwaysRun = value; } | 142 | set { m_alwaysRun = value; } |
147 | } | 143 | } |
144 | |||
148 | public override bool IsPhysical | 145 | public override bool IsPhysical |
149 | { | 146 | { |
150 | get { return false; } | 147 | get { return false; } |
151 | set { return; } | 148 | set { return; } |
152 | } | 149 | } |
150 | |||
153 | public override bool ThrottleUpdates | 151 | public override bool ThrottleUpdates |
154 | { | 152 | { |
155 | get { return false; } | 153 | get { return false; } |
156 | set { return; } | 154 | set { return; } |
157 | } | 155 | } |
156 | |||
158 | public override bool Flying | 157 | public override bool Flying |
159 | { | 158 | { |
160 | get { return flying; } | 159 | get { return flying; } |
161 | set { flying = value; } | 160 | set { flying = value; } |
162 | } | 161 | } |
162 | |||
163 | public override bool IsColliding | 163 | public override bool IsColliding |
164 | { | 164 | { |
165 | |||
166 | get { return m_iscolliding; } | 165 | get { return m_iscolliding; } |
167 | set | 166 | set |
168 | { | 167 | { |
@@ -193,24 +192,22 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
193 | 192 | ||
194 | // Equal truecounts and false counts means we're colliding with something. | 193 | // Equal truecounts and false counts means we're colliding with something. |
195 | 194 | ||
196 | if (falsecount > 1.2 * truecount) | 195 | if (falsecount > 1.2*truecount) |
197 | { | 196 | { |
198 | m_iscolliding = false; | 197 | m_iscolliding = false; |
199 | } | 198 | } |
200 | else | 199 | else |
201 | { | 200 | { |
202 | m_iscolliding = true; | 201 | m_iscolliding = true; |
203 | |||
204 | |||
205 | } | 202 | } |
206 | if (m_wascolliding != m_iscolliding) | 203 | if (m_wascolliding != m_iscolliding) |
207 | { | 204 | { |
208 | //base.SendCollisionUpdate(new CollisionEventUpdate()); | 205 | //base.SendCollisionUpdate(new CollisionEventUpdate()); |
209 | |||
210 | } | 206 | } |
211 | m_wascolliding = m_iscolliding; | 207 | m_wascolliding = m_iscolliding; |
212 | } | 208 | } |
213 | } | 209 | } |
210 | |||
214 | public override bool CollidingGround | 211 | public override bool CollidingGround |
215 | { | 212 | { |
216 | get { return m_iscollidingGround; } | 213 | get { return m_iscollidingGround; } |
@@ -243,7 +240,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
243 | 240 | ||
244 | // Equal truecounts and false counts means we're colliding with something. | 241 | // Equal truecounts and false counts means we're colliding with something. |
245 | 242 | ||
246 | if (falsecount > 1.2 * truecount) | 243 | if (falsecount > 1.2*truecount) |
247 | { | 244 | { |
248 | m_iscollidingGround = false; | 245 | m_iscollidingGround = false; |
249 | } | 246 | } |
@@ -258,10 +255,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
258 | m_wascollidingGround = m_iscollidingGround; | 255 | m_wascollidingGround = m_iscollidingGround; |
259 | } | 256 | } |
260 | } | 257 | } |
258 | |||
261 | public override bool CollidingObj | 259 | public override bool CollidingObj |
262 | { | 260 | { |
263 | get { return m_iscollidingObj; } | 261 | get { return m_iscollidingObj; } |
264 | set { | 262 | set |
263 | { | ||
265 | m_iscollidingObj = value; | 264 | m_iscollidingObj = value; |
266 | if (value) | 265 | if (value) |
267 | m_pidControllerActive = false; | 266 | m_pidControllerActive = false; |
@@ -269,10 +268,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
269 | m_pidControllerActive = true; | 268 | m_pidControllerActive = true; |
270 | } | 269 | } |
271 | } | 270 | } |
271 | |||
272 | public void SetPidStatus(bool status) | 272 | public void SetPidStatus(bool status) |
273 | { | 273 | { |
274 | m_pidControllerActive = status; | 274 | m_pidControllerActive = status; |
275 | } | 275 | } |
276 | |||
276 | public override PhysicsVector Position | 277 | public override PhysicsVector Position |
277 | { | 278 | { |
278 | get { return _position; } | 279 | get { return _position; } |
@@ -285,14 +286,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
285 | } | 286 | } |
286 | } | 287 | } |
287 | } | 288 | } |
289 | |||
288 | public override PhysicsVector RotationalVelocity | 290 | public override PhysicsVector RotationalVelocity |
289 | { | 291 | { |
290 | get { return m_rotationalVelocity; } | 292 | get { return m_rotationalVelocity; } |
291 | set { m_rotationalVelocity = value; } | 293 | set { m_rotationalVelocity = value; } |
292 | } | 294 | } |
295 | |||
293 | public override PhysicsVector Size | 296 | public override PhysicsVector Size |
294 | { | 297 | { |
295 | get { return new PhysicsVector(CAPSULE_RADIUS * 2, CAPSULE_RADIUS * 2, CAPSULE_LENGTH); } | 298 | get { return new PhysicsVector(CAPSULE_RADIUS*2, CAPSULE_RADIUS*2, CAPSULE_LENGTH); } |
296 | set | 299 | set |
297 | { | 300 | { |
298 | m_pidControllerActive = true; | 301 | m_pidControllerActive = true; |
@@ -303,7 +306,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
303 | float capsuleradius = CAPSULE_RADIUS; | 306 | float capsuleradius = CAPSULE_RADIUS; |
304 | capsuleradius = 0.2f; | 307 | capsuleradius = 0.2f; |
305 | 308 | ||
306 | CAPSULE_LENGTH = (SetSize.Z - ((SetSize.Z * 0.43f))); // subtract 43% of the size | 309 | CAPSULE_LENGTH = (SetSize.Z - ((SetSize.Z*0.43f))); // subtract 43% of the size |
307 | d.BodyDestroy(Body); | 310 | d.BodyDestroy(Body); |
308 | d.GeomDestroy(Shell); | 311 | d.GeomDestroy(Shell); |
309 | //MainLog.Instance.Verbose("PHYSICS", "Set Avatar Height To: " + (CAPSULE_RADIUS + CAPSULE_LENGTH)); | 312 | //MainLog.Instance.Verbose("PHYSICS", "Set Avatar Height To: " + (CAPSULE_RADIUS + CAPSULE_LENGTH)); |
@@ -311,25 +314,27 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
311 | d.MassSetCapsule(out ShellMass, m_density, 3, CAPSULE_RADIUS, CAPSULE_LENGTH); | 314 | d.MassSetCapsule(out ShellMass, m_density, 3, CAPSULE_RADIUS, CAPSULE_LENGTH); |
312 | Body = d.BodyCreate(_parent_scene.world); | 315 | Body = d.BodyCreate(_parent_scene.world); |
313 | d.BodySetMass(Body, ref ShellMass); | 316 | d.BodySetMass(Body, ref ShellMass); |
314 | d.BodySetPosition(Body, _position.X, _position.Y, _position.Z + Math.Abs(CAPSULE_LENGTH - prevCapsule)); | 317 | d.BodySetPosition(Body, _position.X, _position.Y, |
318 | _position.Z + Math.Abs(CAPSULE_LENGTH - prevCapsule)); | ||
315 | d.GeomSetBody(Shell, Body); | 319 | d.GeomSetBody(Shell, Body); |
316 | } | 320 | } |
317 | _parent_scene.geom_name_map[Shell] = m_name; | 321 | _parent_scene.geom_name_map[Shell] = m_name; |
318 | _parent_scene.actor_name_map[Shell] = (PhysicsActor)this; | 322 | _parent_scene.actor_name_map[Shell] = (PhysicsActor) this; |
319 | } | 323 | } |
320 | } | 324 | } |
325 | |||
321 | public override float Mass | 326 | public override float Mass |
322 | { | 327 | { |
323 | get { | 328 | get |
324 | 329 | { | |
325 | float AVvolume = (float)(Math.PI * Math.Pow(CAPSULE_RADIUS, 2) * CAPSULE_LENGTH); | 330 | float AVvolume = (float) (Math.PI*Math.Pow(CAPSULE_RADIUS, 2)*CAPSULE_LENGTH); |
326 | return m_density * AVvolume; | 331 | return m_density*AVvolume; |
327 | } | 332 | } |
328 | } | 333 | } |
329 | 334 | ||
330 | public override PhysicsVector Force | 335 | public override PhysicsVector Force |
331 | { | 336 | { |
332 | get { return new PhysicsVector(_target_velocity.X,_target_velocity.Y,_target_velocity.Z); } | 337 | get { return new PhysicsVector(_target_velocity.X, _target_velocity.Y, _target_velocity.Z); } |
333 | } | 338 | } |
334 | 339 | ||
335 | public override PhysicsVector CenterOfMass | 340 | public override PhysicsVector CenterOfMass |
@@ -344,18 +349,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
344 | 349 | ||
345 | public override PrimitiveBaseShape Shape | 350 | public override PrimitiveBaseShape Shape |
346 | { | 351 | { |
347 | set | 352 | set { return; } |
348 | { | ||
349 | return; | ||
350 | } | ||
351 | } | 353 | } |
352 | 354 | ||
353 | public override PhysicsVector Velocity | 355 | public override PhysicsVector Velocity |
354 | { | 356 | { |
355 | get { return _velocity; } | 357 | get { return _velocity; } |
356 | set { | 358 | set |
359 | { | ||
357 | m_pidControllerActive = true; | 360 | m_pidControllerActive = true; |
358 | _target_velocity = value; } | 361 | _target_velocity = value; |
362 | } | ||
359 | } | 363 | } |
360 | 364 | ||
361 | public override bool Kinematic | 365 | public override bool Kinematic |
@@ -390,6 +394,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
390 | 394 | ||
391 | //m_lastUpdateSent = false; | 395 | //m_lastUpdateSent = false; |
392 | } | 396 | } |
397 | |||
393 | public void doForce(PhysicsVector force) | 398 | public void doForce(PhysicsVector force) |
394 | { | 399 | { |
395 | if (!collidelock) | 400 | if (!collidelock) |
@@ -413,13 +418,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
413 | //d.BodyAddForceAtRelPos(Body, 0.0f, 0.0f, -servo, 0.0f, 0.0f, -1.0f); | 418 | //d.BodyAddForceAtRelPos(Body, 0.0f, 0.0f, -servo, 0.0f, 0.0f, -1.0f); |
414 | 419 | ||
415 | //m_lastUpdateSent = false; | 420 | //m_lastUpdateSent = false; |
416 | |||
417 | } | 421 | } |
418 | |||
419 | } | 422 | } |
423 | |||
420 | public override void SetMomentum(PhysicsVector momentum) | 424 | public override void SetMomentum(PhysicsVector momentum) |
421 | { | 425 | { |
422 | |||
423 | } | 426 | } |
424 | 427 | ||
425 | public void Move(float timeStep) | 428 | public void Move(float timeStep) |
@@ -442,7 +445,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
442 | else | 445 | else |
443 | { | 446 | { |
444 | movementdivisor = 0.8f; | 447 | movementdivisor = 0.8f; |
445 | |||
446 | } | 448 | } |
447 | 449 | ||
448 | // if velocity is zero, use position control; otherwise, velocity control | 450 | // if velocity is zero, use position control; otherwise, velocity control |
@@ -457,11 +459,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
457 | if (m_pidControllerActive) | 459 | if (m_pidControllerActive) |
458 | { | 460 | { |
459 | d.Vector3 pos = d.BodyGetPosition(Body); | 461 | d.Vector3 pos = d.BodyGetPosition(Body); |
460 | vec.X = (_target_velocity.X - vel.X) * PID_D + (_zeroPosition.X - pos.X) * PID_P; | 462 | vec.X = (_target_velocity.X - vel.X)*PID_D + (_zeroPosition.X - pos.X)*PID_P; |
461 | vec.Y = (_target_velocity.Y - vel.Y) * PID_D + (_zeroPosition.Y - pos.Y) * PID_P; | 463 | vec.Y = (_target_velocity.Y - vel.Y)*PID_D + (_zeroPosition.Y - pos.Y)*PID_P; |
462 | if (flying) | 464 | if (flying) |
463 | { | 465 | { |
464 | vec.Z = (_target_velocity.Z - vel.Z) * (PID_D + 5100) + (_zeroPosition.Z - pos.Z) * PID_P; | 466 | vec.Z = (_target_velocity.Z - vel.Z)*(PID_D + 5100) + (_zeroPosition.Z - pos.Z)*PID_P; |
465 | } | 467 | } |
466 | } | 468 | } |
467 | //PidStatus = true; | 469 | //PidStatus = true; |
@@ -472,21 +474,20 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
472 | _zeroFlag = false; | 474 | _zeroFlag = false; |
473 | if (m_iscolliding || flying) | 475 | if (m_iscolliding || flying) |
474 | { | 476 | { |
475 | 477 | vec.X = ((_target_velocity.X/movementdivisor) - vel.X)*PID_D; | |
476 | vec.X = ((_target_velocity.X / movementdivisor) - vel.X) * PID_D; | 478 | vec.Y = ((_target_velocity.Y/movementdivisor) - vel.Y)*PID_D; |
477 | vec.Y = ((_target_velocity.Y / movementdivisor) - vel.Y) * PID_D; | ||
478 | } | 479 | } |
479 | if (m_iscolliding && !flying && _target_velocity.Z > 0.0f) | 480 | if (m_iscolliding && !flying && _target_velocity.Z > 0.0f) |
480 | { | 481 | { |
481 | d.Vector3 pos = d.BodyGetPosition(Body); | 482 | d.Vector3 pos = d.BodyGetPosition(Body); |
482 | vec.Z = (_target_velocity.Z - vel.Z) * PID_D + (_zeroPosition.Z - pos.Z) * PID_P; | 483 | vec.Z = (_target_velocity.Z - vel.Z)*PID_D + (_zeroPosition.Z - pos.Z)*PID_P; |
483 | if (_target_velocity.X > 0) | 484 | if (_target_velocity.X > 0) |
484 | { | 485 | { |
485 | vec.X = ((_target_velocity.X - vel.X) / 1.2f) * PID_D; | 486 | vec.X = ((_target_velocity.X - vel.X)/1.2f)*PID_D; |
486 | } | 487 | } |
487 | if (_target_velocity.Y > 0) | 488 | if (_target_velocity.Y > 0) |
488 | { | 489 | { |
489 | vec.Y = ((_target_velocity.Y - vel.Y) / 1.2f) * PID_D; | 490 | vec.Y = ((_target_velocity.Y - vel.Y)/1.2f)*PID_D; |
490 | } | 491 | } |
491 | } | 492 | } |
492 | else if (!m_iscolliding && !flying) | 493 | else if (!m_iscolliding && !flying) |
@@ -494,19 +495,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
494 | d.Vector3 pos = d.BodyGetPosition(Body); | 495 | d.Vector3 pos = d.BodyGetPosition(Body); |
495 | if (_target_velocity.X > 0) | 496 | if (_target_velocity.X > 0) |
496 | { | 497 | { |
497 | vec.X = ((_target_velocity.X - vel.X) / 1.2f) * PID_D; | 498 | vec.X = ((_target_velocity.X - vel.X)/1.2f)*PID_D; |
498 | } | 499 | } |
499 | if (_target_velocity.Y > 0) | 500 | if (_target_velocity.Y > 0) |
500 | { | 501 | { |
501 | vec.Y = ((_target_velocity.Y - vel.Y) / 1.2f) * PID_D; | 502 | vec.Y = ((_target_velocity.Y - vel.Y)/1.2f)*PID_D; |
502 | } | 503 | } |
503 | |||
504 | } | 504 | } |
505 | 505 | ||
506 | 506 | ||
507 | if (flying) | 507 | if (flying) |
508 | { | 508 | { |
509 | vec.Z = (_target_velocity.Z - vel.Z) * (PID_D + 5100); | 509 | vec.Z = (_target_velocity.Z - vel.Z)*(PID_D + 5100); |
510 | } | 510 | } |
511 | } | 511 | } |
512 | if (flying) | 512 | if (flying) |
@@ -546,13 +546,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
546 | int[] arrayitem = _parent_scene.calculateSpaceArrayItemFromPos(_position); | 546 | int[] arrayitem = _parent_scene.calculateSpaceArrayItemFromPos(_position); |
547 | //if (primScenAvatarIn == "0") | 547 | //if (primScenAvatarIn == "0") |
548 | //{ | 548 | //{ |
549 | //MainLog.Instance.Verbose("Physics", "Avatar " + m_name + " in space with no prim. Arr:':" + arrayitem[0].ToString() + "," + arrayitem[1].ToString()); | 549 | //MainLog.Instance.Verbose("Physics", "Avatar " + m_name + " in space with no prim. Arr:':" + arrayitem[0].ToString() + "," + arrayitem[1].ToString()); |
550 | //} | 550 | //} |
551 | //else | 551 | //else |
552 | //{ | 552 | //{ |
553 | // MainLog.Instance.Verbose("Physics", "Avatar " + m_name + " in Prim space':" + primScenAvatarIn + ". Arr:" + arrayitem[0].ToString() + "," + arrayitem[1].ToString()); | 553 | // MainLog.Instance.Verbose("Physics", "Avatar " + m_name + " in Prim space':" + primScenAvatarIn + ". Arr:" + arrayitem[0].ToString() + "," + arrayitem[1].ToString()); |
554 | //} | 554 | //} |
555 | |||
556 | } | 555 | } |
557 | } | 556 | } |
558 | else | 557 | else |
@@ -586,12 +585,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
586 | { | 585 | { |
587 | lock (OdeScene.OdeLock) | 586 | lock (OdeScene.OdeLock) |
588 | { | 587 | { |
589 | // d.JointDestroy(Amotor); | 588 | // d.JointDestroy(Amotor); |
590 | d.GeomDestroy(Shell); | 589 | d.GeomDestroy(Shell); |
591 | _parent_scene.geom_name_map.Remove(Shell); | 590 | _parent_scene.geom_name_map.Remove(Shell); |
592 | d.BodyDestroy(Body); | 591 | d.BodyDestroy(Body); |
593 | } | 592 | } |
594 | } | 593 | } |
595 | } | 594 | } |
596 | 595 | } \ No newline at end of file | |
597 | } | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 35328b8..5fef47d 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -27,16 +27,13 @@ | |||
27 | */ | 27 | */ |
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | ||
31 | using Axiom.Math; | 30 | using Axiom.Math; |
32 | using Ode.NET; | 31 | using Ode.NET; |
33 | using OpenSim.Framework; | 32 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | ||
35 | using OpenSim.Region.Physics.Manager; | 33 | using OpenSim.Region.Physics.Manager; |
36 | 34 | ||
37 | namespace OpenSim.Region.Physics.OdePlugin | 35 | namespace OpenSim.Region.Physics.OdePlugin |
38 | { | 36 | { |
39 | |||
40 | public class OdePrim : PhysicsActor | 37 | public class OdePrim : PhysicsActor |
41 | { | 38 | { |
42 | public PhysicsVector _position; | 39 | public PhysicsVector _position; |
@@ -57,7 +54,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
57 | private IMesh _mesh; | 54 | private IMesh _mesh; |
58 | private PrimitiveBaseShape _pbs; | 55 | private PrimitiveBaseShape _pbs; |
59 | private OdeScene _parent_scene; | 56 | private OdeScene _parent_scene; |
60 | public IntPtr m_targetSpace = (IntPtr)0; | 57 | public IntPtr m_targetSpace = (IntPtr) 0; |
61 | public IntPtr prim_geom; | 58 | public IntPtr prim_geom; |
62 | public IntPtr _triMeshData; | 59 | public IntPtr _triMeshData; |
63 | private bool iscolliding = false; | 60 | private bool iscolliding = false; |
@@ -65,18 +62,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
65 | private bool m_throttleUpdates = false; | 62 | private bool m_throttleUpdates = false; |
66 | private int throttleCounter = 0; | 63 | private int throttleCounter = 0; |
67 | public bool outofBounds = false; | 64 | public bool outofBounds = false; |
68 | private float m_density = 10.000006836f;// Aluminum g/cm3; | 65 | private float m_density = 10.000006836f; // Aluminum g/cm3; |
69 | 66 | ||
70 | |||
71 | 67 | ||
72 | public bool _zeroFlag = false; | 68 | public bool _zeroFlag = false; |
73 | private bool m_lastUpdateSent = false; | 69 | private bool m_lastUpdateSent = false; |
74 | 70 | ||
75 | public IntPtr Body = (IntPtr)0; | 71 | public IntPtr Body = (IntPtr) 0; |
76 | private String m_primName; | 72 | private String m_primName; |
77 | private PhysicsVector _target_velocity; | 73 | private PhysicsVector _target_velocity; |
78 | public d.Mass pMass; | 74 | public d.Mass pMass; |
79 | 75 | ||
80 | private int debugcounter = 0; | 76 | private int debugcounter = 0; |
81 | 77 | ||
82 | public OdePrim(String primName, OdeScene parent_scene, IntPtr targetSpace, PhysicsVector pos, PhysicsVector size, | 78 | public OdePrim(String primName, OdeScene parent_scene, IntPtr targetSpace, PhysicsVector pos, PhysicsVector size, |
@@ -123,7 +119,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
123 | // linksets *should* be in a space together.. but are not currently | 119 | // linksets *should* be in a space together.. but are not currently |
124 | if (m_isphysical) | 120 | if (m_isphysical) |
125 | m_targetSpace = _parent_scene.space; | 121 | m_targetSpace = _parent_scene.space; |
126 | |||
127 | } | 122 | } |
128 | m_primName = primName; | 123 | m_primName = primName; |
129 | 124 | ||
@@ -147,25 +142,28 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
147 | d.GeomSetQuaternion(prim_geom, ref myrot); | 142 | d.GeomSetQuaternion(prim_geom, ref myrot); |
148 | 143 | ||
149 | 144 | ||
150 | if (m_isphysical && Body == (IntPtr)0) | 145 | if (m_isphysical && Body == (IntPtr) 0) |
151 | { | 146 | { |
152 | enableBody(); | 147 | enableBody(); |
153 | } | 148 | } |
154 | parent_scene.geom_name_map[prim_geom] = primName; | 149 | parent_scene.geom_name_map[prim_geom] = primName; |
155 | parent_scene.actor_name_map[prim_geom] = (PhysicsActor)this; | 150 | parent_scene.actor_name_map[prim_geom] = (PhysicsActor) this; |
156 | // don't do .add() here; old geoms get recycled with the same hash | 151 | // don't do .add() here; old geoms get recycled with the same hash |
157 | } | 152 | } |
158 | } | 153 | } |
154 | |||
159 | public override int PhysicsActorType | 155 | public override int PhysicsActorType |
160 | { | 156 | { |
161 | get { return (int)ActorTypes.Prim; } | 157 | get { return (int) ActorTypes.Prim; } |
162 | set { return; } | 158 | set { return; } |
163 | } | 159 | } |
160 | |||
164 | public override bool SetAlwaysRun | 161 | public override bool SetAlwaysRun |
165 | { | 162 | { |
166 | get { return false; } | 163 | get { return false; } |
167 | set { return; } | 164 | set { return; } |
168 | } | 165 | } |
166 | |||
169 | public void enableBody() | 167 | public void enableBody() |
170 | { | 168 | { |
171 | // Sets the geom to a body | 169 | // Sets the geom to a body |
@@ -185,13 +183,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
185 | 183 | ||
186 | _parent_scene.addActivePrim(this); | 184 | _parent_scene.addActivePrim(this); |
187 | } | 185 | } |
186 | |||
188 | private float CalculateMass() | 187 | private float CalculateMass() |
189 | { | 188 | { |
190 | float volume = 0; | 189 | float volume = 0; |
191 | 190 | ||
192 | // No material is passed to the physics engines yet.. soo.. | 191 | // No material is passed to the physics engines yet.. soo.. |
193 | // we're using the m_density constant in the class definition | 192 | // we're using the m_density constant in the class definition |
194 | 193 | ||
195 | 194 | ||
196 | float returnMass = 0; | 195 | float returnMass = 0; |
197 | 196 | ||
@@ -199,17 +198,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
199 | { | 198 | { |
200 | case ProfileShape.Square: | 199 | case ProfileShape.Square: |
201 | // Profile Volume | 200 | // Profile Volume |
202 | 201 | ||
203 | volume = _size.X * _size.Y * _size.Z; | 202 | volume = _size.X*_size.Y*_size.Z; |
204 | 203 | ||
205 | // If the user has 'hollowed out' | 204 | // If the user has 'hollowed out' |
206 | // ProfileHollow is one of those 0 to 50000 values :P | 205 | // ProfileHollow is one of those 0 to 50000 values :P |
207 | // we like percentages better.. so turning into a percentage | 206 | // we like percentages better.. so turning into a percentage |
208 | 207 | ||
209 | if (((float)_pbs.ProfileHollow / 50000f) > 0.0) | 208 | if (((float) _pbs.ProfileHollow/50000f) > 0.0) |
210 | { | 209 | { |
211 | float hollowAmount = (float)_pbs.ProfileHollow / 50000f; | 210 | float hollowAmount = (float) _pbs.ProfileHollow/50000f; |
212 | 211 | ||
213 | // calculate the hollow volume by it's shape compared to the prim shape | 212 | // calculate the hollow volume by it's shape compared to the prim shape |
214 | float hollowVolume = 0; | 213 | float hollowVolume = 0; |
215 | switch (_pbs.HollowShape) | 214 | switch (_pbs.HollowShape) |
@@ -217,29 +216,29 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
217 | case HollowShape.Square: | 216 | case HollowShape.Square: |
218 | case HollowShape.Same: | 217 | case HollowShape.Same: |
219 | // Cube Hollow volume calculation | 218 | // Cube Hollow volume calculation |
220 | float hollowsizex = _size.X * hollowAmount; | 219 | float hollowsizex = _size.X*hollowAmount; |
221 | float hollowsizey = _size.Y * hollowAmount; | 220 | float hollowsizey = _size.Y*hollowAmount; |
222 | float hollowsizez = _size.Z * hollowAmount; | 221 | float hollowsizez = _size.Z*hollowAmount; |
223 | hollowVolume = hollowsizex * hollowsizey * hollowsizez; | 222 | hollowVolume = hollowsizex*hollowsizey*hollowsizez; |
224 | break; | 223 | break; |
225 | 224 | ||
226 | case HollowShape.Circle: | 225 | case HollowShape.Circle: |
227 | // Hollow shape is a perfect cyllinder in respect to the cube's scale | 226 | // Hollow shape is a perfect cyllinder in respect to the cube's scale |
228 | // Cyllinder hollow volume calculation | 227 | // Cyllinder hollow volume calculation |
229 | float hRadius = _size.X / 2; | 228 | float hRadius = _size.X/2; |
230 | float hLength = _size.Z; | 229 | float hLength = _size.Z; |
231 | 230 | ||
232 | // pi * r2 * h | 231 | // pi * r2 * h |
233 | hollowVolume = ((float)(Math.PI * Math.Pow(hRadius, 2) * hLength) * hollowAmount); | 232 | hollowVolume = ((float) (Math.PI*Math.Pow(hRadius, 2)*hLength)*hollowAmount); |
234 | break; | 233 | break; |
235 | 234 | ||
236 | case HollowShape.Triangle: | 235 | case HollowShape.Triangle: |
237 | // Equilateral Triangular Prism volume hollow calculation | 236 | // Equilateral Triangular Prism volume hollow calculation |
238 | // Triangle is an Equilateral Triangular Prism with aLength = to _size.Y | 237 | // Triangle is an Equilateral Triangular Prism with aLength = to _size.Y |
239 | 238 | ||
240 | float aLength = _size.Y; | 239 | float aLength = _size.Y; |
241 | // 1/2 abh | 240 | // 1/2 abh |
242 | hollowVolume = (float)((0.5 * aLength * _size.X * _size.Z) * hollowAmount); | 241 | hollowVolume = (float) ((0.5*aLength*_size.X*_size.Z)*hollowAmount); |
243 | break; | 242 | break; |
244 | 243 | ||
245 | default: | 244 | default: |
@@ -247,15 +246,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
247 | break; | 246 | break; |
248 | } | 247 | } |
249 | volume = volume - hollowVolume; | 248 | volume = volume - hollowVolume; |
250 | |||
251 | } | 249 | } |
252 | 250 | ||
253 | break; | 251 | break; |
254 | 252 | ||
255 | default: | 253 | default: |
256 | // we don't have all of the volume formulas yet so | 254 | // we don't have all of the volume formulas yet so |
257 | // use the common volume formula for all | 255 | // use the common volume formula for all |
258 | volume = _size.X * _size.Y * _size.Z; | 256 | volume = _size.X*_size.Y*_size.Z; |
259 | break; | 257 | break; |
260 | } | 258 | } |
261 | 259 | ||
@@ -273,70 +271,70 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
273 | float PathCutStartAmount = _pbs.ProfileBegin; | 271 | float PathCutStartAmount = _pbs.ProfileBegin; |
274 | if (((PathCutStartAmount + PathCutEndAmount)/50000f) > 0.0f) | 272 | if (((PathCutStartAmount + PathCutEndAmount)/50000f) > 0.0f) |
275 | { | 273 | { |
274 | float pathCutAmount = ((PathCutStartAmount + PathCutEndAmount)/50000f); | ||
276 | 275 | ||
277 | float pathCutAmount = ((PathCutStartAmount + PathCutEndAmount) / 50000f); | ||
278 | |||
279 | // Check the return amount for sanity | 276 | // Check the return amount for sanity |
280 | if (pathCutAmount >= 0.99f) | 277 | if (pathCutAmount >= 0.99f) |
281 | pathCutAmount=0.99f; | 278 | pathCutAmount = 0.99f; |
282 | 279 | ||
283 | volume = volume - (volume * pathCutAmount); | 280 | volume = volume - (volume*pathCutAmount); |
284 | } | 281 | } |
285 | 282 | ||
286 | // Mass = density * volume | 283 | // Mass = density * volume |
287 | 284 | ||
288 | returnMass = m_density * volume; | 285 | returnMass = m_density*volume; |
289 | 286 | ||
290 | return returnMass; | 287 | return returnMass; |
291 | } | 288 | } |
292 | 289 | ||
293 | public void setMass() | 290 | public void setMass() |
294 | { | 291 | { |
295 | if (Body != (IntPtr)0) | 292 | if (Body != (IntPtr) 0) |
296 | { | 293 | { |
297 | d.MassSetBoxTotal(out pMass, CalculateMass(), _size.X, _size.Y, _size.Z); | 294 | d.MassSetBoxTotal(out pMass, CalculateMass(), _size.X, _size.Y, _size.Z); |
298 | d.BodySetMass(Body, ref pMass); | 295 | d.BodySetMass(Body, ref pMass); |
299 | } | 296 | } |
300 | } | 297 | } |
301 | 298 | ||
302 | |||
303 | 299 | ||
304 | public void disableBody() | 300 | public void disableBody() |
305 | { | 301 | { |
306 | //this kills the body so things like 'mesh' can re-create it. | 302 | //this kills the body so things like 'mesh' can re-create it. |
307 | if (Body != (IntPtr)0) | 303 | if (Body != (IntPtr) 0) |
308 | { | 304 | { |
309 | _parent_scene.remActivePrim(this); | 305 | _parent_scene.remActivePrim(this); |
310 | d.BodyDestroy(Body); | 306 | d.BodyDestroy(Body); |
311 | Body = (IntPtr)0; | 307 | Body = (IntPtr) 0; |
312 | } | 308 | } |
313 | } | 309 | } |
310 | |||
314 | public void setMesh(OdeScene parent_scene, IMesh mesh) | 311 | public void setMesh(OdeScene parent_scene, IMesh mesh) |
315 | { | 312 | { |
316 | //Kill Body so that mesh can re-make the geom | 313 | //Kill Body so that mesh can re-make the geom |
317 | if (IsPhysical && Body != (IntPtr)0) | 314 | if (IsPhysical && Body != (IntPtr) 0) |
318 | { | 315 | { |
319 | disableBody(); | 316 | disableBody(); |
320 | } | 317 | } |
321 | float[] vertexList = mesh.getVertexListAsFloatLocked(); // Note, that vertextList is pinned in memory | 318 | float[] vertexList = mesh.getVertexListAsFloatLocked(); // Note, that vertextList is pinned in memory |
322 | int[] indexList = mesh.getIndexListAsIntLocked(); // Also pinned, needs release after usage | 319 | int[] indexList = mesh.getIndexListAsIntLocked(); // Also pinned, needs release after usage |
323 | int VertexCount = vertexList.GetLength(0) / 3; | 320 | int VertexCount = vertexList.GetLength(0)/3; |
324 | int IndexCount = indexList.GetLength(0); | 321 | int IndexCount = indexList.GetLength(0); |
325 | 322 | ||
326 | _triMeshData = d.GeomTriMeshDataCreate(); | 323 | _triMeshData = d.GeomTriMeshDataCreate(); |
327 | 324 | ||
328 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertexList, 3 * sizeof(float), VertexCount, indexList, IndexCount, | 325 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertexList, 3*sizeof (float), VertexCount, indexList, IndexCount, |
329 | 3 * sizeof(int)); | 326 | 3*sizeof (int)); |
330 | d.GeomTriMeshDataPreprocess(_triMeshData); | 327 | d.GeomTriMeshDataPreprocess(_triMeshData); |
331 | 328 | ||
332 | prim_geom = d.CreateTriMesh(m_targetSpace, _triMeshData, parent_scene.triCallback, null, null); | 329 | prim_geom = d.CreateTriMesh(m_targetSpace, _triMeshData, parent_scene.triCallback, null, null); |
333 | 330 | ||
334 | if (IsPhysical && Body == (IntPtr)0) | 331 | if (IsPhysical && Body == (IntPtr) 0) |
335 | { | 332 | { |
336 | // Recreate the body | 333 | // Recreate the body |
337 | enableBody(); | 334 | enableBody(); |
338 | } | 335 | } |
339 | } | 336 | } |
337 | |||
340 | public void ProcessTaints(float timestep) | 338 | public void ProcessTaints(float timestep) |
341 | { | 339 | { |
342 | if (m_taintposition != _position) | 340 | if (m_taintposition != _position) |
@@ -357,14 +355,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
357 | if (m_taintshape) | 355 | if (m_taintshape) |
358 | changeshape(timestep); | 356 | changeshape(timestep); |
359 | // | 357 | // |
360 | |||
361 | } | 358 | } |
359 | |||
362 | public void Move(float timestep) | 360 | public void Move(float timestep) |
363 | { | 361 | { |
364 | if (m_isphysical) | 362 | if (m_isphysical) |
365 | { | 363 | { |
366 | // This is a fallback.. May no longer be necessary. | 364 | // This is a fallback.. May no longer be necessary. |
367 | if (Body == (IntPtr)0) | 365 | if (Body == (IntPtr) 0) |
368 | enableBody(); | 366 | enableBody(); |
369 | //Prim auto disable after 20 frames, | 367 | //Prim auto disable after 20 frames, |
370 | ///if you move it, re-enable the prim manually. | 368 | ///if you move it, re-enable the prim manually. |
@@ -382,35 +380,35 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
382 | 380 | ||
383 | m_taintposition = _position; | 381 | m_taintposition = _position; |
384 | } | 382 | } |
383 | |||
385 | public void rotate(float timestep) | 384 | public void rotate(float timestep) |
386 | { | 385 | { |
387 | |||
388 | d.Quaternion myrot = new d.Quaternion(); | 386 | d.Quaternion myrot = new d.Quaternion(); |
389 | myrot.W = _orientation.w; | 387 | myrot.W = _orientation.w; |
390 | myrot.X = _orientation.x; | 388 | myrot.X = _orientation.x; |
391 | myrot.Y = _orientation.y; | 389 | myrot.Y = _orientation.y; |
392 | myrot.Z = _orientation.z; | 390 | myrot.Z = _orientation.z; |
393 | d.GeomSetQuaternion(prim_geom, ref myrot); | 391 | d.GeomSetQuaternion(prim_geom, ref myrot); |
394 | if (m_isphysical && Body != (IntPtr)0) | 392 | if (m_isphysical && Body != (IntPtr) 0) |
395 | { | 393 | { |
396 | d.BodySetQuaternion(Body, ref myrot); | 394 | d.BodySetQuaternion(Body, ref myrot); |
397 | } | 395 | } |
398 | 396 | ||
399 | m_taintrot = _orientation; | 397 | m_taintrot = _orientation; |
400 | } | 398 | } |
399 | |||
401 | public void changePhysicsStatus(float timestap) | 400 | public void changePhysicsStatus(float timestap) |
402 | { | 401 | { |
403 | if (m_isphysical == true) | 402 | if (m_isphysical == true) |
404 | { | 403 | { |
405 | if (Body == (IntPtr)0) | 404 | if (Body == (IntPtr) 0) |
406 | { | 405 | { |
407 | enableBody(); | 406 | enableBody(); |
408 | } | 407 | } |
409 | |||
410 | } | 408 | } |
411 | else | 409 | else |
412 | { | 410 | { |
413 | if (Body != (IntPtr)0) | 411 | if (Body != (IntPtr) 0) |
414 | { | 412 | { |
415 | disableBody(); | 413 | disableBody(); |
416 | } | 414 | } |
@@ -419,6 +417,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
419 | 417 | ||
420 | m_taintPhysics = m_isphysical; | 418 | m_taintPhysics = m_isphysical; |
421 | } | 419 | } |
420 | |||
422 | public void changesize(float timestamp) | 421 | public void changesize(float timestamp) |
423 | { | 422 | { |
424 | string oldname = _parent_scene.geom_name_map[prim_geom]; | 423 | string oldname = _parent_scene.geom_name_map[prim_geom]; |
@@ -429,7 +428,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
429 | // Cleanup meshing here | 428 | // Cleanup meshing here |
430 | } | 429 | } |
431 | //kill body to rebuild | 430 | //kill body to rebuild |
432 | if (IsPhysical && Body != (IntPtr)0) | 431 | if (IsPhysical && Body != (IntPtr) 0) |
433 | { | 432 | { |
434 | disableBody(); | 433 | disableBody(); |
435 | } | 434 | } |
@@ -442,10 +441,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
442 | // we don't need to do space calculation because the client sends a position update also. | 441 | // we don't need to do space calculation because the client sends a position update also. |
443 | 442 | ||
444 | // Construction of new prim | 443 | // Construction of new prim |
445 | if (this._parent_scene.needsMeshing(_pbs)) | 444 | if (_parent_scene.needsMeshing(_pbs)) |
446 | { | 445 | { |
447 | |||
448 | |||
449 | // Don't need to re-enable body.. it's done in SetMesh | 446 | // Don't need to re-enable body.. it's done in SetMesh |
450 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); | 447 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); |
451 | // createmesh returns null when it's a shape that isn't a cube. | 448 | // createmesh returns null when it's a shape that isn't a cube. |
@@ -463,8 +460,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
463 | myrot.Y = _orientation.y; | 460 | myrot.Y = _orientation.y; |
464 | myrot.Z = _orientation.z; | 461 | myrot.Z = _orientation.z; |
465 | d.GeomSetQuaternion(prim_geom, ref myrot); | 462 | d.GeomSetQuaternion(prim_geom, ref myrot); |
466 | |||
467 | |||
468 | } | 463 | } |
469 | } | 464 | } |
470 | else | 465 | else |
@@ -480,7 +475,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
480 | 475 | ||
481 | 476 | ||
482 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); | 477 | //d.GeomBoxSetLengths(prim_geom, _size.X, _size.Y, _size.Z); |
483 | if (IsPhysical && Body == (IntPtr)0) | 478 | if (IsPhysical && Body == (IntPtr) 0) |
484 | { | 479 | { |
485 | // Re creates body on size. | 480 | // Re creates body on size. |
486 | // EnableBody also does setMass() | 481 | // EnableBody also does setMass() |
@@ -493,12 +488,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
493 | 488 | ||
494 | m_taintsize = _size; | 489 | m_taintsize = _size; |
495 | } | 490 | } |
491 | |||
496 | public void changeshape(float timestamp) | 492 | public void changeshape(float timestamp) |
497 | { | 493 | { |
498 | string oldname = _parent_scene.geom_name_map[prim_geom]; | 494 | string oldname = _parent_scene.geom_name_map[prim_geom]; |
499 | 495 | ||
500 | // Cleanup of old prim geometry and Bodies | 496 | // Cleanup of old prim geometry and Bodies |
501 | if (IsPhysical && Body != (IntPtr)0) | 497 | if (IsPhysical && Body != (IntPtr) 0) |
502 | { | 498 | { |
503 | disableBody(); | 499 | disableBody(); |
504 | } | 500 | } |
@@ -509,7 +505,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
509 | } | 505 | } |
510 | 506 | ||
511 | // Construction of new prim | 507 | // Construction of new prim |
512 | if (this._parent_scene.needsMeshing(_pbs)) | 508 | if (_parent_scene.needsMeshing(_pbs)) |
513 | { | 509 | { |
514 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); | 510 | IMesh mesh = _parent_scene.mesher.CreateMesh(oldname, _pbs, _size); |
515 | if (mesh != null) | 511 | if (mesh != null) |
@@ -525,7 +521,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
525 | { | 521 | { |
526 | prim_geom = d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z); | 522 | prim_geom = d.CreateBox(m_targetSpace, _size.X, _size.Y, _size.Z); |
527 | } | 523 | } |
528 | if (IsPhysical && Body == (IntPtr)0) | 524 | if (IsPhysical && Body == (IntPtr) 0) |
529 | { | 525 | { |
530 | //re-create new body | 526 | //re-create new body |
531 | enableBody(); | 527 | enableBody(); |
@@ -544,11 +540,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
544 | 540 | ||
545 | m_taintshape = false; | 541 | m_taintshape = false; |
546 | } | 542 | } |
543 | |||
547 | public override bool IsPhysical | 544 | public override bool IsPhysical |
548 | { | 545 | { |
549 | get { return m_isphysical; } | 546 | get { return m_isphysical; } |
550 | set { m_isphysical = value; } | 547 | set { m_isphysical = value; } |
551 | } | 548 | } |
549 | |||
552 | public void setPrimForRemoval() | 550 | public void setPrimForRemoval() |
553 | { | 551 | { |
554 | m_taintremove = true; | 552 | m_taintremove = true; |
@@ -556,9 +554,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
556 | 554 | ||
557 | public override bool Flying | 555 | public override bool Flying |
558 | { | 556 | { |
559 | get | 557 | get { return false; //no flying prims for you |
560 | { | ||
561 | return false; //no flying prims for you | ||
562 | } | 558 | } |
563 | set { } | 559 | set { } |
564 | } | 560 | } |
@@ -568,16 +564,19 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
568 | get { return iscolliding; } | 564 | get { return iscolliding; } |
569 | set { iscolliding = value; } | 565 | set { iscolliding = value; } |
570 | } | 566 | } |
567 | |||
571 | public override bool CollidingGround | 568 | public override bool CollidingGround |
572 | { | 569 | { |
573 | get { return false; } | 570 | get { return false; } |
574 | set { return; } | 571 | set { return; } |
575 | } | 572 | } |
573 | |||
576 | public override bool CollidingObj | 574 | public override bool CollidingObj |
577 | { | 575 | { |
578 | get { return false; } | 576 | get { return false; } |
579 | set { return; } | 577 | set { return; } |
580 | } | 578 | } |
579 | |||
581 | public override bool ThrottleUpdates | 580 | public override bool ThrottleUpdates |
582 | { | 581 | { |
583 | get { return m_throttleUpdates; } | 582 | get { return m_throttleUpdates; } |
@@ -588,20 +587,13 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
588 | { | 587 | { |
589 | get { return _position; } | 588 | get { return _position; } |
590 | 589 | ||
591 | set | 590 | set { _position = value; } |
592 | { | ||
593 | _position = value; | ||
594 | |||
595 | } | ||
596 | } | 591 | } |
597 | 592 | ||
598 | public override PhysicsVector Size | 593 | public override PhysicsVector Size |
599 | { | 594 | { |
600 | get { return _size; } | 595 | get { return _size; } |
601 | set | 596 | set { _size = value; } |
602 | { | ||
603 | _size = value; | ||
604 | } | ||
605 | } | 597 | } |
606 | 598 | ||
607 | public override float Mass | 599 | public override float Mass |
@@ -626,10 +618,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
626 | 618 | ||
627 | public override PrimitiveBaseShape Shape | 619 | public override PrimitiveBaseShape Shape |
628 | { | 620 | { |
629 | set | 621 | set { _pbs = value; } |
630 | { | ||
631 | _pbs = value; | ||
632 | } | ||
633 | } | 622 | } |
634 | 623 | ||
635 | public override PhysicsVector Velocity | 624 | public override PhysicsVector Velocity |
@@ -639,9 +628,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
639 | // Averate previous velocity with the new one so | 628 | // Averate previous velocity with the new one so |
640 | // client object interpolation works a 'little' better | 629 | // client object interpolation works a 'little' better |
641 | PhysicsVector returnVelocity = new PhysicsVector(); | 630 | PhysicsVector returnVelocity = new PhysicsVector(); |
642 | returnVelocity.X = (m_lastVelocity.X + _velocity.X) / 2; | 631 | returnVelocity.X = (m_lastVelocity.X + _velocity.X)/2; |
643 | returnVelocity.Y = (m_lastVelocity.Y + _velocity.Y) / 2; | 632 | returnVelocity.Y = (m_lastVelocity.Y + _velocity.Y)/2; |
644 | returnVelocity.Z = (m_lastVelocity.Z + _velocity.Z) / 2; | 633 | returnVelocity.Z = (m_lastVelocity.Z + _velocity.Z)/2; |
645 | return returnVelocity; | 634 | return returnVelocity; |
646 | } | 635 | } |
647 | set { _velocity = value; } | 636 | set { _velocity = value; } |
@@ -656,11 +645,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
656 | public override Quaternion Orientation | 645 | public override Quaternion Orientation |
657 | { | 646 | { |
658 | get { return _orientation; } | 647 | get { return _orientation; } |
659 | set | 648 | set { _orientation = value; } |
660 | { | ||
661 | _orientation = value; | ||
662 | |||
663 | } | ||
664 | } | 649 | } |
665 | 650 | ||
666 | public override PhysicsVector Acceleration | 651 | public override PhysicsVector Acceleration |
@@ -688,7 +673,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
688 | { | 673 | { |
689 | // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit! | 674 | // no lock; called from Simulate() -- if you call this from elsewhere, gotta lock or do Monitor.Enter/Exit! |
690 | 675 | ||
691 | if (Body != (IntPtr)0) | 676 | if (Body != (IntPtr) 0) |
692 | { | 677 | { |
693 | d.Vector3 vec = d.BodyGetPosition(Body); | 678 | d.Vector3 vec = d.BodyGetPosition(Body); |
694 | d.Quaternion ori = d.BodyGetQuaternion(Body); | 679 | d.Quaternion ori = d.BodyGetQuaternion(Body); |
@@ -715,8 +700,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
715 | // It's a hack and will generate a console message if it fails. | 700 | // It's a hack and will generate a console message if it fails. |
716 | 701 | ||
717 | 702 | ||
718 | |||
719 | |||
720 | //IsPhysical = false; | 703 | //IsPhysical = false; |
721 | base.RaiseOutOfBounds(_position); | 704 | base.RaiseOutOfBounds(_position); |
722 | _velocity.X = 0; | 705 | _velocity.X = 0; |
@@ -736,7 +719,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
736 | && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) | 719 | && (Math.Abs(m_lastposition.Y - l_position.Y) < 0.02) |
737 | && (Math.Abs(m_lastposition.Z - l_position.Z) < 0.02)) | 720 | && (Math.Abs(m_lastposition.Z - l_position.Z) < 0.02)) |
738 | { | 721 | { |
739 | |||
740 | _zeroFlag = true; | 722 | _zeroFlag = true; |
741 | } | 723 | } |
742 | else | 724 | else |
@@ -746,7 +728,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
746 | } | 728 | } |
747 | 729 | ||
748 | 730 | ||
749 | |||
750 | if (_zeroFlag) | 731 | if (_zeroFlag) |
751 | { | 732 | { |
752 | // Supposedly this is supposed to tell SceneObjectGroup that | 733 | // Supposedly this is supposed to tell SceneObjectGroup that |
@@ -811,10 +792,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
811 | m_rotationalVelocity.Z = 0; | 792 | m_rotationalVelocity.Z = 0; |
812 | _zeroFlag = true; | 793 | _zeroFlag = true; |
813 | } | 794 | } |
814 | |||
815 | } | 795 | } |
796 | |||
816 | public override void SetMomentum(PhysicsVector momentum) | 797 | public override void SetMomentum(PhysicsVector momentum) |
817 | { | 798 | { |
818 | } | 799 | } |
819 | } | 800 | } |
820 | } | 801 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs index 8bb822e..f2c9b57 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdePlugin.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Runtime.InteropServices; | ||
31 | using Axiom.Math; | 32 | using Axiom.Math; |
32 | using Ode.NET; | 33 | using Ode.NET; |
33 | using OpenSim.Framework; | 34 | using OpenSim.Framework; |
@@ -99,17 +100,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
99 | private d.Contact TerrainContact; | 100 | private d.Contact TerrainContact; |
100 | private d.Contact AvatarMovementprimContact; | 101 | private d.Contact AvatarMovementprimContact; |
101 | private d.Contact AvatarMovementTerrainContact; | 102 | private d.Contact AvatarMovementTerrainContact; |
102 | 103 | ||
103 | private int m_physicsiterations = 10; | 104 | private int m_physicsiterations = 10; |
104 | private float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag | 105 | private float m_SkipFramesAtms = 0.40f; // Drop frames gracefully at a 400 ms lag |
105 | private PhysicsActor PANull = new NullPhysicsActor(); | 106 | private PhysicsActor PANull = new NullPhysicsActor(); |
106 | private float step_time = 0.0f; | 107 | private float step_time = 0.0f; |
107 | public IntPtr world; | 108 | public IntPtr world; |
108 | 109 | ||
109 | public IntPtr space; | 110 | public IntPtr space; |
110 | // split static geometry collision handling into spaces of 30 meters | 111 | // split static geometry collision handling into spaces of 30 meters |
111 | public IntPtr[,] staticPrimspace = new IntPtr[(int)(300/metersInSpace),(int)(300/metersInSpace)]; | 112 | public IntPtr[,] staticPrimspace = new IntPtr[(int) (300/metersInSpace),(int) (300/metersInSpace)]; |
112 | 113 | ||
113 | public static Object OdeLock = new Object(); | 114 | public static Object OdeLock = new Object(); |
114 | 115 | ||
115 | public IMesher mesher; | 116 | public IMesher mesher; |
@@ -126,7 +127,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
126 | contact.surface.soft_erp = 0.005f; | 127 | contact.surface.soft_erp = 0.005f; |
127 | contact.surface.soft_cfm = 0.00003f; | 128 | contact.surface.soft_cfm = 0.00003f; |
128 | */ | 129 | */ |
129 | 130 | ||
130 | contact.surface.mu = 250.0f; | 131 | contact.surface.mu = 250.0f; |
131 | contact.surface.bounce = 0.2f; | 132 | contact.surface.bounce = 0.2f; |
132 | 133 | ||
@@ -151,7 +152,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
151 | contactgroup = d.JointGroupCreate(0); | 152 | contactgroup = d.JointGroupCreate(0); |
152 | //contactgroup | 153 | //contactgroup |
153 | 154 | ||
154 | 155 | ||
155 | d.WorldSetGravity(world, 0.0f, 0.0f, -10.0f); | 156 | d.WorldSetGravity(world, 0.0f, 0.0f, -10.0f); |
156 | d.WorldSetAutoDisableFlag(world, false); | 157 | d.WorldSetAutoDisableFlag(world, false); |
157 | d.WorldSetContactSurfaceLayer(world, 0.001f); | 158 | d.WorldSetContactSurfaceLayer(world, 0.001f); |
@@ -165,10 +166,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
165 | { | 166 | { |
166 | for (int j = 0; j < staticPrimspace.GetLength(1); j++) | 167 | for (int j = 0; j < staticPrimspace.GetLength(1); j++) |
167 | { | 168 | { |
168 | staticPrimspace[i,j] = IntPtr.Zero; | 169 | staticPrimspace[i, j] = IntPtr.Zero; |
169 | } | 170 | } |
170 | } | 171 | } |
171 | |||
172 | } | 172 | } |
173 | 173 | ||
174 | public override void Initialise(IMesher meshmerizer) | 174 | public override void Initialise(IMesher meshmerizer) |
@@ -184,25 +184,25 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
184 | private void near(IntPtr space, IntPtr g1, IntPtr g2) | 184 | private void near(IntPtr space, IntPtr g1, IntPtr g2) |
185 | { | 185 | { |
186 | // no lock here! It's invoked from within Simulate(), which is thread-locked | 186 | // no lock here! It's invoked from within Simulate(), which is thread-locked |
187 | if (d.GeomIsSpace(g1) || d.GeomIsSpace(g2) ) | 187 | if (d.GeomIsSpace(g1) || d.GeomIsSpace(g2)) |
188 | { | 188 | { |
189 | // Separating static prim geometry spaces. | 189 | // Separating static prim geometry spaces. |
190 | // We'll be calling near recursivly if one | 190 | // We'll be calling near recursivly if one |
191 | // of them is a space to find all of the | 191 | // of them is a space to find all of the |
192 | // contact points in the space | 192 | // contact points in the space |
193 | 193 | ||
194 | d.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); | 194 | d.SpaceCollide2(g1, g2, IntPtr.Zero, nearCallback); |
195 | //Colliding a space or a geom with a space or a geom. | 195 | //Colliding a space or a geom with a space or a geom. |
196 | 196 | ||
197 | //Collide all geoms in each space.. | 197 | //Collide all geoms in each space.. |
198 | //if (d.GeomIsSpace(g1)) d.SpaceCollide(g1, IntPtr.Zero, nearCallback); | 198 | //if (d.GeomIsSpace(g1)) d.SpaceCollide(g1, IntPtr.Zero, nearCallback); |
199 | //if (d.GeomIsSpace(g2)) d.SpaceCollide(g2, IntPtr.Zero, nearCallback); | 199 | //if (d.GeomIsSpace(g2)) d.SpaceCollide(g2, IntPtr.Zero, nearCallback); |
200 | } | 200 | } |
201 | else | 201 | else |
202 | { | 202 | { |
203 | // Colliding Geom To Geom | 203 | // Colliding Geom To Geom |
204 | // This portion of the function 'was' blatantly ripped off from BoxStack.cs | 204 | // This portion of the function 'was' blatantly ripped off from BoxStack.cs |
205 | 205 | ||
206 | IntPtr b1 = d.GeomGetBody(g1); | 206 | IntPtr b1 = d.GeomGetBody(g1); |
207 | IntPtr b2 = d.GeomGetBody(g2); | 207 | IntPtr b2 = d.GeomGetBody(g2); |
208 | 208 | ||
@@ -213,7 +213,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
213 | return; | 213 | return; |
214 | 214 | ||
215 | d.GeomClassID id = d.GeomGetClass(g1); | 215 | d.GeomClassID id = d.GeomGetClass(g1); |
216 | 216 | ||
217 | String name1 = null; | 217 | String name1 = null; |
218 | String name2 = null; | 218 | String name2 = null; |
219 | 219 | ||
@@ -228,21 +228,22 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
228 | 228 | ||
229 | if (id == d.GeomClassID.TriMeshClass) | 229 | if (id == d.GeomClassID.TriMeshClass) |
230 | { | 230 | { |
231 | // MainLog.Instance.Verbose("near: A collision was detected between {1} and {2}", 0, name1, name2); | 231 | // MainLog.Instance.Verbose("near: A collision was detected between {1} and {2}", 0, name1, name2); |
232 | //System.Console.WriteLine("near: A collision was detected between {1} and {2}", 0, name1, name2); | 232 | //System.Console.WriteLine("near: A collision was detected between {1} and {2}", 0, name1, name2); |
233 | } | 233 | } |
234 | 234 | ||
235 | int count = 0; | 235 | int count = 0; |
236 | try | 236 | try |
237 | { | 237 | { |
238 | count = d.Collide(g1, g2, contacts.GetLength(0), contacts, d.ContactGeom.SizeOf); | 238 | count = d.Collide(g1, g2, contacts.GetLength(0), contacts, d.ContactGeom.SizeOf); |
239 | } | 239 | } |
240 | catch (System.Runtime.InteropServices.SEHException) | 240 | catch (SEHException) |
241 | { | 241 | { |
242 | MainLog.Instance.Error("PHYSICS", "The Operating system shut down ODE because of corrupt memory. This could be a result of really irregular terrain. If this repeats continuously, restart using Basic Physics and terrain fill your terrain. Restarting the sim."); | 242 | MainLog.Instance.Error("PHYSICS", |
243 | "The Operating system shut down ODE because of corrupt memory. This could be a result of really irregular terrain. If this repeats continuously, restart using Basic Physics and terrain fill your terrain. Restarting the sim."); | ||
243 | base.TriggerPhysicsBasedRestart(); | 244 | base.TriggerPhysicsBasedRestart(); |
244 | } | 245 | } |
245 | 246 | ||
246 | for (int i = 0; i < count; i++) | 247 | for (int i = 0; i < count; i++) |
247 | { | 248 | { |
248 | IntPtr joint; | 249 | IntPtr joint; |
@@ -263,17 +264,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
263 | // We only need to test p2 for 'jump crouch purposes' | 264 | // We only need to test p2 for 'jump crouch purposes' |
264 | p2.IsColliding = true; | 265 | p2.IsColliding = true; |
265 | 266 | ||
266 | |||
267 | 267 | ||
268 | switch(p1.PhysicsActorType) { | 268 | switch (p1.PhysicsActorType) |
269 | case (int)ActorTypes.Agent: | 269 | { |
270 | case (int) ActorTypes.Agent: | ||
270 | p2.CollidingObj = true; | 271 | p2.CollidingObj = true; |
271 | break; | 272 | break; |
272 | case (int)ActorTypes.Prim: | 273 | case (int) ActorTypes.Prim: |
273 | if (p2.Velocity.X >0 || p2.Velocity.Y > 0 || p2.Velocity.Z > 0) | 274 | if (p2.Velocity.X > 0 || p2.Velocity.Y > 0 || p2.Velocity.Z > 0) |
274 | p2.CollidingObj = true; | 275 | p2.CollidingObj = true; |
275 | break; | 276 | break; |
276 | case (int)ActorTypes.Unknown: | 277 | case (int) ActorTypes.Unknown: |
277 | p2.CollidingGround = true; | 278 | p2.CollidingGround = true; |
278 | break; | 279 | break; |
279 | default: | 280 | default: |
@@ -282,7 +283,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
282 | } | 283 | } |
283 | 284 | ||
284 | // we don't want prim or avatar to explode | 285 | // we don't want prim or avatar to explode |
286 | |||
285 | #region InterPenetration Handling - Unintended physics explosions | 287 | #region InterPenetration Handling - Unintended physics explosions |
288 | |||
286 | if (contacts[i].depth >= 0.08f) | 289 | if (contacts[i].depth >= 0.08f) |
287 | { | 290 | { |
288 | if (contacts[i].depth >= 1.00f) | 291 | if (contacts[i].depth >= 1.00f) |
@@ -290,30 +293,31 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
290 | //MainLog.Instance.Debug("PHYSICS",contacts[i].depth.ToString()); | 293 | //MainLog.Instance.Debug("PHYSICS",contacts[i].depth.ToString()); |
291 | } | 294 | } |
292 | // If you interpenetrate a prim with an agent | 295 | // If you interpenetrate a prim with an agent |
293 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent && p1.PhysicsActorType == (int)ActorTypes.Prim) || (p1.PhysicsActorType == (int)ActorTypes.Agent && p2.PhysicsActorType == (int)ActorTypes.Prim)) | 296 | if ((p2.PhysicsActorType == (int) ActorTypes.Agent && |
297 | p1.PhysicsActorType == (int) ActorTypes.Prim) || | ||
298 | (p1.PhysicsActorType == (int) ActorTypes.Agent && | ||
299 | p2.PhysicsActorType == (int) ActorTypes.Prim)) | ||
294 | { | 300 | { |
295 | 301 | if (p2.PhysicsActorType == (int) ActorTypes.Agent) | |
296 | if (p2.PhysicsActorType == (int)ActorTypes.Agent) | ||
297 | { | 302 | { |
298 | p2.CollidingObj = true; | 303 | p2.CollidingObj = true; |
299 | //contacts[i].depth = 0.003f; | 304 | //contacts[i].depth = 0.003f; |
300 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 2.5f); | 305 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 2.5f); |
301 | OdeCharacter character = (OdeCharacter)p2; | 306 | OdeCharacter character = (OdeCharacter) p2; |
302 | character.SetPidStatus(true); | 307 | character.SetPidStatus(true); |
303 | //contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2)); | 308 | //contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2)); |
304 | |||
305 | } | 309 | } |
306 | else | 310 | else |
307 | { | 311 | { |
308 | contacts[i].depth = 0.0000000f; | 312 | contacts[i].depth = 0.0000000f; |
309 | } | 313 | } |
310 | if (p1.PhysicsActorType == (int)ActorTypes.Agent) | 314 | if (p1.PhysicsActorType == (int) ActorTypes.Agent) |
311 | { | 315 | { |
312 | p1.CollidingObj = true; | 316 | p1.CollidingObj = true; |
313 | //contacts[i].depth = 0.003f; | 317 | //contacts[i].depth = 0.003f; |
314 | p1.Velocity = p1.Velocity + new PhysicsVector(0, 0, 2.5f); | 318 | p1.Velocity = p1.Velocity + new PhysicsVector(0, 0, 2.5f); |
315 | //contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p2.Size.X / 2), contacts[i].pos.Y + (p2.Size.Y / 2), contacts[i].pos.Z + (p2.Size.Z / 2)); | 319 | //contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p2.Size.X / 2), contacts[i].pos.Y + (p2.Size.Y / 2), contacts[i].pos.Z + (p2.Size.Z / 2)); |
316 | OdeCharacter character = (OdeCharacter)p2; | 320 | OdeCharacter character = (OdeCharacter) p2; |
317 | character.SetPidStatus(true); | 321 | character.SetPidStatus(true); |
318 | } | 322 | } |
319 | else | 323 | else |
@@ -322,39 +326,45 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
322 | } | 326 | } |
323 | } | 327 | } |
324 | // If you interpenetrate a prim with another prim | 328 | // If you interpenetrate a prim with another prim |
325 | if (p1.PhysicsActorType == (int)ActorTypes.Prim && p2.PhysicsActorType == (int)ActorTypes.Prim) | 329 | if (p1.PhysicsActorType == (int) ActorTypes.Prim && p2.PhysicsActorType == (int) ActorTypes.Prim) |
326 | { | 330 | { |
327 | // Don't collide, one or both prim will explode. | 331 | // Don't collide, one or both prim will explode. |
328 | contacts[i].depth = -1f; | 332 | contacts[i].depth = -1f; |
329 | } | 333 | } |
330 | if (contacts[i].depth >= 1.00f) | 334 | if (contacts[i].depth >= 1.00f) |
331 | { | 335 | { |
332 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent && p1.PhysicsActorType == (int)ActorTypes.Unknown) || (p1.PhysicsActorType == (int)ActorTypes.Agent && p2.PhysicsActorType == (int)ActorTypes.Unknown)) | 336 | if ((p2.PhysicsActorType == (int) ActorTypes.Agent && |
337 | p1.PhysicsActorType == (int) ActorTypes.Unknown) || | ||
338 | (p1.PhysicsActorType == (int) ActorTypes.Agent && | ||
339 | p2.PhysicsActorType == (int) ActorTypes.Unknown)) | ||
333 | { | 340 | { |
334 | 341 | if (p2.PhysicsActorType == (int) ActorTypes.Agent) | |
335 | if (p2.PhysicsActorType == (int)ActorTypes.Agent) | ||
336 | { | 342 | { |
337 | OdeCharacter character = (OdeCharacter)p2; | 343 | OdeCharacter character = (OdeCharacter) p2; |
338 | 344 | ||
339 | //p2.CollidingObj = true; | 345 | //p2.CollidingObj = true; |
340 | contacts[i].depth = 0.003f; | 346 | contacts[i].depth = 0.003f; |
341 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 0.5f); | 347 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 0.5f); |
342 | contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2)); | 348 | contacts[i].pos = |
349 | new d.Vector3(contacts[i].pos.X + (p1.Size.X/2), | ||
350 | contacts[i].pos.Y + (p1.Size.Y/2), | ||
351 | contacts[i].pos.Z + (p1.Size.Z/2)); | ||
343 | character.SetPidStatus(true); | 352 | character.SetPidStatus(true); |
344 | |||
345 | } | 353 | } |
346 | else | 354 | else |
347 | { | 355 | { |
348 | |||
349 | } | 356 | } |
350 | if (p1.PhysicsActorType == (int)ActorTypes.Agent) | 357 | if (p1.PhysicsActorType == (int) ActorTypes.Agent) |
351 | { | 358 | { |
352 | OdeCharacter character = (OdeCharacter)p2; | 359 | OdeCharacter character = (OdeCharacter) p2; |
353 | 360 | ||
354 | //p2.CollidingObj = true; | 361 | //p2.CollidingObj = true; |
355 | contacts[i].depth = 0.003f; | 362 | contacts[i].depth = 0.003f; |
356 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 0.5f); | 363 | p2.Velocity = p2.Velocity + new PhysicsVector(0, 0, 0.5f); |
357 | contacts[i].pos = new d.Vector3(contacts[i].pos.X + (p1.Size.X / 2), contacts[i].pos.Y + (p1.Size.Y / 2), contacts[i].pos.Z + (p1.Size.Z / 2)); | 364 | contacts[i].pos = |
365 | new d.Vector3(contacts[i].pos.X + (p1.Size.X/2), | ||
366 | contacts[i].pos.Y + (p1.Size.Y/2), | ||
367 | contacts[i].pos.Z + (p1.Size.Z/2)); | ||
358 | character.SetPidStatus(true); | 368 | character.SetPidStatus(true); |
359 | } | 369 | } |
360 | else | 370 | else |
@@ -364,18 +374,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
364 | } | 374 | } |
365 | } | 375 | } |
366 | } | 376 | } |
377 | |||
367 | #endregion | 378 | #endregion |
368 | 379 | ||
369 | if (contacts[i].depth >= 0f) | 380 | if (contacts[i].depth >= 0f) |
370 | { | 381 | { |
371 | if (name1 == "Terrain" || name2 == "Terrain") | 382 | if (name1 == "Terrain" || name2 == "Terrain") |
372 | { | 383 | { |
373 | 384 | if ((p2.PhysicsActorType == (int) ActorTypes.Agent) && | |
374 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent) && (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) | 385 | (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) |
375 | { | 386 | { |
376 | AvatarMovementTerrainContact.geom = contacts[i]; | 387 | AvatarMovementTerrainContact.geom = contacts[i]; |
377 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); | 388 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementTerrainContact); |
378 | |||
379 | } | 389 | } |
380 | else | 390 | else |
381 | { | 391 | { |
@@ -385,11 +395,11 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
385 | } | 395 | } |
386 | else | 396 | else |
387 | { | 397 | { |
388 | if ((p2.PhysicsActorType == (int)ActorTypes.Agent) && (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) | 398 | if ((p2.PhysicsActorType == (int) ActorTypes.Agent) && |
399 | (Math.Abs(p2.Velocity.X) > 0.01f || Math.Abs(p2.Velocity.Y) > 0.01f)) | ||
389 | { | 400 | { |
390 | AvatarMovementprimContact.geom = contacts[i]; | 401 | AvatarMovementprimContact.geom = contacts[i]; |
391 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); | 402 | joint = d.JointCreateContact(world, contactgroup, ref AvatarMovementprimContact); |
392 | |||
393 | } | 403 | } |
394 | else | 404 | else |
395 | { | 405 | { |
@@ -399,7 +409,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
399 | } | 409 | } |
400 | d.JointAttach(joint, b1, b2); | 410 | d.JointAttach(joint, b1, b2); |
401 | } | 411 | } |
402 | 412 | ||
403 | if (count > 3) | 413 | if (count > 3) |
404 | { | 414 | { |
405 | p2.ThrottleUpdates = true; | 415 | p2.ThrottleUpdates = true; |
@@ -421,7 +431,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
421 | } | 431 | } |
422 | // If the sim is running slow this frame, | 432 | // If the sim is running slow this frame, |
423 | // don't process collision for prim! | 433 | // don't process collision for prim! |
424 | if (timeStep < (m_SkipFramesAtms / 3)) | 434 | if (timeStep < (m_SkipFramesAtms/3)) |
425 | { | 435 | { |
426 | foreach (OdePrim chr in _activeprims) | 436 | foreach (OdePrim chr in _activeprims) |
427 | { | 437 | { |
@@ -432,16 +442,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
432 | //foreach (OdePrim ch2 in _prims) | 442 | //foreach (OdePrim ch2 in _prims) |
433 | /// should be a separate space -- lots of avatars will be N**2 slow | 443 | /// should be a separate space -- lots of avatars will be N**2 slow |
434 | //{ | 444 | //{ |
435 | //if (ch2.IsPhysical && d.BodyIsEnabled(ch2.Body)) | 445 | //if (ch2.IsPhysical && d.BodyIsEnabled(ch2.Body)) |
436 | //{ | 446 | //{ |
437 | // Only test prim that are 0.03 meters away in one direction. | 447 | // Only test prim that are 0.03 meters away in one direction. |
438 | // This should be Optimized! | 448 | // This should be Optimized! |
439 | 449 | ||
440 | //if ((Math.Abs(ch2.Position.X - chr.Position.X) < 0.03) || (Math.Abs(ch2.Position.Y - chr.Position.Y) < 0.03) || (Math.Abs(ch2.Position.X - chr.Position.X) < 0.03)) | 450 | //if ((Math.Abs(ch2.Position.X - chr.Position.X) < 0.03) || (Math.Abs(ch2.Position.Y - chr.Position.Y) < 0.03) || (Math.Abs(ch2.Position.X - chr.Position.X) < 0.03)) |
441 | //{ | 451 | //{ |
442 | //d.SpaceCollide2(chr.prim_geom, ch2.prim_geom, IntPtr.Zero, nearCallback); | 452 | //d.SpaceCollide2(chr.prim_geom, ch2.prim_geom, IntPtr.Zero, nearCallback); |
443 | //} | 453 | //} |
444 | //} | 454 | //} |
445 | //} | 455 | //} |
446 | } | 456 | } |
447 | } | 457 | } |
@@ -456,7 +466,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
456 | if (d.BodyIsEnabled(chr.Body)) | 466 | if (d.BodyIsEnabled(chr.Body)) |
457 | { | 467 | { |
458 | d.SpaceCollide2(LandGeom, chr.prim_geom, IntPtr.Zero, nearCallback); | 468 | d.SpaceCollide2(LandGeom, chr.prim_geom, IntPtr.Zero, nearCallback); |
459 | |||
460 | } | 469 | } |
461 | } | 470 | } |
462 | } | 471 | } |
@@ -492,7 +501,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
492 | 501 | ||
493 | p.setPrimForRemoval(); | 502 | p.setPrimForRemoval(); |
494 | AddPhysicsActorTaint(prim); | 503 | AddPhysicsActorTaint(prim); |
495 | |||
496 | } | 504 | } |
497 | } | 505 | } |
498 | } | 506 | } |
@@ -519,13 +527,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
519 | } | 527 | } |
520 | else | 528 | else |
521 | { | 529 | { |
522 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'removeprim from scene':" + ((OdePrim)prim).m_targetSpace.ToString()); | 530 | MainLog.Instance.Verbose("Physics", |
531 | "Invalid Scene passed to 'removeprim from scene':" + | ||
532 | ((OdePrim) prim).m_targetSpace.ToString()); | ||
523 | } | 533 | } |
524 | } | 534 | } |
525 | } | 535 | } |
526 | 536 | ||
527 | 537 | ||
528 | |||
529 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore | 538 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore |
530 | if (d.SpaceGetNumGeoms(prim.m_targetSpace) == 0) | 539 | if (d.SpaceGetNumGeoms(prim.m_targetSpace) == 0) |
531 | { | 540 | { |
@@ -541,17 +550,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
541 | } | 550 | } |
542 | else | 551 | else |
543 | { | 552 | { |
544 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'removeprim from scene':" + ((OdePrim)prim).m_targetSpace.ToString()); | 553 | MainLog.Instance.Verbose("Physics", |
554 | "Invalid Scene passed to 'removeprim from scene':" + | ||
555 | ((OdePrim) prim).m_targetSpace.ToString()); | ||
545 | } | 556 | } |
546 | } | 557 | } |
547 | } | 558 | } |
548 | } | 559 | } |
549 | 560 | ||
550 | d.GeomDestroy(prim.prim_geom); | 561 | d.GeomDestroy(prim.prim_geom); |
551 | 562 | ||
552 | _prims.Remove(prim); | 563 | _prims.Remove(prim); |
553 | } | 564 | } |
554 | |||
555 | } | 565 | } |
556 | 566 | ||
557 | public void resetSpaceArrayItemToZero(IntPtr space) | 567 | public void resetSpaceArrayItemToZero(IntPtr space) |
@@ -566,7 +576,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
566 | } | 576 | } |
567 | } | 577 | } |
568 | 578 | ||
569 | public void resetSpaceArrayItemToZero(int arrayitemX,int arrayitemY) | 579 | public void resetSpaceArrayItemToZero(int arrayitemX, int arrayitemY) |
570 | { | 580 | { |
571 | staticPrimspace[arrayitemX, arrayitemY] = IntPtr.Zero; | 581 | staticPrimspace[arrayitemX, arrayitemY] = IntPtr.Zero; |
572 | } | 582 | } |
@@ -582,16 +592,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
582 | // never be called if the prim is physical(active) | 592 | // never be called if the prim is physical(active) |
583 | if (currentspace != space) | 593 | if (currentspace != space) |
584 | { | 594 | { |
585 | if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr)0) | 595 | if (d.SpaceQuery(currentspace, geom) && currentspace != (IntPtr) 0) |
586 | { | 596 | { |
587 | if (d.GeomIsSpace(currentspace)) | 597 | if (d.GeomIsSpace(currentspace)) |
588 | { | 598 | { |
589 | |||
590 | d.SpaceRemove(currentspace, geom); | 599 | d.SpaceRemove(currentspace, geom); |
591 | } | 600 | } |
592 | else | 601 | else |
593 | { | 602 | { |
594 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + currentspace.ToString() + " Geom:" + geom.ToString()); | 603 | MainLog.Instance.Verbose("Physics", |
604 | "Invalid Scene passed to 'recalculatespace':" + currentspace.ToString() + | ||
605 | " Geom:" + geom.ToString()); | ||
595 | } | 606 | } |
596 | } | 607 | } |
597 | else | 608 | else |
@@ -599,7 +610,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
599 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); | 610 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); |
600 | if (!(sGeomIsIn.Equals(null))) | 611 | if (!(sGeomIsIn.Equals(null))) |
601 | { | 612 | { |
602 | if (sGeomIsIn != (IntPtr)0) | 613 | if (sGeomIsIn != (IntPtr) 0) |
603 | { | 614 | { |
604 | if (d.GeomIsSpace(currentspace)) | 615 | if (d.GeomIsSpace(currentspace)) |
605 | { | 616 | { |
@@ -607,7 +618,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
607 | } | 618 | } |
608 | else | 619 | else |
609 | { | 620 | { |
610 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + sGeomIsIn.ToString() + " Geom:" + geom.ToString()); | 621 | MainLog.Instance.Verbose("Physics", |
622 | "Invalid Scene passed to 'recalculatespace':" + | ||
623 | sGeomIsIn.ToString() + " Geom:" + geom.ToString()); | ||
611 | } | 624 | } |
612 | } | 625 | } |
613 | } | 626 | } |
@@ -617,7 +630,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
617 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore | 630 | //If there are no more geometries in the sub-space, we don't need it in the main space anymore |
618 | if (d.SpaceGetNumGeoms(currentspace) == 0) | 631 | if (d.SpaceGetNumGeoms(currentspace) == 0) |
619 | { | 632 | { |
620 | if (currentspace != (IntPtr)0) | 633 | if (currentspace != (IntPtr) 0) |
621 | { | 634 | { |
622 | if (d.GeomIsSpace(currentspace)) | 635 | if (d.GeomIsSpace(currentspace)) |
623 | { | 636 | { |
@@ -628,9 +641,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
628 | } | 641 | } |
629 | else | 642 | else |
630 | { | 643 | { |
631 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + currentspace.ToString() + " Geom:" + geom.ToString()); | 644 | MainLog.Instance.Verbose("Physics", |
645 | "Invalid Scene passed to 'recalculatespace':" + | ||
646 | currentspace.ToString() + " Geom:" + geom.ToString()); | ||
632 | } | 647 | } |
633 | |||
634 | } | 648 | } |
635 | } | 649 | } |
636 | } | 650 | } |
@@ -639,15 +653,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
639 | // this is a physical object that got disabled. ;.; | 653 | // this is a physical object that got disabled. ;.; |
640 | if (d.SpaceQuery(currentspace, geom)) | 654 | if (d.SpaceQuery(currentspace, geom)) |
641 | { | 655 | { |
642 | if (currentspace != (IntPtr)0) | 656 | if (currentspace != (IntPtr) 0) |
643 | if (d.GeomIsSpace(currentspace)) | 657 | if (d.GeomIsSpace(currentspace)) |
644 | { | 658 | { |
645 | d.SpaceRemove(currentspace, geom); | 659 | d.SpaceRemove(currentspace, geom); |
646 | } | 660 | } |
647 | else | 661 | else |
648 | { | 662 | { |
649 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + currentspace.ToString() + " Geom:" + geom.ToString()); | 663 | MainLog.Instance.Verbose("Physics", |
650 | 664 | "Invalid Scene passed to 'recalculatespace':" + | |
665 | currentspace.ToString() + " Geom:" + geom.ToString()); | ||
651 | } | 666 | } |
652 | } | 667 | } |
653 | else | 668 | else |
@@ -655,7 +670,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
655 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); | 670 | IntPtr sGeomIsIn = d.GeomGetSpace(geom); |
656 | if (!(sGeomIsIn.Equals(null))) | 671 | if (!(sGeomIsIn.Equals(null))) |
657 | { | 672 | { |
658 | if (sGeomIsIn != (IntPtr)0) | 673 | if (sGeomIsIn != (IntPtr) 0) |
659 | { | 674 | { |
660 | if (d.GeomIsSpace(sGeomIsIn)) | 675 | if (d.GeomIsSpace(sGeomIsIn)) |
661 | { | 676 | { |
@@ -663,14 +678,16 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
663 | } | 678 | } |
664 | else | 679 | else |
665 | { | 680 | { |
666 | MainLog.Instance.Verbose("Physics", "Invalid Scene passed to 'recalculatespace':" + sGeomIsIn.ToString() + " Geom:" + geom.ToString()); | 681 | MainLog.Instance.Verbose("Physics", |
682 | "Invalid Scene passed to 'recalculatespace':" + | ||
683 | sGeomIsIn.ToString() + " Geom:" + geom.ToString()); | ||
667 | } | 684 | } |
668 | } | 685 | } |
669 | } | 686 | } |
670 | } | 687 | } |
671 | } | 688 | } |
672 | 689 | ||
673 | 690 | ||
674 | // The routines in the Position and Size sections do the 'inserting' into the space, | 691 | // The routines in the Position and Size sections do the 'inserting' into the space, |
675 | // so all we have to do is make sure that the space that we're putting the prim into | 692 | // so all we have to do is make sure that the space that we're putting the prim into |
676 | // is in the 'main' space. | 693 | // is in the 'main' space. |
@@ -679,17 +696,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
679 | 696 | ||
680 | if (newspace == IntPtr.Zero) | 697 | if (newspace == IntPtr.Zero) |
681 | { | 698 | { |
682 | newspace = createprimspace(iprimspaceArrItem[0],iprimspaceArrItem[1]); | 699 | newspace = createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]); |
683 | d.HashSpaceSetLevels(newspace, -4, 66); | 700 | d.HashSpaceSetLevels(newspace, -4, 66); |
684 | } | 701 | } |
685 | 702 | ||
686 | return newspace; | 703 | return newspace; |
687 | } | 704 | } |
688 | 705 | ||
689 | public IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY) { | 706 | public IntPtr createprimspace(int iprimspaceArrItemX, int iprimspaceArrItemY) |
707 | { | ||
690 | // creating a new space for prim and inserting it into main space. | 708 | // creating a new space for prim and inserting it into main space. |
691 | staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY] = d.HashSpaceCreate(IntPtr.Zero); | 709 | staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY] = d.HashSpaceCreate(IntPtr.Zero); |
692 | d.SpaceAdd(space, staticPrimspace[iprimspaceArrItemX,iprimspaceArrItemY]); | 710 | d.SpaceAdd(space, staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]); |
693 | return staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]; | 711 | return staticPrimspace[iprimspaceArrItemX, iprimspaceArrItemY]; |
694 | } | 712 | } |
695 | 713 | ||
@@ -697,7 +715,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
697 | { | 715 | { |
698 | int[] xyspace = calculateSpaceArrayItemFromPos(pos); | 716 | int[] xyspace = calculateSpaceArrayItemFromPos(pos); |
699 | //MainLog.Instance.Verbose("Physics", "Attempting to use arrayItem: " + xyspace[0].ToString() + "," + xyspace[1].ToString()); | 717 | //MainLog.Instance.Verbose("Physics", "Attempting to use arrayItem: " + xyspace[0].ToString() + "," + xyspace[1].ToString()); |
700 | IntPtr locationbasedspace = staticPrimspace[xyspace[0],xyspace[1]]; | 718 | IntPtr locationbasedspace = staticPrimspace[xyspace[0], xyspace[1]]; |
701 | 719 | ||
702 | //locationbasedspace = space; | 720 | //locationbasedspace = space; |
703 | return locationbasedspace; | 721 | return locationbasedspace; |
@@ -706,17 +724,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
706 | public int[] calculateSpaceArrayItemFromPos(PhysicsVector pos) | 724 | public int[] calculateSpaceArrayItemFromPos(PhysicsVector pos) |
707 | { | 725 | { |
708 | int[] returnint = new int[2]; | 726 | int[] returnint = new int[2]; |
709 | 727 | ||
710 | returnint[0] = (int)(pos.X / metersInSpace); | 728 | returnint[0] = (int) (pos.X/metersInSpace); |
711 | 729 | ||
712 | if (returnint[0] > ((int)(259f / metersInSpace))) | 730 | if (returnint[0] > ((int) (259f/metersInSpace))) |
713 | returnint[0] = ((int)(259f / metersInSpace)); | 731 | returnint[0] = ((int) (259f/metersInSpace)); |
714 | if (returnint[0] < 0) | 732 | if (returnint[0] < 0) |
715 | returnint[0] = 0; | 733 | returnint[0] = 0; |
716 | 734 | ||
717 | returnint[1] = (int)(pos.Y / metersInSpace); | 735 | returnint[1] = (int) (pos.Y/metersInSpace); |
718 | if (returnint[0] > ((int)(259f / metersInSpace))) | 736 | if (returnint[0] > ((int) (259f/metersInSpace))) |
719 | returnint[0] = ((int)(259f / metersInSpace)); | 737 | returnint[0] = ((int) (259f/metersInSpace)); |
720 | if (returnint[0] < 0) | 738 | if (returnint[0] < 0) |
721 | returnint[0] = 0; | 739 | returnint[0] = 0; |
722 | 740 | ||
@@ -726,7 +744,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
726 | private PhysicsActor AddPrim(String name, PhysicsVector position, PhysicsVector size, Quaternion rotation, | 744 | private PhysicsActor AddPrim(String name, PhysicsVector position, PhysicsVector size, Quaternion rotation, |
727 | IMesh mesh, PrimitiveBaseShape pbs, bool isphysical) | 745 | IMesh mesh, PrimitiveBaseShape pbs, bool isphysical) |
728 | { | 746 | { |
729 | |||
730 | PhysicsVector pos = new PhysicsVector(); | 747 | PhysicsVector pos = new PhysicsVector(); |
731 | pos.X = position.X; | 748 | pos.X = position.X; |
732 | pos.Y = position.Y; | 749 | pos.Y = position.Y; |
@@ -741,21 +758,21 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
741 | rot.y = rotation.y; | 758 | rot.y = rotation.y; |
742 | rot.z = rotation.z; | 759 | rot.z = rotation.z; |
743 | 760 | ||
744 | 761 | ||
745 | int[] iprimspaceArrItem = calculateSpaceArrayItemFromPos(pos); | 762 | int[] iprimspaceArrItem = calculateSpaceArrayItemFromPos(pos); |
746 | IntPtr targetspace = calculateSpaceForGeom(pos); | 763 | IntPtr targetspace = calculateSpaceForGeom(pos); |
747 | 764 | ||
748 | if (targetspace == IntPtr.Zero) | 765 | if (targetspace == IntPtr.Zero) |
749 | targetspace = createprimspace(iprimspaceArrItem[0],iprimspaceArrItem[1]); | 766 | targetspace = createprimspace(iprimspaceArrItem[0], iprimspaceArrItem[1]); |
750 | 767 | ||
751 | OdePrim newPrim; | 768 | OdePrim newPrim; |
752 | lock (OdeLock) | 769 | lock (OdeLock) |
753 | { | 770 | { |
754 | newPrim = new OdePrim(name, this, targetspace, pos, siz, rot, mesh, pbs, isphysical); | 771 | newPrim = new OdePrim(name, this, targetspace, pos, siz, rot, mesh, pbs, isphysical); |
755 | 772 | ||
756 | _prims.Add(newPrim); | 773 | _prims.Add(newPrim); |
757 | } | 774 | } |
758 | 775 | ||
759 | return newPrim; | 776 | return newPrim; |
760 | } | 777 | } |
761 | 778 | ||
@@ -763,16 +780,14 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
763 | { | 780 | { |
764 | // adds active prim.. (ones that should be iterated over in collisions_optimized | 781 | // adds active prim.. (ones that should be iterated over in collisions_optimized |
765 | 782 | ||
766 | _activeprims.Add(activatePrim); | 783 | _activeprims.Add(activatePrim); |
767 | |||
768 | } | 784 | } |
785 | |||
769 | public void remActivePrim(OdePrim deactivatePrim) | 786 | public void remActivePrim(OdePrim deactivatePrim) |
770 | { | 787 | { |
771 | 788 | _activeprims.Remove(deactivatePrim); | |
772 | _activeprims.Remove(deactivatePrim); | ||
773 | |||
774 | |||
775 | } | 789 | } |
790 | |||
776 | public int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount) | 791 | public int TriArrayCallback(IntPtr trimesh, IntPtr refObject, int[] triangleIndex, int triCount) |
777 | { | 792 | { |
778 | /* String name1 = null; | 793 | /* String name1 = null; |
@@ -818,7 +833,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
818 | return 1; | 833 | return 1; |
819 | } | 834 | } |
820 | 835 | ||
821 | 836 | ||
822 | public bool needsMeshing(PrimitiveBaseShape pbs) | 837 | public bool needsMeshing(PrimitiveBaseShape pbs) |
823 | { | 838 | { |
824 | if (pbs.ProfileHollow != 0) | 839 | if (pbs.ProfileHollow != 0) |
@@ -833,7 +848,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
833 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 848 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
834 | PhysicsVector size, Quaternion rotation) //To be removed | 849 | PhysicsVector size, Quaternion rotation) //To be removed |
835 | { | 850 | { |
836 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 851 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
837 | } | 852 | } |
838 | 853 | ||
839 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 854 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
@@ -848,12 +863,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
848 | /// support simple box & hollow box now; later, more shapes | 863 | /// support simple box & hollow box now; later, more shapes |
849 | if (needsMeshing(pbs)) | 864 | if (needsMeshing(pbs)) |
850 | { | 865 | { |
851 | mesh = mesher.CreateMesh(primName, pbs, size); | 866 | mesh = mesher.CreateMesh(primName, pbs, size); |
852 | } | 867 | } |
853 | 868 | ||
854 | break; | 869 | break; |
855 | } | 870 | } |
856 | 871 | ||
857 | result = AddPrim(primName, position, size, rotation, mesh, pbs, isPhysical); | 872 | result = AddPrim(primName, position, size, rotation, mesh, pbs, isPhysical); |
858 | 873 | ||
859 | 874 | ||
@@ -864,10 +879,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
864 | { | 879 | { |
865 | if (prim is OdePrim) | 880 | if (prim is OdePrim) |
866 | { | 881 | { |
867 | OdePrim taintedprim = ((OdePrim)prim); | 882 | OdePrim taintedprim = ((OdePrim) prim); |
868 | if (!(_taintedPrim.Contains(taintedprim))) | 883 | if (!(_taintedPrim.Contains(taintedprim))) |
869 | _taintedPrim.Add(taintedprim); | 884 | _taintedPrim.Add(taintedprim); |
870 | |||
871 | } | 885 | } |
872 | } | 886 | } |
873 | 887 | ||
@@ -877,19 +891,18 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
877 | 891 | ||
878 | step_time += timeStep; | 892 | step_time += timeStep; |
879 | 893 | ||
880 | 894 | ||
881 | // If We're loaded down by something else, | 895 | // If We're loaded down by something else, |
882 | // or debugging with the Visual Studio project on pause | 896 | // or debugging with the Visual Studio project on pause |
883 | // skip a few frames to catch up gracefully. | 897 | // skip a few frames to catch up gracefully. |
884 | // without shooting the physicsactors all over the place | 898 | // without shooting the physicsactors all over the place |
885 | |||
886 | 899 | ||
887 | 900 | ||
888 | if (step_time >= m_SkipFramesAtms) | 901 | if (step_time >= m_SkipFramesAtms) |
889 | { | 902 | { |
890 | // Instead of trying to catch up, it'll do one physics frame only | 903 | // Instead of trying to catch up, it'll do one physics frame only |
891 | step_time = ODE_STEPSIZE; | 904 | step_time = ODE_STEPSIZE; |
892 | this.m_physicsiterations = 5; | 905 | m_physicsiterations = 5; |
893 | } | 906 | } |
894 | else | 907 | else |
895 | { | 908 | { |
@@ -897,35 +910,36 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
897 | } | 910 | } |
898 | lock (OdeLock) | 911 | lock (OdeLock) |
899 | { | 912 | { |
900 | // Process 10 frames if the sim is running normal.. | 913 | // Process 10 frames if the sim is running normal.. |
901 | // process 5 frames if the sim is running slow | 914 | // process 5 frames if the sim is running slow |
902 | try{ | 915 | try |
916 | { | ||
903 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); | 917 | d.WorldSetQuickStepNumIterations(world, m_physicsiterations); |
904 | } | 918 | } |
905 | catch (System.StackOverflowException) | 919 | catch (StackOverflowException) |
906 | { | 920 | { |
907 | MainLog.Instance.Error("PHYSICS", "The operating system wasn't able to allocate enough memory for the simulation. Restarting the sim."); | 921 | MainLog.Instance.Error("PHYSICS", |
922 | "The operating system wasn't able to allocate enough memory for the simulation. Restarting the sim."); | ||
908 | base.TriggerPhysicsBasedRestart(); | 923 | base.TriggerPhysicsBasedRestart(); |
909 | } | 924 | } |
910 | 925 | ||
911 | int i = 0; | 926 | int i = 0; |
912 | 927 | ||
913 | 928 | ||
914 | // Figure out the Frames Per Second we're going at. | 929 | // Figure out the Frames Per Second we're going at. |
915 | 930 | ||
916 | fps = (((step_time / ODE_STEPSIZE * m_physicsiterations)*2)* 10); | 931 | fps = (((step_time/ODE_STEPSIZE*m_physicsiterations)*2)*10); |
917 | 932 | ||
918 | 933 | ||
919 | while (step_time > 0.0f) | 934 | while (step_time > 0.0f) |
920 | { | 935 | { |
921 | |||
922 | foreach (OdeCharacter actor in _characters) | 936 | foreach (OdeCharacter actor in _characters) |
923 | { | 937 | { |
924 | actor.Move(timeStep); | 938 | actor.Move(timeStep); |
925 | actor.collidelock = true; | 939 | actor.collidelock = true; |
926 | } | 940 | } |
927 | 941 | ||
928 | 942 | ||
929 | collision_optimized(timeStep); | 943 | collision_optimized(timeStep); |
930 | d.WorldQuickStep(world, ODE_STEPSIZE); | 944 | d.WorldQuickStep(world, ODE_STEPSIZE); |
931 | d.JointGroupEmpty(contactgroup); | 945 | d.JointGroupEmpty(contactgroup); |
@@ -933,7 +947,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
933 | { | 947 | { |
934 | actor.collidelock = false; | 948 | actor.collidelock = false; |
935 | } | 949 | } |
936 | 950 | ||
937 | step_time -= ODE_STEPSIZE; | 951 | step_time -= ODE_STEPSIZE; |
938 | i++; | 952 | i++; |
939 | } | 953 | } |
@@ -941,7 +955,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
941 | foreach (OdeCharacter actor in _characters) | 955 | foreach (OdeCharacter actor in _characters) |
942 | { | 956 | { |
943 | actor.UpdatePositionAndVelocity(); | 957 | actor.UpdatePositionAndVelocity(); |
944 | |||
945 | } | 958 | } |
946 | bool processedtaints = false; | 959 | bool processedtaints = false; |
947 | foreach (OdePrim prim in _taintedPrim) | 960 | foreach (OdePrim prim in _taintedPrim) |
@@ -963,7 +976,6 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
963 | if (actor.IsPhysical && (d.BodyIsEnabled(actor.Body) || !actor._zeroFlag)) | 976 | if (actor.IsPhysical && (d.BodyIsEnabled(actor.Body) || !actor._zeroFlag)) |
964 | { | 977 | { |
965 | actor.UpdatePositionAndVelocity(); | 978 | actor.UpdatePositionAndVelocity(); |
966 | |||
967 | } | 979 | } |
968 | } | 980 | } |
969 | } | 981 | } |
@@ -984,25 +996,25 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
984 | public float[] ResizeTerrain512(float[] heightMap) | 996 | public float[] ResizeTerrain512(float[] heightMap) |
985 | { | 997 | { |
986 | float[] returnarr = new float[262144]; | 998 | float[] returnarr = new float[262144]; |
987 | float[,] resultarr = new float[m_regionWidth, m_regionHeight]; | 999 | float[,] resultarr = new float[m_regionWidth,m_regionHeight]; |
988 | 1000 | ||
989 | // Filling out the array into it's multi-dimentional components | 1001 | // Filling out the array into it's multi-dimentional components |
990 | for (int y = 0; y < m_regionHeight; y++) | 1002 | for (int y = 0; y < m_regionHeight; y++) |
991 | { | 1003 | { |
992 | for (int x = 0; x < m_regionWidth; x++) | 1004 | for (int x = 0; x < m_regionWidth; x++) |
993 | { | 1005 | { |
994 | resultarr[y,x] = heightMap[y * m_regionWidth + x]; | 1006 | resultarr[y, x] = heightMap[y*m_regionWidth + x]; |
995 | } | 1007 | } |
996 | } | 1008 | } |
997 | 1009 | ||
998 | // Resize using interpolation | 1010 | // Resize using interpolation |
999 | 1011 | ||
1000 | // This particular way is quick but it only works on a multiple of the original | 1012 | // This particular way is quick but it only works on a multiple of the original |
1001 | 1013 | ||
1002 | // The idea behind this method can be described with the following diagrams | 1014 | // The idea behind this method can be described with the following diagrams |
1003 | // second pass and third pass happen in the same loop really.. just separated | 1015 | // second pass and third pass happen in the same loop really.. just separated |
1004 | // them to show what this does. | 1016 | // them to show what this does. |
1005 | 1017 | ||
1006 | // First Pass | 1018 | // First Pass |
1007 | // ResultArr: | 1019 | // ResultArr: |
1008 | // 1,1,1,1,1,1 | 1020 | // 1,1,1,1,1,1 |
@@ -1054,12 +1066,12 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1054 | // 4th # | 1066 | // 4th # |
1055 | // on single loop. | 1067 | // on single loop. |
1056 | 1068 | ||
1057 | float[,] resultarr2 = new float[512, 512]; | 1069 | float[,] resultarr2 = new float[512,512]; |
1058 | for (int y = 0; y < m_regionHeight; y++) | 1070 | for (int y = 0; y < m_regionHeight; y++) |
1059 | { | 1071 | { |
1060 | for (int x = 0; x < m_regionWidth; x++) | 1072 | for (int x = 0; x < m_regionWidth; x++) |
1061 | { | 1073 | { |
1062 | resultarr2[y*2,x*2] = resultarr[y,x]; | 1074 | resultarr2[y*2, x*2] = resultarr[y, x]; |
1063 | 1075 | ||
1064 | if (y < m_regionHeight) | 1076 | if (y < m_regionHeight) |
1065 | { | 1077 | { |
@@ -1067,16 +1079,17 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1067 | { | 1079 | { |
1068 | if (x + 1 < m_regionWidth) | 1080 | if (x + 1 < m_regionWidth) |
1069 | { | 1081 | { |
1070 | resultarr2[(y * 2) + 1, x * 2] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x+1] + resultarr[y+1, x+1])/4); | 1082 | resultarr2[(y*2) + 1, x*2] = ((resultarr[y, x] + resultarr[y + 1, x] + |
1083 | resultarr[y, x + 1] + resultarr[y + 1, x + 1])/4); | ||
1071 | } | 1084 | } |
1072 | else | 1085 | else |
1073 | { | 1086 | { |
1074 | resultarr2[(y * 2) + 1, x * 2] = ((resultarr[y, x] + resultarr[y + 1, x]) / 2); | 1087 | resultarr2[(y*2) + 1, x*2] = ((resultarr[y, x] + resultarr[y + 1, x])/2); |
1075 | } | 1088 | } |
1076 | } | 1089 | } |
1077 | else | 1090 | else |
1078 | { | 1091 | { |
1079 | resultarr2[(y * 2) + 1, x * 2] = resultarr[y, x]; | 1092 | resultarr2[(y*2) + 1, x*2] = resultarr[y, x]; |
1080 | } | 1093 | } |
1081 | } | 1094 | } |
1082 | if (x < m_regionWidth) | 1095 | if (x < m_regionWidth) |
@@ -1085,31 +1098,32 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1085 | { | 1098 | { |
1086 | if (y + 1 < m_regionHeight) | 1099 | if (y + 1 < m_regionHeight) |
1087 | { | 1100 | { |
1088 | resultarr2[y * 2, (x * 2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x + 1] + resultarr[y + 1, x + 1]) / 4); | 1101 | resultarr2[y*2, (x*2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + |
1102 | resultarr[y, x + 1] + resultarr[y + 1, x + 1])/4); | ||
1089 | } | 1103 | } |
1090 | else | 1104 | else |
1091 | { | 1105 | { |
1092 | resultarr2[y * 2, (x * 2) + 1] = ((resultarr[y, x] + resultarr[y, x + 1]) / 2); | 1106 | resultarr2[y*2, (x*2) + 1] = ((resultarr[y, x] + resultarr[y, x + 1])/2); |
1093 | } | 1107 | } |
1094 | } | 1108 | } |
1095 | else | 1109 | else |
1096 | { | 1110 | { |
1097 | resultarr2[y * 2, (x * 2) + 1] = resultarr[y, x]; | 1111 | resultarr2[y*2, (x*2) + 1] = resultarr[y, x]; |
1098 | } | 1112 | } |
1099 | } | 1113 | } |
1100 | if (x < m_regionWidth && y < m_regionHeight) | 1114 | if (x < m_regionWidth && y < m_regionHeight) |
1101 | { | 1115 | { |
1102 | if ((x + 1 < m_regionWidth) && (y + 1 < m_regionHeight)) | 1116 | if ((x + 1 < m_regionWidth) && (y + 1 < m_regionHeight)) |
1103 | { | 1117 | { |
1104 | resultarr2[(y * 2) + 1, (x * 2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + resultarr[y, x + 1] + resultarr[y + 1, x + 1]) / 4); | 1118 | resultarr2[(y*2) + 1, (x*2) + 1] = ((resultarr[y, x] + resultarr[y + 1, x] + |
1119 | resultarr[y, x + 1] + resultarr[y + 1, x + 1])/4); | ||
1105 | } | 1120 | } |
1106 | else | 1121 | else |
1107 | { | 1122 | { |
1108 | resultarr2[(y * 2) + 1, (x * 2) + 1] = resultarr[y, x]; | 1123 | resultarr2[(y*2) + 1, (x*2) + 1] = resultarr[y, x]; |
1109 | } | 1124 | } |
1110 | } | 1125 | } |
1111 | } | 1126 | } |
1112 | |||
1113 | } | 1127 | } |
1114 | //Flatten out the array | 1128 | //Flatten out the array |
1115 | int i = 0; | 1129 | int i = 0; |
@@ -1119,7 +1133,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1119 | { | 1133 | { |
1120 | if (resultarr2[y, x] <= 0) | 1134 | if (resultarr2[y, x] <= 0) |
1121 | returnarr[i] = 0.0000001f; | 1135 | returnarr[i] = 0.0000001f; |
1122 | else | 1136 | else |
1123 | returnarr[i] = resultarr2[y, x]; | 1137 | returnarr[i] = resultarr2[y, x]; |
1124 | 1138 | ||
1125 | i++; | 1139 | i++; |
@@ -1127,8 +1141,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1127 | } | 1141 | } |
1128 | 1142 | ||
1129 | return returnarr; | 1143 | return returnarr; |
1130 | |||
1131 | } | 1144 | } |
1145 | |||
1132 | public override void SetTerrain(float[] heightMap) | 1146 | public override void SetTerrain(float[] heightMap) |
1133 | { | 1147 | { |
1134 | // this._heightmap[i] = (double)heightMap[i]; | 1148 | // this._heightmap[i] = (double)heightMap[i]; |
@@ -1137,8 +1151,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1137 | 1151 | ||
1138 | const uint heightmapWidth = m_regionWidth + 2; | 1152 | const uint heightmapWidth = m_regionWidth + 2; |
1139 | const uint heightmapHeight = m_regionHeight + 2; | 1153 | const uint heightmapHeight = m_regionHeight + 2; |
1140 | const uint heightmapWidthSamples = 2 * m_regionWidth + 2; | 1154 | const uint heightmapWidthSamples = 2*m_regionWidth + 2; |
1141 | const uint heightmapHeightSamples = 2 * m_regionHeight + 2; | 1155 | const uint heightmapHeightSamples = 2*m_regionHeight + 2; |
1142 | const float scale = 1.0f; | 1156 | const float scale = 1.0f; |
1143 | const float offset = 0.0f; | 1157 | const float offset = 0.0f; |
1144 | const float thickness = 2.0f; | 1158 | const float thickness = 2.0f; |
@@ -1166,7 +1180,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1166 | } | 1180 | } |
1167 | IntPtr HeightmapData = d.GeomHeightfieldDataCreate(); | 1181 | IntPtr HeightmapData = d.GeomHeightfieldDataCreate(); |
1168 | d.GeomHeightfieldDataBuildDouble(HeightmapData, _heightmap, 0, heightmapWidth, heightmapHeight, | 1182 | d.GeomHeightfieldDataBuildDouble(HeightmapData, _heightmap, 0, heightmapWidth, heightmapHeight, |
1169 | (int) heightmapWidthSamples, (int) heightmapHeightSamples, scale, offset, thickness, wrap); | 1183 | (int) heightmapWidthSamples, (int) heightmapHeightSamples, scale, |
1184 | offset, thickness, wrap); | ||
1170 | d.GeomHeightfieldDataSetBounds(HeightmapData, m_regionWidth, m_regionHeight); | 1185 | d.GeomHeightfieldDataSetBounds(HeightmapData, m_regionWidth, m_regionHeight); |
1171 | LandGeom = d.CreateHeightfield(space, HeightmapData, 1); | 1186 | LandGeom = d.CreateHeightfield(space, HeightmapData, 1); |
1172 | geom_name_map[LandGeom] = "Terrain"; | 1187 | geom_name_map[LandGeom] = "Terrain"; |
@@ -1193,7 +1208,4 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1193 | { | 1208 | { |
1194 | } | 1209 | } |
1195 | } | 1210 | } |
1196 | 1211 | } \ No newline at end of file | |
1197 | |||
1198 | |||
1199 | } | ||
diff --git a/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs index da9f587..3bb71d4 100644 --- a/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/POSPlugin/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs index 26310f9..1bc3490 100644 --- a/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs +++ b/OpenSim/Region/Physics/POSPlugin/POSPlugin.cs | |||
@@ -25,8 +25,8 @@ | |||
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | using System.Collections.Generic; | ||
29 | using System; | 28 | using System; |
29 | using System.Collections.Generic; | ||
30 | using Axiom.Math; | 30 | using Axiom.Math; |
31 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
32 | using OpenSim.Region.Physics.Manager; | 32 | using OpenSim.Region.Physics.Manager; |
@@ -114,10 +114,10 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
114 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 114 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
115 | PhysicsVector size, Quaternion rotation) | 115 | PhysicsVector size, Quaternion rotation) |
116 | { | 116 | { |
117 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 117 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
118 | } | 118 | } |
119 | 119 | ||
120 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 120 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
121 | PhysicsVector size, Quaternion rotation, bool isPhysical) | 121 | PhysicsVector size, Quaternion rotation, bool isPhysical) |
122 | { | 122 | { |
123 | POSPrim prim = new POSPrim(); | 123 | POSPrim prim = new POSPrim(); |
@@ -136,18 +136,20 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
136 | " sizeX: " + p.Size.X * 0.5 + 0.5); | 136 | " sizeX: " + p.Size.X * 0.5 + 0.5); |
137 | */ | 137 | */ |
138 | 138 | ||
139 | Vector3 rotatedPos = p.Orientation.Inverse() * new Vector3(c.Position.X - p.Position.X, c.Position.Y - p.Position.Y, c.Position.Z - p.Position.Z); | 139 | Vector3 rotatedPos = p.Orientation.Inverse()* |
140 | Vector3 avatarSize = p.Orientation.Inverse() * new Vector3(c.Size.X, c.Size.Y, c.Size.Z); | 140 | new Vector3(c.Position.X - p.Position.X, c.Position.Y - p.Position.Y, |
141 | c.Position.Z - p.Position.Z); | ||
142 | Vector3 avatarSize = p.Orientation.Inverse()*new Vector3(c.Size.X, c.Size.Y, c.Size.Z); | ||
141 | 143 | ||
142 | if (Math.Abs(rotatedPos.x) >= (p.Size.X * 0.5 + Math.Abs(avatarSize.x))) | 144 | if (Math.Abs(rotatedPos.x) >= (p.Size.X*0.5 + Math.Abs(avatarSize.x))) |
143 | { | 145 | { |
144 | return false; | 146 | return false; |
145 | } | 147 | } |
146 | if (Math.Abs(rotatedPos.y) >= (p.Size.Y * 0.5 + Math.Abs(avatarSize.y))) | 148 | if (Math.Abs(rotatedPos.y) >= (p.Size.Y*0.5 + Math.Abs(avatarSize.y))) |
147 | { | 149 | { |
148 | return false; | 150 | return false; |
149 | } | 151 | } |
150 | if (Math.Abs(rotatedPos.z) >= (p.Size.Z * 0.5 + Math.Abs(avatarSize.z))) | 152 | if (Math.Abs(rotatedPos.z) >= (p.Size.Z*0.5 + Math.Abs(avatarSize.z))) |
151 | { | 153 | { |
152 | return false; | 154 | return false; |
153 | } | 155 | } |
@@ -182,12 +184,12 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
182 | 184 | ||
183 | if (!character.Flying) | 185 | if (!character.Flying) |
184 | { | 186 | { |
185 | character._target_velocity.Z += gravity * timeStep; | 187 | character._target_velocity.Z += gravity*timeStep; |
186 | } | 188 | } |
187 | 189 | ||
188 | bool forcedZ = false; | 190 | bool forcedZ = false; |
189 | character.Position.X += character._target_velocity.X * timeStep; | 191 | character.Position.X += character._target_velocity.X*timeStep; |
190 | character.Position.Y += character._target_velocity.Y * timeStep; | 192 | character.Position.Y += character._target_velocity.Y*timeStep; |
191 | 193 | ||
192 | if (character.Position.Y < 0) | 194 | if (character.Position.Y < 0) |
193 | { | 195 | { |
@@ -207,15 +209,15 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
207 | character.Position.X = 255.9F; | 209 | character.Position.X = 255.9F; |
208 | } | 210 | } |
209 | 211 | ||
210 | float terrainheight = _heightMap[(int)character.Position.Y * 256 + (int)character.Position.X]; | 212 | float terrainheight = _heightMap[(int) character.Position.Y*256 + (int) character.Position.X]; |
211 | if (character.Position.Z + (character._target_velocity.Z * timeStep) < terrainheight + 2) | 213 | if (character.Position.Z + (character._target_velocity.Z*timeStep) < terrainheight + 2) |
212 | { | 214 | { |
213 | character.Position.Z = terrainheight + 1.0f; | 215 | character.Position.Z = terrainheight + 1.0f; |
214 | forcedZ = true; | 216 | forcedZ = true; |
215 | } | 217 | } |
216 | else | 218 | else |
217 | { | 219 | { |
218 | character.Position.Z += character._target_velocity.Z * timeStep; | 220 | character.Position.Z += character._target_velocity.Z*timeStep; |
219 | } | 221 | } |
220 | 222 | ||
221 | /// this is it -- the magic you've all been waiting for! Ladies and gentlemen -- | 223 | /// this is it -- the magic you've all been waiting for! Ladies and gentlemen -- |
@@ -224,21 +226,21 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
224 | 226 | ||
225 | if (check_all_prims(character)) | 227 | if (check_all_prims(character)) |
226 | { | 228 | { |
227 | character.Position.Z = oldposZ; // first try Z axis | 229 | character.Position.Z = oldposZ; // first try Z axis |
228 | if (check_all_prims(character)) | 230 | if (check_all_prims(character)) |
229 | { | 231 | { |
230 | character.Position.Z = oldposZ + 0.4f; // try harder | 232 | character.Position.Z = oldposZ + 0.4f; // try harder |
231 | if (check_all_prims(character)) | 233 | if (check_all_prims(character)) |
232 | { | 234 | { |
233 | character.Position.X = oldposX; | 235 | character.Position.X = oldposX; |
234 | character.Position.Y = oldposY; | 236 | character.Position.Y = oldposY; |
235 | character.Position.Z = oldposZ; | 237 | character.Position.Z = oldposZ; |
236 | character.Position.X = character.Position.X + (character._target_velocity.X * timeStep); | 238 | character.Position.X = character.Position.X + (character._target_velocity.X*timeStep); |
237 | if (check_all_prims(character)) | 239 | if (check_all_prims(character)) |
238 | { | 240 | { |
239 | character.Position.X = oldposX; | 241 | character.Position.X = oldposX; |
240 | } | 242 | } |
241 | character.Position.Y = character.Position.Y + (character._target_velocity.Y * timeStep); | 243 | character.Position.Y = character.Position.Y + (character._target_velocity.Y*timeStep); |
242 | if (check_all_prims(character)) | 244 | if (check_all_prims(character)) |
243 | { | 245 | { |
244 | character.Position.Y = oldposY; | 246 | character.Position.Y = oldposY; |
@@ -253,7 +255,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
253 | { | 255 | { |
254 | forcedZ = true; | 256 | forcedZ = true; |
255 | } | 257 | } |
256 | } | 258 | } |
257 | 259 | ||
258 | if (character.Position.Y < 0) | 260 | if (character.Position.Y < 0) |
259 | { | 261 | { |
@@ -273,8 +275,8 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
273 | character.Position.X = 255.9F; | 275 | character.Position.X = 255.9F; |
274 | } | 276 | } |
275 | 277 | ||
276 | character._velocity.X = (character.Position.X - oldposX) / timeStep; | 278 | character._velocity.X = (character.Position.X - oldposX)/timeStep; |
277 | character._velocity.Y = (character.Position.Y - oldposY) / timeStep; | 279 | character._velocity.Y = (character.Position.Y - oldposY)/timeStep; |
278 | 280 | ||
279 | if (forcedZ) | 281 | if (forcedZ) |
280 | { | 282 | { |
@@ -284,7 +286,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
284 | } | 286 | } |
285 | else | 287 | else |
286 | { | 288 | { |
287 | character._velocity.Z = (character.Position.Z - oldposZ) / timeStep; | 289 | character._velocity.Z = (character.Position.Z - oldposZ)/timeStep; |
288 | } | 290 | } |
289 | } | 291 | } |
290 | return fps; | 292 | return fps; |
@@ -326,31 +328,37 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
326 | _position = new PhysicsVector(); | 328 | _position = new PhysicsVector(); |
327 | _acceleration = new PhysicsVector(); | 329 | _acceleration = new PhysicsVector(); |
328 | } | 330 | } |
331 | |||
329 | public override int PhysicsActorType | 332 | public override int PhysicsActorType |
330 | { | 333 | { |
331 | get { return (int)ActorTypes.Agent; } | 334 | get { return (int) ActorTypes.Agent; } |
332 | set { return; } | 335 | set { return; } |
333 | } | 336 | } |
337 | |||
334 | public override PhysicsVector RotationalVelocity | 338 | public override PhysicsVector RotationalVelocity |
335 | { | 339 | { |
336 | get { return m_rotationalVelocity; } | 340 | get { return m_rotationalVelocity; } |
337 | set { m_rotationalVelocity = value; } | 341 | set { m_rotationalVelocity = value; } |
338 | } | 342 | } |
343 | |||
339 | public override bool SetAlwaysRun | 344 | public override bool SetAlwaysRun |
340 | { | 345 | { |
341 | get { return false; } | 346 | get { return false; } |
342 | set { return; } | 347 | set { return; } |
343 | } | 348 | } |
349 | |||
344 | public override bool IsPhysical | 350 | public override bool IsPhysical |
345 | { | 351 | { |
346 | get { return false; } | 352 | get { return false; } |
347 | set { return; } | 353 | set { return; } |
348 | } | 354 | } |
355 | |||
349 | public override bool ThrottleUpdates | 356 | public override bool ThrottleUpdates |
350 | { | 357 | { |
351 | get { return false; } | 358 | get { return false; } |
352 | set { return; } | 359 | set { return; } |
353 | } | 360 | } |
361 | |||
354 | public override bool Flying | 362 | public override bool Flying |
355 | { | 363 | { |
356 | get { return flying; } | 364 | get { return flying; } |
@@ -362,16 +370,19 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
362 | get { return iscolliding; } | 370 | get { return iscolliding; } |
363 | set { iscolliding = value; } | 371 | set { iscolliding = value; } |
364 | } | 372 | } |
373 | |||
365 | public override bool CollidingGround | 374 | public override bool CollidingGround |
366 | { | 375 | { |
367 | get { return false; } | 376 | get { return false; } |
368 | set { return; } | 377 | set { return; } |
369 | } | 378 | } |
379 | |||
370 | public override bool CollidingObj | 380 | public override bool CollidingObj |
371 | { | 381 | { |
372 | get { return false; } | 382 | get { return false; } |
373 | set { return; } | 383 | set { return; } |
374 | } | 384 | } |
385 | |||
375 | public override PhysicsVector Position | 386 | public override PhysicsVector Position |
376 | { | 387 | { |
377 | get { return _position; } | 388 | get { return _position; } |
@@ -383,18 +394,22 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
383 | get { return new PhysicsVector(0.5f, 0.5f, 1.0f); } | 394 | get { return new PhysicsVector(0.5f, 0.5f, 1.0f); } |
384 | set { } | 395 | set { } |
385 | } | 396 | } |
397 | |||
386 | public override float Mass | 398 | public override float Mass |
387 | { | 399 | { |
388 | get { return 0f; } | 400 | get { return 0f; } |
389 | } | 401 | } |
402 | |||
390 | public override PhysicsVector Force | 403 | public override PhysicsVector Force |
391 | { | 404 | { |
392 | get { return PhysicsVector.Zero; } | 405 | get { return PhysicsVector.Zero; } |
393 | } | 406 | } |
407 | |||
394 | public override PhysicsVector CenterOfMass | 408 | public override PhysicsVector CenterOfMass |
395 | { | 409 | { |
396 | get { return PhysicsVector.Zero; } | 410 | get { return PhysicsVector.Zero; } |
397 | } | 411 | } |
412 | |||
398 | public override PhysicsVector GeometricCenter | 413 | public override PhysicsVector GeometricCenter |
399 | { | 414 | { |
400 | get { return PhysicsVector.Zero; } | 415 | get { return PhysicsVector.Zero; } |
@@ -402,10 +417,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
402 | 417 | ||
403 | public override PrimitiveBaseShape Shape | 418 | public override PrimitiveBaseShape Shape |
404 | { | 419 | { |
405 | set | 420 | set { return; } |
406 | { | ||
407 | return; | ||
408 | } | ||
409 | } | 421 | } |
410 | 422 | ||
411 | public override PhysicsVector Velocity | 423 | public override PhysicsVector Velocity |
@@ -461,41 +473,49 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
461 | _position = new PhysicsVector(); | 473 | _position = new PhysicsVector(); |
462 | _acceleration = new PhysicsVector(); | 474 | _acceleration = new PhysicsVector(); |
463 | } | 475 | } |
476 | |||
464 | public override int PhysicsActorType | 477 | public override int PhysicsActorType |
465 | { | 478 | { |
466 | get { return (int)ActorTypes.Prim; } | 479 | get { return (int) ActorTypes.Prim; } |
467 | set { return; } | 480 | set { return; } |
468 | } | 481 | } |
482 | |||
469 | public override PhysicsVector RotationalVelocity | 483 | public override PhysicsVector RotationalVelocity |
470 | { | 484 | { |
471 | get { return m_rotationalVelocity; } | 485 | get { return m_rotationalVelocity; } |
472 | set { m_rotationalVelocity = value; } | 486 | set { m_rotationalVelocity = value; } |
473 | } | 487 | } |
488 | |||
474 | public override bool IsPhysical | 489 | public override bool IsPhysical |
475 | { | 490 | { |
476 | get { return false; } | 491 | get { return false; } |
477 | set { return; } | 492 | set { return; } |
478 | } | 493 | } |
494 | |||
479 | public override bool ThrottleUpdates | 495 | public override bool ThrottleUpdates |
480 | { | 496 | { |
481 | get { return false; } | 497 | get { return false; } |
482 | set { return; } | 498 | set { return; } |
483 | } | 499 | } |
500 | |||
484 | public override bool IsColliding | 501 | public override bool IsColliding |
485 | { | 502 | { |
486 | get { return iscolliding; } | 503 | get { return iscolliding; } |
487 | set { iscolliding = value; } | 504 | set { iscolliding = value; } |
488 | } | 505 | } |
506 | |||
489 | public override bool CollidingGround | 507 | public override bool CollidingGround |
490 | { | 508 | { |
491 | get { return false; } | 509 | get { return false; } |
492 | set { return; } | 510 | set { return; } |
493 | } | 511 | } |
512 | |||
494 | public override bool CollidingObj | 513 | public override bool CollidingObj |
495 | { | 514 | { |
496 | get { return false; } | 515 | get { return false; } |
497 | set { return; } | 516 | set { return; } |
498 | } | 517 | } |
518 | |||
499 | public override PhysicsVector Position | 519 | public override PhysicsVector Position |
500 | { | 520 | { |
501 | get { return _position; } | 521 | get { return _position; } |
@@ -530,10 +550,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
530 | 550 | ||
531 | public override PrimitiveBaseShape Shape | 551 | public override PrimitiveBaseShape Shape |
532 | { | 552 | { |
533 | set | 553 | set { return; } |
534 | { | ||
535 | return; | ||
536 | } | ||
537 | } | 554 | } |
538 | 555 | ||
539 | public override PhysicsVector Velocity | 556 | public override PhysicsVector Velocity |
@@ -571,6 +588,7 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
571 | public override void SetMomentum(PhysicsVector momentum) | 588 | public override void SetMomentum(PhysicsVector momentum) |
572 | { | 589 | { |
573 | } | 590 | } |
591 | |||
574 | public override bool Flying | 592 | public override bool Flying |
575 | { | 593 | { |
576 | get { return false; } | 594 | get { return false; } |
@@ -583,4 +601,4 @@ namespace OpenSim.Region.Physics.POSPlugin | |||
583 | set { return; } | 601 | set { return; } |
584 | } | 602 | } |
585 | } | 603 | } |
586 | } | 604 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/PhysXPlugin/AssemblyInfo.cs b/OpenSim/Region/Physics/PhysXPlugin/AssemblyInfo.cs index 8e6d2a6..36cb952 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/AssemblyInfo.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/AssemblyInfo.cs | |||
@@ -55,4 +55,4 @@ using System.Runtime.InteropServices; | |||
55 | // You can specify all values by your own or you can build default build and revision | 55 | // You can specify all values by your own or you can build default build and revision |
56 | // numbers with the '*' character (the default): | 56 | // numbers with the '*' character (the default): |
57 | 57 | ||
58 | [assembly : AssemblyVersion("1.0.*")] | 58 | [assembly : AssemblyVersion("1.0.*")] \ No newline at end of file |
diff --git a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs index 8525e75..20bf358 100644 --- a/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs +++ b/OpenSim/Region/Physics/PhysXPlugin/PhysXPlugin.cs | |||
@@ -128,17 +128,19 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
128 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 128 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
129 | PhysicsVector size, Quaternion rotation) //To be removed | 129 | PhysicsVector size, Quaternion rotation) //To be removed |
130 | { | 130 | { |
131 | return this.AddPrimShape(primName, pbs, position, size, rotation, false); | 131 | return AddPrimShape(primName, pbs, position, size, rotation, false); |
132 | } | 132 | } |
133 | |||
133 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, | 134 | public override PhysicsActor AddPrimShape(string primName, PrimitiveBaseShape pbs, PhysicsVector position, |
134 | PhysicsVector size, Quaternion rotation, bool isPhysical) | 135 | PhysicsVector size, Quaternion rotation, bool isPhysical) |
135 | { | 136 | { |
136 | return AddPrim(position, size, rotation); | 137 | return AddPrim(position, size, rotation); |
137 | } | 138 | } |
139 | |||
138 | public override void AddPhysicsActorTaint(PhysicsActor prim) | 140 | public override void AddPhysicsActorTaint(PhysicsActor prim) |
139 | { | 141 | { |
140 | |||
141 | } | 142 | } |
143 | |||
142 | public override float Simulate(float timeStep) | 144 | public override float Simulate(float timeStep) |
143 | { | 145 | { |
144 | float fps = 0f; | 146 | float fps = 0f; |
@@ -209,51 +211,61 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
209 | _acceleration = new PhysicsVector(); | 211 | _acceleration = new PhysicsVector(); |
210 | _character = character; | 212 | _character = character; |
211 | } | 213 | } |
214 | |||
212 | public override int PhysicsActorType | 215 | public override int PhysicsActorType |
213 | { | 216 | { |
214 | get { return (int)ActorTypes.Agent; } | 217 | get { return (int) ActorTypes.Agent; } |
215 | set { return; } | 218 | set { return; } |
216 | } | 219 | } |
220 | |||
217 | public override bool SetAlwaysRun | 221 | public override bool SetAlwaysRun |
218 | { | 222 | { |
219 | get { return false; } | 223 | get { return false; } |
220 | set { return; } | 224 | set { return; } |
221 | } | 225 | } |
226 | |||
222 | public override bool IsPhysical | 227 | public override bool IsPhysical |
223 | { | 228 | { |
224 | get { return false; } | 229 | get { return false; } |
225 | set { return; } | 230 | set { return; } |
226 | } | 231 | } |
232 | |||
227 | public override bool ThrottleUpdates | 233 | public override bool ThrottleUpdates |
228 | { | 234 | { |
229 | get { return false; } | 235 | get { return false; } |
230 | set { return; } | 236 | set { return; } |
231 | } | 237 | } |
238 | |||
232 | public override bool Flying | 239 | public override bool Flying |
233 | { | 240 | { |
234 | get { return flying; } | 241 | get { return flying; } |
235 | set { flying = value; } | 242 | set { flying = value; } |
236 | } | 243 | } |
244 | |||
237 | public override bool IsColliding | 245 | public override bool IsColliding |
238 | { | 246 | { |
239 | get { return iscolliding; } | 247 | get { return iscolliding; } |
240 | set { iscolliding = value; } | 248 | set { iscolliding = value; } |
241 | } | 249 | } |
250 | |||
242 | public override bool CollidingGround | 251 | public override bool CollidingGround |
243 | { | 252 | { |
244 | get { return false; } | 253 | get { return false; } |
245 | set { return; } | 254 | set { return; } |
246 | } | 255 | } |
256 | |||
247 | public override bool CollidingObj | 257 | public override bool CollidingObj |
248 | { | 258 | { |
249 | get { return false; } | 259 | get { return false; } |
250 | set { return; } | 260 | set { return; } |
251 | } | 261 | } |
262 | |||
252 | public override PhysicsVector RotationalVelocity | 263 | public override PhysicsVector RotationalVelocity |
253 | { | 264 | { |
254 | get { return m_rotationalVelocity; } | 265 | get { return m_rotationalVelocity; } |
255 | set { m_rotationalVelocity = value; } | 266 | set { m_rotationalVelocity = value; } |
256 | } | 267 | } |
268 | |||
257 | public override PhysicsVector Position | 269 | public override PhysicsVector Position |
258 | { | 270 | { |
259 | get { return _position; } | 271 | get { return _position; } |
@@ -273,22 +285,27 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
273 | get { return PhysicsVector.Zero; } | 285 | get { return PhysicsVector.Zero; } |
274 | set { } | 286 | set { } |
275 | } | 287 | } |
288 | |||
276 | public override float Mass | 289 | public override float Mass |
277 | { | 290 | { |
278 | get { return 0f; } | 291 | get { return 0f; } |
279 | } | 292 | } |
293 | |||
280 | public override PhysicsVector Force | 294 | public override PhysicsVector Force |
281 | { | 295 | { |
282 | get { return PhysicsVector.Zero; } | 296 | get { return PhysicsVector.Zero; } |
283 | } | 297 | } |
298 | |||
284 | public override PhysicsVector CenterOfMass | 299 | public override PhysicsVector CenterOfMass |
285 | { | 300 | { |
286 | get { return PhysicsVector.Zero; } | 301 | get { return PhysicsVector.Zero; } |
287 | } | 302 | } |
303 | |||
288 | public override PhysicsVector GeometricCenter | 304 | public override PhysicsVector GeometricCenter |
289 | { | 305 | { |
290 | get { return PhysicsVector.Zero; } | 306 | get { return PhysicsVector.Zero; } |
291 | } | 307 | } |
308 | |||
292 | public override PhysicsVector Velocity | 309 | public override PhysicsVector Velocity |
293 | { | 310 | { |
294 | get { return _velocity; } | 311 | get { return _velocity; } |
@@ -345,23 +362,21 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
345 | gravityAccel = 0; | 362 | gravityAccel = 0; |
346 | } | 363 | } |
347 | } | 364 | } |
365 | |||
348 | public override PrimitiveBaseShape Shape | 366 | public override PrimitiveBaseShape Shape |
349 | { | 367 | { |
350 | set | 368 | set { return; } |
351 | { | 369 | } |
352 | return; | 370 | |
353 | } | 371 | public void UpdatePosition() |
372 | { | ||
373 | Vec3 vec = _character.Position; | ||
374 | _position.X = vec.X; | ||
375 | _position.Y = vec.Y; | ||
376 | _position.Z = vec.Z; | ||
354 | } | 377 | } |
355 | 378 | } | |
356 | public void UpdatePosition() | 379 | |
357 | { | ||
358 | Vec3 vec = this._character.Position; | ||
359 | this._position.X = vec.X; | ||
360 | this._position.Y = vec.Y; | ||
361 | this._position.Z = vec.Z; | ||
362 | } | ||
363 | } | ||
364 | |||
365 | 380 | ||
366 | public class PhysXPrim : PhysicsActor | 381 | public class PhysXPrim : PhysicsActor |
367 | { | 382 | { |
@@ -376,55 +391,62 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
376 | _acceleration = new PhysicsVector(); | 391 | _acceleration = new PhysicsVector(); |
377 | _prim = prim; | 392 | _prim = prim; |
378 | } | 393 | } |
394 | |||
379 | public override int PhysicsActorType | 395 | public override int PhysicsActorType |
380 | { | 396 | { |
381 | get { return (int)ActorTypes.Prim; } | 397 | get { return (int) ActorTypes.Prim; } |
382 | set { return; } | 398 | set { return; } |
383 | } | 399 | } |
400 | |||
384 | public override bool IsPhysical | 401 | public override bool IsPhysical |
385 | { | 402 | { |
386 | get { return false; } | 403 | get { return false; } |
387 | set { return; } | 404 | set { return; } |
388 | } | 405 | } |
406 | |||
389 | public override bool SetAlwaysRun | 407 | public override bool SetAlwaysRun |
390 | { | 408 | { |
391 | get { return false; } | 409 | get { return false; } |
392 | set { return; } | 410 | set { return; } |
393 | } | 411 | } |
412 | |||
394 | public override bool ThrottleUpdates | 413 | public override bool ThrottleUpdates |
395 | { | 414 | { |
396 | get { return false; } | 415 | get { return false; } |
397 | set { return; } | 416 | set { return; } |
398 | } | 417 | } |
418 | |||
399 | public override PhysicsVector RotationalVelocity | 419 | public override PhysicsVector RotationalVelocity |
400 | { | 420 | { |
401 | get { return m_rotationalVelocity; } | 421 | get { return m_rotationalVelocity; } |
402 | set { m_rotationalVelocity = value; } | 422 | set { m_rotationalVelocity = value; } |
403 | } | 423 | } |
424 | |||
404 | public override bool Flying | 425 | public override bool Flying |
405 | { | 426 | { |
406 | get { return false; //no flying prims for you | 427 | get { return false; //no flying prims for you |
407 | } | 428 | } |
408 | set { } | 429 | set { } |
409 | } | 430 | } |
431 | |||
410 | public override bool IsColliding | 432 | public override bool IsColliding |
411 | { | 433 | { |
412 | get | 434 | get { return false; } |
413 | { | ||
414 | return false; | ||
415 | } | ||
416 | set { } | 435 | set { } |
417 | } | 436 | } |
437 | |||
418 | public override bool CollidingGround | 438 | public override bool CollidingGround |
419 | { | 439 | { |
420 | get { return false; } | 440 | get { return false; } |
421 | set { return; } | 441 | set { return; } |
422 | } | 442 | } |
443 | |||
423 | public override bool CollidingObj | 444 | public override bool CollidingObj |
424 | { | 445 | { |
425 | get { return false; } | 446 | get { return false; } |
426 | set { return; } | 447 | set { return; } |
427 | } | 448 | } |
449 | |||
428 | public override PhysicsVector Position | 450 | public override PhysicsVector Position |
429 | { | 451 | { |
430 | get | 452 | get |
@@ -449,75 +471,52 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
449 | 471 | ||
450 | public override PrimitiveBaseShape Shape | 472 | public override PrimitiveBaseShape Shape |
451 | { | 473 | { |
452 | set | 474 | set { return; } |
453 | { | ||
454 | return; | ||
455 | } | ||
456 | } | 475 | } |
457 | 476 | ||
458 | public override PhysicsVector Velocity | 477 | public override PhysicsVector Velocity |
459 | { | 478 | { |
460 | get | 479 | get { return _velocity; } |
461 | { | 480 | set { _velocity = value; } |
462 | return _velocity; | ||
463 | } | ||
464 | set | ||
465 | { | ||
466 | _velocity = value; | ||
467 | } | ||
468 | } | 481 | } |
469 | 482 | ||
470 | public override bool Kinematic | 483 | public override bool Kinematic |
471 | { | 484 | { |
472 | get | 485 | get { return _prim.Kinematic; } |
473 | { | 486 | set { _prim.Kinematic = value; } |
474 | return this._prim.Kinematic; | ||
475 | } | ||
476 | set | ||
477 | { | ||
478 | this._prim.Kinematic = value; | ||
479 | } | ||
480 | } | 487 | } |
481 | 488 | ||
482 | public override Quaternion Orientation | 489 | public override Quaternion Orientation |
483 | { | 490 | { |
484 | get | 491 | get |
485 | { | 492 | { |
486 | Quaternion res = new Quaternion(); | 493 | Quaternion res = new Quaternion(); |
487 | PhysXWrapper.Quaternion quat = this._prim.GetOrientation(); | 494 | PhysXWrapper.Quaternion quat = _prim.GetOrientation(); |
488 | res.w = quat.W; | 495 | res.w = quat.W; |
489 | res.x = quat.X; | 496 | res.x = quat.X; |
490 | res.y = quat.Y; | 497 | res.y = quat.Y; |
491 | res.z = quat.Z; | 498 | res.z = quat.Z; |
492 | return res; | 499 | return res; |
493 | } | 500 | } |
494 | set | 501 | set { } |
495 | { | ||
496 | |||
497 | } | ||
498 | } | 502 | } |
499 | 503 | ||
500 | public override PhysicsVector Acceleration | 504 | public override PhysicsVector Acceleration |
501 | { | 505 | { |
502 | get | 506 | get { return _acceleration; } |
503 | { | ||
504 | return _acceleration; | ||
505 | } | ||
506 | |||
507 | } | 507 | } |
508 | public void SetAcceleration (PhysicsVector accel) | 508 | |
509 | public void SetAcceleration(PhysicsVector accel) | ||
509 | { | 510 | { |
510 | this._acceleration = accel; | 511 | _acceleration = accel; |
511 | } | 512 | } |
512 | 513 | ||
513 | public override void AddForce(PhysicsVector force) | 514 | public override void AddForce(PhysicsVector force) |
514 | { | 515 | { |
515 | |||
516 | } | 516 | } |
517 | 517 | ||
518 | public override void SetMomentum(PhysicsVector momentum) | 518 | public override void SetMomentum(PhysicsVector momentum) |
519 | { | 519 | { |
520 | |||
521 | } | 520 | } |
522 | 521 | ||
523 | public override PhysicsVector Size | 522 | public override PhysicsVector Size |
@@ -545,6 +544,5 @@ namespace OpenSim.Region.Physics.PhysXPlugin | |||
545 | { | 544 | { |
546 | get { return PhysicsVector.Zero; } | 545 | get { return PhysicsVector.Zero; } |
547 | } | 546 | } |
548 | |||
549 | } | 547 | } |
550 | } | 548 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs index 6ba7018..9c595ed 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_BuiltIn_Commands_Interface.cs | |||
@@ -634,4 +634,4 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
634 | //OpenSim functions | 634 | //OpenSim functions |
635 | string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer); | 635 | string osSetDynamicTextureURL(string dynamicID, string contentType, string url, string extraParams, int timer); |
636 | } | 636 | } |
637 | } | 637 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs index 3a0b8ed..232baf8 100644 --- a/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs +++ b/OpenSim/Region/ScriptEngine/Common/LSL_Types.cs | |||
@@ -80,7 +80,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
80 | { | 80 | { |
81 | if (!(o is Vector3)) return false; | 81 | if (!(o is Vector3)) return false; |
82 | 82 | ||
83 | Vector3 vector = (Vector3)o; | 83 | Vector3 vector = (Vector3) o; |
84 | 84 | ||
85 | return (x == vector.x && x == vector.x && z == vector.z); | 85 | return (x == vector.x && x == vector.x && z == vector.z); |
86 | } | 86 | } |
@@ -88,11 +88,12 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
88 | #endregion | 88 | #endregion |
89 | 89 | ||
90 | #region Vector & Vector Math | 90 | #region Vector & Vector Math |
91 | |||
91 | // Vector-Vector Math | 92 | // Vector-Vector Math |
92 | public static Vector3 operator +(Vector3 lhs, Vector3 rhs) | 93 | public static Vector3 operator +(Vector3 lhs, Vector3 rhs) |
93 | { | 94 | { |
94 | return new Vector3(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z); | 95 | return new Vector3(lhs.x + rhs.x, lhs.y + rhs.y, lhs.z + rhs.z); |
95 | } | 96 | } |
96 | 97 | ||
97 | public static Vector3 operator -(Vector3 lhs, Vector3 rhs) | 98 | public static Vector3 operator -(Vector3 lhs, Vector3 rhs) |
98 | { | 99 | { |
@@ -101,51 +102,53 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
101 | 102 | ||
102 | public static Vector3 operator *(Vector3 lhs, Vector3 rhs) | 103 | public static Vector3 operator *(Vector3 lhs, Vector3 rhs) |
103 | { | 104 | { |
104 | return new Vector3(lhs.x * rhs.x, lhs.y * rhs.y, lhs.z * rhs.z); | 105 | return new Vector3(lhs.x*rhs.x, lhs.y*rhs.y, lhs.z*rhs.z); |
105 | } | 106 | } |
106 | 107 | ||
107 | public static Vector3 operator %(Vector3 v1, Vector3 v2) | 108 | public static Vector3 operator %(Vector3 v1, Vector3 v2) |
108 | { | 109 | { |
109 | //Cross product | 110 | //Cross product |
110 | Vector3 tv; | 111 | Vector3 tv; |
111 | tv.x = (v1.y * v2.z) - (v1.z * v2.y); | 112 | tv.x = (v1.y*v2.z) - (v1.z*v2.y); |
112 | tv.y = (v1.z * v2.x) - (v1.x * v2.z); | 113 | tv.y = (v1.z*v2.x) - (v1.x*v2.z); |
113 | tv.z = (v1.x * v2.y) - (v1.y * v2.x); | 114 | tv.z = (v1.x*v2.y) - (v1.y*v2.x); |
114 | return tv; | 115 | return tv; |
115 | } | 116 | } |
116 | 117 | ||
117 | #endregion | 118 | #endregion |
118 | 119 | ||
119 | #region Vector & Float Math | 120 | #region Vector & Float Math |
121 | |||
120 | // Vector-Float and Float-Vector Math | 122 | // Vector-Float and Float-Vector Math |
121 | public static Vector3 operator *(Vector3 vec, float val) | 123 | public static Vector3 operator *(Vector3 vec, float val) |
122 | { | 124 | { |
123 | return new Vector3(vec.x * val, vec.y * val, vec.z * val); | 125 | return new Vector3(vec.x*val, vec.y*val, vec.z*val); |
124 | } | 126 | } |
125 | 127 | ||
126 | public static Vector3 operator *(float val, Vector3 vec) | 128 | public static Vector3 operator *(float val, Vector3 vec) |
127 | { | 129 | { |
128 | return new Vector3(vec.x * val, vec.y * val, vec.z * val); | 130 | return new Vector3(vec.x*val, vec.y*val, vec.z*val); |
129 | } | 131 | } |
130 | 132 | ||
131 | public static Vector3 operator /(Vector3 v, float f) | 133 | public static Vector3 operator /(Vector3 v, float f) |
132 | { | 134 | { |
133 | v.x = v.x / f; | 135 | v.x = v.x/f; |
134 | v.y = v.y / f; | 136 | v.y = v.y/f; |
135 | v.z = v.z / f; | 137 | v.z = v.z/f; |
136 | return v; | 138 | return v; |
137 | } | 139 | } |
138 | 140 | ||
139 | #endregion | 141 | #endregion |
140 | 142 | ||
141 | #region Vector & Rotation Math | 143 | #region Vector & Rotation Math |
144 | |||
142 | // Vector-Rotation Math | 145 | // Vector-Rotation Math |
143 | public static Vector3 operator *(Vector3 v, Quaternion r) | 146 | public static Vector3 operator *(Vector3 v, Quaternion r) |
144 | { | 147 | { |
145 | Quaternion vq = new Quaternion(v.x, v.y, v.z, 0); | 148 | Quaternion vq = new Quaternion(v.x, v.y, v.z, 0); |
146 | Quaternion nq = new Quaternion(-r.x, -r.y, -r.z, r.s); | 149 | Quaternion nq = new Quaternion(-r.x, -r.y, -r.z, r.s); |
147 | 150 | ||
148 | Quaternion result = (r * vq) * nq; | 151 | Quaternion result = (r*vq)*nq; |
149 | 152 | ||
150 | return new Vector3(result.x, result.y, result.z); | 153 | return new Vector3(result.x, result.y, result.z); |
151 | } | 154 | } |
@@ -157,38 +160,41 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
157 | Quaternion vq = new Quaternion(vec.x, vec.y, vec.z, 0); | 160 | Quaternion vq = new Quaternion(vec.x, vec.y, vec.z, 0); |
158 | Quaternion nq = new Quaternion(-quat.x, -quat.y, -quat.z, quat.s); | 161 | Quaternion nq = new Quaternion(-quat.x, -quat.y, -quat.z, quat.s); |
159 | 162 | ||
160 | Quaternion result = (quat * vq) * nq; | 163 | Quaternion result = (quat*vq)*nq; |
161 | 164 | ||
162 | return new Vector3(result.x, result.y, result.z); | 165 | return new Vector3(result.x, result.y, result.z); |
163 | } | 166 | } |
167 | |||
164 | #endregion | 168 | #endregion |
165 | 169 | ||
166 | #region Static Helper Functions | 170 | #region Static Helper Functions |
171 | |||
167 | public static double Dot(Vector3 v1, Vector3 v2) | 172 | public static double Dot(Vector3 v1, Vector3 v2) |
168 | { | 173 | { |
169 | return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z); | 174 | return (v1.x*v2.x) + (v1.y*v2.y) + (v1.z*v2.z); |
170 | } | 175 | } |
171 | 176 | ||
172 | public static Vector3 Cross(Vector3 v1, Vector3 v2) | 177 | public static Vector3 Cross(Vector3 v1, Vector3 v2) |
173 | { | 178 | { |
174 | return new Vector3 | 179 | return new Vector3 |
175 | ( | 180 | ( |
176 | v1.y * v2.z - v1.z * v2.y, | 181 | v1.y*v2.z - v1.z*v2.y, |
177 | v1.z * v2.x - v1.x * v2.z, | 182 | v1.z*v2.x - v1.x*v2.z, |
178 | v1.x * v2.y - v1.y * v2.x | 183 | v1.x*v2.y - v1.y*v2.x |
179 | ); | 184 | ); |
180 | } | 185 | } |
181 | 186 | ||
182 | public static float Mag(Vector3 v) | 187 | public static float Mag(Vector3 v) |
183 | { | 188 | { |
184 | return (float)Math.Sqrt(v.x * v.y + v.y * v.y + v.z * v.z); | 189 | return (float) Math.Sqrt(v.x*v.y + v.y*v.y + v.z*v.z); |
185 | } | 190 | } |
186 | 191 | ||
187 | public static Vector3 Norm(Vector3 vector) | 192 | public static Vector3 Norm(Vector3 vector) |
188 | { | 193 | { |
189 | float mag = Mag(vector); | 194 | float mag = Mag(vector); |
190 | return new Vector3(vector.x / mag, vector.y / mag, vector.z / mag); | 195 | return new Vector3(vector.x/mag, vector.y/mag, vector.z/mag); |
191 | } | 196 | } |
197 | |||
192 | #endregion | 198 | #endregion |
193 | } | 199 | } |
194 | 200 | ||
@@ -227,7 +233,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
227 | { | 233 | { |
228 | if (!(o is Quaternion)) return false; | 234 | if (!(o is Quaternion)) return false; |
229 | 235 | ||
230 | Quaternion quaternion = (Quaternion)o; | 236 | Quaternion quaternion = (Quaternion) o; |
231 | 237 | ||
232 | return x == quaternion.x && y == quaternion.y && z == quaternion.z && s == quaternion.s; | 238 | return x == quaternion.x && y == quaternion.y && z == quaternion.z && s == quaternion.s; |
233 | } | 239 | } |
@@ -253,10 +259,10 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
253 | public static Quaternion operator *(Quaternion a, Quaternion b) | 259 | public static Quaternion operator *(Quaternion a, Quaternion b) |
254 | { | 260 | { |
255 | Quaternion c; | 261 | Quaternion c; |
256 | c.x = a.s * b.x + a.x * b.s + a.y * b.z - a.z * b.y; | 262 | c.x = a.s*b.x + a.x*b.s + a.y*b.z - a.z*b.y; |
257 | c.y = a.s * b.y + a.y * b.s + a.z * b.x - a.x * b.z; | 263 | c.y = a.s*b.y + a.y*b.s + a.z*b.x - a.x*b.z; |
258 | c.z = a.s * b.z + a.z * b.s + a.x * b.y - a.y * b.x; | 264 | c.z = a.s*b.z + a.z*b.s + a.x*b.y - a.y*b.x; |
259 | c.s = a.s * b.s - a.x * b.x - a.y * b.y - a.z * b.z; | 265 | c.s = a.s*b.s - a.x*b.x - a.y*b.y - a.z*b.z; |
260 | return c; | 266 | return c; |
261 | } | 267 | } |
262 | } | 268 | } |
@@ -324,7 +330,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
324 | { | 330 | { |
325 | if (start >= m_data.Length) | 331 | if (start >= m_data.Length) |
326 | { | 332 | { |
327 | return this.GetSublist(0, end); | 333 | return GetSublist(0, end); |
328 | } | 334 | } |
329 | if (end >= m_data.Length) | 335 | if (end >= m_data.Length) |
330 | { | 336 | { |
@@ -334,7 +340,7 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
334 | //ret = new object[m_data.Length - Math.Abs(end - start + 1)]; | 340 | //ret = new object[m_data.Length - Math.Abs(end - start + 1)]; |
335 | //Array.Copy(m_data, 0, ret, m_data.Length - start, end + 1); | 341 | //Array.Copy(m_data, 0, ret, m_data.Length - start, end + 1); |
336 | //Array.Copy(m_data, start, ret, 0, m_data.Length - start); | 342 | //Array.Copy(m_data, start, ret, 0, m_data.Length - start); |
337 | return this.GetSublist(0, end) + this.GetSublist(start, this.Data.Length - 1); | 343 | return GetSublist(0, end) + GetSublist(start, Data.Length - 1); |
338 | //return new list(ret); | 344 | //return new list(ret); |
339 | } | 345 | } |
340 | } | 346 | } |
@@ -379,4 +385,4 @@ namespace OpenSim.Region.ScriptEngine.Common | |||
379 | } | 385 | } |
380 | } | 386 | } |
381 | } | 387 | } |
382 | } | 388 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs index e5f7220..4594ad8 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Common.cs | |||
@@ -52,4 +52,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
52 | //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message); | 52 | //SendToLogEvent("\r\n" + DateTime.Now.ToString("[HH:mm:ss] ") + Message); |
53 | } | 53 | } |
54 | } | 54 | } |
55 | } | 55 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs index c81e6bd..0623cc5 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/Compiler.cs | |||
@@ -39,7 +39,10 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
39 | private LSL2CSConverter LSL_Converter = new LSL2CSConverter(); | 39 | private LSL2CSConverter LSL_Converter = new LSL2CSConverter(); |
40 | private CSharpCodeProvider codeProvider = new CSharpCodeProvider(); | 40 | private CSharpCodeProvider codeProvider = new CSharpCodeProvider(); |
41 | private static UInt64 scriptCompileCounter = 0; | 41 | private static UInt64 scriptCompileCounter = 0; |
42 | private static int instanceID = new Random().Next(0, int.MaxValue); // Implemented due to peer preassure --- will cause garbage in ScriptEngines folder ;) | 42 | |
43 | private static int instanceID = new Random().Next(0, int.MaxValue); | ||
44 | // Implemented due to peer preassure --- will cause garbage in ScriptEngines folder ;) | ||
45 | |||
43 | //private ICodeCompiler icc = codeProvider.CreateCompiler(); | 46 | //private ICodeCompiler icc = codeProvider.CreateCompiler(); |
44 | public string CompileFromFile(string LSOFileName) | 47 | public string CompileFromFile(string LSOFileName) |
45 | { | 48 | { |
@@ -83,7 +86,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
83 | { | 86 | { |
84 | // Output assembly name | 87 | // Output assembly name |
85 | scriptCompileCounter++; | 88 | scriptCompileCounter++; |
86 | string OutFile = Path.Combine("ScriptEngines", "DotNetScript_" + instanceID.ToString() + "_" + scriptCompileCounter.ToString() + ".dll"); | 89 | string OutFile = |
90 | Path.Combine("ScriptEngines", | ||
91 | "DotNetScript_" + instanceID.ToString() + "_" + scriptCompileCounter.ToString() + ".dll"); | ||
87 | try | 92 | try |
88 | { | 93 | { |
89 | File.Delete(OutFile); | 94 | File.Delete(OutFile); |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs index 4063647..8e37798 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL2CSConverter.cs | |||
@@ -316,8 +316,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
316 | 316 | ||
317 | 317 | ||
318 | quotes.Clear(); | 318 | quotes.Clear(); |
319 | 319 | ||
320 | return Return; | 320 | return Return; |
321 | } | 321 | } |
322 | } | 322 | } |
323 | } | 323 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs index a9297fd..2796b64 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/LSL/LSL_BaseClass.cs | |||
@@ -1638,7 +1638,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
1638 | 1638 | ||
1639 | public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) | 1639 | public LSL_Types.list llListReplaceList(LSL_Types.list dest, LSL_Types.list src, int start, int end) |
1640 | { | 1640 | { |
1641 | return m_LSL_Functions.llListReplaceList(dest,src,start,end); | 1641 | return m_LSL_Functions.llListReplaceList(dest, src, start, end); |
1642 | } | 1642 | } |
1643 | 1643 | ||
1644 | public void llLoadURL(string avatar_id, string message, string url) | 1644 | public void llLoadURL(string avatar_id, string message, string url) |
@@ -2025,7 +2025,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
2025 | public const int REMOTE_DATA_CHANNEL = 1; | 2025 | public const int REMOTE_DATA_CHANNEL = 1; |
2026 | public const int REMOTE_DATA_REQUEST = 2; | 2026 | public const int REMOTE_DATA_REQUEST = 2; |
2027 | public const int REMOTE_DATA_REPLY = 3; | 2027 | public const int REMOTE_DATA_REPLY = 3; |
2028 | 2028 | ||
2029 | public const int PRIM_MATERIAL = 2; | 2029 | public const int PRIM_MATERIAL = 2; |
2030 | public const int PRIM_PHYSICS = 3; | 2030 | public const int PRIM_PHYSICS = 3; |
2031 | public const int PRIM_TEMP_ON_REZ = 4; | 2031 | public const int PRIM_TEMP_ON_REZ = 4; |
@@ -2041,7 +2041,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
2041 | public const int PRIM_FLEXIBLE = 21; | 2041 | public const int PRIM_FLEXIBLE = 21; |
2042 | public const int PRIM_TEXGEN = 22; | 2042 | public const int PRIM_TEXGEN = 22; |
2043 | public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake | 2043 | public const int PRIM_CAST_SHADOWS = 24; // Not implemented, here for completeness sake |
2044 | public const int PRIM_POINT_LIGHT = 23; // Huh? | 2044 | public const int PRIM_POINT_LIGHT = 23; // Huh? |
2045 | public const int PRIM_TEXGEN_DEFAULT = 0; | 2045 | public const int PRIM_TEXGEN_DEFAULT = 0; |
2046 | public const int PRIM_TEXGEN_PLANAR = 1; | 2046 | public const int PRIM_TEXGEN_PLANAR = 1; |
2047 | public const int PRIM_TYPE_BOX = 0; | 2047 | public const int PRIM_TYPE_BOX = 0; |
@@ -2122,4 +2122,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine.Compiler.LSL | |||
2122 | public vector ZERO_VECTOR = new vector(0, 0, 0); | 2122 | public vector ZERO_VECTOR = new vector(0, 0, 0); |
2123 | public rotation ZERO_ROTATION = new rotation(0, 0, 0, 0); | 2123 | public rotation ZERO_ROTATION = new rotation(0, 0, 0, 0); |
2124 | } | 2124 | } |
2125 | } | 2125 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs index bc47241..d5a31fb 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/Compiler/Server_API/LSL_BuiltIn_Commands.cs | |||
@@ -28,13 +28,11 @@ | |||
28 | 28 | ||
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Collections; | ||
32 | using System.Runtime.Remoting.Lifetime; | 31 | using System.Runtime.Remoting.Lifetime; |
33 | using System.Text; | 32 | using System.Text; |
34 | using System.Threading; | 33 | using System.Threading; |
35 | using Axiom.Math; | 34 | using Axiom.Math; |
36 | using libsecondlife; | 35 | using libsecondlife; |
37 | using libsecondlife.StructuredData; | ||
38 | using OpenSim.Framework; | 36 | using OpenSim.Framework; |
39 | using OpenSim.Region.Environment.Interfaces; | 37 | using OpenSim.Region.Environment.Interfaces; |
40 | using OpenSim.Region.Environment.Scenes; | 38 | using OpenSim.Region.Environment.Scenes; |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs index 161cedf..8dfd908 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventManager.cs | |||
@@ -217,4 +217,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
217 | { | 217 | { |
218 | } | 218 | } |
219 | } | 219 | } |
220 | } | 220 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs index 890335b..2d0d69d 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/EventQueueManager.cs | |||
@@ -184,9 +184,9 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
184 | { | 184 | { |
185 | #if DEBUG | 185 | #if DEBUG |
186 | m_ScriptEngine.Log.Debug("ScriptEngine", "Executing event:\r\n" | 186 | m_ScriptEngine.Log.Debug("ScriptEngine", "Executing event:\r\n" |
187 | + "QIS.localID: " + QIS.localID | 187 | + "QIS.localID: " + QIS.localID |
188 | + ", QIS.itemID: " + QIS.itemID | 188 | + ", QIS.itemID: " + QIS.itemID |
189 | + ", QIS.functionName: " + QIS.functionName); | 189 | + ", QIS.functionName: " + QIS.functionName); |
190 | #endif | 190 | #endif |
191 | m_ScriptEngine.m_ScriptManager.ExecuteEvent(QIS.localID, QIS.itemID, | 191 | m_ScriptEngine.m_ScriptManager.ExecuteEvent(QIS.localID, QIS.itemID, |
192 | QIS.functionName, QIS.param); | 192 | QIS.functionName, QIS.param); |
@@ -197,14 +197,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
197 | string text = "Error executing script function \"" + QIS.functionName + "\":\r\n"; | 197 | string text = "Error executing script function \"" + QIS.functionName + "\":\r\n"; |
198 | //if (e.InnerException != null) | 198 | //if (e.InnerException != null) |
199 | //{ | 199 | //{ |
200 | // Send inner exception | 200 | // Send inner exception |
201 | text += e.InnerException.Message.ToString(); | 201 | text += e.InnerException.Message.ToString(); |
202 | //} | 202 | //} |
203 | //else | 203 | //else |
204 | //{ | 204 | //{ |
205 | text += "\r\n"; | 205 | text += "\r\n"; |
206 | // Send normal | 206 | // Send normal |
207 | text += e.Message.ToString(); | 207 | text += e.Message.ToString(); |
208 | //} | 208 | //} |
209 | try | 209 | try |
210 | { | 210 | { |
@@ -222,7 +222,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
222 | //else | 222 | //else |
223 | //{ | 223 | //{ |
224 | // T oconsole | 224 | // T oconsole |
225 | m_ScriptEngine.Log.Error("ScriptEngine", "Unable to send text in-world:\r\n" + text); | 225 | m_ScriptEngine.Log.Error("ScriptEngine", |
226 | "Unable to send text in-world:\r\n" + text); | ||
226 | } | 227 | } |
227 | } | 228 | } |
228 | finally | 229 | finally |
@@ -338,4 +339,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
338 | } | 339 | } |
339 | } | 340 | } |
340 | } | 341 | } |
341 | } | 342 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs index fdd7260..e403385 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/LSLLongCmdHandler.cs | |||
@@ -202,17 +202,16 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
202 | 202 | ||
203 | public void CheckHttpRequests() | 203 | public void CheckHttpRequests() |
204 | { | 204 | { |
205 | IHttpRequests iHttpReq = | 205 | IHttpRequests iHttpReq = |
206 | m_ScriptEngine.World.RequestModuleInterface<IHttpRequests>(); | 206 | m_ScriptEngine.World.RequestModuleInterface<IHttpRequests>(); |
207 | 207 | ||
208 | HttpRequestClass httpInfo = null; | 208 | HttpRequestClass httpInfo = null; |
209 | 209 | ||
210 | if( iHttpReq != null ) | 210 | if (iHttpReq != null) |
211 | httpInfo = iHttpReq.GetNextCompletedRequest(); | 211 | httpInfo = iHttpReq.GetNextCompletedRequest(); |
212 | 212 | ||
213 | while ( httpInfo != null ) | 213 | while (httpInfo != null) |
214 | { | 214 | { |
215 | |||
216 | //Console.WriteLine("PICKED HTTP REQ:" + httpInfo.response_body + httpInfo.status); | 215 | //Console.WriteLine("PICKED HTTP REQ:" + httpInfo.response_body + httpInfo.status); |
217 | 216 | ||
218 | // Deliver data to prim's remote_data handler | 217 | // Deliver data to prim's remote_data handler |
@@ -221,7 +220,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
221 | // only returns the byte for HTTP_BODY_TRUNCATED, which is not | 220 | // only returns the byte for HTTP_BODY_TRUNCATED, which is not |
222 | // implemented here yet anyway. Should be fixed if/when maxsize | 221 | // implemented here yet anyway. Should be fixed if/when maxsize |
223 | // is supported | 222 | // is supported |
224 | 223 | ||
225 | object[] resobj = new object[] | 224 | object[] resobj = new object[] |
226 | { | 225 | { |
227 | httpInfo.reqID.ToString(), httpInfo.status, null, httpInfo.response_body | 226 | httpInfo.reqID.ToString(), httpInfo.status, null, httpInfo.response_body |
@@ -254,7 +253,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
254 | //Deliver data to prim's remote_data handler | 253 | //Deliver data to prim's remote_data handler |
255 | object[] resobj = new object[] | 254 | object[] resobj = new object[] |
256 | { | 255 | { |
257 | 2, rInfo.GetChannelKey().ToString(), rInfo.GetMessageID().ToString(), "", rInfo.GetIntValue(), | 256 | 2, rInfo.GetChannelKey().ToString(), rInfo.GetMessageID().ToString(), "", |
257 | rInfo.GetIntValue(), | ||
258 | rInfo.GetStrVal() | 258 | rInfo.GetStrVal() |
259 | }; | 259 | }; |
260 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( | 260 | m_ScriptEngine.m_EventQueueManager.AddToScriptQueue( |
@@ -284,4 +284,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
284 | } | 284 | } |
285 | } | 285 | } |
286 | } | 286 | } |
287 | } | 287 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs index c1c792c..82049f7 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptEngine.cs | |||
@@ -121,4 +121,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
121 | 121 | ||
122 | #endregion | 122 | #endregion |
123 | } | 123 | } |
124 | } | 124 | } \ No newline at end of file |
diff --git a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs index 6b83dff..e211902 100644 --- a/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs +++ b/OpenSim/Region/ScriptEngine/DotNetEngine/ScriptManager.cs | |||
@@ -224,7 +224,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
224 | 224 | ||
225 | #region Start/Stop/Reset script | 225 | #region Start/Stop/Reset script |
226 | 226 | ||
227 | Object startStopLock = new Object(); | 227 | private Object startStopLock = new Object(); |
228 | 228 | ||
229 | /// <summary> | 229 | /// <summary> |
230 | /// Fetches, loads and hooks up a script to an objects events | 230 | /// Fetches, loads and hooks up a script to an objects events |
@@ -261,7 +261,8 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
261 | } | 261 | } |
262 | 262 | ||
263 | // Create a new instance of the compiler (reuse) | 263 | // Create a new instance of the compiler (reuse) |
264 | Compiler.LSL.Compiler LSLCompiler = new Compiler.LSL.Compiler(); | 264 | private Compiler.LSL.Compiler LSLCompiler = new Compiler.LSL.Compiler(); |
265 | |||
265 | private void _StartScript(uint localID, LLUUID itemID, string Script) | 266 | private void _StartScript(uint localID, LLUUID itemID, string Script) |
266 | { | 267 | { |
267 | lock (startStopLock) | 268 | lock (startStopLock) |
@@ -316,7 +317,7 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
316 | CompiledScript.Start(LSLB); | 317 | CompiledScript.Start(LSLB); |
317 | 318 | ||
318 | // Fire the first start-event | 319 | // Fire the first start-event |
319 | m_scriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "state_entry", new object[] { }); | 320 | m_scriptEngine.m_EventQueueManager.AddToScriptQueue(localID, itemID, "state_entry", new object[] {}); |
320 | } | 321 | } |
321 | catch (Exception e) | 322 | catch (Exception e) |
322 | { | 323 | { |
@@ -327,12 +328,14 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
327 | string text = "Error compiling script:\r\n" + e.Message.ToString(); | 328 | string text = "Error compiling script:\r\n" + e.Message.ToString(); |
328 | if (text.Length > 1500) | 329 | if (text.Length > 1500) |
329 | text = text.Substring(0, 1500); | 330 | text = text.Substring(0, 1500); |
330 | World.SimChat(Helpers.StringToField(text), ChatTypeEnum.Say, 0, m_host.AbsolutePosition, m_host.Name, m_host.UUID); | 331 | World.SimChat(Helpers.StringToField(text), ChatTypeEnum.Say, 0, m_host.AbsolutePosition, |
332 | m_host.Name, m_host.UUID); | ||
331 | } | 333 | } |
332 | catch (Exception e2) | 334 | catch (Exception e2) |
333 | { | 335 | { |
334 | m_scriptEngine.Log.Error("ScriptEngine", "Error displaying error in-world: " + e2.ToString()); | 336 | m_scriptEngine.Log.Error("ScriptEngine", "Error displaying error in-world: " + e2.ToString()); |
335 | m_scriptEngine.Log.Error("ScriptEngine", "Errormessage: Error compiling script:\r\n" + e.Message.ToString()); | 337 | m_scriptEngine.Log.Error("ScriptEngine", |
338 | "Errormessage: Error compiling script:\r\n" + e.Message.ToString()); | ||
336 | } | 339 | } |
337 | } | 340 | } |
338 | } | 341 | } |
@@ -342,39 +345,39 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
342 | { | 345 | { |
343 | lock (startStopLock) | 346 | lock (startStopLock) |
344 | { | 347 | { |
345 | // Stop script | 348 | // Stop script |
346 | Console.WriteLine("Stop script localID: " + localID + " LLUID: " + itemID.ToString()); | 349 | Console.WriteLine("Stop script localID: " + localID + " LLUID: " + itemID.ToString()); |
347 | 350 | ||
348 | 351 | ||
349 | // Stop long command on script | 352 | // Stop long command on script |
350 | m_scriptEngine.m_LSLLongCmdHandler.RemoveScript(localID, itemID); | 353 | m_scriptEngine.m_LSLLongCmdHandler.RemoveScript(localID, itemID); |
351 | 354 | ||
352 | LSL_BaseClass LSLBC = GetScript(localID, itemID); | 355 | LSL_BaseClass LSLBC = GetScript(localID, itemID); |
353 | if (LSLBC == null) | 356 | if (LSLBC == null) |
354 | return; | 357 | return; |
355 | 358 | ||
356 | // TEMP: First serialize it | 359 | // TEMP: First serialize it |
357 | //GetSerializedScript(localID, itemID); | 360 | //GetSerializedScript(localID, itemID); |
358 | 361 | ||
359 | 362 | ||
360 | try | 363 | try |
361 | { | 364 | { |
362 | // Get AppDomain | 365 | // Get AppDomain |
363 | AppDomain ad = LSLBC.Exec.GetAppDomain(); | 366 | AppDomain ad = LSLBC.Exec.GetAppDomain(); |
364 | // Tell script not to accept new requests | 367 | // Tell script not to accept new requests |
365 | GetScript(localID, itemID).Exec.StopScript(); | 368 | GetScript(localID, itemID).Exec.StopScript(); |
366 | // Remove from internal structure | 369 | // Remove from internal structure |
367 | RemoveScript(localID, itemID); | 370 | RemoveScript(localID, itemID); |
368 | // Tell AppDomain that we have stopped script | 371 | // Tell AppDomain that we have stopped script |
369 | m_scriptEngine.m_AppDomainManager.StopScript(ad); | 372 | m_scriptEngine.m_AppDomainManager.StopScript(ad); |
370 | } | 373 | } |
371 | catch (Exception e) | 374 | catch (Exception e) |
372 | { | 375 | { |
373 | Console.WriteLine("Exception stopping script localID: " + localID + " LLUID: " + itemID.ToString() + | 376 | Console.WriteLine("Exception stopping script localID: " + localID + " LLUID: " + itemID.ToString() + |
374 | ": " + e.ToString()); | 377 | ": " + e.ToString()); |
378 | } | ||
375 | } | 379 | } |
376 | } | 380 | } |
377 | } | ||
378 | 381 | ||
379 | private string ProcessYield(string FileName) | 382 | private string ProcessYield(string FileName) |
380 | { | 383 | { |
@@ -435,4 +438,4 @@ namespace OpenSim.Region.ScriptEngine.DotNetEngine | |||
435 | 438 | ||
436 | #endregion | 439 | #endregion |
437 | } | 440 | } |
438 | } | 441 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs index 60aeb83..5818583 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.MSSQL/MSSQLDataStore.cs | |||
@@ -33,8 +33,8 @@ using System.Data.SqlClient; | |||
33 | using System.IO; | 33 | using System.IO; |
34 | using libsecondlife; | 34 | using libsecondlife; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Framework.Data; | ||
37 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
37 | using OpenSim.Framework.Data; | ||
38 | using OpenSim.Region.Environment.Interfaces; | 38 | using OpenSim.Region.Environment.Interfaces; |
39 | using OpenSim.Region.Environment.LandManagement; | 39 | using OpenSim.Region.Environment.LandManagement; |
40 | using OpenSim.Region.Environment.Scenes; | 40 | using OpenSim.Region.Environment.Scenes; |
@@ -62,7 +62,9 @@ namespace OpenSim.DataStore.MSSQL | |||
62 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); | 62 | string settingUserId = GridDataMySqlFile.ParseFileReadValue("user_id"); |
63 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); | 63 | string settingPassword = GridDataMySqlFile.ParseFileReadValue("password"); |
64 | 64 | ||
65 | string connectionString = "Data Source=" + settingDataSource + ";Initial Catalog=" + settingInitialCatalog + ";Persist Security Info=" + settingPersistSecurityInfo + ";User ID=" + settingUserId + ";Password=" + settingPassword + ";"; | 65 | string connectionString = "Data Source=" + settingDataSource + ";Initial Catalog=" + settingInitialCatalog + |
66 | ";Persist Security Info=" + settingPersistSecurityInfo + ";User ID=" + | ||
67 | settingUserId + ";Password=" + settingPassword + ";"; | ||
66 | 68 | ||
67 | ds = new DataSet(); | 69 | ds = new DataSet(); |
68 | 70 | ||
@@ -85,11 +87,12 @@ namespace OpenSim.DataStore.MSSQL | |||
85 | // primDa.FillSchema(ds, SchemaType.Source, "PrimSchema"); | 87 | // primDa.FillSchema(ds, SchemaType.Source, "PrimSchema"); |
86 | TestTables(conn); | 88 | TestTables(conn); |
87 | 89 | ||
88 | lock(ds) { | 90 | lock (ds) |
91 | { | ||
89 | ds.Tables.Add(createPrimTable()); | 92 | ds.Tables.Add(createPrimTable()); |
90 | setupPrimCommands(primDa, conn); | 93 | setupPrimCommands(primDa, conn); |
91 | primDa.Fill(ds.Tables["prims"]); | 94 | primDa.Fill(ds.Tables["prims"]); |
92 | 95 | ||
93 | ds.Tables.Add(createShapeTable()); | 96 | ds.Tables.Add(createShapeTable()); |
94 | setupShapeCommands(shapeDa, conn); | 97 | setupShapeCommands(shapeDa, conn); |
95 | 98 | ||
@@ -122,7 +125,8 @@ namespace OpenSim.DataStore.MSSQL | |||
122 | 125 | ||
123 | public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID) | 126 | public void StoreObject(SceneObjectGroup obj, LLUUID regionUUID) |
124 | { | 127 | { |
125 | lock (ds) { | 128 | lock (ds) |
129 | { | ||
126 | foreach (SceneObjectPart prim in obj.Children.Values) | 130 | foreach (SceneObjectPart prim in obj.Children.Values) |
127 | { | 131 | { |
128 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); | 132 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); |
@@ -140,11 +144,12 @@ namespace OpenSim.DataStore.MSSQL | |||
140 | DataTable shapes = ds.Tables["primshapes"]; | 144 | DataTable shapes = ds.Tables["primshapes"]; |
141 | 145 | ||
142 | string selectExp = "SceneGroupID = '" + obj.ToString() + "'"; | 146 | string selectExp = "SceneGroupID = '" + obj.ToString() + "'"; |
143 | lock (ds) { | 147 | lock (ds) |
148 | { | ||
144 | DataRow[] primRows = prims.Select(selectExp); | 149 | DataRow[] primRows = prims.Select(selectExp); |
145 | foreach (DataRow row in primRows) | 150 | foreach (DataRow row in primRows) |
146 | { | 151 | { |
147 | LLUUID uuid = new LLUUID((string)row["UUID"]); | 152 | LLUUID uuid = new LLUUID((string) row["UUID"]); |
148 | DataRow shapeRow = shapes.Rows.Find(uuid); | 153 | DataRow shapeRow = shapes.Rows.Find(uuid); |
149 | if (shapeRow != null) | 154 | if (shapeRow != null) |
150 | { | 155 | { |
@@ -153,7 +158,7 @@ namespace OpenSim.DataStore.MSSQL | |||
153 | row.Delete(); | 158 | row.Delete(); |
154 | } | 159 | } |
155 | } | 160 | } |
156 | 161 | ||
157 | Commit(); | 162 | Commit(); |
158 | } | 163 | } |
159 | 164 | ||
@@ -169,16 +174,18 @@ namespace OpenSim.DataStore.MSSQL | |||
169 | string byRegion = "RegionUUID = '" + regionUUID.ToString() + "'"; | 174 | string byRegion = "RegionUUID = '" + regionUUID.ToString() + "'"; |
170 | string orderByParent = "ParentID ASC"; | 175 | string orderByParent = "ParentID ASC"; |
171 | 176 | ||
172 | lock (ds) { | 177 | lock (ds) |
178 | { | ||
173 | DataRow[] primsForRegion = prims.Select(byRegion, orderByParent); | 179 | DataRow[] primsForRegion = prims.Select(byRegion, orderByParent); |
174 | MainLog.Instance.Verbose("DATASTORE", "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); | 180 | MainLog.Instance.Verbose("DATASTORE", |
175 | 181 | "Loaded " + primsForRegion.Length + " prims for region: " + regionUUID); | |
182 | |||
176 | foreach (DataRow primRow in primsForRegion) | 183 | foreach (DataRow primRow in primsForRegion) |
177 | { | 184 | { |
178 | try | 185 | try |
179 | { | 186 | { |
180 | string uuid = (string)primRow["UUID"]; | 187 | string uuid = (string) primRow["UUID"]; |
181 | string objID = (string)primRow["SceneGroupID"]; | 188 | string objID = (string) primRow["SceneGroupID"]; |
182 | if (uuid == objID) //is new SceneObjectGroup ? | 189 | if (uuid == objID) //is new SceneObjectGroup ? |
183 | { | 190 | { |
184 | SceneObjectGroup group = new SceneObjectGroup(); | 191 | SceneObjectGroup group = new SceneObjectGroup(); |
@@ -190,12 +197,13 @@ namespace OpenSim.DataStore.MSSQL | |||
190 | } | 197 | } |
191 | else | 198 | else |
192 | { | 199 | { |
193 | MainLog.Instance.Notice("No shape found for prim in storage, so setting default box shape"); | 200 | MainLog.Instance.Notice( |
201 | "No shape found for prim in storage, so setting default box shape"); | ||
194 | prim.Shape = BoxShape.Default; | 202 | prim.Shape = BoxShape.Default; |
195 | } | 203 | } |
196 | group.AddPart(prim); | 204 | group.AddPart(prim); |
197 | group.RootPart = prim; | 205 | group.RootPart = prim; |
198 | 206 | ||
199 | createdObjects.Add(group.UUID, group); | 207 | createdObjects.Add(group.UUID, group); |
200 | retvals.Add(group); | 208 | retvals.Add(group); |
201 | } | 209 | } |
@@ -209,7 +217,8 @@ namespace OpenSim.DataStore.MSSQL | |||
209 | } | 217 | } |
210 | else | 218 | else |
211 | { | 219 | { |
212 | MainLog.Instance.Notice("No shape found for prim in storage, so setting default box shape"); | 220 | MainLog.Instance.Notice( |
221 | "No shape found for prim in storage, so setting default box shape"); | ||
213 | prim.Shape = BoxShape.Default; | 222 | prim.Shape = BoxShape.Default; |
214 | } | 223 | } |
215 | createdObjects[new LLUUID(objID)].AddPart(prim); | 224 | createdObjects[new LLUUID(objID)].AddPart(prim); |
@@ -249,7 +258,7 @@ namespace OpenSim.DataStore.MSSQL | |||
249 | 258 | ||
250 | public double[,] LoadTerrain(LLUUID regionID) | 259 | public double[,] LoadTerrain(LLUUID regionID) |
251 | { | 260 | { |
252 | double[,] terret = new double[256, 256]; | 261 | double[,] terret = new double[256,256]; |
253 | terret.Initialize(); | 262 | terret.Initialize(); |
254 | 263 | ||
255 | DataTable terrain = ds.Tables["terrain"]; | 264 | DataTable terrain = ds.Tables["terrain"]; |
@@ -264,16 +273,16 @@ namespace OpenSim.DataStore.MSSQL | |||
264 | { | 273 | { |
265 | DataRow row = rows[0]; | 274 | DataRow row = rows[0]; |
266 | 275 | ||
267 | byte[] heightmap = (byte[])row["Heightfield"]; | 276 | byte[] heightmap = (byte[]) row["Heightfield"]; |
268 | for (int x = 0; x < 256; x++) | 277 | for (int x = 0; x < 256; x++) |
269 | { | 278 | { |
270 | for (int y = 0; y < 256; y++) | 279 | for (int y = 0; y < 256; y++) |
271 | { | 280 | { |
272 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x * 256) + y) * 8); | 281 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8); |
273 | } | 282 | } |
274 | } | 283 | } |
275 | 284 | ||
276 | rev = (int)row["Revision"]; | 285 | rev = (int) row["Revision"]; |
277 | } | 286 | } |
278 | else | 287 | else |
279 | { | 288 | { |
@@ -290,22 +299,21 @@ namespace OpenSim.DataStore.MSSQL | |||
290 | 299 | ||
291 | public void RemoveLandObject(LLUUID globalID) | 300 | public void RemoveLandObject(LLUUID globalID) |
292 | { | 301 | { |
293 | |||
294 | } | 302 | } |
295 | 303 | ||
296 | public void StoreLandObject(Land parcel, LLUUID regionUUID) | 304 | public void StoreLandObject(Land parcel, LLUUID regionUUID) |
297 | { | 305 | { |
298 | |||
299 | } | 306 | } |
300 | 307 | ||
301 | public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) | 308 | public List<LandData> LoadLandObjects(LLUUID regionUUID) |
302 | { | 309 | { |
303 | return new List<LandData>(); | 310 | return new List<LandData>(); |
304 | } | 311 | } |
305 | 312 | ||
306 | public void Commit() | 313 | public void Commit() |
307 | { | 314 | { |
308 | lock (ds) { | 315 | lock (ds) |
316 | { | ||
309 | primDa.Update(ds, "prims"); | 317 | primDa.Update(ds, "prims"); |
310 | shapeDa.Update(ds, "primshapes"); | 318 | shapeDa.Update(ds, "primshapes"); |
311 | terrainDa.Update(ds, "terrain"); | 319 | terrainDa.Update(ds, "terrain"); |
@@ -326,7 +334,7 @@ namespace OpenSim.DataStore.MSSQL | |||
326 | * | 334 | * |
327 | **********************************************************************/ | 335 | **********************************************************************/ |
328 | 336 | ||
329 | private void createCol(DataTable dt, string name, System.Type type) | 337 | private void createCol(DataTable dt, string name, Type type) |
330 | { | 338 | { |
331 | DataColumn col = new DataColumn(name, type); | 339 | DataColumn col = new DataColumn(name, type); |
332 | dt.Columns.Add(col); | 340 | dt.Columns.Add(col); |
@@ -336,9 +344,9 @@ namespace OpenSim.DataStore.MSSQL | |||
336 | { | 344 | { |
337 | DataTable terrain = new DataTable("terrain"); | 345 | DataTable terrain = new DataTable("terrain"); |
338 | 346 | ||
339 | createCol(terrain, "RegionUUID", typeof(String)); | 347 | createCol(terrain, "RegionUUID", typeof (String)); |
340 | createCol(terrain, "Revision", typeof(Int32)); | 348 | createCol(terrain, "Revision", typeof (Int32)); |
341 | createCol(terrain, "Heightfield", typeof(Byte[])); | 349 | createCol(terrain, "Heightfield", typeof (Byte[])); |
342 | 350 | ||
343 | return terrain; | 351 | return terrain; |
344 | } | 352 | } |
@@ -347,62 +355,62 @@ namespace OpenSim.DataStore.MSSQL | |||
347 | { | 355 | { |
348 | DataTable prims = new DataTable("prims"); | 356 | DataTable prims = new DataTable("prims"); |
349 | 357 | ||
350 | createCol(prims, "UUID", typeof(System.String)); | 358 | createCol(prims, "UUID", typeof (String)); |
351 | createCol(prims, "RegionUUID", typeof(System.String)); | 359 | createCol(prims, "RegionUUID", typeof (String)); |
352 | createCol(prims, "ParentID", typeof(System.Int32)); | 360 | createCol(prims, "ParentID", typeof (Int32)); |
353 | createCol(prims, "CreationDate", typeof(System.Int32)); | 361 | createCol(prims, "CreationDate", typeof (Int32)); |
354 | createCol(prims, "Name", typeof(System.String)); | 362 | createCol(prims, "Name", typeof (String)); |
355 | createCol(prims, "SceneGroupID", typeof(System.String)); | 363 | createCol(prims, "SceneGroupID", typeof (String)); |
356 | // various text fields | 364 | // various text fields |
357 | createCol(prims, "Text", typeof(System.String)); | 365 | createCol(prims, "Text", typeof (String)); |
358 | createCol(prims, "Description", typeof(System.String)); | 366 | createCol(prims, "Description", typeof (String)); |
359 | createCol(prims, "SitName", typeof(System.String)); | 367 | createCol(prims, "SitName", typeof (String)); |
360 | createCol(prims, "TouchName", typeof(System.String)); | 368 | createCol(prims, "TouchName", typeof (String)); |
361 | // permissions | 369 | // permissions |
362 | createCol(prims, "ObjectFlags", typeof(System.Int32)); | 370 | createCol(prims, "ObjectFlags", typeof (Int32)); |
363 | createCol(prims, "CreatorID", typeof(System.String)); | 371 | createCol(prims, "CreatorID", typeof (String)); |
364 | createCol(prims, "OwnerID", typeof(System.String)); | 372 | createCol(prims, "OwnerID", typeof (String)); |
365 | createCol(prims, "GroupID", typeof(System.String)); | 373 | createCol(prims, "GroupID", typeof (String)); |
366 | createCol(prims, "LastOwnerID", typeof(System.String)); | 374 | createCol(prims, "LastOwnerID", typeof (String)); |
367 | createCol(prims, "OwnerMask", typeof(System.Int32)); | 375 | createCol(prims, "OwnerMask", typeof (Int32)); |
368 | createCol(prims, "NextOwnerMask", typeof(System.Int32)); | 376 | createCol(prims, "NextOwnerMask", typeof (Int32)); |
369 | createCol(prims, "GroupMask", typeof(System.Int32)); | 377 | createCol(prims, "GroupMask", typeof (Int32)); |
370 | createCol(prims, "EveryoneMask", typeof(System.Int32)); | 378 | createCol(prims, "EveryoneMask", typeof (Int32)); |
371 | createCol(prims, "BaseMask", typeof(System.Int32)); | 379 | createCol(prims, "BaseMask", typeof (Int32)); |
372 | // vectors | 380 | // vectors |
373 | createCol(prims, "PositionX", typeof(System.Double)); | 381 | createCol(prims, "PositionX", typeof (Double)); |
374 | createCol(prims, "PositionY", typeof(System.Double)); | 382 | createCol(prims, "PositionY", typeof (Double)); |
375 | createCol(prims, "PositionZ", typeof(System.Double)); | 383 | createCol(prims, "PositionZ", typeof (Double)); |
376 | createCol(prims, "GroupPositionX", typeof(System.Double)); | 384 | createCol(prims, "GroupPositionX", typeof (Double)); |
377 | createCol(prims, "GroupPositionY", typeof(System.Double)); | 385 | createCol(prims, "GroupPositionY", typeof (Double)); |
378 | createCol(prims, "GroupPositionZ", typeof(System.Double)); | 386 | createCol(prims, "GroupPositionZ", typeof (Double)); |
379 | createCol(prims, "VelocityX", typeof(System.Double)); | 387 | createCol(prims, "VelocityX", typeof (Double)); |
380 | createCol(prims, "VelocityY", typeof(System.Double)); | 388 | createCol(prims, "VelocityY", typeof (Double)); |
381 | createCol(prims, "VelocityZ", typeof(System.Double)); | 389 | createCol(prims, "VelocityZ", typeof (Double)); |
382 | createCol(prims, "AngularVelocityX", typeof(System.Double)); | 390 | createCol(prims, "AngularVelocityX", typeof (Double)); |
383 | createCol(prims, "AngularVelocityY", typeof(System.Double)); | 391 | createCol(prims, "AngularVelocityY", typeof (Double)); |
384 | createCol(prims, "AngularVelocityZ", typeof(System.Double)); | 392 | createCol(prims, "AngularVelocityZ", typeof (Double)); |
385 | createCol(prims, "AccelerationX", typeof(System.Double)); | 393 | createCol(prims, "AccelerationX", typeof (Double)); |
386 | createCol(prims, "AccelerationY", typeof(System.Double)); | 394 | createCol(prims, "AccelerationY", typeof (Double)); |
387 | createCol(prims, "AccelerationZ", typeof(System.Double)); | 395 | createCol(prims, "AccelerationZ", typeof (Double)); |
388 | // quaternions | 396 | // quaternions |
389 | createCol(prims, "RotationX", typeof(System.Double)); | 397 | createCol(prims, "RotationX", typeof (Double)); |
390 | createCol(prims, "RotationY", typeof(System.Double)); | 398 | createCol(prims, "RotationY", typeof (Double)); |
391 | createCol(prims, "RotationZ", typeof(System.Double)); | 399 | createCol(prims, "RotationZ", typeof (Double)); |
392 | createCol(prims, "RotationW", typeof(System.Double)); | 400 | createCol(prims, "RotationW", typeof (Double)); |
393 | 401 | ||
394 | // sit target | 402 | // sit target |
395 | createCol(prims, "SitTargetOffsetX", typeof(System.Double)); | 403 | createCol(prims, "SitTargetOffsetX", typeof (Double)); |
396 | createCol(prims, "SitTargetOffsetY", typeof(System.Double)); | 404 | createCol(prims, "SitTargetOffsetY", typeof (Double)); |
397 | createCol(prims, "SitTargetOffsetZ", typeof(System.Double)); | 405 | createCol(prims, "SitTargetOffsetZ", typeof (Double)); |
398 | 406 | ||
399 | createCol(prims, "SitTargetOrientW", typeof(System.Double)); | 407 | createCol(prims, "SitTargetOrientW", typeof (Double)); |
400 | createCol(prims, "SitTargetOrientX", typeof(System.Double)); | 408 | createCol(prims, "SitTargetOrientX", typeof (Double)); |
401 | createCol(prims, "SitTargetOrientY", typeof(System.Double)); | 409 | createCol(prims, "SitTargetOrientY", typeof (Double)); |
402 | createCol(prims, "SitTargetOrientZ", typeof(System.Double)); | 410 | createCol(prims, "SitTargetOrientZ", typeof (Double)); |
403 | 411 | ||
404 | // Add in contraints | 412 | // Add in contraints |
405 | prims.PrimaryKey = new DataColumn[] { prims.Columns["UUID"] }; | 413 | prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; |
406 | 414 | ||
407 | return prims; | 415 | return prims; |
408 | } | 416 | } |
@@ -410,40 +418,40 @@ namespace OpenSim.DataStore.MSSQL | |||
410 | private DataTable createShapeTable() | 418 | private DataTable createShapeTable() |
411 | { | 419 | { |
412 | DataTable shapes = new DataTable("primshapes"); | 420 | DataTable shapes = new DataTable("primshapes"); |
413 | createCol(shapes, "UUID", typeof(System.String)); | 421 | createCol(shapes, "UUID", typeof (String)); |
414 | // shape is an enum | 422 | // shape is an enum |
415 | createCol(shapes, "Shape", typeof(System.Int32)); | 423 | createCol(shapes, "Shape", typeof (Int32)); |
416 | // vectors | 424 | // vectors |
417 | createCol(shapes, "ScaleX", typeof(System.Double)); | 425 | createCol(shapes, "ScaleX", typeof (Double)); |
418 | createCol(shapes, "ScaleY", typeof(System.Double)); | 426 | createCol(shapes, "ScaleY", typeof (Double)); |
419 | createCol(shapes, "ScaleZ", typeof(System.Double)); | 427 | createCol(shapes, "ScaleZ", typeof (Double)); |
420 | // paths | 428 | // paths |
421 | createCol(shapes, "PCode", typeof(System.Int32)); | 429 | createCol(shapes, "PCode", typeof (Int32)); |
422 | createCol(shapes, "PathBegin", typeof(System.Int32)); | 430 | createCol(shapes, "PathBegin", typeof (Int32)); |
423 | createCol(shapes, "PathEnd", typeof(System.Int32)); | 431 | createCol(shapes, "PathEnd", typeof (Int32)); |
424 | createCol(shapes, "PathScaleX", typeof(System.Int32)); | 432 | createCol(shapes, "PathScaleX", typeof (Int32)); |
425 | createCol(shapes, "PathScaleY", typeof(System.Int32)); | 433 | createCol(shapes, "PathScaleY", typeof (Int32)); |
426 | createCol(shapes, "PathShearX", typeof(System.Int32)); | 434 | createCol(shapes, "PathShearX", typeof (Int32)); |
427 | createCol(shapes, "PathShearY", typeof(System.Int32)); | 435 | createCol(shapes, "PathShearY", typeof (Int32)); |
428 | createCol(shapes, "PathSkew", typeof(System.Int32)); | 436 | createCol(shapes, "PathSkew", typeof (Int32)); |
429 | createCol(shapes, "PathCurve", typeof(System.Int32)); | 437 | createCol(shapes, "PathCurve", typeof (Int32)); |
430 | createCol(shapes, "PathRadiusOffset", typeof(System.Int32)); | 438 | createCol(shapes, "PathRadiusOffset", typeof (Int32)); |
431 | createCol(shapes, "PathRevolutions", typeof(System.Int32)); | 439 | createCol(shapes, "PathRevolutions", typeof (Int32)); |
432 | createCol(shapes, "PathTaperX", typeof(System.Int32)); | 440 | createCol(shapes, "PathTaperX", typeof (Int32)); |
433 | createCol(shapes, "PathTaperY", typeof(System.Int32)); | 441 | createCol(shapes, "PathTaperY", typeof (Int32)); |
434 | createCol(shapes, "PathTwist", typeof(System.Int32)); | 442 | createCol(shapes, "PathTwist", typeof (Int32)); |
435 | createCol(shapes, "PathTwistBegin", typeof(System.Int32)); | 443 | createCol(shapes, "PathTwistBegin", typeof (Int32)); |
436 | // profile | 444 | // profile |
437 | createCol(shapes, "ProfileBegin", typeof(System.Int32)); | 445 | createCol(shapes, "ProfileBegin", typeof (Int32)); |
438 | createCol(shapes, "ProfileEnd", typeof(System.Int32)); | 446 | createCol(shapes, "ProfileEnd", typeof (Int32)); |
439 | createCol(shapes, "ProfileCurve", typeof(System.Int32)); | 447 | createCol(shapes, "ProfileCurve", typeof (Int32)); |
440 | createCol(shapes, "ProfileHollow", typeof(System.Int32)); | 448 | createCol(shapes, "ProfileHollow", typeof (Int32)); |
441 | // text TODO: this isn't right, but I'm not sure the right | 449 | // text TODO: this isn't right, but I'm not sure the right |
442 | // way to specify this as a blob atm | 450 | // way to specify this as a blob atm |
443 | createCol(shapes, "Texture", typeof(System.Byte[])); | 451 | createCol(shapes, "Texture", typeof (Byte[])); |
444 | createCol(shapes, "ExtraParams", typeof(System.Byte[])); | 452 | createCol(shapes, "ExtraParams", typeof (Byte[])); |
445 | 453 | ||
446 | shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; | 454 | shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]}; |
447 | 455 | ||
448 | return shapes; | 456 | return shapes; |
449 | } | 457 | } |
@@ -462,23 +470,23 @@ namespace OpenSim.DataStore.MSSQL | |||
462 | // interesting has to be done to actually get these values | 470 | // interesting has to be done to actually get these values |
463 | // back out. Not enough time to figure it out yet. | 471 | // back out. Not enough time to figure it out yet. |
464 | SceneObjectPart prim = new SceneObjectPart(); | 472 | SceneObjectPart prim = new SceneObjectPart(); |
465 | prim.UUID = new LLUUID((String)row["UUID"]); | 473 | prim.UUID = new LLUUID((String) row["UUID"]); |
466 | // explicit conversion of integers is required, which sort | 474 | // explicit conversion of integers is required, which sort |
467 | // of sucks. No idea if there is a shortcut here or not. | 475 | // of sucks. No idea if there is a shortcut here or not. |
468 | prim.ParentID = Convert.ToUInt32(row["ParentID"]); | 476 | prim.ParentID = Convert.ToUInt32(row["ParentID"]); |
469 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); | 477 | prim.CreationDate = Convert.ToInt32(row["CreationDate"]); |
470 | prim.Name = (String)row["Name"]; | 478 | prim.Name = (String) row["Name"]; |
471 | // various text fields | 479 | // various text fields |
472 | prim.Text = (String)row["Text"]; | 480 | prim.Text = (String) row["Text"]; |
473 | prim.Description = (String)row["Description"]; | 481 | prim.Description = (String) row["Description"]; |
474 | prim.SitName = (String)row["SitName"]; | 482 | prim.SitName = (String) row["SitName"]; |
475 | prim.TouchName = (String)row["TouchName"]; | 483 | prim.TouchName = (String) row["TouchName"]; |
476 | // permissions | 484 | // permissions |
477 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); | 485 | prim.ObjectFlags = Convert.ToUInt32(row["ObjectFlags"]); |
478 | prim.CreatorID = new LLUUID((String)row["CreatorID"]); | 486 | prim.CreatorID = new LLUUID((String) row["CreatorID"]); |
479 | prim.OwnerID = new LLUUID((String)row["OwnerID"]); | 487 | prim.OwnerID = new LLUUID((String) row["OwnerID"]); |
480 | prim.GroupID = new LLUUID((String)row["GroupID"]); | 488 | prim.GroupID = new LLUUID((String) row["GroupID"]); |
481 | prim.LastOwnerID = new LLUUID((String)row["LastOwnerID"]); | 489 | prim.LastOwnerID = new LLUUID((String) row["LastOwnerID"]); |
482 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); | 490 | prim.OwnerMask = Convert.ToUInt32(row["OwnerMask"]); |
483 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); | 491 | prim.NextOwnerMask = Convert.ToUInt32(row["NextOwnerMask"]); |
484 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); | 492 | prim.GroupMask = Convert.ToUInt32(row["GroupMask"]); |
@@ -521,15 +529,19 @@ namespace OpenSim.DataStore.MSSQL | |||
521 | try | 529 | try |
522 | { | 530 | { |
523 | prim.SetSitTargetLL(new LLVector3( | 531 | prim.SetSitTargetLL(new LLVector3( |
524 | Convert.ToSingle(row["SitTargetOffsetX"]), | 532 | Convert.ToSingle(row["SitTargetOffsetX"]), |
525 | Convert.ToSingle(row["SitTargetOffsetY"]), | 533 | Convert.ToSingle(row["SitTargetOffsetY"]), |
526 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( | 534 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( |
527 | Convert.ToSingle(row["SitTargetOrientX"]), | 535 | Convert.ToSingle( |
528 | Convert.ToSingle(row["SitTargetOrientY"]), | 536 | row["SitTargetOrientX"]), |
529 | Convert.ToSingle(row["SitTargetOrientZ"]), | 537 | Convert.ToSingle( |
530 | Convert.ToSingle(row["SitTargetOrientW"]))); | 538 | row["SitTargetOrientY"]), |
539 | Convert.ToSingle( | ||
540 | row["SitTargetOrientZ"]), | ||
541 | Convert.ToSingle( | ||
542 | row["SitTargetOrientW"]))); | ||
531 | } | 543 | } |
532 | catch (System.InvalidCastException) | 544 | catch (InvalidCastException) |
533 | { | 545 | { |
534 | // Database table was created before we got here and now has null values :P | 546 | // Database table was created before we got here and now has null values :P |
535 | } | 547 | } |
@@ -598,11 +610,10 @@ namespace OpenSim.DataStore.MSSQL | |||
598 | row["SitTargetOrientY"] = sitTargetOrient.Y; | 610 | row["SitTargetOrientY"] = sitTargetOrient.Y; |
599 | row["SitTargetOrientZ"] = sitTargetOrient.Z; | 611 | row["SitTargetOrientZ"] = sitTargetOrient.Z; |
600 | } | 612 | } |
601 | catch (System.Exception) | 613 | catch (Exception) |
602 | { | 614 | { |
603 | // TODO: Add Sit Target Rows! | 615 | // TODO: Add Sit Target Rows! |
604 | } | 616 | } |
605 | |||
606 | } | 617 | } |
607 | 618 | ||
608 | private PrimitiveBaseShape buildShape(DataRow row) | 619 | private PrimitiveBaseShape buildShape(DataRow row) |
@@ -634,14 +645,14 @@ namespace OpenSim.DataStore.MSSQL | |||
634 | s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); | 645 | s.ProfileEnd = Convert.ToUInt16(row["ProfileEnd"]); |
635 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); | 646 | s.ProfileCurve = Convert.ToByte(row["ProfileCurve"]); |
636 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); | 647 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); |
637 | 648 | ||
638 | // text TODO: this isn't right] = but I'm not sure the right | 649 | // text TODO: this isn't right] = but I'm not sure the right |
639 | // way to specify this as a blob atm | 650 | // way to specify this as a blob atm |
640 | byte[] textureEntry = (byte[])row["Texture"]; | 651 | byte[] textureEntry = (byte[]) row["Texture"]; |
641 | s.TextureEntry = textureEntry; | 652 | s.TextureEntry = textureEntry; |
642 | |||
643 | 653 | ||
644 | s.ExtraParams = (byte[])row["ExtraParams"]; | 654 | |
655 | s.ExtraParams = (byte[]) row["ExtraParams"]; | ||
645 | // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); | 656 | // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); |
646 | // string texture = encoding.GetString((Byte[])row["Texture"]); | 657 | // string texture = encoding.GetString((Byte[])row["Texture"]); |
647 | // if (!texture.StartsWith("<")) | 658 | // if (!texture.StartsWith("<")) |
@@ -774,7 +785,7 @@ namespace OpenSim.DataStore.MSSQL | |||
774 | sql += ") values (@"; | 785 | sql += ") values (@"; |
775 | sql += String.Join(", @", cols); | 786 | sql += String.Join(", @", cols); |
776 | sql += ")"; | 787 | sql += ")"; |
777 | SqlCommand cmd = new SqlCommand(sql); | 788 | SqlCommand cmd = new SqlCommand(sql); |
778 | // this provides the binding for all our parameters, so | 789 | // this provides the binding for all our parameters, so |
779 | // much less code than it used to be | 790 | // much less code than it used to be |
780 | foreach (DataColumn col in dt.Columns) | 791 | foreach (DataColumn col in dt.Columns) |
@@ -791,14 +802,15 @@ namespace OpenSim.DataStore.MSSQL | |||
791 | foreach (DataColumn col in dt.Columns) | 802 | foreach (DataColumn col in dt.Columns) |
792 | { | 803 | { |
793 | if (subsql.Length > 0) | 804 | if (subsql.Length > 0) |
794 | { // a map function would rock so much here | 805 | { |
806 | // a map function would rock so much here | ||
795 | subsql += ", "; | 807 | subsql += ", "; |
796 | } | 808 | } |
797 | subsql += col.ColumnName + "= @" + col.ColumnName; | 809 | subsql += col.ColumnName + "= @" + col.ColumnName; |
798 | } | 810 | } |
799 | sql += subsql; | 811 | sql += subsql; |
800 | sql += " where " + pk; | 812 | sql += " where " + pk; |
801 | SqlCommand cmd = new SqlCommand(sql); | 813 | SqlCommand cmd = new SqlCommand(sql); |
802 | // this provides the binding for all our parameters, so | 814 | // this provides the binding for all our parameters, so |
803 | // much less code than it used to be | 815 | // much less code than it used to be |
804 | 816 | ||
@@ -817,7 +829,8 @@ namespace OpenSim.DataStore.MSSQL | |||
817 | foreach (DataColumn col in dt.Columns) | 829 | foreach (DataColumn col in dt.Columns) |
818 | { | 830 | { |
819 | if (subsql.Length > 0) | 831 | if (subsql.Length > 0) |
820 | { // a map function would rock so much here | 832 | { |
833 | // a map function would rock so much here | ||
821 | subsql += ",\n"; | 834 | subsql += ",\n"; |
822 | } | 835 | } |
823 | subsql += col.ColumnName + " " + SqlType(col.DataType); | 836 | subsql += col.ColumnName + " " + SqlType(col.DataType); |
@@ -828,7 +841,7 @@ namespace OpenSim.DataStore.MSSQL | |||
828 | } | 841 | } |
829 | sql += subsql; | 842 | sql += subsql; |
830 | sql += ")"; | 843 | sql += ")"; |
831 | 844 | ||
832 | return sql; | 845 | return sql; |
833 | } | 846 | } |
834 | 847 | ||
@@ -837,7 +850,7 @@ namespace OpenSim.DataStore.MSSQL | |||
837 | row["RegionUUID"] = regionUUID; | 850 | row["RegionUUID"] = regionUUID; |
838 | row["Revision"] = rev; | 851 | row["Revision"] = rev; |
839 | 852 | ||
840 | MemoryStream str = new MemoryStream(65536 * sizeof(double)); | 853 | MemoryStream str = new MemoryStream(65536*sizeof (double)); |
841 | BinaryWriter bw = new BinaryWriter(str); | 854 | BinaryWriter bw = new BinaryWriter(str); |
842 | 855 | ||
843 | // TODO: COMPATIBILITY - Add byte-order conversions | 856 | // TODO: COMPATIBILITY - Add byte-order conversions |
@@ -868,7 +881,7 @@ namespace OpenSim.DataStore.MSSQL | |||
868 | /// for us. | 881 | /// for us. |
869 | ///</summary> | 882 | ///</summary> |
870 | ///<returns>a built Sql parameter</returns> | 883 | ///<returns>a built Sql parameter</returns> |
871 | private SqlParameter createSqlParameter(string name, System.Type type) | 884 | private SqlParameter createSqlParameter(string name, Type type) |
872 | { | 885 | { |
873 | SqlParameter param = new SqlParameter(); | 886 | SqlParameter param = new SqlParameter(); |
874 | param.ParameterName = "@" + name; | 887 | param.ParameterName = "@" + name; |
@@ -887,7 +900,7 @@ namespace OpenSim.DataStore.MSSQL | |||
887 | da.UpdateCommand.Connection = conn; | 900 | da.UpdateCommand.Connection = conn; |
888 | 901 | ||
889 | SqlCommand delete = new SqlCommand("delete from prims where UUID = @UUID"); | 902 | SqlCommand delete = new SqlCommand("delete from prims where UUID = @UUID"); |
890 | delete.Parameters.Add(createSqlParameter("UUID", typeof(System.String))); | 903 | delete.Parameters.Add(createSqlParameter("UUID", typeof (String))); |
891 | delete.Connection = conn; | 904 | delete.Connection = conn; |
892 | da.DeleteCommand = delete; | 905 | da.DeleteCommand = delete; |
893 | } | 906 | } |
@@ -901,7 +914,7 @@ namespace OpenSim.DataStore.MSSQL | |||
901 | da.UpdateCommand.Connection = conn; | 914 | da.UpdateCommand.Connection = conn; |
902 | 915 | ||
903 | SqlCommand delete = new SqlCommand("delete from primshapes where UUID = @UUID"); | 916 | SqlCommand delete = new SqlCommand("delete from primshapes where UUID = @UUID"); |
904 | delete.Parameters.Add(createSqlParameter("UUID", typeof(System.String))); | 917 | delete.Parameters.Add(createSqlParameter("UUID", typeof (String))); |
905 | delete.Connection = conn; | 918 | delete.Connection = conn; |
906 | da.DeleteCommand = delete; | 919 | da.DeleteCommand = delete; |
907 | } | 920 | } |
@@ -957,14 +970,13 @@ namespace OpenSim.DataStore.MSSQL | |||
957 | 970 | ||
958 | private bool TestTables(SqlConnection conn) | 971 | private bool TestTables(SqlConnection conn) |
959 | { | 972 | { |
960 | |||
961 | SqlCommand primSelectCmd = new SqlCommand(primSelect, conn); | 973 | SqlCommand primSelectCmd = new SqlCommand(primSelect, conn); |
962 | SqlDataAdapter pDa = new SqlDataAdapter(primSelectCmd); | 974 | SqlDataAdapter pDa = new SqlDataAdapter(primSelectCmd); |
963 | SqlCommand shapeSelectCmd = new SqlCommand(shapeSelect, conn); | 975 | SqlCommand shapeSelectCmd = new SqlCommand(shapeSelect, conn); |
964 | SqlDataAdapter sDa = new SqlDataAdapter(shapeSelectCmd); | 976 | SqlDataAdapter sDa = new SqlDataAdapter(shapeSelectCmd); |
965 | SqlCommand terrainSelectCmd = new SqlCommand(terrainSelect, conn); | 977 | SqlCommand terrainSelectCmd = new SqlCommand(terrainSelect, conn); |
966 | SqlDataAdapter tDa = new SqlDataAdapter(terrainSelectCmd); | 978 | SqlDataAdapter tDa = new SqlDataAdapter(terrainSelectCmd); |
967 | 979 | ||
968 | DataSet tmpDS = new DataSet(); | 980 | DataSet tmpDS = new DataSet(); |
969 | try | 981 | try |
970 | { | 982 | { |
@@ -978,7 +990,7 @@ namespace OpenSim.DataStore.MSSQL | |||
978 | InitDB(conn); | 990 | InitDB(conn); |
979 | } | 991 | } |
980 | 992 | ||
981 | try | 993 | try |
982 | { | 994 | { |
983 | if (tmpDS.Tables == null || tmpDS.Tables.Count == 0) | 995 | if (tmpDS.Tables == null || tmpDS.Tables.Count == 0) |
984 | { | 996 | { |
@@ -986,11 +998,10 @@ namespace OpenSim.DataStore.MSSQL | |||
986 | sDa.Fill(tmpDS, "primshapes"); | 998 | sDa.Fill(tmpDS, "primshapes"); |
987 | tDa.Fill(tmpDS, "terrain"); | 999 | tDa.Fill(tmpDS, "terrain"); |
988 | } | 1000 | } |
989 | |||
990 | } | 1001 | } |
991 | catch (SqlException e) | 1002 | catch (SqlException e) |
992 | { | 1003 | { |
993 | MainLog.Instance.Verbose("DATASTORE", e.ToString()); | 1004 | MainLog.Instance.Verbose("DATASTORE", e.ToString()); |
994 | } | 1005 | } |
995 | 1006 | ||
996 | foreach (DataColumn col in createPrimTable().Columns) | 1007 | foreach (DataColumn col in createPrimTable().Columns) |
@@ -1028,19 +1039,19 @@ namespace OpenSim.DataStore.MSSQL | |||
1028 | 1039 | ||
1029 | private DbType dbtypeFromType(Type type) | 1040 | private DbType dbtypeFromType(Type type) |
1030 | { | 1041 | { |
1031 | if (type == typeof(System.String)) | 1042 | if (type == typeof (String)) |
1032 | { | 1043 | { |
1033 | return DbType.String; | 1044 | return DbType.String; |
1034 | } | 1045 | } |
1035 | else if (type == typeof(System.Int32)) | 1046 | else if (type == typeof (Int32)) |
1036 | { | 1047 | { |
1037 | return DbType.Int32; | 1048 | return DbType.Int32; |
1038 | } | 1049 | } |
1039 | else if (type == typeof(System.Double)) | 1050 | else if (type == typeof (Double)) |
1040 | { | 1051 | { |
1041 | return DbType.Double; | 1052 | return DbType.Double; |
1042 | } | 1053 | } |
1043 | else if (type == typeof(System.Byte[])) | 1054 | else if (type == typeof (Byte[])) |
1044 | { | 1055 | { |
1045 | return DbType.Binary; | 1056 | return DbType.Binary; |
1046 | } | 1057 | } |
@@ -1054,19 +1065,19 @@ namespace OpenSim.DataStore.MSSQL | |||
1054 | // slightly differently. | 1065 | // slightly differently. |
1055 | private string SqlType(Type type) | 1066 | private string SqlType(Type type) |
1056 | { | 1067 | { |
1057 | if (type == typeof(System.String)) | 1068 | if (type == typeof (String)) |
1058 | { | 1069 | { |
1059 | return "varchar(255)"; | 1070 | return "varchar(255)"; |
1060 | } | 1071 | } |
1061 | else if (type == typeof(System.Int32)) | 1072 | else if (type == typeof (Int32)) |
1062 | { | 1073 | { |
1063 | return "integer"; | 1074 | return "integer"; |
1064 | } | 1075 | } |
1065 | else if (type == typeof(System.Double)) | 1076 | else if (type == typeof (Double)) |
1066 | { | 1077 | { |
1067 | return "float"; | 1078 | return "float"; |
1068 | } | 1079 | } |
1069 | else if (type == typeof(System.Byte[])) | 1080 | else if (type == typeof (Byte[])) |
1070 | { | 1081 | { |
1071 | return "image"; | 1082 | return "image"; |
1072 | } | 1083 | } |
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs index c885310..065d37d 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.MonoSqlite/MonoSqliteDataStore.cs | |||
@@ -59,7 +59,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
59 | private SqliteConnection m_conn; | 59 | private SqliteConnection m_conn; |
60 | 60 | ||
61 | private String m_connectionString; | 61 | private String m_connectionString; |
62 | 62 | ||
63 | private bool persistPrimInventories; | 63 | private bool persistPrimInventories; |
64 | 64 | ||
65 | /*********************************************************************** | 65 | /*********************************************************************** |
@@ -71,7 +71,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
71 | // see IRegionDataStore | 71 | // see IRegionDataStore |
72 | public void Initialise(string connectionString, bool persistPrimInventories) | 72 | public void Initialise(string connectionString, bool persistPrimInventories) |
73 | { | 73 | { |
74 | m_connectionString = connectionString; | 74 | m_connectionString = connectionString; |
75 | this.persistPrimInventories = persistPrimInventories; | 75 | this.persistPrimInventories = persistPrimInventories; |
76 | 76 | ||
77 | ds = new DataSet(); | 77 | ds = new DataSet(); |
@@ -182,20 +182,20 @@ namespace OpenSim.DataStore.MonoSqlite | |||
182 | { | 182 | { |
183 | foreach (SceneObjectPart prim in obj.Children.Values) | 183 | foreach (SceneObjectPart prim in obj.Children.Values) |
184 | { | 184 | { |
185 | if ((prim.ObjectFlags & (uint)LLObject.ObjectFlags.Physics) == 0) | 185 | if ((prim.ObjectFlags & (uint) LLObject.ObjectFlags.Physics) == 0) |
186 | { | 186 | { |
187 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); | 187 | MainLog.Instance.Verbose("DATASTORE", "Adding obj: " + obj.UUID + " to region: " + regionUUID); |
188 | addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); | 188 | addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); |
189 | } | 189 | } |
190 | else if (Stopped(prim)) | 190 | else if (Stopped(prim)) |
191 | { | 191 | { |
192 | MainLog.Instance.Verbose("DATASTORE", "Adding stopped obj: " + obj.UUID + " to region: " + regionUUID); | 192 | MainLog.Instance.Verbose("DATASTORE", |
193 | "Adding stopped obj: " + obj.UUID + " to region: " + regionUUID); | ||
193 | addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); | 194 | addPrim(prim, Util.ToRawUuidString(obj.UUID), Util.ToRawUuidString(regionUUID)); |
194 | } | 195 | } |
195 | else | 196 | else |
196 | { | 197 | { |
197 | // MainLog.Instance.Verbose("DATASTORE", "Ignoring Physical obj: " + obj.UUID + " in region: " + regionUUID); | 198 | // MainLog.Instance.Verbose("DATASTORE", "Ignoring Physical obj: " + obj.UUID + " in region: " + regionUUID); |
198 | |||
199 | } | 199 | } |
200 | } | 200 | } |
201 | } | 201 | } |
@@ -307,18 +307,19 @@ namespace OpenSim.DataStore.MonoSqlite | |||
307 | 307 | ||
308 | public void StoreTerrain(double[,] ter, LLUUID regionID) | 308 | public void StoreTerrain(double[,] ter, LLUUID regionID) |
309 | { | 309 | { |
310 | lock (ds) { | 310 | lock (ds) |
311 | { | ||
311 | int revision = Util.UnixTimeSinceEpoch(); | 312 | int revision = Util.UnixTimeSinceEpoch(); |
312 | 313 | ||
313 | // the following is an work around for .NET. The perf | 314 | // the following is an work around for .NET. The perf |
314 | // issues associated with it aren't as bad as you think. | 315 | // issues associated with it aren't as bad as you think. |
315 | SqliteConnection conn = new SqliteConnection(m_connectionString); | 316 | SqliteConnection conn = new SqliteConnection(m_connectionString); |
316 | conn.Open(); | 317 | conn.Open(); |
317 | MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString()); | 318 | MainLog.Instance.Verbose("DATASTORE", "Storing terrain revision r" + revision.ToString()); |
318 | String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" + | 319 | String sql = "insert into terrain(RegionUUID, Revision, Heightfield)" + |
319 | " values(:RegionUUID, :Revision, :Heightfield)"; | 320 | " values(:RegionUUID, :Revision, :Heightfield)"; |
320 | 321 | ||
321 | using(SqliteCommand cmd = new SqliteCommand(sql, conn)) | 322 | using (SqliteCommand cmd = new SqliteCommand(sql, conn)) |
322 | { | 323 | { |
323 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); | 324 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); |
324 | cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); | 325 | cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); |
@@ -333,7 +334,10 @@ namespace OpenSim.DataStore.MonoSqlite | |||
333 | // revisions in the database, as this old | 334 | // revisions in the database, as this old |
334 | // implementation is a DOS attack waiting to happen. | 335 | // implementation is a DOS attack waiting to happen. |
335 | 336 | ||
336 | using(SqliteCommand cmd = new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID and Revision < :Revision", conn)) | 337 | using ( |
338 | SqliteCommand cmd = | ||
339 | new SqliteCommand("delete from terrain where RegionUUID=:RegionUUID and Revision < :Revision", | ||
340 | conn)) | ||
337 | { | 341 | { |
338 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); | 342 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); |
339 | cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); | 343 | cmd.Parameters.Add(new SqliteParameter(":Revision", revision)); |
@@ -345,21 +349,22 @@ namespace OpenSim.DataStore.MonoSqlite | |||
345 | 349 | ||
346 | public double[,] LoadTerrain(LLUUID regionID) | 350 | public double[,] LoadTerrain(LLUUID regionID) |
347 | { | 351 | { |
348 | lock (ds) { | 352 | lock (ds) |
353 | { | ||
349 | double[,] terret = new double[256,256]; | 354 | double[,] terret = new double[256,256]; |
350 | terret.Initialize(); | 355 | terret.Initialize(); |
351 | // the following is an work around for .NET. The perf | 356 | // the following is an work around for .NET. The perf |
352 | // issues associated with it aren't as bad as you think. | 357 | // issues associated with it aren't as bad as you think. |
353 | SqliteConnection conn = new SqliteConnection(m_connectionString); | 358 | SqliteConnection conn = new SqliteConnection(m_connectionString); |
354 | conn.Open(); | 359 | conn.Open(); |
355 | String sql = "select RegionUUID, Revision, Heightfield from terrain" + | 360 | String sql = "select RegionUUID, Revision, Heightfield from terrain" + |
356 | " where RegionUUID=:RegionUUID order by Revision desc"; | 361 | " where RegionUUID=:RegionUUID order by Revision desc"; |
357 | 362 | ||
358 | 363 | ||
359 | using (SqliteCommand cmd = new SqliteCommand(sql, conn)) | 364 | using (SqliteCommand cmd = new SqliteCommand(sql, conn)) |
360 | { | 365 | { |
361 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); | 366 | cmd.Parameters.Add(new SqliteParameter(":RegionUUID", Util.ToRawUuidString(regionID))); |
362 | 367 | ||
363 | using (IDataReader row = cmd.ExecuteReader()) | 368 | using (IDataReader row = cmd.ExecuteReader()) |
364 | { | 369 | { |
365 | int rev = 0; | 370 | int rev = 0; |
@@ -374,7 +379,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
374 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8); | 379 | terret[x, y] = BitConverter.ToDouble(heightmap, ((x*256) + y)*8); |
375 | } | 380 | } |
376 | } | 381 | } |
377 | rev = (int)row["Revision"]; | 382 | rev = (int) row["Revision"]; |
378 | } | 383 | } |
379 | else | 384 | else |
380 | { | 385 | { |
@@ -382,7 +387,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
382 | conn.Close(); | 387 | conn.Close(); |
383 | return null; | 388 | return null; |
384 | } | 389 | } |
385 | 390 | ||
386 | MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString()); | 391 | MainLog.Instance.Verbose("DATASTORE", "Loaded terrain revision r" + rev.ToString()); |
387 | } | 392 | } |
388 | } | 393 | } |
@@ -434,7 +439,8 @@ namespace OpenSim.DataStore.MonoSqlite | |||
434 | fillLandRow(landRow, parcel.landData, regionUUID); | 439 | fillLandRow(landRow, parcel.landData, regionUUID); |
435 | } | 440 | } |
436 | 441 | ||
437 | using (SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", conn)) | 442 | using ( |
443 | SqliteCommand cmd = new SqliteCommand("delete from landaccesslist where LandUUID=:LandUUID", conn)) | ||
438 | { | 444 | { |
439 | cmd.Parameters.Add(new SqliteParameter(":LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); | 445 | cmd.Parameters.Add(new SqliteParameter(":LandUUID", Util.ToRawUuidString(parcel.landData.globalID))); |
440 | cmd.ExecuteNonQuery(); | 446 | cmd.ExecuteNonQuery(); |
@@ -447,16 +453,15 @@ namespace OpenSim.DataStore.MonoSqlite | |||
447 | landaccesslist.Rows.Add(newAccessRow); | 453 | landaccesslist.Rows.Add(newAccessRow); |
448 | } | 454 | } |
449 | conn.Close(); | 455 | conn.Close(); |
450 | |||
451 | } | 456 | } |
452 | 457 | ||
453 | Commit(); | 458 | Commit(); |
454 | } | 459 | } |
455 | 460 | ||
456 | public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) | 461 | public List<LandData> LoadLandObjects(LLUUID regionUUID) |
457 | { | 462 | { |
458 | List<LandData> landDataForRegion = new List<LandData>(); | 463 | List<LandData> landDataForRegion = new List<LandData>(); |
459 | lock(ds) | 464 | lock (ds) |
460 | { | 465 | { |
461 | DataTable land = ds.Tables["land"]; | 466 | DataTable land = ds.Tables["land"]; |
462 | DataTable landaccesslist = ds.Tables["landaccesslist"]; | 467 | DataTable landaccesslist = ds.Tables["landaccesslist"]; |
@@ -570,14 +575,14 @@ namespace OpenSim.DataStore.MonoSqlite | |||
570 | createCol(prims, "RotationW", typeof (Double)); | 575 | createCol(prims, "RotationW", typeof (Double)); |
571 | 576 | ||
572 | // sit target | 577 | // sit target |
573 | createCol(prims, "SitTargetOffsetX", typeof(Double)); | 578 | createCol(prims, "SitTargetOffsetX", typeof (Double)); |
574 | createCol(prims, "SitTargetOffsetY", typeof(Double)); | 579 | createCol(prims, "SitTargetOffsetY", typeof (Double)); |
575 | createCol(prims, "SitTargetOffsetZ", typeof(Double)); | 580 | createCol(prims, "SitTargetOffsetZ", typeof (Double)); |
576 | 581 | ||
577 | createCol(prims, "SitTargetOrientW", typeof(Double)); | 582 | createCol(prims, "SitTargetOrientW", typeof (Double)); |
578 | createCol(prims, "SitTargetOrientX", typeof(Double)); | 583 | createCol(prims, "SitTargetOrientX", typeof (Double)); |
579 | createCol(prims, "SitTargetOrientY", typeof(Double)); | 584 | createCol(prims, "SitTargetOrientY", typeof (Double)); |
580 | createCol(prims, "SitTargetOrientZ", typeof(Double)); | 585 | createCol(prims, "SitTargetOrientZ", typeof (Double)); |
581 | 586 | ||
582 | // Add in contraints | 587 | // Add in contraints |
583 | prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; | 588 | prims.PrimaryKey = new DataColumn[] {prims.Columns["UUID"]}; |
@@ -621,11 +626,11 @@ namespace OpenSim.DataStore.MonoSqlite | |||
621 | createCol(shapes, "Texture", typeof (Byte[])); | 626 | createCol(shapes, "Texture", typeof (Byte[])); |
622 | createCol(shapes, "ExtraParams", typeof (Byte[])); | 627 | createCol(shapes, "ExtraParams", typeof (Byte[])); |
623 | 628 | ||
624 | shapes.PrimaryKey = new DataColumn[] { shapes.Columns["UUID"] }; | 629 | shapes.PrimaryKey = new DataColumn[] {shapes.Columns["UUID"]}; |
625 | 630 | ||
626 | return shapes; | 631 | return shapes; |
627 | } | 632 | } |
628 | 633 | ||
629 | private DataTable createItemsTable() | 634 | private DataTable createItemsTable() |
630 | { | 635 | { |
631 | DataTable items = new DataTable("primitems"); | 636 | DataTable items = new DataTable("primitems"); |
@@ -635,10 +640,10 @@ namespace OpenSim.DataStore.MonoSqlite | |||
635 | createCol(items, "assetID", typeof (String)); | 640 | createCol(items, "assetID", typeof (String)); |
636 | createCol(items, "assetType", typeof (Int32)); | 641 | createCol(items, "assetType", typeof (Int32)); |
637 | createCol(items, "parentFolderID", typeof (String)); | 642 | createCol(items, "parentFolderID", typeof (String)); |
638 | 643 | ||
639 | createCol(items, "name", typeof (String)); | 644 | createCol(items, "name", typeof (String)); |
640 | createCol(items, "description", typeof (String)); | 645 | createCol(items, "description", typeof (String)); |
641 | 646 | ||
642 | createCol(items, "creationDate", typeof (Int64)); | 647 | createCol(items, "creationDate", typeof (Int64)); |
643 | createCol(items, "creatorID", typeof (String)); | 648 | createCol(items, "creatorID", typeof (String)); |
644 | createCol(items, "ownerID", typeof (String)); | 649 | createCol(items, "ownerID", typeof (String)); |
@@ -651,50 +656,50 @@ namespace OpenSim.DataStore.MonoSqlite | |||
651 | createCol(items, "everyonePermissions", typeof (Int32)); | 656 | createCol(items, "everyonePermissions", typeof (Int32)); |
652 | createCol(items, "groupPermissions", typeof (Int32)); | 657 | createCol(items, "groupPermissions", typeof (Int32)); |
653 | 658 | ||
654 | items.PrimaryKey = new DataColumn[] { items.Columns["UUID"] }; | 659 | items.PrimaryKey = new DataColumn[] {items.Columns["UUID"]}; |
655 | 660 | ||
656 | return items; | 661 | return items; |
657 | } | 662 | } |
658 | 663 | ||
659 | private DataTable createLandTable() | 664 | private DataTable createLandTable() |
660 | { | 665 | { |
661 | DataTable land = new DataTable("land"); | 666 | DataTable land = new DataTable("land"); |
662 | createCol(land, "UUID", typeof(String)); | 667 | createCol(land, "UUID", typeof (String)); |
663 | createCol(land, "RegionUUID", typeof(String)); | 668 | createCol(land, "RegionUUID", typeof (String)); |
664 | createCol(land, "LocalLandID", typeof(UInt32)); | 669 | createCol(land, "LocalLandID", typeof (UInt32)); |
665 | 670 | ||
666 | // Bitmap is a byte[512] | 671 | // Bitmap is a byte[512] |
667 | createCol(land, "Bitmap", typeof(Byte[])); | 672 | createCol(land, "Bitmap", typeof (Byte[])); |
668 | 673 | ||
669 | createCol(land, "Name", typeof(String)); | 674 | createCol(land, "Name", typeof (String)); |
670 | createCol(land, "Desc", typeof(String)); | 675 | createCol(land, "Desc", typeof (String)); |
671 | createCol(land, "OwnerUUID", typeof(String)); | 676 | createCol(land, "OwnerUUID", typeof (String)); |
672 | createCol(land, "IsGroupOwned", typeof(Boolean)); | 677 | createCol(land, "IsGroupOwned", typeof (Boolean)); |
673 | createCol(land, "Area", typeof(Int32)); | 678 | createCol(land, "Area", typeof (Int32)); |
674 | createCol(land, "AuctionID", typeof(Int32)); //Unemplemented | 679 | createCol(land, "AuctionID", typeof (Int32)); //Unemplemented |
675 | createCol(land, "Category", typeof(Int32)); //Enum libsecondlife.Parcel.ParcelCategory | 680 | createCol(land, "Category", typeof (Int32)); //Enum libsecondlife.Parcel.ParcelCategory |
676 | createCol(land, "ClaimDate", typeof(Int32)); | 681 | createCol(land, "ClaimDate", typeof (Int32)); |
677 | createCol(land, "ClaimPrice", typeof(Int32)); | 682 | createCol(land, "ClaimPrice", typeof (Int32)); |
678 | createCol(land, "GroupUUID", typeof(string)); | 683 | createCol(land, "GroupUUID", typeof (string)); |
679 | createCol(land, "SalePrice", typeof(Int32)); | 684 | createCol(land, "SalePrice", typeof (Int32)); |
680 | createCol(land, "LandStatus", typeof(Int32)); //Enum. libsecondlife.Parcel.ParcelStatus | 685 | createCol(land, "LandStatus", typeof (Int32)); //Enum. libsecondlife.Parcel.ParcelStatus |
681 | createCol(land, "LandFlags", typeof(UInt32)); | 686 | createCol(land, "LandFlags", typeof (UInt32)); |
682 | createCol(land, "LandingType", typeof(Byte)); | 687 | createCol(land, "LandingType", typeof (Byte)); |
683 | createCol(land, "MediaAutoScale", typeof(Byte)); | 688 | createCol(land, "MediaAutoScale", typeof (Byte)); |
684 | createCol(land, "MediaTextureUUID", typeof(String)); | 689 | createCol(land, "MediaTextureUUID", typeof (String)); |
685 | createCol(land, "MediaURL", typeof(String)); | 690 | createCol(land, "MediaURL", typeof (String)); |
686 | createCol(land, "MusicURL", typeof(String)); | 691 | createCol(land, "MusicURL", typeof (String)); |
687 | createCol(land, "PassHours", typeof(Double)); | 692 | createCol(land, "PassHours", typeof (Double)); |
688 | createCol(land, "PassPrice", typeof(UInt32)); | 693 | createCol(land, "PassPrice", typeof (UInt32)); |
689 | createCol(land, "SnapshotUUID", typeof(String)); | 694 | createCol(land, "SnapshotUUID", typeof (String)); |
690 | createCol(land, "UserLocationX", typeof(Double)); | 695 | createCol(land, "UserLocationX", typeof (Double)); |
691 | createCol(land, "UserLocationY", typeof(Double)); | 696 | createCol(land, "UserLocationY", typeof (Double)); |
692 | createCol(land, "UserLocationZ", typeof(Double)); | 697 | createCol(land, "UserLocationZ", typeof (Double)); |
693 | createCol(land, "UserLookAtX", typeof(Double)); | 698 | createCol(land, "UserLookAtX", typeof (Double)); |
694 | createCol(land, "UserLookAtY", typeof(Double)); | 699 | createCol(land, "UserLookAtY", typeof (Double)); |
695 | createCol(land, "UserLookAtZ", typeof(Double)); | 700 | createCol(land, "UserLookAtZ", typeof (Double)); |
696 | 701 | ||
697 | land.PrimaryKey = new DataColumn[] { land.Columns["UUID"] }; | 702 | land.PrimaryKey = new DataColumn[] {land.Columns["UUID"]}; |
698 | 703 | ||
699 | return land; | 704 | return land; |
700 | } | 705 | } |
@@ -702,9 +707,9 @@ namespace OpenSim.DataStore.MonoSqlite | |||
702 | private DataTable createLandAccessListTable() | 707 | private DataTable createLandAccessListTable() |
703 | { | 708 | { |
704 | DataTable landaccess = new DataTable("landaccesslist"); | 709 | DataTable landaccess = new DataTable("landaccesslist"); |
705 | createCol(landaccess, "LandUUID", typeof(String)); | 710 | createCol(landaccess, "LandUUID", typeof (String)); |
706 | createCol(landaccess, "AccessUUID", typeof(String)); | 711 | createCol(landaccess, "AccessUUID", typeof (String)); |
707 | createCol(landaccess, "Flags", typeof(UInt32)); | 712 | createCol(landaccess, "Flags", typeof (UInt32)); |
708 | 713 | ||
709 | return landaccess; | 714 | return landaccess; |
710 | } | 715 | } |
@@ -782,35 +787,43 @@ namespace OpenSim.DataStore.MonoSqlite | |||
782 | try | 787 | try |
783 | { | 788 | { |
784 | prim.SetSitTargetLL(new LLVector3( | 789 | prim.SetSitTargetLL(new LLVector3( |
785 | Convert.ToSingle(row["SitTargetOffsetX"]), | 790 | Convert.ToSingle(row["SitTargetOffsetX"]), |
786 | Convert.ToSingle(row["SitTargetOffsetY"]), | 791 | Convert.ToSingle(row["SitTargetOffsetY"]), |
787 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( | 792 | Convert.ToSingle(row["SitTargetOffsetZ"])), new LLQuaternion( |
788 | Convert.ToSingle(row["SitTargetOrientX"]), | 793 | Convert.ToSingle( |
789 | Convert.ToSingle(row["SitTargetOrientY"]), | 794 | row["SitTargetOrientX"]), |
790 | Convert.ToSingle(row["SitTargetOrientZ"]), | 795 | Convert.ToSingle( |
791 | Convert.ToSingle(row["SitTargetOrientW"]))); | 796 | row["SitTargetOrientY"]), |
797 | Convert.ToSingle( | ||
798 | row["SitTargetOrientZ"]), | ||
799 | Convert.ToSingle( | ||
800 | row["SitTargetOrientW"]))); | ||
792 | } | 801 | } |
793 | catch (System.InvalidCastException) | 802 | catch (InvalidCastException) |
794 | { | 803 | { |
795 | // Database table was created before we got here and now has null values :P | 804 | // Database table was created before we got here and now has null values :P |
796 | m_conn.Open(); | 805 | m_conn.Open(); |
797 | SqliteCommand cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetX float NOT NULL default 0;", m_conn); | 806 | SqliteCommand cmd = |
807 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetX float NOT NULL default 0;", m_conn); | ||
798 | cmd.ExecuteNonQuery(); | 808 | cmd.ExecuteNonQuery(); |
799 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetY float NOT NULL default 0;", m_conn); | 809 | cmd = |
810 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetY float NOT NULL default 0;", m_conn); | ||
800 | cmd.ExecuteNonQuery(); | 811 | cmd.ExecuteNonQuery(); |
801 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetZ float NOT NULL default 0;", m_conn); | 812 | cmd = |
813 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOffsetZ float NOT NULL default 0;", m_conn); | ||
802 | cmd.ExecuteNonQuery(); | 814 | cmd.ExecuteNonQuery(); |
803 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientW float NOT NULL default 0;", m_conn); | 815 | cmd = |
816 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientW float NOT NULL default 0;", m_conn); | ||
804 | cmd.ExecuteNonQuery(); | 817 | cmd.ExecuteNonQuery(); |
805 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientX float NOT NULL default 0;", m_conn); | 818 | cmd = |
819 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientX float NOT NULL default 0;", m_conn); | ||
806 | cmd.ExecuteNonQuery(); | 820 | cmd.ExecuteNonQuery(); |
807 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientY float NOT NULL default 0;", m_conn); | 821 | cmd = |
822 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientY float NOT NULL default 0;", m_conn); | ||
808 | cmd.ExecuteNonQuery(); | 823 | cmd.ExecuteNonQuery(); |
809 | cmd = new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientZ float NOT NULL default 0;", m_conn); | 824 | cmd = |
825 | new SqliteCommand("ALTER TABLE prims ADD COLUMN SitTargetOrientZ float NOT NULL default 0;", m_conn); | ||
810 | cmd.ExecuteNonQuery(); | 826 | cmd.ExecuteNonQuery(); |
811 | |||
812 | |||
813 | |||
814 | } | 827 | } |
815 | 828 | ||
816 | return prim; | 829 | return prim; |
@@ -820,36 +833,42 @@ namespace OpenSim.DataStore.MonoSqlite | |||
820 | { | 833 | { |
821 | LandData newData = new LandData(); | 834 | LandData newData = new LandData(); |
822 | 835 | ||
823 | newData.globalID = new LLUUID((String)row["UUID"]); | 836 | newData.globalID = new LLUUID((String) row["UUID"]); |
824 | newData.localID= Convert.ToInt32(row["LocalLandID"]); | 837 | newData.localID = Convert.ToInt32(row["LocalLandID"]); |
825 | 838 | ||
826 | // Bitmap is a byte[512] | 839 | // Bitmap is a byte[512] |
827 | newData.landBitmapByteArray = (Byte[]) row["Bitmap"]; | 840 | newData.landBitmapByteArray = (Byte[]) row["Bitmap"]; |
828 | 841 | ||
829 | newData.landName= (String) row["Name"]; | 842 | newData.landName = (String) row["Name"]; |
830 | newData.landDesc= (String) row["Desc"]; | 843 | newData.landDesc = (String) row["Desc"]; |
831 | newData.ownerID= (String) row["OwnerUUID"]; | 844 | newData.ownerID = (String) row["OwnerUUID"]; |
832 | newData.isGroupOwned= (Boolean) row["IsGroupOwned"]; | 845 | newData.isGroupOwned = (Boolean) row["IsGroupOwned"]; |
833 | newData.area= Convert.ToInt32(row["Area"]); | 846 | newData.area = Convert.ToInt32(row["Area"]); |
834 | newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented | 847 | newData.auctionID = Convert.ToUInt32(row["AuctionID"]); //Unemplemented |
835 | newData.category= (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]); //Enum libsecondlife.Parcel.ParcelCategory | 848 | newData.category = (Parcel.ParcelCategory) Convert.ToInt32(row["Category"]); |
836 | newData.claimDate= Convert.ToInt32(row["ClaimDate"]); | 849 | //Enum libsecondlife.Parcel.ParcelCategory |
837 | newData.claimPrice= Convert.ToInt32(row["ClaimPrice"]); | 850 | newData.claimDate = Convert.ToInt32(row["ClaimDate"]); |
838 | newData.groupID= new LLUUID((String)row["GroupUUID"]); | 851 | newData.claimPrice = Convert.ToInt32(row["ClaimPrice"]); |
852 | newData.groupID = new LLUUID((String) row["GroupUUID"]); | ||
839 | newData.salePrice = Convert.ToInt32(row["SalePrice"]); | 853 | newData.salePrice = Convert.ToInt32(row["SalePrice"]); |
840 | newData.landStatus= (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]); //Enum. libsecondlife.Parcel.ParcelStatus | 854 | newData.landStatus = (Parcel.ParcelStatus) Convert.ToInt32(row["LandStatus"]); |
841 | newData.landFlags= Convert.ToUInt32(row["LandFlags"]); | 855 | //Enum. libsecondlife.Parcel.ParcelStatus |
842 | newData.landingType= (Byte) row["LandingType"]; | 856 | newData.landFlags = Convert.ToUInt32(row["LandFlags"]); |
843 | newData.mediaAutoScale= (Byte) row["MediaAutoScale"]; | 857 | newData.landingType = (Byte) row["LandingType"]; |
844 | newData.mediaID= new LLUUID((String)row["MediaTextureUUID"]); | 858 | newData.mediaAutoScale = (Byte) row["MediaAutoScale"]; |
845 | newData.mediaURL= (String) row["MediaURL"]; | 859 | newData.mediaID = new LLUUID((String) row["MediaTextureUUID"]); |
846 | newData.musicURL= (String) row["MusicURL"]; | 860 | newData.mediaURL = (String) row["MediaURL"]; |
847 | newData.passHours= Convert.ToSingle(row["PassHours"]); | 861 | newData.musicURL = (String) row["MusicURL"]; |
848 | newData.passPrice= Convert.ToInt32(row["PassPrice"]); | 862 | newData.passHours = Convert.ToSingle(row["PassHours"]); |
849 | newData.snapshotID= (String) row["SnapshotUUID"]; | 863 | newData.passPrice = Convert.ToInt32(row["PassPrice"]); |
850 | 864 | newData.snapshotID = (String) row["SnapshotUUID"]; | |
851 | newData.userLocation = new LLVector3(Convert.ToSingle(row["UserLocationX"]),Convert.ToSingle(row["UserLocationY"]), Convert.ToSingle(row["UserLocationZ"])); | 865 | |
852 | newData.userLookAt = new LLVector3(Convert.ToSingle(row["UserLookAtX"]),Convert.ToSingle(row["UserLookAtY"]), Convert.ToSingle(row["UserLookAtZ"])); | 866 | newData.userLocation = |
867 | new LLVector3(Convert.ToSingle(row["UserLocationX"]), Convert.ToSingle(row["UserLocationY"]), | ||
868 | Convert.ToSingle(row["UserLocationZ"])); | ||
869 | newData.userLookAt = | ||
870 | new LLVector3(Convert.ToSingle(row["UserLookAtX"]), Convert.ToSingle(row["UserLookAtY"]), | ||
871 | Convert.ToSingle(row["UserLookAtZ"])); | ||
853 | newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); | 872 | newData.parcelAccessList = new List<ParcelManager.ParcelAccessEntry>(); |
854 | 873 | ||
855 | return newData; | 874 | return newData; |
@@ -858,13 +877,13 @@ namespace OpenSim.DataStore.MonoSqlite | |||
858 | private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) | 877 | private ParcelManager.ParcelAccessEntry buildLandAccessData(DataRow row) |
859 | { | 878 | { |
860 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); | 879 | ParcelManager.ParcelAccessEntry entry = new ParcelManager.ParcelAccessEntry(); |
861 | entry.AgentID = new LLUUID((string)row["AccessUUID"]); | 880 | entry.AgentID = new LLUUID((string) row["AccessUUID"]); |
862 | entry.Flags = (ParcelManager.AccessList)row["Flags"]; | 881 | entry.Flags = (ParcelManager.AccessList) row["Flags"]; |
863 | entry.Time = new DateTime(); | 882 | entry.Time = new DateTime(); |
864 | return entry; | 883 | return entry; |
865 | } | 884 | } |
866 | 885 | ||
867 | private Array serializeTerrain(double[,] val) | 886 | private Array serializeTerrain(double[,] val) |
868 | { | 887 | { |
869 | MemoryStream str = new MemoryStream(65536*sizeof (double)); | 888 | MemoryStream str = new MemoryStream(65536*sizeof (double)); |
870 | BinaryWriter bw = new BinaryWriter(str); | 889 | BinaryWriter bw = new BinaryWriter(str); |
@@ -900,7 +919,8 @@ namespace OpenSim.DataStore.MonoSqlite | |||
900 | row["ParentID"] = prim.ParentID; | 919 | row["ParentID"] = prim.ParentID; |
901 | row["CreationDate"] = prim.CreationDate; | 920 | row["CreationDate"] = prim.CreationDate; |
902 | row["Name"] = prim.Name; | 921 | row["Name"] = prim.Name; |
903 | row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); // the UUID of the root part for this SceneObjectGroup | 922 | row["SceneGroupID"] = Util.ToRawUuidString(sceneGroupID); |
923 | // the UUID of the root part for this SceneObjectGroup | ||
904 | // various text fields | 924 | // various text fields |
905 | row["Text"] = prim.Text; | 925 | row["Text"] = prim.Text; |
906 | row["Description"] = prim.Description; | 926 | row["Description"] = prim.Description; |
@@ -1028,10 +1048,10 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1028 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); | 1048 | s.ProfileHollow = Convert.ToUInt16(row["ProfileHollow"]); |
1029 | // text TODO: this isn't right] = but I'm not sure the right | 1049 | // text TODO: this isn't right] = but I'm not sure the right |
1030 | // way to specify this as a blob atm | 1050 | // way to specify this as a blob atm |
1031 | 1051 | ||
1032 | byte[] textureEntry = (byte[])row["Texture"]; | 1052 | byte[] textureEntry = (byte[]) row["Texture"]; |
1033 | s.TextureEntry = textureEntry; | 1053 | s.TextureEntry = textureEntry; |
1034 | 1054 | ||
1035 | 1055 | ||
1036 | s.ExtraParams = (byte[]) row["ExtraParams"]; | 1056 | s.ExtraParams = (byte[]) row["ExtraParams"]; |
1037 | // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); | 1057 | // System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding(); |
@@ -1278,6 +1298,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1278 | da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]); | 1298 | da.InsertCommand = createInsertCommand("landaccesslist", ds.Tables["landaccesslist"]); |
1279 | da.InsertCommand.Connection = conn; | 1299 | da.InsertCommand.Connection = conn; |
1280 | } | 1300 | } |
1301 | |||
1281 | private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) | 1302 | private void setupShapeCommands(SqliteDataAdapter da, SqliteConnection conn) |
1282 | { | 1303 | { |
1283 | da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); | 1304 | da.InsertCommand = createInsertCommand("primshapes", ds.Tables["primshapes"]); |
@@ -1331,7 +1352,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1331 | { | 1352 | { |
1332 | MainLog.Instance.Warn("SQLITE", "Shapes Table Already Exists"); | 1353 | MainLog.Instance.Warn("SQLITE", "Shapes Table Already Exists"); |
1333 | } | 1354 | } |
1334 | 1355 | ||
1335 | if (persistPrimInventories) | 1356 | if (persistPrimInventories) |
1336 | { | 1357 | { |
1337 | try | 1358 | try |
@@ -1341,7 +1362,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1341 | catch (SqliteSyntaxException) | 1362 | catch (SqliteSyntaxException) |
1342 | { | 1363 | { |
1343 | MainLog.Instance.Warn("SQLITE", "Primitives Inventory Table Already Exists"); | 1364 | MainLog.Instance.Warn("SQLITE", "Primitives Inventory Table Already Exists"); |
1344 | } | 1365 | } |
1345 | } | 1366 | } |
1346 | 1367 | ||
1347 | try | 1368 | try |
@@ -1377,32 +1398,31 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1377 | { | 1398 | { |
1378 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); | 1399 | SqliteCommand primSelectCmd = new SqliteCommand(primSelect, conn); |
1379 | SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd); | 1400 | SqliteDataAdapter pDa = new SqliteDataAdapter(primSelectCmd); |
1380 | 1401 | ||
1381 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn); | 1402 | SqliteCommand shapeSelectCmd = new SqliteCommand(shapeSelect, conn); |
1382 | SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd); | 1403 | SqliteDataAdapter sDa = new SqliteDataAdapter(shapeSelectCmd); |
1383 | 1404 | ||
1384 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, conn); | 1405 | SqliteCommand itemsSelectCmd = new SqliteCommand(itemsSelect, conn); |
1385 | SqliteDataAdapter iDa = new SqliteDataAdapter(itemsSelectCmd); | 1406 | SqliteDataAdapter iDa = new SqliteDataAdapter(itemsSelectCmd); |
1386 | 1407 | ||
1387 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn); | 1408 | SqliteCommand terrainSelectCmd = new SqliteCommand(terrainSelect, conn); |
1388 | SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd); | 1409 | SqliteDataAdapter tDa = new SqliteDataAdapter(terrainSelectCmd); |
1389 | 1410 | ||
1390 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, conn); | 1411 | SqliteCommand landSelectCmd = new SqliteCommand(landSelect, conn); |
1391 | SqliteDataAdapter lDa = new SqliteDataAdapter(landSelectCmd); | 1412 | SqliteDataAdapter lDa = new SqliteDataAdapter(landSelectCmd); |
1392 | 1413 | ||
1393 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, conn); | 1414 | SqliteCommand landAccessListSelectCmd = new SqliteCommand(landAccessListSelect, conn); |
1394 | SqliteDataAdapter lalDa = new SqliteDataAdapter(landAccessListSelectCmd); | 1415 | SqliteDataAdapter lalDa = new SqliteDataAdapter(landAccessListSelectCmd); |
1395 | 1416 | ||
1396 | DataSet tmpDS = new DataSet(); | 1417 | DataSet tmpDS = new DataSet(); |
1397 | try | 1418 | try |
1398 | { | 1419 | { |
1399 | |||
1400 | pDa.Fill(tmpDS, "prims"); | 1420 | pDa.Fill(tmpDS, "prims"); |
1401 | sDa.Fill(tmpDS, "primshapes"); | 1421 | sDa.Fill(tmpDS, "primshapes"); |
1402 | 1422 | ||
1403 | if (persistPrimInventories) | 1423 | if (persistPrimInventories) |
1404 | iDa.Fill(tmpDS, "primitems"); | 1424 | iDa.Fill(tmpDS, "primitems"); |
1405 | 1425 | ||
1406 | tDa.Fill(tmpDS, "terrain"); | 1426 | tDa.Fill(tmpDS, "terrain"); |
1407 | lDa.Fill(tmpDS, "land"); | 1427 | lDa.Fill(tmpDS, "land"); |
1408 | lalDa.Fill(tmpDS, "landaccesslist"); | 1428 | lalDa.Fill(tmpDS, "landaccesslist"); |
@@ -1415,13 +1435,13 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1415 | 1435 | ||
1416 | pDa.Fill(tmpDS, "prims"); | 1436 | pDa.Fill(tmpDS, "prims"); |
1417 | sDa.Fill(tmpDS, "primshapes"); | 1437 | sDa.Fill(tmpDS, "primshapes"); |
1418 | 1438 | ||
1419 | if (persistPrimInventories) | 1439 | if (persistPrimInventories) |
1420 | iDa.Fill(tmpDS, "primitems"); | 1440 | iDa.Fill(tmpDS, "primitems"); |
1421 | 1441 | ||
1422 | tDa.Fill(tmpDS, "terrain"); | 1442 | tDa.Fill(tmpDS, "terrain"); |
1423 | lDa.Fill(tmpDS, "land"); | 1443 | lDa.Fill(tmpDS, "land"); |
1424 | lalDa.Fill(tmpDS,"landaccesslist"); | 1444 | lalDa.Fill(tmpDS, "landaccesslist"); |
1425 | 1445 | ||
1426 | foreach (DataColumn col in createPrimTable().Columns) | 1446 | foreach (DataColumn col in createPrimTable().Columns) |
1427 | { | 1447 | { |
@@ -1431,7 +1451,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1431 | return false; | 1451 | return false; |
1432 | } | 1452 | } |
1433 | } | 1453 | } |
1434 | 1454 | ||
1435 | foreach (DataColumn col in createShapeTable().Columns) | 1455 | foreach (DataColumn col in createShapeTable().Columns) |
1436 | { | 1456 | { |
1437 | if (!tmpDS.Tables["primshapes"].Columns.Contains(col.ColumnName)) | 1457 | if (!tmpDS.Tables["primshapes"].Columns.Contains(col.ColumnName)) |
@@ -1440,9 +1460,9 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1440 | return false; | 1460 | return false; |
1441 | } | 1461 | } |
1442 | } | 1462 | } |
1443 | 1463 | ||
1444 | // TODO Not restoring prim inventories quite yet | 1464 | // TODO Not restoring prim inventories quite yet |
1445 | 1465 | ||
1446 | foreach (DataColumn col in createTerrainTable().Columns) | 1466 | foreach (DataColumn col in createTerrainTable().Columns) |
1447 | { | 1467 | { |
1448 | if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName)) | 1468 | if (!tmpDS.Tables["terrain"].Columns.Contains(col.ColumnName)) |
@@ -1451,7 +1471,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1451 | return false; | 1471 | return false; |
1452 | } | 1472 | } |
1453 | } | 1473 | } |
1454 | 1474 | ||
1455 | foreach (DataColumn col in createLandTable().Columns) | 1475 | foreach (DataColumn col in createLandTable().Columns) |
1456 | { | 1476 | { |
1457 | if (!tmpDS.Tables["land"].Columns.Contains(col.ColumnName)) | 1477 | if (!tmpDS.Tables["land"].Columns.Contains(col.ColumnName)) |
@@ -1460,7 +1480,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1460 | return false; | 1480 | return false; |
1461 | } | 1481 | } |
1462 | } | 1482 | } |
1463 | 1483 | ||
1464 | foreach (DataColumn col in createLandAccessListTable().Columns) | 1484 | foreach (DataColumn col in createLandAccessListTable().Columns) |
1465 | { | 1485 | { |
1466 | if (!tmpDS.Tables["landaccesslist"].Columns.Contains(col.ColumnName)) | 1486 | if (!tmpDS.Tables["landaccesslist"].Columns.Contains(col.ColumnName)) |
@@ -1469,7 +1489,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1469 | return false; | 1489 | return false; |
1470 | } | 1490 | } |
1471 | } | 1491 | } |
1472 | 1492 | ||
1473 | return true; | 1493 | return true; |
1474 | } | 1494 | } |
1475 | 1495 | ||
@@ -1526,7 +1546,7 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1526 | else if (type == typeof (Int64)) | 1546 | else if (type == typeof (Int64)) |
1527 | { | 1547 | { |
1528 | return "integer"; | 1548 | return "integer"; |
1529 | } | 1549 | } |
1530 | else if (type == typeof (Double)) | 1550 | else if (type == typeof (Double)) |
1531 | { | 1551 | { |
1532 | return "float"; | 1552 | return "float"; |
@@ -1541,4 +1561,4 @@ namespace OpenSim.DataStore.MonoSqlite | |||
1541 | } | 1561 | } |
1542 | } | 1562 | } |
1543 | } | 1563 | } |
1544 | } | 1564 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs index da05018..035c3ba 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.NullStorage/NullDataStore.cs | |||
@@ -28,6 +28,7 @@ | |||
28 | 28 | ||
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using OpenSim.Framework; | ||
31 | using OpenSim.Region.Environment.Interfaces; | 32 | using OpenSim.Region.Environment.Interfaces; |
32 | using OpenSim.Region.Environment.LandManagement; | 33 | using OpenSim.Region.Environment.LandManagement; |
33 | using OpenSim.Region.Environment.Scenes; | 34 | using OpenSim.Region.Environment.Scenes; |
@@ -71,9 +72,9 @@ namespace OpenSim.DataStore.NullStorage | |||
71 | { | 72 | { |
72 | } | 73 | } |
73 | 74 | ||
74 | public List<Framework.LandData> LoadLandObjects(LLUUID regionUUID) | 75 | public List<LandData> LoadLandObjects(LLUUID regionUUID) |
75 | { | 76 | { |
76 | return new List<Framework.LandData>(); | 77 | return new List<LandData>(); |
77 | } | 78 | } |
78 | 79 | ||
79 | public void Shutdown() | 80 | public void Shutdown() |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/Properties/AssemblyInfo.cs b/OpenSim/Region/Terrain.BasicTerrain/Properties/AssemblyInfo.cs index 3c0facb..3195140 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/Properties/AssemblyInfo.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/Properties/AssemblyInfo.cs | |||
@@ -62,4 +62,4 @@ using System.Runtime.InteropServices; | |||
62 | // by using the '*' as shown below: | 62 | // by using the '*' as shown below: |
63 | 63 | ||
64 | [assembly : AssemblyVersion("1.0.0.0")] | 64 | [assembly : AssemblyVersion("1.0.0.0")] |
65 | [assembly : AssemblyFileVersion("1.0.0.0")] | 65 | [assembly : AssemblyFileVersion("1.0.0.0")] \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs index e89ff62..2405e86 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs | |||
@@ -159,12 +159,13 @@ namespace OpenSim.Region.Terrain | |||
159 | /// <param name="action">The action to be performed</param> | 159 | /// <param name="action">The action to be performed</param> |
160 | /// <param name="north">Distance from the north border where the cursor is located</param> | 160 | /// <param name="north">Distance from the north border where the cursor is located</param> |
161 | /// <param name="west">Distance from the west border where the cursor is located</param> | 161 | /// <param name="west">Distance from the west border where the cursor is located</param> |
162 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, float south, float east, | 162 | public void ModifyTerrain(float height, float seconds, byte brushsize, byte action, float north, float west, |
163 | float south, float east, | ||
163 | IClientAPI remoteUser) | 164 | IClientAPI remoteUser) |
164 | { | 165 | { |
165 | // Shiny. | 166 | // Shiny. |
166 | double size = (double) (1 << brushsize); | 167 | double size = (double) (1 << brushsize); |
167 | 168 | ||
168 | /* Okay, so here's the deal | 169 | /* Okay, so here's the deal |
169 | * This has to handle both when a user draws on the terrain *and* when a user selects | 170 | * This has to handle both when a user draws on the terrain *and* when a user selects |
170 | * a selection of AABB on terrain and applies whatever routine the client requests | 171 | * a selection of AABB on terrain and applies whatever routine the client requests |
@@ -189,8 +190,8 @@ namespace OpenSim.Region.Terrain | |||
189 | * Again, libTerrain is yx instead of xy.. so, it's reflected in the function calls | 190 | * Again, libTerrain is yx instead of xy.. so, it's reflected in the function calls |
190 | * | 191 | * |
191 | */ | 192 | */ |
192 | 193 | ||
193 | 194 | ||
194 | switch (action) | 195 | switch (action) |
195 | { | 196 | { |
196 | case 0: | 197 | case 0: |
@@ -199,7 +200,7 @@ namespace OpenSim.Region.Terrain | |||
199 | { | 200 | { |
200 | for (float y = west; y <= east; y++) | 201 | for (float y = west; y <= east; y++) |
201 | { | 202 | { |
202 | FlattenTerrain(y, x, size, (double)seconds / 5.0); | 203 | FlattenTerrain(y, x, size, (double) seconds/5.0); |
203 | lastEdit = DateTime.Now; | 204 | lastEdit = DateTime.Now; |
204 | } | 205 | } |
205 | } | 206 | } |
@@ -210,7 +211,7 @@ namespace OpenSim.Region.Terrain | |||
210 | { | 211 | { |
211 | for (float y = west; y <= east; y++) | 212 | for (float y = west; y <= east; y++) |
212 | { | 213 | { |
213 | RaiseTerrain(y, x, size, (double)seconds / 5.0); | 214 | RaiseTerrain(y, x, size, (double) seconds/5.0); |
214 | lastEdit = DateTime.Now; | 215 | lastEdit = DateTime.Now; |
215 | } | 216 | } |
216 | } | 217 | } |
@@ -221,7 +222,7 @@ namespace OpenSim.Region.Terrain | |||
221 | { | 222 | { |
222 | for (float y = west; y <= east; y++) | 223 | for (float y = west; y <= east; y++) |
223 | { | 224 | { |
224 | LowerTerrain(y, x, size, (double)seconds / 5.0); | 225 | LowerTerrain(y, x, size, (double) seconds/5.0); |
225 | lastEdit = DateTime.Now; | 226 | lastEdit = DateTime.Now; |
226 | } | 227 | } |
227 | } | 228 | } |
@@ -235,13 +236,13 @@ namespace OpenSim.Region.Terrain | |||
235 | // | 236 | // |
236 | //for (float x = south; x <= north; x++) | 237 | //for (float x = south; x <= north; x++) |
237 | //{ | 238 | //{ |
238 | //for (float y = west; y <= east; y++) | 239 | //for (float y = west; y <= east; y++) |
239 | //{ | 240 | //{ |
240 | //SmoothTerrain(y, x , size, (double)seconds / 5.0); | 241 | //SmoothTerrain(y, x , size, (double)seconds / 5.0); |
241 | //} | 242 | //} |
242 | //} | 243 | //} |
243 | 244 | ||
244 | SmoothTerrain(west, north, size, (double)seconds / 5.0); | 245 | SmoothTerrain(west, north, size, (double) seconds/5.0); |
245 | 246 | ||
246 | break; | 247 | break; |
247 | case 4: | 248 | case 4: |
@@ -250,7 +251,7 @@ namespace OpenSim.Region.Terrain | |||
250 | { | 251 | { |
251 | for (float y = west; y <= east; y++) | 252 | for (float y = west; y <= east; y++) |
252 | { | 253 | { |
253 | NoiseTerrain(y, x, size, (double)seconds / 5.0); | 254 | NoiseTerrain(y, x, size, (double) seconds/5.0); |
254 | lastEdit = DateTime.Now; | 255 | lastEdit = DateTime.Now; |
255 | } | 256 | } |
256 | } | 257 | } |
@@ -261,7 +262,7 @@ namespace OpenSim.Region.Terrain | |||
261 | { | 262 | { |
262 | for (float y = west; y <= east; y++) | 263 | for (float y = west; y <= east; y++) |
263 | { | 264 | { |
264 | RevertTerrain(y, x, size, (double)seconds / 5.0); | 265 | RevertTerrain(y, x, size, (double) seconds/5.0); |
265 | lastEdit = DateTime.Now; | 266 | lastEdit = DateTime.Now; |
266 | } | 267 | } |
267 | } | 268 | } |
@@ -1351,16 +1352,16 @@ namespace OpenSim.Region.Terrain | |||
1351 | } | 1352 | } |
1352 | 1353 | ||
1353 | Channel copy = heightmap.Copy(); | 1354 | Channel copy = heightmap.Copy(); |
1354 | for (int y = 0; y <copy.h; y++) | 1355 | for (int y = 0; y < copy.h; y++) |
1355 | { | 1356 | { |
1356 | for (int x = 0; x < copy.w; x++) | 1357 | for (int x = 0; x < copy.w; x++) |
1357 | { | 1358 | { |
1358 | // 512 is the largest possible height before colours clamp | 1359 | // 512 is the largest possible height before colours clamp |
1359 | int colorindex = (int) (Math.Max(Math.Min(1.0, copy.Get(x, y)/512.0), 0.0)*(pallete - 1)); | 1360 | int colorindex = (int) (Math.Max(Math.Min(1.0, copy.Get(x, y)/512.0), 0.0)*(pallete - 1)); |
1360 | bmp.SetPixel(x, copy.h-y-1, colours[colorindex]); | 1361 | bmp.SetPixel(x, copy.h - y - 1, colours[colorindex]); |
1361 | } | 1362 | } |
1362 | } | 1363 | } |
1363 | return bmp; | 1364 | return bmp; |
1364 | } | 1365 | } |
1365 | } | 1366 | } |
1366 | } | 1367 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/TerrainFilter.cs b/OpenSim/Region/Terrain.BasicTerrain/TerrainFilter.cs index 4daa4b4..c56e29e 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/TerrainFilter.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/TerrainFilter.cs | |||
@@ -122,4 +122,4 @@ namespace OpenSim.Region.Terrain | |||
122 | LoadFilter(compiler, filename); | 122 | LoadFilter(compiler, filename); |
123 | } | 123 | } |
124 | } | 124 | } |
125 | } | 125 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Bitmap/Bitmap.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Bitmap/Bitmap.cs index 3aa321c..b761f1e 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Bitmap/Bitmap.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Bitmap/Bitmap.cs | |||
@@ -83,4 +83,4 @@ namespace libTerrain | |||
83 | gd.DrawString(txt, new Font(font, (float) size), new SolidBrush(Color.White), area, sf); | 83 | gd.DrawString(txt, new Font(font, (float) size), new SolidBrush(Color.White), area, sf); |
84 | } | 84 | } |
85 | } | 85 | } |
86 | } | 86 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Channel.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Channel.cs index 9c7ab35..a7f7246 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Channel.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Channel.cs | |||
@@ -57,4 +57,4 @@ namespace libTerrain | |||
57 | diff = new int[(int) (w/16),(int) (h/16)]; | 57 | diff = new int[(int) (w/16),(int) (h/16)]; |
58 | } | 58 | } |
59 | } | 59 | } |
60 | } | 60 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Common.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Common.cs index 083d2f5..8bc4a04 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Common.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Common.cs | |||
@@ -280,4 +280,4 @@ namespace libTerrain | |||
280 | return false; | 280 | return false; |
281 | } | 281 | } |
282 | } | 282 | } |
283 | } | 283 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Flatten.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Flatten.cs index b4784f0..df34eeb 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Flatten.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Flatten.cs | |||
@@ -143,4 +143,4 @@ namespace libTerrain | |||
143 | Blend(flat, temp); | 143 | Blend(flat, temp); |
144 | } | 144 | } |
145 | } | 145 | } |
146 | } | 146 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs index 5517c52..9a8b8f5 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Editing/Raise.cs | |||
@@ -134,4 +134,4 @@ namespace libTerrain | |||
134 | } | 134 | } |
135 | } | 135 | } |
136 | } | 136 | } |
137 | } | 137 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/File.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/File.cs index fa3840f..3d51583 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/File.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/File.cs | |||
@@ -73,4 +73,4 @@ namespace libTerrain | |||
73 | bit.Save(filename); | 73 | bit.Save(filename); |
74 | } | 74 | } |
75 | } | 75 | } |
76 | } | 76 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Fracture.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Fracture.cs index 549fe0b..992377f 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Fracture.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Fracture.cs | |||
@@ -140,4 +140,4 @@ namespace libTerrain | |||
140 | Normalise(); | 140 | Normalise(); |
141 | } | 141 | } |
142 | } | 142 | } |
143 | } | 143 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Gradient.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Gradient.cs index 3ac1ed7..6cdf7ce 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Gradient.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Gradient.cs | |||
@@ -58,4 +58,4 @@ namespace libTerrain | |||
58 | Normalise(); | 58 | Normalise(); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | } | 61 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/HillPlanter.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/HillPlanter.cs index 9e86aaf..000bfcc 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/HillPlanter.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/HillPlanter.cs | |||
@@ -279,4 +279,4 @@ namespace libTerrain | |||
279 | Normalise(); | 279 | Normalise(); |
280 | } | 280 | } |
281 | } | 281 | } |
282 | } | 282 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Noise.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Noise.cs index 80e10ba..0bce1b2 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Noise.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Noise.cs | |||
@@ -51,4 +51,4 @@ namespace libTerrain | |||
51 | } | 51 | } |
52 | } | 52 | } |
53 | } | 53 | } |
54 | } | 54 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Spiral.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Spiral.cs index 330e7f5..414f844 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Spiral.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Spiral.cs | |||
@@ -154,4 +154,4 @@ namespace libTerrain | |||
154 | Normalise(); | 154 | Normalise(); |
155 | } | 155 | } |
156 | } | 156 | } |
157 | } | 157 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Voronoi.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Voronoi.cs index dc53343..e188486 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Voronoi.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Voronoi.cs | |||
@@ -209,4 +209,4 @@ namespace libTerrain | |||
209 | Normalise(); | 209 | Normalise(); |
210 | } | 210 | } |
211 | } | 211 | } |
212 | } | 212 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Worms.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Worms.cs index 7727344..8f9f14b 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Worms.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Generators/Worms.cs | |||
@@ -69,4 +69,4 @@ namespace libTerrain | |||
69 | } | 69 | } |
70 | } | 70 | } |
71 | } | 71 | } |
72 | } | 72 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Grid.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Grid.cs index 41f6ece..4ff8e78 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Grid.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Grid.cs | |||
@@ -356,4 +356,4 @@ namespace libTerrain | |||
356 | return this; | 356 | return this; |
357 | } | 357 | } |
358 | } | 358 | } |
359 | } | 359 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/AerobicErosion.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/AerobicErosion.cs index 3560a80..8e8d30f 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/AerobicErosion.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/AerobicErosion.cs | |||
@@ -209,4 +209,4 @@ namespace libTerrain | |||
209 | SaveImage("testimg/output.png"); | 209 | SaveImage("testimg/output.png"); |
210 | } | 210 | } |
211 | } | 211 | } |
212 | } | 212 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/HydraulicErosion.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/HydraulicErosion.cs index 35f5288..abb620a 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/HydraulicErosion.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/HydraulicErosion.cs | |||
@@ -142,4 +142,4 @@ namespace libTerrain | |||
142 | } | 142 | } |
143 | } | 143 | } |
144 | } | 144 | } |
145 | } | 145 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs index f14cea7..896c354 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/NavierStokes.cs | |||
@@ -304,4 +304,4 @@ namespace libTerrain | |||
304 | nsBufferToDoubles(ref dens, N, ref map); | 304 | nsBufferToDoubles(ref dens, N, ref map); |
305 | } | 305 | } |
306 | } | 306 | } |
307 | } | 307 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/ThermalWeathering.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/ThermalWeathering.cs index 6767bb9..5be239f 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/ThermalWeathering.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Manipulators/ThermalWeathering.cs | |||
@@ -105,4 +105,4 @@ namespace libTerrain | |||
105 | return this; | 105 | return this; |
106 | } | 106 | } |
107 | } | 107 | } |
108 | } | 108 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Neighbours.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Neighbours.cs index 2ffa231..a946b09 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Neighbours.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Neighbours.cs | |||
@@ -134,4 +134,4 @@ namespace libTerrain | |||
134 | return coord; | 134 | return coord; |
135 | } | 135 | } |
136 | } | 136 | } |
137 | } | 137 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Operators.cs b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Operators.cs index 0cca110..6de16ff 100644 --- a/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Operators.cs +++ b/OpenSim/Region/Terrain.BasicTerrain/libTerrainBSD/Channel/Operators.cs | |||
@@ -237,4 +237,4 @@ namespace libTerrain | |||
237 | return A; | 237 | return A; |
238 | } | 238 | } |
239 | } | 239 | } |
240 | } | 240 | } \ No newline at end of file |
diff --git a/OpenSim/Tools/Export/OpenSimExport.cs b/OpenSim/Tools/Export/OpenSimExport.cs index b0764ff..4a5ba5d 100644 --- a/OpenSim/Tools/Export/OpenSimExport.cs +++ b/OpenSim/Tools/Export/OpenSimExport.cs | |||
@@ -27,15 +27,11 @@ | |||
27 | */ | 27 | */ |
28 | using System; | 28 | using System; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.Reflection; | ||
31 | using Nini.Config; | 30 | using Nini.Config; |
32 | using OpenSim; | ||
33 | using OpenSim.Framework; | 31 | using OpenSim.Framework; |
34 | using OpenSim.Framework.Console; | 32 | using OpenSim.Framework.Console; |
35 | using OpenSim.Region.Environment; | 33 | using OpenSim.Region.Environment; |
36 | using OpenSim.Region.Environment.Scenes; | 34 | using OpenSim.Region.Environment.Scenes; |
37 | using Mono.Addins; | ||
38 | using Mono.Addins.Description; | ||
39 | 35 | ||
40 | namespace OpenSim.Tools.Export | 36 | namespace OpenSim.Tools.Export |
41 | { | 37 | { |
@@ -43,7 +39,7 @@ namespace OpenSim.Tools.Export | |||
43 | { | 39 | { |
44 | public IniConfigSource config; | 40 | public IniConfigSource config; |
45 | public StorageManager sman; | 41 | public StorageManager sman; |
46 | 42 | ||
47 | public OpenSimExport(IniConfigSource config) | 43 | public OpenSimExport(IniConfigSource config) |
48 | { | 44 | { |
49 | this.config = config; | 45 | this.config = config; |
@@ -53,13 +49,13 @@ namespace OpenSim.Tools.Export | |||
53 | 49 | ||
54 | // TODO: this really sucks, but given the way we do | 50 | // TODO: this really sucks, but given the way we do |
55 | // logging in OpenSim, we need to establish a log up front | 51 | // logging in OpenSim, we need to establish a log up front |
56 | 52 | ||
57 | MainLog.Instance = CreateLog(); | 53 | MainLog.Instance = CreateLog(); |
58 | 54 | ||
59 | this.sman = new StorageManager( | 55 | sman = new StorageManager( |
60 | startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), | 56 | startup.GetString("storage_plugin", "OpenSim.DataStore.NullStorage.dll"), |
61 | startup.GetString("storage_connection_string","") | 57 | startup.GetString("storage_connection_string", "") |
62 | ); | 58 | ); |
63 | } | 59 | } |
64 | 60 | ||
65 | public static void Main(string[] args) | 61 | public static void Main(string[] args) |
@@ -67,10 +63,10 @@ namespace OpenSim.Tools.Export | |||
67 | OpenSimExport export = new OpenSimExport(InitConfig(args)); | 63 | OpenSimExport export = new OpenSimExport(InitConfig(args)); |
68 | RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); | 64 | RegionInfo reg = new RegionInfo("Sara Jane", "Regions/1000-1000.xml"); |
69 | 65 | ||
70 | System.Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); | 66 | Console.WriteLine("This application does nothing useful yet: " + reg.RegionID); |
71 | foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) | 67 | foreach (SceneObjectGroup group in export.sman.DataStore.LoadObjects(reg.RegionID)) |
72 | { | 68 | { |
73 | System.Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); | 69 | Console.WriteLine("{0} -> {1}", reg.RegionID, group.UUID); |
74 | } | 70 | } |
75 | } | 71 | } |
76 | 72 | ||
@@ -83,25 +79,25 @@ namespace OpenSim.Tools.Export | |||
83 | 79 | ||
84 | return new LogBase((Path.Combine(Util.logDir(), "export.log")), "Export", null, true); | 80 | return new LogBase((Path.Combine(Util.logDir(), "export.log")), "Export", null, true); |
85 | } | 81 | } |
86 | 82 | ||
87 | 83 | ||
88 | private static IniConfigSource InitConfig(string[] args) | 84 | private static IniConfigSource InitConfig(string[] args) |
89 | { | 85 | { |
90 | System.Console.WriteLine("Good"); | 86 | Console.WriteLine("Good"); |
91 | ArgvConfigSource configSource = new ArgvConfigSource(args); | 87 | ArgvConfigSource configSource = new ArgvConfigSource(args); |
92 | configSource.AddSwitch("Startup", "inifile"); | 88 | configSource.AddSwitch("Startup", "inifile"); |
93 | 89 | ||
94 | IConfig startupConfig = configSource.Configs["Startup"]; | 90 | IConfig startupConfig = configSource.Configs["Startup"]; |
95 | string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); | 91 | string iniFilePath = startupConfig.GetString("inifile", "OpenSim.ini"); |
96 | System.Console.WriteLine(iniFilePath); | 92 | Console.WriteLine(iniFilePath); |
97 | IniConfigSource config = new IniConfigSource(); | 93 | IniConfigSource config = new IniConfigSource(); |
98 | //check for .INI file (either default or name passed in command line) | 94 | //check for .INI file (either default or name passed in command line) |
99 | if(! File.Exists(iniFilePath)) | 95 | if (! File.Exists(iniFilePath)) |
100 | { | 96 | { |
101 | iniFilePath = Path.Combine(Util.configDir(), iniFilePath); | 97 | iniFilePath = Path.Combine(Util.configDir(), iniFilePath); |
102 | } | 98 | } |
103 | 99 | ||
104 | if(File.Exists(iniFilePath)) | 100 | if (File.Exists(iniFilePath)) |
105 | { | 101 | { |
106 | config.Merge(new IniConfigSource(iniFilePath)); | 102 | config.Merge(new IniConfigSource(iniFilePath)); |
107 | config.Merge(configSource); | 103 | config.Merge(configSource); |
@@ -109,8 +105,8 @@ namespace OpenSim.Tools.Export | |||
109 | else | 105 | else |
110 | { | 106 | { |
111 | // no default config files, so set default values, and save it | 107 | // no default config files, so set default values, and save it |
112 | System.Console.WriteLine("We didn't find a config!"); | 108 | Console.WriteLine("We didn't find a config!"); |
113 | config.Merge(OpenSim.OpenSimMain.DefaultConfig()); | 109 | config.Merge(OpenSimMain.DefaultConfig()); |
114 | config.Merge(configSource); | 110 | config.Merge(configSource); |
115 | } | 111 | } |
116 | 112 | ||