diff options
Diffstat (limited to '')
53 files changed, 6255 insertions, 6255 deletions
diff --git a/OpenSim/Framework/Communications/Capabilities/Caps.cs b/OpenSim/Framework/Communications/Capabilities/Caps.cs index 5aacecb..05fa963 100644 --- a/OpenSim/Framework/Communications/Capabilities/Caps.cs +++ b/OpenSim/Framework/Communications/Capabilities/Caps.cs | |||
@@ -1,362 +1,362 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.Collections; | 29 | using System.Collections; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | using System.IO; | 32 | using System.IO; |
33 | using libsecondlife; | 33 | using libsecondlife; |
34 | using OpenSim.Framework.Servers; | 34 | using OpenSim.Framework.Servers; |
35 | using OpenSim.Framework.Types; | 35 | using OpenSim.Framework.Types; |
36 | using OpenSim.Framework.Utilities; | 36 | using OpenSim.Framework.Utilities; |
37 | using OpenSim.Framework.Communications.Caches; | 37 | using OpenSim.Framework.Communications.Caches; |
38 | 38 | ||
39 | namespace OpenSim.Region.Capabilities | 39 | namespace OpenSim.Region.Capabilities |
40 | { | 40 | { |
41 | public delegate void UpLoadedTexture(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data); | 41 | public delegate void UpLoadedTexture(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data); |
42 | 42 | ||
43 | public class Caps | 43 | public class Caps |
44 | { | 44 | { |
45 | private string m_httpListenerHostName; | 45 | private string m_httpListenerHostName; |
46 | private int m_httpListenPort; | 46 | private int m_httpListenPort; |
47 | private string m_capsObjectPath = "00001-"; | 47 | private string m_capsObjectPath = "00001-"; |
48 | private string m_requestPath = "0000/"; | 48 | private string m_requestPath = "0000/"; |
49 | private string m_mapLayerPath = "0001/"; | 49 | private string m_mapLayerPath = "0001/"; |
50 | private string m_newInventory = "0002/"; | 50 | private string m_newInventory = "0002/"; |
51 | // private string m_requestTexture = "0003/"; | 51 | // private string m_requestTexture = "0003/"; |
52 | private string m_notecardUpdatePath = "0004/"; | 52 | private string m_notecardUpdatePath = "0004/"; |
53 | //private string eventQueue = "0100/"; | 53 | //private string eventQueue = "0100/"; |
54 | private BaseHttpServer httpListener; | 54 | private BaseHttpServer httpListener; |
55 | private LLUUID agentID; | 55 | private LLUUID agentID; |
56 | private AssetCache assetCache; | 56 | private AssetCache assetCache; |
57 | private int eventQueueCount = 1; | 57 | private int eventQueueCount = 1; |
58 | private Queue<string> CapsEventQueue = new Queue<string>(); | 58 | private Queue<string> CapsEventQueue = new Queue<string>(); |
59 | 59 | ||
60 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, LLUUID agent) | 60 | public Caps(AssetCache assetCach, BaseHttpServer httpServer, string httpListen, int httpPort, string capsPath, LLUUID agent) |
61 | { | 61 | { |
62 | assetCache = assetCach; | 62 | assetCache = assetCach; |
63 | m_capsObjectPath = capsPath; | 63 | m_capsObjectPath = capsPath; |
64 | httpListener = httpServer; | 64 | httpListener = httpServer; |
65 | m_httpListenerHostName = httpListen; | 65 | m_httpListenerHostName = httpListen; |
66 | m_httpListenPort = httpPort; | 66 | m_httpListenPort = httpPort; |
67 | agentID = agent; | 67 | agentID = agent; |
68 | } | 68 | } |
69 | 69 | ||
70 | /// <summary> | 70 | /// <summary> |
71 | /// | 71 | /// |
72 | /// </summary> | 72 | /// </summary> |
73 | public void RegisterHandlers() | 73 | public void RegisterHandlers() |
74 | { | 74 | { |
75 | Console.WriteLine("registering CAPS handlers"); | 75 | Console.WriteLine("registering CAPS handlers"); |
76 | string capsBase = "/CAPS/" + m_capsObjectPath; | 76 | string capsBase = "/CAPS/" + m_capsObjectPath; |
77 | 77 | ||
78 | httpListener.AddStreamHandler(new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer )); | 78 | httpListener.AddStreamHandler(new LLSDStreamhandler<LLSDMapRequest, LLSDMapLayerResponse>("POST", capsBase + m_mapLayerPath, this.GetMapLayer )); |
79 | httpListener.AddStreamHandler( new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDAssetUploadResponse>("POST", capsBase + m_newInventory, this.NewAgentInventoryRequest)); | 79 | httpListener.AddStreamHandler( new LLSDStreamhandler<LLSDAssetUploadRequest, LLSDAssetUploadResponse>("POST", capsBase + m_newInventory, this.NewAgentInventoryRequest)); |
80 | 80 | ||
81 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); | 81 | AddLegacyCapsHandler(httpListener, m_requestPath, CapsRequest); |
82 | AddLegacyCapsHandler(httpListener, m_notecardUpdatePath, NoteCardAgentInventory); | 82 | AddLegacyCapsHandler(httpListener, m_notecardUpdatePath, NoteCardAgentInventory); |
83 | } | 83 | } |
84 | 84 | ||
85 | 85 | ||
86 | //[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")] | 86 | //[Obsolete("Use BaseHttpServer.AddStreamHandler(new LLSDStreamHandler( LLSDMethod delegate )) instead.")] |
87 | //Commented out the obsolete as at this time the first caps request can not use the new Caps method | 87 | //Commented out the obsolete as at this time the first caps request can not use the new Caps method |
88 | //as the sent type is a array and not a map and the deserialising doesn't deal properly with arrays. | 88 | //as the sent type is a array and not a map and the deserialising doesn't deal properly with arrays. |
89 | private void AddLegacyCapsHandler(BaseHttpServer httpListener, string path, RestMethod restMethod) | 89 | private void AddLegacyCapsHandler(BaseHttpServer httpListener, string path, RestMethod restMethod) |
90 | { | 90 | { |
91 | string capsBase = "/CAPS/" + m_capsObjectPath; | 91 | string capsBase = "/CAPS/" + m_capsObjectPath; |
92 | httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod)); | 92 | httpListener.AddStreamHandler(new RestStreamHandler("POST", capsBase + path, restMethod)); |
93 | } | 93 | } |
94 | 94 | ||
95 | /// <summary> | 95 | /// <summary> |
96 | /// | 96 | /// |
97 | /// </summary> | 97 | /// </summary> |
98 | /// <param name="request"></param> | 98 | /// <param name="request"></param> |
99 | /// <param name="path"></param> | 99 | /// <param name="path"></param> |
100 | /// <param name="param"></param> | 100 | /// <param name="param"></param> |
101 | /// <returns></returns> | 101 | /// <returns></returns> |
102 | public string CapsRequest(string request, string path, string param) | 102 | public string CapsRequest(string request, string path, string param) |
103 | { | 103 | { |
104 | //Console.WriteLine("caps request " + request); | 104 | //Console.WriteLine("caps request " + request); |
105 | string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities()); | 105 | string result = LLSDHelpers.SerialiseLLSDReply(this.GetCapabilities()); |
106 | return result; | 106 | return result; |
107 | } | 107 | } |
108 | 108 | ||
109 | /// <summary> | 109 | /// <summary> |
110 | /// | 110 | /// |
111 | /// </summary> | 111 | /// </summary> |
112 | /// <returns></returns> | 112 | /// <returns></returns> |
113 | protected LLSDCapsDetails GetCapabilities() | 113 | protected LLSDCapsDetails GetCapabilities() |
114 | { | 114 | { |
115 | LLSDCapsDetails caps = new LLSDCapsDetails(); | 115 | LLSDCapsDetails caps = new LLSDCapsDetails(); |
116 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; | 116 | string capsBaseUrl = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + "/CAPS/" + m_capsObjectPath; |
117 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; | 117 | caps.MapLayer = capsBaseUrl + m_mapLayerPath; |
118 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; | 118 | caps.NewFileAgentInventory = capsBaseUrl + m_newInventory; |
119 | //caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; | 119 | //caps.RequestTextureDownload = capsBaseUrl + m_requestTexture; |
120 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; | 120 | caps.UpdateNotecardAgentInventory = capsBaseUrl + m_notecardUpdatePath; |
121 | return caps; | 121 | return caps; |
122 | } | 122 | } |
123 | 123 | ||
124 | /// <summary> | 124 | /// <summary> |
125 | /// | 125 | /// |
126 | /// </summary> | 126 | /// </summary> |
127 | /// <param name="mapReq"></param> | 127 | /// <param name="mapReq"></param> |
128 | /// <returns></returns> | 128 | /// <returns></returns> |
129 | public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq) | 129 | public LLSDMapLayerResponse GetMapLayer(LLSDMapRequest mapReq) |
130 | { | 130 | { |
131 | LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse(); | 131 | LLSDMapLayerResponse mapResponse = new LLSDMapLayerResponse(); |
132 | mapResponse.LayerData.Array.Add(this.GetLLSDMapLayerResponse()); | 132 | mapResponse.LayerData.Array.Add(this.GetLLSDMapLayerResponse()); |
133 | return mapResponse; | 133 | return mapResponse; |
134 | } | 134 | } |
135 | 135 | ||
136 | /// <summary> | 136 | /// <summary> |
137 | /// | 137 | /// |
138 | /// </summary> | 138 | /// </summary> |
139 | /// <returns></returns> | 139 | /// <returns></returns> |
140 | protected LLSDMapLayer GetLLSDMapLayerResponse() | 140 | protected LLSDMapLayer GetLLSDMapLayerResponse() |
141 | { | 141 | { |
142 | LLSDMapLayer mapLayer = new LLSDMapLayer(); | 142 | LLSDMapLayer mapLayer = new LLSDMapLayer(); |
143 | mapLayer.Right = 5000; | 143 | mapLayer.Right = 5000; |
144 | mapLayer.Top = 5000; | 144 | mapLayer.Top = 5000; |
145 | mapLayer.ImageID = new LLUUID("00000000-0000-0000-9999-000000000006"); | 145 | mapLayer.ImageID = new LLUUID("00000000-0000-0000-9999-000000000006"); |
146 | return mapLayer; | 146 | return mapLayer; |
147 | } | 147 | } |
148 | 148 | ||
149 | /// <summary> | 149 | /// <summary> |
150 | /// | 150 | /// |
151 | /// </summary> | 151 | /// </summary> |
152 | /// <param name="request"></param> | 152 | /// <param name="request"></param> |
153 | /// <param name="path"></param> | 153 | /// <param name="path"></param> |
154 | /// <param name="param"></param> | 154 | /// <param name="param"></param> |
155 | /// <returns></returns> | 155 | /// <returns></returns> |
156 | public string RequestTexture(string request, string path, string param) | 156 | public string RequestTexture(string request, string path, string param) |
157 | { | 157 | { |
158 | Console.WriteLine("texture request " + request); | 158 | Console.WriteLine("texture request " + request); |
159 | // Needs implementing (added to remove compiler warning) | 159 | // Needs implementing (added to remove compiler warning) |
160 | return ""; | 160 | return ""; |
161 | } | 161 | } |
162 | 162 | ||
163 | #region EventQueue (Currently not enabled) | 163 | #region EventQueue (Currently not enabled) |
164 | /// <summary> | 164 | /// <summary> |
165 | /// | 165 | /// |
166 | /// </summary> | 166 | /// </summary> |
167 | /// <param name="request"></param> | 167 | /// <param name="request"></param> |
168 | /// <param name="path"></param> | 168 | /// <param name="path"></param> |
169 | /// <param name="param"></param> | 169 | /// <param name="param"></param> |
170 | /// <returns></returns> | 170 | /// <returns></returns> |
171 | public string ProcessEventQueue(string request, string path, string param) | 171 | public string ProcessEventQueue(string request, string path, string param) |
172 | { | 172 | { |
173 | string res = ""; | 173 | string res = ""; |
174 | 174 | ||
175 | if (this.CapsEventQueue.Count > 0) | 175 | if (this.CapsEventQueue.Count > 0) |
176 | { | 176 | { |
177 | lock (this.CapsEventQueue) | 177 | lock (this.CapsEventQueue) |
178 | { | 178 | { |
179 | string item = CapsEventQueue.Dequeue(); | 179 | string item = CapsEventQueue.Dequeue(); |
180 | res = item; | 180 | res = item; |
181 | } | 181 | } |
182 | } | 182 | } |
183 | else | 183 | else |
184 | { | 184 | { |
185 | res = this.CreateEmptyEventResponse(); | 185 | res = this.CreateEmptyEventResponse(); |
186 | } | 186 | } |
187 | return res; | 187 | return res; |
188 | } | 188 | } |
189 | 189 | ||
190 | /// <summary> | 190 | /// <summary> |
191 | /// | 191 | /// |
192 | /// </summary> | 192 | /// </summary> |
193 | /// <param name="caps"></param> | 193 | /// <param name="caps"></param> |
194 | /// <param name="ipAddressPort"></param> | 194 | /// <param name="ipAddressPort"></param> |
195 | /// <returns></returns> | 195 | /// <returns></returns> |
196 | public string CreateEstablishAgentComms(string caps, string ipAddressPort) | 196 | public string CreateEstablishAgentComms(string caps, string ipAddressPort) |
197 | { | 197 | { |
198 | LLSDCapEvent eventItem = new LLSDCapEvent(); | 198 | LLSDCapEvent eventItem = new LLSDCapEvent(); |
199 | eventItem.id = eventQueueCount; | 199 | eventItem.id = eventQueueCount; |
200 | //should be creating a EstablishAgentComms item, but there isn't a class for it yet | 200 | //should be creating a EstablishAgentComms item, but there isn't a class for it yet |
201 | eventItem.events.Array.Add(new LLSDEmpty()); | 201 | eventItem.events.Array.Add(new LLSDEmpty()); |
202 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); | 202 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); |
203 | eventQueueCount++; | 203 | eventQueueCount++; |
204 | 204 | ||
205 | this.CapsEventQueue.Enqueue(res); | 205 | this.CapsEventQueue.Enqueue(res); |
206 | return res; | 206 | return res; |
207 | } | 207 | } |
208 | 208 | ||
209 | /// <summary> | 209 | /// <summary> |
210 | /// | 210 | /// |
211 | /// </summary> | 211 | /// </summary> |
212 | /// <returns></returns> | 212 | /// <returns></returns> |
213 | public string CreateEmptyEventResponse() | 213 | public string CreateEmptyEventResponse() |
214 | { | 214 | { |
215 | LLSDCapEvent eventItem = new LLSDCapEvent(); | 215 | LLSDCapEvent eventItem = new LLSDCapEvent(); |
216 | eventItem.id = eventQueueCount; | 216 | eventItem.id = eventQueueCount; |
217 | eventItem.events.Array.Add(new LLSDEmpty()); | 217 | eventItem.events.Array.Add(new LLSDEmpty()); |
218 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); | 218 | string res = LLSDHelpers.SerialiseLLSDReply(eventItem); |
219 | eventQueueCount++; | 219 | eventQueueCount++; |
220 | return res; | 220 | return res; |
221 | } | 221 | } |
222 | #endregion | 222 | #endregion |
223 | 223 | ||
224 | /// <summary> | 224 | /// <summary> |
225 | /// | 225 | /// |
226 | /// </summary> | 226 | /// </summary> |
227 | /// <param name="request"></param> | 227 | /// <param name="request"></param> |
228 | /// <param name="path"></param> | 228 | /// <param name="path"></param> |
229 | /// <param name="param"></param> | 229 | /// <param name="param"></param> |
230 | /// <returns></returns> | 230 | /// <returns></returns> |
231 | public string NoteCardAgentInventory(string request, string path, string param) | 231 | public string NoteCardAgentInventory(string request, string path, string param) |
232 | { | 232 | { |
233 | Console.WriteLine("notecard update request " + request); | 233 | Console.WriteLine("notecard update request " + request); |
234 | string assetName = "notecardupdate"; | 234 | string assetName = "notecardupdate"; |
235 | string capsBase = "/CAPS/" + m_capsObjectPath; | 235 | string capsBase = "/CAPS/" + m_capsObjectPath; |
236 | LLUUID newAsset = LLUUID.Random(); | 236 | LLUUID newAsset = LLUUID.Random(); |
237 | LLUUID newInvItem = LLUUID.Random(); | 237 | LLUUID newInvItem = LLUUID.Random(); |
238 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 238 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
239 | 239 | ||
240 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); | 240 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); |
241 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 241 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
242 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 242 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; |
243 | 243 | ||
244 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); | 244 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); |
245 | uploadResponse.uploader = uploaderURL; | 245 | uploadResponse.uploader = uploaderURL; |
246 | uploadResponse.state = "upload"; | 246 | uploadResponse.state = "upload"; |
247 | // uploader.OnUpLoad += this.UploadCompleteHandler; | 247 | // uploader.OnUpLoad += this.UploadCompleteHandler; |
248 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); | 248 | return LLSDHelpers.SerialiseLLSDReply(uploadResponse); |
249 | } | 249 | } |
250 | 250 | ||
251 | /// <summary> | 251 | /// <summary> |
252 | /// | 252 | /// |
253 | /// </summary> | 253 | /// </summary> |
254 | /// <param name="llsdRequest"></param> | 254 | /// <param name="llsdRequest"></param> |
255 | /// <returns></returns> | 255 | /// <returns></returns> |
256 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) | 256 | public LLSDAssetUploadResponse NewAgentInventoryRequest(LLSDAssetUploadRequest llsdRequest) |
257 | { | 257 | { |
258 | // Console.WriteLine("asset upload request via CAPS"); | 258 | // Console.WriteLine("asset upload request via CAPS"); |
259 | string assetName = llsdRequest.name; | 259 | string assetName = llsdRequest.name; |
260 | string capsBase = "/CAPS/" + m_capsObjectPath; | 260 | string capsBase = "/CAPS/" + m_capsObjectPath; |
261 | LLUUID newAsset = LLUUID.Random(); | 261 | LLUUID newAsset = LLUUID.Random(); |
262 | LLUUID newInvItem = LLUUID.Random(); | 262 | LLUUID newInvItem = LLUUID.Random(); |
263 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); | 263 | string uploaderPath = Util.RandomClass.Next(5000, 8000).ToString("0000"); |
264 | 264 | ||
265 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); | 265 | AssetUploader uploader = new AssetUploader(assetName, newAsset, newInvItem, capsBase + uploaderPath, this.httpListener); |
266 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); | 266 | httpListener.AddStreamHandler(new BinaryStreamHandler("POST", capsBase + uploaderPath, uploader.uploaderCaps)); |
267 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; | 267 | string uploaderURL = "http://" + m_httpListenerHostName + ":" + m_httpListenPort.ToString() + capsBase + uploaderPath; |
268 | 268 | ||
269 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); | 269 | LLSDAssetUploadResponse uploadResponse = new LLSDAssetUploadResponse(); |
270 | uploadResponse.uploader = uploaderURL; | 270 | uploadResponse.uploader = uploaderURL; |
271 | uploadResponse.state = "upload"; | 271 | uploadResponse.state = "upload"; |
272 | uploader.OnUpLoad += this.UploadCompleteHandler; | 272 | uploader.OnUpLoad += this.UploadCompleteHandler; |
273 | return uploadResponse; | 273 | return uploadResponse; |
274 | } | 274 | } |
275 | 275 | ||
276 | /// <summary> | 276 | /// <summary> |
277 | /// | 277 | /// |
278 | /// </summary> | 278 | /// </summary> |
279 | /// <param name="assetID"></param> | 279 | /// <param name="assetID"></param> |
280 | /// <param name="inventoryItem"></param> | 280 | /// <param name="inventoryItem"></param> |
281 | /// <param name="data"></param> | 281 | /// <param name="data"></param> |
282 | public void UploadCompleteHandler(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data) | 282 | public void UploadCompleteHandler(string assetName, LLUUID assetID, LLUUID inventoryItem, byte[] data) |
283 | { | 283 | { |
284 | AssetBase asset; | 284 | AssetBase asset; |
285 | asset = new AssetBase(); | 285 | asset = new AssetBase(); |
286 | asset.FullID = assetID; | 286 | asset.FullID = assetID; |
287 | asset.Type = 0; | 287 | asset.Type = 0; |
288 | asset.InvType = 0; | 288 | asset.InvType = 0; |
289 | asset.Name = assetName; | 289 | asset.Name = assetName; |
290 | asset.Data = data; | 290 | asset.Data = data; |
291 | this.assetCache.AddAsset(asset); | 291 | this.assetCache.AddAsset(asset); |
292 | } | 292 | } |
293 | 293 | ||
294 | public class AssetUploader | 294 | public class AssetUploader |
295 | { | 295 | { |
296 | public event UpLoadedTexture OnUpLoad; | 296 | public event UpLoadedTexture OnUpLoad; |
297 | 297 | ||
298 | private string uploaderPath = ""; | 298 | private string uploaderPath = ""; |
299 | private LLUUID newAssetID; | 299 | private LLUUID newAssetID; |
300 | private LLUUID inventoryItemID; | 300 | private LLUUID inventoryItemID; |
301 | private BaseHttpServer httpListener; | 301 | private BaseHttpServer httpListener; |
302 | private bool SaveImages = false; | 302 | private bool SaveImages = false; |
303 | private string m_assetName = ""; | 303 | private string m_assetName = ""; |
304 | 304 | ||
305 | /// <summary> | 305 | /// <summary> |
306 | /// | 306 | /// |
307 | /// </summary> | 307 | /// </summary> |
308 | /// <param name="assetID"></param> | 308 | /// <param name="assetID"></param> |
309 | /// <param name="inventoryItem"></param> | 309 | /// <param name="inventoryItem"></param> |
310 | /// <param name="path"></param> | 310 | /// <param name="path"></param> |
311 | /// <param name="httpServer"></param> | 311 | /// <param name="httpServer"></param> |
312 | public AssetUploader(string assetName, LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer) | 312 | public AssetUploader(string assetName, LLUUID assetID, LLUUID inventoryItem, string path, BaseHttpServer httpServer) |
313 | { | 313 | { |
314 | m_assetName = assetName; | 314 | m_assetName = assetName; |
315 | newAssetID = assetID; | 315 | newAssetID = assetID; |
316 | inventoryItemID = inventoryItem; | 316 | inventoryItemID = inventoryItem; |
317 | uploaderPath = path; | 317 | uploaderPath = path; |
318 | httpListener = httpServer; | 318 | httpListener = httpServer; |
319 | } | 319 | } |
320 | 320 | ||
321 | /// <summary> | 321 | /// <summary> |
322 | /// | 322 | /// |
323 | /// </summary> | 323 | /// </summary> |
324 | /// <param name="data"></param> | 324 | /// <param name="data"></param> |
325 | /// <param name="path"></param> | 325 | /// <param name="path"></param> |
326 | /// <param name="param"></param> | 326 | /// <param name="param"></param> |
327 | /// <returns></returns> | 327 | /// <returns></returns> |
328 | public string uploaderCaps(byte[] data, string path, string param) | 328 | public string uploaderCaps(byte[] data, string path, string param) |
329 | { | 329 | { |
330 | LLUUID inv = this.inventoryItemID; | 330 | LLUUID inv = this.inventoryItemID; |
331 | string res = ""; | 331 | string res = ""; |
332 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); | 332 | LLSDAssetUploadComplete uploadComplete = new LLSDAssetUploadComplete(); |
333 | uploadComplete.new_asset = newAssetID.ToStringHyphenated(); | 333 | uploadComplete.new_asset = newAssetID.ToStringHyphenated(); |
334 | uploadComplete.new_inventory_item = inv; | 334 | uploadComplete.new_inventory_item = inv; |
335 | uploadComplete.state = "complete"; | 335 | uploadComplete.state = "complete"; |
336 | 336 | ||
337 | res = LLSDHelpers.SerialiseLLSDReply(uploadComplete); | 337 | res = LLSDHelpers.SerialiseLLSDReply(uploadComplete); |
338 | 338 | ||
339 | httpListener.RemoveStreamHandler("POST", uploaderPath); | 339 | httpListener.RemoveStreamHandler("POST", uploaderPath); |
340 | 340 | ||
341 | if(this.SaveImages) | 341 | if(this.SaveImages) |
342 | this.SaveImageToFile(m_assetName + ".jp2", data); | 342 | this.SaveImageToFile(m_assetName + ".jp2", data); |
343 | 343 | ||
344 | if (OnUpLoad != null) | 344 | if (OnUpLoad != null) |
345 | { | 345 | { |
346 | OnUpLoad(m_assetName, newAssetID, inv, data); | 346 | OnUpLoad(m_assetName, newAssetID, inv, data); |
347 | } | 347 | } |
348 | 348 | ||
349 | return res; | 349 | return res; |
350 | } | 350 | } |
351 | 351 | ||
352 | private void SaveImageToFile(string filename, byte[] data) | 352 | private void SaveImageToFile(string filename, byte[] data) |
353 | { | 353 | { |
354 | FileStream fs = File.Create(filename); | 354 | FileStream fs = File.Create(filename); |
355 | BinaryWriter bw = new BinaryWriter(fs); | 355 | BinaryWriter bw = new BinaryWriter(fs); |
356 | bw.Write(data); | 356 | bw.Write(data); |
357 | bw.Close(); | 357 | bw.Close(); |
358 | fs.Close(); | 358 | fs.Close(); |
359 | } | 359 | } |
360 | } | 360 | } |
361 | } | 361 | } |
362 | } | 362 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs index e04849f..d3e1979 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDArray.cs | |||
@@ -1,42 +1,42 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; | 28 | using System.Collections; |
29 | 29 | ||
30 | namespace OpenSim.Region.Capabilities | 30 | namespace OpenSim.Region.Capabilities |
31 | { | 31 | { |
32 | [LLSDType("ARRAY")] | 32 | [LLSDType("ARRAY")] |
33 | public class LLSDArray | 33 | public class LLSDArray |
34 | { | 34 | { |
35 | public ArrayList Array = new ArrayList(); | 35 | public ArrayList Array = new ArrayList(); |
36 | 36 | ||
37 | public LLSDArray() | 37 | public LLSDArray() |
38 | { | 38 | { |
39 | 39 | ||
40 | } | 40 | } |
41 | } | 41 | } |
42 | } | 42 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs index ce373c0..db9836c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadComplete.cs | |||
@@ -1,45 +1,45 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | [LLSDType("MAP")] | 32 | [LLSDType("MAP")] |
33 | public class LLSDAssetUploadComplete | 33 | public class LLSDAssetUploadComplete |
34 | { | 34 | { |
35 | public string new_asset = ""; | 35 | public string new_asset = ""; |
36 | public LLUUID new_inventory_item = LLUUID.Zero; | 36 | public LLUUID new_inventory_item = LLUUID.Zero; |
37 | public string state = ""; | 37 | public string state = ""; |
38 | //public bool success = false; | 38 | //public bool success = false; |
39 | 39 | ||
40 | public LLSDAssetUploadComplete() | 40 | public LLSDAssetUploadComplete() |
41 | { | 41 | { |
42 | 42 | ||
43 | } | 43 | } |
44 | } | 44 | } |
45 | } | 45 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs index 7ef77cb..0096fb1 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadRequest.cs | |||
@@ -1,21 +1,21 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | using libsecondlife; | 4 | using libsecondlife; |
5 | 5 | ||
6 | namespace OpenSim.Region.Capabilities | 6 | namespace OpenSim.Region.Capabilities |
7 | { | 7 | { |
8 | [LLSDMap] | 8 | [LLSDMap] |
9 | public class LLSDAssetUploadRequest | 9 | public class LLSDAssetUploadRequest |
10 | { | 10 | { |
11 | public string asset_type = ""; | 11 | public string asset_type = ""; |
12 | public string description = ""; | 12 | public string description = ""; |
13 | public LLUUID folder_id = LLUUID.Zero; | 13 | public LLUUID folder_id = LLUUID.Zero; |
14 | public string inventory_type = ""; | 14 | public string inventory_type = ""; |
15 | public string name = ""; | 15 | public string name = ""; |
16 | 16 | ||
17 | public LLSDAssetUploadRequest() | 17 | public LLSDAssetUploadRequest() |
18 | { | 18 | { |
19 | } | 19 | } |
20 | } | 20 | } |
21 | } | 21 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs index 1a620ae..2a2a5d1 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDAssetUploadResponse.cs | |||
@@ -1,18 +1,18 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | namespace OpenSim.Region.Capabilities | 5 | namespace OpenSim.Region.Capabilities |
6 | { | 6 | { |
7 | [LLSDMap] | 7 | [LLSDMap] |
8 | public class LLSDAssetUploadResponse | 8 | public class LLSDAssetUploadResponse |
9 | { | 9 | { |
10 | public string uploader = ""; | 10 | public string uploader = ""; |
11 | public string state = ""; | 11 | public string state = ""; |
12 | 12 | ||
13 | public LLSDAssetUploadResponse() | 13 | public LLSDAssetUploadResponse() |
14 | { | 14 | { |
15 | 15 | ||
16 | } | 16 | } |
17 | } | 17 | } |
18 | } | 18 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs index 51b4fe0..2c2689b 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapEvent.cs | |||
@@ -1,41 +1,41 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | namespace OpenSim.Region.Capabilities | 28 | namespace OpenSim.Region.Capabilities |
29 | { | 29 | { |
30 | [LLSDType("MAP")] | 30 | [LLSDType("MAP")] |
31 | public class LLSDCapEvent | 31 | public class LLSDCapEvent |
32 | { | 32 | { |
33 | public int id = 0; | 33 | public int id = 0; |
34 | public LLSDArray events = new LLSDArray(); | 34 | public LLSDArray events = new LLSDArray(); |
35 | 35 | ||
36 | public LLSDCapEvent() | 36 | public LLSDCapEvent() |
37 | { | 37 | { |
38 | 38 | ||
39 | } | 39 | } |
40 | } | 40 | } |
41 | } | 41 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs index 3b6a629..cae7e97 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDCapsDetails.cs | |||
@@ -1,18 +1,18 @@ | |||
1 | namespace OpenSim.Region.Capabilities | 1 | namespace OpenSim.Region.Capabilities |
2 | { | 2 | { |
3 | [LLSDType("MAP")] | 3 | [LLSDType("MAP")] |
4 | public class LLSDCapsDetails | 4 | public class LLSDCapsDetails |
5 | { | 5 | { |
6 | public string MapLayer = ""; | 6 | public string MapLayer = ""; |
7 | public string NewFileAgentInventory = ""; | 7 | public string NewFileAgentInventory = ""; |
8 | //public string EventQueueGet = ""; | 8 | //public string EventQueueGet = ""; |
9 | //public string RequestTextureDownload = ""; | 9 | //public string RequestTextureDownload = ""; |
10 | //public string ChatSessionRequest = ""; | 10 | //public string ChatSessionRequest = ""; |
11 | public string UpdateNotecardAgentInventory = ""; | 11 | public string UpdateNotecardAgentInventory = ""; |
12 | 12 | ||
13 | public LLSDCapsDetails() | 13 | public LLSDCapsDetails() |
14 | { | 14 | { |
15 | 15 | ||
16 | } | 16 | } |
17 | } | 17 | } |
18 | } | 18 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs index d79c09e..ca27c9d 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDEmpty.cs | |||
@@ -1,38 +1,38 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | namespace OpenSim.Region.Capabilities | 28 | namespace OpenSim.Region.Capabilities |
29 | { | 29 | { |
30 | [LLSDType("MAP")] | 30 | [LLSDType("MAP")] |
31 | public class LLSDEmpty | 31 | public class LLSDEmpty |
32 | { | 32 | { |
33 | public LLSDEmpty() | 33 | public LLSDEmpty() |
34 | { | 34 | { |
35 | 35 | ||
36 | } | 36 | } |
37 | } | 37 | } |
38 | } | 38 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs index 19ef0c9..efeb9b1 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDHelpers.cs | |||
@@ -1,164 +1,164 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.Collections; | 29 | 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; | 33 | using libsecondlife; |
34 | 34 | ||
35 | namespace OpenSim.Region.Capabilities | 35 | namespace OpenSim.Region.Capabilities |
36 | { | 36 | { |
37 | public class LLSDHelpers | 37 | public class LLSDHelpers |
38 | { | 38 | { |
39 | public static string SerialiseLLSDReply(object obj) | 39 | public static string SerialiseLLSDReply(object obj) |
40 | { | 40 | { |
41 | StringWriter sw = new StringWriter(); | 41 | StringWriter sw = new StringWriter(); |
42 | XmlTextWriter writer = new XmlTextWriter(sw); | 42 | XmlTextWriter writer = new XmlTextWriter(sw); |
43 | writer.Formatting = Formatting.None; | 43 | writer.Formatting = Formatting.None; |
44 | writer.WriteStartElement(String.Empty, "llsd", String.Empty); | 44 | writer.WriteStartElement(String.Empty, "llsd", String.Empty); |
45 | SerializeLLSDType(writer, obj); | 45 | SerializeLLSDType(writer, obj); |
46 | writer.WriteEndElement(); | 46 | writer.WriteEndElement(); |
47 | writer.Close(); | 47 | writer.Close(); |
48 | return sw.ToString(); | 48 | return sw.ToString(); |
49 | } | 49 | } |
50 | 50 | ||
51 | public static void SerializeLLSDType(XmlTextWriter writer, object obj) | 51 | public static void SerializeLLSDType(XmlTextWriter writer, object obj) |
52 | { | 52 | { |
53 | Type myType = obj.GetType(); | 53 | Type myType = obj.GetType(); |
54 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); | 54 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); |
55 | if (llsdattributes.Length > 0) | 55 | if (llsdattributes.Length > 0) |
56 | { | 56 | { |
57 | switch (llsdattributes[0].ObjectType) | 57 | switch (llsdattributes[0].ObjectType) |
58 | { | 58 | { |
59 | case "MAP": | 59 | case "MAP": |
60 | writer.WriteStartElement(String.Empty, "map", String.Empty); | 60 | writer.WriteStartElement(String.Empty, "map", String.Empty); |
61 | FieldInfo[] fields = myType.GetFields(); | 61 | FieldInfo[] fields = myType.GetFields(); |
62 | for (int i = 0; i < fields.Length; i++) | 62 | for (int i = 0; i < fields.Length; i++) |
63 | { | 63 | { |
64 | object fieldValue = fields[i].GetValue(obj); | 64 | object fieldValue = fields[i].GetValue(obj); |
65 | LLSDType[] fieldAttributes = (LLSDType[])fieldValue.GetType().GetCustomAttributes(typeof(LLSDType), false); | 65 | LLSDType[] fieldAttributes = (LLSDType[])fieldValue.GetType().GetCustomAttributes(typeof(LLSDType), false); |
66 | if (fieldAttributes.Length > 0) | 66 | if (fieldAttributes.Length > 0) |
67 | { | 67 | { |
68 | writer.WriteStartElement(String.Empty, "key", String.Empty); | 68 | writer.WriteStartElement(String.Empty, "key", String.Empty); |
69 | writer.WriteString(fields[i].Name); | 69 | writer.WriteString(fields[i].Name); |
70 | writer.WriteEndElement(); | 70 | writer.WriteEndElement(); |
71 | SerializeLLSDType(writer, fieldValue); | 71 | SerializeLLSDType(writer, fieldValue); |
72 | } | 72 | } |
73 | else | 73 | else |
74 | { | 74 | { |
75 | writer.WriteStartElement(String.Empty, "key", String.Empty); | 75 | writer.WriteStartElement(String.Empty, "key", String.Empty); |
76 | writer.WriteString(fields[i].Name); | 76 | writer.WriteString(fields[i].Name); |
77 | writer.WriteEndElement(); | 77 | writer.WriteEndElement(); |
78 | LLSD.LLSDWriteOne(writer, fieldValue); | 78 | LLSD.LLSDWriteOne(writer, fieldValue); |
79 | } | 79 | } |
80 | } | 80 | } |
81 | writer.WriteEndElement(); | 81 | writer.WriteEndElement(); |
82 | break; | 82 | break; |
83 | case "ARRAY": | 83 | case "ARRAY": |
84 | // LLSDArray arrayObject = obj as LLSDArray; | 84 | // LLSDArray arrayObject = obj as LLSDArray; |
85 | // ArrayList a = arrayObject.Array; | 85 | // ArrayList a = arrayObject.Array; |
86 | ArrayList a = (ArrayList)obj.GetType().GetField("Array").GetValue(obj); | 86 | ArrayList a = (ArrayList)obj.GetType().GetField("Array").GetValue(obj); |
87 | if (a != null) | 87 | if (a != null) |
88 | { | 88 | { |
89 | writer.WriteStartElement(String.Empty, "array", String.Empty); | 89 | writer.WriteStartElement(String.Empty, "array", String.Empty); |
90 | foreach (object item in a) | 90 | foreach (object item in a) |
91 | { | 91 | { |
92 | SerializeLLSDType(writer, item); | 92 | SerializeLLSDType(writer, item); |
93 | } | 93 | } |
94 | writer.WriteEndElement(); | 94 | writer.WriteEndElement(); |
95 | } | 95 | } |
96 | break; | 96 | break; |
97 | } | 97 | } |
98 | } | 98 | } |
99 | else | 99 | else |
100 | { | 100 | { |
101 | LLSD.LLSDWriteOne(writer, obj); | 101 | LLSD.LLSDWriteOne(writer, obj); |
102 | } | 102 | } |
103 | } | 103 | } |
104 | 104 | ||
105 | public static object DeserialiseLLSDMap(Hashtable llsd, object obj) | 105 | public static object DeserialiseLLSDMap(Hashtable llsd, object obj) |
106 | { | 106 | { |
107 | Type myType = obj.GetType(); | 107 | Type myType = obj.GetType(); |
108 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); | 108 | LLSDType[] llsdattributes = (LLSDType[])myType.GetCustomAttributes(typeof(LLSDType), false); |
109 | if (llsdattributes.Length > 0) | 109 | if (llsdattributes.Length > 0) |
110 | { | 110 | { |
111 | switch (llsdattributes[0].ObjectType) | 111 | switch (llsdattributes[0].ObjectType) |
112 | { | 112 | { |
113 | case "MAP": | 113 | case "MAP": |
114 | IDictionaryEnumerator enumerator = llsd.GetEnumerator(); | 114 | IDictionaryEnumerator enumerator = llsd.GetEnumerator(); |
115 | while (enumerator.MoveNext()) | 115 | while (enumerator.MoveNext()) |
116 | { | 116 | { |
117 | FieldInfo field = myType.GetField((string)enumerator.Key); | 117 | FieldInfo field = myType.GetField((string)enumerator.Key); |
118 | if (field != null) | 118 | if (field != null) |
119 | { | 119 | { |
120 | if (enumerator.Value is Hashtable) | 120 | if (enumerator.Value is Hashtable) |
121 | { | 121 | { |
122 | object fieldValue = field.GetValue(obj); | 122 | object fieldValue = field.GetValue(obj); |
123 | DeserialiseLLSDMap((Hashtable) enumerator.Value, fieldValue); | 123 | DeserialiseLLSDMap((Hashtable) enumerator.Value, fieldValue); |
124 | } | 124 | } |
125 | else if (enumerator.Value is ArrayList) | 125 | else if (enumerator.Value is ArrayList) |
126 | { | 126 | { |
127 | object fieldValue = field.GetValue(obj); | 127 | object fieldValue = field.GetValue(obj); |
128 | fieldValue.GetType().GetField("Array").SetValue(fieldValue, enumerator.Value); | 128 | fieldValue.GetType().GetField("Array").SetValue(fieldValue, enumerator.Value); |
129 | //TODO | 129 | //TODO |
130 | // the LLSD map/array types in the array need to be deserialised | 130 | // the LLSD map/array types in the array need to be deserialised |
131 | // but first we need to know the right class to deserialise them into. | 131 | // but first we need to know the right class to deserialise them into. |
132 | } | 132 | } |
133 | else | 133 | else |
134 | { | 134 | { |
135 | field.SetValue(obj, enumerator.Value); | 135 | field.SetValue(obj, enumerator.Value); |
136 | } | 136 | } |
137 | } | 137 | } |
138 | } | 138 | } |
139 | break; | 139 | break; |
140 | } | 140 | } |
141 | } | 141 | } |
142 | return obj; | 142 | return obj; |
143 | } | 143 | } |
144 | } | 144 | } |
145 | 145 | ||
146 | 146 | ||
147 | 147 | ||
148 | 148 | ||
149 | 149 | ||
150 | 150 | ||
151 | 151 | ||
152 | 152 | ||
153 | 153 | ||
154 | 154 | ||
155 | 155 | ||
156 | 156 | ||
157 | 157 | ||
158 | 158 | ||
159 | 159 | ||
160 | 160 | ||
161 | 161 | ||
162 | 162 | ||
163 | 163 | ||
164 | } | 164 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs index 566d0e9..e0c006c 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayer.cs | |||
@@ -1,46 +1,46 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | [LLSDType("MAP")] | 32 | [LLSDType("MAP")] |
33 | public class LLSDMapLayer | 33 | public class LLSDMapLayer |
34 | { | 34 | { |
35 | public int Left = 0; | 35 | public int Left = 0; |
36 | public int Right = 0; | 36 | public int Right = 0; |
37 | public int Top = 0; | 37 | public int Top = 0; |
38 | public int Bottom = 0; | 38 | public int Bottom = 0; |
39 | public LLUUID ImageID = LLUUID.Zero; | 39 | public LLUUID ImageID = LLUUID.Zero; |
40 | 40 | ||
41 | public LLSDMapLayer() | 41 | public LLSDMapLayer() |
42 | { | 42 | { |
43 | 43 | ||
44 | } | 44 | } |
45 | } | 45 | } |
46 | } | 46 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs index ce746ae..8b9837b 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapLayerResponse.cs | |||
@@ -1,41 +1,41 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | namespace OpenSim.Region.Capabilities | 28 | namespace OpenSim.Region.Capabilities |
29 | { | 29 | { |
30 | [LLSDType("MAP")] | 30 | [LLSDType("MAP")] |
31 | public class LLSDMapLayerResponse | 31 | public class LLSDMapLayerResponse |
32 | { | 32 | { |
33 | public LLSDMapRequest AgentData = new LLSDMapRequest(); | 33 | public LLSDMapRequest AgentData = new LLSDMapRequest(); |
34 | public LLSDArray LayerData = new LLSDArray(); | 34 | public LLSDArray LayerData = new LLSDArray(); |
35 | 35 | ||
36 | public LLSDMapLayerResponse() | 36 | public LLSDMapLayerResponse() |
37 | { | 37 | { |
38 | 38 | ||
39 | } | 39 | } |
40 | } | 40 | } |
41 | } | 41 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs index fb739cd..8ac7943 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMapRequest.cs | |||
@@ -1,13 +1,13 @@ | |||
1 | namespace OpenSim.Region.Capabilities | 1 | namespace OpenSim.Region.Capabilities |
2 | { | 2 | { |
3 | [LLSDType("MAP")] | 3 | [LLSDType("MAP")] |
4 | public class LLSDMapRequest | 4 | public class LLSDMapRequest |
5 | { | 5 | { |
6 | public int Flags = 0; | 6 | public int Flags = 0; |
7 | 7 | ||
8 | public LLSDMapRequest() | 8 | public LLSDMapRequest() |
9 | { | 9 | { |
10 | 10 | ||
11 | } | 11 | } |
12 | } | 12 | } |
13 | } | 13 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs b/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs index 5f42f44..068d539 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDMethod.cs | |||
@@ -1,8 +1,8 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | namespace OpenSim.Region.Capabilities | 5 | namespace OpenSim.Region.Capabilities |
6 | { | 6 | { |
7 | public delegate TResponse LLSDMethod<TRequest, TResponse>(TRequest request); | 7 | public delegate TResponse LLSDMethod<TRequest, TResponse>(TRequest request); |
8 | } | 8 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs index 7d99b6e..d98e23f 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDStreamHandler.cs | |||
@@ -1,42 +1,42 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | using OpenSim.Framework.Servers; | 4 | using OpenSim.Framework.Servers; |
5 | using System.IO; | 5 | using System.IO; |
6 | using System.Collections; | 6 | using System.Collections; |
7 | using libsecondlife; | 7 | using libsecondlife; |
8 | 8 | ||
9 | namespace OpenSim.Region.Capabilities | 9 | namespace OpenSim.Region.Capabilities |
10 | { | 10 | { |
11 | public class LLSDStreamhandler<TRequest, TResponse> : BaseStreamHandler | 11 | public class LLSDStreamhandler<TRequest, TResponse> : BaseStreamHandler |
12 | where TRequest : new() | 12 | where TRequest : new() |
13 | { | 13 | { |
14 | private LLSDMethod<TRequest, TResponse> m_method; | 14 | private LLSDMethod<TRequest, TResponse> m_method; |
15 | 15 | ||
16 | public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method) | 16 | public LLSDStreamhandler(string httpMethod, string path, LLSDMethod<TRequest, TResponse> method) |
17 | : base(httpMethod, path ) | 17 | : base(httpMethod, path ) |
18 | { | 18 | { |
19 | m_method = method; | 19 | m_method = method; |
20 | } | 20 | } |
21 | 21 | ||
22 | public override byte[] Handle(string path, Stream request) | 22 | public override byte[] Handle(string path, Stream request) |
23 | { | 23 | { |
24 | //Encoding encoding = Encoding.UTF8; | 24 | //Encoding encoding = Encoding.UTF8; |
25 | //StreamReader streamReader = new StreamReader(request, false); | 25 | //StreamReader streamReader = new StreamReader(request, false); |
26 | 26 | ||
27 | //string requestBody = streamReader.ReadToEnd(); | 27 | //string requestBody = streamReader.ReadToEnd(); |
28 | //streamReader.Close(); | 28 | //streamReader.Close(); |
29 | 29 | ||
30 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize( request ); | 30 | Hashtable hash = (Hashtable)LLSD.LLSDDeserialize( request ); |
31 | TRequest llsdRequest = new TRequest(); | 31 | TRequest llsdRequest = new TRequest(); |
32 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); | 32 | LLSDHelpers.DeserialiseLLSDMap(hash, llsdRequest); |
33 | 33 | ||
34 | TResponse response = m_method(llsdRequest); | 34 | TResponse response = m_method(llsdRequest); |
35 | 35 | ||
36 | Encoding encoding = new UTF8Encoding(false); | 36 | Encoding encoding = new UTF8Encoding(false); |
37 | 37 | ||
38 | return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) ); | 38 | return encoding.GetBytes( LLSDHelpers.SerialiseLLSDReply(response) ); |
39 | 39 | ||
40 | } | 40 | } |
41 | } | 41 | } |
42 | } | 42 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs index f23e327..78ccf67 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDTest.cs | |||
@@ -1,41 +1,41 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | namespace OpenSim.Region.Capabilities | 28 | namespace OpenSim.Region.Capabilities |
29 | { | 29 | { |
30 | [LLSDType("MAP")] | 30 | [LLSDType("MAP")] |
31 | public class LLSDTest | 31 | public class LLSDTest |
32 | { | 32 | { |
33 | public int Test1 = 20; | 33 | public int Test1 = 20; |
34 | public int Test2 = 10; | 34 | public int Test2 = 10; |
35 | 35 | ||
36 | public LLSDTest() | 36 | public LLSDTest() |
37 | { | 37 | { |
38 | 38 | ||
39 | } | 39 | } |
40 | } | 40 | } |
41 | } | 41 | } |
diff --git a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs index c58a937..04f4d9a 100644 --- a/OpenSim/Framework/Communications/Capabilities/LLSDType.cs +++ b/OpenSim/Framework/Communications/Capabilities/LLSDType.cs | |||
@@ -1,59 +1,59 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | 29 | ||
30 | namespace OpenSim.Region.Capabilities | 30 | namespace OpenSim.Region.Capabilities |
31 | { | 31 | { |
32 | [AttributeUsage(AttributeTargets.Class)] | 32 | [AttributeUsage(AttributeTargets.Class)] |
33 | public class LLSDType : Attribute | 33 | public class LLSDType : Attribute |
34 | { | 34 | { |
35 | protected string myType; | 35 | protected string myType; |
36 | 36 | ||
37 | public LLSDType(string type) | 37 | public LLSDType(string type) |
38 | { | 38 | { |
39 | myType = type; | 39 | myType = type; |
40 | 40 | ||
41 | } | 41 | } |
42 | 42 | ||
43 | public string ObjectType | 43 | public string ObjectType |
44 | { | 44 | { |
45 | get | 45 | get |
46 | { | 46 | { |
47 | return myType; | 47 | return myType; |
48 | } | 48 | } |
49 | } | 49 | } |
50 | } | 50 | } |
51 | 51 | ||
52 | [AttributeUsage(AttributeTargets.Class)] | 52 | [AttributeUsage(AttributeTargets.Class)] |
53 | public class LLSDMap : LLSDType | 53 | public class LLSDMap : LLSDType |
54 | { | 54 | { |
55 | public LLSDMap() : base( "MAP" ) | 55 | public LLSDMap() : base( "MAP" ) |
56 | { | 56 | { |
57 | } | 57 | } |
58 | } | 58 | } |
59 | } | 59 | } |
diff --git a/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs b/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs index d72c40f..8b74195 100644 --- a/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs +++ b/OpenSim/Framework/Configuration/HTTP/HTTPConfiguration.cs | |||
@@ -1,89 +1,89 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Net; | 3 | using System.Net; |
4 | using System.IO; | 4 | using System.IO; |
5 | using System.Text; | 5 | using System.Text; |
6 | 6 | ||
7 | using OpenSim.Framework.Configuration.Interfaces; | 7 | using OpenSim.Framework.Configuration.Interfaces; |
8 | 8 | ||
9 | namespace OpenSim.Framework.Configuration.HTTP | 9 | namespace OpenSim.Framework.Configuration.HTTP |
10 | { | 10 | { |
11 | public class HTTPConfiguration : IGenericConfig | 11 | public class HTTPConfiguration : IGenericConfig |
12 | { | 12 | { |
13 | RemoteConfigSettings remoteConfigSettings; | 13 | RemoteConfigSettings remoteConfigSettings; |
14 | 14 | ||
15 | XmlConfiguration xmlConfig; | 15 | XmlConfiguration xmlConfig; |
16 | 16 | ||
17 | private string configFileName = ""; | 17 | private string configFileName = ""; |
18 | 18 | ||
19 | public HTTPConfiguration() | 19 | public HTTPConfiguration() |
20 | { | 20 | { |
21 | remoteConfigSettings = new RemoteConfigSettings("remoteconfig.xml"); | 21 | remoteConfigSettings = new RemoteConfigSettings("remoteconfig.xml"); |
22 | xmlConfig = new XmlConfiguration(); | 22 | xmlConfig = new XmlConfiguration(); |
23 | } | 23 | } |
24 | 24 | ||
25 | public void SetFileName(string fileName) | 25 | public void SetFileName(string fileName) |
26 | { | 26 | { |
27 | configFileName = fileName; | 27 | configFileName = fileName; |
28 | } | 28 | } |
29 | 29 | ||
30 | public void LoadData() | 30 | public void LoadData() |
31 | { | 31 | { |
32 | try | 32 | try |
33 | { | 33 | { |
34 | StringBuilder sb = new StringBuilder(); | 34 | StringBuilder sb = new StringBuilder(); |
35 | 35 | ||
36 | byte[] buf = new byte[8192]; | 36 | byte[] buf = new byte[8192]; |
37 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.remoteConfigSettings.baseConfigURL + this.configFileName); | 37 | HttpWebRequest request = (HttpWebRequest)WebRequest.Create(this.remoteConfigSettings.baseConfigURL + this.configFileName); |
38 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); | 38 | HttpWebResponse response = (HttpWebResponse)request.GetResponse(); |
39 | 39 | ||
40 | Stream resStream = response.GetResponseStream(); | 40 | Stream resStream = response.GetResponseStream(); |
41 | 41 | ||
42 | string tempString = null; | 42 | string tempString = null; |
43 | int count = 0; | 43 | int count = 0; |
44 | 44 | ||
45 | do | 45 | do |
46 | { | 46 | { |
47 | count = resStream.Read(buf, 0, buf.Length); | 47 | count = resStream.Read(buf, 0, buf.Length); |
48 | if (count != 0) | 48 | if (count != 0) |
49 | { | 49 | { |
50 | tempString = Encoding.ASCII.GetString(buf, 0, count); | 50 | tempString = Encoding.ASCII.GetString(buf, 0, count); |
51 | sb.Append(tempString); | 51 | sb.Append(tempString); |
52 | } | 52 | } |
53 | } | 53 | } |
54 | while (count > 0); | 54 | while (count > 0); |
55 | LoadDataFromString(sb.ToString()); | 55 | LoadDataFromString(sb.ToString()); |
56 | } | 56 | } |
57 | catch (WebException) | 57 | catch (WebException) |
58 | { | 58 | { |
59 | Console.MainLog.Instance.Warn("Unable to connect to remote configuration file (" + remoteConfigSettings.baseConfigURL + configFileName + "). Creating local file instead."); | 59 | Console.MainLog.Instance.Warn("Unable to connect to remote configuration file (" + remoteConfigSettings.baseConfigURL + configFileName + "). Creating local file instead."); |
60 | xmlConfig.SetFileName(configFileName); | 60 | xmlConfig.SetFileName(configFileName); |
61 | xmlConfig.LoadData(); | 61 | xmlConfig.LoadData(); |
62 | } | 62 | } |
63 | } | 63 | } |
64 | 64 | ||
65 | public void LoadDataFromString(string data) | 65 | public void LoadDataFromString(string data) |
66 | { | 66 | { |
67 | xmlConfig.LoadDataFromString(data); | 67 | xmlConfig.LoadDataFromString(data); |
68 | 68 | ||
69 | } | 69 | } |
70 | 70 | ||
71 | public string GetAttribute(string attributeName) | 71 | public string GetAttribute(string attributeName) |
72 | { | 72 | { |
73 | return xmlConfig.GetAttribute(attributeName); | 73 | return xmlConfig.GetAttribute(attributeName); |
74 | } | 74 | } |
75 | 75 | ||
76 | public bool SetAttribute(string attributeName, string attributeValue) | 76 | public bool SetAttribute(string attributeName, string attributeValue) |
77 | { | 77 | { |
78 | return true; | 78 | return true; |
79 | } | 79 | } |
80 | 80 | ||
81 | public void Commit() | 81 | public void Commit() |
82 | { | 82 | { |
83 | } | 83 | } |
84 | 84 | ||
85 | public void Close() | 85 | public void Close() |
86 | { | 86 | { |
87 | } | 87 | } |
88 | } | 88 | } |
89 | } | 89 | } |
diff --git a/OpenSim/Framework/Configuration/HTTP/RemoteConfigSettings.cs b/OpenSim/Framework/Configuration/HTTP/RemoteConfigSettings.cs index e3cfac7..77719ee 100644 --- a/OpenSim/Framework/Configuration/HTTP/RemoteConfigSettings.cs +++ b/OpenSim/Framework/Configuration/HTTP/RemoteConfigSettings.cs | |||
@@ -1,34 +1,34 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | using OpenSim.Framework.Configuration; | 5 | using OpenSim.Framework.Configuration; |
6 | 6 | ||
7 | namespace OpenSim.Framework.Configuration.HTTP | 7 | namespace OpenSim.Framework.Configuration.HTTP |
8 | { | 8 | { |
9 | public class RemoteConfigSettings | 9 | public class RemoteConfigSettings |
10 | { | 10 | { |
11 | private ConfigurationMember configMember; | 11 | private ConfigurationMember configMember; |
12 | 12 | ||
13 | public string baseConfigURL = ""; | 13 | public string baseConfigURL = ""; |
14 | public RemoteConfigSettings(string filename) | 14 | public RemoteConfigSettings(string filename) |
15 | { | 15 | { |
16 | configMember = new ConfigurationMember(filename, "REMOTE CONFIG SETTINGS", loadConfigurationOptions, handleIncomingConfiguration); | 16 | configMember = new ConfigurationMember(filename, "REMOTE CONFIG SETTINGS", loadConfigurationOptions, handleIncomingConfiguration); |
17 | configMember.forceConfigurationPluginLibrary("OpenSim.Framework.Configuration.XML.dll"); | 17 | configMember.forceConfigurationPluginLibrary("OpenSim.Framework.Configuration.XML.dll"); |
18 | configMember.performConfigurationRetrieve(); | 18 | configMember.performConfigurationRetrieve(); |
19 | } | 19 | } |
20 | 20 | ||
21 | public void loadConfigurationOptions() | 21 | public void loadConfigurationOptions() |
22 | { | 22 | { |
23 | configMember.addConfigurationOption("base_config_url", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "URL Containing Configuration Files", "http://localhost/", false); | 23 | configMember.addConfigurationOption("base_config_url", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "URL Containing Configuration Files", "http://localhost/", false); |
24 | } | 24 | } |
25 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) | 25 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) |
26 | { | 26 | { |
27 | if (configuration_key == "base_config_url") | 27 | if (configuration_key == "base_config_url") |
28 | { | 28 | { |
29 | baseConfigURL = (string)configuration_result; | 29 | baseConfigURL = (string)configuration_result; |
30 | } | 30 | } |
31 | return true; | 31 | return true; |
32 | } | 32 | } |
33 | } | 33 | } |
34 | } | 34 | } |
diff --git a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs index 5b66035..72faed6 100644 --- a/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs +++ b/OpenSim/Framework/Configuration/XML/XmlConfiguration.cs | |||
@@ -1,133 +1,133 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.Xml; | 30 | using System.Xml; |
31 | 31 | ||
32 | using OpenSim.Framework.Interfaces; | 32 | using OpenSim.Framework.Interfaces; |
33 | using OpenSim.Framework.Configuration.Interfaces; | 33 | using OpenSim.Framework.Configuration.Interfaces; |
34 | 34 | ||
35 | namespace OpenSim.Framework.Configuration | 35 | namespace OpenSim.Framework.Configuration |
36 | { | 36 | { |
37 | public class XmlConfiguration : IGenericConfig | 37 | public class XmlConfiguration : IGenericConfig |
38 | { | 38 | { |
39 | private XmlDocument doc; | 39 | private XmlDocument doc; |
40 | private XmlNode rootNode; | 40 | private XmlNode rootNode; |
41 | private XmlNode configNode; | 41 | private XmlNode configNode; |
42 | private string fileName; | 42 | private string fileName; |
43 | private bool createdFile = false; | 43 | private bool createdFile = false; |
44 | 44 | ||
45 | public void SetFileName(string file) | 45 | public void SetFileName(string file) |
46 | { | 46 | { |
47 | fileName = file; | 47 | fileName = file; |
48 | } | 48 | } |
49 | 49 | ||
50 | private void LoadDataToClass() | 50 | private void LoadDataToClass() |
51 | { | 51 | { |
52 | rootNode = doc.FirstChild; | 52 | rootNode = doc.FirstChild; |
53 | if (rootNode.Name != "Root") | 53 | if (rootNode.Name != "Root") |
54 | throw new Exception("Error: Invalid .xml File. Missing <Root>"); | 54 | throw new Exception("Error: Invalid .xml File. Missing <Root>"); |
55 | 55 | ||
56 | configNode = rootNode.FirstChild; | 56 | configNode = rootNode.FirstChild; |
57 | if (configNode.Name != "Config") | 57 | if (configNode.Name != "Config") |
58 | throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>"); | 58 | throw new Exception("Error: Invalid .xml File. <Root> first child should be <Config>"); |
59 | } | 59 | } |
60 | public void LoadData() | 60 | public void LoadData() |
61 | { | 61 | { |
62 | doc = new XmlDocument(); | 62 | doc = new XmlDocument(); |
63 | if (File.Exists(fileName)) | 63 | if (File.Exists(fileName)) |
64 | { | 64 | { |
65 | XmlTextReader reader = new XmlTextReader(fileName); | 65 | XmlTextReader reader = new XmlTextReader(fileName); |
66 | reader.WhitespaceHandling = WhitespaceHandling.None; | 66 | reader.WhitespaceHandling = WhitespaceHandling.None; |
67 | doc.Load(reader); | 67 | doc.Load(reader); |
68 | reader.Close(); | 68 | reader.Close(); |
69 | } | 69 | } |
70 | else | 70 | else |
71 | { | 71 | { |
72 | createdFile = true; | 72 | createdFile = true; |
73 | rootNode = doc.CreateNode(XmlNodeType.Element, "Root", ""); | 73 | rootNode = doc.CreateNode(XmlNodeType.Element, "Root", ""); |
74 | doc.AppendChild(rootNode); | 74 | doc.AppendChild(rootNode); |
75 | configNode = doc.CreateNode(XmlNodeType.Element, "Config", ""); | 75 | configNode = doc.CreateNode(XmlNodeType.Element, "Config", ""); |
76 | rootNode.AppendChild(configNode); | 76 | rootNode.AppendChild(configNode); |
77 | } | 77 | } |
78 | 78 | ||
79 | LoadDataToClass(); | 79 | LoadDataToClass(); |
80 | 80 | ||
81 | if (createdFile) | 81 | if (createdFile) |
82 | { | 82 | { |
83 | this.Commit(); | 83 | this.Commit(); |
84 | } | 84 | } |
85 | } | 85 | } |
86 | 86 | ||
87 | public void LoadDataFromString(string data) | 87 | public void LoadDataFromString(string data) |
88 | { | 88 | { |
89 | doc = new XmlDocument(); | 89 | doc = new XmlDocument(); |
90 | doc.LoadXml(data); | 90 | doc.LoadXml(data); |
91 | 91 | ||
92 | LoadDataToClass(); | 92 | LoadDataToClass(); |
93 | } | 93 | } |
94 | public string GetAttribute(string attributeName) | 94 | public string GetAttribute(string attributeName) |
95 | { | 95 | { |
96 | string result = null; | 96 | string result = null; |
97 | if (configNode.Attributes[attributeName] != null) | 97 | if (configNode.Attributes[attributeName] != null) |
98 | { | 98 | { |
99 | result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value; | 99 | result = ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value; |
100 | } | 100 | } |
101 | return result; | 101 | return result; |
102 | } | 102 | } |
103 | 103 | ||
104 | public bool SetAttribute(string attributeName, string attributeValue) | 104 | public bool SetAttribute(string attributeName, string attributeValue) |
105 | { | 105 | { |
106 | if (configNode.Attributes[attributeName] != null) | 106 | if (configNode.Attributes[attributeName] != null) |
107 | { | 107 | { |
108 | ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue; | 108 | ((XmlAttribute)configNode.Attributes.GetNamedItem(attributeName)).Value = attributeValue; |
109 | } | 109 | } |
110 | else | 110 | else |
111 | { | 111 | { |
112 | XmlAttribute attri; | 112 | XmlAttribute attri; |
113 | attri = doc.CreateAttribute(attributeName); | 113 | attri = doc.CreateAttribute(attributeName); |
114 | attri.Value = attributeValue; | 114 | attri.Value = attributeValue; |
115 | configNode.Attributes.Append(attri); | 115 | configNode.Attributes.Append(attri); |
116 | } | 116 | } |
117 | return true; | 117 | return true; |
118 | } | 118 | } |
119 | 119 | ||
120 | public void Commit() | 120 | public void Commit() |
121 | { | 121 | { |
122 | doc.Save(fileName); | 122 | doc.Save(fileName); |
123 | } | 123 | } |
124 | 124 | ||
125 | public void Close() | 125 | public void Close() |
126 | { | 126 | { |
127 | configNode = null; | 127 | configNode = null; |
128 | rootNode = null; | 128 | rootNode = null; |
129 | doc = null; | 129 | doc = null; |
130 | } | 130 | } |
131 | 131 | ||
132 | } | 132 | } |
133 | } | 133 | } |
diff --git a/OpenSim/Framework/General/Configuration/ConfigurationMember.cs b/OpenSim/Framework/General/Configuration/ConfigurationMember.cs index b8dfc0c..eb5465f 100644 --- a/OpenSim/Framework/General/Configuration/ConfigurationMember.cs +++ b/OpenSim/Framework/General/Configuration/ConfigurationMember.cs | |||
@@ -1,379 +1,379 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Reflection; | 2 | using System.Reflection; |
3 | using System.Collections; | 3 | using System.Collections; |
4 | using System.Collections.Generic; | 4 | using System.Collections.Generic; |
5 | using System.Text; | 5 | using System.Text; |
6 | using System.Net; | 6 | using System.Net; |
7 | 7 | ||
8 | using libsecondlife; | 8 | using libsecondlife; |
9 | 9 | ||
10 | using OpenSim.Framework.Console; | 10 | using OpenSim.Framework.Console; |
11 | using OpenSim.Framework.Configuration.Interfaces; | 11 | using OpenSim.Framework.Configuration.Interfaces; |
12 | 12 | ||
13 | namespace OpenSim.Framework.Configuration | 13 | namespace OpenSim.Framework.Configuration |
14 | { | 14 | { |
15 | public class ConfigurationMember | 15 | public class ConfigurationMember |
16 | { | 16 | { |
17 | public delegate bool ConfigurationOptionResult(string configuration_key, object configuration_result); | 17 | public delegate bool ConfigurationOptionResult(string configuration_key, object configuration_result); |
18 | public delegate void ConfigurationOptionsLoad(); | 18 | public delegate void ConfigurationOptionsLoad(); |
19 | 19 | ||
20 | private List<ConfigurationOption> configurationOptions = new List<ConfigurationOption>(); | 20 | private List<ConfigurationOption> configurationOptions = new List<ConfigurationOption>(); |
21 | private string configurationFilename = ""; | 21 | private string configurationFilename = ""; |
22 | private string configurationDescription = ""; | 22 | private string configurationDescription = ""; |
23 | 23 | ||
24 | private ConfigurationOptionsLoad loadFunction; | 24 | private ConfigurationOptionsLoad loadFunction; |
25 | private ConfigurationOptionResult resultFunction; | 25 | private ConfigurationOptionResult resultFunction; |
26 | 26 | ||
27 | private IGenericConfig configurationPlugin = null; | 27 | private IGenericConfig configurationPlugin = null; |
28 | /// <summary> | 28 | /// <summary> |
29 | /// This is the default configuration DLL loaded | 29 | /// This is the default configuration DLL loaded |
30 | /// </summary> | 30 | /// </summary> |
31 | private string configurationPluginFilename = "OpenSim.Framework.Configuration.XML.dll"; | 31 | private string configurationPluginFilename = "OpenSim.Framework.Configuration.XML.dll"; |
32 | public ConfigurationMember(string configuration_filename, string configuration_description, ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) | 32 | public ConfigurationMember(string configuration_filename, string configuration_description, ConfigurationOptionsLoad load_function, ConfigurationOptionResult result_function) |
33 | { | 33 | { |
34 | this.configurationFilename = configuration_filename; | 34 | this.configurationFilename = configuration_filename; |
35 | this.configurationDescription = configuration_description; | 35 | this.configurationDescription = configuration_description; |
36 | this.loadFunction = load_function; | 36 | this.loadFunction = load_function; |
37 | this.resultFunction = result_function; | 37 | this.resultFunction = result_function; |
38 | } | 38 | } |
39 | 39 | ||
40 | public void setConfigurationFilename(string filename) | 40 | public void setConfigurationFilename(string filename) |
41 | { | 41 | { |
42 | configurationFilename = filename; | 42 | configurationFilename = filename; |
43 | } | 43 | } |
44 | public void setConfigurationDescription(string desc) | 44 | public void setConfigurationDescription(string desc) |
45 | { | 45 | { |
46 | configurationDescription = desc; | 46 | configurationDescription = desc; |
47 | } | 47 | } |
48 | 48 | ||
49 | public void setConfigurationResultFunction(ConfigurationOptionResult result) | 49 | public void setConfigurationResultFunction(ConfigurationOptionResult result) |
50 | { | 50 | { |
51 | resultFunction = result; | 51 | resultFunction = result; |
52 | } | 52 | } |
53 | 53 | ||
54 | public void forceConfigurationPluginLibrary(string dll_filename) | 54 | public void forceConfigurationPluginLibrary(string dll_filename) |
55 | { | 55 | { |
56 | configurationPluginFilename = dll_filename; | 56 | configurationPluginFilename = dll_filename; |
57 | } | 57 | } |
58 | public void addConfigurationOption(string configuration_key, ConfigurationOption.ConfigurationTypes configuration_type, string configuration_question, string configuration_default, bool use_default_no_prompt) | 58 | public void addConfigurationOption(string configuration_key, ConfigurationOption.ConfigurationTypes configuration_type, string configuration_question, string configuration_default, bool use_default_no_prompt) |
59 | { | 59 | { |
60 | ConfigurationOption configOption = new ConfigurationOption(); | 60 | ConfigurationOption configOption = new ConfigurationOption(); |
61 | configOption.configurationKey = configuration_key; | 61 | configOption.configurationKey = configuration_key; |
62 | configOption.configurationQuestion = configuration_question; | 62 | configOption.configurationQuestion = configuration_question; |
63 | configOption.configurationDefault = configuration_default; | 63 | configOption.configurationDefault = configuration_default; |
64 | configOption.configurationType = configuration_type; | 64 | configOption.configurationType = configuration_type; |
65 | configOption.configurationUseDefaultNoPrompt = use_default_no_prompt; | 65 | configOption.configurationUseDefaultNoPrompt = use_default_no_prompt; |
66 | 66 | ||
67 | if (configuration_key != "" && configuration_question != "") | 67 | if (configuration_key != "" && configuration_question != "") |
68 | { | 68 | { |
69 | if (!configurationOptions.Contains(configOption)) | 69 | if (!configurationOptions.Contains(configOption)) |
70 | { | 70 | { |
71 | configurationOptions.Add(configOption); | 71 | configurationOptions.Add(configOption); |
72 | } | 72 | } |
73 | } | 73 | } |
74 | else | 74 | else |
75 | { | 75 | { |
76 | MainLog.Instance.Notice("Required fields for adding a configuration option is invalid. Will not add this option (" + configuration_key + ")"); | 76 | MainLog.Instance.Notice("Required fields for adding a configuration option is invalid. Will not add this option (" + configuration_key + ")"); |
77 | } | 77 | } |
78 | } | 78 | } |
79 | 79 | ||
80 | public void performConfigurationRetrieve() | 80 | public void performConfigurationRetrieve() |
81 | { | 81 | { |
82 | configurationPlugin = this.LoadConfigDll(configurationPluginFilename); | 82 | configurationPlugin = this.LoadConfigDll(configurationPluginFilename); |
83 | configurationOptions.Clear(); | 83 | configurationOptions.Clear(); |
84 | if(loadFunction == null) | 84 | if(loadFunction == null) |
85 | { | 85 | { |
86 | MainLog.Instance.Error("Load Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); | 86 | MainLog.Instance.Error("Load Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); |
87 | return; | 87 | return; |
88 | } | 88 | } |
89 | 89 | ||
90 | if(resultFunction == null) | 90 | if(resultFunction == null) |
91 | { | 91 | { |
92 | MainLog.Instance.Error("Result Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); | 92 | MainLog.Instance.Error("Result Function for '" + this.configurationDescription + "' is null. Refusing to run configuration."); |
93 | return; | 93 | return; |
94 | } | 94 | } |
95 | 95 | ||
96 | MainLog.Instance.Verbose("Calling Configuration Load Function..."); | 96 | MainLog.Instance.Verbose("Calling Configuration Load Function..."); |
97 | this.loadFunction(); | 97 | this.loadFunction(); |
98 | 98 | ||
99 | if(configurationOptions.Count <= 0) | 99 | if(configurationOptions.Count <= 0) |
100 | { | 100 | { |
101 | MainLog.Instance.Error("No configuration options were specified for '" + this.configurationOptions + "'. Refusing to continue configuration."); | 101 | MainLog.Instance.Error("No configuration options were specified for '" + this.configurationOptions + "'. Refusing to continue configuration."); |
102 | return; | 102 | return; |
103 | } | 103 | } |
104 | 104 | ||
105 | bool useFile = true; | 105 | bool useFile = true; |
106 | if (configurationPlugin == null) | 106 | if (configurationPlugin == null) |
107 | { | 107 | { |
108 | MainLog.Instance.Error("Configuration Plugin NOT LOADED!"); | 108 | MainLog.Instance.Error("Configuration Plugin NOT LOADED!"); |
109 | return; | 109 | return; |
110 | } | 110 | } |
111 | 111 | ||
112 | if (configurationFilename.Trim() != "") | 112 | if (configurationFilename.Trim() != "") |
113 | { | 113 | { |
114 | configurationPlugin.SetFileName(configurationFilename); | 114 | configurationPlugin.SetFileName(configurationFilename); |
115 | configurationPlugin.LoadData(); | 115 | configurationPlugin.LoadData(); |
116 | useFile = true; | 116 | useFile = true; |
117 | } | 117 | } |
118 | 118 | ||
119 | else | 119 | else |
120 | { | 120 | { |
121 | MainLog.Instance.Notice("XML Configuration Filename is not valid; will not save to the file."); | 121 | MainLog.Instance.Notice("XML Configuration Filename is not valid; will not save to the file."); |
122 | useFile = false; | 122 | useFile = false; |
123 | } | 123 | } |
124 | 124 | ||
125 | foreach (ConfigurationOption configOption in configurationOptions) | 125 | foreach (ConfigurationOption configOption in configurationOptions) |
126 | { | 126 | { |
127 | bool convertSuccess = false; | 127 | bool convertSuccess = false; |
128 | object return_result = null; | 128 | object return_result = null; |
129 | string errorMessage = ""; | 129 | string errorMessage = ""; |
130 | bool ignoreNextFromConfig = false; | 130 | bool ignoreNextFromConfig = false; |
131 | while (convertSuccess == false) | 131 | while (convertSuccess == false) |
132 | { | 132 | { |
133 | 133 | ||
134 | string console_result = ""; | 134 | string console_result = ""; |
135 | string attribute = null; | 135 | string attribute = null; |
136 | if (useFile) | 136 | if (useFile) |
137 | { | 137 | { |
138 | if (!ignoreNextFromConfig) | 138 | if (!ignoreNextFromConfig) |
139 | { | 139 | { |
140 | attribute = configurationPlugin.GetAttribute(configOption.configurationKey); | 140 | attribute = configurationPlugin.GetAttribute(configOption.configurationKey); |
141 | } | 141 | } |
142 | else | 142 | else |
143 | { | 143 | { |
144 | ignoreNextFromConfig = false; | 144 | ignoreNextFromConfig = false; |
145 | } | 145 | } |
146 | } | 146 | } |
147 | 147 | ||
148 | if (attribute == null) | 148 | if (attribute == null) |
149 | { | 149 | { |
150 | if (configOption.configurationUseDefaultNoPrompt) | 150 | if (configOption.configurationUseDefaultNoPrompt) |
151 | { | 151 | { |
152 | console_result = configOption.configurationDefault; | 152 | console_result = configOption.configurationDefault; |
153 | } | 153 | } |
154 | else | 154 | else |
155 | { | 155 | { |
156 | 156 | ||
157 | if (configurationDescription.Trim() != "") | 157 | if (configurationDescription.Trim() != "") |
158 | { | 158 | { |
159 | console_result = MainLog.Instance.CmdPrompt(configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault); | 159 | console_result = MainLog.Instance.CmdPrompt(configurationDescription + ": " + configOption.configurationQuestion, configOption.configurationDefault); |
160 | } | 160 | } |
161 | else | 161 | else |
162 | { | 162 | { |
163 | console_result = MainLog.Instance.CmdPrompt(configOption.configurationQuestion, configOption.configurationDefault); | 163 | console_result = MainLog.Instance.CmdPrompt(configOption.configurationQuestion, configOption.configurationDefault); |
164 | } | 164 | } |
165 | } | 165 | } |
166 | } | 166 | } |
167 | else | 167 | else |
168 | { | 168 | { |
169 | console_result = attribute; | 169 | console_result = attribute; |
170 | } | 170 | } |
171 | 171 | ||
172 | switch (configOption.configurationType) | 172 | switch (configOption.configurationType) |
173 | { | 173 | { |
174 | case ConfigurationOption.ConfigurationTypes.TYPE_STRING: | 174 | case ConfigurationOption.ConfigurationTypes.TYPE_STRING: |
175 | return_result = console_result; | 175 | return_result = console_result; |
176 | convertSuccess = true; | 176 | convertSuccess = true; |
177 | break; | 177 | break; |
178 | case ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY: | 178 | case ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY: |
179 | if (console_result.Length > 0) | 179 | if (console_result.Length > 0) |
180 | { | 180 | { |
181 | return_result = console_result; | 181 | return_result = console_result; |
182 | convertSuccess = true; | 182 | convertSuccess = true; |
183 | } | 183 | } |
184 | errorMessage = "a string that is not empty"; | 184 | errorMessage = "a string that is not empty"; |
185 | break; | 185 | break; |
186 | case ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN: | 186 | case ConfigurationOption.ConfigurationTypes.TYPE_BOOLEAN: |
187 | bool boolResult; | 187 | bool boolResult; |
188 | if (Boolean.TryParse(console_result, out boolResult)) | 188 | if (Boolean.TryParse(console_result, out boolResult)) |
189 | { | 189 | { |
190 | convertSuccess = true; | 190 | convertSuccess = true; |
191 | return_result = boolResult; | 191 | return_result = boolResult; |
192 | } | 192 | } |
193 | errorMessage = "'true' or 'false' (Boolean)"; | 193 | errorMessage = "'true' or 'false' (Boolean)"; |
194 | break; | 194 | break; |
195 | case ConfigurationOption.ConfigurationTypes.TYPE_BYTE: | 195 | case ConfigurationOption.ConfigurationTypes.TYPE_BYTE: |
196 | byte byteResult; | 196 | byte byteResult; |
197 | if (Byte.TryParse(console_result, out byteResult)) | 197 | if (Byte.TryParse(console_result, out byteResult)) |
198 | { | 198 | { |
199 | convertSuccess = true; | 199 | convertSuccess = true; |
200 | return_result = byteResult; | 200 | return_result = byteResult; |
201 | } | 201 | } |
202 | errorMessage = "a byte (Byte)"; | 202 | errorMessage = "a byte (Byte)"; |
203 | break; | 203 | break; |
204 | case ConfigurationOption.ConfigurationTypes.TYPE_CHARACTER: | 204 | case ConfigurationOption.ConfigurationTypes.TYPE_CHARACTER: |
205 | char charResult; | 205 | char charResult; |
206 | if (Char.TryParse(console_result, out charResult)) | 206 | if (Char.TryParse(console_result, out charResult)) |
207 | { | 207 | { |
208 | convertSuccess = true; | 208 | convertSuccess = true; |
209 | return_result = charResult; | 209 | return_result = charResult; |
210 | } | 210 | } |
211 | errorMessage = "a character (Char)"; | 211 | errorMessage = "a character (Char)"; |
212 | break; | 212 | break; |
213 | case ConfigurationOption.ConfigurationTypes.TYPE_INT16: | 213 | case ConfigurationOption.ConfigurationTypes.TYPE_INT16: |
214 | short shortResult; | 214 | short shortResult; |
215 | if (Int16.TryParse(console_result, out shortResult)) | 215 | if (Int16.TryParse(console_result, out shortResult)) |
216 | { | 216 | { |
217 | convertSuccess = true; | 217 | convertSuccess = true; |
218 | return_result = shortResult; | 218 | return_result = shortResult; |
219 | } | 219 | } |
220 | errorMessage = "a signed 32 bit integer (short)"; | 220 | errorMessage = "a signed 32 bit integer (short)"; |
221 | break; | 221 | break; |
222 | case ConfigurationOption.ConfigurationTypes.TYPE_INT32: | 222 | case ConfigurationOption.ConfigurationTypes.TYPE_INT32: |
223 | int intResult; | 223 | int intResult; |
224 | if (Int32.TryParse(console_result, out intResult)) | 224 | if (Int32.TryParse(console_result, out intResult)) |
225 | { | 225 | { |
226 | convertSuccess = true; | 226 | convertSuccess = true; |
227 | return_result = intResult; | 227 | return_result = intResult; |
228 | 228 | ||
229 | } | 229 | } |
230 | errorMessage = "a signed 32 bit integer (int)"; | 230 | errorMessage = "a signed 32 bit integer (int)"; |
231 | break; | 231 | break; |
232 | case ConfigurationOption.ConfigurationTypes.TYPE_INT64: | 232 | case ConfigurationOption.ConfigurationTypes.TYPE_INT64: |
233 | long longResult; | 233 | long longResult; |
234 | if (Int64.TryParse(console_result, out longResult)) | 234 | if (Int64.TryParse(console_result, out longResult)) |
235 | { | 235 | { |
236 | convertSuccess = true; | 236 | convertSuccess = true; |
237 | return_result = longResult; | 237 | return_result = longResult; |
238 | } | 238 | } |
239 | errorMessage = "a signed 32 bit integer (long)"; | 239 | errorMessage = "a signed 32 bit integer (long)"; |
240 | break; | 240 | break; |
241 | case ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS: | 241 | case ConfigurationOption.ConfigurationTypes.TYPE_IP_ADDRESS: |
242 | IPAddress ipAddressResult; | 242 | IPAddress ipAddressResult; |
243 | if (IPAddress.TryParse(console_result, out ipAddressResult)) | 243 | if (IPAddress.TryParse(console_result, out ipAddressResult)) |
244 | { | 244 | { |
245 | convertSuccess = true; | 245 | convertSuccess = true; |
246 | return_result = ipAddressResult; | 246 | return_result = ipAddressResult; |
247 | } | 247 | } |
248 | errorMessage = "an IP Address (IPAddress)"; | 248 | errorMessage = "an IP Address (IPAddress)"; |
249 | break; | 249 | break; |
250 | case ConfigurationOption.ConfigurationTypes.TYPE_LLUUID: | 250 | case ConfigurationOption.ConfigurationTypes.TYPE_LLUUID: |
251 | LLUUID uuidResult; | 251 | LLUUID uuidResult; |
252 | if (LLUUID.TryParse(console_result, out uuidResult)) | 252 | if (LLUUID.TryParse(console_result, out uuidResult)) |
253 | { | 253 | { |
254 | convertSuccess = true; | 254 | convertSuccess = true; |
255 | return_result = uuidResult; | 255 | return_result = uuidResult; |
256 | } | 256 | } |
257 | errorMessage = "a UUID (LLUUID)"; | 257 | errorMessage = "a UUID (LLUUID)"; |
258 | break; | 258 | break; |
259 | case ConfigurationOption.ConfigurationTypes.TYPE_LLVECTOR3: | 259 | case ConfigurationOption.ConfigurationTypes.TYPE_LLVECTOR3: |
260 | LLVector3 vectorResult; | 260 | LLVector3 vectorResult; |
261 | if (LLVector3.TryParse(console_result, out vectorResult)) | 261 | if (LLVector3.TryParse(console_result, out vectorResult)) |
262 | { | 262 | { |
263 | convertSuccess = true; | 263 | convertSuccess = true; |
264 | return_result = vectorResult; | 264 | return_result = vectorResult; |
265 | } | 265 | } |
266 | errorMessage = "a vector (LLVector3)"; | 266 | errorMessage = "a vector (LLVector3)"; |
267 | break; | 267 | break; |
268 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT16: | 268 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT16: |
269 | ushort ushortResult; | 269 | ushort ushortResult; |
270 | if (UInt16.TryParse(console_result, out ushortResult)) | 270 | if (UInt16.TryParse(console_result, out ushortResult)) |
271 | { | 271 | { |
272 | convertSuccess = true; | 272 | convertSuccess = true; |
273 | return_result = ushortResult; | 273 | return_result = ushortResult; |
274 | } | 274 | } |
275 | errorMessage = "an unsigned 16 bit integer (ushort)"; | 275 | errorMessage = "an unsigned 16 bit integer (ushort)"; |
276 | break; | 276 | break; |
277 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT32: | 277 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT32: |
278 | uint uintResult; | 278 | uint uintResult; |
279 | if (UInt32.TryParse(console_result, out uintResult)) | 279 | if (UInt32.TryParse(console_result, out uintResult)) |
280 | { | 280 | { |
281 | convertSuccess = true; | 281 | convertSuccess = true; |
282 | return_result = uintResult; | 282 | return_result = uintResult; |
283 | 283 | ||
284 | } | 284 | } |
285 | errorMessage = "an unsigned 32 bit integer (uint)"; | 285 | errorMessage = "an unsigned 32 bit integer (uint)"; |
286 | break; | 286 | break; |
287 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT64: | 287 | case ConfigurationOption.ConfigurationTypes.TYPE_UINT64: |
288 | ulong ulongResult; | 288 | ulong ulongResult; |
289 | if (UInt64.TryParse(console_result, out ulongResult)) | 289 | if (UInt64.TryParse(console_result, out ulongResult)) |
290 | { | 290 | { |
291 | convertSuccess = true; | 291 | convertSuccess = true; |
292 | return_result = ulongResult; | 292 | return_result = ulongResult; |
293 | } | 293 | } |
294 | errorMessage = "an unsigned 64 bit integer (ulong)"; | 294 | errorMessage = "an unsigned 64 bit integer (ulong)"; |
295 | break; | 295 | break; |
296 | case ConfigurationOption.ConfigurationTypes.TYPE_FLOAT: | 296 | case ConfigurationOption.ConfigurationTypes.TYPE_FLOAT: |
297 | float floatResult; | 297 | float floatResult; |
298 | if (float.TryParse(console_result, out floatResult)) | 298 | if (float.TryParse(console_result, out floatResult)) |
299 | { | 299 | { |
300 | convertSuccess = true; | 300 | convertSuccess = true; |
301 | return_result = floatResult; | 301 | return_result = floatResult; |
302 | } | 302 | } |
303 | errorMessage = "a single-precision floating point number (float)"; | 303 | errorMessage = "a single-precision floating point number (float)"; |
304 | break; | 304 | break; |
305 | case ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE: | 305 | case ConfigurationOption.ConfigurationTypes.TYPE_DOUBLE: |
306 | double doubleResult; | 306 | double doubleResult; |
307 | if (Double.TryParse(console_result, out doubleResult)) | 307 | if (Double.TryParse(console_result, out doubleResult)) |
308 | { | 308 | { |
309 | convertSuccess = true; | 309 | convertSuccess = true; |
310 | return_result = doubleResult; | 310 | return_result = doubleResult; |
311 | } | 311 | } |
312 | errorMessage = "an double-precision floating point number (double)"; | 312 | errorMessage = "an double-precision floating point number (double)"; |
313 | break; | 313 | break; |
314 | } | 314 | } |
315 | 315 | ||
316 | if (convertSuccess) | 316 | if (convertSuccess) |
317 | { | 317 | { |
318 | if (useFile) | 318 | if (useFile) |
319 | { | 319 | { |
320 | configurationPlugin.SetAttribute(configOption.configurationKey, console_result); | 320 | configurationPlugin.SetAttribute(configOption.configurationKey, console_result); |
321 | } | 321 | } |
322 | 322 | ||
323 | 323 | ||
324 | if (!this.resultFunction(configOption.configurationKey, return_result)) | 324 | if (!this.resultFunction(configOption.configurationKey, return_result)) |
325 | { | 325 | { |
326 | Console.MainLog.Instance.Notice("The handler for the last configuration option denied that input, please try again."); | 326 | Console.MainLog.Instance.Notice("The handler for the last configuration option denied that input, please try again."); |
327 | convertSuccess = false; | 327 | convertSuccess = false; |
328 | ignoreNextFromConfig = true; | 328 | ignoreNextFromConfig = true; |
329 | } | 329 | } |
330 | } | 330 | } |
331 | else | 331 | else |
332 | { | 332 | { |
333 | if (configOption.configurationUseDefaultNoPrompt) | 333 | if (configOption.configurationUseDefaultNoPrompt) |
334 | { | 334 | { |
335 | MainLog.Instance.Error("Default given for '" + configOption.configurationKey + "' is not valid; the configuration result must be " + errorMessage + ". Will skip this option..."); | 335 | MainLog.Instance.Error("Default given for '" + configOption.configurationKey + "' is not valid; the configuration result must be " + errorMessage + ". Will skip this option..."); |
336 | convertSuccess = true; | 336 | convertSuccess = true; |
337 | } | 337 | } |
338 | else | 338 | else |
339 | { | 339 | { |
340 | MainLog.Instance.Warn("configuration","Incorrect result given, the configuration option must be " + errorMessage + ". Prompting for same option..."); | 340 | MainLog.Instance.Warn("configuration","Incorrect result given, the configuration option must be " + errorMessage + ". Prompting for same option..."); |
341 | ignoreNextFromConfig = true; | 341 | ignoreNextFromConfig = true; |
342 | } | 342 | } |
343 | } | 343 | } |
344 | } | 344 | } |
345 | } | 345 | } |
346 | 346 | ||
347 | if(useFile) | 347 | if(useFile) |
348 | { | 348 | { |
349 | configurationPlugin.Commit(); | 349 | configurationPlugin.Commit(); |
350 | configurationPlugin.Close(); | 350 | configurationPlugin.Close(); |
351 | } | 351 | } |
352 | } | 352 | } |
353 | 353 | ||
354 | private IGenericConfig LoadConfigDll(string dllName) | 354 | private IGenericConfig LoadConfigDll(string dllName) |
355 | { | 355 | { |
356 | Assembly pluginAssembly = Assembly.LoadFrom(dllName); | 356 | Assembly pluginAssembly = Assembly.LoadFrom(dllName); |
357 | IGenericConfig plug = null; | 357 | IGenericConfig plug = null; |
358 | 358 | ||
359 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 359 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
360 | { | 360 | { |
361 | if (pluginType.IsPublic) | 361 | if (pluginType.IsPublic) |
362 | { | 362 | { |
363 | if (!pluginType.IsAbstract) | 363 | if (!pluginType.IsAbstract) |
364 | { | 364 | { |
365 | Type typeInterface = pluginType.GetInterface("IGenericConfig", true); | 365 | Type typeInterface = pluginType.GetInterface("IGenericConfig", true); |
366 | 366 | ||
367 | if (typeInterface != null) | 367 | if (typeInterface != null) |
368 | { | 368 | { |
369 | plug = (IGenericConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 369 | plug = (IGenericConfig)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
370 | } | 370 | } |
371 | } | 371 | } |
372 | } | 372 | } |
373 | } | 373 | } |
374 | 374 | ||
375 | pluginAssembly = null; | 375 | pluginAssembly = null; |
376 | return plug; | 376 | return plug; |
377 | } | 377 | } |
378 | } | 378 | } |
379 | } | 379 | } |
diff --git a/OpenSim/Framework/General/Configuration/ConfigurationOption.cs b/OpenSim/Framework/General/Configuration/ConfigurationOption.cs index 38f60a0..c94ba4c 100644 --- a/OpenSim/Framework/General/Configuration/ConfigurationOption.cs +++ b/OpenSim/Framework/General/Configuration/ConfigurationOption.cs | |||
@@ -1,36 +1,36 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | namespace OpenSim.Framework.Configuration | 5 | namespace OpenSim.Framework.Configuration |
6 | { | 6 | { |
7 | public class ConfigurationOption | 7 | public class ConfigurationOption |
8 | { | 8 | { |
9 | public enum ConfigurationTypes | 9 | public enum ConfigurationTypes |
10 | { | 10 | { |
11 | TYPE_STRING, | 11 | TYPE_STRING, |
12 | TYPE_STRING_NOT_EMPTY, | 12 | TYPE_STRING_NOT_EMPTY, |
13 | TYPE_UINT16, | 13 | TYPE_UINT16, |
14 | TYPE_UINT32, | 14 | TYPE_UINT32, |
15 | TYPE_UINT64, | 15 | TYPE_UINT64, |
16 | TYPE_INT16, | 16 | TYPE_INT16, |
17 | TYPE_INT32, | 17 | TYPE_INT32, |
18 | TYPE_INT64, | 18 | TYPE_INT64, |
19 | TYPE_IP_ADDRESS, | 19 | TYPE_IP_ADDRESS, |
20 | TYPE_CHARACTER, | 20 | TYPE_CHARACTER, |
21 | TYPE_BOOLEAN, | 21 | TYPE_BOOLEAN, |
22 | TYPE_BYTE, | 22 | TYPE_BYTE, |
23 | TYPE_LLUUID, | 23 | TYPE_LLUUID, |
24 | TYPE_LLVECTOR3, | 24 | TYPE_LLVECTOR3, |
25 | TYPE_FLOAT, | 25 | TYPE_FLOAT, |
26 | TYPE_DOUBLE | 26 | TYPE_DOUBLE |
27 | }; | 27 | }; |
28 | 28 | ||
29 | public string configurationKey = ""; | 29 | public string configurationKey = ""; |
30 | public string configurationQuestion = ""; | 30 | public string configurationQuestion = ""; |
31 | public string configurationDefault = ""; | 31 | public string configurationDefault = ""; |
32 | 32 | ||
33 | public ConfigurationTypes configurationType = ConfigurationTypes.TYPE_STRING; | 33 | public ConfigurationTypes configurationType = ConfigurationTypes.TYPE_STRING; |
34 | public bool configurationUseDefaultNoPrompt = false; | 34 | public bool configurationUseDefaultNoPrompt = false; |
35 | } | 35 | } |
36 | } | 36 | } |
diff --git a/OpenSim/Framework/General/Configuration/GridConfig.cs b/OpenSim/Framework/General/Configuration/GridConfig.cs index 3d07d9b..a81cac2 100644 --- a/OpenSim/Framework/General/Configuration/GridConfig.cs +++ b/OpenSim/Framework/General/Configuration/GridConfig.cs | |||
@@ -1,85 +1,85 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | namespace OpenSim.Framework.Configuration | 5 | namespace OpenSim.Framework.Configuration |
6 | { | 6 | { |
7 | public class GridConfig | 7 | public class GridConfig |
8 | { | 8 | { |
9 | public string GridOwner = ""; | 9 | public string GridOwner = ""; |
10 | public string DefaultAssetServer = ""; | 10 | public string DefaultAssetServer = ""; |
11 | public string AssetSendKey = ""; | 11 | public string AssetSendKey = ""; |
12 | public string AssetRecvKey = ""; | 12 | public string AssetRecvKey = ""; |
13 | 13 | ||
14 | public string DefaultUserServer = ""; | 14 | public string DefaultUserServer = ""; |
15 | public string UserSendKey = ""; | 15 | public string UserSendKey = ""; |
16 | public string UserRecvKey = ""; | 16 | public string UserRecvKey = ""; |
17 | 17 | ||
18 | public string SimSendKey = ""; | 18 | public string SimSendKey = ""; |
19 | public string SimRecvKey = ""; | 19 | public string SimRecvKey = ""; |
20 | 20 | ||
21 | public string DatabaseProvider = ""; | 21 | public string DatabaseProvider = ""; |
22 | 22 | ||
23 | private ConfigurationMember configMember; | 23 | private ConfigurationMember configMember; |
24 | public GridConfig(string description, string filename) | 24 | public GridConfig(string description, string filename) |
25 | { | 25 | { |
26 | configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration); | 26 | configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration); |
27 | configMember.performConfigurationRetrieve(); | 27 | configMember.performConfigurationRetrieve(); |
28 | } | 28 | } |
29 | 29 | ||
30 | public void loadConfigurationOptions() | 30 | public void loadConfigurationOptions() |
31 | { | 31 | { |
32 | configMember.addConfigurationOption("grid_owner", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "OGS Grid Owner", "OGS development team", false); | 32 | configMember.addConfigurationOption("grid_owner", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "OGS Grid Owner", "OGS development team", false); |
33 | configMember.addConfigurationOption("default_asset_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Asset Server URI", "http://127.0.0.1:8003/", false); | 33 | configMember.addConfigurationOption("default_asset_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Asset Server URI", "http://127.0.0.1:8003/", false); |
34 | configMember.addConfigurationOption("asset_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to asset server", "null", false); | 34 | configMember.addConfigurationOption("asset_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to asset server", "null", false); |
35 | configMember.addConfigurationOption("asset_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from asset server", "null", false); | 35 | configMember.addConfigurationOption("asset_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from asset server", "null", false); |
36 | 36 | ||
37 | configMember.addConfigurationOption("default_user_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default User Server URI", "http://127.0.0.1:8002/", false); | 37 | configMember.addConfigurationOption("default_user_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default User Server URI", "http://127.0.0.1:8002/", false); |
38 | configMember.addConfigurationOption("user_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to user server", "null", false); | 38 | configMember.addConfigurationOption("user_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to user server", "null", false); |
39 | configMember.addConfigurationOption("user_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from user server", "null", false); | 39 | configMember.addConfigurationOption("user_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from user server", "null", false); |
40 | 40 | ||
41 | configMember.addConfigurationOption("sim_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to a simulator", "null", false); | 41 | configMember.addConfigurationOption("sim_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to a simulator", "null", false); |
42 | configMember.addConfigurationOption("sim_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from a simulator", "null", false); | 42 | configMember.addConfigurationOption("sim_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from a simulator", "null", false); |
43 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); | 43 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); |
44 | } | 44 | } |
45 | 45 | ||
46 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) | 46 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) |
47 | { | 47 | { |
48 | switch (configuration_key) | 48 | switch (configuration_key) |
49 | { | 49 | { |
50 | case "grid_owner": | 50 | case "grid_owner": |
51 | this.GridOwner = (string)configuration_result; | 51 | this.GridOwner = (string)configuration_result; |
52 | break; | 52 | break; |
53 | case "default_asset_server": | 53 | case "default_asset_server": |
54 | this.DefaultAssetServer = (string)configuration_result; | 54 | this.DefaultAssetServer = (string)configuration_result; |
55 | break; | 55 | break; |
56 | case "asset_send_key": | 56 | case "asset_send_key": |
57 | this.AssetSendKey = (string)configuration_result; | 57 | this.AssetSendKey = (string)configuration_result; |
58 | break; | 58 | break; |
59 | case "asset_recv_key": | 59 | case "asset_recv_key": |
60 | this.AssetRecvKey = (string)configuration_result; | 60 | this.AssetRecvKey = (string)configuration_result; |
61 | break; | 61 | break; |
62 | case "default_user_server": | 62 | case "default_user_server": |
63 | this.DefaultUserServer = (string)configuration_result; | 63 | this.DefaultUserServer = (string)configuration_result; |
64 | break; | 64 | break; |
65 | case "user_send_key": | 65 | case "user_send_key": |
66 | this.UserSendKey = (string)configuration_result; | 66 | this.UserSendKey = (string)configuration_result; |
67 | break; | 67 | break; |
68 | case "user_recv_key": | 68 | case "user_recv_key": |
69 | this.UserRecvKey = (string)configuration_result; | 69 | this.UserRecvKey = (string)configuration_result; |
70 | break; | 70 | break; |
71 | case "sim_send_key": | 71 | case "sim_send_key": |
72 | this.SimSendKey = (string)configuration_result; | 72 | this.SimSendKey = (string)configuration_result; |
73 | break; | 73 | break; |
74 | case "sim_recv_key": | 74 | case "sim_recv_key": |
75 | this.SimRecvKey = (string)configuration_result; | 75 | this.SimRecvKey = (string)configuration_result; |
76 | break; | 76 | break; |
77 | case "database_provider": | 77 | case "database_provider": |
78 | this.DatabaseProvider = (string)configuration_result; | 78 | this.DatabaseProvider = (string)configuration_result; |
79 | break; | 79 | break; |
80 | } | 80 | } |
81 | 81 | ||
82 | return true; | 82 | return true; |
83 | } | 83 | } |
84 | } | 84 | } |
85 | } | 85 | } |
diff --git a/OpenSim/Framework/General/Configuration/Interfaces/IGenericConfig.cs b/OpenSim/Framework/General/Configuration/Interfaces/IGenericConfig.cs index ceccd04..0222745 100644 --- a/OpenSim/Framework/General/Configuration/Interfaces/IGenericConfig.cs +++ b/OpenSim/Framework/General/Configuration/Interfaces/IGenericConfig.cs | |||
@@ -1,40 +1,40 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | namespace OpenSim.Framework.Configuration.Interfaces | 28 | namespace OpenSim.Framework.Configuration.Interfaces |
29 | { | 29 | { |
30 | public interface IGenericConfig | 30 | public interface IGenericConfig |
31 | { | 31 | { |
32 | void SetFileName(string fileName); | 32 | void SetFileName(string fileName); |
33 | void LoadData(); | 33 | void LoadData(); |
34 | void LoadDataFromString(string data); | 34 | void LoadDataFromString(string data); |
35 | string GetAttribute(string attributeName); | 35 | string GetAttribute(string attributeName); |
36 | bool SetAttribute(string attributeName, string attributeValue); | 36 | bool SetAttribute(string attributeName, string attributeValue); |
37 | void Commit(); | 37 | void Commit(); |
38 | void Close(); | 38 | void Close(); |
39 | } | 39 | } |
40 | } | 40 | } |
diff --git a/OpenSim/Framework/General/Configuration/UserConfig.cs b/OpenSim/Framework/General/Configuration/UserConfig.cs index 2183491..177506f 100644 --- a/OpenSim/Framework/General/Configuration/UserConfig.cs +++ b/OpenSim/Framework/General/Configuration/UserConfig.cs | |||
@@ -1,62 +1,62 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | namespace OpenSim.Framework.Configuration | 5 | namespace OpenSim.Framework.Configuration |
6 | { | 6 | { |
7 | /// <summary> | 7 | /// <summary> |
8 | /// UserConfig -- For User Server Configuration | 8 | /// UserConfig -- For User Server Configuration |
9 | /// </summary> | 9 | /// </summary> |
10 | public class UserConfig | 10 | public class UserConfig |
11 | { | 11 | { |
12 | public string DefaultStartupMsg = ""; | 12 | public string DefaultStartupMsg = ""; |
13 | public string GridServerURL = ""; | 13 | public string GridServerURL = ""; |
14 | public string GridSendKey = ""; | 14 | public string GridSendKey = ""; |
15 | public string GridRecvKey = ""; | 15 | public string GridRecvKey = ""; |
16 | 16 | ||
17 | public string DatabaseProvider = ""; | 17 | public string DatabaseProvider = ""; |
18 | 18 | ||
19 | private ConfigurationMember configMember; | 19 | private ConfigurationMember configMember; |
20 | 20 | ||
21 | public UserConfig(string description, string filename) | 21 | public UserConfig(string description, string filename) |
22 | { | 22 | { |
23 | configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration); | 23 | configMember = new ConfigurationMember(filename, description, this.loadConfigurationOptions, this.handleIncomingConfiguration); |
24 | configMember.performConfigurationRetrieve(); | 24 | configMember.performConfigurationRetrieve(); |
25 | } | 25 | } |
26 | 26 | ||
27 | public void loadConfigurationOptions() | 27 | public void loadConfigurationOptions() |
28 | { | 28 | { |
29 | configMember.addConfigurationOption("default_startup_message", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Startup Message", "Welcome to OGS",false); | 29 | configMember.addConfigurationOption("default_startup_message", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Startup Message", "Welcome to OGS",false); |
30 | 30 | ||
31 | configMember.addConfigurationOption("default_grid_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Grid Server URI", "http://127.0.0.1:8001/", false); | 31 | configMember.addConfigurationOption("default_grid_server", ConfigurationOption.ConfigurationTypes.TYPE_STRING_NOT_EMPTY, "Default Grid Server URI", "http://127.0.0.1:8001/", false); |
32 | configMember.addConfigurationOption("grid_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to grid server", "null", false); | 32 | configMember.addConfigurationOption("grid_send_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to send to grid server", "null", false); |
33 | configMember.addConfigurationOption("grid_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from grid server", "null", false); | 33 | configMember.addConfigurationOption("grid_recv_key", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "Key to expect from grid server", "null", false); |
34 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); | 34 | configMember.addConfigurationOption("database_provider", ConfigurationOption.ConfigurationTypes.TYPE_STRING, "DLL for database provider", "OpenSim.Framework.Data.MySQL.dll", false); |
35 | 35 | ||
36 | } | 36 | } |
37 | 37 | ||
38 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) | 38 | public bool handleIncomingConfiguration(string configuration_key, object configuration_result) |
39 | { | 39 | { |
40 | switch (configuration_key) | 40 | switch (configuration_key) |
41 | { | 41 | { |
42 | case "default_startup_message": | 42 | case "default_startup_message": |
43 | this.DefaultStartupMsg = (string)configuration_result; | 43 | this.DefaultStartupMsg = (string)configuration_result; |
44 | break; | 44 | break; |
45 | case "default_grid_server": | 45 | case "default_grid_server": |
46 | this.GridServerURL = (string)configuration_result; | 46 | this.GridServerURL = (string)configuration_result; |
47 | break; | 47 | break; |
48 | case "grid_send_key": | 48 | case "grid_send_key": |
49 | this.GridSendKey = (string)configuration_result; | 49 | this.GridSendKey = (string)configuration_result; |
50 | break; | 50 | break; |
51 | case "grid_recv_key": | 51 | case "grid_recv_key": |
52 | this.GridRecvKey = (string)configuration_result; | 52 | this.GridRecvKey = (string)configuration_result; |
53 | break; | 53 | break; |
54 | case "database_provider": | 54 | case "database_provider": |
55 | this.DatabaseProvider = (string)configuration_result; | 55 | this.DatabaseProvider = (string)configuration_result; |
56 | break; | 56 | break; |
57 | } | 57 | } |
58 | 58 | ||
59 | return true; | 59 | return true; |
60 | } | 60 | } |
61 | } | 61 | } |
62 | } | 62 | } |
diff --git a/OpenSim/Framework/General/Types/LandData.cs b/OpenSim/Framework/General/Types/LandData.cs index 2ae4927..26cb8d5 100644 --- a/OpenSim/Framework/General/Types/LandData.cs +++ b/OpenSim/Framework/General/Types/LandData.cs | |||
@@ -1,120 +1,120 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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.Framework.Types | 30 | namespace OpenSim.Framework.Types |
31 | { | 31 | { |
32 | 32 | ||
33 | public class LandData | 33 | public class LandData |
34 | { | 34 | { |
35 | public byte[] landBitmapByteArray = new byte[512]; | 35 | public byte[] landBitmapByteArray = new byte[512]; |
36 | public string landName = "Your Parcel"; | 36 | public string landName = "Your Parcel"; |
37 | public string landDesc = ""; | 37 | public string landDesc = ""; |
38 | public LLUUID ownerID = new LLUUID(); | 38 | public LLUUID ownerID = new LLUUID(); |
39 | public bool isGroupOwned = false; | 39 | public bool isGroupOwned = false; |
40 | public LLVector3 AABBMin = new LLVector3(); | 40 | public LLVector3 AABBMin = new LLVector3(); |
41 | public LLVector3 AABBMax = new LLVector3(); | 41 | public LLVector3 AABBMax = new LLVector3(); |
42 | public int area = 0; | 42 | public int area = 0; |
43 | public uint auctionID = 0; //Unemplemented. If set to 0, not being auctioned | 43 | public uint auctionID = 0; //Unemplemented. If set to 0, not being auctioned |
44 | public LLUUID authBuyerID = new LLUUID(); //Unemplemented. Authorized Buyer's UUID | 44 | public LLUUID authBuyerID = new LLUUID(); //Unemplemented. Authorized Buyer's UUID |
45 | public Parcel.ParcelCategory category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category | 45 | public Parcel.ParcelCategory category = new Parcel.ParcelCategory(); //Unemplemented. Parcel's chosen category |
46 | public int claimDate = 0; //Unemplemented | 46 | public int claimDate = 0; //Unemplemented |
47 | public int claimPrice = 0; //Unemplemented | 47 | public int claimPrice = 0; //Unemplemented |
48 | public LLUUID groupID = new LLUUID(); //Unemplemented | 48 | public LLUUID groupID = new LLUUID(); //Unemplemented |
49 | public int groupPrims = 0; | 49 | public int groupPrims = 0; |
50 | public int otherPrims = 0; | 50 | public int otherPrims = 0; |
51 | public int ownerPrims = 0; | 51 | public int ownerPrims = 0; |
52 | public int selectedPrims = 0; | 52 | public int selectedPrims = 0; |
53 | public int simwidePrims = 0; | 53 | public int simwidePrims = 0; |
54 | public int simwideArea = 0; | 54 | public int simwideArea = 0; |
55 | public int salePrice = 0; //Unemeplemented. Parcels price. | 55 | public int salePrice = 0; //Unemeplemented. Parcels price. |
56 | public Parcel.ParcelStatus landStatus = Parcel.ParcelStatus.Leased; | 56 | public Parcel.ParcelStatus landStatus = Parcel.ParcelStatus.Leased; |
57 | public uint landFlags = (uint)Parcel.ParcelFlags.AllowFly | (uint)Parcel.ParcelFlags.AllowLandmark | (uint)Parcel.ParcelFlags.AllowAllObjectEntry | (uint)Parcel.ParcelFlags.AllowDeedToGroup | (uint)Parcel.ParcelFlags.AllowTerraform | (uint)Parcel.ParcelFlags.CreateObjects | (uint)Parcel.ParcelFlags.AllowOtherScripts; | 57 | public uint landFlags = (uint)Parcel.ParcelFlags.AllowFly | (uint)Parcel.ParcelFlags.AllowLandmark | (uint)Parcel.ParcelFlags.AllowAllObjectEntry | (uint)Parcel.ParcelFlags.AllowDeedToGroup | (uint)Parcel.ParcelFlags.AllowTerraform | (uint)Parcel.ParcelFlags.CreateObjects | (uint)Parcel.ParcelFlags.AllowOtherScripts; |
58 | public byte landingType = 0; | 58 | public byte landingType = 0; |
59 | public byte mediaAutoScale = 0; | 59 | public byte mediaAutoScale = 0; |
60 | public LLUUID mediaID = LLUUID.Zero; | 60 | public LLUUID mediaID = LLUUID.Zero; |
61 | public int localID = 0; | 61 | public int localID = 0; |
62 | public LLUUID globalID = new LLUUID(); | 62 | public LLUUID globalID = new LLUUID(); |
63 | 63 | ||
64 | public string mediaURL = ""; | 64 | public string mediaURL = ""; |
65 | public string musicURL = ""; | 65 | public string musicURL = ""; |
66 | public float passHours = 0; | 66 | public float passHours = 0; |
67 | public int passPrice = 0; | 67 | public int passPrice = 0; |
68 | public LLUUID snapshotID = LLUUID.Zero; | 68 | public LLUUID snapshotID = LLUUID.Zero; |
69 | public LLVector3 userLocation = new LLVector3(); | 69 | public LLVector3 userLocation = new LLVector3(); |
70 | public LLVector3 userLookAt = new LLVector3(); | 70 | public LLVector3 userLookAt = new LLVector3(); |
71 | 71 | ||
72 | public LandData() | 72 | public LandData() |
73 | { | 73 | { |
74 | globalID = LLUUID.Random(); | 74 | globalID = LLUUID.Random(); |
75 | } | 75 | } |
76 | 76 | ||
77 | public LandData Copy() | 77 | public LandData Copy() |
78 | { | 78 | { |
79 | LandData landData = new LandData(); | 79 | LandData landData = new LandData(); |
80 | 80 | ||
81 | landData.AABBMax = this.AABBMax; | 81 | landData.AABBMax = this.AABBMax; |
82 | landData.AABBMin = this.AABBMin; | 82 | landData.AABBMin = this.AABBMin; |
83 | landData.area = this.area; | 83 | landData.area = this.area; |
84 | landData.auctionID = this.auctionID; | 84 | landData.auctionID = this.auctionID; |
85 | landData.authBuyerID = this.authBuyerID; | 85 | landData.authBuyerID = this.authBuyerID; |
86 | landData.category = this.category; | 86 | landData.category = this.category; |
87 | landData.claimDate = this.claimDate; | 87 | landData.claimDate = this.claimDate; |
88 | landData.claimPrice = this.claimPrice; | 88 | landData.claimPrice = this.claimPrice; |
89 | landData.globalID = this.globalID; | 89 | landData.globalID = this.globalID; |
90 | landData.groupID = this.groupID; | 90 | landData.groupID = this.groupID; |
91 | landData.groupPrims = this.groupPrims; | 91 | landData.groupPrims = this.groupPrims; |
92 | landData.otherPrims = this.otherPrims; | 92 | landData.otherPrims = this.otherPrims; |
93 | landData.ownerPrims = this.ownerPrims; | 93 | landData.ownerPrims = this.ownerPrims; |
94 | landData.selectedPrims = this.selectedPrims; | 94 | landData.selectedPrims = this.selectedPrims; |
95 | landData.isGroupOwned = this.isGroupOwned; | 95 | landData.isGroupOwned = this.isGroupOwned; |
96 | landData.localID = this.localID; | 96 | landData.localID = this.localID; |
97 | landData.landingType = this.landingType; | 97 | landData.landingType = this.landingType; |
98 | landData.mediaAutoScale = this.mediaAutoScale; | 98 | landData.mediaAutoScale = this.mediaAutoScale; |
99 | landData.mediaID = this.mediaID; | 99 | landData.mediaID = this.mediaID; |
100 | landData.mediaURL = this.mediaURL; | 100 | landData.mediaURL = this.mediaURL; |
101 | landData.musicURL = this.musicURL; | 101 | landData.musicURL = this.musicURL; |
102 | landData.ownerID = this.ownerID; | 102 | landData.ownerID = this.ownerID; |
103 | landData.landBitmapByteArray = (byte[])this.landBitmapByteArray.Clone(); | 103 | landData.landBitmapByteArray = (byte[])this.landBitmapByteArray.Clone(); |
104 | landData.landDesc = this.landDesc; | 104 | landData.landDesc = this.landDesc; |
105 | landData.landFlags = this.landFlags; | 105 | landData.landFlags = this.landFlags; |
106 | landData.landName = this.landName; | 106 | landData.landName = this.landName; |
107 | landData.landStatus = this.landStatus; | 107 | landData.landStatus = this.landStatus; |
108 | landData.passHours = this.passHours; | 108 | landData.passHours = this.passHours; |
109 | landData.passPrice = this.passPrice; | 109 | landData.passPrice = this.passPrice; |
110 | landData.salePrice = this.salePrice; | 110 | landData.salePrice = this.salePrice; |
111 | landData.snapshotID = this.snapshotID; | 111 | landData.snapshotID = this.snapshotID; |
112 | landData.userLocation = this.userLocation; | 112 | landData.userLocation = this.userLocation; |
113 | landData.userLookAt = this.userLookAt; | 113 | landData.userLookAt = this.userLookAt; |
114 | 114 | ||
115 | return landData; | 115 | return landData; |
116 | 116 | ||
117 | } | 117 | } |
118 | } | 118 | } |
119 | 119 | ||
120 | } | 120 | } |
diff --git a/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs b/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs index 49e2e6f..9f681c2 100644 --- a/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs +++ b/OpenSim/Framework/InventoryServiceBase/InventoryServiceBase.cs | |||
@@ -1,136 +1,136 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Reflection; | 3 | using System.Reflection; |
4 | using System.Text; | 4 | using System.Text; |
5 | using libsecondlife; | 5 | using libsecondlife; |
6 | using OpenSim.Framework.Console; | 6 | using OpenSim.Framework.Console; |
7 | using OpenSim.Framework.Interfaces; | 7 | using OpenSim.Framework.Interfaces; |
8 | using OpenSim.Framework.Data; | 8 | using OpenSim.Framework.Data; |
9 | 9 | ||
10 | namespace OpenSim.Framework.InventoryServiceBase | 10 | namespace OpenSim.Framework.InventoryServiceBase |
11 | { | 11 | { |
12 | public class InventoryServiceBase | 12 | public class InventoryServiceBase |
13 | { | 13 | { |
14 | protected Dictionary<string, IInventoryData> m_plugins = new Dictionary<string, IInventoryData>(); | 14 | protected Dictionary<string, IInventoryData> m_plugins = new Dictionary<string, IInventoryData>(); |
15 | protected IAssetServer m_assetServer; | 15 | protected IAssetServer m_assetServer; |
16 | 16 | ||
17 | public InventoryServiceBase(IAssetServer assetServer) | 17 | public InventoryServiceBase(IAssetServer assetServer) |
18 | { | 18 | { |
19 | m_assetServer = assetServer; | 19 | m_assetServer = assetServer; |
20 | } | 20 | } |
21 | 21 | ||
22 | /// <summary> | 22 | /// <summary> |
23 | /// Adds a new user server plugin - plugins will be requested in the order they were loaded. | 23 | /// Adds a new user server plugin - plugins will be requested in the order they were loaded. |
24 | /// </summary> | 24 | /// </summary> |
25 | /// <param name="FileName">The filename to the user server plugin DLL</param> | 25 | /// <param name="FileName">The filename to the user server plugin DLL</param> |
26 | public void AddPlugin(string FileName) | 26 | public void AddPlugin(string FileName) |
27 | { | 27 | { |
28 | MainLog.Instance.Verbose("Inventorytorage: Attempting to load " + FileName); | 28 | MainLog.Instance.Verbose("Inventorytorage: Attempting to load " + FileName); |
29 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); | 29 | Assembly pluginAssembly = Assembly.LoadFrom(FileName); |
30 | 30 | ||
31 | foreach (Type pluginType in pluginAssembly.GetTypes()) | 31 | foreach (Type pluginType in pluginAssembly.GetTypes()) |
32 | { | 32 | { |
33 | if (!pluginType.IsAbstract) | 33 | if (!pluginType.IsAbstract) |
34 | { | 34 | { |
35 | Type typeInterface = pluginType.GetInterface("IInventoryData", true); | 35 | Type typeInterface = pluginType.GetInterface("IInventoryData", true); |
36 | 36 | ||
37 | if (typeInterface != null) | 37 | if (typeInterface != null) |
38 | { | 38 | { |
39 | IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); | 39 | IInventoryData plug = (IInventoryData)Activator.CreateInstance(pluginAssembly.GetType(pluginType.ToString())); |
40 | plug.Initialise(); | 40 | plug.Initialise(); |
41 | this.m_plugins.Add(plug.getName(), plug); | 41 | this.m_plugins.Add(plug.getName(), plug); |
42 | MainLog.Instance.Verbose("Inventorystorage: Added IInventoryData Interface"); | 42 | MainLog.Instance.Verbose("Inventorystorage: Added IInventoryData Interface"); |
43 | } | 43 | } |
44 | 44 | ||
45 | typeInterface = null; | 45 | typeInterface = null; |
46 | } | 46 | } |
47 | } | 47 | } |
48 | 48 | ||
49 | pluginAssembly = null; | 49 | pluginAssembly = null; |
50 | } | 50 | } |
51 | 51 | ||
52 | /// <summary> | 52 | /// <summary> |
53 | /// Returns the root folder plus any folders in root (so down one level in the Inventory folders tree) | 53 | /// Returns the root folder plus any folders in root (so down one level in the Inventory folders tree) |
54 | /// </summary> | 54 | /// </summary> |
55 | /// <param name="userID"></param> | 55 | /// <param name="userID"></param> |
56 | /// <returns></returns> | 56 | /// <returns></returns> |
57 | public List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID) | 57 | public List<InventoryFolderBase> RequestFirstLevelFolders(LLUUID userID) |
58 | { | 58 | { |
59 | List<InventoryFolderBase> inventoryList = new List<InventoryFolderBase>(); | 59 | List<InventoryFolderBase> inventoryList = new List<InventoryFolderBase>(); |
60 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | 60 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) |
61 | { | 61 | { |
62 | InventoryFolderBase rootFolder = plugin.Value.getUserRootFolder(userID); | 62 | InventoryFolderBase rootFolder = plugin.Value.getUserRootFolder(userID); |
63 | if (rootFolder != null) | 63 | if (rootFolder != null) |
64 | { | 64 | { |
65 | inventoryList = plugin.Value.getInventoryFolders(rootFolder.folderID); | 65 | inventoryList = plugin.Value.getInventoryFolders(rootFolder.folderID); |
66 | inventoryList.Insert(0, rootFolder); | 66 | inventoryList.Insert(0, rootFolder); |
67 | return inventoryList; | 67 | return inventoryList; |
68 | } | 68 | } |
69 | } | 69 | } |
70 | return inventoryList; | 70 | return inventoryList; |
71 | } | 71 | } |
72 | 72 | ||
73 | /// <summary> | 73 | /// <summary> |
74 | /// | 74 | /// |
75 | /// </summary> | 75 | /// </summary> |
76 | public InventoryFolderBase RequestUsersRoot(LLUUID userID) | 76 | public InventoryFolderBase RequestUsersRoot(LLUUID userID) |
77 | { | 77 | { |
78 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | 78 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) |
79 | { | 79 | { |
80 | return plugin.Value.getUserRootFolder(userID); | 80 | return plugin.Value.getUserRootFolder(userID); |
81 | } | 81 | } |
82 | return null; | 82 | return null; |
83 | } | 83 | } |
84 | 84 | ||
85 | /// <summary> | 85 | /// <summary> |
86 | /// | 86 | /// |
87 | /// </summary> | 87 | /// </summary> |
88 | /// <param name="parentFolderID"></param> | 88 | /// <param name="parentFolderID"></param> |
89 | /// <returns></returns> | 89 | /// <returns></returns> |
90 | public List<InventoryFolderBase> RequestSubFolders(LLUUID parentFolderID) | 90 | public List<InventoryFolderBase> RequestSubFolders(LLUUID parentFolderID) |
91 | { | 91 | { |
92 | List<InventoryFolderBase> inventoryList = new List<InventoryFolderBase>(); | 92 | List<InventoryFolderBase> inventoryList = new List<InventoryFolderBase>(); |
93 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | 93 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) |
94 | { | 94 | { |
95 | return plugin.Value.getInventoryFolders(parentFolderID); | 95 | return plugin.Value.getInventoryFolders(parentFolderID); |
96 | } | 96 | } |
97 | return inventoryList; | 97 | return inventoryList; |
98 | } | 98 | } |
99 | 99 | ||
100 | public List<InventoryItemBase> RequestFolderItems(LLUUID folderID) | 100 | public List<InventoryItemBase> RequestFolderItems(LLUUID folderID) |
101 | { | 101 | { |
102 | List<InventoryItemBase> itemsList = new List<InventoryItemBase>(); | 102 | List<InventoryItemBase> itemsList = new List<InventoryItemBase>(); |
103 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) | 103 | foreach (KeyValuePair<string, IInventoryData> plugin in m_plugins) |
104 | { | 104 | { |
105 | itemsList = plugin.Value.getInventoryInFolder(folderID); | 105 | itemsList = plugin.Value.getInventoryInFolder(folderID); |
106 | return itemsList; | 106 | return itemsList; |
107 | } | 107 | } |
108 | return itemsList; | 108 | return itemsList; |
109 | } | 109 | } |
110 | 110 | ||
111 | /// <summary> | 111 | /// <summary> |
112 | /// | 112 | /// |
113 | /// </summary> | 113 | /// </summary> |
114 | /// <param name="inventory"></param> | 114 | /// <param name="inventory"></param> |
115 | public void AddNewInventorySet(UsersInventory inventory) | 115 | public void AddNewInventorySet(UsersInventory inventory) |
116 | { | 116 | { |
117 | 117 | ||
118 | } | 118 | } |
119 | 119 | ||
120 | public class UsersInventory | 120 | public class UsersInventory |
121 | { | 121 | { |
122 | public Dictionary<LLUUID, InventoryFolderBase> Folders = new Dictionary<LLUUID, InventoryFolderBase>(); | 122 | public Dictionary<LLUUID, InventoryFolderBase> Folders = new Dictionary<LLUUID, InventoryFolderBase>(); |
123 | public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>(); | 123 | public Dictionary<LLUUID, InventoryItemBase> Items = new Dictionary<LLUUID, InventoryItemBase>(); |
124 | 124 | ||
125 | public UsersInventory() | 125 | public UsersInventory() |
126 | { | 126 | { |
127 | 127 | ||
128 | } | 128 | } |
129 | 129 | ||
130 | protected virtual void CreateNewInventorySet() | 130 | protected virtual void CreateNewInventorySet() |
131 | { | 131 | { |
132 | 132 | ||
133 | } | 133 | } |
134 | } | 134 | } |
135 | } | 135 | } |
136 | } | 136 | } |
diff --git a/OpenSim/Framework/InventoryServiceBase/Properties/AssemblyInfo.cs b/OpenSim/Framework/InventoryServiceBase/Properties/AssemblyInfo.cs index 35cca07..daf20b2 100644 --- a/OpenSim/Framework/InventoryServiceBase/Properties/AssemblyInfo.cs +++ b/OpenSim/Framework/InventoryServiceBase/Properties/AssemblyInfo.cs | |||
@@ -1,35 +1,35 @@ | |||
1 | using System.Reflection; | 1 | using System.Reflection; |
2 | using System.Runtime.CompilerServices; | 2 | using System.Runtime.CompilerServices; |
3 | using System.Runtime.InteropServices; | 3 | using System.Runtime.InteropServices; |
4 | 4 | ||
5 | // General Information about an assembly is controlled through the following | 5 | // General Information about an assembly is controlled through the following |
6 | // set of attributes. Change these attribute values to modify the information | 6 | // set of attributes. Change these attribute values to modify the information |
7 | // associated with an assembly. | 7 | // associated with an assembly. |
8 | [assembly: AssemblyTitle("InventoryServiceBase")] | 8 | [assembly: AssemblyTitle("InventoryServiceBase")] |
9 | [assembly: AssemblyDescription("")] | 9 | [assembly: AssemblyDescription("")] |
10 | [assembly: AssemblyConfiguration("")] | 10 | [assembly: AssemblyConfiguration("")] |
11 | [assembly: AssemblyCompany("")] | 11 | [assembly: AssemblyCompany("")] |
12 | [assembly: AssemblyProduct("InventoryServiceBase")] | 12 | [assembly: AssemblyProduct("InventoryServiceBase")] |
13 | [assembly: AssemblyCopyright("Copyright © 2007")] | 13 | [assembly: AssemblyCopyright("Copyright © 2007")] |
14 | [assembly: AssemblyTrademark("")] | 14 | [assembly: AssemblyTrademark("")] |
15 | [assembly: AssemblyCulture("")] | 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 | [assembly: ComVisible(false)] |
21 | 21 | ||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM |
23 | [assembly: Guid("7e1fbd0b-4a25-4804-a01f-89b04eb5b349")] | 23 | [assembly: Guid("7e1fbd0b-4a25-4804-a01f-89b04eb5b349")] |
24 | 24 | ||
25 | // Version information for an assembly consists of the following four values: | 25 | // Version information for an assembly consists of the following four values: |
26 | // | 26 | // |
27 | // Major Version | 27 | // Major Version |
28 | // Minor Version | 28 | // Minor Version |
29 | // Build Number | 29 | // Build Number |
30 | // Revision | 30 | // Revision |
31 | // | 31 | // |
32 | // You can specify all the values or you can default the Revision and Build Numbers | 32 | // You can specify all the values or you can default the Revision and Build Numbers |
33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
34 | [assembly: AssemblyVersion("1.0.0.0")] | 34 | [assembly: AssemblyVersion("1.0.0.0")] |
35 | [assembly: AssemblyFileVersion("1.0.0.0")] | 35 | [assembly: AssemblyFileVersion("1.0.0.0")] |
diff --git a/OpenSim/Region/Environment/LandManagement/Land.cs b/OpenSim/Region/Environment/LandManagement/Land.cs index 625b176..97f8276 100644 --- a/OpenSim/Region/Environment/LandManagement/Land.cs +++ b/OpenSim/Region/Environment/LandManagement/Land.cs | |||
@@ -1,602 +1,602 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using libsecondlife; | 3 | using libsecondlife; |
4 | using libsecondlife.Packets; | 4 | using libsecondlife.Packets; |
5 | using OpenSim.Framework.Interfaces; | 5 | using OpenSim.Framework.Interfaces; |
6 | using OpenSim.Framework.Types; | 6 | using OpenSim.Framework.Types; |
7 | using OpenSim.Region.Environment.Scenes; | 7 | using OpenSim.Region.Environment.Scenes; |
8 | 8 | ||
9 | namespace OpenSim.Region.Environment.LandManagement | 9 | namespace OpenSim.Region.Environment.LandManagement |
10 | { | 10 | { |
11 | #region Parcel Class | 11 | #region Parcel Class |
12 | /// <summary> | 12 | /// <summary> |
13 | /// Keeps track of a specific piece of land's information | 13 | /// Keeps track of a specific piece of land's information |
14 | /// </summary> | 14 | /// </summary> |
15 | public class Land | 15 | public class Land |
16 | { | 16 | { |
17 | #region Member Variables | 17 | #region Member Variables |
18 | public LandData landData = new LandData(); | 18 | public LandData landData = new LandData(); |
19 | public List<SceneObject> primsOverMe = new List<SceneObject>(); | 19 | public List<SceneObject> primsOverMe = new List<SceneObject>(); |
20 | 20 | ||
21 | public Scene m_scene; | 21 | public Scene m_scene; |
22 | 22 | ||
23 | private bool[,] landBitmap = new bool[64, 64]; | 23 | private bool[,] landBitmap = new bool[64, 64]; |
24 | 24 | ||
25 | #endregion | 25 | #endregion |
26 | 26 | ||
27 | 27 | ||
28 | #region Constructors | 28 | #region Constructors |
29 | public Land(LLUUID owner_id, bool is_group_owned, Scene scene) | 29 | public Land(LLUUID owner_id, bool is_group_owned, Scene scene) |
30 | { | 30 | { |
31 | m_scene = scene; | 31 | m_scene = scene; |
32 | landData.ownerID = owner_id; | 32 | landData.ownerID = owner_id; |
33 | landData.isGroupOwned = is_group_owned; | 33 | landData.isGroupOwned = is_group_owned; |
34 | 34 | ||
35 | } | 35 | } |
36 | #endregion | 36 | #endregion |
37 | 37 | ||
38 | 38 | ||
39 | #region Member Functions | 39 | #region Member Functions |
40 | 40 | ||
41 | #region General Functions | 41 | #region General Functions |
42 | /// <summary> | 42 | /// <summary> |
43 | /// Checks to see if this land object contains a point | 43 | /// Checks to see if this land object contains a point |
44 | /// </summary> | 44 | /// </summary> |
45 | /// <param name="x"></param> | 45 | /// <param name="x"></param> |
46 | /// <param name="y"></param> | 46 | /// <param name="y"></param> |
47 | /// <returns>Returns true if the piece of land contains the specified point</returns> | 47 | /// <returns>Returns true if the piece of land contains the specified point</returns> |
48 | public bool containsPoint(int x, int y) | 48 | public bool containsPoint(int x, int y) |
49 | { | 49 | { |
50 | if (x >= 0 && y >= 0 && x <= 256 && x <= 256) | 50 | if (x >= 0 && y >= 0 && x <= 256 && x <= 256) |
51 | { | 51 | { |
52 | return (landBitmap[x / 4, y / 4] == true); | 52 | return (landBitmap[x / 4, y / 4] == true); |
53 | } | 53 | } |
54 | else | 54 | else |
55 | { | 55 | { |
56 | return false; | 56 | return false; |
57 | } | 57 | } |
58 | } | 58 | } |
59 | 59 | ||
60 | public Land Copy() | 60 | public Land Copy() |
61 | { | 61 | { |
62 | Land newLand = new Land(this.landData.ownerID, this.landData.isGroupOwned, m_scene); | 62 | Land newLand = new Land(this.landData.ownerID, this.landData.isGroupOwned, m_scene); |
63 | 63 | ||
64 | //Place all new variables here! | 64 | //Place all new variables here! |
65 | newLand.landBitmap = (bool[,])(this.landBitmap.Clone()); | 65 | newLand.landBitmap = (bool[,])(this.landBitmap.Clone()); |
66 | newLand.landData = landData.Copy(); | 66 | newLand.landData = landData.Copy(); |
67 | 67 | ||
68 | return newLand; | 68 | return newLand; |
69 | } | 69 | } |
70 | 70 | ||
71 | #endregion | 71 | #endregion |
72 | 72 | ||
73 | 73 | ||
74 | #region Packet Request Handling | 74 | #region Packet Request Handling |
75 | /// <summary> | 75 | /// <summary> |
76 | /// Sends land properties as requested | 76 | /// Sends land properties as requested |
77 | /// </summary> | 77 | /// </summary> |
78 | /// <param name="sequence_id">ID sent by client for them to keep track of</param> | 78 | /// <param name="sequence_id">ID sent by client for them to keep track of</param> |
79 | /// <param name="snap_selection">Bool sent by client for them to use</param> | 79 | /// <param name="snap_selection">Bool sent by client for them to use</param> |
80 | /// <param name="remote_client">Object representing the client</param> | 80 | /// <param name="remote_client">Object representing the client</param> |
81 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) | 81 | public void sendLandProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client) |
82 | { | 82 | { |
83 | 83 | ||
84 | ParcelPropertiesPacket updatePacket = new ParcelPropertiesPacket(); | 84 | ParcelPropertiesPacket updatePacket = new ParcelPropertiesPacket(); |
85 | updatePacket.ParcelData.AABBMax = landData.AABBMax; | 85 | updatePacket.ParcelData.AABBMax = landData.AABBMax; |
86 | updatePacket.ParcelData.AABBMin = landData.AABBMin; | 86 | updatePacket.ParcelData.AABBMin = landData.AABBMin; |
87 | updatePacket.ParcelData.Area = landData.area; | 87 | updatePacket.ParcelData.Area = landData.area; |
88 | updatePacket.ParcelData.AuctionID = landData.auctionID; | 88 | updatePacket.ParcelData.AuctionID = landData.auctionID; |
89 | updatePacket.ParcelData.AuthBuyerID = landData.authBuyerID; //unemplemented | 89 | updatePacket.ParcelData.AuthBuyerID = landData.authBuyerID; //unemplemented |
90 | 90 | ||
91 | updatePacket.ParcelData.Bitmap = landData.landBitmapByteArray; | 91 | updatePacket.ParcelData.Bitmap = landData.landBitmapByteArray; |
92 | 92 | ||
93 | updatePacket.ParcelData.Desc = Helpers.StringToField(landData.landDesc); | 93 | updatePacket.ParcelData.Desc = Helpers.StringToField(landData.landDesc); |
94 | updatePacket.ParcelData.Category = (byte)landData.category; | 94 | updatePacket.ParcelData.Category = (byte)landData.category; |
95 | updatePacket.ParcelData.ClaimDate = landData.claimDate; | 95 | updatePacket.ParcelData.ClaimDate = landData.claimDate; |
96 | updatePacket.ParcelData.ClaimPrice = landData.claimPrice; | 96 | updatePacket.ParcelData.ClaimPrice = landData.claimPrice; |
97 | updatePacket.ParcelData.GroupID = landData.groupID; | 97 | updatePacket.ParcelData.GroupID = landData.groupID; |
98 | updatePacket.ParcelData.GroupPrims = landData.groupPrims; | 98 | updatePacket.ParcelData.GroupPrims = landData.groupPrims; |
99 | updatePacket.ParcelData.IsGroupOwned = landData.isGroupOwned; | 99 | updatePacket.ParcelData.IsGroupOwned = landData.isGroupOwned; |
100 | updatePacket.ParcelData.LandingType = (byte)landData.landingType; | 100 | updatePacket.ParcelData.LandingType = (byte)landData.landingType; |
101 | updatePacket.ParcelData.LocalID = landData.localID; | 101 | updatePacket.ParcelData.LocalID = landData.localID; |
102 | if (landData.area > 0) | 102 | if (landData.area > 0) |
103 | { | 103 | { |
104 | updatePacket.ParcelData.MaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor))); | 104 | updatePacket.ParcelData.MaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.area) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor))); |
105 | } | 105 | } |
106 | else | 106 | else |
107 | { | 107 | { |
108 | updatePacket.ParcelData.MaxPrims = 0; | 108 | updatePacket.ParcelData.MaxPrims = 0; |
109 | } | 109 | } |
110 | updatePacket.ParcelData.MediaAutoScale = landData.mediaAutoScale; | 110 | updatePacket.ParcelData.MediaAutoScale = landData.mediaAutoScale; |
111 | updatePacket.ParcelData.MediaID = landData.mediaID; | 111 | updatePacket.ParcelData.MediaID = landData.mediaID; |
112 | updatePacket.ParcelData.MediaURL = Helpers.StringToField(landData.mediaURL); | 112 | updatePacket.ParcelData.MediaURL = Helpers.StringToField(landData.mediaURL); |
113 | updatePacket.ParcelData.MusicURL = Helpers.StringToField(landData.musicURL); | 113 | updatePacket.ParcelData.MusicURL = Helpers.StringToField(landData.musicURL); |
114 | updatePacket.ParcelData.Name = Helpers.StringToField(landData.landName); | 114 | updatePacket.ParcelData.Name = Helpers.StringToField(landData.landName); |
115 | updatePacket.ParcelData.OtherCleanTime = 0; //unemplemented | 115 | updatePacket.ParcelData.OtherCleanTime = 0; //unemplemented |
116 | updatePacket.ParcelData.OtherCount = 0; //unemplemented | 116 | updatePacket.ParcelData.OtherCount = 0; //unemplemented |
117 | updatePacket.ParcelData.OtherPrims = landData.otherPrims; | 117 | updatePacket.ParcelData.OtherPrims = landData.otherPrims; |
118 | updatePacket.ParcelData.OwnerID = landData.ownerID; | 118 | updatePacket.ParcelData.OwnerID = landData.ownerID; |
119 | updatePacket.ParcelData.OwnerPrims = landData.ownerPrims; | 119 | updatePacket.ParcelData.OwnerPrims = landData.ownerPrims; |
120 | updatePacket.ParcelData.ParcelFlags = landData.landFlags; | 120 | updatePacket.ParcelData.ParcelFlags = landData.landFlags; |
121 | updatePacket.ParcelData.ParcelPrimBonus = m_scene.RegionInfo.estateSettings.objectBonusFactor; | 121 | updatePacket.ParcelData.ParcelPrimBonus = m_scene.RegionInfo.estateSettings.objectBonusFactor; |
122 | updatePacket.ParcelData.PassHours = landData.passHours; | 122 | updatePacket.ParcelData.PassHours = landData.passHours; |
123 | updatePacket.ParcelData.PassPrice = landData.passPrice; | 123 | updatePacket.ParcelData.PassPrice = landData.passPrice; |
124 | updatePacket.ParcelData.PublicCount = 0; //unemplemented | 124 | updatePacket.ParcelData.PublicCount = 0; //unemplemented |
125 | 125 | ||
126 | uint regionFlags = (uint)m_scene.RegionInfo.estateSettings.regionFlags; | 126 | uint regionFlags = (uint)m_scene.RegionInfo.estateSettings.regionFlags; |
127 | updatePacket.ParcelData.RegionDenyAnonymous = ((regionFlags & (uint)Simulator.RegionFlags.DenyAnonymous) > 0); | 127 | updatePacket.ParcelData.RegionDenyAnonymous = ((regionFlags & (uint)Simulator.RegionFlags.DenyAnonymous) > 0); |
128 | updatePacket.ParcelData.RegionDenyIdentified = ((regionFlags & (uint)Simulator.RegionFlags.DenyIdentified) > 0); | 128 | updatePacket.ParcelData.RegionDenyIdentified = ((regionFlags & (uint)Simulator.RegionFlags.DenyIdentified) > 0); |
129 | updatePacket.ParcelData.RegionDenyTransacted = ((regionFlags & (uint)Simulator.RegionFlags.DenyTransacted) > 0); | 129 | updatePacket.ParcelData.RegionDenyTransacted = ((regionFlags & (uint)Simulator.RegionFlags.DenyTransacted) > 0); |
130 | updatePacket.ParcelData.RegionPushOverride = ((regionFlags & (uint)Simulator.RegionFlags.RestrictPushObject) > 0); | 130 | updatePacket.ParcelData.RegionPushOverride = ((regionFlags & (uint)Simulator.RegionFlags.RestrictPushObject) > 0); |
131 | 131 | ||
132 | updatePacket.ParcelData.RentPrice = 0; | 132 | updatePacket.ParcelData.RentPrice = 0; |
133 | updatePacket.ParcelData.RequestResult = request_result; | 133 | updatePacket.ParcelData.RequestResult = request_result; |
134 | updatePacket.ParcelData.SalePrice = landData.salePrice; | 134 | updatePacket.ParcelData.SalePrice = landData.salePrice; |
135 | updatePacket.ParcelData.SelectedPrims = landData.selectedPrims; | 135 | updatePacket.ParcelData.SelectedPrims = landData.selectedPrims; |
136 | updatePacket.ParcelData.SelfCount = 0;//unemplemented | 136 | updatePacket.ParcelData.SelfCount = 0;//unemplemented |
137 | updatePacket.ParcelData.SequenceID = sequence_id; | 137 | updatePacket.ParcelData.SequenceID = sequence_id; |
138 | if (landData.simwideArea > 0) | 138 | if (landData.simwideArea > 0) |
139 | { | 139 | { |
140 | updatePacket.ParcelData.SimWideMaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.simwideArea) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor))); | 140 | updatePacket.ParcelData.SimWideMaxPrims = Convert.ToInt32(Math.Round((Convert.ToDecimal(landData.simwideArea) / Convert.ToDecimal(65536)) * 15000 * Convert.ToDecimal(m_scene.RegionInfo.estateSettings.objectBonusFactor))); |
141 | } | 141 | } |
142 | else | 142 | else |
143 | { | 143 | { |
144 | updatePacket.ParcelData.SimWideMaxPrims = 0; | 144 | updatePacket.ParcelData.SimWideMaxPrims = 0; |
145 | } | 145 | } |
146 | updatePacket.ParcelData.SimWideTotalPrims = landData.simwidePrims; | 146 | updatePacket.ParcelData.SimWideTotalPrims = landData.simwidePrims; |
147 | updatePacket.ParcelData.SnapSelection = snap_selection; | 147 | updatePacket.ParcelData.SnapSelection = snap_selection; |
148 | updatePacket.ParcelData.SnapshotID = landData.snapshotID; | 148 | updatePacket.ParcelData.SnapshotID = landData.snapshotID; |
149 | updatePacket.ParcelData.Status = (byte)landData.landStatus; | 149 | updatePacket.ParcelData.Status = (byte)landData.landStatus; |
150 | updatePacket.ParcelData.TotalPrims = landData.ownerPrims + landData.groupPrims + landData.otherPrims + landData.selectedPrims; | 150 | updatePacket.ParcelData.TotalPrims = landData.ownerPrims + landData.groupPrims + landData.otherPrims + landData.selectedPrims; |
151 | updatePacket.ParcelData.UserLocation = landData.userLocation; | 151 | updatePacket.ParcelData.UserLocation = landData.userLocation; |
152 | updatePacket.ParcelData.UserLookAt = landData.userLookAt; | 152 | updatePacket.ParcelData.UserLookAt = landData.userLookAt; |
153 | remote_client.OutPacket((Packet)updatePacket); | 153 | remote_client.OutPacket((Packet)updatePacket); |
154 | } | 154 | } |
155 | 155 | ||
156 | public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) | 156 | public void updateLandProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) |
157 | { | 157 | { |
158 | if (remote_client.AgentId == landData.ownerID) | 158 | if (remote_client.AgentId == landData.ownerID) |
159 | { | 159 | { |
160 | //Needs later group support | 160 | //Needs later group support |
161 | landData.authBuyerID = packet.ParcelData.AuthBuyerID; | 161 | landData.authBuyerID = packet.ParcelData.AuthBuyerID; |
162 | landData.category = (libsecondlife.Parcel.ParcelCategory)packet.ParcelData.Category; | 162 | landData.category = (libsecondlife.Parcel.ParcelCategory)packet.ParcelData.Category; |
163 | landData.landDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc); | 163 | landData.landDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc); |
164 | landData.groupID = packet.ParcelData.GroupID; | 164 | landData.groupID = packet.ParcelData.GroupID; |
165 | landData.landingType = packet.ParcelData.LandingType; | 165 | landData.landingType = packet.ParcelData.LandingType; |
166 | landData.mediaAutoScale = packet.ParcelData.MediaAutoScale; | 166 | landData.mediaAutoScale = packet.ParcelData.MediaAutoScale; |
167 | landData.mediaID = packet.ParcelData.MediaID; | 167 | landData.mediaID = packet.ParcelData.MediaID; |
168 | landData.mediaURL = Helpers.FieldToUTF8String(packet.ParcelData.MediaURL); | 168 | landData.mediaURL = Helpers.FieldToUTF8String(packet.ParcelData.MediaURL); |
169 | landData.musicURL = Helpers.FieldToUTF8String(packet.ParcelData.MusicURL); | 169 | landData.musicURL = Helpers.FieldToUTF8String(packet.ParcelData.MusicURL); |
170 | landData.landName = Helpers.FieldToUTF8String(packet.ParcelData.Name); | 170 | landData.landName = Helpers.FieldToUTF8String(packet.ParcelData.Name); |
171 | landData.landFlags = packet.ParcelData.ParcelFlags; | 171 | landData.landFlags = packet.ParcelData.ParcelFlags; |
172 | landData.passHours = packet.ParcelData.PassHours; | 172 | landData.passHours = packet.ParcelData.PassHours; |
173 | landData.passPrice = packet.ParcelData.PassPrice; | 173 | landData.passPrice = packet.ParcelData.PassPrice; |
174 | landData.salePrice = packet.ParcelData.SalePrice; | 174 | landData.salePrice = packet.ParcelData.SalePrice; |
175 | landData.snapshotID = packet.ParcelData.SnapshotID; | 175 | landData.snapshotID = packet.ParcelData.SnapshotID; |
176 | landData.userLocation = packet.ParcelData.UserLocation; | 176 | landData.userLocation = packet.ParcelData.UserLocation; |
177 | landData.userLookAt = packet.ParcelData.UserLookAt; | 177 | landData.userLookAt = packet.ParcelData.UserLookAt; |
178 | sendLandUpdateToAvatarsOverMe(); | 178 | sendLandUpdateToAvatarsOverMe(); |
179 | 179 | ||
180 | 180 | ||
181 | } | 181 | } |
182 | } | 182 | } |
183 | 183 | ||
184 | public void sendLandUpdateToAvatarsOverMe() | 184 | public void sendLandUpdateToAvatarsOverMe() |
185 | { | 185 | { |
186 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); | 186 | List<ScenePresence> avatars = m_scene.RequestAvatarList(); |
187 | for (int i = 0; i < avatars.Count; i++) | 187 | for (int i = 0; i < avatars.Count; i++) |
188 | { | 188 | { |
189 | Land over = m_scene.LandManager.getLandObject((int)Math.Round(avatars[i].Pos.X), (int)Math.Round(avatars[i].Pos.Y)); | 189 | Land over = m_scene.LandManager.getLandObject((int)Math.Round(avatars[i].Pos.X), (int)Math.Round(avatars[i].Pos.Y)); |
190 | if (over.landData.localID == this.landData.localID) | 190 | if (over.landData.localID == this.landData.localID) |
191 | { | 191 | { |
192 | sendLandProperties(0, false, 0, avatars[i].ControllingClient); | 192 | sendLandProperties(0, false, 0, avatars[i].ControllingClient); |
193 | } | 193 | } |
194 | } | 194 | } |
195 | } | 195 | } |
196 | #endregion | 196 | #endregion |
197 | 197 | ||
198 | 198 | ||
199 | #region Update Functions | 199 | #region Update Functions |
200 | /// <summary> | 200 | /// <summary> |
201 | /// Updates the AABBMin and AABBMax values after area/shape modification of the land object | 201 | /// Updates the AABBMin and AABBMax values after area/shape modification of the land object |
202 | /// </summary> | 202 | /// </summary> |
203 | private void updateAABBAndAreaValues() | 203 | private void updateAABBAndAreaValues() |
204 | { | 204 | { |
205 | int min_x = 64; | 205 | int min_x = 64; |
206 | int min_y = 64; | 206 | int min_y = 64; |
207 | int max_x = 0; | 207 | int max_x = 0; |
208 | int max_y = 0; | 208 | int max_y = 0; |
209 | int tempArea = 0; | 209 | int tempArea = 0; |
210 | int x, y; | 210 | int x, y; |
211 | for (x = 0; x < 64; x++) | 211 | for (x = 0; x < 64; x++) |
212 | { | 212 | { |
213 | for (y = 0; y < 64; y++) | 213 | for (y = 0; y < 64; y++) |
214 | { | 214 | { |
215 | if (landBitmap[x, y] == true) | 215 | if (landBitmap[x, y] == true) |
216 | { | 216 | { |
217 | if (min_x > x) min_x = x; | 217 | if (min_x > x) min_x = x; |
218 | if (min_y > y) min_y = y; | 218 | if (min_y > y) min_y = y; |
219 | if (max_x < x) max_x = x; | 219 | if (max_x < x) max_x = x; |
220 | if (max_y < y) max_y = y; | 220 | if (max_y < y) max_y = y; |
221 | tempArea += 16; //16sqm peice of land | 221 | tempArea += 16; //16sqm peice of land |
222 | } | 222 | } |
223 | } | 223 | } |
224 | } | 224 | } |
225 | landData.AABBMin = new LLVector3((float)(min_x * 4), (float)(min_y * 4), (float)m_scene.Terrain.GetHeight((min_x * 4), (min_y * 4))); | 225 | landData.AABBMin = new LLVector3((float)(min_x * 4), (float)(min_y * 4), (float)m_scene.Terrain.GetHeight((min_x * 4), (min_y * 4))); |
226 | landData.AABBMax = new LLVector3((float)(max_x * 4), (float)(max_y * 4), (float)m_scene.Terrain.GetHeight((max_x * 4), (max_y * 4))); | 226 | landData.AABBMax = new LLVector3((float)(max_x * 4), (float)(max_y * 4), (float)m_scene.Terrain.GetHeight((max_x * 4), (max_y * 4))); |
227 | landData.area = tempArea; | 227 | landData.area = tempArea; |
228 | } | 228 | } |
229 | 229 | ||
230 | public void updateLandBitmapByteArray() | 230 | public void updateLandBitmapByteArray() |
231 | { | 231 | { |
232 | landData.landBitmapByteArray = convertLandBitmapToBytes(); | 232 | landData.landBitmapByteArray = convertLandBitmapToBytes(); |
233 | } | 233 | } |
234 | 234 | ||
235 | /// <summary> | 235 | /// <summary> |
236 | /// Update all settings in land such as area, bitmap byte array, etc | 236 | /// Update all settings in land such as area, bitmap byte array, etc |
237 | /// </summary> | 237 | /// </summary> |
238 | public void forceUpdateLandInfo() | 238 | public void forceUpdateLandInfo() |
239 | { | 239 | { |
240 | this.updateAABBAndAreaValues(); | 240 | this.updateAABBAndAreaValues(); |
241 | this.updateLandBitmapByteArray(); | 241 | this.updateLandBitmapByteArray(); |
242 | } | 242 | } |
243 | 243 | ||
244 | public void setLandBitmapFromByteArray() | 244 | public void setLandBitmapFromByteArray() |
245 | { | 245 | { |
246 | landBitmap = convertBytesToLandBitmap(); | 246 | landBitmap = convertBytesToLandBitmap(); |
247 | } | 247 | } |
248 | #endregion | 248 | #endregion |
249 | 249 | ||
250 | 250 | ||
251 | #region Land Bitmap Functions | 251 | #region Land Bitmap Functions |
252 | /// <summary> | 252 | /// <summary> |
253 | /// Sets the land's bitmap manually | 253 | /// Sets the land's bitmap manually |
254 | /// </summary> | 254 | /// </summary> |
255 | /// <param name="bitmap">64x64 block representing where this land is on a map</param> | 255 | /// <param name="bitmap">64x64 block representing where this land is on a map</param> |
256 | public void setLandBitmap(bool[,] bitmap) | 256 | public void setLandBitmap(bool[,] bitmap) |
257 | { | 257 | { |
258 | if (bitmap.GetLength(0) != 64 || bitmap.GetLength(1) != 64 || bitmap.Rank != 2) | 258 | if (bitmap.GetLength(0) != 64 || bitmap.GetLength(1) != 64 || bitmap.Rank != 2) |
259 | { | 259 | { |
260 | //Throw an exception - The bitmap is not 64x64 | 260 | //Throw an exception - The bitmap is not 64x64 |
261 | throw new Exception("Error: Invalid Parcel Bitmap"); | 261 | throw new Exception("Error: Invalid Parcel Bitmap"); |
262 | } | 262 | } |
263 | else | 263 | else |
264 | { | 264 | { |
265 | //Valid: Lets set it | 265 | //Valid: Lets set it |
266 | landBitmap = bitmap; | 266 | landBitmap = bitmap; |
267 | forceUpdateLandInfo(); | 267 | forceUpdateLandInfo(); |
268 | 268 | ||
269 | } | 269 | } |
270 | } | 270 | } |
271 | /// <summary> | 271 | /// <summary> |
272 | /// Gets the land's bitmap manually | 272 | /// Gets the land's bitmap manually |
273 | /// </summary> | 273 | /// </summary> |
274 | /// <returns></returns> | 274 | /// <returns></returns> |
275 | public bool[,] getLandBitmap() | 275 | public bool[,] getLandBitmap() |
276 | { | 276 | { |
277 | return landBitmap; | 277 | return landBitmap; |
278 | } | 278 | } |
279 | /// <summary> | 279 | /// <summary> |
280 | /// Converts the land bitmap to a packet friendly byte array | 280 | /// Converts the land bitmap to a packet friendly byte array |
281 | /// </summary> | 281 | /// </summary> |
282 | /// <returns></returns> | 282 | /// <returns></returns> |
283 | private byte[] convertLandBitmapToBytes() | 283 | private byte[] convertLandBitmapToBytes() |
284 | { | 284 | { |
285 | byte[] tempConvertArr = new byte[512]; | 285 | byte[] tempConvertArr = new byte[512]; |
286 | byte tempByte = 0; | 286 | byte tempByte = 0; |
287 | int x, y, i, byteNum = 0; | 287 | int x, y, i, byteNum = 0; |
288 | i = 0; | 288 | i = 0; |
289 | for (y = 0; y < 64; y++) | 289 | for (y = 0; y < 64; y++) |
290 | { | 290 | { |
291 | for (x = 0; x < 64; x++) | 291 | for (x = 0; x < 64; x++) |
292 | { | 292 | { |
293 | tempByte = Convert.ToByte(tempByte | Convert.ToByte(landBitmap[x, y]) << (i++ % 8)); | 293 | tempByte = Convert.ToByte(tempByte | Convert.ToByte(landBitmap[x, y]) << (i++ % 8)); |
294 | if (i % 8 == 0) | 294 | if (i % 8 == 0) |
295 | { | 295 | { |
296 | tempConvertArr[byteNum] = tempByte; | 296 | tempConvertArr[byteNum] = tempByte; |
297 | tempByte = (byte)0; | 297 | tempByte = (byte)0; |
298 | i = 0; | 298 | i = 0; |
299 | byteNum++; | 299 | byteNum++; |
300 | } | 300 | } |
301 | } | 301 | } |
302 | } | 302 | } |
303 | return tempConvertArr; | 303 | return tempConvertArr; |
304 | } | 304 | } |
305 | 305 | ||
306 | private bool[,] convertBytesToLandBitmap() | 306 | private bool[,] convertBytesToLandBitmap() |
307 | { | 307 | { |
308 | bool[,] tempConvertMap = new bool[64, 64]; | 308 | bool[,] tempConvertMap = new bool[64, 64]; |
309 | tempConvertMap.Initialize(); | 309 | tempConvertMap.Initialize(); |
310 | byte tempByte = 0; | 310 | byte tempByte = 0; |
311 | int x = 0, y = 0, i = 0, bitNum = 0; | 311 | int x = 0, y = 0, i = 0, bitNum = 0; |
312 | for (i = 0; i < 512; i++) | 312 | for (i = 0; i < 512; i++) |
313 | { | 313 | { |
314 | tempByte = landData.landBitmapByteArray[i]; | 314 | tempByte = landData.landBitmapByteArray[i]; |
315 | for (bitNum = 0; bitNum < 8; bitNum++) | 315 | for (bitNum = 0; bitNum < 8; bitNum++) |
316 | { | 316 | { |
317 | bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1); | 317 | bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1); |
318 | tempConvertMap[x, y] = bit; | 318 | tempConvertMap[x, y] = bit; |
319 | x++; | 319 | x++; |
320 | if (x > 63) | 320 | if (x > 63) |
321 | { | 321 | { |
322 | x = 0; | 322 | x = 0; |
323 | y++; | 323 | y++; |
324 | } | 324 | } |
325 | 325 | ||
326 | } | 326 | } |
327 | 327 | ||
328 | } | 328 | } |
329 | return tempConvertMap; | 329 | return tempConvertMap; |
330 | } | 330 | } |
331 | /// <summary> | 331 | /// <summary> |
332 | /// Full sim land object creation | 332 | /// Full sim land object creation |
333 | /// </summary> | 333 | /// </summary> |
334 | /// <returns></returns> | 334 | /// <returns></returns> |
335 | public static bool[,] basicFullRegionLandBitmap() | 335 | public static bool[,] basicFullRegionLandBitmap() |
336 | { | 336 | { |
337 | return getSquareLandBitmap(0, 0, 256, 256); | 337 | return getSquareLandBitmap(0, 0, 256, 256); |
338 | } | 338 | } |
339 | 339 | ||
340 | /// <summary> | 340 | /// <summary> |
341 | /// Used to modify the bitmap between the x and y points. Points use 64 scale | 341 | /// Used to modify the bitmap between the x and y points. Points use 64 scale |
342 | /// </summary> | 342 | /// </summary> |
343 | /// <param name="start_x"></param> | 343 | /// <param name="start_x"></param> |
344 | /// <param name="start_y"></param> | 344 | /// <param name="start_y"></param> |
345 | /// <param name="end_x"></param> | 345 | /// <param name="end_x"></param> |
346 | /// <param name="end_y"></param> | 346 | /// <param name="end_y"></param> |
347 | /// <returns></returns> | 347 | /// <returns></returns> |
348 | public static bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y) | 348 | public static bool[,] getSquareLandBitmap(int start_x, int start_y, int end_x, int end_y) |
349 | { | 349 | { |
350 | 350 | ||
351 | bool[,] tempBitmap = new bool[64, 64]; | 351 | bool[,] tempBitmap = new bool[64, 64]; |
352 | tempBitmap.Initialize(); | 352 | tempBitmap.Initialize(); |
353 | 353 | ||
354 | tempBitmap = modifyLandBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true); | 354 | tempBitmap = modifyLandBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true); |
355 | return tempBitmap; | 355 | return tempBitmap; |
356 | } | 356 | } |
357 | 357 | ||
358 | /// <summary> | 358 | /// <summary> |
359 | /// Change a land bitmap at within a square and set those points to a specific value | 359 | /// Change a land bitmap at within a square and set those points to a specific value |
360 | /// </summary> | 360 | /// </summary> |
361 | /// <param name="land_bitmap"></param> | 361 | /// <param name="land_bitmap"></param> |
362 | /// <param name="start_x"></param> | 362 | /// <param name="start_x"></param> |
363 | /// <param name="start_y"></param> | 363 | /// <param name="start_y"></param> |
364 | /// <param name="end_x"></param> | 364 | /// <param name="end_x"></param> |
365 | /// <param name="end_y"></param> | 365 | /// <param name="end_y"></param> |
366 | /// <param name="set_value"></param> | 366 | /// <param name="set_value"></param> |
367 | /// <returns></returns> | 367 | /// <returns></returns> |
368 | public static bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value) | 368 | public static bool[,] modifyLandBitmapSquare(bool[,] land_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value) |
369 | { | 369 | { |
370 | if (land_bitmap.GetLength(0) != 64 || land_bitmap.GetLength(1) != 64 || land_bitmap.Rank != 2) | 370 | if (land_bitmap.GetLength(0) != 64 || land_bitmap.GetLength(1) != 64 || land_bitmap.Rank != 2) |
371 | { | 371 | { |
372 | //Throw an exception - The bitmap is not 64x64 | 372 | //Throw an exception - The bitmap is not 64x64 |
373 | throw new Exception("Error: Invalid Parcel Bitmap in modifyLandBitmapSquare()"); | 373 | throw new Exception("Error: Invalid Parcel Bitmap in modifyLandBitmapSquare()"); |
374 | } | 374 | } |
375 | 375 | ||
376 | int x, y; | 376 | int x, y; |
377 | for (y = 0; y < 64; y++) | 377 | for (y = 0; y < 64; y++) |
378 | { | 378 | { |
379 | for (x = 0; x < 64; x++) | 379 | for (x = 0; x < 64; x++) |
380 | { | 380 | { |
381 | if (x >= start_x / 4 && x < end_x / 4 | 381 | if (x >= start_x / 4 && x < end_x / 4 |
382 | && y >= start_y / 4 && y < end_y / 4) | 382 | && y >= start_y / 4 && y < end_y / 4) |
383 | { | 383 | { |
384 | land_bitmap[x, y] = set_value; | 384 | land_bitmap[x, y] = set_value; |
385 | } | 385 | } |
386 | } | 386 | } |
387 | } | 387 | } |
388 | return land_bitmap; | 388 | return land_bitmap; |
389 | } | 389 | } |
390 | /// <summary> | 390 | /// <summary> |
391 | /// Join the true values of 2 bitmaps together | 391 | /// Join the true values of 2 bitmaps together |
392 | /// </summary> | 392 | /// </summary> |
393 | /// <param name="bitmap_base"></param> | 393 | /// <param name="bitmap_base"></param> |
394 | /// <param name="bitmap_add"></param> | 394 | /// <param name="bitmap_add"></param> |
395 | /// <returns></returns> | 395 | /// <returns></returns> |
396 | public static bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add) | 396 | public static bool[,] mergeLandBitmaps(bool[,] bitmap_base, bool[,] bitmap_add) |
397 | { | 397 | { |
398 | if (bitmap_base.GetLength(0) != 64 || bitmap_base.GetLength(1) != 64 || bitmap_base.Rank != 2) | 398 | if (bitmap_base.GetLength(0) != 64 || bitmap_base.GetLength(1) != 64 || bitmap_base.Rank != 2) |
399 | { | 399 | { |
400 | //Throw an exception - The bitmap is not 64x64 | 400 | //Throw an exception - The bitmap is not 64x64 |
401 | throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_base in mergeLandBitmaps"); | 401 | throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_base in mergeLandBitmaps"); |
402 | } | 402 | } |
403 | if (bitmap_add.GetLength(0) != 64 || bitmap_add.GetLength(1) != 64 || bitmap_add.Rank != 2) | 403 | if (bitmap_add.GetLength(0) != 64 || bitmap_add.GetLength(1) != 64 || bitmap_add.Rank != 2) |
404 | { | 404 | { |
405 | //Throw an exception - The bitmap is not 64x64 | 405 | //Throw an exception - The bitmap is not 64x64 |
406 | throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeLandBitmaps"); | 406 | throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeLandBitmaps"); |
407 | 407 | ||
408 | } | 408 | } |
409 | 409 | ||
410 | int x, y; | 410 | int x, y; |
411 | for (y = 0; y < 64; y++) | 411 | for (y = 0; y < 64; y++) |
412 | { | 412 | { |
413 | for (x = 0; x < 64; x++) | 413 | for (x = 0; x < 64; x++) |
414 | { | 414 | { |
415 | if (bitmap_add[x, y]) | 415 | if (bitmap_add[x, y]) |
416 | { | 416 | { |
417 | bitmap_base[x, y] = true; | 417 | bitmap_base[x, y] = true; |
418 | } | 418 | } |
419 | } | 419 | } |
420 | } | 420 | } |
421 | return bitmap_base; | 421 | return bitmap_base; |
422 | } | 422 | } |
423 | #endregion | 423 | #endregion |
424 | 424 | ||
425 | #region Object Select and Object Owner Listing | 425 | #region Object Select and Object Owner Listing |
426 | public void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client) | 426 | public void sendForceObjectSelect(int local_id, int request_type, IClientAPI remote_client) |
427 | { | 427 | { |
428 | List<uint> resultLocalIDs = new List<uint>(); | 428 | List<uint> resultLocalIDs = new List<uint>(); |
429 | foreach (SceneObject obj in primsOverMe) | 429 | foreach (SceneObject obj in primsOverMe) |
430 | { | 430 | { |
431 | if (obj.rootLocalID > 0) | 431 | if (obj.rootLocalID > 0) |
432 | { | 432 | { |
433 | if (request_type == LandManager.LAND_SELECT_OBJECTS_OWNER && obj.rootPrimitive.OwnerID == this.landData.ownerID) | 433 | if (request_type == LandManager.LAND_SELECT_OBJECTS_OWNER && obj.rootPrimitive.OwnerID == this.landData.ownerID) |
434 | { | 434 | { |
435 | resultLocalIDs.Add(obj.rootLocalID); | 435 | resultLocalIDs.Add(obj.rootLocalID); |
436 | } | 436 | } |
437 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && false) //TODO: change false to group support! | 437 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_GROUP && false) //TODO: change false to group support! |
438 | { | 438 | { |
439 | 439 | ||
440 | } | 440 | } |
441 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER && obj.rootPrimitive.OwnerID != remote_client.AgentId) | 441 | else if (request_type == LandManager.LAND_SELECT_OBJECTS_OTHER && obj.rootPrimitive.OwnerID != remote_client.AgentId) |
442 | { | 442 | { |
443 | resultLocalIDs.Add(obj.rootLocalID); | 443 | resultLocalIDs.Add(obj.rootLocalID); |
444 | } | 444 | } |
445 | } | 445 | } |
446 | } | 446 | } |
447 | 447 | ||
448 | 448 | ||
449 | bool firstCall = true; | 449 | bool firstCall = true; |
450 | int MAX_OBJECTS_PER_PACKET = 251; | 450 | int MAX_OBJECTS_PER_PACKET = 251; |
451 | ForceObjectSelectPacket pack = new ForceObjectSelectPacket(); | 451 | ForceObjectSelectPacket pack = new ForceObjectSelectPacket(); |
452 | ForceObjectSelectPacket.DataBlock[] data; | 452 | ForceObjectSelectPacket.DataBlock[] data; |
453 | while (resultLocalIDs.Count > 0) | 453 | while (resultLocalIDs.Count > 0) |
454 | { | 454 | { |
455 | if (firstCall) | 455 | if (firstCall) |
456 | { | 456 | { |
457 | pack._Header.ResetList = true; | 457 | pack._Header.ResetList = true; |
458 | firstCall = false; | 458 | firstCall = false; |
459 | } | 459 | } |
460 | else | 460 | else |
461 | { | 461 | { |
462 | pack._Header.ResetList = false; | 462 | pack._Header.ResetList = false; |
463 | } | 463 | } |
464 | 464 | ||
465 | if (resultLocalIDs.Count > MAX_OBJECTS_PER_PACKET) | 465 | if (resultLocalIDs.Count > MAX_OBJECTS_PER_PACKET) |
466 | { | 466 | { |
467 | data = new ForceObjectSelectPacket.DataBlock[MAX_OBJECTS_PER_PACKET]; | 467 | data = new ForceObjectSelectPacket.DataBlock[MAX_OBJECTS_PER_PACKET]; |
468 | } | 468 | } |
469 | else | 469 | else |
470 | { | 470 | { |
471 | data = new ForceObjectSelectPacket.DataBlock[resultLocalIDs.Count]; | 471 | data = new ForceObjectSelectPacket.DataBlock[resultLocalIDs.Count]; |
472 | } | 472 | } |
473 | 473 | ||
474 | int i; | 474 | int i; |
475 | for (i = 0; i < MAX_OBJECTS_PER_PACKET && resultLocalIDs.Count > 0; i++) | 475 | for (i = 0; i < MAX_OBJECTS_PER_PACKET && resultLocalIDs.Count > 0; i++) |
476 | { | 476 | { |
477 | data[i] = new ForceObjectSelectPacket.DataBlock(); | 477 | data[i] = new ForceObjectSelectPacket.DataBlock(); |
478 | data[i].LocalID = Convert.ToUInt32(resultLocalIDs[0]); | 478 | data[i].LocalID = Convert.ToUInt32(resultLocalIDs[0]); |
479 | resultLocalIDs.RemoveAt(0); | 479 | resultLocalIDs.RemoveAt(0); |
480 | } | 480 | } |
481 | pack.Data = data; | 481 | pack.Data = data; |
482 | remote_client.OutPacket((Packet)pack); | 482 | remote_client.OutPacket((Packet)pack); |
483 | } | 483 | } |
484 | 484 | ||
485 | } | 485 | } |
486 | public void sendLandObjectOwners(IClientAPI remote_client) | 486 | public void sendLandObjectOwners(IClientAPI remote_client) |
487 | { | 487 | { |
488 | Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>(); | 488 | Dictionary<LLUUID, int> ownersAndCount = new Dictionary<LLUUID, int>(); |
489 | foreach (SceneObject obj in primsOverMe) | 489 | foreach (SceneObject obj in primsOverMe) |
490 | { | 490 | { |
491 | if (!ownersAndCount.ContainsKey(obj.rootPrimitive.OwnerID)) | 491 | if (!ownersAndCount.ContainsKey(obj.rootPrimitive.OwnerID)) |
492 | { | 492 | { |
493 | ownersAndCount.Add(obj.rootPrimitive.OwnerID, 0); | 493 | ownersAndCount.Add(obj.rootPrimitive.OwnerID, 0); |
494 | } | 494 | } |
495 | ownersAndCount[obj.rootPrimitive.OwnerID] += obj.primCount; | 495 | ownersAndCount[obj.rootPrimitive.OwnerID] += obj.primCount; |
496 | } | 496 | } |
497 | if (ownersAndCount.Count > 0) | 497 | if (ownersAndCount.Count > 0) |
498 | { | 498 | { |
499 | 499 | ||
500 | ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock = new ParcelObjectOwnersReplyPacket.DataBlock[32]; | 500 | ParcelObjectOwnersReplyPacket.DataBlock[] dataBlock = new ParcelObjectOwnersReplyPacket.DataBlock[32]; |
501 | 501 | ||
502 | if (ownersAndCount.Count < 32) | 502 | if (ownersAndCount.Count < 32) |
503 | { | 503 | { |
504 | dataBlock = new ParcelObjectOwnersReplyPacket.DataBlock[ownersAndCount.Count]; | 504 | dataBlock = new ParcelObjectOwnersReplyPacket.DataBlock[ownersAndCount.Count]; |
505 | } | 505 | } |
506 | 506 | ||
507 | 507 | ||
508 | int num = 0; | 508 | int num = 0; |
509 | foreach (LLUUID owner in ownersAndCount.Keys) | 509 | foreach (LLUUID owner in ownersAndCount.Keys) |
510 | { | 510 | { |
511 | dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock(); | 511 | dataBlock[num] = new ParcelObjectOwnersReplyPacket.DataBlock(); |
512 | dataBlock[num].Count = ownersAndCount[owner]; | 512 | dataBlock[num].Count = ownersAndCount[owner]; |
513 | dataBlock[num].IsGroupOwned = false; //TODO: fix me when group support is added | 513 | dataBlock[num].IsGroupOwned = false; //TODO: fix me when group support is added |
514 | dataBlock[num].OnlineStatus = true; //TODO: fix me later | 514 | dataBlock[num].OnlineStatus = true; //TODO: fix me later |
515 | dataBlock[num].OwnerID = owner; | 515 | dataBlock[num].OwnerID = owner; |
516 | 516 | ||
517 | num++; | 517 | num++; |
518 | } | 518 | } |
519 | 519 | ||
520 | ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket(); | 520 | ParcelObjectOwnersReplyPacket pack = new ParcelObjectOwnersReplyPacket(); |
521 | pack.Data = dataBlock; | 521 | pack.Data = dataBlock; |
522 | remote_client.OutPacket(pack); | 522 | remote_client.OutPacket(pack); |
523 | } | 523 | } |
524 | } | 524 | } |
525 | #endregion | 525 | #endregion |
526 | 526 | ||
527 | #region Object Returning | 527 | #region Object Returning |
528 | public void returnObject(SceneObject obj) | 528 | public void returnObject(SceneObject obj) |
529 | { | 529 | { |
530 | } | 530 | } |
531 | public void returnLandObjects(int type, LLUUID owner) | 531 | public void returnLandObjects(int type, LLUUID owner) |
532 | { | 532 | { |
533 | 533 | ||
534 | } | 534 | } |
535 | #endregion | 535 | #endregion |
536 | 536 | ||
537 | #region Object Adding/Removing from Parcel | 537 | #region Object Adding/Removing from Parcel |
538 | public void resetLandPrimCounts() | 538 | public void resetLandPrimCounts() |
539 | { | 539 | { |
540 | landData.groupPrims = 0; | 540 | landData.groupPrims = 0; |
541 | landData.ownerPrims = 0; | 541 | landData.ownerPrims = 0; |
542 | landData.otherPrims = 0; | 542 | landData.otherPrims = 0; |
543 | landData.selectedPrims = 0; | 543 | landData.selectedPrims = 0; |
544 | primsOverMe.Clear(); | 544 | primsOverMe.Clear(); |
545 | } | 545 | } |
546 | 546 | ||
547 | public void addPrimToCount(SceneObject obj) | 547 | public void addPrimToCount(SceneObject obj) |
548 | { | 548 | { |
549 | LLUUID prim_owner = obj.rootPrimitive.OwnerID; | 549 | LLUUID prim_owner = obj.rootPrimitive.OwnerID; |
550 | int prim_count = obj.primCount; | 550 | int prim_count = obj.primCount; |
551 | 551 | ||
552 | if (obj.isSelected) | 552 | if (obj.isSelected) |
553 | { | 553 | { |
554 | landData.selectedPrims += prim_count; | 554 | landData.selectedPrims += prim_count; |
555 | } | 555 | } |
556 | else | 556 | else |
557 | { | 557 | { |
558 | if (prim_owner == landData.ownerID) | 558 | if (prim_owner == landData.ownerID) |
559 | { | 559 | { |
560 | landData.ownerPrims += prim_count; | 560 | landData.ownerPrims += prim_count; |
561 | } | 561 | } |
562 | else | 562 | else |
563 | { | 563 | { |
564 | landData.otherPrims += prim_count; | 564 | landData.otherPrims += prim_count; |
565 | } | 565 | } |
566 | } | 566 | } |
567 | 567 | ||
568 | primsOverMe.Add(obj); | 568 | primsOverMe.Add(obj); |
569 | 569 | ||
570 | } | 570 | } |
571 | 571 | ||
572 | public void removePrimFromCount(SceneObject obj) | 572 | public void removePrimFromCount(SceneObject obj) |
573 | { | 573 | { |
574 | if (primsOverMe.Contains(obj)) | 574 | if (primsOverMe.Contains(obj)) |
575 | { | 575 | { |
576 | LLUUID prim_owner = obj.rootPrimitive.OwnerID; | 576 | LLUUID prim_owner = obj.rootPrimitive.OwnerID; |
577 | int prim_count = obj.primCount; | 577 | int prim_count = obj.primCount; |
578 | 578 | ||
579 | if (prim_owner == landData.ownerID) | 579 | if (prim_owner == landData.ownerID) |
580 | { | 580 | { |
581 | landData.ownerPrims -= prim_count; | 581 | landData.ownerPrims -= prim_count; |
582 | } | 582 | } |
583 | else if (prim_owner == landData.groupID) | 583 | else if (prim_owner == landData.groupID) |
584 | { | 584 | { |
585 | landData.groupPrims -= prim_count; | 585 | landData.groupPrims -= prim_count; |
586 | } | 586 | } |
587 | else | 587 | else |
588 | { | 588 | { |
589 | landData.otherPrims -= prim_count; | 589 | landData.otherPrims -= prim_count; |
590 | } | 590 | } |
591 | 591 | ||
592 | primsOverMe.Remove(obj); | 592 | primsOverMe.Remove(obj); |
593 | } | 593 | } |
594 | } | 594 | } |
595 | #endregion | 595 | #endregion |
596 | 596 | ||
597 | #endregion | 597 | #endregion |
598 | 598 | ||
599 | 599 | ||
600 | } | 600 | } |
601 | #endregion | 601 | #endregion |
602 | } | 602 | } |
diff --git a/OpenSim/Region/Environment/LandManagement/LandManager.cs b/OpenSim/Region/Environment/LandManagement/LandManager.cs index 8c359fc..f759934 100644 --- a/OpenSim/Region/Environment/LandManagement/LandManager.cs +++ b/OpenSim/Region/Environment/LandManagement/LandManager.cs | |||
@@ -1,617 +1,617 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using libsecondlife; | 30 | using libsecondlife; |
31 | using libsecondlife.Packets; | 31 | using libsecondlife.Packets; |
32 | using OpenSim.Framework.Interfaces; | 32 | using OpenSim.Framework.Interfaces; |
33 | using OpenSim.Framework.Types; | 33 | using OpenSim.Framework.Types; |
34 | using OpenSim.Region.Environment.Scenes; | 34 | using OpenSim.Region.Environment.Scenes; |
35 | 35 | ||
36 | namespace OpenSim.Region.Environment.LandManagement | 36 | namespace OpenSim.Region.Environment.LandManagement |
37 | { | 37 | { |
38 | 38 | ||
39 | 39 | ||
40 | #region LandManager Class | 40 | #region LandManager Class |
41 | /// <summary> | 41 | /// <summary> |
42 | /// Handles Land objects and operations requiring information from other Land objects (divide, join, etc) | 42 | /// Handles Land objects and operations requiring information from other Land objects (divide, join, etc) |
43 | /// </summary> | 43 | /// </summary> |
44 | public class LandManager : ILocalStorageLandObjectReceiver | 44 | public class LandManager : ILocalStorageLandObjectReceiver |
45 | { | 45 | { |
46 | 46 | ||
47 | #region Constants | 47 | #region Constants |
48 | //Land types set with flags in ParcelOverlay. | 48 | //Land types set with flags in ParcelOverlay. |
49 | //Only one of these can be used. | 49 | //Only one of these can be used. |
50 | public const byte LAND_TYPE_PUBLIC = (byte)0; //Equals 00000000 | 50 | public const byte LAND_TYPE_PUBLIC = (byte)0; //Equals 00000000 |
51 | public const byte LAND_TYPE_OWNED_BY_OTHER = (byte)1; //Equals 00000001 | 51 | public const byte LAND_TYPE_OWNED_BY_OTHER = (byte)1; //Equals 00000001 |
52 | public const byte LAND_TYPE_OWNED_BY_GROUP = (byte)2; //Equals 00000010 | 52 | public const byte LAND_TYPE_OWNED_BY_GROUP = (byte)2; //Equals 00000010 |
53 | public const byte LAND_TYPE_OWNED_BY_REQUESTER = (byte)3; //Equals 00000011 | 53 | public const byte LAND_TYPE_OWNED_BY_REQUESTER = (byte)3; //Equals 00000011 |
54 | public const byte LAND_TYPE_IS_FOR_SALE = (byte)4; //Equals 00000100 | 54 | public const byte LAND_TYPE_IS_FOR_SALE = (byte)4; //Equals 00000100 |
55 | public const byte LAND_TYPE_IS_BEING_AUCTIONED = (byte)5; //Equals 00000101 | 55 | public const byte LAND_TYPE_IS_BEING_AUCTIONED = (byte)5; //Equals 00000101 |
56 | 56 | ||
57 | 57 | ||
58 | //Flags that when set, a border on the given side will be placed | 58 | //Flags that when set, a border on the given side will be placed |
59 | //NOTE: North and East is assumable by the west and south sides (if land to east has a west border, then I have an east border; etc) | 59 | //NOTE: North and East is assumable by the west and south sides (if land to east has a west border, then I have an east border; etc) |
60 | //This took forever to figure out -- jeesh. /blame LL for even having to send these | 60 | //This took forever to figure out -- jeesh. /blame LL for even having to send these |
61 | public const byte LAND_FLAG_PROPERTY_BORDER_WEST = (byte)64; //Equals 01000000 | 61 | public const byte LAND_FLAG_PROPERTY_BORDER_WEST = (byte)64; //Equals 01000000 |
62 | public const byte LAND_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000 | 62 | public const byte LAND_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000 |
63 | 63 | ||
64 | //RequestResults (I think these are right, they seem to work): | 64 | //RequestResults (I think these are right, they seem to work): |
65 | public const int LAND_RESULT_SINGLE = 0; // The request they made contained only a single piece of land | 65 | public const int LAND_RESULT_SINGLE = 0; // The request they made contained only a single piece of land |
66 | public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land | 66 | public const int LAND_RESULT_MULTIPLE = 1; // The request they made contained more than a single peice of land |
67 | 67 | ||
68 | //ParcelSelectObjects | 68 | //ParcelSelectObjects |
69 | public const int LAND_SELECT_OBJECTS_OWNER = 2; | 69 | public const int LAND_SELECT_OBJECTS_OWNER = 2; |
70 | public const int LAND_SELECT_OBJECTS_GROUP = 4; | 70 | public const int LAND_SELECT_OBJECTS_GROUP = 4; |
71 | public const int LAND_SELECT_OBJECTS_OTHER = 8; | 71 | public const int LAND_SELECT_OBJECTS_OTHER = 8; |
72 | 72 | ||
73 | 73 | ||
74 | //These are other constants. Yay! | 74 | //These are other constants. Yay! |
75 | public const int START_LAND_LOCAL_ID = 1; | 75 | public const int START_LAND_LOCAL_ID = 1; |
76 | #endregion | 76 | #endregion |
77 | 77 | ||
78 | #region Member Variables | 78 | #region Member Variables |
79 | public Dictionary<int, Land> landList = new Dictionary<int, Land>(); | 79 | public Dictionary<int, Land> landList = new Dictionary<int, Land>(); |
80 | private int lastLandLocalID = START_LAND_LOCAL_ID - 1; | 80 | private int lastLandLocalID = START_LAND_LOCAL_ID - 1; |
81 | private int[,] landIDList = new int[64, 64]; | 81 | private int[,] landIDList = new int[64, 64]; |
82 | 82 | ||
83 | /// <summary> | 83 | /// <summary> |
84 | /// Set to true when a prim is moved, created, added. Performs a prim count update | 84 | /// Set to true when a prim is moved, created, added. Performs a prim count update |
85 | /// </summary> | 85 | /// </summary> |
86 | public bool landPrimCountTainted = false; | 86 | public bool landPrimCountTainted = false; |
87 | 87 | ||
88 | private Scene m_scene; | 88 | private Scene m_scene; |
89 | private RegionInfo m_regInfo; | 89 | private RegionInfo m_regInfo; |
90 | 90 | ||
91 | #endregion | 91 | #endregion |
92 | 92 | ||
93 | #region Constructors | 93 | #region Constructors |
94 | public LandManager(Scene scene, RegionInfo reginfo) | 94 | public LandManager(Scene scene, RegionInfo reginfo) |
95 | { | 95 | { |
96 | 96 | ||
97 | m_scene = scene; | 97 | m_scene = scene; |
98 | m_regInfo = reginfo; | 98 | m_regInfo = reginfo; |
99 | landIDList.Initialize(); | 99 | landIDList.Initialize(); |
100 | 100 | ||
101 | } | 101 | } |
102 | #endregion | 102 | #endregion |
103 | 103 | ||
104 | #region Member Functions | 104 | #region Member Functions |
105 | 105 | ||
106 | #region Parcel From Storage Functions | 106 | #region Parcel From Storage Functions |
107 | public void LandFromStorage(LandData data) | 107 | public void LandFromStorage(LandData data) |
108 | { | 108 | { |
109 | Land new_land = new Land(data.ownerID, data.isGroupOwned, m_scene); | 109 | Land new_land = new Land(data.ownerID, data.isGroupOwned, m_scene); |
110 | new_land.landData = data.Copy(); | 110 | new_land.landData = data.Copy(); |
111 | new_land.setLandBitmapFromByteArray(); | 111 | new_land.setLandBitmapFromByteArray(); |
112 | addLandObject(new_land); | 112 | addLandObject(new_land); |
113 | 113 | ||
114 | } | 114 | } |
115 | 115 | ||
116 | public void NoLandDataFromStorage() | 116 | public void NoLandDataFromStorage() |
117 | { | 117 | { |
118 | resetSimLandObjects(); | 118 | resetSimLandObjects(); |
119 | } | 119 | } |
120 | #endregion | 120 | #endregion |
121 | 121 | ||
122 | #region Parcel Add/Remove/Get/Create | 122 | #region Parcel Add/Remove/Get/Create |
123 | /// <summary> | 123 | /// <summary> |
124 | /// Creates a basic Parcel object without an owner (a zeroed key) | 124 | /// Creates a basic Parcel object without an owner (a zeroed key) |
125 | /// </summary> | 125 | /// </summary> |
126 | /// <returns></returns> | 126 | /// <returns></returns> |
127 | public Land createBaseLand() | 127 | public Land createBaseLand() |
128 | { | 128 | { |
129 | return new Land(new LLUUID(), false, m_scene); | 129 | return new Land(new LLUUID(), false, m_scene); |
130 | } | 130 | } |
131 | 131 | ||
132 | /// <summary> | 132 | /// <summary> |
133 | /// Adds a land object to the stored list and adds them to the landIDList to what they own | 133 | /// Adds a land object to the stored list and adds them to the landIDList to what they own |
134 | /// </summary> | 134 | /// </summary> |
135 | /// <param name="new_land">The land object being added</param> | 135 | /// <param name="new_land">The land object being added</param> |
136 | public Land addLandObject(Land new_land) | 136 | public Land addLandObject(Land new_land) |
137 | { | 137 | { |
138 | lastLandLocalID++; | 138 | lastLandLocalID++; |
139 | new_land.landData.localID = lastLandLocalID; | 139 | new_land.landData.localID = lastLandLocalID; |
140 | landList.Add(lastLandLocalID, new_land.Copy()); | 140 | landList.Add(lastLandLocalID, new_land.Copy()); |
141 | 141 | ||
142 | 142 | ||
143 | bool[,] landBitmap = new_land.getLandBitmap(); | 143 | bool[,] landBitmap = new_land.getLandBitmap(); |
144 | int x, y; | 144 | int x, y; |
145 | for (x = 0; x < 64; x++) | 145 | for (x = 0; x < 64; x++) |
146 | { | 146 | { |
147 | for (y = 0; y < 64; y++) | 147 | for (y = 0; y < 64; y++) |
148 | { | 148 | { |
149 | if (landBitmap[x, y]) | 149 | if (landBitmap[x, y]) |
150 | { | 150 | { |
151 | landIDList[x, y] = lastLandLocalID; | 151 | landIDList[x, y] = lastLandLocalID; |
152 | } | 152 | } |
153 | } | 153 | } |
154 | } | 154 | } |
155 | landList[lastLandLocalID].forceUpdateLandInfo(); | 155 | landList[lastLandLocalID].forceUpdateLandInfo(); |
156 | 156 | ||
157 | return new_land; | 157 | return new_land; |
158 | 158 | ||
159 | } | 159 | } |
160 | /// <summary> | 160 | /// <summary> |
161 | /// Removes a land object from the list. Will not remove if local_id is still owning an area in landIDList | 161 | /// Removes a land object from the list. Will not remove if local_id is still owning an area in landIDList |
162 | /// </summary> | 162 | /// </summary> |
163 | /// <param name="local_id">Land.localID of the peice of land to remove.</param> | 163 | /// <param name="local_id">Land.localID of the peice of land to remove.</param> |
164 | public void removeLandObject(int local_id) | 164 | public void removeLandObject(int local_id) |
165 | { | 165 | { |
166 | int x, y; | 166 | int x, y; |
167 | for (x = 0; x < 64; x++) | 167 | for (x = 0; x < 64; x++) |
168 | { | 168 | { |
169 | for (y = 0; y < 64; y++) | 169 | for (y = 0; y < 64; y++) |
170 | { | 170 | { |
171 | if (landIDList[x, y] == local_id) | 171 | if (landIDList[x, y] == local_id) |
172 | { | 172 | { |
173 | throw new Exception("Could not remove land object. Still being used at " + x + ", " + y); | 173 | throw new Exception("Could not remove land object. Still being used at " + x + ", " + y); |
174 | } | 174 | } |
175 | } | 175 | } |
176 | } | 176 | } |
177 | // TODO: Put event here for storage manager to bind to. | 177 | // TODO: Put event here for storage manager to bind to. |
178 | landList.Remove(local_id); | 178 | landList.Remove(local_id); |
179 | } | 179 | } |
180 | 180 | ||
181 | private void performFinalLandJoin(Land master, Land slave) | 181 | private void performFinalLandJoin(Land master, Land slave) |
182 | { | 182 | { |
183 | int x, y; | 183 | int x, y; |
184 | bool[,] landBitmapSlave = slave.getLandBitmap(); | 184 | bool[,] landBitmapSlave = slave.getLandBitmap(); |
185 | for (x = 0; x < 64; x++) | 185 | for (x = 0; x < 64; x++) |
186 | { | 186 | { |
187 | for (y = 0; y < 64; y++) | 187 | for (y = 0; y < 64; y++) |
188 | { | 188 | { |
189 | if (landBitmapSlave[x, y]) | 189 | if (landBitmapSlave[x, y]) |
190 | { | 190 | { |
191 | landIDList[x, y] = master.landData.localID; | 191 | landIDList[x, y] = master.landData.localID; |
192 | } | 192 | } |
193 | } | 193 | } |
194 | } | 194 | } |
195 | removeLandObject(slave.landData.localID); | 195 | removeLandObject(slave.landData.localID); |
196 | } | 196 | } |
197 | /// <summary> | 197 | /// <summary> |
198 | /// Get the land object at the specified point | 198 | /// Get the land object at the specified point |
199 | /// </summary> | 199 | /// </summary> |
200 | /// <param name="x">Value between 0 - 256 on the x axis of the point</param> | 200 | /// <param name="x">Value between 0 - 256 on the x axis of the point</param> |
201 | /// <param name="y">Value between 0 - 256 on the y axis of the point</param> | 201 | /// <param name="y">Value between 0 - 256 on the y axis of the point</param> |
202 | /// <returns>Land object at the point supplied</returns> | 202 | /// <returns>Land object at the point supplied</returns> |
203 | public Land getLandObject(float x_float, float y_float) | 203 | public Land getLandObject(float x_float, float y_float) |
204 | { | 204 | { |
205 | int x = Convert.ToInt32(Math.Floor(Convert.ToDecimal(x_float) / Convert.ToDecimal(4.0))); | 205 | int x = Convert.ToInt32(Math.Floor(Convert.ToDecimal(x_float) / Convert.ToDecimal(4.0))); |
206 | int y = Convert.ToInt32(Math.Floor(Convert.ToDecimal(y_float) / Convert.ToDecimal(4.0))); | 206 | int y = Convert.ToInt32(Math.Floor(Convert.ToDecimal(y_float) / Convert.ToDecimal(4.0))); |
207 | 207 | ||
208 | if (x > 63 || y > 63 || x < 0 || y < 0) | 208 | if (x > 63 || y > 63 || x < 0 || y < 0) |
209 | { | 209 | { |
210 | throw new Exception("Error: Parcel not found at point " + x + ", " + y); | 210 | throw new Exception("Error: Parcel not found at point " + x + ", " + y); |
211 | } | 211 | } |
212 | else | 212 | else |
213 | { | 213 | { |
214 | // Console.WriteLine("Point (" + x + ", " + y + ") determined from point (" + x_float + ", " + y_float + ")"); | 214 | // Console.WriteLine("Point (" + x + ", " + y + ") determined from point (" + x_float + ", " + y_float + ")"); |
215 | return landList[landIDList[x, y]]; | 215 | return landList[landIDList[x, y]]; |
216 | } | 216 | } |
217 | } | 217 | } |
218 | 218 | ||
219 | public Land getLandObject(int x, int y) | 219 | public Land getLandObject(int x, int y) |
220 | { | 220 | { |
221 | if (x > 256 || y > 256 || x < 0 || y < 0) | 221 | if (x > 256 || y > 256 || x < 0 || y < 0) |
222 | { | 222 | { |
223 | throw new Exception("Error: Parcel not found at point " + x + ", " + y); | 223 | throw new Exception("Error: Parcel not found at point " + x + ", " + y); |
224 | } | 224 | } |
225 | else | 225 | else |
226 | { | 226 | { |
227 | return landList[landIDList[x / 4, y / 4]]; | 227 | return landList[landIDList[x / 4, y / 4]]; |
228 | } | 228 | } |
229 | } | 229 | } |
230 | #endregion | 230 | #endregion |
231 | 231 | ||
232 | #region Parcel Modification | 232 | #region Parcel Modification |
233 | /// <summary> | 233 | /// <summary> |
234 | /// Subdivides a piece of land | 234 | /// Subdivides a piece of land |
235 | /// </summary> | 235 | /// </summary> |
236 | /// <param name="start_x">West Point</param> | 236 | /// <param name="start_x">West Point</param> |
237 | /// <param name="start_y">South Point</param> | 237 | /// <param name="start_y">South Point</param> |
238 | /// <param name="end_x">East Point</param> | 238 | /// <param name="end_x">East Point</param> |
239 | /// <param name="end_y">North Point</param> | 239 | /// <param name="end_y">North Point</param> |
240 | /// <param name="attempting_user_id">LLUUID of user who is trying to subdivide</param> | 240 | /// <param name="attempting_user_id">LLUUID of user who is trying to subdivide</param> |
241 | /// <returns>Returns true if successful</returns> | 241 | /// <returns>Returns true if successful</returns> |
242 | private bool subdivide(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id) | 242 | private bool subdivide(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id) |
243 | { | 243 | { |
244 | 244 | ||
245 | //First, lets loop through the points and make sure they are all in the same peice of land | 245 | //First, lets loop through the points and make sure they are all in the same peice of land |
246 | //Get the land object at start | 246 | //Get the land object at start |
247 | Land startLandObject = getLandObject(start_x, start_y); | 247 | Land startLandObject = getLandObject(start_x, start_y); |
248 | if (startLandObject == null) return false; //No such land object at the beginning | 248 | if (startLandObject == null) return false; //No such land object at the beginning |
249 | 249 | ||
250 | //Loop through the points | 250 | //Loop through the points |
251 | try | 251 | try |
252 | { | 252 | { |
253 | int totalX = end_x - start_x; | 253 | int totalX = end_x - start_x; |
254 | int totalY = end_y - start_y; | 254 | int totalY = end_y - start_y; |
255 | int x, y; | 255 | int x, y; |
256 | for (y = 0; y < totalY; y++) | 256 | for (y = 0; y < totalY; y++) |
257 | { | 257 | { |
258 | for (x = 0; x < totalX; x++) | 258 | for (x = 0; x < totalX; x++) |
259 | { | 259 | { |
260 | Land tempLandObject = getLandObject(start_x + x, start_y + y); | 260 | Land tempLandObject = getLandObject(start_x + x, start_y + y); |
261 | if (tempLandObject == null) return false; //No such land object at that point | 261 | if (tempLandObject == null) return false; //No such land object at that point |
262 | if (tempLandObject != startLandObject) return false; //Subdividing over 2 land objects; no-no | 262 | if (tempLandObject != startLandObject) return false; //Subdividing over 2 land objects; no-no |
263 | } | 263 | } |
264 | } | 264 | } |
265 | } | 265 | } |
266 | catch (Exception) | 266 | catch (Exception) |
267 | { | 267 | { |
268 | return false; //Exception. For now, lets skip subdivision | 268 | return false; //Exception. For now, lets skip subdivision |
269 | } | 269 | } |
270 | 270 | ||
271 | //If we are still here, then they are subdividing within one piece of land | 271 | //If we are still here, then they are subdividing within one piece of land |
272 | //Check owner | 272 | //Check owner |
273 | if (startLandObject.landData.ownerID != attempting_user_id) | 273 | if (startLandObject.landData.ownerID != attempting_user_id) |
274 | { | 274 | { |
275 | return false; //They cant do this! | 275 | return false; //They cant do this! |
276 | } | 276 | } |
277 | 277 | ||
278 | //Lets create a new land object with bitmap activated at that point (keeping the old land objects info) | 278 | //Lets create a new land object with bitmap activated at that point (keeping the old land objects info) |
279 | Land newLand = startLandObject.Copy(); | 279 | Land newLand = startLandObject.Copy(); |
280 | newLand.landData.landName = "Subdivision of " + newLand.landData.landName; | 280 | newLand.landData.landName = "Subdivision of " + newLand.landData.landName; |
281 | newLand.landData.globalID = LLUUID.Random(); | 281 | newLand.landData.globalID = LLUUID.Random(); |
282 | 282 | ||
283 | newLand.setLandBitmap(Land.getSquareLandBitmap(start_x, start_y, end_x, end_y)); | 283 | newLand.setLandBitmap(Land.getSquareLandBitmap(start_x, start_y, end_x, end_y)); |
284 | 284 | ||
285 | //Now, lets set the subdivision area of the original to false | 285 | //Now, lets set the subdivision area of the original to false |
286 | int startLandObjectIndex = startLandObject.landData.localID; | 286 | int startLandObjectIndex = startLandObject.landData.localID; |
287 | landList[startLandObjectIndex].setLandBitmap(Land.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false)); | 287 | landList[startLandObjectIndex].setLandBitmap(Land.modifyLandBitmapSquare(startLandObject.getLandBitmap(), start_x, start_y, end_x, end_y, false)); |
288 | landList[startLandObjectIndex].forceUpdateLandInfo(); | 288 | landList[startLandObjectIndex].forceUpdateLandInfo(); |
289 | 289 | ||
290 | 290 | ||
291 | this.setPrimsTainted(); | 291 | this.setPrimsTainted(); |
292 | 292 | ||
293 | //Now add the new land object | 293 | //Now add the new land object |
294 | Land result = addLandObject(newLand); | 294 | Land result = addLandObject(newLand); |
295 | result.sendLandUpdateToAvatarsOverMe(); | 295 | result.sendLandUpdateToAvatarsOverMe(); |
296 | 296 | ||
297 | 297 | ||
298 | 298 | ||
299 | 299 | ||
300 | return true; | 300 | return true; |
301 | } | 301 | } |
302 | /// <summary> | 302 | /// <summary> |
303 | /// Join 2 land objects together | 303 | /// Join 2 land objects together |
304 | /// </summary> | 304 | /// </summary> |
305 | /// <param name="start_x">x value in first piece of land</param> | 305 | /// <param name="start_x">x value in first piece of land</param> |
306 | /// <param name="start_y">y value in first piece of land</param> | 306 | /// <param name="start_y">y value in first piece of land</param> |
307 | /// <param name="end_x">x value in second peice of land</param> | 307 | /// <param name="end_x">x value in second peice of land</param> |
308 | /// <param name="end_y">y value in second peice of land</param> | 308 | /// <param name="end_y">y value in second peice of land</param> |
309 | /// <param name="attempting_user_id">LLUUID of the avatar trying to join the land objects</param> | 309 | /// <param name="attempting_user_id">LLUUID of the avatar trying to join the land objects</param> |
310 | /// <returns>Returns true if successful</returns> | 310 | /// <returns>Returns true if successful</returns> |
311 | private bool join(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id) | 311 | private bool join(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id) |
312 | { | 312 | { |
313 | end_x -= 4; | 313 | end_x -= 4; |
314 | end_y -= 4; | 314 | end_y -= 4; |
315 | 315 | ||
316 | List<Land> selectedLandObjects = new List<Land>(); | 316 | List<Land> selectedLandObjects = new List<Land>(); |
317 | int stepXSelected = 0; | 317 | int stepXSelected = 0; |
318 | int stepYSelected = 0; | 318 | int stepYSelected = 0; |
319 | for (stepYSelected = start_y; stepYSelected <= end_y; stepYSelected += 4) | 319 | for (stepYSelected = start_y; stepYSelected <= end_y; stepYSelected += 4) |
320 | { | 320 | { |
321 | for (stepXSelected = start_x; stepXSelected <= end_x; stepXSelected += 4) | 321 | for (stepXSelected = start_x; stepXSelected <= end_x; stepXSelected += 4) |
322 | { | 322 | { |
323 | Land p = getLandObject(stepXSelected,stepYSelected); | 323 | Land p = getLandObject(stepXSelected,stepYSelected); |
324 | if (!selectedLandObjects.Contains(p)) | 324 | if (!selectedLandObjects.Contains(p)) |
325 | { | 325 | { |
326 | selectedLandObjects.Add(p); | 326 | selectedLandObjects.Add(p); |
327 | } | 327 | } |
328 | } | 328 | } |
329 | } | 329 | } |
330 | Land masterLandObject = selectedLandObjects[0]; | 330 | Land masterLandObject = selectedLandObjects[0]; |
331 | selectedLandObjects.RemoveAt(0); | 331 | selectedLandObjects.RemoveAt(0); |
332 | 332 | ||
333 | 333 | ||
334 | if (selectedLandObjects.Count < 1) | 334 | if (selectedLandObjects.Count < 1) |
335 | { | 335 | { |
336 | return false; //Only one piece of land selected | 336 | return false; //Only one piece of land selected |
337 | } | 337 | } |
338 | if (masterLandObject.landData.ownerID != attempting_user_id) | 338 | if (masterLandObject.landData.ownerID != attempting_user_id) |
339 | { | 339 | { |
340 | return false; //Not the same owner | 340 | return false; //Not the same owner |
341 | } | 341 | } |
342 | foreach (Land p in selectedLandObjects) | 342 | foreach (Land p in selectedLandObjects) |
343 | { | 343 | { |
344 | if (p.landData.ownerID != masterLandObject.landData.ownerID) | 344 | if (p.landData.ownerID != masterLandObject.landData.ownerID) |
345 | { | 345 | { |
346 | return false; //Over multiple users. TODO: make this just ignore this piece of land? | 346 | return false; //Over multiple users. TODO: make this just ignore this piece of land? |
347 | } | 347 | } |
348 | } | 348 | } |
349 | foreach (Land slaveLandObject in selectedLandObjects) | 349 | foreach (Land slaveLandObject in selectedLandObjects) |
350 | { | 350 | { |
351 | landList[masterLandObject.landData.localID].setLandBitmap(Land.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap())); | 351 | landList[masterLandObject.landData.localID].setLandBitmap(Land.mergeLandBitmaps(masterLandObject.getLandBitmap(), slaveLandObject.getLandBitmap())); |
352 | performFinalLandJoin(masterLandObject, slaveLandObject); | 352 | performFinalLandJoin(masterLandObject, slaveLandObject); |
353 | } | 353 | } |
354 | 354 | ||
355 | 355 | ||
356 | this.setPrimsTainted(); | 356 | this.setPrimsTainted(); |
357 | 357 | ||
358 | masterLandObject.sendLandUpdateToAvatarsOverMe(); | 358 | masterLandObject.sendLandUpdateToAvatarsOverMe(); |
359 | 359 | ||
360 | return true; | 360 | return true; |
361 | 361 | ||
362 | 362 | ||
363 | 363 | ||
364 | } | 364 | } |
365 | #endregion | 365 | #endregion |
366 | 366 | ||
367 | #region Parcel Updating | 367 | #region Parcel Updating |
368 | /// <summary> | 368 | /// <summary> |
369 | /// Where we send the ParcelOverlay packet to the client | 369 | /// Where we send the ParcelOverlay packet to the client |
370 | /// </summary> | 370 | /// </summary> |
371 | /// <param name="remote_client">The object representing the client</param> | 371 | /// <param name="remote_client">The object representing the client</param> |
372 | public void sendParcelOverlay(IClientAPI remote_client) | 372 | public void sendParcelOverlay(IClientAPI remote_client) |
373 | { | 373 | { |
374 | const int LAND_BLOCKS_PER_PACKET = 1024; | 374 | const int LAND_BLOCKS_PER_PACKET = 1024; |
375 | int x, y = 0; | 375 | int x, y = 0; |
376 | byte[] byteArray = new byte[LAND_BLOCKS_PER_PACKET]; | 376 | byte[] byteArray = new byte[LAND_BLOCKS_PER_PACKET]; |
377 | int byteArrayCount = 0; | 377 | int byteArrayCount = 0; |
378 | int sequenceID = 0; | 378 | int sequenceID = 0; |
379 | ParcelOverlayPacket packet; | 379 | ParcelOverlayPacket packet; |
380 | 380 | ||
381 | for (y = 0; y < 64; y++) | 381 | for (y = 0; y < 64; y++) |
382 | { | 382 | { |
383 | for (x = 0; x < 64; x++) | 383 | for (x = 0; x < 64; x++) |
384 | { | 384 | { |
385 | byte tempByte = (byte)0; //This represents the byte for the current 4x4 | 385 | byte tempByte = (byte)0; //This represents the byte for the current 4x4 |
386 | Land currentParcelBlock = getLandObject(x * 4, y * 4); | 386 | Land currentParcelBlock = getLandObject(x * 4, y * 4); |
387 | 387 | ||
388 | if (currentParcelBlock.landData.ownerID == remote_client.AgentId) | 388 | if (currentParcelBlock.landData.ownerID == remote_client.AgentId) |
389 | { | 389 | { |
390 | //Owner Flag | 390 | //Owner Flag |
391 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_OWNED_BY_REQUESTER); | 391 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_OWNED_BY_REQUESTER); |
392 | } | 392 | } |
393 | else if (currentParcelBlock.landData.salePrice > 0 && (currentParcelBlock.landData.authBuyerID == LLUUID.Zero || currentParcelBlock.landData.authBuyerID == remote_client.AgentId)) | 393 | else if (currentParcelBlock.landData.salePrice > 0 && (currentParcelBlock.landData.authBuyerID == LLUUID.Zero || currentParcelBlock.landData.authBuyerID == remote_client.AgentId)) |
394 | { | 394 | { |
395 | //Sale Flag | 395 | //Sale Flag |
396 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_IS_FOR_SALE); | 396 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_IS_FOR_SALE); |
397 | } | 397 | } |
398 | else if (currentParcelBlock.landData.ownerID == LLUUID.Zero) | 398 | else if (currentParcelBlock.landData.ownerID == LLUUID.Zero) |
399 | { | 399 | { |
400 | //Public Flag | 400 | //Public Flag |
401 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_PUBLIC); | 401 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_PUBLIC); |
402 | } | 402 | } |
403 | else | 403 | else |
404 | { | 404 | { |
405 | //Other Flag | 405 | //Other Flag |
406 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_OWNED_BY_OTHER); | 406 | tempByte = Convert.ToByte(tempByte | LAND_TYPE_OWNED_BY_OTHER); |
407 | } | 407 | } |
408 | 408 | ||
409 | 409 | ||
410 | //Now for border control | 410 | //Now for border control |
411 | if (x == 0) | 411 | if (x == 0) |
412 | { | 412 | { |
413 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST); | 413 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST); |
414 | } | 414 | } |
415 | else if (getLandObject((x - 1) * 4, y * 4) != currentParcelBlock) | 415 | else if (getLandObject((x - 1) * 4, y * 4) != currentParcelBlock) |
416 | { | 416 | { |
417 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST); | 417 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_WEST); |
418 | } | 418 | } |
419 | 419 | ||
420 | if (y == 0) | 420 | if (y == 0) |
421 | { | 421 | { |
422 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH); | 422 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH); |
423 | } | 423 | } |
424 | else if (getLandObject(x * 4, (y - 1) * 4) != currentParcelBlock) | 424 | else if (getLandObject(x * 4, (y - 1) * 4) != currentParcelBlock) |
425 | { | 425 | { |
426 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH); | 426 | tempByte = Convert.ToByte(tempByte | LAND_FLAG_PROPERTY_BORDER_SOUTH); |
427 | } | 427 | } |
428 | 428 | ||
429 | byteArray[byteArrayCount] = tempByte; | 429 | byteArray[byteArrayCount] = tempByte; |
430 | byteArrayCount++; | 430 | byteArrayCount++; |
431 | if (byteArrayCount >= LAND_BLOCKS_PER_PACKET) | 431 | if (byteArrayCount >= LAND_BLOCKS_PER_PACKET) |
432 | { | 432 | { |
433 | byteArrayCount = 0; | 433 | byteArrayCount = 0; |
434 | packet = new ParcelOverlayPacket(); | 434 | packet = new ParcelOverlayPacket(); |
435 | packet.ParcelData.Data = byteArray; | 435 | packet.ParcelData.Data = byteArray; |
436 | packet.ParcelData.SequenceID = sequenceID; | 436 | packet.ParcelData.SequenceID = sequenceID; |
437 | remote_client.OutPacket((Packet)packet); | 437 | remote_client.OutPacket((Packet)packet); |
438 | sequenceID++; | 438 | sequenceID++; |
439 | byteArray = new byte[LAND_BLOCKS_PER_PACKET]; | 439 | byteArray = new byte[LAND_BLOCKS_PER_PACKET]; |
440 | } | 440 | } |
441 | } | 441 | } |
442 | } | 442 | } |
443 | 443 | ||
444 | 444 | ||
445 | } | 445 | } |
446 | 446 | ||
447 | public void handleParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client) | 447 | public void handleParcelPropertiesRequest(int start_x, int start_y, int end_x, int end_y, int sequence_id, bool snap_selection, IClientAPI remote_client) |
448 | { | 448 | { |
449 | //Get the land objects within the bounds | 449 | //Get the land objects within the bounds |
450 | List<Land> temp = new List<Land>(); | 450 | List<Land> temp = new List<Land>(); |
451 | int x, y, i; | 451 | int x, y, i; |
452 | int inc_x = end_x - start_x; | 452 | int inc_x = end_x - start_x; |
453 | int inc_y = end_y - start_y; | 453 | int inc_y = end_y - start_y; |
454 | for (x = 0; x < inc_x; x++) | 454 | for (x = 0; x < inc_x; x++) |
455 | { | 455 | { |
456 | for (y = 0; y < inc_y; y++) | 456 | for (y = 0; y < inc_y; y++) |
457 | { | 457 | { |
458 | Land currentParcel = getLandObject(start_x + x, start_y + y); | 458 | Land currentParcel = getLandObject(start_x + x, start_y + y); |
459 | if (!temp.Contains(currentParcel)) | 459 | if (!temp.Contains(currentParcel)) |
460 | { | 460 | { |
461 | currentParcel.forceUpdateLandInfo(); | 461 | currentParcel.forceUpdateLandInfo(); |
462 | temp.Add(currentParcel); | 462 | temp.Add(currentParcel); |
463 | } | 463 | } |
464 | } | 464 | } |
465 | } | 465 | } |
466 | 466 | ||
467 | int requestResult = LAND_RESULT_SINGLE; | 467 | int requestResult = LAND_RESULT_SINGLE; |
468 | if (temp.Count > 1) | 468 | if (temp.Count > 1) |
469 | { | 469 | { |
470 | requestResult = LAND_RESULT_MULTIPLE; | 470 | requestResult = LAND_RESULT_MULTIPLE; |
471 | } | 471 | } |
472 | 472 | ||
473 | for (i = 0; i < temp.Count; i++) | 473 | for (i = 0; i < temp.Count; i++) |
474 | { | 474 | { |
475 | temp[i].sendLandProperties(sequence_id, snap_selection, requestResult, remote_client); | 475 | temp[i].sendLandProperties(sequence_id, snap_selection, requestResult, remote_client); |
476 | } | 476 | } |
477 | 477 | ||
478 | 478 | ||
479 | sendParcelOverlay(remote_client); | 479 | sendParcelOverlay(remote_client); |
480 | } | 480 | } |
481 | 481 | ||
482 | public void handleParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) | 482 | public void handleParcelPropertiesUpdateRequest(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client) |
483 | { | 483 | { |
484 | if (landList.ContainsKey(packet.ParcelData.LocalID)) | 484 | if (landList.ContainsKey(packet.ParcelData.LocalID)) |
485 | { | 485 | { |
486 | landList[packet.ParcelData.LocalID].updateLandProperties(packet, remote_client); | 486 | landList[packet.ParcelData.LocalID].updateLandProperties(packet, remote_client); |
487 | } | 487 | } |
488 | } | 488 | } |
489 | public void handleParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) | 489 | public void handleParcelDivideRequest(int west, int south, int east, int north, IClientAPI remote_client) |
490 | { | 490 | { |
491 | subdivide(west, south, east, north, remote_client.AgentId); | 491 | subdivide(west, south, east, north, remote_client.AgentId); |
492 | } | 492 | } |
493 | public void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client) | 493 | public void handleParcelJoinRequest(int west, int south, int east, int north, IClientAPI remote_client) |
494 | { | 494 | { |
495 | join(west, south, east, north, remote_client.AgentId); | 495 | join(west, south, east, north, remote_client.AgentId); |
496 | 496 | ||
497 | } | 497 | } |
498 | 498 | ||
499 | public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client) | 499 | public void handleParcelSelectObjectsRequest(int local_id, int request_type, IClientAPI remote_client) |
500 | { | 500 | { |
501 | landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client); | 501 | landList[local_id].sendForceObjectSelect(local_id, request_type, remote_client); |
502 | } | 502 | } |
503 | 503 | ||
504 | public void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client) | 504 | public void handleParcelObjectOwnersRequest(int local_id, IClientAPI remote_client) |
505 | { | 505 | { |
506 | landList[local_id].sendLandObjectOwners(remote_client); | 506 | landList[local_id].sendLandObjectOwners(remote_client); |
507 | } | 507 | } |
508 | #endregion | 508 | #endregion |
509 | 509 | ||
510 | /// <summary> | 510 | /// <summary> |
511 | /// Resets the sim to the default land object (full sim piece of land owned by the default user) | 511 | /// Resets the sim to the default land object (full sim piece of land owned by the default user) |
512 | /// </summary> | 512 | /// </summary> |
513 | public void resetSimLandObjects() | 513 | public void resetSimLandObjects() |
514 | { | 514 | { |
515 | //Remove all the land objects in the sim and add a blank, full sim land object set to public | 515 | //Remove all the land objects in the sim and add a blank, full sim land object set to public |
516 | landList.Clear(); | 516 | landList.Clear(); |
517 | lastLandLocalID = START_LAND_LOCAL_ID - 1; | 517 | lastLandLocalID = START_LAND_LOCAL_ID - 1; |
518 | landIDList.Initialize(); | 518 | landIDList.Initialize(); |
519 | 519 | ||
520 | Land fullSimParcel = new Land(LLUUID.Zero, false, m_scene); | 520 | Land fullSimParcel = new Land(LLUUID.Zero, false, m_scene); |
521 | 521 | ||
522 | fullSimParcel.setLandBitmap(Land.getSquareLandBitmap(0, 0, 256, 256)); | 522 | fullSimParcel.setLandBitmap(Land.getSquareLandBitmap(0, 0, 256, 256)); |
523 | fullSimParcel.landData.ownerID = m_regInfo.MasterAvatarAssignedUUID; | 523 | fullSimParcel.landData.ownerID = m_regInfo.MasterAvatarAssignedUUID; |
524 | 524 | ||
525 | addLandObject(fullSimParcel); | 525 | addLandObject(fullSimParcel); |
526 | 526 | ||
527 | } | 527 | } |
528 | 528 | ||
529 | 529 | ||
530 | public void handleSignificantClientMovement(IClientAPI remote_client) | 530 | public void handleSignificantClientMovement(IClientAPI remote_client) |
531 | { | 531 | { |
532 | ScenePresence clientAvatar = m_scene.RequestAvatar(remote_client.AgentId); | 532 | ScenePresence clientAvatar = m_scene.RequestAvatar(remote_client.AgentId); |
533 | if (clientAvatar != null) | 533 | if (clientAvatar != null) |
534 | { | 534 | { |
535 | Land over = getLandObject(clientAvatar.Pos.X,clientAvatar.Pos.Y); | 535 | Land over = getLandObject(clientAvatar.Pos.X,clientAvatar.Pos.Y); |
536 | if (over != null) | 536 | if (over != null) |
537 | { | 537 | { |
538 | over.sendLandProperties(0, false, 0, remote_client); | 538 | over.sendLandProperties(0, false, 0, remote_client); |
539 | } | 539 | } |
540 | } | 540 | } |
541 | } | 541 | } |
542 | 542 | ||
543 | public void resetAllLandPrimCounts() | 543 | public void resetAllLandPrimCounts() |
544 | { | 544 | { |
545 | foreach (Land p in landList.Values) | 545 | foreach (Land p in landList.Values) |
546 | { | 546 | { |
547 | p.resetLandPrimCounts(); | 547 | p.resetLandPrimCounts(); |
548 | } | 548 | } |
549 | } | 549 | } |
550 | public void setPrimsTainted() | 550 | public void setPrimsTainted() |
551 | { | 551 | { |
552 | this.landPrimCountTainted = true; | 552 | this.landPrimCountTainted = true; |
553 | } | 553 | } |
554 | 554 | ||
555 | public void addPrimToLandPrimCounts(SceneObject obj) | 555 | public void addPrimToLandPrimCounts(SceneObject obj) |
556 | { | 556 | { |
557 | LLVector3 position = obj.Pos; | 557 | LLVector3 position = obj.Pos; |
558 | Land landUnderPrim = getLandObject(position.X, position.Y); | 558 | Land landUnderPrim = getLandObject(position.X, position.Y); |
559 | if (landUnderPrim != null) | 559 | if (landUnderPrim != null) |
560 | { | 560 | { |
561 | landUnderPrim.addPrimToCount(obj); | 561 | landUnderPrim.addPrimToCount(obj); |
562 | } | 562 | } |
563 | } | 563 | } |
564 | 564 | ||
565 | public void removePrimFromLandPrimCounts(SceneObject obj) | 565 | public void removePrimFromLandPrimCounts(SceneObject obj) |
566 | { | 566 | { |
567 | foreach (Land p in landList.Values) | 567 | foreach (Land p in landList.Values) |
568 | { | 568 | { |
569 | p.removePrimFromCount(obj); | 569 | p.removePrimFromCount(obj); |
570 | } | 570 | } |
571 | } | 571 | } |
572 | 572 | ||
573 | public void finalizeLandPrimCountUpdate() | 573 | public void finalizeLandPrimCountUpdate() |
574 | { | 574 | { |
575 | //Get Simwide prim count for owner | 575 | //Get Simwide prim count for owner |
576 | Dictionary<LLUUID, List<Land>> landOwnersAndParcels = new Dictionary<LLUUID,List<Land>>(); | 576 | Dictionary<LLUUID, List<Land>> landOwnersAndParcels = new Dictionary<LLUUID,List<Land>>(); |
577 | foreach (Land p in landList.Values) | 577 | foreach (Land p in landList.Values) |
578 | { | 578 | { |
579 | if(!landOwnersAndParcels.ContainsKey(p.landData.ownerID)) | 579 | if(!landOwnersAndParcels.ContainsKey(p.landData.ownerID)) |
580 | { | 580 | { |
581 | List<Land> tempList = new List<Land>(); | 581 | List<Land> tempList = new List<Land>(); |
582 | tempList.Add(p); | 582 | tempList.Add(p); |
583 | landOwnersAndParcels.Add(p.landData.ownerID,tempList); | 583 | landOwnersAndParcels.Add(p.landData.ownerID,tempList); |
584 | } | 584 | } |
585 | else | 585 | else |
586 | { | 586 | { |
587 | landOwnersAndParcels[p.landData.ownerID].Add(p); | 587 | landOwnersAndParcels[p.landData.ownerID].Add(p); |
588 | } | 588 | } |
589 | } | 589 | } |
590 | 590 | ||
591 | foreach (LLUUID owner in landOwnersAndParcels.Keys) | 591 | foreach (LLUUID owner in landOwnersAndParcels.Keys) |
592 | { | 592 | { |
593 | int simArea = 0; | 593 | int simArea = 0; |
594 | int simPrims = 0; | 594 | int simPrims = 0; |
595 | foreach (Land p in landOwnersAndParcels[owner]) | 595 | foreach (Land p in landOwnersAndParcels[owner]) |
596 | { | 596 | { |
597 | simArea += p.landData.area; | 597 | simArea += p.landData.area; |
598 | simPrims += p.landData.ownerPrims + p.landData.otherPrims + p.landData.groupPrims + p.landData.selectedPrims; | 598 | simPrims += p.landData.ownerPrims + p.landData.otherPrims + p.landData.groupPrims + p.landData.selectedPrims; |
599 | } | 599 | } |
600 | 600 | ||
601 | foreach (Land p in landOwnersAndParcels[owner]) | 601 | foreach (Land p in landOwnersAndParcels[owner]) |
602 | { | 602 | { |
603 | p.landData.simwideArea = simArea; | 603 | p.landData.simwideArea = simArea; |
604 | p.landData.simwidePrims = simPrims; | 604 | p.landData.simwidePrims = simPrims; |
605 | } | 605 | } |
606 | } | 606 | } |
607 | 607 | ||
608 | } | 608 | } |
609 | #endregion | 609 | #endregion |
610 | } | 610 | } |
611 | #endregion | 611 | #endregion |
612 | 612 | ||
613 | 613 | ||
614 | 614 | ||
615 | 615 | ||
616 | 616 | ||
617 | } | 617 | } |
diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs index 4f48217..a4b3852 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectGroup2.cs | |||
@@ -1,299 +1,299 @@ | |||
1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
2 | using System.Text; | 2 | using System.Text; |
3 | using Axiom.Math; | 3 | using Axiom.Math; |
4 | using libsecondlife; | 4 | using libsecondlife; |
5 | using libsecondlife.Packets; | 5 | using libsecondlife.Packets; |
6 | using OpenSim.Framework.Interfaces; | 6 | using OpenSim.Framework.Interfaces; |
7 | using OpenSim.Framework.Types; | 7 | using OpenSim.Framework.Types; |
8 | using OpenSim.Physics.Manager; | 8 | using OpenSim.Physics.Manager; |
9 | 9 | ||
10 | namespace OpenSim.Region.Environment.Scenes | 10 | namespace OpenSim.Region.Environment.Scenes |
11 | { | 11 | { |
12 | // public delegate void PrimCountTaintedDelegate(); | 12 | // public delegate void PrimCountTaintedDelegate(); |
13 | 13 | ||
14 | public class AllNewSceneObjectGroup2 : EntityBase | 14 | public class AllNewSceneObjectGroup2 : EntityBase |
15 | { | 15 | { |
16 | private Encoding enc = Encoding.ASCII; | 16 | private Encoding enc = Encoding.ASCII; |
17 | 17 | ||
18 | protected AllNewSceneObjectPart2 m_rootPart; | 18 | protected AllNewSceneObjectPart2 m_rootPart; |
19 | protected Dictionary<LLUUID, AllNewSceneObjectPart2> m_parts = new Dictionary<LLUUID, AllNewSceneObjectPart2>(); | 19 | protected Dictionary<LLUUID, AllNewSceneObjectPart2> m_parts = new Dictionary<LLUUID, AllNewSceneObjectPart2>(); |
20 | 20 | ||
21 | public event PrimCountTaintedDelegate OnPrimCountTainted; | 21 | public event PrimCountTaintedDelegate OnPrimCountTainted; |
22 | 22 | ||
23 | /// <summary> | 23 | /// <summary> |
24 | /// | 24 | /// |
25 | /// </summary> | 25 | /// </summary> |
26 | public int primCount | 26 | public int primCount |
27 | { | 27 | { |
28 | get | 28 | get |
29 | { | 29 | { |
30 | return 1; | 30 | return 1; |
31 | } | 31 | } |
32 | } | 32 | } |
33 | 33 | ||
34 | /// <summary> | 34 | /// <summary> |
35 | /// | 35 | /// |
36 | /// </summary> | 36 | /// </summary> |
37 | public LLVector3 GroupCentrePoint | 37 | public LLVector3 GroupCentrePoint |
38 | { | 38 | { |
39 | get | 39 | get |
40 | { | 40 | { |
41 | return new LLVector3(0, 0, 0); | 41 | return new LLVector3(0, 0, 0); |
42 | } | 42 | } |
43 | } | 43 | } |
44 | 44 | ||
45 | /// <summary> | 45 | /// <summary> |
46 | /// | 46 | /// |
47 | /// </summary> | 47 | /// </summary> |
48 | public AllNewSceneObjectGroup2() | 48 | public AllNewSceneObjectGroup2() |
49 | { | 49 | { |
50 | 50 | ||
51 | } | 51 | } |
52 | 52 | ||
53 | /// <summary> | 53 | /// <summary> |
54 | /// | 54 | /// |
55 | /// </summary> | 55 | /// </summary> |
56 | public void FlagGroupForFullUpdate() | 56 | public void FlagGroupForFullUpdate() |
57 | { | 57 | { |
58 | 58 | ||
59 | } | 59 | } |
60 | 60 | ||
61 | /// <summary> | 61 | /// <summary> |
62 | /// | 62 | /// |
63 | /// </summary> | 63 | /// </summary> |
64 | public void FlagGroupForTerseUpdate() | 64 | public void FlagGroupForTerseUpdate() |
65 | { | 65 | { |
66 | 66 | ||
67 | } | 67 | } |
68 | 68 | ||
69 | /// <summary> | 69 | /// <summary> |
70 | /// | 70 | /// |
71 | /// </summary> | 71 | /// </summary> |
72 | /// <param name="objectGroup"></param> | 72 | /// <param name="objectGroup"></param> |
73 | public void LinkToGroup(AllNewSceneObjectGroup2 objectGroup) | 73 | public void LinkToGroup(AllNewSceneObjectGroup2 objectGroup) |
74 | { | 74 | { |
75 | 75 | ||
76 | } | 76 | } |
77 | 77 | ||
78 | /// <summary> | 78 | /// <summary> |
79 | /// | 79 | /// |
80 | /// </summary> | 80 | /// </summary> |
81 | /// <param name="primID"></param> | 81 | /// <param name="primID"></param> |
82 | /// <returns></returns> | 82 | /// <returns></returns> |
83 | private AllNewSceneObjectPart2 GetChildPrim(LLUUID primID) | 83 | private AllNewSceneObjectPart2 GetChildPrim(LLUUID primID) |
84 | { | 84 | { |
85 | AllNewSceneObjectPart2 childPart = null; | 85 | AllNewSceneObjectPart2 childPart = null; |
86 | if (this.m_parts.ContainsKey(primID)) | 86 | if (this.m_parts.ContainsKey(primID)) |
87 | { | 87 | { |
88 | childPart = this.m_parts[primID]; | 88 | childPart = this.m_parts[primID]; |
89 | } | 89 | } |
90 | return childPart; | 90 | return childPart; |
91 | } | 91 | } |
92 | 92 | ||
93 | /// <summary> | 93 | /// <summary> |
94 | /// | 94 | /// |
95 | /// </summary> | 95 | /// </summary> |
96 | /// <param name="localID"></param> | 96 | /// <param name="localID"></param> |
97 | /// <returns></returns> | 97 | /// <returns></returns> |
98 | private AllNewSceneObjectPart2 GetChildPrim(uint localID) | 98 | private AllNewSceneObjectPart2 GetChildPrim(uint localID) |
99 | { | 99 | { |
100 | foreach (AllNewSceneObjectPart2 part in this.m_parts.Values) | 100 | foreach (AllNewSceneObjectPart2 part in this.m_parts.Values) |
101 | { | 101 | { |
102 | if (part.m_localID == localID) | 102 | if (part.m_localID == localID) |
103 | { | 103 | { |
104 | return part; | 104 | return part; |
105 | } | 105 | } |
106 | } | 106 | } |
107 | return null; | 107 | return null; |
108 | } | 108 | } |
109 | 109 | ||
110 | public void TriggerTainted() | 110 | public void TriggerTainted() |
111 | { | 111 | { |
112 | if (OnPrimCountTainted != null) | 112 | if (OnPrimCountTainted != null) |
113 | { | 113 | { |
114 | this.OnPrimCountTainted(); | 114 | this.OnPrimCountTainted(); |
115 | } | 115 | } |
116 | } | 116 | } |
117 | 117 | ||
118 | /// <summary> | 118 | /// <summary> |
119 | /// | 119 | /// |
120 | /// </summary> | 120 | /// </summary> |
121 | /// <param name="offset"></param> | 121 | /// <param name="offset"></param> |
122 | /// <param name="pos"></param> | 122 | /// <param name="pos"></param> |
123 | /// <param name="remoteClient"></param> | 123 | /// <param name="remoteClient"></param> |
124 | public void GrapMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) | 124 | public void GrapMovement(LLVector3 offset, LLVector3 pos, IClientAPI remoteClient) |
125 | { | 125 | { |
126 | this.Pos = pos; | 126 | this.Pos = pos; |
127 | } | 127 | } |
128 | 128 | ||
129 | /// <summary> | 129 | /// <summary> |
130 | /// | 130 | /// |
131 | /// </summary> | 131 | /// </summary> |
132 | /// <param name="client"></param> | 132 | /// <param name="client"></param> |
133 | public void GetProperites(IClientAPI client) | 133 | public void GetProperites(IClientAPI client) |
134 | { | 134 | { |
135 | ObjectPropertiesPacket proper = new ObjectPropertiesPacket(); | 135 | ObjectPropertiesPacket proper = new ObjectPropertiesPacket(); |
136 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; | 136 | proper.ObjectData = new ObjectPropertiesPacket.ObjectDataBlock[1]; |
137 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); | 137 | proper.ObjectData[0] = new ObjectPropertiesPacket.ObjectDataBlock(); |
138 | proper.ObjectData[0].ItemID = LLUUID.Zero; | 138 | proper.ObjectData[0].ItemID = LLUUID.Zero; |
139 | proper.ObjectData[0].CreationDate = (ulong)this.m_rootPart.CreationDate; | 139 | proper.ObjectData[0].CreationDate = (ulong)this.m_rootPart.CreationDate; |
140 | proper.ObjectData[0].CreatorID = this.m_rootPart.CreatorID; | 140 | proper.ObjectData[0].CreatorID = this.m_rootPart.CreatorID; |
141 | proper.ObjectData[0].FolderID = LLUUID.Zero; | 141 | proper.ObjectData[0].FolderID = LLUUID.Zero; |
142 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; | 142 | proper.ObjectData[0].FromTaskID = LLUUID.Zero; |
143 | proper.ObjectData[0].GroupID = LLUUID.Zero; | 143 | proper.ObjectData[0].GroupID = LLUUID.Zero; |
144 | proper.ObjectData[0].InventorySerial = 0; | 144 | proper.ObjectData[0].InventorySerial = 0; |
145 | proper.ObjectData[0].LastOwnerID = this.m_rootPart.LastOwnerID; | 145 | proper.ObjectData[0].LastOwnerID = this.m_rootPart.LastOwnerID; |
146 | proper.ObjectData[0].ObjectID = this.m_uuid; | 146 | proper.ObjectData[0].ObjectID = this.m_uuid; |
147 | proper.ObjectData[0].OwnerID = this.m_rootPart.OwnerID; | 147 | proper.ObjectData[0].OwnerID = this.m_rootPart.OwnerID; |
148 | proper.ObjectData[0].TouchName = enc.GetBytes(this.m_rootPart.TouchName + "\0"); | 148 | proper.ObjectData[0].TouchName = enc.GetBytes(this.m_rootPart.TouchName + "\0"); |
149 | proper.ObjectData[0].TextureID = new byte[0]; | 149 | proper.ObjectData[0].TextureID = new byte[0]; |
150 | proper.ObjectData[0].SitName = enc.GetBytes(this.m_rootPart.SitName + "\0"); | 150 | proper.ObjectData[0].SitName = enc.GetBytes(this.m_rootPart.SitName + "\0"); |
151 | proper.ObjectData[0].Name = enc.GetBytes(this.m_rootPart.Name + "\0"); | 151 | proper.ObjectData[0].Name = enc.GetBytes(this.m_rootPart.Name + "\0"); |
152 | proper.ObjectData[0].Description = enc.GetBytes(this.m_rootPart.Description + "\0"); | 152 | proper.ObjectData[0].Description = enc.GetBytes(this.m_rootPart.Description + "\0"); |
153 | proper.ObjectData[0].OwnerMask = this.m_rootPart.OwnerMask; | 153 | proper.ObjectData[0].OwnerMask = this.m_rootPart.OwnerMask; |
154 | proper.ObjectData[0].NextOwnerMask = this.m_rootPart.NextOwnerMask; | 154 | proper.ObjectData[0].NextOwnerMask = this.m_rootPart.NextOwnerMask; |
155 | proper.ObjectData[0].GroupMask = this.m_rootPart.GroupMask; | 155 | proper.ObjectData[0].GroupMask = this.m_rootPart.GroupMask; |
156 | proper.ObjectData[0].EveryoneMask = this.m_rootPart.EveryoneMask; | 156 | proper.ObjectData[0].EveryoneMask = this.m_rootPart.EveryoneMask; |
157 | proper.ObjectData[0].BaseMask = this.m_rootPart.BaseMask; | 157 | proper.ObjectData[0].BaseMask = this.m_rootPart.BaseMask; |
158 | 158 | ||
159 | client.OutPacket(proper); | 159 | client.OutPacket(proper); |
160 | } | 160 | } |
161 | 161 | ||
162 | #region Shape | 162 | #region Shape |
163 | /// <summary> | 163 | /// <summary> |
164 | /// | 164 | /// |
165 | /// </summary> | 165 | /// </summary> |
166 | /// <param name="shapeBlock"></param> | 166 | /// <param name="shapeBlock"></param> |
167 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID) | 167 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock, uint localID) |
168 | { | 168 | { |
169 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); | 169 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); |
170 | if (part != null) | 170 | if (part != null) |
171 | { | 171 | { |
172 | part.UpdateShape(shapeBlock); | 172 | part.UpdateShape(shapeBlock); |
173 | } | 173 | } |
174 | } | 174 | } |
175 | #endregion | 175 | #endregion |
176 | 176 | ||
177 | #region Position | 177 | #region Position |
178 | public void UpdateGroupPosition(LLVector3 pos) | 178 | public void UpdateGroupPosition(LLVector3 pos) |
179 | { | 179 | { |
180 | this.m_pos = pos; | 180 | this.m_pos = pos; |
181 | } | 181 | } |
182 | 182 | ||
183 | public void UpdateSinglePosition(LLVector3 pos, uint localID) | 183 | public void UpdateSinglePosition(LLVector3 pos, uint localID) |
184 | { | 184 | { |
185 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); | 185 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); |
186 | if (part != null) | 186 | if (part != null) |
187 | { | 187 | { |
188 | if (part.uuid == this.m_rootPart.uuid) | 188 | if (part.uuid == this.m_rootPart.uuid) |
189 | { | 189 | { |
190 | this.UpdateRootPosition(pos); | 190 | this.UpdateRootPosition(pos); |
191 | } | 191 | } |
192 | else | 192 | else |
193 | { | 193 | { |
194 | part.UpdateOffSet(pos); | 194 | part.UpdateOffSet(pos); |
195 | } | 195 | } |
196 | } | 196 | } |
197 | } | 197 | } |
198 | 198 | ||
199 | private void UpdateRootPosition(LLVector3 pos) | 199 | private void UpdateRootPosition(LLVector3 pos) |
200 | { | 200 | { |
201 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); | 201 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); |
202 | LLVector3 oldPos = new LLVector3(this.Pos.X + this.m_rootPart.OffsetPosition.X, this.Pos.Y + this.m_rootPart.OffsetPosition.Y, this.Pos.Z + this.m_rootPart.OffsetPosition.Z); | 202 | LLVector3 oldPos = new LLVector3(this.Pos.X + this.m_rootPart.OffsetPosition.X, this.Pos.Y + this.m_rootPart.OffsetPosition.Y, this.Pos.Z + this.m_rootPart.OffsetPosition.Z); |
203 | LLVector3 diff = oldPos - newPos; | 203 | LLVector3 diff = oldPos - newPos; |
204 | Axiom.Math.Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); | 204 | Axiom.Math.Vector3 axDiff = new Vector3(diff.X, diff.Y, diff.Z); |
205 | Axiom.Math.Quaternion partRotation = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 205 | Axiom.Math.Quaternion partRotation = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); |
206 | axDiff = partRotation.Inverse() * axDiff; | 206 | axDiff = partRotation.Inverse() * axDiff; |
207 | diff.X = axDiff.x; | 207 | diff.X = axDiff.x; |
208 | diff.Y = axDiff.y; | 208 | diff.Y = axDiff.y; |
209 | diff.Z = axDiff.z; | 209 | diff.Z = axDiff.z; |
210 | 210 | ||
211 | foreach (AllNewSceneObjectPart2 obPart in this.m_parts.Values) | 211 | foreach (AllNewSceneObjectPart2 obPart in this.m_parts.Values) |
212 | { | 212 | { |
213 | if (obPart.uuid != this.m_rootPart.uuid) | 213 | if (obPart.uuid != this.m_rootPart.uuid) |
214 | { | 214 | { |
215 | obPart.OffsetPosition = obPart.OffsetPosition + diff; | 215 | obPart.OffsetPosition = obPart.OffsetPosition + diff; |
216 | } | 216 | } |
217 | } | 217 | } |
218 | this.Pos = newPos; | 218 | this.Pos = newPos; |
219 | pos.X = newPos.X; | 219 | pos.X = newPos.X; |
220 | pos.Y = newPos.Y; | 220 | pos.Y = newPos.Y; |
221 | pos.Z = newPos.Z; | 221 | pos.Z = newPos.Z; |
222 | } | 222 | } |
223 | #endregion | 223 | #endregion |
224 | 224 | ||
225 | #region Roation | 225 | #region Roation |
226 | public void UpdateGroupRotation(LLQuaternion rot) | 226 | public void UpdateGroupRotation(LLQuaternion rot) |
227 | { | 227 | { |
228 | this.m_rootPart.UpdateRotation(rot); | 228 | this.m_rootPart.UpdateRotation(rot); |
229 | } | 229 | } |
230 | 230 | ||
231 | /// <summary> | 231 | /// <summary> |
232 | /// | 232 | /// |
233 | /// </summary> | 233 | /// </summary> |
234 | /// <param name="pos"></param> | 234 | /// <param name="pos"></param> |
235 | /// <param name="rot"></param> | 235 | /// <param name="rot"></param> |
236 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) | 236 | public void UpdateGroupRotation(LLVector3 pos, LLQuaternion rot) |
237 | { | 237 | { |
238 | this.m_rootPart.UpdateRotation(rot); | 238 | this.m_rootPart.UpdateRotation(rot); |
239 | this.m_pos = pos; | 239 | this.m_pos = pos; |
240 | } | 240 | } |
241 | 241 | ||
242 | public void UpdateSingleRotation(LLQuaternion rot, uint localID) | 242 | public void UpdateSingleRotation(LLQuaternion rot, uint localID) |
243 | { | 243 | { |
244 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); | 244 | AllNewSceneObjectPart2 part = this.GetChildPrim(localID); |
245 | if (part != null) | 245 | if (part != null) |
246 | { | 246 | { |
247 | if (part.uuid == this.m_rootPart.uuid) | 247 | if (part.uuid == this.m_rootPart.uuid) |
248 | { | 248 | { |
249 | this.UpdateRootRotation(rot); | 249 | this.UpdateRootRotation(rot); |
250 | } | 250 | } |
251 | else | 251 | else |
252 | { | 252 | { |
253 | part.UpdateRotation(rot); | 253 | part.UpdateRotation(rot); |
254 | } | 254 | } |
255 | } | 255 | } |
256 | } | 256 | } |
257 | private void UpdateRootRotation(LLQuaternion rot) | 257 | private void UpdateRootRotation(LLQuaternion rot) |
258 | { | 258 | { |
259 | this.m_rootPart.UpdateRotation(rot); | 259 | this.m_rootPart.UpdateRotation(rot); |
260 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); | 260 | Axiom.Math.Quaternion axRot = new Quaternion(rot.W, rot.X, rot.Y, rot.Z); |
261 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); | 261 | Axiom.Math.Quaternion oldParentRot = new Quaternion(this.m_rootPart.RotationOffset.W, this.m_rootPart.RotationOffset.X, this.m_rootPart.RotationOffset.Y, this.m_rootPart.RotationOffset.Z); |
262 | 262 | ||
263 | foreach (AllNewSceneObjectPart2 prim in this.m_parts.Values) | 263 | foreach (AllNewSceneObjectPart2 prim in this.m_parts.Values) |
264 | { | 264 | { |
265 | if (prim.uuid != this.m_rootPart.uuid) | 265 | if (prim.uuid != this.m_rootPart.uuid) |
266 | { | 266 | { |
267 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); | 267 | Vector3 axPos = new Vector3(prim.OffsetPosition.X, prim.OffsetPosition.Y, prim.OffsetPosition.Z); |
268 | axPos = oldParentRot * axPos; | 268 | axPos = oldParentRot * axPos; |
269 | axPos = axRot.Inverse() * axPos; | 269 | axPos = axRot.Inverse() * axPos; |
270 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); | 270 | prim.OffsetPosition = new LLVector3(axPos.x, axPos.y, axPos.z); |
271 | Axiom.Math.Quaternion primsRot = new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, prim.RotationOffset.Z); | 271 | Axiom.Math.Quaternion primsRot = new Quaternion(prim.RotationOffset.W, prim.RotationOffset.X, prim.RotationOffset.Y, prim.RotationOffset.Z); |
272 | Axiom.Math.Quaternion newRot = oldParentRot * primsRot; | 272 | Axiom.Math.Quaternion newRot = oldParentRot * primsRot; |
273 | newRot = axRot.Inverse() * newRot; | 273 | newRot = axRot.Inverse() * newRot; |
274 | prim.RotationOffset = new LLQuaternion(newRot.w, newRot.x, newRot.y, newRot.z); | 274 | prim.RotationOffset = new LLQuaternion(newRot.w, newRot.x, newRot.y, newRot.z); |
275 | } | 275 | } |
276 | } | 276 | } |
277 | } | 277 | } |
278 | #endregion | 278 | #endregion |
279 | /// <summary> | 279 | /// <summary> |
280 | /// | 280 | /// |
281 | /// </summary> | 281 | /// </summary> |
282 | /// <param name="part"></param> | 282 | /// <param name="part"></param> |
283 | private void SetPartAsRoot(AllNewSceneObjectPart2 part) | 283 | private void SetPartAsRoot(AllNewSceneObjectPart2 part) |
284 | { | 284 | { |
285 | this.m_rootPart = part; | 285 | this.m_rootPart = part; |
286 | this.m_uuid = part.uuid; | 286 | this.m_uuid = part.uuid; |
287 | this.m_localId = part.m_localID; | 287 | this.m_localId = part.m_localID; |
288 | } | 288 | } |
289 | 289 | ||
290 | /// <summary> | 290 | /// <summary> |
291 | /// | 291 | /// |
292 | /// </summary> | 292 | /// </summary> |
293 | /// <param name="part"></param> | 293 | /// <param name="part"></param> |
294 | private void SetPartAsNonRoot(AllNewSceneObjectPart2 part) | 294 | private void SetPartAsNonRoot(AllNewSceneObjectPart2 part) |
295 | { | 295 | { |
296 | 296 | ||
297 | } | 297 | } |
298 | } | 298 | } |
299 | } | 299 | } |
diff --git a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs index 82d4cd0..07d1357 100644 --- a/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs +++ b/OpenSim/Region/Environment/Scenes/AllNewSceneObjectPart2.cs | |||
@@ -1,216 +1,216 @@ | |||
1 | using System.Collections.Generic; | 1 | using System.Collections.Generic; |
2 | using System.Text; | 2 | using System.Text; |
3 | using System; | 3 | using System; |
4 | using Axiom.Math; | 4 | using Axiom.Math; |
5 | using libsecondlife; | 5 | using libsecondlife; |
6 | using libsecondlife.Packets; | 6 | using libsecondlife.Packets; |
7 | using OpenSim.Framework.Interfaces; | 7 | using OpenSim.Framework.Interfaces; |
8 | using OpenSim.Framework.Types; | 8 | using OpenSim.Framework.Types; |
9 | 9 | ||
10 | namespace OpenSim.Region.Environment.Scenes | 10 | namespace OpenSim.Region.Environment.Scenes |
11 | { | 11 | { |
12 | 12 | ||
13 | public class AllNewSceneObjectPart2 | 13 | public class AllNewSceneObjectPart2 |
14 | { | 14 | { |
15 | private const uint FULL_MASK_PERMISSIONS = 2147483647; | 15 | private const uint FULL_MASK_PERMISSIONS = 2147483647; |
16 | 16 | ||
17 | private uint m_flags = 32 + 65536 + 131072 + 256 + 4 + 8 + 2048 + 524288 + 268435456 + 128; | 17 | private uint m_flags = 32 + 65536 + 131072 + 256 + 4 + 8 + 2048 + 524288 + 268435456 + 128; |
18 | private ulong m_regionHandle; | 18 | private ulong m_regionHandle; |
19 | 19 | ||
20 | public string SitName = ""; | 20 | public string SitName = ""; |
21 | public string TouchName = ""; | 21 | public string TouchName = ""; |
22 | public string Text = ""; | 22 | public string Text = ""; |
23 | 23 | ||
24 | public LLUUID CreatorID; | 24 | public LLUUID CreatorID; |
25 | public LLUUID OwnerID; | 25 | public LLUUID OwnerID; |
26 | public LLUUID LastOwnerID; | 26 | public LLUUID LastOwnerID; |
27 | public Int32 CreationDate; | 27 | public Int32 CreationDate; |
28 | 28 | ||
29 | public LLUUID uuid; | 29 | public LLUUID uuid; |
30 | public uint m_localID; | 30 | public uint m_localID; |
31 | 31 | ||
32 | public uint ParentID = 0; | 32 | public uint ParentID = 0; |
33 | 33 | ||
34 | public uint OwnerMask = FULL_MASK_PERMISSIONS; | 34 | public uint OwnerMask = FULL_MASK_PERMISSIONS; |
35 | public uint NextOwnerMask = FULL_MASK_PERMISSIONS; | 35 | public uint NextOwnerMask = FULL_MASK_PERMISSIONS; |
36 | public uint GroupMask = FULL_MASK_PERMISSIONS; | 36 | public uint GroupMask = FULL_MASK_PERMISSIONS; |
37 | public uint EveryoneMask = FULL_MASK_PERMISSIONS; | 37 | public uint EveryoneMask = FULL_MASK_PERMISSIONS; |
38 | public uint BaseMask = FULL_MASK_PERMISSIONS; | 38 | public uint BaseMask = FULL_MASK_PERMISSIONS; |
39 | 39 | ||
40 | protected PrimitiveBaseShape m_Shape; | 40 | protected PrimitiveBaseShape m_Shape; |
41 | 41 | ||
42 | protected AllNewSceneObjectGroup2 m_parentGroup; | 42 | protected AllNewSceneObjectGroup2 m_parentGroup; |
43 | 43 | ||
44 | 44 | ||
45 | #region Properties | 45 | #region Properties |
46 | protected string m_name; | 46 | protected string m_name; |
47 | /// <summary> | 47 | /// <summary> |
48 | /// | 48 | /// |
49 | /// </summary> | 49 | /// </summary> |
50 | public virtual string Name | 50 | public virtual string Name |
51 | { | 51 | { |
52 | get { return m_name; } | 52 | get { return m_name; } |
53 | set { m_name = value; } | 53 | set { m_name = value; } |
54 | } | 54 | } |
55 | 55 | ||
56 | protected LLVector3 m_offset; | 56 | protected LLVector3 m_offset; |
57 | public LLVector3 OffsetPosition | 57 | public LLVector3 OffsetPosition |
58 | { | 58 | { |
59 | get | 59 | get |
60 | { | 60 | { |
61 | return m_offset; | 61 | return m_offset; |
62 | } | 62 | } |
63 | set | 63 | set |
64 | { | 64 | { |
65 | m_offset = value; | 65 | m_offset = value; |
66 | } | 66 | } |
67 | } | 67 | } |
68 | 68 | ||
69 | protected LLQuaternion m_rotationOffset; | 69 | protected LLQuaternion m_rotationOffset; |
70 | public LLQuaternion RotationOffset | 70 | public LLQuaternion RotationOffset |
71 | { | 71 | { |
72 | get | 72 | get |
73 | { | 73 | { |
74 | return m_rotationOffset; | 74 | return m_rotationOffset; |
75 | } | 75 | } |
76 | set | 76 | set |
77 | { | 77 | { |
78 | m_rotationOffset = value; | 78 | m_rotationOffset = value; |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ||
82 | private string m_description = ""; | 82 | private string m_description = ""; |
83 | public string Description | 83 | public string Description |
84 | { | 84 | { |
85 | get | 85 | get |
86 | { | 86 | { |
87 | return this.m_description; | 87 | return this.m_description; |
88 | } | 88 | } |
89 | set | 89 | set |
90 | { | 90 | { |
91 | this.m_description = value; | 91 | this.m_description = value; |
92 | } | 92 | } |
93 | } | 93 | } |
94 | 94 | ||
95 | public PrimitiveBaseShape Shape | 95 | public PrimitiveBaseShape Shape |
96 | { | 96 | { |
97 | get | 97 | get |
98 | { | 98 | { |
99 | return this.m_Shape; | 99 | return this.m_Shape; |
100 | } | 100 | } |
101 | } | 101 | } |
102 | 102 | ||
103 | public LLVector3 Scale | 103 | public LLVector3 Scale |
104 | { | 104 | { |
105 | set | 105 | set |
106 | { | 106 | { |
107 | this.m_Shape.Scale = value; | 107 | this.m_Shape.Scale = value; |
108 | } | 108 | } |
109 | get | 109 | get |
110 | { | 110 | { |
111 | return this.m_Shape.Scale; | 111 | return this.m_Shape.Scale; |
112 | } | 112 | } |
113 | } | 113 | } |
114 | #endregion | 114 | #endregion |
115 | 115 | ||
116 | #region Constructors | 116 | #region Constructors |
117 | public AllNewSceneObjectPart2(ulong regionHandle, AllNewSceneObjectGroup2 parent, LLUUID ownerID, uint localID, PrimitiveBaseShape shape, LLVector3 position) | 117 | public AllNewSceneObjectPart2(ulong regionHandle, AllNewSceneObjectGroup2 parent, LLUUID ownerID, uint localID, PrimitiveBaseShape shape, LLVector3 position) |
118 | { | 118 | { |
119 | this.m_regionHandle = regionHandle; | 119 | this.m_regionHandle = regionHandle; |
120 | this.m_parentGroup = parent; | 120 | this.m_parentGroup = parent; |
121 | 121 | ||
122 | this.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; | 122 | this.CreationDate = (Int32)(DateTime.UtcNow - new DateTime(1970, 1, 1)).TotalSeconds; |
123 | this.OwnerID = ownerID; | 123 | this.OwnerID = ownerID; |
124 | this.CreatorID = this.OwnerID; | 124 | this.CreatorID = this.OwnerID; |
125 | this.LastOwnerID = LLUUID.Zero; | 125 | this.LastOwnerID = LLUUID.Zero; |
126 | this.uuid = LLUUID.Random(); | 126 | this.uuid = LLUUID.Random(); |
127 | this.m_localID = (uint)(localID); | 127 | this.m_localID = (uint)(localID); |
128 | this.m_Shape = shape; | 128 | this.m_Shape = shape; |
129 | 129 | ||
130 | this.OffsetPosition = position; | 130 | this.OffsetPosition = position; |
131 | 131 | ||
132 | //temporary code just so the m_flags field doesn't give a compiler warning | 132 | //temporary code just so the m_flags field doesn't give a compiler warning |
133 | if (m_flags == 1) | 133 | if (m_flags == 1) |
134 | { | 134 | { |
135 | 135 | ||
136 | } | 136 | } |
137 | } | 137 | } |
138 | #endregion | 138 | #endregion |
139 | 139 | ||
140 | #region Shape | 140 | #region Shape |
141 | /// <summary> | 141 | /// <summary> |
142 | /// | 142 | /// |
143 | /// </summary> | 143 | /// </summary> |
144 | /// <param name="shapeBlock"></param> | 144 | /// <param name="shapeBlock"></param> |
145 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) | 145 | public void UpdateShape(ObjectShapePacket.ObjectDataBlock shapeBlock) |
146 | { | 146 | { |
147 | this.m_Shape.PathBegin = shapeBlock.PathBegin; | 147 | this.m_Shape.PathBegin = shapeBlock.PathBegin; |
148 | this.m_Shape.PathEnd = shapeBlock.PathEnd; | 148 | this.m_Shape.PathEnd = shapeBlock.PathEnd; |
149 | this.m_Shape.PathScaleX = shapeBlock.PathScaleX; | 149 | this.m_Shape.PathScaleX = shapeBlock.PathScaleX; |
150 | this.m_Shape.PathScaleY = shapeBlock.PathScaleY; | 150 | this.m_Shape.PathScaleY = shapeBlock.PathScaleY; |
151 | this.m_Shape.PathShearX = shapeBlock.PathShearX; | 151 | this.m_Shape.PathShearX = shapeBlock.PathShearX; |
152 | this.m_Shape.PathShearY = shapeBlock.PathShearY; | 152 | this.m_Shape.PathShearY = shapeBlock.PathShearY; |
153 | this.m_Shape.PathSkew = shapeBlock.PathSkew; | 153 | this.m_Shape.PathSkew = shapeBlock.PathSkew; |
154 | this.m_Shape.ProfileBegin = shapeBlock.ProfileBegin; | 154 | this.m_Shape.ProfileBegin = shapeBlock.ProfileBegin; |
155 | this.m_Shape.ProfileEnd = shapeBlock.ProfileEnd; | 155 | this.m_Shape.ProfileEnd = shapeBlock.ProfileEnd; |
156 | this.m_Shape.PathCurve = shapeBlock.PathCurve; | 156 | this.m_Shape.PathCurve = shapeBlock.PathCurve; |
157 | this.m_Shape.ProfileCurve = shapeBlock.ProfileCurve; | 157 | this.m_Shape.ProfileCurve = shapeBlock.ProfileCurve; |
158 | this.m_Shape.ProfileHollow = shapeBlock.ProfileHollow; | 158 | this.m_Shape.ProfileHollow = shapeBlock.ProfileHollow; |
159 | this.m_Shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; | 159 | this.m_Shape.PathRadiusOffset = shapeBlock.PathRadiusOffset; |
160 | this.m_Shape.PathRevolutions = shapeBlock.PathRevolutions; | 160 | this.m_Shape.PathRevolutions = shapeBlock.PathRevolutions; |
161 | this.m_Shape.PathTaperX = shapeBlock.PathTaperX; | 161 | this.m_Shape.PathTaperX = shapeBlock.PathTaperX; |
162 | this.m_Shape.PathTaperY = shapeBlock.PathTaperY; | 162 | this.m_Shape.PathTaperY = shapeBlock.PathTaperY; |
163 | this.m_Shape.PathTwist = shapeBlock.PathTwist; | 163 | this.m_Shape.PathTwist = shapeBlock.PathTwist; |
164 | this.m_Shape.PathTwistBegin = shapeBlock.PathTwistBegin; | 164 | this.m_Shape.PathTwistBegin = shapeBlock.PathTwistBegin; |
165 | } | 165 | } |
166 | #endregion | 166 | #endregion |
167 | 167 | ||
168 | #region Texture | 168 | #region Texture |
169 | /// <summary> | 169 | /// <summary> |
170 | /// | 170 | /// |
171 | /// </summary> | 171 | /// </summary> |
172 | /// <param name="textureEntry"></param> | 172 | /// <param name="textureEntry"></param> |
173 | public void UpdateTextureEntry(byte[] textureEntry) | 173 | public void UpdateTextureEntry(byte[] textureEntry) |
174 | { | 174 | { |
175 | this.m_Shape.TextureEntry = textureEntry; | 175 | this.m_Shape.TextureEntry = textureEntry; |
176 | } | 176 | } |
177 | #endregion | 177 | #endregion |
178 | 178 | ||
179 | #region Position | 179 | #region Position |
180 | /// <summary> | 180 | /// <summary> |
181 | /// | 181 | /// |
182 | /// </summary> | 182 | /// </summary> |
183 | /// <param name="pos"></param> | 183 | /// <param name="pos"></param> |
184 | public void UpdateOffSet(LLVector3 pos) | 184 | public void UpdateOffSet(LLVector3 pos) |
185 | { | 185 | { |
186 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); | 186 | LLVector3 newPos = new LLVector3(pos.X, pos.Y, pos.Z); |
187 | this.OffsetPosition = newPos; | 187 | this.OffsetPosition = newPos; |
188 | } | 188 | } |
189 | #endregion | 189 | #endregion |
190 | 190 | ||
191 | #region rotation | 191 | #region rotation |
192 | public void UpdateRotation(LLQuaternion rot) | 192 | public void UpdateRotation(LLQuaternion rot) |
193 | { | 193 | { |
194 | this.RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W); | 194 | this.RotationOffset = new LLQuaternion(rot.X, rot.Y, rot.Z, rot.W); |
195 | } | 195 | } |
196 | #endregion | 196 | #endregion |
197 | 197 | ||
198 | #region Resizing/Scale | 198 | #region Resizing/Scale |
199 | /// <summary> | 199 | /// <summary> |
200 | /// | 200 | /// |
201 | /// </summary> | 201 | /// </summary> |
202 | /// <param name="scale"></param> | 202 | /// <param name="scale"></param> |
203 | public void Resize(LLVector3 scale) | 203 | public void Resize(LLVector3 scale) |
204 | { | 204 | { |
205 | LLVector3 offset = (scale - this.m_Shape.Scale); | 205 | LLVector3 offset = (scale - this.m_Shape.Scale); |
206 | offset.X /= 2; | 206 | offset.X /= 2; |
207 | offset.Y /= 2; | 207 | offset.Y /= 2; |
208 | offset.Z /= 2; | 208 | offset.Z /= 2; |
209 | 209 | ||
210 | this.OffsetPosition += offset; | 210 | this.OffsetPosition += offset; |
211 | this.m_Shape.Scale = scale; | 211 | this.m_Shape.Scale = scale; |
212 | } | 212 | } |
213 | #endregion | 213 | #endregion |
214 | } | 214 | } |
215 | } | 215 | } |
216 | 216 | ||
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/Common.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/Common.cs index 790871b..554ba1a 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/Common.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/Common.cs | |||
@@ -1,84 +1,84 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | 32 | ||
33 | namespace OpenSim.Region.Scripting.LSL | 33 | namespace OpenSim.Region.Scripting.LSL |
34 | { | 34 | { |
35 | public static class Common | 35 | public static class Common |
36 | { | 36 | { |
37 | static public bool Debug = true; | 37 | static public bool Debug = true; |
38 | static public bool IL_UseTryCatch = true; | 38 | static public bool IL_UseTryCatch = true; |
39 | static public bool IL_CreateConstructor = true; | 39 | static public bool IL_CreateConstructor = true; |
40 | static public bool IL_CreateFunctionList = true; | 40 | static public bool IL_CreateFunctionList = true; |
41 | static public bool IL_ProcessCodeChunks = true; | 41 | static public bool IL_ProcessCodeChunks = true; |
42 | 42 | ||
43 | public delegate void SendToDebugEventDelegate(string Message); | 43 | public delegate void SendToDebugEventDelegate(string Message); |
44 | public delegate void SendToLogEventDelegate(string Message); | 44 | public delegate void SendToLogEventDelegate(string Message); |
45 | static public event SendToDebugEventDelegate SendToDebugEvent; | 45 | static public event SendToDebugEventDelegate SendToDebugEvent; |
46 | static public event SendToLogEventDelegate SendToLogEvent; | 46 | static public event SendToLogEventDelegate SendToLogEvent; |
47 | 47 | ||
48 | static public void SendToDebug(string Message) | 48 | static public void SendToDebug(string Message) |
49 | { | 49 | { |
50 | //if (Debug == true) | 50 | //if (Debug == true) |
51 | Console.WriteLine("Debug: " + Message); | 51 | Console.WriteLine("Debug: " + Message); |
52 | SendToDebugEvent(DateTime.Now.ToString("[HH:mm:ss] ") + Message + "\r\n"); | 52 | SendToDebugEvent(DateTime.Now.ToString("[HH:mm:ss] ") + Message + "\r\n"); |
53 | } | 53 | } |
54 | static public void SendToLog(string Message) | 54 | static public void SendToLog(string Message) |
55 | { | 55 | { |
56 | //if (Debug == true) | 56 | //if (Debug == true) |
57 | Console.WriteLine("LOG: " + Message); | 57 | Console.WriteLine("LOG: " + Message); |
58 | SendToLogEvent(DateTime.Now.ToString("[HH:mm:ss] ") + Message + "\r\n"); | 58 | SendToLogEvent(DateTime.Now.ToString("[HH:mm:ss] ") + Message + "\r\n"); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | // TEMPORARY TEST THINGIES | 62 | // TEMPORARY TEST THINGIES |
63 | public static class IL_Helper | 63 | public static class IL_Helper |
64 | { | 64 | { |
65 | public static string ReverseFormatString(string text1, string format) | 65 | public static string ReverseFormatString(string text1, string format) |
66 | { | 66 | { |
67 | Common.SendToDebug("ReverseFormatString text1: " + text1); | 67 | Common.SendToDebug("ReverseFormatString text1: " + text1); |
68 | Common.SendToDebug("ReverseFormatString format: " + format); | 68 | Common.SendToDebug("ReverseFormatString format: " + format); |
69 | return string.Format(format, text1); | 69 | return string.Format(format, text1); |
70 | } | 70 | } |
71 | public static string ReverseFormatString(string text1, UInt32 text2, string format) | 71 | public static string ReverseFormatString(string text1, UInt32 text2, string format) |
72 | { | 72 | { |
73 | Common.SendToDebug("ReverseFormatString text1: " + text1); | 73 | Common.SendToDebug("ReverseFormatString text1: " + text1); |
74 | Common.SendToDebug("ReverseFormatString text2: " + text2.ToString()); | 74 | Common.SendToDebug("ReverseFormatString text2: " + text2.ToString()); |
75 | Common.SendToDebug("ReverseFormatString format: " + format); | 75 | Common.SendToDebug("ReverseFormatString format: " + format); |
76 | return string.Format(format, text1, text2.ToString()); | 76 | return string.Format(format, text1, text2.ToString()); |
77 | } | 77 | } |
78 | public static string Cast_ToString(object obj) | 78 | public static string Cast_ToString(object obj) |
79 | { | 79 | { |
80 | Common.SendToDebug("OBJECT TO BE CASTED: " + obj.GetType().ToString()); | 80 | Common.SendToDebug("OBJECT TO BE CASTED: " + obj.GetType().ToString()); |
81 | return "ABCDEFGIHJKLMNOPQ123"; | 81 | return "ABCDEFGIHJKLMNOPQ123"; |
82 | } | 82 | } |
83 | } | 83 | } |
84 | } | 84 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/IL_common_functions.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/IL_common_functions.cs index cae78b7..2f23a91 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/IL_common_functions.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/IL_common_functions.cs | |||
@@ -1,56 +1,56 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | using System.Reflection.Emit; | 33 | using System.Reflection.Emit; |
34 | 34 | ||
35 | namespace OpenSim.Region.Scripting.LSL | 35 | namespace OpenSim.Region.Scripting.LSL |
36 | { | 36 | { |
37 | partial class LSO_Parser | 37 | partial class LSO_Parser |
38 | { | 38 | { |
39 | private static TypeBuilder CreateType(ModuleBuilder modBuilder, string typeName) | 39 | private static TypeBuilder CreateType(ModuleBuilder modBuilder, string typeName) |
40 | { | 40 | { |
41 | TypeBuilder typeBuilder = modBuilder.DefineType(typeName, | 41 | TypeBuilder typeBuilder = modBuilder.DefineType(typeName, |
42 | TypeAttributes.Public | | 42 | TypeAttributes.Public | |
43 | TypeAttributes.Class | | 43 | TypeAttributes.Class | |
44 | TypeAttributes.AutoClass | | 44 | TypeAttributes.AutoClass | |
45 | TypeAttributes.AnsiClass | | 45 | TypeAttributes.AnsiClass | |
46 | TypeAttributes.BeforeFieldInit | | 46 | TypeAttributes.BeforeFieldInit | |
47 | TypeAttributes.AutoLayout, | 47 | TypeAttributes.AutoLayout, |
48 | typeof(object), | 48 | typeof(object), |
49 | new Type[] { typeof(object) }); | 49 | new Type[] { typeof(object) }); |
50 | return typeBuilder; | 50 | return typeBuilder; |
51 | 51 | ||
52 | } | 52 | } |
53 | 53 | ||
54 | 54 | ||
55 | } | 55 | } |
56 | } | 56 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_Interface.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_Interface.cs index cf603b0..d8a0ce3 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_Interface.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_Interface.cs | |||
@@ -1,366 +1,366 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | 32 | ||
33 | namespace OpenSim.Region.Scripting.LSL | 33 | namespace OpenSim.Region.Scripting.LSL |
34 | { | 34 | { |
35 | public interface LSL_BuiltIn_Commands_Interface | 35 | public interface LSL_BuiltIn_Commands_Interface |
36 | { | 36 | { |
37 | void llSin(); | 37 | void llSin(); |
38 | void llCos(); | 38 | void llCos(); |
39 | void llTan(); | 39 | void llTan(); |
40 | void llAtan2(); | 40 | void llAtan2(); |
41 | void llSqrt(); | 41 | void llSqrt(); |
42 | void llPow(); | 42 | void llPow(); |
43 | void llAbs(); | 43 | void llAbs(); |
44 | void llFabs(); | 44 | void llFabs(); |
45 | void llFrand(); | 45 | void llFrand(); |
46 | void llFloor(); | 46 | void llFloor(); |
47 | void llCeil(); | 47 | void llCeil(); |
48 | void llRound(); | 48 | void llRound(); |
49 | void llVecMag(); | 49 | void llVecMag(); |
50 | void llVecNorm(); | 50 | void llVecNorm(); |
51 | void llVecDist(); | 51 | void llVecDist(); |
52 | void llRot2Euler(); | 52 | void llRot2Euler(); |
53 | void llEuler2Rot(); | 53 | void llEuler2Rot(); |
54 | void llAxes2Rot(); | 54 | void llAxes2Rot(); |
55 | void llRot2Fwd(); | 55 | void llRot2Fwd(); |
56 | void llRot2Left(); | 56 | void llRot2Left(); |
57 | void llRot2Up(); | 57 | void llRot2Up(); |
58 | void llRotBetween(); | 58 | void llRotBetween(); |
59 | void llWhisper(); | 59 | void llWhisper(); |
60 | void llSay(UInt32 channelID, string text); | 60 | void llSay(UInt32 channelID, string text); |
61 | void llShout(); | 61 | void llShout(); |
62 | void llListen(); | 62 | void llListen(); |
63 | void llListenControl(); | 63 | void llListenControl(); |
64 | void llListenRemove(); | 64 | void llListenRemove(); |
65 | void llSensor(); | 65 | void llSensor(); |
66 | void llSensorRepeat(); | 66 | void llSensorRepeat(); |
67 | void llSensorRemove(); | 67 | void llSensorRemove(); |
68 | void llDetectedName(); | 68 | void llDetectedName(); |
69 | void llDetectedKey(); | 69 | void llDetectedKey(); |
70 | void llDetectedOwner(); | 70 | void llDetectedOwner(); |
71 | void llDetectedType(); | 71 | void llDetectedType(); |
72 | void llDetectedPos(); | 72 | void llDetectedPos(); |
73 | void llDetectedVel(); | 73 | void llDetectedVel(); |
74 | void llDetectedGrab(); | 74 | void llDetectedGrab(); |
75 | void llDetectedRot(); | 75 | void llDetectedRot(); |
76 | void llDetectedGroup(); | 76 | void llDetectedGroup(); |
77 | void llDetectedLinkNumber(); | 77 | void llDetectedLinkNumber(); |
78 | void llDie(); | 78 | void llDie(); |
79 | void llGround(); | 79 | void llGround(); |
80 | void llCloud(); | 80 | void llCloud(); |
81 | void llWind(); | 81 | void llWind(); |
82 | void llSetStatus(); | 82 | void llSetStatus(); |
83 | void llGetStatus(); | 83 | void llGetStatus(); |
84 | void llSetScale(); | 84 | void llSetScale(); |
85 | void llGetScale(); | 85 | void llGetScale(); |
86 | void llSetColor(); | 86 | void llSetColor(); |
87 | void llGetAlpha(); | 87 | void llGetAlpha(); |
88 | void llSetAlpha(); | 88 | void llSetAlpha(); |
89 | void llGetColor(); | 89 | void llGetColor(); |
90 | void llSetTexture(); | 90 | void llSetTexture(); |
91 | void llScaleTexture(); | 91 | void llScaleTexture(); |
92 | void llOffsetTexture(); | 92 | void llOffsetTexture(); |
93 | void llRotateTexture(); | 93 | void llRotateTexture(); |
94 | void llGetTexture(); | 94 | void llGetTexture(); |
95 | void llSetPos(); | 95 | void llSetPos(); |
96 | void llGetPos(); | 96 | void llGetPos(); |
97 | void llGetLocalPos(); | 97 | void llGetLocalPos(); |
98 | void llSetRot(); | 98 | void llSetRot(); |
99 | void llGetRot(); | 99 | void llGetRot(); |
100 | void llGetLocalRot(); | 100 | void llGetLocalRot(); |
101 | void llSetForce(); | 101 | void llSetForce(); |
102 | void llGetForce(); | 102 | void llGetForce(); |
103 | void llTarget(); | 103 | void llTarget(); |
104 | void llTargetRemove(); | 104 | void llTargetRemove(); |
105 | void llRotTarget(); | 105 | void llRotTarget(); |
106 | void llRotTargetRemove(); | 106 | void llRotTargetRemove(); |
107 | void llMoveToTarget(); | 107 | void llMoveToTarget(); |
108 | void llStopMoveToTarget(); | 108 | void llStopMoveToTarget(); |
109 | void llApplyImpulse(); | 109 | void llApplyImpulse(); |
110 | void llApplyRotationalImpulse(); | 110 | void llApplyRotationalImpulse(); |
111 | void llSetTorque(); | 111 | void llSetTorque(); |
112 | void llGetTorque(); | 112 | void llGetTorque(); |
113 | void llSetForceAndTorque(); | 113 | void llSetForceAndTorque(); |
114 | void llGetVel(); | 114 | void llGetVel(); |
115 | void llGetAccel(); | 115 | void llGetAccel(); |
116 | void llGetOmega(); | 116 | void llGetOmega(); |
117 | void llGetTimeOfDay(); | 117 | void llGetTimeOfDay(); |
118 | void llGetWallclock(); | 118 | void llGetWallclock(); |
119 | void llGetTime(); | 119 | void llGetTime(); |
120 | void llResetTime(); | 120 | void llResetTime(); |
121 | void llGetAndResetTime(); | 121 | void llGetAndResetTime(); |
122 | void llSound(); | 122 | void llSound(); |
123 | void llPlaySound(); | 123 | void llPlaySound(); |
124 | void llLoopSound(); | 124 | void llLoopSound(); |
125 | void llLoopSoundMaster(); | 125 | void llLoopSoundMaster(); |
126 | void llLoopSoundSlave(); | 126 | void llLoopSoundSlave(); |
127 | void llPlaySoundSlave(); | 127 | void llPlaySoundSlave(); |
128 | void llTriggerSound(); | 128 | void llTriggerSound(); |
129 | void llStopSound(); | 129 | void llStopSound(); |
130 | void llPreloadSound(); | 130 | void llPreloadSound(); |
131 | void llGetSubString(); | 131 | void llGetSubString(); |
132 | void llDeleteSubString(); | 132 | void llDeleteSubString(); |
133 | void llInsertString(); | 133 | void llInsertString(); |
134 | void llToUpper(); | 134 | void llToUpper(); |
135 | void llToLower(); | 135 | void llToLower(); |
136 | void llGiveMoney(); | 136 | void llGiveMoney(); |
137 | void llMakeExplosion(); | 137 | void llMakeExplosion(); |
138 | void llMakeFountain(); | 138 | void llMakeFountain(); |
139 | void llMakeSmoke(); | 139 | void llMakeSmoke(); |
140 | void llMakeFire(); | 140 | void llMakeFire(); |
141 | void llRezObject(); | 141 | void llRezObject(); |
142 | void llLookAt(); | 142 | void llLookAt(); |
143 | void llStopLookAt(); | 143 | void llStopLookAt(); |
144 | void llSetTimerEvent(); | 144 | void llSetTimerEvent(); |
145 | void llSleep(); | 145 | void llSleep(); |
146 | void llGetMass(); | 146 | void llGetMass(); |
147 | void llCollisionFilter(); | 147 | void llCollisionFilter(); |
148 | void llTakeControls(); | 148 | void llTakeControls(); |
149 | void llReleaseControls(); | 149 | void llReleaseControls(); |
150 | void llAttachToAvatar(); | 150 | void llAttachToAvatar(); |
151 | void llDetachFromAvatar(); | 151 | void llDetachFromAvatar(); |
152 | void llTakeCamera(); | 152 | void llTakeCamera(); |
153 | void llReleaseCamera(); | 153 | void llReleaseCamera(); |
154 | void llGetOwner(); | 154 | void llGetOwner(); |
155 | void llInstantMessage(); | 155 | void llInstantMessage(); |
156 | void llEmail(); | 156 | void llEmail(); |
157 | void llGetNextEmail(); | 157 | void llGetNextEmail(); |
158 | void llGetKey(); | 158 | void llGetKey(); |
159 | void llSetBuoyancy(); | 159 | void llSetBuoyancy(); |
160 | void llSetHoverHeight(); | 160 | void llSetHoverHeight(); |
161 | void llStopHover(); | 161 | void llStopHover(); |
162 | void llMinEventDelay(); | 162 | void llMinEventDelay(); |
163 | void llSoundPreload(); | 163 | void llSoundPreload(); |
164 | void llRotLookAt(); | 164 | void llRotLookAt(); |
165 | void llStringLength(); | 165 | void llStringLength(); |
166 | void llStartAnimation(); | 166 | void llStartAnimation(); |
167 | void llStopAnimation(); | 167 | void llStopAnimation(); |
168 | void llPointAt(); | 168 | void llPointAt(); |
169 | void llStopPointAt(); | 169 | void llStopPointAt(); |
170 | void llTargetOmega(); | 170 | void llTargetOmega(); |
171 | void llGetStartParameter(); | 171 | void llGetStartParameter(); |
172 | void llGodLikeRezObject(); | 172 | void llGodLikeRezObject(); |
173 | void llRequestPermissions(); | 173 | void llRequestPermissions(); |
174 | void llGetPermissionsKey(); | 174 | void llGetPermissionsKey(); |
175 | void llGetPermissions(); | 175 | void llGetPermissions(); |
176 | void llGetLinkNumber(); | 176 | void llGetLinkNumber(); |
177 | void llSetLinkColor(); | 177 | void llSetLinkColor(); |
178 | void llCreateLink(); | 178 | void llCreateLink(); |
179 | void llBreakLink(); | 179 | void llBreakLink(); |
180 | void llBreakAllLinks(); | 180 | void llBreakAllLinks(); |
181 | void llGetLinkKey(); | 181 | void llGetLinkKey(); |
182 | void llGetLinkName(); | 182 | void llGetLinkName(); |
183 | void llGetInventoryNumber(); | 183 | void llGetInventoryNumber(); |
184 | void llGetInventoryName(); | 184 | void llGetInventoryName(); |
185 | void llSetScriptState(); | 185 | void llSetScriptState(); |
186 | void llGetEnergy(); | 186 | void llGetEnergy(); |
187 | void llGiveInventory(); | 187 | void llGiveInventory(); |
188 | void llRemoveInventory(); | 188 | void llRemoveInventory(); |
189 | void llSetText(); | 189 | void llSetText(); |
190 | void llWater(); | 190 | void llWater(); |
191 | void llPassTouches(); | 191 | void llPassTouches(); |
192 | void llRequestAgentData(); | 192 | void llRequestAgentData(); |
193 | void llRequestInventoryData(); | 193 | void llRequestInventoryData(); |
194 | void llSetDamage(); | 194 | void llSetDamage(); |
195 | void llTeleportAgentHome(); | 195 | void llTeleportAgentHome(); |
196 | void llModifyLand(); | 196 | void llModifyLand(); |
197 | void llCollisionSound(); | 197 | void llCollisionSound(); |
198 | void llCollisionSprite(); | 198 | void llCollisionSprite(); |
199 | void llGetAnimation(); | 199 | void llGetAnimation(); |
200 | void llResetScript(); | 200 | void llResetScript(); |
201 | void llMessageLinked(); | 201 | void llMessageLinked(); |
202 | void llPushObject(); | 202 | void llPushObject(); |
203 | void llPassCollisions(); | 203 | void llPassCollisions(); |
204 | void llGetScriptName(); | 204 | void llGetScriptName(); |
205 | void llGetNumberOfSides(); | 205 | void llGetNumberOfSides(); |
206 | void llAxisAngle2Rot(); | 206 | void llAxisAngle2Rot(); |
207 | void llRot2Axis(); | 207 | void llRot2Axis(); |
208 | void llRot2Angle(); | 208 | void llRot2Angle(); |
209 | void llAcos(); | 209 | void llAcos(); |
210 | void llAsin(); | 210 | void llAsin(); |
211 | void llAngleBetween(); | 211 | void llAngleBetween(); |
212 | void llGetInventoryKey(); | 212 | void llGetInventoryKey(); |
213 | void llAllowInventoryDrop(); | 213 | void llAllowInventoryDrop(); |
214 | void llGetSunDirection(); | 214 | void llGetSunDirection(); |
215 | void llGetTextureOffset(); | 215 | void llGetTextureOffset(); |
216 | void llGetTextureScale(); | 216 | void llGetTextureScale(); |
217 | void llGetTextureRot(); | 217 | void llGetTextureRot(); |
218 | void llSubStringIndex(); | 218 | void llSubStringIndex(); |
219 | void llGetOwnerKey(); | 219 | void llGetOwnerKey(); |
220 | void llGetCenterOfMass(); | 220 | void llGetCenterOfMass(); |
221 | void llListSort(); | 221 | void llListSort(); |
222 | void llGetListLength(); | 222 | void llGetListLength(); |
223 | void llList2Integer(); | 223 | void llList2Integer(); |
224 | void llList2Float(); | 224 | void llList2Float(); |
225 | void llList2String(); | 225 | void llList2String(); |
226 | void llList2Key(); | 226 | void llList2Key(); |
227 | void llList2Vector(); | 227 | void llList2Vector(); |
228 | void llList2Rot(); | 228 | void llList2Rot(); |
229 | void llList2List(); | 229 | void llList2List(); |
230 | void llDeleteSubList(); | 230 | void llDeleteSubList(); |
231 | void llGetListEntryType(); | 231 | void llGetListEntryType(); |
232 | void llList2CSV(); | 232 | void llList2CSV(); |
233 | void llCSV2List(); | 233 | void llCSV2List(); |
234 | void llListRandomize(); | 234 | void llListRandomize(); |
235 | void llList2ListStrided(); | 235 | void llList2ListStrided(); |
236 | void llGetRegionCorner(); | 236 | void llGetRegionCorner(); |
237 | void llListInsertList(); | 237 | void llListInsertList(); |
238 | void llListFindList(); | 238 | void llListFindList(); |
239 | void llGetObjectName(); | 239 | void llGetObjectName(); |
240 | void llSetObjectName(); | 240 | void llSetObjectName(); |
241 | void llGetDate(); | 241 | void llGetDate(); |
242 | void llEdgeOfWorld(); | 242 | void llEdgeOfWorld(); |
243 | void llGetAgentInfo(); | 243 | void llGetAgentInfo(); |
244 | void llAdjustSoundVolume(); | 244 | void llAdjustSoundVolume(); |
245 | void llSetSoundQueueing(); | 245 | void llSetSoundQueueing(); |
246 | void llSetSoundRadius(); | 246 | void llSetSoundRadius(); |
247 | void llKey2Name(); | 247 | void llKey2Name(); |
248 | void llSetTextureAnim(); | 248 | void llSetTextureAnim(); |
249 | void llTriggerSoundLimited(); | 249 | void llTriggerSoundLimited(); |
250 | void llEjectFromLand(); | 250 | void llEjectFromLand(); |
251 | void llParseString2List(); | 251 | void llParseString2List(); |
252 | void llOverMyLand(); | 252 | void llOverMyLand(); |
253 | void llGetLandOwnerAt(); | 253 | void llGetLandOwnerAt(); |
254 | void llGetNotecardLine(); | 254 | void llGetNotecardLine(); |
255 | void llGetAgentSize(); | 255 | void llGetAgentSize(); |
256 | void llSameGroup(); | 256 | void llSameGroup(); |
257 | void llUnSit(); | 257 | void llUnSit(); |
258 | void llGroundSlope(); | 258 | void llGroundSlope(); |
259 | void llGroundNormal(); | 259 | void llGroundNormal(); |
260 | void llGroundContour(); | 260 | void llGroundContour(); |
261 | void llGetAttached(); | 261 | void llGetAttached(); |
262 | void llGetFreeMemory(); | 262 | void llGetFreeMemory(); |
263 | void llGetRegionName(); | 263 | void llGetRegionName(); |
264 | void llGetRegionTimeDilation(); | 264 | void llGetRegionTimeDilation(); |
265 | void llGetRegionFPS(); | 265 | void llGetRegionFPS(); |
266 | void llParticleSystem(); | 266 | void llParticleSystem(); |
267 | void llGroundRepel(); | 267 | void llGroundRepel(); |
268 | void llGiveInventoryList(); | 268 | void llGiveInventoryList(); |
269 | void llSetVehicleType(); | 269 | void llSetVehicleType(); |
270 | void llSetVehicleFloatParam(); | 270 | void llSetVehicleFloatParam(); |
271 | void llSetVehicleVectorParam(); | 271 | void llSetVehicleVectorParam(); |
272 | void llSetVehicleRotationParam(); | 272 | void llSetVehicleRotationParam(); |
273 | void llSetVehicleFlags(); | 273 | void llSetVehicleFlags(); |
274 | void llRemoveVehicleFlags(); | 274 | void llRemoveVehicleFlags(); |
275 | void llSitTarget(); | 275 | void llSitTarget(); |
276 | void llAvatarOnSitTarget(); | 276 | void llAvatarOnSitTarget(); |
277 | void llAddToLandPassList(); | 277 | void llAddToLandPassList(); |
278 | void llSetTouchText(); | 278 | void llSetTouchText(); |
279 | void llSetSitText(); | 279 | void llSetSitText(); |
280 | void llSetCameraEyeOffset(); | 280 | void llSetCameraEyeOffset(); |
281 | void llSetCameraAtOffset(); | 281 | void llSetCameraAtOffset(); |
282 | void llDumpList2String(); | 282 | void llDumpList2String(); |
283 | void llScriptDanger(); | 283 | void llScriptDanger(); |
284 | void llDialog(); | 284 | void llDialog(); |
285 | void llVolumeDetect(); | 285 | void llVolumeDetect(); |
286 | void llResetOtherScript(); | 286 | void llResetOtherScript(); |
287 | void llGetScriptState(); | 287 | void llGetScriptState(); |
288 | void llRemoteLoadScript(); | 288 | void llRemoteLoadScript(); |
289 | void llSetRemoteScriptAccessPin(); | 289 | void llSetRemoteScriptAccessPin(); |
290 | void llRemoteLoadScriptPin(); | 290 | void llRemoteLoadScriptPin(); |
291 | void llOpenRemoteDataChannel(); | 291 | void llOpenRemoteDataChannel(); |
292 | void llSendRemoteData(); | 292 | void llSendRemoteData(); |
293 | void llRemoteDataReply(); | 293 | void llRemoteDataReply(); |
294 | void llCloseRemoteDataChannel(); | 294 | void llCloseRemoteDataChannel(); |
295 | void llMD5String(); | 295 | void llMD5String(); |
296 | void llSetPrimitiveParams(); | 296 | void llSetPrimitiveParams(); |
297 | void llStringToBase64(); | 297 | void llStringToBase64(); |
298 | void llBase64ToString(); | 298 | void llBase64ToString(); |
299 | void llXorBase64Strings(); | 299 | void llXorBase64Strings(); |
300 | void llRemoteDataSetRegion(); | 300 | void llRemoteDataSetRegion(); |
301 | void llLog10(); | 301 | void llLog10(); |
302 | void llLog(); | 302 | void llLog(); |
303 | void llGetAnimationList(); | 303 | void llGetAnimationList(); |
304 | void llSetParcelMusicURL(); | 304 | void llSetParcelMusicURL(); |
305 | void llGetRootPosition(); | 305 | void llGetRootPosition(); |
306 | void llGetRootRotation(); | 306 | void llGetRootRotation(); |
307 | void llGetObjectDesc(); | 307 | void llGetObjectDesc(); |
308 | void llSetObjectDesc(); | 308 | void llSetObjectDesc(); |
309 | void llGetCreator(); | 309 | void llGetCreator(); |
310 | void llGetTimestamp(); | 310 | void llGetTimestamp(); |
311 | void llSetLinkAlpha(); | 311 | void llSetLinkAlpha(); |
312 | void llGetNumberOfPrims(); | 312 | void llGetNumberOfPrims(); |
313 | void llGetNumberOfNotecardLines(); | 313 | void llGetNumberOfNotecardLines(); |
314 | void llGetBoundingBox(); | 314 | void llGetBoundingBox(); |
315 | void llGetGeometricCenter(); | 315 | void llGetGeometricCenter(); |
316 | void llGetPrimitiveParams(); | 316 | void llGetPrimitiveParams(); |
317 | void llIntegerToBase64(); | 317 | void llIntegerToBase64(); |
318 | void llBase64ToInteger(); | 318 | void llBase64ToInteger(); |
319 | void llGetGMTclock(); | 319 | void llGetGMTclock(); |
320 | void llGetSimulatorHostname(); | 320 | void llGetSimulatorHostname(); |
321 | void llSetLocalRot(); | 321 | void llSetLocalRot(); |
322 | void llParseStringKeepNulls(); | 322 | void llParseStringKeepNulls(); |
323 | void llRezAtRoot(); | 323 | void llRezAtRoot(); |
324 | void llGetObjectPermMask(); | 324 | void llGetObjectPermMask(); |
325 | void llSetObjectPermMask(); | 325 | void llSetObjectPermMask(); |
326 | void llGetInventoryPermMask(); | 326 | void llGetInventoryPermMask(); |
327 | void llSetInventoryPermMask(); | 327 | void llSetInventoryPermMask(); |
328 | void llGetInventoryCreator(); | 328 | void llGetInventoryCreator(); |
329 | void llOwnerSay(); | 329 | void llOwnerSay(); |
330 | void llRequestSimulatorData(); | 330 | void llRequestSimulatorData(); |
331 | void llForceMouselook(); | 331 | void llForceMouselook(); |
332 | void llGetObjectMass(); | 332 | void llGetObjectMass(); |
333 | void llListReplaceList(); | 333 | void llListReplaceList(); |
334 | void llLoadURL(); | 334 | void llLoadURL(); |
335 | void llParcelMediaCommandList(); | 335 | void llParcelMediaCommandList(); |
336 | void llParcelMediaQuery(); | 336 | void llParcelMediaQuery(); |
337 | void llModPow(); | 337 | void llModPow(); |
338 | void llGetInventoryType(); | 338 | void llGetInventoryType(); |
339 | void llSetPayPrice(); | 339 | void llSetPayPrice(); |
340 | void llGetCameraPos(); | 340 | void llGetCameraPos(); |
341 | void llGetCameraRot(); | 341 | void llGetCameraRot(); |
342 | void llSetPrimURL(); | 342 | void llSetPrimURL(); |
343 | void llRefreshPrimURL(); | 343 | void llRefreshPrimURL(); |
344 | void llEscapeURL(); | 344 | void llEscapeURL(); |
345 | void llUnescapeURL(); | 345 | void llUnescapeURL(); |
346 | void llMapDestination(); | 346 | void llMapDestination(); |
347 | void llAddToLandBanList(); | 347 | void llAddToLandBanList(); |
348 | void llRemoveFromLandPassList(); | 348 | void llRemoveFromLandPassList(); |
349 | void llRemoveFromLandBanList(); | 349 | void llRemoveFromLandBanList(); |
350 | void llSetCameraParams(); | 350 | void llSetCameraParams(); |
351 | void llClearCameraParams(); | 351 | void llClearCameraParams(); |
352 | void llListStatistics(); | 352 | void llListStatistics(); |
353 | void llGetUnixTime(); | 353 | void llGetUnixTime(); |
354 | void llGetParcelFlags(); | 354 | void llGetParcelFlags(); |
355 | void llGetRegionFlags(); | 355 | void llGetRegionFlags(); |
356 | void llXorBase64StringsCorrect(); | 356 | void llXorBase64StringsCorrect(); |
357 | void llHTTPRequest(); | 357 | void llHTTPRequest(); |
358 | void llResetLandBanList(); | 358 | void llResetLandBanList(); |
359 | void llResetLandPassList(); | 359 | void llResetLandPassList(); |
360 | void llGetParcelPrimCount(); | 360 | void llGetParcelPrimCount(); |
361 | void llGetParcelPrimOwners(); | 361 | void llGetParcelPrimOwners(); |
362 | void llGetObjectPrimCount(); | 362 | void llGetObjectPrimCount(); |
363 | void llGetParcelMaxPrims(); | 363 | void llGetParcelMaxPrims(); |
364 | void llGetParcelDetails(); | 364 | void llGetParcelDetails(); |
365 | } | 365 | } |
366 | } | 366 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_TestImplementation.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_TestImplementation.cs index 08e7f95..4b0fa7e 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_TestImplementation.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_BuiltIn_Commands_TestImplementation.cs | |||
@@ -1,377 +1,377 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | 32 | ||
33 | namespace OpenSim.Region.Scripting.LSL | 33 | namespace OpenSim.Region.Scripting.LSL |
34 | { | 34 | { |
35 | public class LSL_BuiltIn_Commands_TestImplementation: LSL_BuiltIn_Commands_Interface | 35 | public class LSL_BuiltIn_Commands_TestImplementation: LSL_BuiltIn_Commands_Interface |
36 | { | 36 | { |
37 | public LSL_BuiltIn_Commands_TestImplementation() | 37 | public LSL_BuiltIn_Commands_TestImplementation() |
38 | { | 38 | { |
39 | Common.SendToDebug("LSL_BuiltIn_Commands_TestImplementation: Creating object"); | 39 | Common.SendToDebug("LSL_BuiltIn_Commands_TestImplementation: Creating object"); |
40 | } | 40 | } |
41 | 41 | ||
42 | public void llSin() { } | 42 | public void llSin() { } |
43 | public void llCos() { } | 43 | public void llCos() { } |
44 | public void llTan() { } | 44 | public void llTan() { } |
45 | public void llAtan2() { } | 45 | public void llAtan2() { } |
46 | public void llSqrt() { } | 46 | public void llSqrt() { } |
47 | public void llPow() { } | 47 | public void llPow() { } |
48 | public void llAbs() { } | 48 | public void llAbs() { } |
49 | public void llFabs() { } | 49 | public void llFabs() { } |
50 | public void llFrand() { } | 50 | public void llFrand() { } |
51 | public void llFloor() { } | 51 | public void llFloor() { } |
52 | public void llCeil() { } | 52 | public void llCeil() { } |
53 | public void llRound() { } | 53 | public void llRound() { } |
54 | public void llVecMag() { } | 54 | public void llVecMag() { } |
55 | public void llVecNorm() { } | 55 | public void llVecNorm() { } |
56 | public void llVecDist() { } | 56 | public void llVecDist() { } |
57 | public void llRot2Euler() { } | 57 | public void llRot2Euler() { } |
58 | public void llEuler2Rot() { } | 58 | public void llEuler2Rot() { } |
59 | public void llAxes2Rot() { } | 59 | public void llAxes2Rot() { } |
60 | public void llRot2Fwd() { } | 60 | public void llRot2Fwd() { } |
61 | public void llRot2Left() { } | 61 | public void llRot2Left() { } |
62 | public void llRot2Up() { } | 62 | public void llRot2Up() { } |
63 | public void llRotBetween() { } | 63 | public void llRotBetween() { } |
64 | public void llWhisper() { } | 64 | public void llWhisper() { } |
65 | public void llSay(UInt32 channelID, string text) | 65 | public void llSay(UInt32 channelID, string text) |
66 | { | 66 | { |
67 | Common.SendToDebug("INTERNAL FUNCTION llSay(" + channelID + ", \"" + text + "\");"); | 67 | Common.SendToDebug("INTERNAL FUNCTION llSay(" + channelID + ", \"" + text + "\");"); |
68 | } | 68 | } |
69 | public void llShout() { } | 69 | public void llShout() { } |
70 | public void llListen() { } | 70 | public void llListen() { } |
71 | public void llListenControl() { } | 71 | public void llListenControl() { } |
72 | public void llListenRemove() { } | 72 | public void llListenRemove() { } |
73 | public void llSensor() { } | 73 | public void llSensor() { } |
74 | public void llSensorRepeat() { } | 74 | public void llSensorRepeat() { } |
75 | public void llSensorRemove() { } | 75 | public void llSensorRemove() { } |
76 | public void llDetectedName() { } | 76 | public void llDetectedName() { } |
77 | public void llDetectedKey() { } | 77 | public void llDetectedKey() { } |
78 | public void llDetectedOwner() { } | 78 | public void llDetectedOwner() { } |
79 | public void llDetectedType() { } | 79 | public void llDetectedType() { } |
80 | public void llDetectedPos() { } | 80 | public void llDetectedPos() { } |
81 | public void llDetectedVel() { } | 81 | public void llDetectedVel() { } |
82 | public void llDetectedGrab() { } | 82 | public void llDetectedGrab() { } |
83 | public void llDetectedRot() { } | 83 | public void llDetectedRot() { } |
84 | public void llDetectedGroup() { } | 84 | public void llDetectedGroup() { } |
85 | public void llDetectedLinkNumber() { } | 85 | public void llDetectedLinkNumber() { } |
86 | public void llDie() { } | 86 | public void llDie() { } |
87 | public void llGround() { } | 87 | public void llGround() { } |
88 | public void llCloud() { } | 88 | public void llCloud() { } |
89 | public void llWind() { } | 89 | public void llWind() { } |
90 | public void llSetStatus() { } | 90 | public void llSetStatus() { } |
91 | public void llGetStatus() { } | 91 | public void llGetStatus() { } |
92 | public void llSetScale() { } | 92 | public void llSetScale() { } |
93 | public void llGetScale() { } | 93 | public void llGetScale() { } |
94 | public void llSetColor() { } | 94 | public void llSetColor() { } |
95 | public void llGetAlpha() { } | 95 | public void llGetAlpha() { } |
96 | public void llSetAlpha() { } | 96 | public void llSetAlpha() { } |
97 | public void llGetColor() { } | 97 | public void llGetColor() { } |
98 | public void llSetTexture() { } | 98 | public void llSetTexture() { } |
99 | public void llScaleTexture() { } | 99 | public void llScaleTexture() { } |
100 | public void llOffsetTexture() { } | 100 | public void llOffsetTexture() { } |
101 | public void llRotateTexture() { } | 101 | public void llRotateTexture() { } |
102 | public void llGetTexture() { } | 102 | public void llGetTexture() { } |
103 | public void llSetPos() { } | 103 | public void llSetPos() { } |
104 | public void llGetPos() { } | 104 | public void llGetPos() { } |
105 | public void llGetLocalPos() { } | 105 | public void llGetLocalPos() { } |
106 | public void llSetRot() { } | 106 | public void llSetRot() { } |
107 | public void llGetRot() { } | 107 | public void llGetRot() { } |
108 | public void llGetLocalRot() { } | 108 | public void llGetLocalRot() { } |
109 | public void llSetForce() { } | 109 | public void llSetForce() { } |
110 | public void llGetForce() { } | 110 | public void llGetForce() { } |
111 | public void llTarget() { } | 111 | public void llTarget() { } |
112 | public void llTargetRemove() { } | 112 | public void llTargetRemove() { } |
113 | public void llRotTarget() { } | 113 | public void llRotTarget() { } |
114 | public void llRotTargetRemove() { } | 114 | public void llRotTargetRemove() { } |
115 | public void llMoveToTarget() { } | 115 | public void llMoveToTarget() { } |
116 | public void llStopMoveToTarget() { } | 116 | public void llStopMoveToTarget() { } |
117 | public void llApplyImpulse() { } | 117 | public void llApplyImpulse() { } |
118 | public void llApplyRotationalImpulse() { } | 118 | public void llApplyRotationalImpulse() { } |
119 | public void llSetTorque() { } | 119 | public void llSetTorque() { } |
120 | public void llGetTorque() { } | 120 | public void llGetTorque() { } |
121 | public void llSetForceAndTorque() { } | 121 | public void llSetForceAndTorque() { } |
122 | public void llGetVel() { } | 122 | public void llGetVel() { } |
123 | public void llGetAccel() { } | 123 | public void llGetAccel() { } |
124 | public void llGetOmega() { } | 124 | public void llGetOmega() { } |
125 | public void llGetTimeOfDay() { } | 125 | public void llGetTimeOfDay() { } |
126 | public void llGetWallclock() { } | 126 | public void llGetWallclock() { } |
127 | public void llGetTime() { } | 127 | public void llGetTime() { } |
128 | public void llResetTime() { } | 128 | public void llResetTime() { } |
129 | public void llGetAndResetTime() { } | 129 | public void llGetAndResetTime() { } |
130 | public void llSound() { } | 130 | public void llSound() { } |
131 | public void llPlaySound() { } | 131 | public void llPlaySound() { } |
132 | public void llLoopSound() { } | 132 | public void llLoopSound() { } |
133 | public void llLoopSoundMaster() { } | 133 | public void llLoopSoundMaster() { } |
134 | public void llLoopSoundSlave() { } | 134 | public void llLoopSoundSlave() { } |
135 | public void llPlaySoundSlave() { } | 135 | public void llPlaySoundSlave() { } |
136 | public void llTriggerSound() { } | 136 | public void llTriggerSound() { } |
137 | public void llStopSound() { } | 137 | public void llStopSound() { } |
138 | public void llPreloadSound() { } | 138 | public void llPreloadSound() { } |
139 | public void llGetSubString() { } | 139 | public void llGetSubString() { } |
140 | public void llDeleteSubString() { } | 140 | public void llDeleteSubString() { } |
141 | public void llInsertString() { } | 141 | public void llInsertString() { } |
142 | public void llToUpper() { } | 142 | public void llToUpper() { } |
143 | public void llToLower() { } | 143 | public void llToLower() { } |
144 | public void llGiveMoney() { } | 144 | public void llGiveMoney() { } |
145 | public void llMakeExplosion() { } | 145 | public void llMakeExplosion() { } |
146 | public void llMakeFountain() { } | 146 | public void llMakeFountain() { } |
147 | public void llMakeSmoke() { } | 147 | public void llMakeSmoke() { } |
148 | public void llMakeFire() { } | 148 | public void llMakeFire() { } |
149 | public void llRezObject() { } | 149 | public void llRezObject() { } |
150 | public void llLookAt() { } | 150 | public void llLookAt() { } |
151 | public void llStopLookAt() { } | 151 | public void llStopLookAt() { } |
152 | public void llSetTimerEvent() { } | 152 | public void llSetTimerEvent() { } |
153 | public void llSleep() { } | 153 | public void llSleep() { } |
154 | public void llGetMass() { } | 154 | public void llGetMass() { } |
155 | public void llCollisionFilter() { } | 155 | public void llCollisionFilter() { } |
156 | public void llTakeControls() { } | 156 | public void llTakeControls() { } |
157 | public void llReleaseControls() { } | 157 | public void llReleaseControls() { } |
158 | public void llAttachToAvatar() { } | 158 | public void llAttachToAvatar() { } |
159 | public void llDetachFromAvatar() { } | 159 | public void llDetachFromAvatar() { } |
160 | public void llTakeCamera() { } | 160 | public void llTakeCamera() { } |
161 | public void llReleaseCamera() { } | 161 | public void llReleaseCamera() { } |
162 | public void llGetOwner() { } | 162 | public void llGetOwner() { } |
163 | public void llInstantMessage() { } | 163 | public void llInstantMessage() { } |
164 | public void llEmail() { } | 164 | public void llEmail() { } |
165 | public void llGetNextEmail() { } | 165 | public void llGetNextEmail() { } |
166 | public void llGetKey() { } | 166 | public void llGetKey() { } |
167 | public void llSetBuoyancy() { } | 167 | public void llSetBuoyancy() { } |
168 | public void llSetHoverHeight() { } | 168 | public void llSetHoverHeight() { } |
169 | public void llStopHover() { } | 169 | public void llStopHover() { } |
170 | public void llMinEventDelay() { } | 170 | public void llMinEventDelay() { } |
171 | public void llSoundPreload() { } | 171 | public void llSoundPreload() { } |
172 | public void llRotLookAt() { } | 172 | public void llRotLookAt() { } |
173 | public void llStringLength() { } | 173 | public void llStringLength() { } |
174 | public void llStartAnimation() { } | 174 | public void llStartAnimation() { } |
175 | public void llStopAnimation() { } | 175 | public void llStopAnimation() { } |
176 | public void llPointAt() { } | 176 | public void llPointAt() { } |
177 | public void llStopPointAt() { } | 177 | public void llStopPointAt() { } |
178 | public void llTargetOmega() { } | 178 | public void llTargetOmega() { } |
179 | public void llGetStartParameter() { } | 179 | public void llGetStartParameter() { } |
180 | public void llGodLikeRezObject() { } | 180 | public void llGodLikeRezObject() { } |
181 | public void llRequestPermissions() { } | 181 | public void llRequestPermissions() { } |
182 | public void llGetPermissionsKey() { } | 182 | public void llGetPermissionsKey() { } |
183 | public void llGetPermissions() { } | 183 | public void llGetPermissions() { } |
184 | public void llGetLinkNumber() { } | 184 | public void llGetLinkNumber() { } |
185 | public void llSetLinkColor() { } | 185 | public void llSetLinkColor() { } |
186 | public void llCreateLink() { } | 186 | public void llCreateLink() { } |
187 | public void llBreakLink() { } | 187 | public void llBreakLink() { } |
188 | public void llBreakAllLinks() { } | 188 | public void llBreakAllLinks() { } |
189 | public void llGetLinkKey() { } | 189 | public void llGetLinkKey() { } |
190 | public void llGetLinkName() { } | 190 | public void llGetLinkName() { } |
191 | public void llGetInventoryNumber() { } | 191 | public void llGetInventoryNumber() { } |
192 | public void llGetInventoryName() { } | 192 | public void llGetInventoryName() { } |
193 | public void llSetScriptState() { } | 193 | public void llSetScriptState() { } |
194 | public void llGetEnergy() { } | 194 | public void llGetEnergy() { } |
195 | public void llGiveInventory() { } | 195 | public void llGiveInventory() { } |
196 | public void llRemoveInventory() { } | 196 | public void llRemoveInventory() { } |
197 | public void llSetText() { } | 197 | public void llSetText() { } |
198 | public void llWater() { } | 198 | public void llWater() { } |
199 | public void llPassTouches() { } | 199 | public void llPassTouches() { } |
200 | public void llRequestAgentData() { } | 200 | public void llRequestAgentData() { } |
201 | public void llRequestInventoryData() { } | 201 | public void llRequestInventoryData() { } |
202 | public void llSetDamage() { } | 202 | public void llSetDamage() { } |
203 | public void llTeleportAgentHome() { } | 203 | public void llTeleportAgentHome() { } |
204 | public void llModifyLand() { } | 204 | public void llModifyLand() { } |
205 | public void llCollisionSound() { } | 205 | public void llCollisionSound() { } |
206 | public void llCollisionSprite() { } | 206 | public void llCollisionSprite() { } |
207 | public void llGetAnimation() { } | 207 | public void llGetAnimation() { } |
208 | public void llResetScript() { } | 208 | public void llResetScript() { } |
209 | public void llMessageLinked() { } | 209 | public void llMessageLinked() { } |
210 | public void llPushObject() { } | 210 | public void llPushObject() { } |
211 | public void llPassCollisions() { } | 211 | public void llPassCollisions() { } |
212 | public void llGetScriptName() { } | 212 | public void llGetScriptName() { } |
213 | public void llGetNumberOfSides() { } | 213 | public void llGetNumberOfSides() { } |
214 | public void llAxisAngle2Rot() { } | 214 | public void llAxisAngle2Rot() { } |
215 | public void llRot2Axis() { } | 215 | public void llRot2Axis() { } |
216 | public void llRot2Angle() { } | 216 | public void llRot2Angle() { } |
217 | public void llAcos() { } | 217 | public void llAcos() { } |
218 | public void llAsin() { } | 218 | public void llAsin() { } |
219 | public void llAngleBetween() { } | 219 | public void llAngleBetween() { } |
220 | public void llGetInventoryKey() { } | 220 | public void llGetInventoryKey() { } |
221 | public void llAllowInventoryDrop() { } | 221 | public void llAllowInventoryDrop() { } |
222 | public void llGetSunDirection() { } | 222 | public void llGetSunDirection() { } |
223 | public void llGetTextureOffset() { } | 223 | public void llGetTextureOffset() { } |
224 | public void llGetTextureScale() { } | 224 | public void llGetTextureScale() { } |
225 | public void llGetTextureRot() { } | 225 | public void llGetTextureRot() { } |
226 | public void llSubStringIndex() { } | 226 | public void llSubStringIndex() { } |
227 | public void llGetOwnerKey() { } | 227 | public void llGetOwnerKey() { } |
228 | public void llGetCenterOfMass() { } | 228 | public void llGetCenterOfMass() { } |
229 | public void llListSort() { } | 229 | public void llListSort() { } |
230 | public void llGetListLength() { } | 230 | public void llGetListLength() { } |
231 | public void llList2Integer() { } | 231 | public void llList2Integer() { } |
232 | public void llList2Float() { } | 232 | public void llList2Float() { } |
233 | public void llList2String() { } | 233 | public void llList2String() { } |
234 | public void llList2Key() { } | 234 | public void llList2Key() { } |
235 | public void llList2Vector() { } | 235 | public void llList2Vector() { } |
236 | public void llList2Rot() { } | 236 | public void llList2Rot() { } |
237 | public void llList2List() { } | 237 | public void llList2List() { } |
238 | public void llDeleteSubList() { } | 238 | public void llDeleteSubList() { } |
239 | public void llGetListEntryType() { } | 239 | public void llGetListEntryType() { } |
240 | public void llList2CSV() { } | 240 | public void llList2CSV() { } |
241 | public void llCSV2List() { } | 241 | public void llCSV2List() { } |
242 | public void llListRandomize() { } | 242 | public void llListRandomize() { } |
243 | public void llList2ListStrided() { } | 243 | public void llList2ListStrided() { } |
244 | public void llGetRegionCorner() { } | 244 | public void llGetRegionCorner() { } |
245 | public void llListInsertList() { } | 245 | public void llListInsertList() { } |
246 | public void llListFindList() { } | 246 | public void llListFindList() { } |
247 | public void llGetObjectName() { } | 247 | public void llGetObjectName() { } |
248 | public void llSetObjectName() { } | 248 | public void llSetObjectName() { } |
249 | public void llGetDate() { } | 249 | public void llGetDate() { } |
250 | public void llEdgeOfWorld() { } | 250 | public void llEdgeOfWorld() { } |
251 | public void llGetAgentInfo() { } | 251 | public void llGetAgentInfo() { } |
252 | public void llAdjustSoundVolume() { } | 252 | public void llAdjustSoundVolume() { } |
253 | public void llSetSoundQueueing() { } | 253 | public void llSetSoundQueueing() { } |
254 | public void llSetSoundRadius() { } | 254 | public void llSetSoundRadius() { } |
255 | public void llKey2Name() { } | 255 | public void llKey2Name() { } |
256 | public void llSetTextureAnim() { } | 256 | public void llSetTextureAnim() { } |
257 | public void llTriggerSoundLimited() { } | 257 | public void llTriggerSoundLimited() { } |
258 | public void llEjectFromLand() { } | 258 | public void llEjectFromLand() { } |
259 | public void llParseString2List() { } | 259 | public void llParseString2List() { } |
260 | public void llOverMyLand() { } | 260 | public void llOverMyLand() { } |
261 | public void llGetLandOwnerAt() { } | 261 | public void llGetLandOwnerAt() { } |
262 | public void llGetNotecardLine() { } | 262 | public void llGetNotecardLine() { } |
263 | public void llGetAgentSize() { } | 263 | public void llGetAgentSize() { } |
264 | public void llSameGroup() { } | 264 | public void llSameGroup() { } |
265 | public void llUnSit() { } | 265 | public void llUnSit() { } |
266 | public void llGroundSlope() { } | 266 | public void llGroundSlope() { } |
267 | public void llGroundNormal() { } | 267 | public void llGroundNormal() { } |
268 | public void llGroundContour() { } | 268 | public void llGroundContour() { } |
269 | public void llGetAttached() { } | 269 | public void llGetAttached() { } |
270 | public void llGetFreeMemory() { } | 270 | public void llGetFreeMemory() { } |
271 | public void llGetRegionName() { } | 271 | public void llGetRegionName() { } |
272 | public void llGetRegionTimeDilation() { } | 272 | public void llGetRegionTimeDilation() { } |
273 | public void llGetRegionFPS() { } | 273 | public void llGetRegionFPS() { } |
274 | public void llParticleSystem() { } | 274 | public void llParticleSystem() { } |
275 | public void llGroundRepel() { } | 275 | public void llGroundRepel() { } |
276 | public void llGiveInventoryList() { } | 276 | public void llGiveInventoryList() { } |
277 | public void llSetVehicleType() { } | 277 | public void llSetVehicleType() { } |
278 | public void llSetVehicleFloatParam() { } | 278 | public void llSetVehicleFloatParam() { } |
279 | public void llSetVehicleVectorParam() { } | 279 | public void llSetVehicleVectorParam() { } |
280 | public void llSetVehicleRotationParam() { } | 280 | public void llSetVehicleRotationParam() { } |
281 | public void llSetVehicleFlags() { } | 281 | public void llSetVehicleFlags() { } |
282 | public void llRemoveVehicleFlags() { } | 282 | public void llRemoveVehicleFlags() { } |
283 | public void llSitTarget() { } | 283 | public void llSitTarget() { } |
284 | public void llAvatarOnSitTarget() { } | 284 | public void llAvatarOnSitTarget() { } |
285 | public void llAddToLandPassList() { } | 285 | public void llAddToLandPassList() { } |
286 | public void llSetTouchText() { } | 286 | public void llSetTouchText() { } |
287 | public void llSetSitText() { } | 287 | public void llSetSitText() { } |
288 | public void llSetCameraEyeOffset() { } | 288 | public void llSetCameraEyeOffset() { } |
289 | public void llSetCameraAtOffset() { } | 289 | public void llSetCameraAtOffset() { } |
290 | public void llDumpList2String() { } | 290 | public void llDumpList2String() { } |
291 | public void llScriptDanger() { } | 291 | public void llScriptDanger() { } |
292 | public void llDialog() { } | 292 | public void llDialog() { } |
293 | public void llVolumeDetect() { } | 293 | public void llVolumeDetect() { } |
294 | public void llResetOtherScript() { } | 294 | public void llResetOtherScript() { } |
295 | public void llGetScriptState() { } | 295 | public void llGetScriptState() { } |
296 | public void llRemoteLoadScript() { } | 296 | public void llRemoteLoadScript() { } |
297 | public void llSetRemoteScriptAccessPin() { } | 297 | public void llSetRemoteScriptAccessPin() { } |
298 | public void llRemoteLoadScriptPin() { } | 298 | public void llRemoteLoadScriptPin() { } |
299 | public void llOpenRemoteDataChannel() { } | 299 | public void llOpenRemoteDataChannel() { } |
300 | public void llSendRemoteData() { } | 300 | public void llSendRemoteData() { } |
301 | public void llRemoteDataReply() { } | 301 | public void llRemoteDataReply() { } |
302 | public void llCloseRemoteDataChannel() { } | 302 | public void llCloseRemoteDataChannel() { } |
303 | public void llMD5String() { } | 303 | public void llMD5String() { } |
304 | public void llSetPrimitiveParams() { } | 304 | public void llSetPrimitiveParams() { } |
305 | public void llStringToBase64() { } | 305 | public void llStringToBase64() { } |
306 | public void llBase64ToString() { } | 306 | public void llBase64ToString() { } |
307 | public void llXorBase64Strings() { } | 307 | public void llXorBase64Strings() { } |
308 | public void llRemoteDataSetRegion() { } | 308 | public void llRemoteDataSetRegion() { } |
309 | public void llLog10() { } | 309 | public void llLog10() { } |
310 | public void llLog() { } | 310 | public void llLog() { } |
311 | public void llGetAnimationList() { } | 311 | public void llGetAnimationList() { } |
312 | public void llSetParcelMusicURL() { } | 312 | public void llSetParcelMusicURL() { } |
313 | public void llGetRootPosition() { } | 313 | public void llGetRootPosition() { } |
314 | public void llGetRootRotation() { } | 314 | public void llGetRootRotation() { } |
315 | public void llGetObjectDesc() { } | 315 | public void llGetObjectDesc() { } |
316 | public void llSetObjectDesc() { } | 316 | public void llSetObjectDesc() { } |
317 | public void llGetCreator() { } | 317 | public void llGetCreator() { } |
318 | public void llGetTimestamp() { } | 318 | public void llGetTimestamp() { } |
319 | public void llSetLinkAlpha() { } | 319 | public void llSetLinkAlpha() { } |
320 | public void llGetNumberOfPrims() { } | 320 | public void llGetNumberOfPrims() { } |
321 | public void llGetNumberOfNotecardLines() { } | 321 | public void llGetNumberOfNotecardLines() { } |
322 | public void llGetBoundingBox() { } | 322 | public void llGetBoundingBox() { } |
323 | public void llGetGeometricCenter() { } | 323 | public void llGetGeometricCenter() { } |
324 | public void llGetPrimitiveParams() { } | 324 | public void llGetPrimitiveParams() { } |
325 | public void llIntegerToBase64() { } | 325 | public void llIntegerToBase64() { } |
326 | public void llBase64ToInteger() { } | 326 | public void llBase64ToInteger() { } |
327 | public void llGetGMTclock() { } | 327 | public void llGetGMTclock() { } |
328 | public void llGetSimulatorHostname() { } | 328 | public void llGetSimulatorHostname() { } |
329 | public void llSetLocalRot() { } | 329 | public void llSetLocalRot() { } |
330 | public void llParseStringKeepNulls() { } | 330 | public void llParseStringKeepNulls() { } |
331 | public void llRezAtRoot() { } | 331 | public void llRezAtRoot() { } |
332 | public void llGetObjectPermMask() { } | 332 | public void llGetObjectPermMask() { } |
333 | public void llSetObjectPermMask() { } | 333 | public void llSetObjectPermMask() { } |
334 | public void llGetInventoryPermMask() { } | 334 | public void llGetInventoryPermMask() { } |
335 | public void llSetInventoryPermMask() { } | 335 | public void llSetInventoryPermMask() { } |
336 | public void llGetInventoryCreator() { } | 336 | public void llGetInventoryCreator() { } |
337 | public void llOwnerSay() { } | 337 | public void llOwnerSay() { } |
338 | public void llRequestSimulatorData() { } | 338 | public void llRequestSimulatorData() { } |
339 | public void llForceMouselook() { } | 339 | public void llForceMouselook() { } |
340 | public void llGetObjectMass() { } | 340 | public void llGetObjectMass() { } |
341 | public void llListReplaceList() { } | 341 | public void llListReplaceList() { } |
342 | public void llLoadURL() { } | 342 | public void llLoadURL() { } |
343 | public void llParcelMediaCommandList() { } | 343 | public void llParcelMediaCommandList() { } |
344 | public void llParcelMediaQuery() { } | 344 | public void llParcelMediaQuery() { } |
345 | public void llModPow() { } | 345 | public void llModPow() { } |
346 | public void llGetInventoryType() { } | 346 | public void llGetInventoryType() { } |
347 | public void llSetPayPrice() { } | 347 | public void llSetPayPrice() { } |
348 | public void llGetCameraPos() { } | 348 | public void llGetCameraPos() { } |
349 | public void llGetCameraRot() { } | 349 | public void llGetCameraRot() { } |
350 | public void llSetPrimURL() { } | 350 | public void llSetPrimURL() { } |
351 | public void llRefreshPrimURL() { } | 351 | public void llRefreshPrimURL() { } |
352 | public void llEscapeURL() { } | 352 | public void llEscapeURL() { } |
353 | public void llUnescapeURL() { } | 353 | public void llUnescapeURL() { } |
354 | public void llMapDestination() { } | 354 | public void llMapDestination() { } |
355 | public void llAddToLandBanList() { } | 355 | public void llAddToLandBanList() { } |
356 | public void llRemoveFromLandPassList() { } | 356 | public void llRemoveFromLandPassList() { } |
357 | public void llRemoveFromLandBanList() { } | 357 | public void llRemoveFromLandBanList() { } |
358 | public void llSetCameraParams() { } | 358 | public void llSetCameraParams() { } |
359 | public void llClearCameraParams() { } | 359 | public void llClearCameraParams() { } |
360 | public void llListStatistics() { } | 360 | public void llListStatistics() { } |
361 | public void llGetUnixTime() { } | 361 | public void llGetUnixTime() { } |
362 | public void llGetParcelFlags() { } | 362 | public void llGetParcelFlags() { } |
363 | public void llGetRegionFlags() { } | 363 | public void llGetRegionFlags() { } |
364 | public void llXorBase64StringsCorrect() { } | 364 | public void llXorBase64StringsCorrect() { } |
365 | public void llHTTPRequest() { } | 365 | public void llHTTPRequest() { } |
366 | public void llResetLandBanList() { } | 366 | public void llResetLandBanList() { } |
367 | public void llResetLandPassList() { } | 367 | public void llResetLandPassList() { } |
368 | public void llGetParcelPrimCount() { } | 368 | public void llGetParcelPrimCount() { } |
369 | public void llGetParcelPrimOwners() { } | 369 | public void llGetParcelPrimOwners() { } |
370 | public void llGetObjectPrimCount() { } | 370 | public void llGetObjectPrimCount() { } |
371 | public void llGetParcelMaxPrims() { } | 371 | public void llGetParcelMaxPrims() { } |
372 | public void llGetParcelDetails() { } | 372 | public void llGetParcelDetails() { } |
373 | 373 | ||
374 | 374 | ||
375 | 375 | ||
376 | } | 376 | } |
377 | } | 377 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_OPCODE_IL_processor.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_OPCODE_IL_processor.cs index 4b8f8d7..46f6845 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_OPCODE_IL_processor.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLHandler/LSL_OPCODE_IL_processor.cs | |||
@@ -1,351 +1,351 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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 | /* Original code: Tedd Hansen */ | 28 | /* Original code: Tedd Hansen */ |
29 | using System; | 29 | using System; |
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Text; | 31 | using System.Text; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | using System.Reflection.Emit; | 33 | using System.Reflection.Emit; |
34 | 34 | ||
35 | namespace OpenSim.Region.Scripting.LSL | 35 | namespace OpenSim.Region.Scripting.LSL |
36 | { | 36 | { |
37 | partial class LSO_Parser | 37 | partial class LSO_Parser |
38 | { | 38 | { |
39 | //LSO_Enums MyLSO_Enums = new LSO_Enums(); | 39 | //LSO_Enums MyLSO_Enums = new LSO_Enums(); |
40 | 40 | ||
41 | internal bool LSL_PROCESS_OPCODE(ILGenerator il) | 41 | internal bool LSL_PROCESS_OPCODE(ILGenerator il) |
42 | { | 42 | { |
43 | 43 | ||
44 | byte bp1; | 44 | byte bp1; |
45 | UInt32 u32p1; | 45 | UInt32 u32p1; |
46 | UInt16 opcode = br_read(1)[0]; | 46 | UInt16 opcode = br_read(1)[0]; |
47 | Common.SendToDebug("OPCODE: " + ((LSO_Enums.Operation_Table)opcode).ToString()); | 47 | Common.SendToDebug("OPCODE: " + ((LSO_Enums.Operation_Table)opcode).ToString()); |
48 | string idesc = ((LSO_Enums.Operation_Table)opcode).ToString(); | 48 | string idesc = ((LSO_Enums.Operation_Table)opcode).ToString(); |
49 | switch ((LSO_Enums.Operation_Table)opcode) | 49 | switch ((LSO_Enums.Operation_Table)opcode) |
50 | { | 50 | { |
51 | 51 | ||
52 | case LSO_Enums.Operation_Table.POP: | 52 | case LSO_Enums.Operation_Table.POP: |
53 | case LSO_Enums.Operation_Table.POPL: | 53 | case LSO_Enums.Operation_Table.POPL: |
54 | case LSO_Enums.Operation_Table.POPV: | 54 | case LSO_Enums.Operation_Table.POPV: |
55 | case LSO_Enums.Operation_Table.POPQ: | 55 | case LSO_Enums.Operation_Table.POPQ: |
56 | case LSO_Enums.Operation_Table.POPIP: | 56 | case LSO_Enums.Operation_Table.POPIP: |
57 | case LSO_Enums.Operation_Table.POPBP: | 57 | case LSO_Enums.Operation_Table.POPBP: |
58 | case LSO_Enums.Operation_Table.POPSP: | 58 | case LSO_Enums.Operation_Table.POPSP: |
59 | case LSO_Enums.Operation_Table.POPSLR: | 59 | case LSO_Enums.Operation_Table.POPSLR: |
60 | // ignore -- builds callframe | 60 | // ignore -- builds callframe |
61 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Pop);"); | 61 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Pop);"); |
62 | il.Emit(OpCodes.Pop); | 62 | il.Emit(OpCodes.Pop); |
63 | break; | 63 | break; |
64 | case LSO_Enums.Operation_Table.POPARG: | 64 | case LSO_Enums.Operation_Table.POPARG: |
65 | Common.SendToDebug("Instruction " + idesc + ": Ignored"); | 65 | Common.SendToDebug("Instruction " + idesc + ": Ignored"); |
66 | Common.SendToDebug("Instruction " + idesc + ": Description: Drop x bytes from the stack "); | 66 | Common.SendToDebug("Instruction " + idesc + ": Description: Drop x bytes from the stack "); |
67 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 67 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
68 | break; | 68 | break; |
69 | 69 | ||
70 | // LONG | 70 | // LONG |
71 | case LSO_Enums.Operation_Table.STORE: | 71 | case LSO_Enums.Operation_Table.STORE: |
72 | case LSO_Enums.Operation_Table.STORES: | 72 | case LSO_Enums.Operation_Table.STORES: |
73 | case LSO_Enums.Operation_Table.STOREL: | 73 | case LSO_Enums.Operation_Table.STOREL: |
74 | case LSO_Enums.Operation_Table.STOREV: | 74 | case LSO_Enums.Operation_Table.STOREV: |
75 | case LSO_Enums.Operation_Table.STOREQ: | 75 | case LSO_Enums.Operation_Table.STOREQ: |
76 | case LSO_Enums.Operation_Table.STOREG: | 76 | case LSO_Enums.Operation_Table.STOREG: |
77 | case LSO_Enums.Operation_Table.STOREGS: | 77 | case LSO_Enums.Operation_Table.STOREGS: |
78 | case LSO_Enums.Operation_Table.STOREGL: | 78 | case LSO_Enums.Operation_Table.STOREGL: |
79 | case LSO_Enums.Operation_Table.STOREGV: | 79 | case LSO_Enums.Operation_Table.STOREGV: |
80 | case LSO_Enums.Operation_Table.STOREGQ: | 80 | case LSO_Enums.Operation_Table.STOREGQ: |
81 | case LSO_Enums.Operation_Table.LOADP: | 81 | case LSO_Enums.Operation_Table.LOADP: |
82 | case LSO_Enums.Operation_Table.LOADSP: | 82 | case LSO_Enums.Operation_Table.LOADSP: |
83 | case LSO_Enums.Operation_Table.LOADLP: | 83 | case LSO_Enums.Operation_Table.LOADLP: |
84 | case LSO_Enums.Operation_Table.LOADVP: | 84 | case LSO_Enums.Operation_Table.LOADVP: |
85 | case LSO_Enums.Operation_Table.LOADQP: | 85 | case LSO_Enums.Operation_Table.LOADQP: |
86 | case LSO_Enums.Operation_Table.PUSH: | 86 | case LSO_Enums.Operation_Table.PUSH: |
87 | case LSO_Enums.Operation_Table.PUSHS: | 87 | case LSO_Enums.Operation_Table.PUSHS: |
88 | case LSO_Enums.Operation_Table.PUSHL: | 88 | case LSO_Enums.Operation_Table.PUSHL: |
89 | case LSO_Enums.Operation_Table.PUSHV: | 89 | case LSO_Enums.Operation_Table.PUSHV: |
90 | case LSO_Enums.Operation_Table.PUSHQ: | 90 | case LSO_Enums.Operation_Table.PUSHQ: |
91 | case LSO_Enums.Operation_Table.PUSHG: | 91 | case LSO_Enums.Operation_Table.PUSHG: |
92 | case LSO_Enums.Operation_Table.PUSHGS: | 92 | case LSO_Enums.Operation_Table.PUSHGS: |
93 | case LSO_Enums.Operation_Table.PUSHGL: | 93 | case LSO_Enums.Operation_Table.PUSHGL: |
94 | case LSO_Enums.Operation_Table.PUSHGV: | 94 | case LSO_Enums.Operation_Table.PUSHGV: |
95 | case LSO_Enums.Operation_Table.PUSHGQ: | 95 | case LSO_Enums.Operation_Table.PUSHGQ: |
96 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 96 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
97 | break; | 97 | break; |
98 | // None | 98 | // None |
99 | case LSO_Enums.Operation_Table.PUSHIP: | 99 | case LSO_Enums.Operation_Table.PUSHIP: |
100 | case LSO_Enums.Operation_Table.PUSHBP: | 100 | case LSO_Enums.Operation_Table.PUSHBP: |
101 | case LSO_Enums.Operation_Table.PUSHSP: | 101 | case LSO_Enums.Operation_Table.PUSHSP: |
102 | // Push Stack Top (Memory Address) to stack | 102 | // Push Stack Top (Memory Address) to stack |
103 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldc_I4, " + myHeader.SP + ");"); | 103 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldc_I4, " + myHeader.SP + ");"); |
104 | Common.SendToDebug("Instruction " + idesc + ": Description: Pushing Stack Top (Memory Address from header) to stack"); | 104 | Common.SendToDebug("Instruction " + idesc + ": Description: Pushing Stack Top (Memory Address from header) to stack"); |
105 | il.Emit(OpCodes.Ldc_I4, myHeader.SP); | 105 | il.Emit(OpCodes.Ldc_I4, myHeader.SP); |
106 | break; | 106 | break; |
107 | // BYTE | 107 | // BYTE |
108 | case LSO_Enums.Operation_Table.PUSHARGB: | 108 | case LSO_Enums.Operation_Table.PUSHARGB: |
109 | Common.SendToDebug("Param1: " + br_read(1)[0]); | 109 | Common.SendToDebug("Param1: " + br_read(1)[0]); |
110 | break; | 110 | break; |
111 | // INTEGER | 111 | // INTEGER |
112 | case LSO_Enums.Operation_Table.PUSHARGI: | 112 | case LSO_Enums.Operation_Table.PUSHARGI: |
113 | // TODO: What is size of integer? | 113 | // TODO: What is size of integer? |
114 | u32p1 = BitConverter.ToUInt32(br_read(4), 0); | 114 | u32p1 = BitConverter.ToUInt32(br_read(4), 0); |
115 | Common.SendToDebug("Instruction PUSHSP: il.Emit(OpCodes.Ldc_I4, " + u32p1 + ");"); | 115 | Common.SendToDebug("Instruction PUSHSP: il.Emit(OpCodes.Ldc_I4, " + u32p1 + ");"); |
116 | Common.SendToDebug("Param1: " + u32p1); | 116 | Common.SendToDebug("Param1: " + u32p1); |
117 | il.Emit(OpCodes.Ldc_I4, u32p1); | 117 | il.Emit(OpCodes.Ldc_I4, u32p1); |
118 | break; | 118 | break; |
119 | // FLOAT | 119 | // FLOAT |
120 | case LSO_Enums.Operation_Table.PUSHARGF: | 120 | case LSO_Enums.Operation_Table.PUSHARGF: |
121 | // TODO: What is size of float? | 121 | // TODO: What is size of float? |
122 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 122 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
123 | break; | 123 | break; |
124 | // STRING | 124 | // STRING |
125 | case LSO_Enums.Operation_Table.PUSHARGS: | 125 | case LSO_Enums.Operation_Table.PUSHARGS: |
126 | string s = Read_String(); | 126 | string s = Read_String(); |
127 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldstr, \"" + s + "\");"); | 127 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldstr, \"" + s + "\");"); |
128 | Common.SendToDebug("Param1: " + s); | 128 | Common.SendToDebug("Param1: " + s); |
129 | il.Emit(OpCodes.Ldstr, s); | 129 | il.Emit(OpCodes.Ldstr, s); |
130 | break; | 130 | break; |
131 | // VECTOR z,y,x | 131 | // VECTOR z,y,x |
132 | case LSO_Enums.Operation_Table.PUSHARGV: | 132 | case LSO_Enums.Operation_Table.PUSHARGV: |
133 | Common.SendToDebug("Param1 Z: " + BitConverter.ToUInt32(br_read(4), 0)); | 133 | Common.SendToDebug("Param1 Z: " + BitConverter.ToUInt32(br_read(4), 0)); |
134 | Common.SendToDebug("Param1 Y: " + BitConverter.ToUInt32(br_read(4), 0)); | 134 | Common.SendToDebug("Param1 Y: " + BitConverter.ToUInt32(br_read(4), 0)); |
135 | Common.SendToDebug("Param1 X: " + BitConverter.ToUInt32(br_read(4), 0)); | 135 | Common.SendToDebug("Param1 X: " + BitConverter.ToUInt32(br_read(4), 0)); |
136 | break; | 136 | break; |
137 | // ROTATION s,z,y,x | 137 | // ROTATION s,z,y,x |
138 | case LSO_Enums.Operation_Table.PUSHARGQ: | 138 | case LSO_Enums.Operation_Table.PUSHARGQ: |
139 | Common.SendToDebug("Param1 S: " + BitConverter.ToUInt32(br_read(4), 0)); | 139 | Common.SendToDebug("Param1 S: " + BitConverter.ToUInt32(br_read(4), 0)); |
140 | Common.SendToDebug("Param1 Z: " + BitConverter.ToUInt32(br_read(4), 0)); | 140 | Common.SendToDebug("Param1 Z: " + BitConverter.ToUInt32(br_read(4), 0)); |
141 | Common.SendToDebug("Param1 Y: " + BitConverter.ToUInt32(br_read(4), 0)); | 141 | Common.SendToDebug("Param1 Y: " + BitConverter.ToUInt32(br_read(4), 0)); |
142 | Common.SendToDebug("Param1 X: " + BitConverter.ToUInt32(br_read(4), 0)); | 142 | Common.SendToDebug("Param1 X: " + BitConverter.ToUInt32(br_read(4), 0)); |
143 | break; | 143 | break; |
144 | // LONG | 144 | // LONG |
145 | case LSO_Enums.Operation_Table.PUSHARGE: | 145 | case LSO_Enums.Operation_Table.PUSHARGE: |
146 | u32p1 = BitConverter.ToUInt32(br_read(4), 0); | 146 | u32p1 = BitConverter.ToUInt32(br_read(4), 0); |
147 | //Common.SendToDebug("Instruction PUSHSP: il.Emit(OpCodes., " + u32p1 + ");"); | 147 | //Common.SendToDebug("Instruction PUSHSP: il.Emit(OpCodes., " + u32p1 + ");"); |
148 | Common.SendToDebug("Instruction " + idesc + ": Ignoring (not in use according to doc)"); | 148 | Common.SendToDebug("Instruction " + idesc + ": Ignoring (not in use according to doc)"); |
149 | //Common.SendToDebug("Instruction " + idesc + ": Description: Pushes X bytes of $00 onto the stack (used to put space for local variable memory for a call)"); | 149 | //Common.SendToDebug("Instruction " + idesc + ": Description: Pushes X bytes of $00 onto the stack (used to put space for local variable memory for a call)"); |
150 | Common.SendToDebug("Param1: " + u32p1); | 150 | Common.SendToDebug("Param1: " + u32p1); |
151 | //il.Emit(OpCodes.ldc_i4, u32p1); | 151 | //il.Emit(OpCodes.ldc_i4, u32p1); |
152 | //if (u32p1 > 0) { | 152 | //if (u32p1 > 0) { |
153 | //for (int _ic=0; _ic < u32p1; _ic++) | 153 | //for (int _ic=0; _ic < u32p1; _ic++) |
154 | //{ | 154 | //{ |
155 | // Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldnull);"); | 155 | // Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldnull);"); |
156 | // il.Emit(OpCodes.Ldnull); | 156 | // il.Emit(OpCodes.Ldnull); |
157 | //} | 157 | //} |
158 | break; | 158 | break; |
159 | // BYTE | 159 | // BYTE |
160 | case LSO_Enums.Operation_Table.ADD: | 160 | case LSO_Enums.Operation_Table.ADD: |
161 | bp1 = br_read(1)[0]; | 161 | bp1 = br_read(1)[0]; |
162 | Common.SendToDebug("Instruction " + idesc + ": Add type: " + ((LSO_Enums.OpCode_Add_TypeDefs)bp1).ToString()); | 162 | Common.SendToDebug("Instruction " + idesc + ": Add type: " + ((LSO_Enums.OpCode_Add_TypeDefs)bp1).ToString()); |
163 | Common.SendToDebug("Param1: " + bp1); | 163 | Common.SendToDebug("Param1: " + bp1); |
164 | switch ((LSO_Enums.OpCode_Add_TypeDefs)bp1) | 164 | switch ((LSO_Enums.OpCode_Add_TypeDefs)bp1) |
165 | { | 165 | { |
166 | case LSO_Enums.OpCode_Add_TypeDefs.String: | 166 | case LSO_Enums.OpCode_Add_TypeDefs.String: |
167 | Common.SendToDebug("Instruction " + idesc | 167 | Common.SendToDebug("Instruction " + idesc |
168 | + ": il.Emit(OpCodes.Call, typeof(System.String).GetMethod(\"Concat\", new Type[] { typeof(object), typeof(object) }));"); | 168 | + ": il.Emit(OpCodes.Call, typeof(System.String).GetMethod(\"Concat\", new Type[] { typeof(object), typeof(object) }));"); |
169 | il.Emit(OpCodes.Call, typeof(System.String).GetMethod | 169 | il.Emit(OpCodes.Call, typeof(System.String).GetMethod |
170 | ("Concat", new Type[] { typeof(object), typeof(object) })); | 170 | ("Concat", new Type[] { typeof(object), typeof(object) })); |
171 | 171 | ||
172 | break; | 172 | break; |
173 | case LSO_Enums.OpCode_Add_TypeDefs.UInt32: | 173 | case LSO_Enums.OpCode_Add_TypeDefs.UInt32: |
174 | default: | 174 | default: |
175 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Add);"); | 175 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Add);"); |
176 | il.Emit(OpCodes.Add); | 176 | il.Emit(OpCodes.Add); |
177 | break; | 177 | break; |
178 | } | 178 | } |
179 | 179 | ||
180 | 180 | ||
181 | //il.Emit(OpCodes.Add, p1); | 181 | //il.Emit(OpCodes.Add, p1); |
182 | break; | 182 | break; |
183 | case LSO_Enums.Operation_Table.SUB: | 183 | case LSO_Enums.Operation_Table.SUB: |
184 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Sub);"); | 184 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Sub);"); |
185 | bp1 = br_read(1)[0]; | 185 | bp1 = br_read(1)[0]; |
186 | Common.SendToDebug("Param1: " + bp1); | 186 | Common.SendToDebug("Param1: " + bp1); |
187 | il.Emit(OpCodes.Sub); | 187 | il.Emit(OpCodes.Sub); |
188 | //il.Emit(OpCodes.Sub, p1); | 188 | //il.Emit(OpCodes.Sub, p1); |
189 | break; | 189 | break; |
190 | case LSO_Enums.Operation_Table.MUL: | 190 | case LSO_Enums.Operation_Table.MUL: |
191 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Mul);"); | 191 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Mul);"); |
192 | bp1 = br_read(1)[0]; | 192 | bp1 = br_read(1)[0]; |
193 | Common.SendToDebug("Param1: " + bp1); | 193 | Common.SendToDebug("Param1: " + bp1); |
194 | il.Emit(OpCodes.Mul); | 194 | il.Emit(OpCodes.Mul); |
195 | //il.Emit(OpCodes.Mul, p1); | 195 | //il.Emit(OpCodes.Mul, p1); |
196 | break; | 196 | break; |
197 | case LSO_Enums.Operation_Table.DIV: | 197 | case LSO_Enums.Operation_Table.DIV: |
198 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Div);"); | 198 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Div);"); |
199 | bp1 = br_read(1)[0]; | 199 | bp1 = br_read(1)[0]; |
200 | Common.SendToDebug("Param1: " + bp1); | 200 | Common.SendToDebug("Param1: " + bp1); |
201 | il.Emit(OpCodes.Div); | 201 | il.Emit(OpCodes.Div); |
202 | //il.Emit(OpCodes.Div, p1); | 202 | //il.Emit(OpCodes.Div, p1); |
203 | break; | 203 | break; |
204 | case LSO_Enums.Operation_Table.EQ: | 204 | case LSO_Enums.Operation_Table.EQ: |
205 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ceq);"); | 205 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ceq);"); |
206 | bp1 = br_read(1)[0]; | 206 | bp1 = br_read(1)[0]; |
207 | Common.SendToDebug("Param1: " + bp1); | 207 | Common.SendToDebug("Param1: " + bp1); |
208 | il.Emit(OpCodes.Ceq); | 208 | il.Emit(OpCodes.Ceq); |
209 | //il.Emit(OpCodes.Ceq, p1); | 209 | //il.Emit(OpCodes.Ceq, p1); |
210 | break; | 210 | break; |
211 | case LSO_Enums.Operation_Table.NEQ: | 211 | case LSO_Enums.Operation_Table.NEQ: |
212 | case LSO_Enums.Operation_Table.LEQ: | 212 | case LSO_Enums.Operation_Table.LEQ: |
213 | case LSO_Enums.Operation_Table.GEQ: | 213 | case LSO_Enums.Operation_Table.GEQ: |
214 | case LSO_Enums.Operation_Table.LESS: | 214 | case LSO_Enums.Operation_Table.LESS: |
215 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Clt_Un);"); | 215 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Clt_Un);"); |
216 | bp1 = br_read(1)[0]; | 216 | bp1 = br_read(1)[0]; |
217 | Common.SendToDebug("Param1: " + bp1); | 217 | Common.SendToDebug("Param1: " + bp1); |
218 | il.Emit(OpCodes.Clt_Un); | 218 | il.Emit(OpCodes.Clt_Un); |
219 | //il.Emit(OpCodes.Clt, p1); | 219 | //il.Emit(OpCodes.Clt, p1); |
220 | break; | 220 | break; |
221 | case LSO_Enums.Operation_Table.GREATER: | 221 | case LSO_Enums.Operation_Table.GREATER: |
222 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Cgt_Un);"); | 222 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Cgt_Un);"); |
223 | bp1 = br_read(1)[0]; | 223 | bp1 = br_read(1)[0]; |
224 | Common.SendToDebug("Param1: " + bp1); | 224 | Common.SendToDebug("Param1: " + bp1); |
225 | il.Emit(OpCodes.Cgt_Un); | 225 | il.Emit(OpCodes.Cgt_Un); |
226 | //il.Emit(OpCodes.Cgt, p1); | 226 | //il.Emit(OpCodes.Cgt, p1); |
227 | break; | 227 | break; |
228 | case LSO_Enums.Operation_Table.MOD: | 228 | case LSO_Enums.Operation_Table.MOD: |
229 | case LSO_Enums.Operation_Table.BOOLOR: | 229 | case LSO_Enums.Operation_Table.BOOLOR: |
230 | bp1 = br_read(1)[0]; | 230 | bp1 = br_read(1)[0]; |
231 | Common.SendToDebug("Param1: " + bp1); | 231 | Common.SendToDebug("Param1: " + bp1); |
232 | break; | 232 | break; |
233 | // LONG | 233 | // LONG |
234 | case LSO_Enums.Operation_Table.JUMP: | 234 | case LSO_Enums.Operation_Table.JUMP: |
235 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 235 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
236 | break; | 236 | break; |
237 | // BYTE, LONG | 237 | // BYTE, LONG |
238 | case LSO_Enums.Operation_Table.JUMPIF: | 238 | case LSO_Enums.Operation_Table.JUMPIF: |
239 | case LSO_Enums.Operation_Table.JUMPNIF: | 239 | case LSO_Enums.Operation_Table.JUMPNIF: |
240 | Common.SendToDebug("Param1: " + br_read(1)[0]); | 240 | Common.SendToDebug("Param1: " + br_read(1)[0]); |
241 | Common.SendToDebug("Param2: " + BitConverter.ToUInt32(br_read(4), 0)); | 241 | Common.SendToDebug("Param2: " + BitConverter.ToUInt32(br_read(4), 0)); |
242 | break; | 242 | break; |
243 | // LONG | 243 | // LONG |
244 | case LSO_Enums.Operation_Table.STATE: | 244 | case LSO_Enums.Operation_Table.STATE: |
245 | bp1 = br_read(1)[0]; | 245 | bp1 = br_read(1)[0]; |
246 | //il.Emit(OpCodes.Ld); // Load local variable 0 onto stack | 246 | //il.Emit(OpCodes.Ld); // Load local variable 0 onto stack |
247 | //il.Emit(OpCodes.Ldc_I4, 0); // Push index position | 247 | //il.Emit(OpCodes.Ldc_I4, 0); // Push index position |
248 | //il.Emit(OpCodes.Ldstr, EventList[p1]); // Push value | 248 | //il.Emit(OpCodes.Ldstr, EventList[p1]); // Push value |
249 | //il.Emit(OpCodes.Stelem_Ref); // Perform array[index] = value | 249 | //il.Emit(OpCodes.Stelem_Ref); // Perform array[index] = value |
250 | break; | 250 | break; |
251 | case LSO_Enums.Operation_Table.CALL: | 251 | case LSO_Enums.Operation_Table.CALL: |
252 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 252 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
253 | break; | 253 | break; |
254 | // BYTE | 254 | // BYTE |
255 | case LSO_Enums.Operation_Table.CAST: | 255 | case LSO_Enums.Operation_Table.CAST: |
256 | bp1 = br_read(1)[0]; | 256 | bp1 = br_read(1)[0]; |
257 | Common.SendToDebug("Instruction " + idesc + ": Cast to type: " + ((LSO_Enums.OpCode_Cast_TypeDefs)bp1)); | 257 | Common.SendToDebug("Instruction " + idesc + ": Cast to type: " + ((LSO_Enums.OpCode_Cast_TypeDefs)bp1)); |
258 | Common.SendToDebug("Param1: " + bp1); | 258 | Common.SendToDebug("Param1: " + bp1); |
259 | switch ((LSO_Enums.OpCode_Cast_TypeDefs)bp1) | 259 | switch ((LSO_Enums.OpCode_Cast_TypeDefs)bp1) |
260 | { | 260 | { |
261 | case LSO_Enums.OpCode_Cast_TypeDefs.String: | 261 | case LSO_Enums.OpCode_Cast_TypeDefs.String: |
262 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Calli, typeof(System.Convert).GetMethod(\"ToString\", new Type[] { typeof(object) }));"); | 262 | Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Calli, typeof(System.Convert).GetMethod(\"ToString\", new Type[] { typeof(object) }));"); |
263 | //il.Emit(OpCodes.Box, typeof (UInt32)); | 263 | //il.Emit(OpCodes.Box, typeof (UInt32)); |
264 | il.Emit(OpCodes.Calli, typeof(Common).GetMethod | 264 | il.Emit(OpCodes.Calli, typeof(Common).GetMethod |
265 | ("Cast_ToString", new Type[] { typeof(object) })); | 265 | ("Cast_ToString", new Type[] { typeof(object) })); |
266 | 266 | ||
267 | //il.Emit(OpCodes.Box, typeof(System.UInt32) ); | 267 | //il.Emit(OpCodes.Box, typeof(System.UInt32) ); |
268 | //il.Emit(OpCodes.Box, typeof(string)); | 268 | //il.Emit(OpCodes.Box, typeof(string)); |
269 | 269 | ||
270 | //il.Emit(OpCodes.Conv_R8); | 270 | //il.Emit(OpCodes.Conv_R8); |
271 | //il.Emit(OpCodes.Call, typeof(System.Convert).GetMethod | 271 | //il.Emit(OpCodes.Call, typeof(System.Convert).GetMethod |
272 | // ("ToString", new Type[] { typeof(float) })); | 272 | // ("ToString", new Type[] { typeof(float) })); |
273 | 273 | ||
274 | break; | 274 | break; |
275 | default: | 275 | default: |
276 | Common.SendToDebug("Instruction " + idesc + ": Unknown cast type!"); | 276 | Common.SendToDebug("Instruction " + idesc + ": Unknown cast type!"); |
277 | break; | 277 | break; |
278 | } | 278 | } |
279 | break; | 279 | break; |
280 | // LONG | 280 | // LONG |
281 | case LSO_Enums.Operation_Table.STACKTOS: | 281 | case LSO_Enums.Operation_Table.STACKTOS: |
282 | case LSO_Enums.Operation_Table.STACKTOL: | 282 | case LSO_Enums.Operation_Table.STACKTOL: |
283 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); | 283 | Common.SendToDebug("Param1: " + BitConverter.ToUInt32(br_read(4), 0)); |
284 | break; | 284 | break; |
285 | // BYTE | 285 | // BYTE |
286 | case LSO_Enums.Operation_Table.PRINT: | 286 | case LSO_Enums.Operation_Table.PRINT: |
287 | case LSO_Enums.Operation_Table.CALLLIB: | 287 | case LSO_Enums.Operation_Table.CALLLIB: |
288 | Common.SendToDebug("Param1: " + br_read(1)[0]); | 288 | Common.SendToDebug("Param1: " + br_read(1)[0]); |
289 | break; | 289 | break; |
290 | // SHORT | 290 | // SHORT |
291 | case LSO_Enums.Operation_Table.CALLLIB_TWO_BYTE: | 291 | case LSO_Enums.Operation_Table.CALLLIB_TWO_BYTE: |
292 | // TODO: What is size of short? | 292 | // TODO: What is size of short? |
293 | UInt16 U16p1 = BitConverter.ToUInt16(br_read(2), 0); | 293 | UInt16 U16p1 = BitConverter.ToUInt16(br_read(2), 0); |
294 | Common.SendToDebug("Instruction " + idesc + ": Builtin Command: " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString()); | 294 | Common.SendToDebug("Instruction " + idesc + ": Builtin Command: " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString()); |
295 | Common.SendToDebug("Param1: " + U16p1); | 295 | Common.SendToDebug("Param1: " + U16p1); |
296 | switch ((LSO_Enums.BuiltIn_Functions)U16p1) | 296 | switch ((LSO_Enums.BuiltIn_Functions)U16p1) |
297 | { | 297 | { |
298 | case LSO_Enums.BuiltIn_Functions.llSay: | 298 | case LSO_Enums.BuiltIn_Functions.llSay: |
299 | Common.SendToDebug("Instruction " + idesc + " " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString() | 299 | Common.SendToDebug("Instruction " + idesc + " " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString() |
300 | + ": Mapped to internal function"); | 300 | + ": Mapped to internal function"); |
301 | 301 | ||
302 | //il.Emit(OpCodes.Ldstr, "INTERNAL COMMAND: llSay({0}, \"{1}\""); | 302 | //il.Emit(OpCodes.Ldstr, "INTERNAL COMMAND: llSay({0}, \"{1}\""); |
303 | //il.Emit(OpCodes.Call, typeof(IL_Helper).GetMethod("ReverseFormatString", | 303 | //il.Emit(OpCodes.Call, typeof(IL_Helper).GetMethod("ReverseFormatString", |
304 | // new Type[] { typeof(string), typeof(UInt32), typeof(string) } | 304 | // new Type[] { typeof(string), typeof(UInt32), typeof(string) } |
305 | //)); | 305 | //)); |
306 | 306 | ||
307 | 307 | ||
308 | //il.Emit(OpCodes.Pop); | 308 | //il.Emit(OpCodes.Pop); |
309 | //il.Emit(OpCodes.Call, | 309 | //il.Emit(OpCodes.Call, |
310 | // typeof(Console).GetMethod("WriteLine", | 310 | // typeof(Console).GetMethod("WriteLine", |
311 | // new Type[] { typeof(string) } | 311 | // new Type[] { typeof(string) } |
312 | //)); | 312 | //)); |
313 | 313 | ||
314 | 314 | ||
315 | il.Emit(OpCodes.Call, | 315 | il.Emit(OpCodes.Call, |
316 | typeof(Common).GetMethod("SendToLog", | 316 | typeof(Common).GetMethod("SendToLog", |
317 | new Type[] { typeof(string) } | 317 | new Type[] { typeof(string) } |
318 | )); | 318 | )); |
319 | 319 | ||
320 | 320 | ||
321 | 321 | ||
322 | //il.Emit(OpCodes.Pop); | 322 | //il.Emit(OpCodes.Pop); |
323 | 323 | ||
324 | //il.Emit(OpCodes.Ldind_I2, 0); | 324 | //il.Emit(OpCodes.Ldind_I2, 0); |
325 | 325 | ||
326 | //il.Emit(OpCodes.Call, typeof(string).GetMethod("Format", new Type[] { typeof(string), typeof(object) })); | 326 | //il.Emit(OpCodes.Call, typeof(string).GetMethod("Format", new Type[] { typeof(string), typeof(object) })); |
327 | //il.EmitCalli(OpCodes.Calli, | 327 | //il.EmitCalli(OpCodes.Calli, |
328 | //il.Emit(OpCodes.Call, typeof().GetMethod | 328 | //il.Emit(OpCodes.Call, typeof().GetMethod |
329 | // ("llSay", new Type[] { typeof(UInt32), typeof(string) })); | 329 | // ("llSay", new Type[] { typeof(UInt32), typeof(string) })); |
330 | break; | 330 | break; |
331 | default: | 331 | default: |
332 | Common.SendToDebug("Instruction " + idesc + ": " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString() + ": INTERNAL COMMAND NOT IMPLEMENTED"); | 332 | Common.SendToDebug("Instruction " + idesc + ": " + ((LSO_Enums.BuiltIn_Functions)U16p1).ToString() + ": INTERNAL COMMAND NOT IMPLEMENTED"); |
333 | break; | 333 | break; |
334 | } | 334 | } |
335 | 335 | ||
336 | //Common.SendToDebug("Instruction " + idesc + ": DEBUG: Faking return code:"); | 336 | //Common.SendToDebug("Instruction " + idesc + ": DEBUG: Faking return code:"); |
337 | //Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldc_I4, 0);"); | 337 | //Common.SendToDebug("Instruction " + idesc + ": il.Emit(OpCodes.Ldc_I4, 0);"); |
338 | //il.Emit(OpCodes.Ldc_I4, 0); | 338 | //il.Emit(OpCodes.Ldc_I4, 0); |
339 | break; | 339 | break; |
340 | 340 | ||
341 | // RETURN | 341 | // RETURN |
342 | case LSO_Enums.Operation_Table.RETURN: | 342 | case LSO_Enums.Operation_Table.RETURN: |
343 | 343 | ||
344 | Common.SendToDebug("Last OPCODE was return command. Code chunk execution complete."); | 344 | Common.SendToDebug("Last OPCODE was return command. Code chunk execution complete."); |
345 | return true; | 345 | return true; |
346 | } | 346 | } |
347 | return false; | 347 | return false; |
348 | } | 348 | } |
349 | 349 | ||
350 | } | 350 | } |
351 | } | 351 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScript.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScript.cs index 4ee4d37..49357f5 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScript.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScript.cs | |||
@@ -1,33 +1,33 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | using OpenSim.Region.Scripting; | 5 | using OpenSim.Region.Scripting; |
6 | using OpenSim.Region.Scripting.LSL; | 6 | using OpenSim.Region.Scripting.LSL; |
7 | 7 | ||
8 | namespace OpenSim.Region.Scripting.LSL | 8 | namespace OpenSim.Region.Scripting.LSL |
9 | { | 9 | { |
10 | class LSLScript : IScript | 10 | class LSLScript : IScript |
11 | { | 11 | { |
12 | ScriptInfo scriptInfo; | 12 | ScriptInfo scriptInfo; |
13 | LSL.Engine lindenScriptEngine; | 13 | LSL.Engine lindenScriptEngine; |
14 | 14 | ||
15 | public LSLScript(string filename, libsecondlife.LLUUID taskObject) | 15 | public LSLScript(string filename, libsecondlife.LLUUID taskObject) |
16 | { | 16 | { |
17 | scriptInfo.CreateTaskAPI(taskObject); | 17 | scriptInfo.CreateTaskAPI(taskObject); |
18 | 18 | ||
19 | lindenScriptEngine = new Engine(); | 19 | lindenScriptEngine = new Engine(); |
20 | lindenScriptEngine.Start(filename); | 20 | lindenScriptEngine.Start(filename); |
21 | } | 21 | } |
22 | 22 | ||
23 | public void Initialise(ScriptInfo info) | 23 | public void Initialise(ScriptInfo info) |
24 | { | 24 | { |
25 | scriptInfo = info; | 25 | scriptInfo = info; |
26 | } | 26 | } |
27 | 27 | ||
28 | public string getName() | 28 | public string getName() |
29 | { | 29 | { |
30 | return "LSL Script"; | 30 | return "LSL Script"; |
31 | } | 31 | } |
32 | } | 32 | } |
33 | } | 33 | } |
diff --git a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScriptEngine.cs b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScriptEngine.cs index 10706ad..c232c2f 100644 --- a/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScriptEngine.cs +++ b/OpenSim/Region/Environment/Scenes/scripting/Engines/LSLEngine/LSLScriptEngine.cs | |||
@@ -1,27 +1,27 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | using OpenSim.Region.Scripting; | 5 | using OpenSim.Region.Scripting; |
6 | using OpenSim.Region.Scripting.LSL; | 6 | using OpenSim.Region.Scripting.LSL; |
7 | 7 | ||
8 | namespace OpenSim.Region.Scripting | 8 | namespace OpenSim.Region.Scripting |
9 | { | 9 | { |
10 | public class LSLEngine : IScriptCompiler | 10 | public class LSLEngine : IScriptCompiler |
11 | { | 11 | { |
12 | public string FileExt() | 12 | public string FileExt() |
13 | { | 13 | { |
14 | return ".lso"; | 14 | return ".lso"; |
15 | } | 15 | } |
16 | 16 | ||
17 | public Dictionary<string, IScript> compile(string filename) | 17 | public Dictionary<string, IScript> compile(string filename) |
18 | { | 18 | { |
19 | LSLScript script = new LSLScript(filename, libsecondlife.LLUUID.Zero); | 19 | LSLScript script = new LSLScript(filename, libsecondlife.LLUUID.Zero); |
20 | Dictionary<string, IScript> returns = new Dictionary<string, IScript>(); | 20 | Dictionary<string, IScript> returns = new Dictionary<string, IScript>(); |
21 | 21 | ||
22 | returns.Add(filename, script); | 22 | returns.Add(filename, script); |
23 | 23 | ||
24 | return returns; | 24 | return returns; |
25 | } | 25 | } |
26 | } | 26 | } |
27 | } \ No newline at end of file | 27 | } \ No newline at end of file |
diff --git a/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs b/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs index 2e43fe6..83a76e3 100644 --- a/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs +++ b/OpenSim/Region/Examples/SimpleApp/FileSystemObject.cs | |||
@@ -1,31 +1,31 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | using OpenSim.Region.Environment.Scenes; | 4 | using OpenSim.Region.Environment.Scenes; |
5 | using libsecondlife; | 5 | using libsecondlife; |
6 | using OpenSim.Framework.Types; | 6 | using OpenSim.Framework.Types; |
7 | using System.Timers; | 7 | using System.Timers; |
8 | using System.Diagnostics; | 8 | using System.Diagnostics; |
9 | using System.IO; | 9 | using System.IO; |
10 | using Primitive=OpenSim.Region.Environment.Scenes.Primitive; | 10 | using Primitive=OpenSim.Region.Environment.Scenes.Primitive; |
11 | 11 | ||
12 | namespace SimpleApp | 12 | namespace SimpleApp |
13 | { | 13 | { |
14 | public class FileSystemObject : SceneObject | 14 | public class FileSystemObject : SceneObject |
15 | { | 15 | { |
16 | public FileSystemObject(Scene world, FileInfo fileInfo, LLVector3 pos) | 16 | public FileSystemObject(Scene world, FileInfo fileInfo, LLVector3 pos) |
17 | : base( world, world.EventManager, LLUUID.Zero, world.NextLocalId, pos, BoxShape.Default ) | 17 | : base( world, world.EventManager, LLUUID.Zero, world.NextLocalId, pos, BoxShape.Default ) |
18 | { | 18 | { |
19 | 19 | ||
20 | 20 | ||
21 | float size = (float)Math.Pow((double)fileInfo.Length, (double) 1 / 3) / 5; | 21 | float size = (float)Math.Pow((double)fileInfo.Length, (double) 1 / 3) / 5; |
22 | rootPrimitive.ResizeGoup(new LLVector3(size, size, size)); | 22 | rootPrimitive.ResizeGoup(new LLVector3(size, size, size)); |
23 | rootPrimitive.Text = fileInfo.Name; | 23 | rootPrimitive.Text = fileInfo.Name; |
24 | } | 24 | } |
25 | 25 | ||
26 | public override void Update() | 26 | public override void Update() |
27 | { | 27 | { |
28 | base.Update(); | 28 | base.Update(); |
29 | } | 29 | } |
30 | } | 30 | } |
31 | } | 31 | } |
diff --git a/OpenSim/Region/Physics/BulletXPlugin/OpenSim.Region.Physics.BulletXPlugin.csproj b/OpenSim/Region/Physics/BulletXPlugin/OpenSim.Region.Physics.BulletXPlugin.csproj index fdb1d38..7519d74 100644 --- a/OpenSim/Region/Physics/BulletXPlugin/OpenSim.Region.Physics.BulletXPlugin.csproj +++ b/OpenSim/Region/Physics/BulletXPlugin/OpenSim.Region.Physics.BulletXPlugin.csproj | |||
@@ -1,66 +1,66 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 2 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
3 | <PropertyGroup> | 3 | <PropertyGroup> |
4 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 4 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
5 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | 5 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
6 | <ProductVersion>8.0.50727</ProductVersion> | 6 | <ProductVersion>8.0.50727</ProductVersion> |
7 | <SchemaVersion>2.0</SchemaVersion> | 7 | <SchemaVersion>2.0</SchemaVersion> |
8 | <ProjectGuid>{2D3DE8E4-9202-46A4-857B-3579B70E8356}</ProjectGuid> | 8 | <ProjectGuid>{2D3DE8E4-9202-46A4-857B-3579B70E8356}</ProjectGuid> |
9 | <OutputType>Library</OutputType> | 9 | <OutputType>Library</OutputType> |
10 | <AppDesignerFolder>Properties</AppDesignerFolder> | 10 | <AppDesignerFolder>Properties</AppDesignerFolder> |
11 | <RootNamespace>OpenSim.Region.Physics.BulletXPlugin</RootNamespace> | 11 | <RootNamespace>OpenSim.Region.Physics.BulletXPlugin</RootNamespace> |
12 | <AssemblyName>OpenSim.Region.Physics.BulletXPlugin</AssemblyName> | 12 | <AssemblyName>OpenSim.Region.Physics.BulletXPlugin</AssemblyName> |
13 | <StartupObject> | 13 | <StartupObject> |
14 | </StartupObject> | 14 | </StartupObject> |
15 | </PropertyGroup> | 15 | </PropertyGroup> |
16 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | 16 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
17 | <DebugSymbols>true</DebugSymbols> | 17 | <DebugSymbols>true</DebugSymbols> |
18 | <DebugType>full</DebugType> | 18 | <DebugType>full</DebugType> |
19 | <Optimize>false</Optimize> | 19 | <Optimize>false</Optimize> |
20 | <OutputPath>bin\Debug\</OutputPath> | 20 | <OutputPath>bin\Debug\</OutputPath> |
21 | <DefineConstants>DEBUG;TRACE</DefineConstants> | 21 | <DefineConstants>DEBUG;TRACE</DefineConstants> |
22 | <ErrorReport>prompt</ErrorReport> | 22 | <ErrorReport>prompt</ErrorReport> |
23 | <WarningLevel>4</WarningLevel> | 23 | <WarningLevel>4</WarningLevel> |
24 | </PropertyGroup> | 24 | </PropertyGroup> |
25 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | 25 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
26 | <DebugType>pdbonly</DebugType> | 26 | <DebugType>pdbonly</DebugType> |
27 | <Optimize>true</Optimize> | 27 | <Optimize>true</Optimize> |
28 | <OutputPath>..\..\..\..\bin\Physics\</OutputPath> | 28 | <OutputPath>..\..\..\..\bin\Physics\</OutputPath> |
29 | <DefineConstants>TRACE</DefineConstants> | 29 | <DefineConstants>TRACE</DefineConstants> |
30 | <ErrorReport>prompt</ErrorReport> | 30 | <ErrorReport>prompt</ErrorReport> |
31 | <WarningLevel>4</WarningLevel> | 31 | <WarningLevel>4</WarningLevel> |
32 | </PropertyGroup> | 32 | </PropertyGroup> |
33 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | 33 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> |
34 | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | 34 | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
35 | Other similar extension points exist, see Microsoft.Common.targets. | 35 | Other similar extension points exist, see Microsoft.Common.targets. |
36 | <Target Name="BeforeBuild"> | 36 | <Target Name="BeforeBuild"> |
37 | </Target> | 37 | </Target> |
38 | <Target Name="AfterBuild"> | 38 | <Target Name="AfterBuild"> |
39 | </Target> | 39 | </Target> |
40 | --> | 40 | --> |
41 | <ItemGroup> | 41 | <ItemGroup> |
42 | <Compile Include="AssemblyInfo.cs" /> | 42 | <Compile Include="AssemblyInfo.cs" /> |
43 | <Compile Include="BulletXPlugin.cs" /> | 43 | <Compile Include="BulletXPlugin.cs" /> |
44 | </ItemGroup> | 44 | </ItemGroup> |
45 | <ItemGroup> | 45 | <ItemGroup> |
46 | <Reference Include="Axiom.MathLib.dll"> | 46 | <Reference Include="Axiom.MathLib.dll"> |
47 | <HintPath>..\..\..\..\bin\Axiom.MathLib.dll</HintPath> | 47 | <HintPath>..\..\..\..\bin\Axiom.MathLib.dll</HintPath> |
48 | <Private>False</Private> | 48 | <Private>False</Private> |
49 | </Reference> | 49 | </Reference> |
50 | <Reference Include="Modified.XnaDevRu.BulletX, Version=2.50.149.21894, Culture=neutral, processorArchitecture=x86"> | 50 | <Reference Include="Modified.XnaDevRu.BulletX, Version=2.50.149.21894, Culture=neutral, processorArchitecture=x86"> |
51 | <SpecificVersion>False</SpecificVersion> | 51 | <SpecificVersion>False</SpecificVersion> |
52 | <HintPath>..\..\..\..\bin\Modified.XnaDevRu.BulletX.dll</HintPath> | 52 | <HintPath>..\..\..\..\bin\Modified.XnaDevRu.BulletX.dll</HintPath> |
53 | </Reference> | 53 | </Reference> |
54 | <Reference Include="MonoXnaCompactMaths, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> | 54 | <Reference Include="MonoXnaCompactMaths, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL"> |
55 | <SpecificVersion>False</SpecificVersion> | 55 | <SpecificVersion>False</SpecificVersion> |
56 | <HintPath>..\..\..\..\bin\MonoXnaCompactMaths.dll</HintPath> | 56 | <HintPath>..\..\..\..\bin\MonoXnaCompactMaths.dll</HintPath> |
57 | </Reference> | 57 | </Reference> |
58 | <Reference Include="OpenSim.Region.Physics.Manager, Version=1.0.2741.37128, Culture=neutral, processorArchitecture=MSIL"> | 58 | <Reference Include="OpenSim.Region.Physics.Manager, Version=1.0.2741.37128, Culture=neutral, processorArchitecture=MSIL"> |
59 | <SpecificVersion>False</SpecificVersion> | 59 | <SpecificVersion>False</SpecificVersion> |
60 | <HintPath>..\..\..\..\bin\OpenSim.Region.Physics.Manager.dll</HintPath> | 60 | <HintPath>..\..\..\..\bin\OpenSim.Region.Physics.Manager.dll</HintPath> |
61 | </Reference> | 61 | </Reference> |
62 | <Reference Include="System" /> | 62 | <Reference Include="System" /> |
63 | <Reference Include="System.Data" /> | 63 | <Reference Include="System.Data" /> |
64 | <Reference Include="System.Xml" /> | 64 | <Reference Include="System.Xml" /> |
65 | </ItemGroup> | 65 | </ItemGroup> |
66 | </Project> \ No newline at end of file | 66 | </Project> \ No newline at end of file |
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/DB4oDataStore.cs b/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/DB4oDataStore.cs index 91dab04..06c9069 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/DB4oDataStore.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/DB4oDataStore.cs | |||
@@ -1,110 +1,110 @@ | |||
1 | using System; | 1 | using System; |
2 | using System.Collections.Generic; | 2 | using System.Collections.Generic; |
3 | using System.Text; | 3 | using System.Text; |
4 | 4 | ||
5 | using OpenSim.Region.Environment.Scenes; | 5 | using OpenSim.Region.Environment.Scenes; |
6 | using OpenSim.Region.Environment.LandManagement; | 6 | using OpenSim.Region.Environment.LandManagement; |
7 | using OpenSim.Region.Environment; | 7 | using OpenSim.Region.Environment; |
8 | using OpenSim.Region.Interfaces; | 8 | using OpenSim.Region.Interfaces; |
9 | using OpenSim.Framework.Console; | 9 | using OpenSim.Framework.Console; |
10 | using libsecondlife; | 10 | using libsecondlife; |
11 | 11 | ||
12 | using Db4objects.Db4o; | 12 | using Db4objects.Db4o; |
13 | using Db4objects.Db4o.Query; | 13 | using Db4objects.Db4o.Query; |
14 | 14 | ||
15 | namespace OpenSim.DataStore.DB4oStorage | 15 | namespace OpenSim.DataStore.DB4oStorage |
16 | { | 16 | { |
17 | 17 | ||
18 | public class SceneObjectQuery : Predicate | 18 | public class SceneObjectQuery : Predicate |
19 | { | 19 | { |
20 | private LLUUID globalIDSearch; | 20 | private LLUUID globalIDSearch; |
21 | 21 | ||
22 | public SceneObjectQuery(LLUUID find) | 22 | public SceneObjectQuery(LLUUID find) |
23 | { | 23 | { |
24 | globalIDSearch = find; | 24 | globalIDSearch = find; |
25 | } | 25 | } |
26 | 26 | ||
27 | public bool Match(SceneObject obj) | 27 | public bool Match(SceneObject obj) |
28 | { | 28 | { |
29 | return obj.rootUUID == globalIDSearch; | 29 | return obj.rootUUID == globalIDSearch; |
30 | } | 30 | } |
31 | } | 31 | } |
32 | 32 | ||
33 | 33 | ||
34 | public class DB4oDataStore : IRegionDataStore | 34 | public class DB4oDataStore : IRegionDataStore |
35 | { | 35 | { |
36 | private IObjectContainer db; | 36 | private IObjectContainer db; |
37 | 37 | ||
38 | public void Initialise(string dbfile, string dbname) | 38 | public void Initialise(string dbfile, string dbname) |
39 | { | 39 | { |
40 | MainLog.Instance.Verbose("DATASTORE", "DB4O - Opening " + dbfile); | 40 | MainLog.Instance.Verbose("DATASTORE", "DB4O - Opening " + dbfile); |
41 | db = Db4oFactory.OpenFile(dbfile); | 41 | db = Db4oFactory.OpenFile(dbfile); |
42 | 42 | ||
43 | return; | 43 | return; |
44 | } | 44 | } |
45 | 45 | ||
46 | public void StoreObject(SceneObject obj) | 46 | public void StoreObject(SceneObject obj) |
47 | { | 47 | { |
48 | db.Set(obj); | 48 | db.Set(obj); |
49 | } | 49 | } |
50 | 50 | ||
51 | public void RemoveObject(LLUUID obj) | 51 | public void RemoveObject(LLUUID obj) |
52 | { | 52 | { |
53 | IObjectSet result = db.Query(new SceneObjectQuery(obj)); | 53 | IObjectSet result = db.Query(new SceneObjectQuery(obj)); |
54 | if (result.Count > 0) | 54 | if (result.Count > 0) |
55 | { | 55 | { |
56 | SceneObject item = (SceneObject)result.Next(); | 56 | SceneObject item = (SceneObject)result.Next(); |
57 | db.Delete(item); | 57 | db.Delete(item); |
58 | } | 58 | } |
59 | } | 59 | } |
60 | 60 | ||
61 | public List<SceneObject> LoadObjects() | 61 | public List<SceneObject> LoadObjects() |
62 | { | 62 | { |
63 | IObjectSet result = db.Get(typeof(SceneObject)); | 63 | IObjectSet result = db.Get(typeof(SceneObject)); |
64 | List<SceneObject> retvals = new List<SceneObject>(); | 64 | List<SceneObject> retvals = new List<SceneObject>(); |
65 | 65 | ||
66 | MainLog.Instance.Verbose("DATASTORE", "DB4O - LoadObjects found " + result.Count.ToString() + " objects"); | 66 | MainLog.Instance.Verbose("DATASTORE", "DB4O - LoadObjects found " + result.Count.ToString() + " objects"); |
67 | 67 | ||
68 | foreach (Object obj in result) | 68 | foreach (Object obj in result) |
69 | { | 69 | { |
70 | retvals.Add((SceneObject)obj); | 70 | retvals.Add((SceneObject)obj); |
71 | } | 71 | } |
72 | 72 | ||
73 | return retvals; | 73 | return retvals; |
74 | } | 74 | } |
75 | 75 | ||
76 | public void StoreTerrain(double[,] ter) | 76 | public void StoreTerrain(double[,] ter) |
77 | { | 77 | { |
78 | 78 | ||
79 | } | 79 | } |
80 | 80 | ||
81 | public double[,] LoadTerrain() | 81 | public double[,] LoadTerrain() |
82 | { | 82 | { |
83 | return null; | 83 | return null; |
84 | } | 84 | } |
85 | 85 | ||
86 | public void RemoveLandObject(uint id) | 86 | public void RemoveLandObject(uint id) |
87 | { | 87 | { |
88 | 88 | ||
89 | } | 89 | } |
90 | 90 | ||
91 | public void StoreParcel(Land parcel) | 91 | public void StoreParcel(Land parcel) |
92 | { | 92 | { |
93 | 93 | ||
94 | } | 94 | } |
95 | 95 | ||
96 | public List<Land> LoadLandObjects() | 96 | public List<Land> LoadLandObjects() |
97 | { | 97 | { |
98 | return new List<Land>(); | 98 | return new List<Land>(); |
99 | } | 99 | } |
100 | 100 | ||
101 | public void Shutdown() | 101 | public void Shutdown() |
102 | { | 102 | { |
103 | if (db != null) | 103 | if (db != null) |
104 | { | 104 | { |
105 | db.Commit(); | 105 | db.Commit(); |
106 | db.Close(); | 106 | db.Close(); |
107 | } | 107 | } |
108 | } | 108 | } |
109 | } | 109 | } |
110 | } | 110 | } |
diff --git a/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/Properties/AssemblyInfo.cs b/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/Properties/AssemblyInfo.cs index 0d6788b..6985947 100644 --- a/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/Properties/AssemblyInfo.cs +++ b/OpenSim/Region/Storage/OpenSim.DataStore.DB4o/Properties/AssemblyInfo.cs | |||
@@ -1,35 +1,35 @@ | |||
1 | using System.Reflection; | 1 | using System.Reflection; |
2 | using System.Runtime.CompilerServices; | 2 | using System.Runtime.CompilerServices; |
3 | using System.Runtime.InteropServices; | 3 | using System.Runtime.InteropServices; |
4 | 4 | ||
5 | // General Information about an assembly is controlled through the following | 5 | // General Information about an assembly is controlled through the following |
6 | // set of attributes. Change these attribute values to modify the information | 6 | // set of attributes. Change these attribute values to modify the information |
7 | // associated with an assembly. | 7 | // associated with an assembly. |
8 | [assembly: AssemblyTitle("OpenSim.DataStore.DB4o")] | 8 | [assembly: AssemblyTitle("OpenSim.DataStore.DB4o")] |
9 | [assembly: AssemblyDescription("")] | 9 | [assembly: AssemblyDescription("")] |
10 | [assembly: AssemblyConfiguration("")] | 10 | [assembly: AssemblyConfiguration("")] |
11 | [assembly: AssemblyCompany("")] | 11 | [assembly: AssemblyCompany("")] |
12 | [assembly: AssemblyProduct("OpenSim.DataStore.DB4o")] | 12 | [assembly: AssemblyProduct("OpenSim.DataStore.DB4o")] |
13 | [assembly: AssemblyCopyright("Copyright © 2007")] | 13 | [assembly: AssemblyCopyright("Copyright © 2007")] |
14 | [assembly: AssemblyTrademark("")] | 14 | [assembly: AssemblyTrademark("")] |
15 | [assembly: AssemblyCulture("")] | 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 | [assembly: ComVisible(false)] |
21 | 21 | ||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM |
23 | [assembly: Guid("7a12de8b-fdd1-48f5-89a9-8dc2dafbeebc")] | 23 | [assembly: Guid("7a12de8b-fdd1-48f5-89a9-8dc2dafbeebc")] |
24 | 24 | ||
25 | // Version information for an assembly consists of the following four values: | 25 | // Version information for an assembly consists of the following four values: |
26 | // | 26 | // |
27 | // Major Version | 27 | // Major Version |
28 | // Minor Version | 28 | // Minor Version |
29 | // Build Number | 29 | // Build Number |
30 | // Revision | 30 | // Revision |
31 | // | 31 | // |
32 | // You can specify all the values or you can default the Revision and Build Numbers | 32 | // You can specify all the values or you can default the Revision and Build Numbers |
33 | // by using the '*' as shown below: | 33 | // by using the '*' as shown below: |
34 | [assembly: AssemblyVersion("1.0.0.0")] | 34 | [assembly: AssemblyVersion("1.0.0.0")] |
35 | [assembly: AssemblyFileVersion("1.0.0.0")] | 35 | [assembly: AssemblyFileVersion("1.0.0.0")] |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs index f6e52cf..0601e51 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.Designer.cs | |||
@@ -1,83 +1,83 @@ | |||
1 | namespace LaunchSLClient | 1 | namespace LaunchSLClient |
2 | { | 2 | { |
3 | partial class Form1 | 3 | partial class Form1 |
4 | { | 4 | { |
5 | /// <summary> | 5 | /// <summary> |
6 | /// Required designer variable. | 6 | /// Required designer variable. |
7 | /// </summary> | 7 | /// </summary> |
8 | private System.ComponentModel.IContainer components = null; | 8 | private System.ComponentModel.IContainer components = null; |
9 | 9 | ||
10 | /// <summary> | 10 | /// <summary> |
11 | /// Clean up any resources being used. | 11 | /// Clean up any resources being used. |
12 | /// </summary> | 12 | /// </summary> |
13 | /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> | 13 | /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param> |
14 | protected override void Dispose(bool disposing) | 14 | protected override void Dispose(bool disposing) |
15 | { | 15 | { |
16 | if (disposing && (components != null)) | 16 | if (disposing && (components != null)) |
17 | { | 17 | { |
18 | components.Dispose(); | 18 | components.Dispose(); |
19 | } | 19 | } |
20 | base.Dispose(disposing); | 20 | base.Dispose(disposing); |
21 | } | 21 | } |
22 | 22 | ||
23 | #region Windows Form Designer generated code | 23 | #region Windows Form Designer generated code |
24 | 24 | ||
25 | /// <summary> | 25 | /// <summary> |
26 | /// Required method for Designer support - do not modify | 26 | /// Required method for Designer support - do not modify |
27 | /// the contents of this method with the code editor. | 27 | /// the contents of this method with the code editor. |
28 | /// </summary> | 28 | /// </summary> |
29 | private void InitializeComponent() | 29 | private void InitializeComponent() |
30 | { | 30 | { |
31 | this.comboBox1 = new System.Windows.Forms.ComboBox(); | 31 | this.comboBox1 = new System.Windows.Forms.ComboBox(); |
32 | this.textBox1 = new System.Windows.Forms.TextBox(); | 32 | this.textBox1 = new System.Windows.Forms.TextBox(); |
33 | this.SuspendLayout(); | 33 | this.SuspendLayout(); |
34 | // | 34 | // |
35 | // comboBox1 | 35 | // comboBox1 |
36 | // | 36 | // |
37 | this.comboBox1.FormattingEnabled = true; | 37 | this.comboBox1.FormattingEnabled = true; |
38 | this.comboBox1.Items.AddRange(new object[] { | 38 | this.comboBox1.Items.AddRange(new object[] { |
39 | "Local Sandbox", | 39 | "Local Sandbox", |
40 | "Local Grid Server", | 40 | "Local Grid Server", |
41 | "DeepGrid - www.deepgrid.com", | 41 | "DeepGrid - www.deepgrid.com", |
42 | "OSGrid - www.osgrid.org", | 42 | "OSGrid - www.osgrid.org", |
43 | "Linden Labs - www.secondlife.com"}); | 43 | "Linden Labs - www.secondlife.com"}); |
44 | this.comboBox1.Location = new System.Drawing.Point(37, 83); | 44 | this.comboBox1.Location = new System.Drawing.Point(37, 83); |
45 | this.comboBox1.Name = "comboBox1"; | 45 | this.comboBox1.Name = "comboBox1"; |
46 | this.comboBox1.Size = new System.Drawing.Size(348, 21); | 46 | this.comboBox1.Size = new System.Drawing.Size(348, 21); |
47 | this.comboBox1.TabIndex = 0; | 47 | this.comboBox1.TabIndex = 0; |
48 | this.comboBox1.Text = "Choose from list"; | 48 | this.comboBox1.Text = "Choose from list"; |
49 | this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); | 49 | this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged); |
50 | // | 50 | // |
51 | // textBox1 | 51 | // textBox1 |
52 | // | 52 | // |
53 | this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; | 53 | this.textBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; |
54 | this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); | 54 | this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); |
55 | this.textBox1.Location = new System.Drawing.Point(37, 32); | 55 | this.textBox1.Location = new System.Drawing.Point(37, 32); |
56 | this.textBox1.Name = "textBox1"; | 56 | this.textBox1.Name = "textBox1"; |
57 | this.textBox1.ReadOnly = true; | 57 | this.textBox1.ReadOnly = true; |
58 | this.textBox1.Size = new System.Drawing.Size(292, 19); | 58 | this.textBox1.Size = new System.Drawing.Size(292, 19); |
59 | this.textBox1.TabIndex = 1; | 59 | this.textBox1.TabIndex = 1; |
60 | this.textBox1.Text = "Choose from one of the following:"; | 60 | this.textBox1.Text = "Choose from one of the following:"; |
61 | // | 61 | // |
62 | // Form1 | 62 | // Form1 |
63 | // | 63 | // |
64 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); | 64 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); |
65 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; | 65 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; |
66 | this.ClientSize = new System.Drawing.Size(501, 339); | 66 | this.ClientSize = new System.Drawing.Size(501, 339); |
67 | this.Controls.Add(this.textBox1); | 67 | this.Controls.Add(this.textBox1); |
68 | this.Controls.Add(this.comboBox1); | 68 | this.Controls.Add(this.comboBox1); |
69 | this.Name = "Form1"; | 69 | this.Name = "Form1"; |
70 | this.Text = "OpenSim Client Launcher"; | 70 | this.Text = "OpenSim Client Launcher"; |
71 | this.ResumeLayout(false); | 71 | this.ResumeLayout(false); |
72 | this.PerformLayout(); | 72 | this.PerformLayout(); |
73 | 73 | ||
74 | } | 74 | } |
75 | 75 | ||
76 | #endregion | 76 | #endregion |
77 | 77 | ||
78 | private System.Windows.Forms.ComboBox comboBox1; | 78 | private System.Windows.Forms.ComboBox comboBox1; |
79 | private System.Windows.Forms.TextBox textBox1; | 79 | private System.Windows.Forms.TextBox textBox1; |
80 | 80 | ||
81 | } | 81 | } |
82 | } | 82 | } |
83 | 83 | ||
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs index 497661d..8fd9b27 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.cs | |||
@@ -1,194 +1,194 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.IO; | 29 | using System.IO; |
30 | using System.Collections; | 30 | using System.Collections; |
31 | using System.Collections.Generic; | 31 | using System.Collections.Generic; |
32 | using System.ComponentModel; | 32 | using System.ComponentModel; |
33 | using System.Data; | 33 | using System.Data; |
34 | using System.Diagnostics; | 34 | using System.Diagnostics; |
35 | using System.Drawing; | 35 | using System.Drawing; |
36 | using System.Text; | 36 | using System.Text; |
37 | using System.Text.RegularExpressions; | 37 | using System.Text.RegularExpressions; |
38 | using System.Windows.Forms; | 38 | using System.Windows.Forms; |
39 | using Microsoft.Win32; | 39 | using Microsoft.Win32; |
40 | 40 | ||
41 | namespace LaunchSLClient | 41 | namespace LaunchSLClient |
42 | { | 42 | { |
43 | public partial class Form1 : Form | 43 | public partial class Form1 : Form |
44 | { | 44 | { |
45 | string gridUrl = ""; | 45 | string gridUrl = ""; |
46 | string sandboxUrl = ""; | 46 | string sandboxUrl = ""; |
47 | string deepGridUrl = "http://user.deepgrid.com:8002/"; | 47 | string deepGridUrl = "http://user.deepgrid.com:8002/"; |
48 | string osGridUrl = "http://www.osgrid.org:8002/"; | 48 | string osGridUrl = "http://www.osgrid.org:8002/"; |
49 | string runUrl = ""; | 49 | string runUrl = ""; |
50 | string runLine = ""; | 50 | string runLine = ""; |
51 | Object exeFlags; | 51 | Object exeFlags; |
52 | Object exePath; | 52 | Object exePath; |
53 | 53 | ||
54 | 54 | ||
55 | public Form1() | 55 | public Form1() |
56 | { | 56 | { |
57 | InitializeComponent(); | 57 | InitializeComponent(); |
58 | ArrayList menuItems=new ArrayList(); | 58 | ArrayList menuItems=new ArrayList(); |
59 | menuItems.Add("Please select one:"); | 59 | menuItems.Add("Please select one:"); |
60 | string sandboxHostName = ""; | 60 | string sandboxHostName = ""; |
61 | string sandboxPort = ""; | 61 | string sandboxPort = ""; |
62 | Object simPath = null; | 62 | Object simPath = null; |
63 | FileInfo defaultFile; | 63 | FileInfo defaultFile; |
64 | StreamReader stream; | 64 | StreamReader stream; |
65 | 65 | ||
66 | 66 | ||
67 | // get executable path from registry | 67 | // get executable path from registry |
68 | // | 68 | // |
69 | RegistryKey regKey; | 69 | RegistryKey regKey; |
70 | RegistryKey exeKey; | 70 | RegistryKey exeKey; |
71 | regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); | 71 | regKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Linden Research, Inc.\SecondLife"); |
72 | if (regKey == null) | 72 | if (regKey == null) |
73 | { | 73 | { |
74 | throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); | 74 | throw new LauncherException("Can't find Second Life. Are you sure it is installed?", "LauncherException.Form1"); |
75 | } | 75 | } |
76 | Object exe = regKey.GetValue("Exe"); | 76 | Object exe = regKey.GetValue("Exe"); |
77 | exeFlags = regKey.GetValue("Flags"); | 77 | exeFlags = regKey.GetValue("Flags"); |
78 | exePath = regKey.GetValue(""); | 78 | exePath = regKey.GetValue(""); |
79 | runLine = exePath.ToString() + "\\" + exe.ToString(); | 79 | runLine = exePath.ToString() + "\\" + exe.ToString(); |
80 | Registry.LocalMachine.Flush(); | 80 | Registry.LocalMachine.Flush(); |
81 | Registry.LocalMachine.Close(); | 81 | Registry.LocalMachine.Close(); |
82 | 82 | ||
83 | // find opensim directory | 83 | // find opensim directory |
84 | // | 84 | // |
85 | exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); | 85 | exeKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\OpenSim\OpenSim"); |
86 | if (exeKey != null) | 86 | if (exeKey != null) |
87 | { | 87 | { |
88 | 88 | ||
89 | simPath = exeKey.GetValue("Path"); | 89 | simPath = exeKey.GetValue("Path"); |
90 | 90 | ||
91 | // build sandbox URL from Regions\default.xml | 91 | // build sandbox URL from Regions\default.xml |
92 | // this is highly dependant on a standard default.xml | 92 | // this is highly dependant on a standard default.xml |
93 | // | 93 | // |
94 | Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries | 94 | Directory.SetCurrentDirectory(simPath.ToString()); //this should be set to wherever we decide to put the binaries |
95 | string text; | 95 | string text; |
96 | Regex myRegex = new Regex(".*internal_ip_port=\\\"(?<port>.*?)\\\".*external_host_name=\\\"(?<name>.*?)\\\".*"); | 96 | Regex myRegex = new Regex(".*internal_ip_port=\\\"(?<port>.*?)\\\".*external_host_name=\\\"(?<name>.*?)\\\".*"); |
97 | if (File.Exists(@"Regions\default.xml")) | 97 | if (File.Exists(@"Regions\default.xml")) |
98 | { | 98 | { |
99 | defaultFile = new FileInfo(@"Regions\default.xml"); | 99 | defaultFile = new FileInfo(@"Regions\default.xml"); |
100 | stream = defaultFile.OpenText(); | 100 | stream = defaultFile.OpenText(); |
101 | do | 101 | do |
102 | { | 102 | { |
103 | text = stream.ReadLine(); | 103 | text = stream.ReadLine(); |
104 | if (text == null) | 104 | if (text == null) |
105 | { | 105 | { |
106 | break; | 106 | break; |
107 | } | 107 | } |
108 | MatchCollection theMatches = myRegex.Matches(text); | 108 | MatchCollection theMatches = myRegex.Matches(text); |
109 | foreach (Match theMatch in theMatches) | 109 | foreach (Match theMatch in theMatches) |
110 | { | 110 | { |
111 | if (theMatch.Length != 0) | 111 | if (theMatch.Length != 0) |
112 | { | 112 | { |
113 | sandboxHostName = theMatch.Groups["name"].ToString(); | 113 | sandboxHostName = theMatch.Groups["name"].ToString(); |
114 | sandboxPort = theMatch.Groups["port"].ToString(); | 114 | sandboxPort = theMatch.Groups["port"].ToString(); |
115 | } | 115 | } |
116 | } | 116 | } |
117 | } while (text != null); | 117 | } while (text != null); |
118 | stream.Close(); | 118 | stream.Close(); |
119 | sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; | 119 | sandboxUrl = "http:\\" + sandboxHostName + ":" + sandboxPort; |
120 | menuItems.Add("Local Sandbox"); | 120 | menuItems.Add("Local Sandbox"); |
121 | } | 121 | } |
122 | else | 122 | else |
123 | { | 123 | { |
124 | MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); | 124 | MessageBox.Show("No OpenSim config files found. Please run OpenSim and finish configuration to run a local sim. Showing public grids only", "No OpenSim"); |
125 | } | 125 | } |
126 | 126 | ||
127 | 127 | ||
128 | //build local grid URL from network_servers_information.xml | 128 | //build local grid URL from network_servers_information.xml |
129 | // this is highly dependant on a standard default.xml | 129 | // this is highly dependant on a standard default.xml |
130 | // | 130 | // |
131 | myRegex = new Regex(".*UserServerURL=\\\"(?<url>.*?)\\\".*"); | 131 | myRegex = new Regex(".*UserServerURL=\\\"(?<url>.*?)\\\".*"); |
132 | if (File.Exists(@"network_servers_information.xml")) | 132 | if (File.Exists(@"network_servers_information.xml")) |
133 | { | 133 | { |
134 | defaultFile = new FileInfo(@"network_servers_information.xml"); | 134 | defaultFile = new FileInfo(@"network_servers_information.xml"); |
135 | 135 | ||
136 | 136 | ||
137 | stream = defaultFile.OpenText(); | 137 | stream = defaultFile.OpenText(); |
138 | do | 138 | do |
139 | { | 139 | { |
140 | text = stream.ReadLine(); | 140 | text = stream.ReadLine(); |
141 | if (text == null) | 141 | if (text == null) |
142 | { | 142 | { |
143 | break; | 143 | break; |
144 | } | 144 | } |
145 | MatchCollection theMatches = myRegex.Matches(text); | 145 | MatchCollection theMatches = myRegex.Matches(text); |
146 | foreach (Match theMatch in theMatches) | 146 | foreach (Match theMatch in theMatches) |
147 | { | 147 | { |
148 | if (theMatch.Length != 0) | 148 | if (theMatch.Length != 0) |
149 | { | 149 | { |
150 | gridUrl = theMatch.Groups["url"].ToString(); | 150 | gridUrl = theMatch.Groups["url"].ToString(); |
151 | } | 151 | } |
152 | } | 152 | } |
153 | } while (text != null); | 153 | } while (text != null); |
154 | stream.Close(); | 154 | stream.Close(); |
155 | if (gridUrl != null) | 155 | if (gridUrl != null) |
156 | { | 156 | { |
157 | menuItems.Add("Local Grid Server"); | 157 | menuItems.Add("Local Grid Server"); |
158 | } | 158 | } |
159 | } | 159 | } |
160 | } | 160 | } |
161 | else | 161 | else |
162 | { | 162 | { |
163 | MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); | 163 | MessageBox.Show("No OpenSim installed. Showing public grids only", "No OpenSim"); |
164 | } | 164 | } |
165 | menuItems.Add("DeepGrid - www.deepgrid.com"); | 165 | menuItems.Add("DeepGrid - www.deepgrid.com"); |
166 | menuItems.Add("OSGrid - www.osgrid.org"); | 166 | menuItems.Add("OSGrid - www.osgrid.org"); |
167 | menuItems.Add("Linden Labs - www.secondlife.com"); | 167 | menuItems.Add("Linden Labs - www.secondlife.com"); |
168 | comboBox1.DataSource=menuItems; | 168 | comboBox1.DataSource=menuItems; |
169 | } | 169 | } |
170 | 170 | ||
171 | private void radioButton1_CheckedChanged(object sender, EventArgs e) | 171 | private void radioButton1_CheckedChanged(object sender, EventArgs e) |
172 | { | 172 | { |
173 | 173 | ||
174 | } | 174 | } |
175 | 175 | ||
176 | private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) | 176 | private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) |
177 | { | 177 | { |
178 | if (comboBox1.Text == "Please select one:") { return; } | 178 | if (comboBox1.Text == "Please select one:") { return; } |
179 | if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} | 179 | if (comboBox1.Text == "Local Sandbox") { runUrl=" - loginuri " + sandboxUrl;} |
180 | if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } | 180 | if (comboBox1.Text == "Local Grid Server") { runUrl = " - loginuri " + gridUrl; } |
181 | if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } | 181 | if (comboBox1.Text == "DeepGrid - www.deepgrid.com") { runUrl = " - loginuri " + deepGridUrl; } |
182 | if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } | 182 | if (comboBox1.Text == "OSGrid - www.osgrid.org") { runUrl = " - loginuri " + osGridUrl; } |
183 | if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } | 183 | if (comboBox1.Text == "Linden Labs - www.secondlife.com") { runUrl = ""; } |
184 | System.Diagnostics.Process proc = new System.Diagnostics.Process(); | 184 | System.Diagnostics.Process proc = new System.Diagnostics.Process(); |
185 | proc.StartInfo.FileName = runLine; | 185 | proc.StartInfo.FileName = runLine; |
186 | proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; | 186 | proc.StartInfo.Arguments = exeFlags.ToString() + " " + runUrl; |
187 | proc.StartInfo.UseShellExecute = false; | 187 | proc.StartInfo.UseShellExecute = false; |
188 | proc.StartInfo.RedirectStandardOutput = false; | 188 | proc.StartInfo.RedirectStandardOutput = false; |
189 | proc.StartInfo.WorkingDirectory = exePath.ToString(); | 189 | proc.StartInfo.WorkingDirectory = exePath.ToString(); |
190 | proc.Start(); | 190 | proc.Start(); |
191 | proc.WaitForExit(); | 191 | proc.WaitForExit(); |
192 | } | 192 | } |
193 | } | 193 | } |
194 | } \ No newline at end of file | 194 | } \ No newline at end of file |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx index ff31a6d..19dc0dd 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Form1.resx | |||
@@ -1,120 +1,120 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <root> | 2 | <root> |
3 | <!-- | 3 | <!-- |
4 | Microsoft ResX Schema | 4 | Microsoft ResX Schema |
5 | 5 | ||
6 | Version 2.0 | 6 | Version 2.0 |
7 | 7 | ||
8 | The primary goals of this format is to allow a simple XML format | 8 | The primary goals of this format is to allow a simple XML format |
9 | that is mostly human readable. The generation and parsing of the | 9 | that is mostly human readable. The generation and parsing of the |
10 | various data types are done through the TypeConverter classes | 10 | various data types are done through the TypeConverter classes |
11 | associated with the data types. | 11 | associated with the data types. |
12 | 12 | ||
13 | Example: | 13 | Example: |
14 | 14 | ||
15 | ... ado.net/XML headers & schema ... | 15 | ... ado.net/XML headers & schema ... |
16 | <resheader name="resmimetype">text/microsoft-resx</resheader> | 16 | <resheader name="resmimetype">text/microsoft-resx</resheader> |
17 | <resheader name="version">2.0</resheader> | 17 | <resheader name="version">2.0</resheader> |
18 | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | 18 | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
19 | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | 19 | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
20 | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | 20 | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
21 | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | 21 | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
22 | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | 22 | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
23 | <value>[base64 mime encoded serialized .NET Framework object]</value> | 23 | <value>[base64 mime encoded serialized .NET Framework object]</value> |
24 | </data> | 24 | </data> |
25 | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | 25 | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
26 | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | 26 | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
27 | <comment>This is a comment</comment> | 27 | <comment>This is a comment</comment> |
28 | </data> | 28 | </data> |
29 | 29 | ||
30 | There are any number of "resheader" rows that contain simple | 30 | There are any number of "resheader" rows that contain simple |
31 | name/value pairs. | 31 | name/value pairs. |
32 | 32 | ||
33 | Each data row contains a name, and value. The row also contains a | 33 | Each data row contains a name, and value. The row also contains a |
34 | type or mimetype. Type corresponds to a .NET class that support | 34 | type or mimetype. Type corresponds to a .NET class that support |
35 | text/value conversion through the TypeConverter architecture. | 35 | text/value conversion through the TypeConverter architecture. |
36 | Classes that don't support this are serialized and stored with the | 36 | Classes that don't support this are serialized and stored with the |
37 | mimetype set. | 37 | mimetype set. |
38 | 38 | ||
39 | The mimetype is used for serialized objects, and tells the | 39 | The mimetype is used for serialized objects, and tells the |
40 | ResXResourceReader how to depersist the object. This is currently not | 40 | ResXResourceReader how to depersist the object. This is currently not |
41 | extensible. For a given mimetype the value must be set accordingly: | 41 | extensible. For a given mimetype the value must be set accordingly: |
42 | 42 | ||
43 | Note - application/x-microsoft.net.object.binary.base64 is the format | 43 | Note - application/x-microsoft.net.object.binary.base64 is the format |
44 | that the ResXResourceWriter will generate, however the reader can | 44 | that the ResXResourceWriter will generate, however the reader can |
45 | read any of the formats listed below. | 45 | read any of the formats listed below. |
46 | 46 | ||
47 | mimetype: application/x-microsoft.net.object.binary.base64 | 47 | mimetype: application/x-microsoft.net.object.binary.base64 |
48 | value : The object must be serialized with | 48 | value : The object must be serialized with |
49 | : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter | 49 | : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter |
50 | : and then encoded with base64 encoding. | 50 | : and then encoded with base64 encoding. |
51 | 51 | ||
52 | mimetype: application/x-microsoft.net.object.soap.base64 | 52 | mimetype: application/x-microsoft.net.object.soap.base64 |
53 | value : The object must be serialized with | 53 | value : The object must be serialized with |
54 | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | 54 | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
55 | : and then encoded with base64 encoding. | 55 | : and then encoded with base64 encoding. |
56 | 56 | ||
57 | mimetype: application/x-microsoft.net.object.bytearray.base64 | 57 | mimetype: application/x-microsoft.net.object.bytearray.base64 |
58 | value : The object must be serialized into a byte array | 58 | value : The object must be serialized into a byte array |
59 | : using a System.ComponentModel.TypeConverter | 59 | : using a System.ComponentModel.TypeConverter |
60 | : and then encoded with base64 encoding. | 60 | : and then encoded with base64 encoding. |
61 | --> | 61 | --> |
62 | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | 62 | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
63 | <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> | 63 | <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> |
64 | <xsd:element name="root" msdata:IsDataSet="true"> | 64 | <xsd:element name="root" msdata:IsDataSet="true"> |
65 | <xsd:complexType> | 65 | <xsd:complexType> |
66 | <xsd:choice maxOccurs="unbounded"> | 66 | <xsd:choice maxOccurs="unbounded"> |
67 | <xsd:element name="metadata"> | 67 | <xsd:element name="metadata"> |
68 | <xsd:complexType> | 68 | <xsd:complexType> |
69 | <xsd:sequence> | 69 | <xsd:sequence> |
70 | <xsd:element name="value" type="xsd:string" minOccurs="0" /> | 70 | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
71 | </xsd:sequence> | 71 | </xsd:sequence> |
72 | <xsd:attribute name="name" use="required" type="xsd:string" /> | 72 | <xsd:attribute name="name" use="required" type="xsd:string" /> |
73 | <xsd:attribute name="type" type="xsd:string" /> | 73 | <xsd:attribute name="type" type="xsd:string" /> |
74 | <xsd:attribute name="mimetype" type="xsd:string" /> | 74 | <xsd:attribute name="mimetype" type="xsd:string" /> |
75 | <xsd:attribute ref="xml:space" /> | 75 | <xsd:attribute ref="xml:space" /> |
76 | </xsd:complexType> | 76 | </xsd:complexType> |
77 | </xsd:element> | 77 | </xsd:element> |
78 | <xsd:element name="assembly"> | 78 | <xsd:element name="assembly"> |
79 | <xsd:complexType> | 79 | <xsd:complexType> |
80 | <xsd:attribute name="alias" type="xsd:string" /> | 80 | <xsd:attribute name="alias" type="xsd:string" /> |
81 | <xsd:attribute name="name" type="xsd:string" /> | 81 | <xsd:attribute name="name" type="xsd:string" /> |
82 | </xsd:complexType> | 82 | </xsd:complexType> |
83 | </xsd:element> | 83 | </xsd:element> |
84 | <xsd:element name="data"> | 84 | <xsd:element name="data"> |
85 | <xsd:complexType> | 85 | <xsd:complexType> |
86 | <xsd:sequence> | 86 | <xsd:sequence> |
87 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | 87 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
88 | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | 88 | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
89 | </xsd:sequence> | 89 | </xsd:sequence> |
90 | <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> | 90 | <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> |
91 | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | 91 | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
92 | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | 92 | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
93 | <xsd:attribute ref="xml:space" /> | 93 | <xsd:attribute ref="xml:space" /> |
94 | </xsd:complexType> | 94 | </xsd:complexType> |
95 | </xsd:element> | 95 | </xsd:element> |
96 | <xsd:element name="resheader"> | 96 | <xsd:element name="resheader"> |
97 | <xsd:complexType> | 97 | <xsd:complexType> |
98 | <xsd:sequence> | 98 | <xsd:sequence> |
99 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | 99 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
100 | </xsd:sequence> | 100 | </xsd:sequence> |
101 | <xsd:attribute name="name" type="xsd:string" use="required" /> | 101 | <xsd:attribute name="name" type="xsd:string" use="required" /> |
102 | </xsd:complexType> | 102 | </xsd:complexType> |
103 | </xsd:element> | 103 | </xsd:element> |
104 | </xsd:choice> | 104 | </xsd:choice> |
105 | </xsd:complexType> | 105 | </xsd:complexType> |
106 | </xsd:element> | 106 | </xsd:element> |
107 | </xsd:schema> | 107 | </xsd:schema> |
108 | <resheader name="resmimetype"> | 108 | <resheader name="resmimetype"> |
109 | <value>text/microsoft-resx</value> | 109 | <value>text/microsoft-resx</value> |
110 | </resheader> | 110 | </resheader> |
111 | <resheader name="version"> | 111 | <resheader name="version"> |
112 | <value>2.0</value> | 112 | <value>2.0</value> |
113 | </resheader> | 113 | </resheader> |
114 | <resheader name="reader"> | 114 | <resheader name="reader"> |
115 | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | 115 | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
116 | </resheader> | 116 | </resheader> |
117 | <resheader name="writer"> | 117 | <resheader name="writer"> |
118 | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | 118 | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
119 | </resheader> | 119 | </resheader> |
120 | </root> \ No newline at end of file | 120 | </root> \ No newline at end of file |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj index bc70f11..2589ec7 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LaunchSLClient.csproj | |||
@@ -1,79 +1,79 @@ | |||
1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | 1 | <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
2 | <PropertyGroup> | 2 | <PropertyGroup> |
3 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> | 3 | <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> |
4 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> | 4 | <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> |
5 | <ProductVersion>8.0.50727</ProductVersion> | 5 | <ProductVersion>8.0.50727</ProductVersion> |
6 | <SchemaVersion>2.0</SchemaVersion> | 6 | <SchemaVersion>2.0</SchemaVersion> |
7 | <ProjectGuid>{50FD2DCD-2E2D-413C-8260-D9CD22405895}</ProjectGuid> | 7 | <ProjectGuid>{50FD2DCD-2E2D-413C-8260-D9CD22405895}</ProjectGuid> |
8 | <OutputType>WinExe</OutputType> | 8 | <OutputType>WinExe</OutputType> |
9 | <AppDesignerFolder>Properties</AppDesignerFolder> | 9 | <AppDesignerFolder>Properties</AppDesignerFolder> |
10 | <RootNamespace>LaunchSLClient</RootNamespace> | 10 | <RootNamespace>LaunchSLClient</RootNamespace> |
11 | <AssemblyName>LaunchSLClient</AssemblyName> | 11 | <AssemblyName>LaunchSLClient</AssemblyName> |
12 | </PropertyGroup> | 12 | </PropertyGroup> |
13 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | 13 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> |
14 | <DebugSymbols>true</DebugSymbols> | 14 | <DebugSymbols>true</DebugSymbols> |
15 | <DebugType>full</DebugType> | 15 | <DebugType>full</DebugType> |
16 | <Optimize>false</Optimize> | 16 | <Optimize>false</Optimize> |
17 | <OutputPath>bin\Debug\</OutputPath> | 17 | <OutputPath>bin\Debug\</OutputPath> |
18 | <DefineConstants>DEBUG;TRACE</DefineConstants> | 18 | <DefineConstants>DEBUG;TRACE</DefineConstants> |
19 | <ErrorReport>prompt</ErrorReport> | 19 | <ErrorReport>prompt</ErrorReport> |
20 | <WarningLevel>4</WarningLevel> | 20 | <WarningLevel>4</WarningLevel> |
21 | </PropertyGroup> | 21 | </PropertyGroup> |
22 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> | 22 | <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> |
23 | <DebugType>pdbonly</DebugType> | 23 | <DebugType>pdbonly</DebugType> |
24 | <Optimize>true</Optimize> | 24 | <Optimize>true</Optimize> |
25 | <OutputPath>bin\Release\</OutputPath> | 25 | <OutputPath>bin\Release\</OutputPath> |
26 | <DefineConstants>TRACE</DefineConstants> | 26 | <DefineConstants>TRACE</DefineConstants> |
27 | <ErrorReport>prompt</ErrorReport> | 27 | <ErrorReport>prompt</ErrorReport> |
28 | <WarningLevel>4</WarningLevel> | 28 | <WarningLevel>4</WarningLevel> |
29 | </PropertyGroup> | 29 | </PropertyGroup> |
30 | <ItemGroup> | 30 | <ItemGroup> |
31 | <Reference Include="System" /> | 31 | <Reference Include="System" /> |
32 | <Reference Include="System.Data" /> | 32 | <Reference Include="System.Data" /> |
33 | <Reference Include="System.Deployment" /> | 33 | <Reference Include="System.Deployment" /> |
34 | <Reference Include="System.Drawing" /> | 34 | <Reference Include="System.Drawing" /> |
35 | <Reference Include="System.Windows.Forms" /> | 35 | <Reference Include="System.Windows.Forms" /> |
36 | <Reference Include="System.Xml" /> | 36 | <Reference Include="System.Xml" /> |
37 | </ItemGroup> | 37 | </ItemGroup> |
38 | <ItemGroup> | 38 | <ItemGroup> |
39 | <Compile Include="Form1.cs"> | 39 | <Compile Include="Form1.cs"> |
40 | <SubType>Form</SubType> | 40 | <SubType>Form</SubType> |
41 | </Compile> | 41 | </Compile> |
42 | <Compile Include="Form1.Designer.cs"> | 42 | <Compile Include="Form1.Designer.cs"> |
43 | <DependentUpon>Form1.cs</DependentUpon> | 43 | <DependentUpon>Form1.cs</DependentUpon> |
44 | </Compile> | 44 | </Compile> |
45 | <Compile Include="LauncherException.cs" /> | 45 | <Compile Include="LauncherException.cs" /> |
46 | <Compile Include="Program.cs" /> | 46 | <Compile Include="Program.cs" /> |
47 | <Compile Include="Properties\AssemblyInfo.cs" /> | 47 | <Compile Include="Properties\AssemblyInfo.cs" /> |
48 | <EmbeddedResource Include="Form1.resx"> | 48 | <EmbeddedResource Include="Form1.resx"> |
49 | <SubType>Designer</SubType> | 49 | <SubType>Designer</SubType> |
50 | <DependentUpon>Form1.cs</DependentUpon> | 50 | <DependentUpon>Form1.cs</DependentUpon> |
51 | </EmbeddedResource> | 51 | </EmbeddedResource> |
52 | <EmbeddedResource Include="Properties\Resources.resx"> | 52 | <EmbeddedResource Include="Properties\Resources.resx"> |
53 | <Generator>ResXFileCodeGenerator</Generator> | 53 | <Generator>ResXFileCodeGenerator</Generator> |
54 | <LastGenOutput>Resources.Designer.cs</LastGenOutput> | 54 | <LastGenOutput>Resources.Designer.cs</LastGenOutput> |
55 | <SubType>Designer</SubType> | 55 | <SubType>Designer</SubType> |
56 | </EmbeddedResource> | 56 | </EmbeddedResource> |
57 | <Compile Include="Properties\Resources.Designer.cs"> | 57 | <Compile Include="Properties\Resources.Designer.cs"> |
58 | <AutoGen>True</AutoGen> | 58 | <AutoGen>True</AutoGen> |
59 | <DependentUpon>Resources.resx</DependentUpon> | 59 | <DependentUpon>Resources.resx</DependentUpon> |
60 | </Compile> | 60 | </Compile> |
61 | <None Include="Properties\Settings.settings"> | 61 | <None Include="Properties\Settings.settings"> |
62 | <Generator>SettingsSingleFileGenerator</Generator> | 62 | <Generator>SettingsSingleFileGenerator</Generator> |
63 | <LastGenOutput>Settings.Designer.cs</LastGenOutput> | 63 | <LastGenOutput>Settings.Designer.cs</LastGenOutput> |
64 | </None> | 64 | </None> |
65 | <Compile Include="Properties\Settings.Designer.cs"> | 65 | <Compile Include="Properties\Settings.Designer.cs"> |
66 | <AutoGen>True</AutoGen> | 66 | <AutoGen>True</AutoGen> |
67 | <DependentUpon>Settings.settings</DependentUpon> | 67 | <DependentUpon>Settings.settings</DependentUpon> |
68 | <DesignTimeSharedInput>True</DesignTimeSharedInput> | 68 | <DesignTimeSharedInput>True</DesignTimeSharedInput> |
69 | </Compile> | 69 | </Compile> |
70 | </ItemGroup> | 70 | </ItemGroup> |
71 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> | 71 | <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> |
72 | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. | 72 | <!-- To modify your build process, add your task inside one of the targets below and uncomment it. |
73 | Other similar extension points exist, see Microsoft.Common.targets. | 73 | Other similar extension points exist, see Microsoft.Common.targets. |
74 | <Target Name="BeforeBuild"> | 74 | <Target Name="BeforeBuild"> |
75 | </Target> | 75 | </Target> |
76 | <Target Name="AfterBuild"> | 76 | <Target Name="AfterBuild"> |
77 | </Target> | 77 | </Target> |
78 | --> | 78 | --> |
79 | </Project> \ No newline at end of file | 79 | </Project> \ No newline at end of file |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs index 7a2e861..a0b4612 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/LauncherException.cs | |||
@@ -1,53 +1,53 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Text; | 30 | using System.Text; |
31 | 31 | ||
32 | namespace LaunchSLClient | 32 | namespace LaunchSLClient |
33 | { | 33 | { |
34 | class LauncherException : ApplicationException | 34 | class LauncherException : ApplicationException |
35 | { | 35 | { |
36 | 36 | ||
37 | private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; | 37 | private const string CUSTOMMESSAGE = "The SL Client Launcher has failed with the following error: "; |
38 | 38 | ||
39 | private LauncherException() { } | 39 | private LauncherException() { } |
40 | 40 | ||
41 | public LauncherException(string errorMesssage, string source) | 41 | public LauncherException(string errorMesssage, string source) |
42 | : base (CUSTOMMESSAGE + errorMesssage) | 42 | : base (CUSTOMMESSAGE + errorMesssage) |
43 | { | 43 | { |
44 | base.Source = source; | 44 | base.Source = source; |
45 | } | 45 | } |
46 | 46 | ||
47 | public LauncherException(string errorMessage, string source, Exception innerException) | 47 | public LauncherException(string errorMessage, string source, Exception innerException) |
48 | : base(CUSTOMMESSAGE + errorMessage, innerException) | 48 | : base(CUSTOMMESSAGE + errorMessage, innerException) |
49 | { | 49 | { |
50 | base.Source = source; | 50 | base.Source = source; |
51 | } | 51 | } |
52 | } | 52 | } |
53 | } | 53 | } |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs index ba652a9..efcfd46 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Program.cs | |||
@@ -1,57 +1,57 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.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 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
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; |
29 | using System.Collections.Generic; | 29 | using System.Collections.Generic; |
30 | using System.Windows.Forms; | 30 | using System.Windows.Forms; |
31 | 31 | ||
32 | 32 | ||
33 | namespace LaunchSLClient | 33 | namespace LaunchSLClient |
34 | { | 34 | { |
35 | static class Program | 35 | static class Program |
36 | { | 36 | { |
37 | /// <summary> | 37 | /// <summary> |
38 | /// The main entry point for the application. | 38 | /// The main entry point for the application. |
39 | /// </summary> | 39 | /// </summary> |
40 | [STAThread] | 40 | [STAThread] |
41 | static void Main() | 41 | static void Main() |
42 | { | 42 | { |
43 | 43 | ||
44 | try | 44 | try |
45 | { | 45 | { |
46 | Application.EnableVisualStyles(); | 46 | Application.EnableVisualStyles(); |
47 | Application.SetCompatibleTextRenderingDefault(false); | 47 | Application.SetCompatibleTextRenderingDefault(false); |
48 | Application.Run(new Form1()); | 48 | Application.Run(new Form1()); |
49 | } | 49 | } |
50 | catch (Exception ex) | 50 | catch (Exception ex) |
51 | { | 51 | { |
52 | // Handles all unhandled errors | 52 | // Handles all unhandled errors |
53 | MessageBox.Show(ex.Message,"Unhandled Error"); | 53 | MessageBox.Show(ex.Message,"Unhandled Error"); |
54 | } | 54 | } |
55 | } | 55 | } |
56 | } | 56 | } |
57 | } \ No newline at end of file | 57 | } \ No newline at end of file |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs index 4bd2cea..0c3e72e 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/AssemblyInfo.cs | |||
@@ -1,33 +1,33 @@ | |||
1 | using System.Reflection; | 1 | using System.Reflection; |
2 | using System.Runtime.CompilerServices; | 2 | using System.Runtime.CompilerServices; |
3 | using System.Runtime.InteropServices; | 3 | using System.Runtime.InteropServices; |
4 | 4 | ||
5 | // General Information about an assembly is controlled through the following | 5 | // General Information about an assembly is controlled through the following |
6 | // set of attributes. Change these attribute values to modify the information | 6 | // set of attributes. Change these attribute values to modify the information |
7 | // associated with an assembly. | 7 | // associated with an assembly. |
8 | [assembly: AssemblyTitle("LaunchSLClient")] | 8 | [assembly: AssemblyTitle("LaunchSLClient")] |
9 | [assembly: AssemblyDescription("")] | 9 | [assembly: AssemblyDescription("")] |
10 | [assembly: AssemblyConfiguration("")] | 10 | [assembly: AssemblyConfiguration("")] |
11 | [assembly: AssemblyCompany("Home")] | 11 | [assembly: AssemblyCompany("Home")] |
12 | [assembly: AssemblyProduct("LaunchSLClient")] | 12 | [assembly: AssemblyProduct("LaunchSLClient")] |
13 | [assembly: AssemblyCopyright("Copyright © Home 2007")] | 13 | [assembly: AssemblyCopyright("Copyright © Home 2007")] |
14 | [assembly: AssemblyTrademark("")] | 14 | [assembly: AssemblyTrademark("")] |
15 | [assembly: AssemblyCulture("")] | 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 | [assembly: ComVisible(false)] |
21 | 21 | ||
22 | // The following GUID is for the ID of the typelib if this project is exposed to COM | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM |
23 | [assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] | 23 | [assembly: Guid("b08c6904-e6cc-4d9c-8d24-feb0464b1648")] |
24 | 24 | ||
25 | // Version information for an assembly consists of the following four values: | 25 | // Version information for an assembly consists of the following four values: |
26 | // | 26 | // |
27 | // Major Version | 27 | // Major Version |
28 | // Minor Version | 28 | // Minor Version |
29 | // Build Number | 29 | // Build Number |
30 | // Revision | 30 | // Revision |
31 | // | 31 | // |
32 | [assembly: AssemblyVersion("1.0.0.0")] | 32 | [assembly: AssemblyVersion("1.0.0.0")] |
33 | [assembly: AssemblyFileVersion("1.0.0.0")] | 33 | [assembly: AssemblyFileVersion("1.0.0.0")] |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs index f9dfcc0..4e9188d 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.Designer.cs | |||
@@ -1,71 +1,71 @@ | |||
1 | //------------------------------------------------------------------------------ | 1 | //------------------------------------------------------------------------------ |
2 | // <auto-generated> | 2 | // <auto-generated> |
3 | // This code was generated by a tool. | 3 | // This code was generated by a tool. |
4 | // Runtime Version:2.0.50727.832 | 4 | // Runtime Version:2.0.50727.832 |
5 | // | 5 | // |
6 | // Changes to this file may cause incorrect behavior and will be lost if | 6 | // Changes to this file may cause incorrect behavior and will be lost if |
7 | // the code is regenerated. | 7 | // the code is regenerated. |
8 | // </auto-generated> | 8 | // </auto-generated> |
9 | //------------------------------------------------------------------------------ | 9 | //------------------------------------------------------------------------------ |
10 | 10 | ||
11 | namespace LaunchSLClient.Properties | 11 | namespace LaunchSLClient.Properties |
12 | { | 12 | { |
13 | 13 | ||
14 | 14 | ||
15 | /// <summary> | 15 | /// <summary> |
16 | /// A strongly-typed resource class, for looking up localized strings, etc. | 16 | /// A strongly-typed resource class, for looking up localized strings, etc. |
17 | /// </summary> | 17 | /// </summary> |
18 | // This class was auto-generated by the StronglyTypedResourceBuilder | 18 | // This class was auto-generated by the StronglyTypedResourceBuilder |
19 | // class via a tool like ResGen or Visual Studio. | 19 | // class via a tool like ResGen or Visual Studio. |
20 | // To add or remove a member, edit your .ResX file then rerun ResGen | 20 | // To add or remove a member, edit your .ResX file then rerun ResGen |
21 | // with the /str option, or rebuild your VS project. | 21 | // with the /str option, or rebuild your VS project. |
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] | 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] |
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] | 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] | 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
25 | internal class Resources | 25 | internal class Resources |
26 | { | 26 | { |
27 | 27 | ||
28 | private static global::System.Resources.ResourceManager resourceMan; | 28 | private static global::System.Resources.ResourceManager resourceMan; |
29 | 29 | ||
30 | private static global::System.Globalization.CultureInfo resourceCulture; | 30 | private static global::System.Globalization.CultureInfo resourceCulture; |
31 | 31 | ||
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] | 32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] |
33 | internal Resources() | 33 | internal Resources() |
34 | { | 34 | { |
35 | } | 35 | } |
36 | 36 | ||
37 | /// <summary> | 37 | /// <summary> |
38 | /// Returns the cached ResourceManager instance used by this class. | 38 | /// Returns the cached ResourceManager instance used by this class. |
39 | /// </summary> | 39 | /// </summary> |
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] | 40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
41 | internal static global::System.Resources.ResourceManager ResourceManager | 41 | internal static global::System.Resources.ResourceManager ResourceManager |
42 | { | 42 | { |
43 | get | 43 | get |
44 | { | 44 | { |
45 | if ((resourceMan == null)) | 45 | if ((resourceMan == null)) |
46 | { | 46 | { |
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); | 47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("LaunchSLClient.Properties.Resources", typeof(Resources).Assembly); |
48 | resourceMan = temp; | 48 | resourceMan = temp; |
49 | } | 49 | } |
50 | return resourceMan; | 50 | return resourceMan; |
51 | } | 51 | } |
52 | } | 52 | } |
53 | 53 | ||
54 | /// <summary> | 54 | /// <summary> |
55 | /// Overrides the current thread's CurrentUICulture property for all | 55 | /// Overrides the current thread's CurrentUICulture property for all |
56 | /// resource lookups using this strongly typed resource class. | 56 | /// resource lookups using this strongly typed resource class. |
57 | /// </summary> | 57 | /// </summary> |
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] | 58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] |
59 | internal static global::System.Globalization.CultureInfo Culture | 59 | internal static global::System.Globalization.CultureInfo Culture |
60 | { | 60 | { |
61 | get | 61 | get |
62 | { | 62 | { |
63 | return resourceCulture; | 63 | return resourceCulture; |
64 | } | 64 | } |
65 | set | 65 | set |
66 | { | 66 | { |
67 | resourceCulture = value; | 67 | resourceCulture = value; |
68 | } | 68 | } |
69 | } | 69 | } |
70 | } | 70 | } |
71 | } | 71 | } |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx index ffecec8..af7dbeb 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Resources.resx | |||
@@ -1,117 +1,117 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | 1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <root> | 2 | <root> |
3 | <!-- | 3 | <!-- |
4 | Microsoft ResX Schema | 4 | Microsoft ResX Schema |
5 | 5 | ||
6 | Version 2.0 | 6 | Version 2.0 |
7 | 7 | ||
8 | The primary goals of this format is to allow a simple XML format | 8 | The primary goals of this format is to allow a simple XML format |
9 | that is mostly human readable. The generation and parsing of the | 9 | that is mostly human readable. The generation and parsing of the |
10 | various data types are done through the TypeConverter classes | 10 | various data types are done through the TypeConverter classes |
11 | associated with the data types. | 11 | associated with the data types. |
12 | 12 | ||
13 | Example: | 13 | Example: |
14 | 14 | ||
15 | ... ado.net/XML headers & schema ... | 15 | ... ado.net/XML headers & schema ... |
16 | <resheader name="resmimetype">text/microsoft-resx</resheader> | 16 | <resheader name="resmimetype">text/microsoft-resx</resheader> |
17 | <resheader name="version">2.0</resheader> | 17 | <resheader name="version">2.0</resheader> |
18 | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> | 18 | <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> |
19 | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> | 19 | <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> |
20 | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> | 20 | <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> |
21 | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> | 21 | <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> |
22 | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> | 22 | <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> |
23 | <value>[base64 mime encoded serialized .NET Framework object]</value> | 23 | <value>[base64 mime encoded serialized .NET Framework object]</value> |
24 | </data> | 24 | </data> |
25 | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> | 25 | <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> |
26 | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> | 26 | <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> |
27 | <comment>This is a comment</comment> | 27 | <comment>This is a comment</comment> |
28 | </data> | 28 | </data> |
29 | 29 | ||
30 | There are any number of "resheader" rows that contain simple | 30 | There are any number of "resheader" rows that contain simple |
31 | name/value pairs. | 31 | name/value pairs. |
32 | 32 | ||
33 | Each data row contains a name, and value. The row also contains a | 33 | Each data row contains a name, and value. The row also contains a |
34 | type or mimetype. Type corresponds to a .NET class that support | 34 | type or mimetype. Type corresponds to a .NET class that support |
35 | text/value conversion through the TypeConverter architecture. | 35 | text/value conversion through the TypeConverter architecture. |
36 | Classes that don't support this are serialized and stored with the | 36 | Classes that don't support this are serialized and stored with the |
37 | mimetype set. | 37 | mimetype set. |
38 | 38 | ||
39 | The mimetype is used for serialized objects, and tells the | 39 | The mimetype is used for serialized objects, and tells the |
40 | ResXResourceReader how to depersist the object. This is currently not | 40 | ResXResourceReader how to depersist the object. This is currently not |
41 | extensible. For a given mimetype the value must be set accordingly: | 41 | extensible. For a given mimetype the value must be set accordingly: |
42 | 42 | ||
43 | Note - application/x-microsoft.net.object.binary.base64 is the format | 43 | Note - application/x-microsoft.net.object.binary.base64 is the format |
44 | that the ResXResourceWriter will generate, however the reader can | 44 | that the ResXResourceWriter will generate, however the reader can |
45 | read any of the formats listed below. | 45 | read any of the formats listed below. |
46 | 46 | ||
47 | mimetype: application/x-microsoft.net.object.binary.base64 | 47 | mimetype: application/x-microsoft.net.object.binary.base64 |
48 | value : The object must be serialized with | 48 | value : The object must be serialized with |
49 | : System.Serialization.Formatters.Binary.BinaryFormatter | 49 | : System.Serialization.Formatters.Binary.BinaryFormatter |
50 | : and then encoded with base64 encoding. | 50 | : and then encoded with base64 encoding. |
51 | 51 | ||
52 | mimetype: application/x-microsoft.net.object.soap.base64 | 52 | mimetype: application/x-microsoft.net.object.soap.base64 |
53 | value : The object must be serialized with | 53 | value : The object must be serialized with |
54 | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter | 54 | : System.Runtime.Serialization.Formatters.Soap.SoapFormatter |
55 | : and then encoded with base64 encoding. | 55 | : and then encoded with base64 encoding. |
56 | 56 | ||
57 | mimetype: application/x-microsoft.net.object.bytearray.base64 | 57 | mimetype: application/x-microsoft.net.object.bytearray.base64 |
58 | value : The object must be serialized into a byte array | 58 | value : The object must be serialized into a byte array |
59 | : using a System.ComponentModel.TypeConverter | 59 | : using a System.ComponentModel.TypeConverter |
60 | : and then encoded with base64 encoding. | 60 | : and then encoded with base64 encoding. |
61 | --> | 61 | --> |
62 | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> | 62 | <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
63 | <xsd:element name="root" msdata:IsDataSet="true"> | 63 | <xsd:element name="root" msdata:IsDataSet="true"> |
64 | <xsd:complexType> | 64 | <xsd:complexType> |
65 | <xsd:choice maxOccurs="unbounded"> | 65 | <xsd:choice maxOccurs="unbounded"> |
66 | <xsd:element name="metadata"> | 66 | <xsd:element name="metadata"> |
67 | <xsd:complexType> | 67 | <xsd:complexType> |
68 | <xsd:sequence> | 68 | <xsd:sequence> |
69 | <xsd:element name="value" type="xsd:string" minOccurs="0" /> | 69 | <xsd:element name="value" type="xsd:string" minOccurs="0" /> |
70 | </xsd:sequence> | 70 | </xsd:sequence> |
71 | <xsd:attribute name="name" type="xsd:string" /> | 71 | <xsd:attribute name="name" type="xsd:string" /> |
72 | <xsd:attribute name="type" type="xsd:string" /> | 72 | <xsd:attribute name="type" type="xsd:string" /> |
73 | <xsd:attribute name="mimetype" type="xsd:string" /> | 73 | <xsd:attribute name="mimetype" type="xsd:string" /> |
74 | </xsd:complexType> | 74 | </xsd:complexType> |
75 | </xsd:element> | 75 | </xsd:element> |
76 | <xsd:element name="assembly"> | 76 | <xsd:element name="assembly"> |
77 | <xsd:complexType> | 77 | <xsd:complexType> |
78 | <xsd:attribute name="alias" type="xsd:string" /> | 78 | <xsd:attribute name="alias" type="xsd:string" /> |
79 | <xsd:attribute name="name" type="xsd:string" /> | 79 | <xsd:attribute name="name" type="xsd:string" /> |
80 | </xsd:complexType> | 80 | </xsd:complexType> |
81 | </xsd:element> | 81 | </xsd:element> |
82 | <xsd:element name="data"> | 82 | <xsd:element name="data"> |
83 | <xsd:complexType> | 83 | <xsd:complexType> |
84 | <xsd:sequence> | 84 | <xsd:sequence> |
85 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | 85 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
86 | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> | 86 | <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> |
87 | </xsd:sequence> | 87 | </xsd:sequence> |
88 | <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> | 88 | <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> |
89 | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> | 89 | <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> |
90 | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> | 90 | <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> |
91 | </xsd:complexType> | 91 | </xsd:complexType> |
92 | </xsd:element> | 92 | </xsd:element> |
93 | <xsd:element name="resheader"> | 93 | <xsd:element name="resheader"> |
94 | <xsd:complexType> | 94 | <xsd:complexType> |
95 | <xsd:sequence> | 95 | <xsd:sequence> |
96 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> | 96 | <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> |
97 | </xsd:sequence> | 97 | </xsd:sequence> |
98 | <xsd:attribute name="name" type="xsd:string" use="required" /> | 98 | <xsd:attribute name="name" type="xsd:string" use="required" /> |
99 | </xsd:complexType> | 99 | </xsd:complexType> |
100 | </xsd:element> | 100 | </xsd:element> |
101 | </xsd:choice> | 101 | </xsd:choice> |
102 | </xsd:complexType> | 102 | </xsd:complexType> |
103 | </xsd:element> | 103 | </xsd:element> |
104 | </xsd:schema> | 104 | </xsd:schema> |
105 | <resheader name="resmimetype"> | 105 | <resheader name="resmimetype"> |
106 | <value>text/microsoft-resx</value> | 106 | <value>text/microsoft-resx</value> |
107 | </resheader> | 107 | </resheader> |
108 | <resheader name="version"> | 108 | <resheader name="version"> |
109 | <value>2.0</value> | 109 | <value>2.0</value> |
110 | </resheader> | 110 | </resheader> |
111 | <resheader name="reader"> | 111 | <resheader name="reader"> |
112 | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | 112 | <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
113 | </resheader> | 113 | </resheader> |
114 | <resheader name="writer"> | 114 | <resheader name="writer"> |
115 | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> | 115 | <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> |
116 | </resheader> | 116 | </resheader> |
117 | </root> \ No newline at end of file | 117 | </root> \ No newline at end of file |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs index 72c3ced..3dcc200 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.Designer.cs | |||
@@ -1,30 +1,30 @@ | |||
1 | //------------------------------------------------------------------------------ | 1 | //------------------------------------------------------------------------------ |
2 | // <auto-generated> | 2 | // <auto-generated> |
3 | // This code was generated by a tool. | 3 | // This code was generated by a tool. |
4 | // Runtime Version:2.0.50727.832 | 4 | // Runtime Version:2.0.50727.832 |
5 | // | 5 | // |
6 | // Changes to this file may cause incorrect behavior and will be lost if | 6 | // Changes to this file may cause incorrect behavior and will be lost if |
7 | // the code is regenerated. | 7 | // the code is regenerated. |
8 | // </auto-generated> | 8 | // </auto-generated> |
9 | //------------------------------------------------------------------------------ | 9 | //------------------------------------------------------------------------------ |
10 | 10 | ||
11 | namespace LaunchSLClient.Properties | 11 | namespace LaunchSLClient.Properties |
12 | { | 12 | { |
13 | 13 | ||
14 | 14 | ||
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] | 15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] | 16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] |
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase | 17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase |
18 | { | 18 | { |
19 | 19 | ||
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); | 20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); |
21 | 21 | ||
22 | public static Settings Default | 22 | public static Settings Default |
23 | { | 23 | { |
24 | get | 24 | get |
25 | { | 25 | { |
26 | return defaultInstance; | 26 | return defaultInstance; |
27 | } | 27 | } |
28 | } | 28 | } |
29 | } | 29 | } |
30 | } | 30 | } |
diff --git a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings index abf36c5..3964565 100644 --- a/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings +++ b/OpenSim/Tools/LaunchSLClient/LaunchSLClient/Properties/Settings.settings | |||
@@ -1,7 +1,7 @@ | |||
1 | <?xml version='1.0' encoding='utf-8'?> | 1 | <?xml version='1.0' encoding='utf-8'?> |
2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> | 2 | <SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)"> |
3 | <Profiles> | 3 | <Profiles> |
4 | <Profile Name="(Default)" /> | 4 | <Profile Name="(Default)" /> |
5 | </Profiles> | 5 | </Profiles> |
6 | <Settings /> | 6 | <Settings /> |
7 | </SettingsFile> | 7 | </SettingsFile> |