diff --git a/Common/OpenSim.Framework/Types/RegionInfo.cs b/Common/OpenSim.Framework/Types/RegionInfo.cs index ad1399d7c2..2c24327d12 100644 --- a/Common/OpenSim.Framework/Types/RegionInfo.cs +++ b/Common/OpenSim.Framework/Types/RegionInfo.cs @@ -28,6 +28,7 @@ using System; using System.Collections.Generic; using System.Text; +using System.Globalization; using OpenSim.Framework.Interfaces; using OpenSim.Framework.Utilities; using OpenSim.Framework.Console; @@ -178,6 +179,32 @@ namespace OpenSim.Framework.Types this.IPListenAddr = attri; } } + + attri = ""; + attri = configData.GetAttribute("TerrainFile"); + if (attri == "") + { + this.estateSettings.terrainFile = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Default Terrain File", "default.r32"); + configData.SetAttribute("TerrainFile", this.estateSettings.terrainFile); + } + else + { + this.estateSettings.terrainFile = attri; + } + + attri = ""; + attri = configData.GetAttribute("TerrainMultiplier"); + if (attri == "") + { + string re = OpenSim.Framework.Console.MainConsole.Instance.CmdPrompt("GENERAL SETTING: Terrain Height Multiplier", "60.0"); + this.estateSettings.terrainMultiplier = Convert.ToDouble(re, CultureInfo.InvariantCulture); + configData.SetAttribute("TerrainMultiplier", this.estateSettings.terrainMultiplier.ToString()); + } + else + { + this.estateSettings.terrainMultiplier = Convert.ToDouble(attri); + } + attri = ""; attri = configData.GetAttribute("MasterAvatarFirstName"); if (attri == "") diff --git a/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs b/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs index 2293608208..9b811ae948 100644 --- a/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs +++ b/OpenSim/OpenSim.LocalCommunications/CommunicationsLocal.cs @@ -39,13 +39,13 @@ namespace OpenSim.LocalCommunications { public class CommunicationsLocal : CommunicationsManager { - public LocalBackEndServices SandManager = new LocalBackEndServices(); + public LocalBackEndServices SandBoxManager = new LocalBackEndServices(); public CommunicationsLocal() { UserServer = null; - GridServer = SandManager; - InterRegion = SandManager; + GridServer = SandBoxManager; + InterRegion = SandBoxManager; } } } diff --git a/OpenSim/OpenSim.Region/Scenes/Scene.cs b/OpenSim/OpenSim.Region/Scenes/Scene.cs index ca9a112934..5744f1f687 100644 --- a/OpenSim/OpenSim.Region/Scenes/Scene.cs +++ b/OpenSim/OpenSim.Region/Scenes/Scene.cs @@ -415,10 +415,31 @@ namespace OpenSim.Region.Scenes float[] map = this.localStorage.LoadWorld(); if (map == null) { - Console.WriteLine("creating new terrain"); - this.Terrain.hills(); + // Console.WriteLine("creating new terrain"); + // this.Terrain.hills(); // this.localStorage.SaveMap(this.Terrain.getHeights1D()); + if (string.IsNullOrEmpty(this.m_regInfo.estateSettings.terrainFile)) + { + Console.WriteLine("No default terrain, procedurally generating..."); + this.Terrain.hills(); + + // this.localStorage.SaveMap(this.Terrain.getHeights1D()); + } + else + { + try + { + this.Terrain.loadFromFileF32(this.m_regInfo.estateSettings.terrainFile); + this.Terrain *= this.m_regInfo.estateSettings.terrainMultiplier; + } + catch + { + Console.WriteLine("Unable to load default terrain, procedurally generating instead..."); + Terrain.hills(); + } + // this.localStorage.SaveMap(this.Terrain.getHeights1D()); + } } else { diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs index e5831a0c4a..fc4ca241ea 100644 --- a/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs +++ b/OpenSim/OpenSim.Terrain.BasicTerrain/TerrainEngine.cs @@ -536,7 +536,7 @@ namespace OpenSim.Terrain for (int y = 0; y < copy.h; y++) { // 512 is the largest possible height before colours clamp - int colorindex = (int)(Math.Max(Math.Min(1.0, copy.get(copy.w -x, copy.h - y) / 512.0), 0.0) * pallete); + int colorindex = (int)(Math.Max(Math.Min(1.0, copy.get(copy.h - y, x) / 512.0), 0.0) * pallete); bmp.SetPixel(x, y, colours[colorindex]); } } @@ -549,6 +549,7 @@ namespace OpenSim.Terrain { Console.WriteLine("Failed generating terrain map: " + e.ToString()); } + return imageData; } } diff --git a/OpenSim/OpenSim/OpenSimMain.cs b/OpenSim/OpenSim/OpenSimMain.cs index fb8511da3e..dddcaea69d 100644 --- a/OpenSim/OpenSim/OpenSimMain.cs +++ b/OpenSim/OpenSim/OpenSimMain.cs @@ -100,12 +100,14 @@ namespace OpenSim ClientView.TerrainManager = new TerrainManager(new SecondLife()); + CommunicationsLocal sandboxCommunications = null; if (m_sandbox) { this.SetupLocalGridServers(); this.checkServer = new CheckSumServer(12036); this.checkServer.ServerListener(); - this.commsManager = new CommunicationsLocal(); + sandboxCommunications = new CommunicationsLocal(); + this.commsManager = sandboxCommunications; } else { @@ -132,7 +134,7 @@ namespace OpenSim { loginServer = new LoginServer(regionData[0].IPListenAddr, regionData[0].IPListenPort, regionData[0].RegionLocX, regionData[0].RegionLocY, false); loginServer.Startup(); - loginServer.SetSessionHandler(((CommunicationsLocal)this.commsManager).SandManager.AddNewSession); + loginServer.SetSessionHandler(sandboxCommunications.SandBoxManager.AddNewSession); //sandbox mode with loginserver not using accounts httpServer.AddXmlRPCHandler("login_to_simulator", loginServer.XmlRpcLoginMethod); } diff --git a/Prebuild/Prebuild.build b/Prebuild/Prebuild.build index c6c4660206..395fb31e54 100644 --- a/Prebuild/Prebuild.build +++ b/Prebuild/Prebuild.build @@ -12,6 +12,13 @@ + + + + + + + diff --git a/Prebuild/Prebuild.sln b/Prebuild/Prebuild.sln index 440c8bab74..449896b4ee 100644 --- a/Prebuild/Prebuild.sln +++ b/Prebuild/Prebuild.sln @@ -5,10 +5,13 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {92E80C1C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU + {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU + {92E80C1C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/bin/TerrainDatafiles/Alien/HOWTO.txt b/bin/TerrainDatafiles/Alien/HOWTO.txt new file mode 100644 index 0000000000..00a65d7a40 --- /dev/null +++ b/bin/TerrainDatafiles/Alien/HOWTO.txt @@ -0,0 +1,19 @@ +Use the "terrain load" command to import these datafiles. +They are stored as Float-32 arrays, use the F32 import type. + +These files are formatted on a scale of 0 to 1, they are designed for a range of 0..58.81 +use the 'multiply' command to multiply them by 58.81 to achieve correct height values. + +Example ------------------ +Region# : terrain load f32 c:\opensim\datafiles\output_x0_y0.r32 +Region# : terrain multiply 58.81 + + + + 0,0 - 1,0 - 2,0 + 0,1 - 1,1 - 2,1 + 0,2 - 1,2, 2,2 + + +for a 3x3 area on the grid + diff --git a/bin/TerrainDatafiles/Alien/alienworld.bmp b/bin/TerrainDatafiles/Alien/alienworld.bmp new file mode 100644 index 0000000000..0e2405eca7 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_0.bmp b/bin/TerrainDatafiles/Alien/alienworld_0_0.bmp new file mode 100644 index 0000000000..0a3afc08f1 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_0.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_0.r32 b/bin/TerrainDatafiles/Alien/alienworld_0_0.r32 new file mode 100644 index 0000000000..299dc8c8dc Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_0.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_1.bmp b/bin/TerrainDatafiles/Alien/alienworld_0_1.bmp new file mode 100644 index 0000000000..ec3b5d2ed0 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_1.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_1.r32 b/bin/TerrainDatafiles/Alien/alienworld_0_1.r32 new file mode 100644 index 0000000000..0dd41fc382 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_1.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_2.bmp b/bin/TerrainDatafiles/Alien/alienworld_0_2.bmp new file mode 100644 index 0000000000..ce341e5b9d Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_2.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_0_2.r32 b/bin/TerrainDatafiles/Alien/alienworld_0_2.r32 new file mode 100644 index 0000000000..28df00a0fb Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_0_2.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_0.bmp b/bin/TerrainDatafiles/Alien/alienworld_1_0.bmp new file mode 100644 index 0000000000..7fb3d96dca Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_0.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_0.r32 b/bin/TerrainDatafiles/Alien/alienworld_1_0.r32 new file mode 100644 index 0000000000..99d5072997 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_0.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_1.bmp b/bin/TerrainDatafiles/Alien/alienworld_1_1.bmp new file mode 100644 index 0000000000..bd5d31a8b7 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_1.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_1.r32 b/bin/TerrainDatafiles/Alien/alienworld_1_1.r32 new file mode 100644 index 0000000000..fdb3acfc9f Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_1.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_2.bmp b/bin/TerrainDatafiles/Alien/alienworld_1_2.bmp new file mode 100644 index 0000000000..a5a719d86a Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_2.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_1_2.r32 b/bin/TerrainDatafiles/Alien/alienworld_1_2.r32 new file mode 100644 index 0000000000..4e0155beab Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_1_2.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_0.bmp b/bin/TerrainDatafiles/Alien/alienworld_2_0.bmp new file mode 100644 index 0000000000..a5c6792d50 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_0.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_0.r32 b/bin/TerrainDatafiles/Alien/alienworld_2_0.r32 new file mode 100644 index 0000000000..0c12470f4b Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_0.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_1.bmp b/bin/TerrainDatafiles/Alien/alienworld_2_1.bmp new file mode 100644 index 0000000000..e1f6376d98 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_1.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_1.r32 b/bin/TerrainDatafiles/Alien/alienworld_2_1.r32 new file mode 100644 index 0000000000..96534b8295 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_1.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_2.bmp b/bin/TerrainDatafiles/Alien/alienworld_2_2.bmp new file mode 100644 index 0000000000..eabdd93ad5 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_2.bmp differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_2_2.r32 b/bin/TerrainDatafiles/Alien/alienworld_2_2.r32 new file mode 100644 index 0000000000..20724c3f4e Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_2_2.r32 differ diff --git a/bin/TerrainDatafiles/Alien/alienworld_gray.bmp b/bin/TerrainDatafiles/Alien/alienworld_gray.bmp new file mode 100644 index 0000000000..9cc3699035 Binary files /dev/null and b/bin/TerrainDatafiles/Alien/alienworld_gray.bmp differ