aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim')
-rw-r--r--OpenSim/Region/Application/OpenSim.cs7
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs27
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs128
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs14
-rw-r--r--OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs23
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs3
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs64
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs2
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs71
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs19
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs33
11 files changed, 245 insertions, 146 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs
index ae2d836..c2dd84c 100644
--- a/OpenSim/Region/Application/OpenSim.cs
+++ b/OpenSim/Region/Application/OpenSim.cs
@@ -265,10 +265,11 @@ namespace OpenSim
265 LoadOar); 265 LoadOar);
266 266
267 m_console.Commands.AddCommand("region", false, "save oar", 267 m_console.Commands.AddCommand("region", false, "save oar",
268 "save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]", 268 //"save oar [-v|--version=<N>] [-p|--profile=<url>] [<OAR path>]",
269 "save oar [-p|--profile=<url>] [<OAR path>]",
269 "Save a region's data to an OAR archive.", 270 "Save a region's data to an OAR archive.",
270 "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine 271// "-v|--version=<N> generates scene objects as per older versions of the serialization (e.g. -v=0)" + Environment.NewLine
271 + "-p|--profile=<url> adds the url of the profile service to the saved user information" + Environment.NewLine 272 "-p|--profile=<url> adds the url of the profile service to the saved user information" + Environment.NewLine
272 + "The OAR path must be a filesystem path." 273 + "The OAR path must be a filesystem path."
273 + " If this is not given then the oar is saved to region.oar in the current directory.", 274 + " If this is not given then the oar is saved to region.oar in the current directory.",
274 SaveOar); 275 SaveOar);
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
index cab341d..5e5f6c0 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiveWriteRequest.cs
@@ -156,7 +156,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
156 /// <param name="inventoryFolder">The inventory folder to save</param> 156 /// <param name="inventoryFolder">The inventory folder to save</param>
157 /// <param name="path">The path to which the folder should be saved</param> 157 /// <param name="path">The path to which the folder should be saved</param>
158 /// <param name="saveThisFolderItself">If true, save this folder itself. If false, only saves contents</param> 158 /// <param name="saveThisFolderItself">If true, save this folder itself. If false, only saves contents</param>
159 protected void SaveInvFolder(InventoryFolderBase inventoryFolder, string path, bool saveThisFolderItself, Dictionary<string, object> options, IUserAccountService userAccountService) 159 /// <param name="options"></param>
160 /// <param name="userAccountService"></param>
161 protected void SaveInvFolder(
162 InventoryFolderBase inventoryFolder, string path, bool saveThisFolderItself,
163 Dictionary<string, object> options, IUserAccountService userAccountService)
160 { 164 {
161 if (saveThisFolderItself) 165 if (saveThisFolderItself)
162 { 166 {
@@ -249,7 +253,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
249 253
250 // Write out control file. This has to be done first so that subsequent loaders will see this file first 254 // Write out control file. This has to be done first so that subsequent loaders will see this file first
251 // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this 255 // XXX: I know this is a weak way of doing it since external non-OAR aware tar executables will not do this
252 m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, Create0p1ControlFile()); 256 // not sure how to fix this though, short of going with a completely different file format.
257 m_archiveWriter.WriteFile(ArchiveConstants.CONTROL_FILE_PATH, CreateControlFile(options));
253 m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive."); 258 m_log.InfoFormat("[INVENTORY ARCHIVER]: Added control file to archive.");
254 259
255 if (inventoryFolder != null) 260 if (inventoryFolder != null)
@@ -372,12 +377,24 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
372 } 377 }
373 378
374 /// <summary> 379 /// <summary>
375 /// Create the control file for a 0.1 version archive 380 /// Create the control file for the archive
376 /// </summary> 381 /// </summary>
382 /// <param name="options"></param>
377 /// <returns></returns> 383 /// <returns></returns>
378 public static string Create0p1ControlFile() 384 public static string CreateControlFile(Dictionary<string, object> options)
379 { 385 {
380 int majorVersion = 0, minorVersion = 1; 386 int majorVersion, minorVersion;
387
388 if (options.ContainsKey("profile"))
389 {
390 majorVersion = 1;
391 minorVersion = 0;
392 }
393 else
394 {
395 majorVersion = 0;
396 minorVersion = 1;
397 }
381 398
382 m_log.InfoFormat("[INVENTORY ARCHIVER]: Creating version {0}.{1} IAR", majorVersion, minorVersion); 399 m_log.InfoFormat("[INVENTORY ARCHIVER]: Creating version {0}.{1} IAR", majorVersion, minorVersion);
383 400
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
index b33c2b1..1e18095 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/InventoryArchiverModule.cs
@@ -55,7 +55,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
55 /// <value> 55 /// <value>
56 /// Enable or disable checking whether the iar user is actually logged in 56 /// Enable or disable checking whether the iar user is actually logged in
57 /// </value> 57 /// </value>
58 public bool DisablePresenceChecks { get; set; } 58// public bool DisablePresenceChecks { get; set; }
59 59
60 public event InventoryArchiveSaved OnInventoryArchiveSaved; 60 public event InventoryArchiveSaved OnInventoryArchiveSaved;
61 61
@@ -95,10 +95,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
95 95
96 public InventoryArchiverModule() {} 96 public InventoryArchiverModule() {}
97 97
98 public InventoryArchiverModule(bool disablePresenceChecks) 98// public InventoryArchiverModule(bool disablePresenceChecks)
99 { 99// {
100 DisablePresenceChecks = disablePresenceChecks; 100// DisablePresenceChecks = disablePresenceChecks;
101 } 101// }
102 102
103 public void Initialise(Scene scene, IConfigSource source) 103 public void Initialise(Scene scene, IConfigSource source)
104 { 104 {
@@ -172,8 +172,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
172 172
173 if (userInfo != null) 173 if (userInfo != null)
174 { 174 {
175 if (CheckPresence(userInfo.PrincipalID)) 175// if (CheckPresence(userInfo.PrincipalID))
176 { 176// {
177 try 177 try
178 { 178 {
179 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute(options, UserAccountService); 179 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, saveStream).Execute(options, UserAccountService);
@@ -189,13 +189,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
189 } 189 }
190 190
191 return true; 191 return true;
192 } 192// }
193 else 193// else
194 { 194// {
195 m_log.ErrorFormat( 195// m_log.ErrorFormat(
196 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 196// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
197 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 197// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
198 } 198// }
199 } 199 }
200 } 200 }
201 201
@@ -212,8 +212,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
212 212
213 if (userInfo != null) 213 if (userInfo != null)
214 { 214 {
215 if (CheckPresence(userInfo.PrincipalID)) 215// if (CheckPresence(userInfo.PrincipalID))
216 { 216// {
217 try 217 try
218 { 218 {
219 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute(options, UserAccountService); 219 new InventoryArchiveWriteRequest(id, this, m_aScene, userInfo, invPath, savePath).Execute(options, UserAccountService);
@@ -229,13 +229,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
229 } 229 }
230 230
231 return true; 231 return true;
232 } 232// }
233 else 233// else
234 { 234// {
235 m_log.ErrorFormat( 235// m_log.ErrorFormat(
236 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 236// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
237 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 237// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
238 } 238// }
239 } 239 }
240 } 240 }
241 241
@@ -257,9 +257,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
257 257
258 if (userInfo != null) 258 if (userInfo != null)
259 { 259 {
260 if (CheckPresence(userInfo.PrincipalID)) 260// if (CheckPresence(userInfo.PrincipalID))
261 { 261// {
262
263 InventoryArchiveReadRequest request; 262 InventoryArchiveReadRequest request;
264 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false); 263 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false);
265 264
@@ -280,13 +279,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
280 UpdateClientWithLoadedNodes(userInfo, request.Execute()); 279 UpdateClientWithLoadedNodes(userInfo, request.Execute());
281 280
282 return true; 281 return true;
283 } 282// }
284 else 283// else
285 { 284// {
286 m_log.ErrorFormat( 285// m_log.ErrorFormat(
287 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 286// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
288 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 287// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
289 } 288// }
290 } 289 }
291 else 290 else
292 m_log.ErrorFormat("[INVENTORY ARCHIVER]: User {0} {1} not found", 291 m_log.ErrorFormat("[INVENTORY ARCHIVER]: User {0} {1} not found",
@@ -306,8 +305,8 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
306 305
307 if (userInfo != null) 306 if (userInfo != null)
308 { 307 {
309 if (CheckPresence(userInfo.PrincipalID)) 308// if (CheckPresence(userInfo.PrincipalID))
310 { 309// {
311 InventoryArchiveReadRequest request; 310 InventoryArchiveReadRequest request;
312 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false); 311 bool merge = (options.ContainsKey("merge") ? (bool)options["merge"] : false);
313 312
@@ -328,13 +327,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
328 UpdateClientWithLoadedNodes(userInfo, request.Execute()); 327 UpdateClientWithLoadedNodes(userInfo, request.Execute());
329 328
330 return true; 329 return true;
331 } 330// }
332 else 331// else
333 { 332// {
334 m_log.ErrorFormat( 333// m_log.ErrorFormat(
335 "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator", 334// "[INVENTORY ARCHIVER]: User {0} {1} {2} not logged in to this region simulator",
336 userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID); 335// userInfo.FirstName, userInfo.LastName, userInfo.PrincipalID);
337 } 336// }
338 } 337 }
339 } 338 }
340 339
@@ -529,28 +528,27 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver
529 } 528 }
530 } 529 }
531 530
532 /// <summary> 531// /// <summary>
533 /// Check if the given user is present in any of the scenes. 532// /// Check if the given user is present in any of the scenes.
534 /// </summary> 533// /// </summary>
535 /// <param name="userId">The user to check</param> 534// /// <param name="userId">The user to check</param>
536 /// <returns>true if the user is in any of the scenes, false otherwise</returns> 535// /// <returns>true if the user is in any of the scenes, false otherwise</returns>
537 protected bool CheckPresence(UUID userId) 536// protected bool CheckPresence(UUID userId)
538 { 537// {
539 if (DisablePresenceChecks) 538// if (DisablePresenceChecks)
540 return true; 539// return true;
541 540//
542 foreach (Scene scene in m_scenes.Values) 541// foreach (Scene scene in m_scenes.Values)
543 { 542// {
544 ScenePresence p; 543// ScenePresence p;
545 if ((p = scene.GetScenePresence(userId)) != null) 544// if ((p = scene.GetScenePresence(userId)) != null)
546 { 545// {
547 p.ControllingClient.SendAgentAlertMessage("Inventory operation has been started", false); 546// p.ControllingClient.SendAgentAlertMessage("Inventory operation has been started", false);
548 return true; 547// return true;
549 } 548// }
550 } 549// }
551 550//
552 return false; 551// return false;
553 } 552// }
554
555 } 553 }
556} 554}
diff --git a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
index 2747e15..76d0b85 100644
--- a/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Inventory/Archiver/Tests/InventoryArchiverTests.cs
@@ -120,7 +120,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
120 TestHelper.InMethod(); 120 TestHelper.InMethod();
121// log4net.Config.XmlConfigurator.Configure(); 121// log4net.Config.XmlConfigurator.Configure();
122 122
123 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 123 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
124 124
125 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 125 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
126 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 126 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -238,7 +238,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
238 TestHelper.InMethod(); 238 TestHelper.InMethod();
239// log4net.Config.XmlConfigurator.Configure(); 239// log4net.Config.XmlConfigurator.Configure();
240 240
241 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 241 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
242 242
243 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 243 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
244 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 244 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -355,7 +355,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
355// log4net.Config.XmlConfigurator.Configure(); 355// log4net.Config.XmlConfigurator.Configure();
356 356
357 SerialiserModule serialiserModule = new SerialiserModule(); 357 SerialiserModule serialiserModule = new SerialiserModule();
358 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 358 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
359 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 359 Scene scene = SceneSetupHelpers.SetupScene("inventory");
360 SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule); 360 SceneSetupHelpers.SetupSceneModules(scene, serialiserModule, archiverModule);
361 361
@@ -382,7 +382,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
382 //log4net.Config.XmlConfigurator.Configure(); 382 //log4net.Config.XmlConfigurator.Configure();
383 383
384 SerialiserModule serialiserModule = new SerialiserModule(); 384 SerialiserModule serialiserModule = new SerialiserModule();
385 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 385 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
386 386
387 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 387 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
388 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 388 Scene scene = SceneSetupHelpers.SetupScene("inventory");
@@ -443,7 +443,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
443 string humanEscapedItemName = @"You & you are a mean\/man\/"; 443 string humanEscapedItemName = @"You & you are a mean\/man\/";
444 string userPassword = "meowfood"; 444 string userPassword = "meowfood";
445 445
446 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 446 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
447 447
448 Scene scene = SceneSetupHelpers.SetupScene("Inventory"); 448 Scene scene = SceneSetupHelpers.SetupScene("Inventory");
449 SceneSetupHelpers.SetupSceneModules(scene, archiverModule); 449 SceneSetupHelpers.SetupSceneModules(scene, archiverModule);
@@ -558,7 +558,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
558 558
559 MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); 559 MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
560 SerialiserModule serialiserModule = new SerialiserModule(); 560 SerialiserModule serialiserModule = new SerialiserModule();
561 InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 561 InventoryArchiverModule archiverModule = new InventoryArchiverModule();
562 562
563 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 563 // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
564 Scene scene = SceneSetupHelpers.SetupScene("inventory"); 564 Scene scene = SceneSetupHelpers.SetupScene("inventory");
@@ -619,7 +619,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Inventory.Archiver.Tests
619 619
620 // MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray()); 620 // MemoryStream archiveReadStream = new MemoryStream(archiveWriteStream.ToArray());
621 // SerialiserModule serialiserModule = new SerialiserModule(); 621 // SerialiserModule serialiserModule = new SerialiserModule();
622 // InventoryArchiverModule archiverModule = new InventoryArchiverModule(true); 622 // InventoryArchiverModule archiverModule = new InventoryArchiverModule();
623 623
624 // // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene 624 // // Annoyingly, we have to set up a scene even though inventory loading has nothing to do with a scene
625 // Scene scene = SceneSetupHelpers.SetupScene(); 625 // Scene scene = SceneSetupHelpers.SetupScene();
diff --git a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
index 3291be4..7316e5b 100644
--- a/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/VectorRender/VectorRenderModule.cs
@@ -165,7 +165,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
165 int width = 256; 165 int width = 256;
166 int height = 256; 166 int height = 256;
167 int alpha = 255; // 0 is transparent 167 int alpha = 255; // 0 is transparent
168 Color bgColour = Color.White; // Default background color 168 Color bgColor = Color.White; // Default background color
169 char altDataDelim = ';'; 169 char altDataDelim = ';';
170 170
171 char[] paramDelimiter = { ',' }; 171 char[] paramDelimiter = { ',' };
@@ -253,15 +253,16 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
253 alpha = 256; 253 alpha = 256;
254 } 254 }
255 break; 255 break;
256 case "bgcolor":
256 case "bgcolour": 257 case "bgcolour":
257 int hex = 0; 258 int hex = 0;
258 if (Int32.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex)) 259 if (Int32.TryParse(value, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex))
259 { 260 {
260 bgColour = Color.FromArgb(hex); 261 bgColor = Color.FromArgb(hex);
261 } 262 }
262 else 263 else
263 { 264 {
264 bgColour = Color.FromName(value); 265 bgColor = Color.FromName(value);
265 } 266 }
266 break; 267 break;
267 case "altdatadelim": 268 case "altdatadelim":
@@ -315,7 +316,7 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
315 // background color in their scripts, only do when fully opaque 316 // background color in their scripts, only do when fully opaque
316 if (alpha >= 255) 317 if (alpha >= 255)
317 { 318 {
318 graph.FillRectangle(new SolidBrush(bgColour), 0, 0, width, height); 319 graph.FillRectangle(new SolidBrush(bgColor), 0, 0, width, height);
319 } 320 }
320 321
321 for (int w = 0; w < bitmap.Width; w++) 322 for (int w = 0; w < bitmap.Width; w++)
@@ -616,25 +617,25 @@ namespace OpenSim.Region.CoreModules.Scripting.VectorRender
616 } 617 }
617 } 618 }
618 } 619 }
619 else if (nextLine.StartsWith("PenColour")) 620 else if (nextLine.StartsWith("PenColour") || nextLine.StartsWith("PenColor"))
620 { 621 {
621 nextLine = nextLine.Remove(0, 9); 622 nextLine = nextLine.Remove(0, 9);
622 nextLine = nextLine.Trim(); 623 nextLine = nextLine.Trim();
623 int hex = 0; 624 int hex = 0;
624 625
625 Color newColour; 626 Color newColor;
626 if (Int32.TryParse(nextLine, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex)) 627 if (Int32.TryParse(nextLine, NumberStyles.HexNumber, CultureInfo.InvariantCulture, out hex))
627 { 628 {
628 newColour = Color.FromArgb(hex); 629 newColor = Color.FromArgb(hex);
629 } 630 }
630 else 631 else
631 { 632 {
632 // this doesn't fail, it just returns black if nothing is found 633 // this doesn't fail, it just returns black if nothing is found
633 newColour = Color.FromName(nextLine); 634 newColor = Color.FromName(nextLine);
634 } 635 }
635 636
636 myBrush.Color = newColour; 637 myBrush.Color = newColor;
637 drawPen.Color = newColour; 638 drawPen.Color = newColor;
638 } 639 }
639 } 640 }
640 } 641 }
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
index f8a599a..9ec4ebe 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestExecution.cs
@@ -136,14 +136,13 @@ namespace OpenSim.Region.CoreModules.World.Archiver
136 ms.Close(); 136 ms.Close();
137 137
138 m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive."); 138 m_log.InfoFormat("[ARCHIVER]: Added terrain information to archive.");
139
140 139
141 // Write out scene object metadata 140 // Write out scene object metadata
142 foreach (SceneObjectGroup sceneObject in m_sceneObjects) 141 foreach (SceneObjectGroup sceneObject in m_sceneObjects)
143 { 142 {
144 //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType()); 143 //m_log.DebugFormat("[ARCHIVER]: Saving {0} {1}, {2}", entity.Name, entity.UUID, entity.GetType());
145 144
146 string serializedObject = m_serialiser.SerializeGroupToXml2(sceneObject, m_options); 145 string serializedObject = m_serialiser.SerializeGroupToXml2(sceneObject, m_options);
147 m_archiveWriter.WriteFile(ArchiveHelpers.CreateObjectPath(sceneObject), serializedObject); 146 m_archiveWriter.WriteFile(ArchiveHelpers.CreateObjectPath(sceneObject), serializedObject);
148 } 147 }
149 148
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
index 0699407..f2d487e 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveWriteRequestPreparation.cs
@@ -58,7 +58,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
58 /// <summary> 58 /// <summary>
59 /// The maximum major version of OAR that we can write. 59 /// The maximum major version of OAR that we can write.
60 /// </summary> 60 /// </summary>
61 public static int MAX_MAJOR_VERSION = 1; 61 public static int MAX_MAJOR_VERSION = 0;
62 62
63 protected Scene m_scene; 63 protected Scene m_scene;
64 protected Stream m_saveStream; 64 protected Stream m_saveStream;
@@ -206,37 +206,37 @@ namespace OpenSim.Region.CoreModules.World.Archiver
206 /// <returns></returns> 206 /// <returns></returns>
207 public static string CreateControlFile(Dictionary<string, object> options) 207 public static string CreateControlFile(Dictionary<string, object> options)
208 { 208 {
209 int majorVersion = MAX_MAJOR_VERSION, minorVersion = 0; 209 int majorVersion = MAX_MAJOR_VERSION, minorVersion = 5;
210 210//
211 if (options.ContainsKey("version")) 211// if (options.ContainsKey("version"))
212 { 212// {
213 string[] parts = options["version"].ToString().Split('.'); 213// string[] parts = options["version"].ToString().Split('.');
214 if (parts.Length >= 1) 214// if (parts.Length >= 1)
215 { 215// {
216 majorVersion = Int32.Parse(parts[0]); 216// majorVersion = Int32.Parse(parts[0]);
217 217//
218 if (parts.Length >= 2) 218// if (parts.Length >= 2)
219 minorVersion = Int32.Parse(parts[1]); 219// minorVersion = Int32.Parse(parts[1]);
220 } 220// }
221 } 221// }
222 222//
223 if (majorVersion < MIN_MAJOR_VERSION || majorVersion > MAX_MAJOR_VERSION) 223// if (majorVersion < MIN_MAJOR_VERSION || majorVersion > MAX_MAJOR_VERSION)
224 { 224// {
225 throw new Exception( 225// throw new Exception(
226 string.Format( 226// string.Format(
227 "OAR version number for save must be between {0} and {1}", 227// "OAR version number for save must be between {0} and {1}",
228 MIN_MAJOR_VERSION, MAX_MAJOR_VERSION)); 228// MIN_MAJOR_VERSION, MAX_MAJOR_VERSION));
229 } 229// }
230 else if (majorVersion == MAX_MAJOR_VERSION) 230// else if (majorVersion == MAX_MAJOR_VERSION)
231 { 231// {
232 // Force 1.0 232// // Force 1.0
233 minorVersion = 0; 233// minorVersion = 0;
234 } 234// }
235 else if (majorVersion == MIN_MAJOR_VERSION) 235// else if (majorVersion == MIN_MAJOR_VERSION)
236 { 236// {
237 // Force 0.4 237// // Force 0.4
238 minorVersion = 4; 238// minorVersion = 4;
239 } 239// }
240 240
241 m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion); 241 m_log.InfoFormat("[ARCHIVER]: Creating version {0}.{1} OAR", majorVersion, minorVersion);
242 //if (majorVersion == 1) 242 //if (majorVersion == 1)
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
index 2d7244e..9277c59 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiverModule.cs
@@ -125,7 +125,7 @@ namespace OpenSim.Region.CoreModules.World.Archiver
125 Dictionary<string, object> options = new Dictionary<string, object>(); 125 Dictionary<string, object> options = new Dictionary<string, object>();
126 126
127 OptionSet ops = new OptionSet(); 127 OptionSet ops = new OptionSet();
128 ops.Add("v|version=", delegate(string v) { options["version"] = v; }); 128// ops.Add("v|version=", delegate(string v) { options["version"] = v; });
129 ops.Add("p|profile=", delegate(string v) { options["profile"] = v; }); 129 ops.Add("p|profile=", delegate(string v) { options["profile"] = v; });
130 130
131 List<string> mainParams = ops.Parse(cmdparams); 131 List<string> mainParams = ops.Parse(cmdparams);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
index 827626f..691b67f 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs
@@ -336,6 +336,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
336 } 336 }
337 } 337 }
338 338
339 internal void OSSLDeprecated(string function, string replacement)
340 {
341 OSSLShoutError(string.Format("Use of function {0} is deprecated. Use {1} instead.", function, replacement));
342 }
343
339 protected void ScriptSleep(int delay) 344 protected void ScriptSleep(int delay)
340 { 345 {
341 delay = (int)((float)delay * m_ScriptDelayFactor); 346 delay = (int)((float)delay * m_ScriptDelayFactor);
@@ -347,13 +352,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
347 // 352 //
348 // OpenSim functions 353 // OpenSim functions
349 // 354 //
355 public LSL_Integer osSetTerrainHeight(int x, int y, double val)
356 {
357 CheckThreatLevel(ThreatLevel.High, "osSetTerrainHeight");
358 return SetTerrainHeight(x, y, val);
359 }
350 public LSL_Integer osTerrainSetHeight(int x, int y, double val) 360 public LSL_Integer osTerrainSetHeight(int x, int y, double val)
351 { 361 {
352 CheckThreatLevel(ThreatLevel.High, "osTerrainSetHeight"); 362 CheckThreatLevel(ThreatLevel.High, "osTerrainSetHeight");
353 363 OSSLDeprecated("osTerrainSetHeight", "osSetTerrainHeight");
364 return SetTerrainHeight(x, y, val);
365 }
366 private LSL_Integer SetTerrainHeight(int x, int y, double val)
367 {
354 m_host.AddScriptLPS(1); 368 m_host.AddScriptLPS(1);
355 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) 369 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0)
356 OSSLError("osTerrainSetHeight: Coordinate out of bounds"); 370 OSSLError("osSetTerrainHeight: Coordinate out of bounds");
357 371
358 if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0))) 372 if (World.Permissions.CanTerraformLand(m_host.OwnerID, new Vector3(x, y, 0)))
359 { 373 {
@@ -366,13 +380,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
366 } 380 }
367 } 381 }
368 382
383 public LSL_Float osGetTerrainHeight(int x, int y)
384 {
385 CheckThreatLevel(ThreatLevel.None, "osGetTerrainHeight");
386 return GetTerrainHeight(x, y);
387 }
369 public LSL_Float osTerrainGetHeight(int x, int y) 388 public LSL_Float osTerrainGetHeight(int x, int y)
370 { 389 {
371 CheckThreatLevel(ThreatLevel.None, "osTerrainGetHeight"); 390 CheckThreatLevel(ThreatLevel.None, "osTerrainGetHeight");
372 391 OSSLDeprecated("osTerrainGetHeight", "osGetTerrainHeight");
392 return GetTerrainHeight(x, y);
393 }
394 private LSL_Float GetTerrainHeight(int x, int y)
395 {
373 m_host.AddScriptLPS(1); 396 m_host.AddScriptLPS(1);
374 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0) 397 if (x > ((int)Constants.RegionSize - 1) || x < 0 || y > ((int)Constants.RegionSize - 1) || y < 0)
375 OSSLError("osTerrainGetHeight: Coordinate out of bounds"); 398 OSSLError("osGetTerrainHeight: Coordinate out of bounds");
376 399
377 return World.Heightmap[x, y]; 400 return World.Heightmap[x, y];
378 } 401 }
@@ -1001,9 +1024,19 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1001 return drawList; 1024 return drawList;
1002 } 1025 }
1003 1026
1027 public string osSetPenColor(string drawList, string color)
1028 {
1029 CheckThreatLevel(ThreatLevel.None, "osSetPenColor");
1030
1031 m_host.AddScriptLPS(1);
1032 drawList += "PenColor " + color + "; ";
1033 return drawList;
1034 }
1035 // Deprecated
1004 public string osSetPenColour(string drawList, string colour) 1036 public string osSetPenColour(string drawList, string colour)
1005 { 1037 {
1006 CheckThreatLevel(ThreatLevel.None, "osSetPenColour"); 1038 CheckThreatLevel(ThreatLevel.None, "osSetPenColour");
1039 OSSLDeprecated("osSetPenColour", "osSetPenColor");
1007 1040
1008 m_host.AddScriptLPS(1); 1041 m_host.AddScriptLPS(1);
1009 drawList += "PenColour " + colour + "; "; 1042 drawList += "PenColour " + colour + "; ";
@@ -1012,7 +1045,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1012 1045
1013 public string osSetPenCap(string drawList, string direction, string type) 1046 public string osSetPenCap(string drawList, string direction, string type)
1014 { 1047 {
1015 CheckThreatLevel(ThreatLevel.None, "osSetPenColour"); 1048 CheckThreatLevel(ThreatLevel.None, "osSetPenCap");
1016 1049
1017 m_host.AddScriptLPS(1); 1050 m_host.AddScriptLPS(1);
1018 drawList += "PenCap " + direction + "," + type + "; "; 1051 drawList += "PenCap " + direction + "," + type + "; ";
@@ -1157,6 +1190,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1157 public double osSunGetParam(string param) 1190 public double osSunGetParam(string param)
1158 { 1191 {
1159 CheckThreatLevel(ThreatLevel.None, "osSunGetParam"); 1192 CheckThreatLevel(ThreatLevel.None, "osSunGetParam");
1193 OSSLDeprecated("osSunGetParam", "osGetSunParam");
1194 return GetSunParam(param);
1195 }
1196 public double osGetSunParam(string param)
1197 {
1198 CheckThreatLevel(ThreatLevel.None, "osGetSunParam");
1199 return GetSunParam(param);
1200 }
1201 private double GetSunParam(string param)
1202 {
1160 m_host.AddScriptLPS(1); 1203 m_host.AddScriptLPS(1);
1161 1204
1162 double value = 0.0; 1205 double value = 0.0;
@@ -1173,6 +1216,16 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1173 public void osSunSetParam(string param, double value) 1216 public void osSunSetParam(string param, double value)
1174 { 1217 {
1175 CheckThreatLevel(ThreatLevel.None, "osSunSetParam"); 1218 CheckThreatLevel(ThreatLevel.None, "osSunSetParam");
1219 OSSLDeprecated("osSunSetParam", "osSetSunParam");
1220 SetSunParam(param, value);
1221 }
1222 public void osSetSunParam(string param, double value)
1223 {
1224 CheckThreatLevel(ThreatLevel.None, "osSetSunParam");
1225 SetSunParam(param, value);
1226 }
1227 private void SetSunParam(string param, double value)
1228 {
1176 m_host.AddScriptLPS(1); 1229 m_host.AddScriptLPS(1);
1177 1230
1178 ISunModule module = World.RequestModuleInterface<ISunModule>(); 1231 ISunModule module = World.RequestModuleInterface<ISunModule>();
@@ -1198,9 +1251,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1198 return String.Empty; 1251 return String.Empty;
1199 } 1252 }
1200 1253
1201 public void osWindParamSet(string plugin, string param, float value) 1254 public void osSetWindParam(string plugin, string param, float value)
1202 { 1255 {
1203 CheckThreatLevel(ThreatLevel.VeryLow, "osWindParamSet"); 1256 CheckThreatLevel(ThreatLevel.VeryLow, "osSetWindParam");
1204 m_host.AddScriptLPS(1); 1257 m_host.AddScriptLPS(1);
1205 1258
1206 IWindModule module = World.RequestModuleInterface<IWindModule>(); 1259 IWindModule module = World.RequestModuleInterface<IWindModule>();
@@ -1214,9 +1267,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
1214 } 1267 }
1215 } 1268 }
1216 1269
1217 public float osWindParamGet(string plugin, string param) 1270 public float osGetWindParam(string plugin, string param)
1218 { 1271 {
1219 CheckThreatLevel(ThreatLevel.VeryLow, "osWindParamGet"); 1272 CheckThreatLevel(ThreatLevel.VeryLow, "osGetWindParam");
1220 m_host.AddScriptLPS(1); 1273 m_host.AddScriptLPS(1);
1221 1274
1222 IWindModule module = World.RequestModuleInterface<IWindModule>(); 1275 IWindModule module = World.RequestModuleInterface<IWindModule>();
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
index 10d61ca..da81a51 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs
@@ -67,8 +67,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
67 string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams, 67 string osSetDynamicTextureDataBlendFace(string dynamicID, string contentType, string data, string extraParams,
68 bool blend, int disp, int timer, int alpha, int face); 68 bool blend, int disp, int timer, int alpha, int face);
69 69
70 LSL_Float osTerrainGetHeight(int x, int y); 70 LSL_Float osGetTerrainHeight(int x, int y);
71 LSL_Integer osTerrainSetHeight(int x, int y, double val); 71 LSL_Float osTerrainGetHeight(int x, int y); // Deprecated
72 LSL_Integer osSetTerrainHeight(int x, int y, double val);
73 LSL_Integer osTerrainSetHeight(int x, int y, double val); //Deprecated
72 void osTerrainFlush(); 74 void osTerrainFlush();
73 75
74 int osRegionRestart(double seconds); 76 int osRegionRestart(double seconds);
@@ -107,7 +109,8 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
107 string osSetFontName(string drawList, string fontName); 109 string osSetFontName(string drawList, string fontName);
108 string osSetFontSize(string drawList, int fontSize); 110 string osSetFontSize(string drawList, int fontSize);
109 string osSetPenSize(string drawList, int penSize); 111 string osSetPenSize(string drawList, int penSize);
110 string osSetPenColour(string drawList, string colour); 112 string osSetPenColor(string drawList, string color);
113 string osSetPenColour(string drawList, string colour); // Deprecated
111 string osSetPenCap(string drawList, string direction, string type); 114 string osSetPenCap(string drawList, string direction, string type);
112 string osDrawImage(string drawList, int width, int height, string imageUrl); 115 string osDrawImage(string drawList, int width, int height, string imageUrl);
113 vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize); 116 vector osGetDrawStringSize(string contentType, string text, string fontName, int fontSize);
@@ -119,13 +122,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
119 void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour); 122 void osSetRegionSunSettings(bool useEstateSun, bool sunFixed, double sunHour);
120 void osSetEstateSunSettings(bool sunFixed, double sunHour); 123 void osSetEstateSunSettings(bool sunFixed, double sunHour);
121 double osGetCurrentSunHour(); 124 double osGetCurrentSunHour();
122 double osSunGetParam(string param); 125 double osGetSunParam(string param);
123 void osSunSetParam(string param, double value); 126 double osSunGetParam(string param); // Deprecated
127 void osSetSunParam(string param, double value);
128 void osSunSetParam(string param, double value); // Deprecated
124 129
125 // Wind Module Functions 130 // Wind Module Functions
126 string osWindActiveModelPluginName(); 131 string osWindActiveModelPluginName();
127 void osWindParamSet(string plugin, string param, float value); 132 void osSetWindParam(string plugin, string param, float value);
128 float osWindParamGet(string plugin, string param); 133 float osGetWindParam(string plugin, string param);
129 134
130 // Parcel commands 135 // Parcel commands
131 void osParcelJoin(vector pos1, vector pos2); 136 void osParcelJoin(vector pos1, vector pos2);
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
index f3142e6..70d489e 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs
@@ -81,11 +81,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
81 return m_OSSL_Functions.osGetCurrentSunHour(); 81 return m_OSSL_Functions.osGetCurrentSunHour();
82 } 82 }
83 83
84 public double osGetSunParam(string param)
85 {
86 return m_OSSL_Functions.osGetSunParam(param);
87 }
88 // Deprecated
84 public double osSunGetParam(string param) 89 public double osSunGetParam(string param)
85 { 90 {
86 return m_OSSL_Functions.osSunGetParam(param); 91 return m_OSSL_Functions.osSunGetParam(param);
87 } 92 }
88 93
94 public void osSetSunParam(string param, double value)
95 {
96 m_OSSL_Functions.osSetSunParam(param, value);
97 }
98 // Deprecated
89 public void osSunSetParam(string param, double value) 99 public void osSunSetParam(string param, double value)
90 { 100 {
91 m_OSSL_Functions.osSunSetParam(param, value); 101 m_OSSL_Functions.osSunSetParam(param, value);
@@ -97,14 +107,14 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
97 } 107 }
98 108
99// Not yet plugged in as available OSSL functions, so commented out 109// Not yet plugged in as available OSSL functions, so commented out
100// void osWindParamSet(string plugin, string param, float value) 110// void osSetWindParam(string plugin, string param, float value)
101// { 111// {
102// m_OSSL_Functions.osWindParamSet(plugin, param, value); 112// m_OSSL_Functions.osSetWindParam(plugin, param, value);
103// } 113// }
104// 114//
105// float osWindParamGet(string plugin, string param) 115// float osGetWindParam(string plugin, string param)
106// { 116// {
107// return m_OSSL_Functions.osWindParamGet(plugin, param); 117// return m_OSSL_Functions.osGetWindParam(plugin, param);
108// } 118// }
109 119
110 public void osParcelJoin(vector pos1, vector pos2) 120 public void osParcelJoin(vector pos1, vector pos2)
@@ -165,11 +175,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
165 blend, disp, timer, alpha, face); 175 blend, disp, timer, alpha, face);
166 } 176 }
167 177
178 public LSL_Float osGetTerrainHeight(int x, int y)
179 {
180 return m_OSSL_Functions.osGetTerrainHeight(x, y);
181 }
182 // Deprecated
168 public LSL_Float osTerrainGetHeight(int x, int y) 183 public LSL_Float osTerrainGetHeight(int x, int y)
169 { 184 {
170 return m_OSSL_Functions.osTerrainGetHeight(x, y); 185 return m_OSSL_Functions.osTerrainGetHeight(x, y);
171 } 186 }
172 187
188 public LSL_Integer osSetTerrainHeight(int x, int y, double val)
189 {
190 return m_OSSL_Functions.osSetTerrainHeight(x, y, val);
191 }
192 // Deprecated
173 public LSL_Integer osTerrainSetHeight(int x, int y, double val) 193 public LSL_Integer osTerrainSetHeight(int x, int y, double val)
174 { 194 {
175 return m_OSSL_Functions.osTerrainSetHeight(x, y, val); 195 return m_OSSL_Functions.osTerrainSetHeight(x, y, val);
@@ -333,6 +353,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
333 return m_OSSL_Functions.osSetPenCap(drawList, direction, type); 353 return m_OSSL_Functions.osSetPenCap(drawList, direction, type);
334 } 354 }
335 355
356 public string osSetPenColor(string drawList, string color)
357 {
358 return m_OSSL_Functions.osSetPenColor(drawList, color);
359 }
360 // Deprecated
336 public string osSetPenColour(string drawList, string colour) 361 public string osSetPenColour(string drawList, string colour)
337 { 362 {
338 return m_OSSL_Functions.osSetPenColour(drawList, colour); 363 return m_OSSL_Functions.osSetPenColour(drawList, colour);