aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim
diff options
context:
space:
mode:
authormingchen2007-06-08 19:10:55 +0000
committermingchen2007-06-08 19:10:55 +0000
commit2239ecba188b0435d9a6d58b1c66f2b6eb591116 (patch)
treebd07f5ddd43dc11077dc445d7b50a983ed37535f /OpenSim
parent*Added EstateSettings.cs and ParcelData.cs to OpenSim.Framework.Types (diff)
downloadopensim-SC-2239ecba188b0435d9a6d58b1c66f2b6eb591116.zip
opensim-SC-2239ecba188b0435d9a6d58b1c66f2b6eb591116.tar.gz
opensim-SC-2239ecba188b0435d9a6d58b1c66f2b6eb591116.tar.bz2
opensim-SC-2239ecba188b0435d9a6d58b1c66f2b6eb591116.tar.xz
*Merged EstateManager, EstateSettings, ParcelManager,Parcel, and ParcelData classes
*Incorporated EstateSettings into the RegionInfo class *Next step is to load from db, save to db the parcel and estate settings
Diffstat (limited to '')
-rw-r--r--OpenSim.build10
-rw-r--r--OpenSim.sln231
-rw-r--r--OpenSim.suobin378368 -> 374784 bytes
-rw-r--r--OpenSim/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.csproj.user2
-rw-r--r--OpenSim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.csproj.user2
-rw-r--r--OpenSim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj.user2
-rw-r--r--OpenSim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj.user2
-rw-r--r--OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.csproj.user2
-rw-r--r--OpenSim/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.csproj.user2
-rw-r--r--OpenSim/OpenSim.RegionServer/ClientView.API.cs43
-rw-r--r--OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj32
-rw-r--r--OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj.user2
-rw-r--r--OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build45
-rw-r--r--OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj32
-rw-r--r--OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj.user2
-rw-r--r--OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build20
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs31
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.csproj.user2
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/Db4LocalStorage.cs301
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj9
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj.user2
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build5
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDParcelQuery.cs52
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDPrimQuery.cs52
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDQuery.cs25
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.csproj.user2
-rw-r--r--OpenSim/OpenSim.Storage/LocalStorageSQLite/SQLiteLocalStorage.cs44
-rw-r--r--OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj.user2
-rw-r--r--OpenSim/OpenSim.World/Avatar.Update.cs2
-rw-r--r--OpenSim/OpenSim.World/Avatar.cs16
-rw-r--r--OpenSim/OpenSim.World/Estate/EstateManager.cs296
-rw-r--r--OpenSim/OpenSim.World/OpenSim.World.csproj30
-rw-r--r--OpenSim/OpenSim.World/OpenSim.World.csproj.user2
-rw-r--r--OpenSim/OpenSim.World/ParcelManager.cs832
-rw-r--r--OpenSim/OpenSim.World/World.cs9
-rw-r--r--OpenSim/OpenSim.World/WorldBase.cs2
-rw-r--r--OpenSim/OpenSim/OpenSim.csproj.user2
-rw-r--r--OpenSim/OpenSim/OpenSim.exe.build2
-rw-r--r--OpenSim/OpenSim/OpenSimMain.cs1
39 files changed, 1746 insertions, 404 deletions
diff --git a/OpenSim.build b/OpenSim.build
index 51168a1..a600918 100644
--- a/OpenSim.build
+++ b/OpenSim.build
@@ -46,10 +46,12 @@
46 <echo message="Deleting all builds from all configurations" /> 46 <echo message="Deleting all builds from all configurations" />
47 <delete dir="${bin.dir}" failonerror="false" /> 47 <delete dir="${bin.dir}" failonerror="false" />
48 <delete dir="${obj.dir}" failonerror="false" /> 48 <delete dir="${obj.dir}" failonerror="false" />
49 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="clean" />
49 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="clean" /> 50 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="clean" />
50 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="clean" /> 51 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="clean" />
51 <nant buildfile="OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.dll.build" target="clean" /> 52 <nant buildfile="OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.dll.build" target="clean" />
52 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="clean" /> 53 <nant buildfile="Common/OpenGrid.Framework.Communications/OpenGrid.Framework.Communications.dll.build" target="clean" />
54 <nant buildfile="OpenSim/OpenSim.World/OpenSim.World.dll.build" target="clean" />
53 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="clean" /> 55 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="clean" />
54 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="clean" /> 56 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="clean" />
55 <nant buildfile="Common/OpenSim.GenericConfig/Xml/OpenSim.GenericConfig.Xml.dll.build" target="clean" /> 57 <nant buildfile="Common/OpenSim.GenericConfig/Xml/OpenSim.GenericConfig.Xml.dll.build" target="clean" />
@@ -71,6 +73,7 @@
71 <nant buildfile="Common/OpenSim.Framework/OpenSim.Framework.dll.build" target="build" /> 73 <nant buildfile="Common/OpenSim.Framework/OpenSim.Framework.dll.build" target="build" />
72 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="build" /> 74 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="build" />
73 <nant buildfile="Common/OpenSim.Servers/OpenSim.Servers.dll.build" target="build" /> 75 <nant buildfile="Common/OpenSim.Servers/OpenSim.Servers.dll.build" target="build" />
76 <nant buildfile="Common/OpenGrid.Framework.Communications/OpenGrid.Framework.Communications.dll.build" target="build" />
74 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build" target="build" /> 77 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build" target="build" />
75 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.dll.build" target="build" /> 78 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.dll.build" target="build" />
76 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="build" /> 79 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="build" />
@@ -84,6 +87,7 @@
84 <nant buildfile="OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build" target="build" /> 87 <nant buildfile="OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build" target="build" />
85 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="build" /> 88 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="build" />
86 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="build" /> 89 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="build" />
90 <nant buildfile="OpenSim/OpenSim.World/OpenSim.World.dll.build" target="build" />
87 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="build" /> 91 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="build" />
88 </target> 92 </target>
89 93
@@ -95,10 +99,12 @@
95 99
96 <target name="doc" depends="build-release"> 100 <target name="doc" depends="build-release">
97 <echo message="Generating all documentation from all builds" /> 101 <echo message="Generating all documentation from all builds" />
102 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="doc" />
98 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="doc" /> 103 <nant buildfile="OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.dll.build" target="doc" />
99 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="doc" /> 104 <nant buildfile="OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.dll.build" target="doc" />
100 <nant buildfile="OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.dll.build" target="doc" /> 105 <nant buildfile="OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.dll.build" target="doc" />
101 <nant buildfile="Common/OpenSim.Framework.Console/OpenSim.Framework.Console.dll.build" target="doc" /> 106 <nant buildfile="Common/OpenGrid.Framework.Communications/OpenGrid.Framework.Communications.dll.build" target="doc" />
107 <nant buildfile="OpenSim/OpenSim.World/OpenSim.World.dll.build" target="doc" />
102 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="doc" /> 108 <nant buildfile="OpenSim/OpenSim/OpenSim.exe.build" target="doc" />
103 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="doc" /> 109 <nant buildfile="OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build" target="doc" />
104 <nant buildfile="Common/OpenSim.GenericConfig/Xml/OpenSim.GenericConfig.Xml.dll.build" target="doc" /> 110 <nant buildfile="Common/OpenSim.GenericConfig/Xml/OpenSim.GenericConfig.Xml.dll.build" target="doc" />
diff --git a/OpenSim.sln b/OpenSim.sln
index d2036f0..33a7217 100644
--- a/OpenSim.sln
+++ b/OpenSim.sln
@@ -1,5 +1,5 @@
1Microsoft Visual Studio Solution File, Format Version 9.00 1Microsoft Visual Studio Solution File, Format Version 9.00
2# Visual C# Express 2005 2# Visual Studio 2005
3Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Framework.Console", "Common\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj", "{A7CD0630-0000-0000-0000-000000000000}" 3Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Framework.Console", "Common\OpenSim.Framework.Console\OpenSim.Framework.Console.csproj", "{A7CD0630-0000-0000-0000-000000000000}"
4EndProject 4EndProject
5Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Terrain.BasicTerrain", "OpenSim\OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj", "{2270B8FE-0000-0000-0000-000000000000}" 5Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenSim.Terrain.BasicTerrain", "OpenSim\OpenSim.Terrain.BasicTerrain\OpenSim.Terrain.BasicTerrain.csproj", "{2270B8FE-0000-0000-0000-000000000000}"
@@ -41,93 +41,144 @@ EndProject
41Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "Common\XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}" 41Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLRPC", "Common\XmlRpcCS\XMLRPC.csproj", "{8E81D43C-0000-0000-0000-000000000000}"
42EndProject 42EndProject
43Global 43Global
44 GlobalSection(SolutionConfigurationPlatforms) = preSolution 44 GlobalSection(SolutionConfigurationPlatforms) = preSolution
45 Debug|Any CPU = Debug|Any CPU 45 Debug|Any CPU = Debug|Any CPU
46 Release|Any CPU = Release|Any CPU 46 Release|Any CPU = Release|Any CPU
47 EndGlobalSection 47 EndGlobalSection
48 GlobalSection(ProjectConfigurationPlatforms) = postSolution 48 GlobalSection(ProjectDependencies) = postSolution
49 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 49 ({EE9E5D96-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
50 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 50 ({EE9E5D96-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
51 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 51 ({63A05FE9-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
52 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 52 ({683344D5-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
53 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 53 ({642A14A8-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
54 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 54 ({642A14A8-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
55 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 55 ({642A14A8-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
56 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 56 ({642A14A8-0000-0000-0000-000000000000}).8 = ({E88EF749-0000-0000-0000-000000000000})
57 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 57 ({642A14A8-0000-0000-0000-000000000000}).9 = ({8BE16150-0000-0000-0000-000000000000})
58 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 58 ({642A14A8-0000-0000-0000-000000000000}).10 = ({8BB20F0A-0000-0000-0000-000000000000})
59 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 59 ({642A14A8-0000-0000-0000-000000000000}).11 = ({8E81D43C-0000-0000-0000-000000000000})
60 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 60 ({642A14A8-0000-0000-0000-000000000000}).12 = ({683344D5-0000-0000-0000-000000000000})
61 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 61 ({438A9556-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
62 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 62 ({438A9556-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
63 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 63 ({438A9556-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
64 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 64 ({438A9556-0000-0000-0000-000000000000}).8 = ({8BE16150-0000-0000-0000-000000000000})
65 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 65 ({438A9556-0000-0000-0000-000000000000}).9 = ({8BB20F0A-0000-0000-0000-000000000000})
66 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 66 ({438A9556-0000-0000-0000-000000000000}).10 = ({642A14A8-0000-0000-0000-000000000000})
67 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 67 ({438A9556-0000-0000-0000-000000000000}).11 = ({632E1BFD-0000-0000-0000-000000000000})
68 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 68 ({438A9556-0000-0000-0000-000000000000}).12 = ({E88EF749-0000-0000-0000-000000000000})
69 {642A14A8-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 69 ({438A9556-0000-0000-0000-000000000000}).13 = ({683344D5-0000-0000-0000-000000000000})
70 {642A14A8-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 70 ({438A9556-0000-0000-0000-000000000000}).14 = ({8E81D43C-0000-0000-0000-000000000000})
71 {642A14A8-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 71 ({632E1BFD-0000-0000-0000-000000000000}).5 = ({2270B8FE-0000-0000-0000-000000000000})
72 {642A14A8-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 72 ({632E1BFD-0000-0000-0000-000000000000}).6 = ({8ACA2445-0000-0000-0000-000000000000})
73 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 73 ({632E1BFD-0000-0000-0000-000000000000}).7 = ({A7CD0630-0000-0000-0000-000000000000})
74 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 74 ({632E1BFD-0000-0000-0000-000000000000}).8 = ({E88EF749-0000-0000-0000-000000000000})
75 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 75 ({632E1BFD-0000-0000-0000-000000000000}).9 = ({8BE16150-0000-0000-0000-000000000000})
76 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 76 ({632E1BFD-0000-0000-0000-000000000000}).10 = ({8BB20F0A-0000-0000-0000-000000000000})
77 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 77 ({632E1BFD-0000-0000-0000-000000000000}).11 = ({8E81D43C-0000-0000-0000-000000000000})
78 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 78 ({E88EF749-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
79 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 79 ({8BE16150-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
80 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 80 ({8BE16150-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
81 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 81 ({4F874463-0000-0000-0000-000000000000}).2 = ({8BE16150-0000-0000-0000-000000000000})
82 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 82 ({988F0AC4-0000-0000-0000-000000000000}).3 = ({8BE16150-0000-0000-0000-000000000000})
83 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 83 ({B55C0B5D-0000-0000-0000-000000000000}).3 = ({8ACA2445-0000-0000-0000-000000000000})
84 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 84 ({B55C0B5D-0000-0000-0000-000000000000}).4 = ({A7CD0630-0000-0000-0000-000000000000})
85 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 85 ({B55C0B5D-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000})
86 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 86 ({8ACA2445-0000-0000-0000-000000000000}).4 = ({8E81D43C-0000-0000-0000-000000000000})
87 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 87 ({8ACA2445-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
88 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 88 ({8BB20F0A-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
89 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 89 ({8BB20F0A-0000-0000-0000-000000000000}).3 = ({A7CD0630-0000-0000-0000-000000000000})
90 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 90 ({8BB20F0A-0000-0000-0000-000000000000}).5 = ({8E81D43C-0000-0000-0000-000000000000})
91 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 91 ({E1B79ECF-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
92 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 92 ({E1B79ECF-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
93 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 93 ({6B20B603-0000-0000-0000-000000000000}).5 = ({8ACA2445-0000-0000-0000-000000000000})
94 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 94 ({6B20B603-0000-0000-0000-000000000000}).6 = ({A7CD0630-0000-0000-0000-000000000000})
95 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 95 ({97A82740-0000-0000-0000-000000000000}).2 = ({8ACA2445-0000-0000-0000-000000000000})
96 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 96 ({546099CD-0000-0000-0000-000000000000}).4 = ({8ACA2445-0000-0000-0000-000000000000})
97 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 97 ({546099CD-0000-0000-0000-000000000000}).5 = ({A7CD0630-0000-0000-0000-000000000000})
98 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 98 EndGlobalSection
99 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 99 GlobalSection(ProjectConfigurationPlatforms) = postSolution
100 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 100 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
101 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 101 {A7CD0630-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
102 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 102 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
103 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 103 {A7CD0630-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
104 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 104 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
105 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 105 {2270B8FE-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
106 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 106 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
107 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 107 {2270B8FE-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
108 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 108 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
109 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 109 {EE9E5D96-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
110 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 110 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
111 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 111 {EE9E5D96-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
112 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 112 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
113 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 113 {63A05FE9-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
114 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 114 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
115 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 115 {63A05FE9-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
116 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 116 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
117 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 117 {683344D5-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
118 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 118 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
119 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 119 {683344D5-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
120 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 120 {642A14A8-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
121 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 121 {642A14A8-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
122 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 122 {642A14A8-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
123 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 123 {642A14A8-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
124 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 124 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
125 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 125 {438A9556-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
126 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU 126 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
127 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU 127 {438A9556-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
128 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU 128 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
129 EndGlobalSection 129 {632E1BFD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
130 GlobalSection(SolutionProperties) = preSolution 130 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
131 HideSolutionNode = FALSE 131 {632E1BFD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
132 EndGlobalSection 132 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
133 {E88EF749-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
134 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
135 {E88EF749-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
136 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
137 {8BE16150-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
138 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
139 {8BE16150-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
140 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
141 {4F874463-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
142 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
143 {4F874463-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
144 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
145 {988F0AC4-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
146 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
147 {988F0AC4-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
148 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
149 {B55C0B5D-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
150 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
151 {B55C0B5D-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
152 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
153 {8ACA2445-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
154 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
155 {8ACA2445-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
156 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
157 {8BB20F0A-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
158 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
159 {8BB20F0A-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
160 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
161 {E1B79ECF-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
162 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
163 {E1B79ECF-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
164 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
165 {6B20B603-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
166 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
167 {6B20B603-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
168 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
169 {97A82740-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
170 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
171 {97A82740-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
172 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
173 {546099CD-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
174 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
175 {546099CD-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
176 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
177 {8E81D43C-0000-0000-0000-000000000000}.Debug|Any CPU.Build.0 = Debug|Any CPU
178 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.ActiveCfg = Release|Any CPU
179 {8E81D43C-0000-0000-0000-000000000000}.Release|Any CPU.Build.0 = Release|Any CPU
180 EndGlobalSection
181 GlobalSection(SolutionProperties) = preSolution
182 HideSolutionNode = FALSE
183 EndGlobalSection
133EndGlobal 184EndGlobal
diff --git a/OpenSim.suo b/OpenSim.suo
index 9f36e20..8f2c6c9 100644
--- a/OpenSim.suo
+++ b/OpenSim.suo
Binary files differ
diff --git a/OpenSim/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.csproj.user b/OpenSim/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.csproj.user
+++ b/OpenSim/OpenSim.GridInterfaces/Local/OpenSim.GridInterfaces.Local.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.csproj.user b/OpenSim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.csproj.user
+++ b/OpenSim/OpenSim.GridInterfaces/Remote/OpenSim.GridInterfaces.Remote.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj.user b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj.user
+++ b/OpenSim/OpenSim.Physics/BasicPhysicsPlugin/OpenSim.Physics.BasicPhysicsPlugin.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj.user b/OpenSim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj.user
+++ b/OpenSim/OpenSim.Physics/Manager/OpenSim.Physics.Manager.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.csproj.user b/OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.csproj.user
+++ b/OpenSim/OpenSim.Physics/OdePlugin/OpenSim.Physics.OdePlugin.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.csproj.user b/OpenSim/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.csproj.user
+++ b/OpenSim/OpenSim.Physics/PhysXPlugin/OpenSim.Physics.PhysXPlugin.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.RegionServer/ClientView.API.cs b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
index 89c1f61..dd9adac 100644
--- a/OpenSim/OpenSim.RegionServer/ClientView.API.cs
+++ b/OpenSim/OpenSim.RegionServer/ClientView.API.cs
@@ -235,49 +235,6 @@ namespace OpenSim
235 } 235 }
236 } 236 }
237 237
238 /// <summary>
239 ///
240 /// </summary>
241 /// <param name="regionInfo"></param>
242 public void SendRegionHandshake(RegionInfo regionInfo)
243 {
244 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionHandshake() - Creating empty RegionHandshake packet");
245 System.Text.Encoding _enc = System.Text.Encoding.ASCII;
246 RegionHandshakePacket handshake = new RegionHandshakePacket();
247
248 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.VERBOSE, "Avatar.cs:SendRegionhandshake() - Filling in RegionHandshake details");
249 handshake.RegionInfo.BillableFactor = 0;
250 handshake.RegionInfo.IsEstateManager = false;
251 handshake.RegionInfo.TerrainHeightRange00 = regionInfo.TerrainHeightRange00;
252 handshake.RegionInfo.TerrainHeightRange01 = regionInfo.TerrainHeightRange01;
253 handshake.RegionInfo.TerrainHeightRange10 = regionInfo.TerrainHeightRange10;
254 handshake.RegionInfo.TerrainHeightRange11 = regionInfo.TerrainHeightRange11;
255 handshake.RegionInfo.TerrainStartHeight00 = regionInfo.TerrainStartHeight00;
256 handshake.RegionInfo.TerrainStartHeight01 = regionInfo.TerrainStartHeight01;
257 handshake.RegionInfo.TerrainStartHeight10 = regionInfo.TerrainStartHeight10;
258 handshake.RegionInfo.TerrainStartHeight11 = regionInfo.TerrainStartHeight11;
259 handshake.RegionInfo.SimAccess = 13;
260 handshake.RegionInfo.WaterHeight = regionInfo.RegionWaterHeight;
261 uint regionFlags = 72458694;
262 if (regionInfo.RegionTerraform)
263 {
264 regionFlags -= 64;
265 }
266 handshake.RegionInfo.RegionFlags = regionFlags;
267 handshake.RegionInfo.SimName = _enc.GetBytes(regionInfo.RegionName + "\0");
268 handshake.RegionInfo.SimOwner = new LLUUID("00000000-0000-0000-0000-000000000000");
269 handshake.RegionInfo.TerrainBase0 = regionInfo.TerrainBase0;
270 handshake.RegionInfo.TerrainBase1 = regionInfo.TerrainBase1;
271 handshake.RegionInfo.TerrainBase2 = regionInfo.TerrainBase2;
272 handshake.RegionInfo.TerrainBase3 = regionInfo.TerrainBase3;
273 handshake.RegionInfo.TerrainDetail0 = regionInfo.TerrainDetail0;
274 handshake.RegionInfo.TerrainDetail1 = regionInfo.TerrainDetail1;
275 handshake.RegionInfo.TerrainDetail2 = regionInfo.TerrainDetail2;
276 handshake.RegionInfo.TerrainDetail3 = regionInfo.TerrainDetail3;
277 handshake.RegionInfo.CacheID = new LLUUID("545ec0a5-5751-1026-8a0b-216e38a7ab37");
278
279 OutPacket(handshake);
280 }
281 238
282 /// <summary> 239 /// <summary>
283 /// 240 ///
diff --git a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
index 990b5c3..fa91d7d 100644
--- a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
+++ b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj
@@ -124,7 +124,10 @@
124 </ProjectReference> 124 </ProjectReference>
125 </ItemGroup> 125 </ItemGroup>
126 <ItemGroup> 126 <ItemGroup>
127 <Compile Include="AgentAssetUpload.cs"> 127 <Compile Include="NetworkServersInfo.cs">
128 <SubType>Code</SubType>
129 </Compile>
130 <Compile Include="UDPServer.cs">
128 <SubType>Code</SubType> 131 <SubType>Code</SubType>
129 </Compile> 132 </Compile>
130 <Compile Include="AuthenticateSessionsLocal.cs"> 133 <Compile Include="AuthenticateSessionsLocal.cs">
@@ -133,10 +136,10 @@
133 <Compile Include="AuthenticateSessionsRemote.cs"> 136 <Compile Include="AuthenticateSessionsRemote.cs">
134 <SubType>Code</SubType> 137 <SubType>Code</SubType>
135 </Compile> 138 </Compile>
136 <Compile Include="ClientView.API.cs"> 139 <Compile Include="OpenSimNetworkHandler.cs">
137 <SubType>Code</SubType> 140 <SubType>Code</SubType>
138 </Compile> 141 </Compile>
139 <Compile Include="ClientView.cs"> 142 <Compile Include="UserConfigUtility.cs">
140 <SubType>Code</SubType> 143 <SubType>Code</SubType>
141 </Compile> 144 </Compile>
142 <Compile Include="ClientView.Grid.cs"> 145 <Compile Include="ClientView.Grid.cs">
@@ -148,40 +151,37 @@
148 <Compile Include="ClientView.ProcessPackets.cs"> 151 <Compile Include="ClientView.ProcessPackets.cs">
149 <SubType>Code</SubType> 152 <SubType>Code</SubType>
150 </Compile> 153 </Compile>
151 <Compile Include="ClientViewBase.cs"> 154 <Compile Include="VersionInfo.cs">
152 <SubType>Code</SubType>
153 </Compile>
154 <Compile Include="CommsManager.cs">
155 <SubType>Code</SubType> 155 <SubType>Code</SubType>
156 </Compile> 156 </Compile>
157 <Compile Include="NetworkServersInfo.cs"> 157 <Compile Include="AgentAssetUpload.cs">
158 <SubType>Code</SubType> 158 <SubType>Code</SubType>
159 </Compile> 159 </Compile>
160 <Compile Include="OpenSimNetworkHandler.cs"> 160 <Compile Include="ClientViewBase.cs">
161 <SubType>Code</SubType> 161 <SubType>Code</SubType>
162 </Compile> 162 </Compile>
163 <Compile Include="PacketServer.cs"> 163 <Compile Include="RegionServerBase.cs">
164 <SubType>Code</SubType> 164 <SubType>Code</SubType>
165 </Compile> 165 </Compile>
166 <Compile Include="RegionServerBase.cs"> 166 <Compile Include="CommsManager.cs">
167 <SubType>Code</SubType> 167 <SubType>Code</SubType>
168 </Compile> 168 </Compile>
169 <Compile Include="UDPServer.cs"> 169 <Compile Include="ClientView.cs">
170 <SubType>Code</SubType> 170 <SubType>Code</SubType>
171 </Compile> 171 </Compile>
172 <Compile Include="UserConfigUtility.cs"> 172 <Compile Include="PacketServer.cs">
173 <SubType>Code</SubType> 173 <SubType>Code</SubType>
174 </Compile> 174 </Compile>
175 <Compile Include="VersionInfo.cs"> 175 <Compile Include="ClientView.API.cs">
176 <SubType>Code</SubType> 176 <SubType>Code</SubType>
177 </Compile> 177 </Compile>
178 <Compile Include="Assets\AssetCache.cs"> 178 <Compile Include="CAPS\AdminWebFront.cs">
179 <SubType>Code</SubType> 179 <SubType>Code</SubType>
180 </Compile> 180 </Compile>
181 <Compile Include="Assets\InventoryCache.cs"> 181 <Compile Include="Assets\InventoryCache.cs">
182 <SubType>Code</SubType> 182 <SubType>Code</SubType>
183 </Compile> 183 </Compile>
184 <Compile Include="CAPS\AdminWebFront.cs"> 184 <Compile Include="Assets\AssetCache.cs">
185 <SubType>Code</SubType> 185 <SubType>Code</SubType>
186 </Compile> 186 </Compile>
187 </ItemGroup> 187 </ItemGroup>
diff --git a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj.user b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj.user
+++ b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
index c984f5a..fc33eb9 100644
--- a/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
+++ b/OpenSim/OpenSim.RegionServer/OpenSim.RegionServer.dll.build
@@ -11,47 +11,26 @@
11 <resources prefix="OpenSim.RegionServer" dynamicprefix="true" > 11 <resources prefix="OpenSim.RegionServer" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="AgentAssetUpload.cs" /> 14 <include name="NetworkServersInfo.cs" />
15 <include name="AuthenticateSessionsBase.cs" /> 15 <include name="UDPServer.cs" />
16 <include name="AuthenticateSessionsLocal.cs" /> 16 <include name="AuthenticateSessionsLocal.cs" />
17 <include name="AuthenticateSessionsRemote.cs" /> 17 <include name="AuthenticateSessionsRemote.cs" />
18 <include name="ClientView.cs" /> 18 <include name="OpenSimNetworkHandler.cs" />
19 <include name="UserConfigUtility.cs" />
19 <include name="ClientView.Grid.cs" /> 20 <include name="ClientView.Grid.cs" />
20 <include name="ClientView.PacketHandlers.cs" /> 21 <include name="ClientView.PacketHandlers.cs" />
21 <include name="ClientView.ProcessPackets.cs" /> 22 <include name="ClientView.ProcessPackets.cs" />
23 <include name="VersionInfo.cs" />
24 <include name="AgentAssetUpload.cs" />
22 <include name="ClientViewBase.cs" /> 25 <include name="ClientViewBase.cs" />
23 <include name="Grid.cs" />
24 <include name="OpenSimMain.cs" />
25 <include name="OpenSimNetworkHandler.cs" />
26 <include name="PacketServer.cs" />
27 <include name="RegionInfo.cs" />
28 <include name="RegionInfoBase.cs" />
29 <include name="RegionServerBase.cs" /> 26 <include name="RegionServerBase.cs" />
30 <include name="UDPServer.cs" /> 27 <include name="CommsManager.cs" />
31 <include name="VersionInfo.cs" /> 28 <include name="ClientView.cs" />
32 <include name="Assets/AssetCache.cs" /> 29 <include name="PacketServer.cs" />
33 <include name="Assets/InventoryCache.cs" /> 30 <include name="ClientView.API.cs" />
34 <include name="CAPS/AdminWebFront.cs" /> 31 <include name="CAPS/AdminWebFront.cs" />
35 <include name="types/Mesh.cs" /> 32 <include name="Assets/InventoryCache.cs" />
36 <include name="types/Triangle.cs" /> 33 <include name="Assets/AssetCache.cs" />
37 <include name="world/Avatar.Client.cs" />
38 <include name="world/Avatar.cs" />
39 <include name="world/Avatar.Update.cs" />
40 <include name="world/AvatarAnimations.cs" />
41 <include name="world/Entity.cs" />
42 <include name="world/Primitive.cs" />
43 <include name="world/Primitive2.cs" />
44 <include name="world/SceneObject.cs" />
45 <include name="world/World.cs" />
46 <include name="world/World.PacketHandlers.cs" />
47 <include name="world/World.Scripting.cs" />
48 <include name="world/WorldBase.cs" />
49 <include name="world/scripting/IScriptContext.cs" />
50 <include name="world/scripting/IScriptEntity.cs" />
51 <include name="world/scripting/IScriptHandler.cs" />
52 <include name="world/scripting/Script.cs" />
53 <include name="world/scripting/ScriptFactory.cs" />
54 <include name="world/scripting/Scripts/FollowRandomAvatar.cs" />
55 </sources> 34 </sources>
56 <references basedir="${project::get-base-directory()}"> 35 <references basedir="${project::get-base-directory()}">
57 <lib> 36 <lib>
diff --git a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj
index bd1a332..6ffcf9e 100644
--- a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj
+++ b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj
@@ -76,66 +76,66 @@
76 </ProjectReference> 76 </ProjectReference>
77 </ItemGroup> 77 </ItemGroup>
78 <ItemGroup> 78 <ItemGroup>
79 <Compile Include="ClassInstance.cs"> 79 <Compile Include="MainMemory.cs">
80 <SubType>Code</SubType>
81 </Compile>
82 <Compile Include="ClassRecord.cs">
83 <SubType>Code</SubType> 80 <SubType>Code</SubType>
84 </Compile> 81 </Compile>
85 <Compile Include="Heap.cs"> 82 <Compile Include="Heap.cs">
86 <SubType>Code</SubType> 83 <SubType>Code</SubType>
87 </Compile> 84 </Compile>
88 <Compile Include="Interpreter.cs"> 85 <Compile Include="StackFrame.cs">
89 <SubType>Code</SubType> 86 <SubType>Code</SubType>
90 </Compile> 87 </Compile>
91 <Compile Include="InterpreterLogic.cs"> 88 <Compile Include="InterpreterLogic.cs">
92 <SubType>Code</SubType> 89 <SubType>Code</SubType>
93 </Compile> 90 </Compile>
94 <Compile Include="InterpreterMethods.cs"> 91 <Compile Include="OpenSimJVM.cs">
95 <SubType>Code</SubType> 92 <SubType>Code</SubType>
96 </Compile> 93 </Compile>
97 <Compile Include="InterpreterReturn.cs"> 94 <Compile Include="InterpreterMethods.cs">
98 <SubType>Code</SubType> 95 <SubType>Code</SubType>
99 </Compile> 96 </Compile>
100 <Compile Include="MainMemory.cs"> 97 <Compile Include="ClassInstance.cs">
101 <SubType>Code</SubType> 98 <SubType>Code</SubType>
102 </Compile> 99 </Compile>
103 <Compile Include="MethodMemory.cs"> 100 <Compile Include="InterpreterReturn.cs">
104 <SubType>Code</SubType> 101 <SubType>Code</SubType>
105 </Compile> 102 </Compile>
106 <Compile Include="Object.cs"> 103 <Compile Include="Interpreter.cs">
107 <SubType>Code</SubType> 104 <SubType>Code</SubType>
108 </Compile> 105 </Compile>
109 <Compile Include="OpenSimJVM.cs"> 106 <Compile Include="ClassRecord.cs">
110 <SubType>Code</SubType> 107 <SubType>Code</SubType>
111 </Compile> 108 </Compile>
112 <Compile Include="Stack.cs"> 109 <Compile Include="Stack.cs">
113 <SubType>Code</SubType> 110 <SubType>Code</SubType>
114 </Compile> 111 </Compile>
115 <Compile Include="StackFrame.cs"> 112 <Compile Include="Object.cs">
116 <SubType>Code</SubType> 113 <SubType>Code</SubType>
117 </Compile> 114 </Compile>
118 <Compile Include="Thread.cs"> 115 <Compile Include="Thread.cs">
119 <SubType>Code</SubType> 116 <SubType>Code</SubType>
120 </Compile> 117 </Compile>
121 <Compile Include="Properties\AssemblyInfo.cs"> 118 <Compile Include="MethodMemory.cs">
122 <SubType>Code</SubType> 119 <SubType>Code</SubType>
123 </Compile> 120 </Compile>
124 <Compile Include="Types\ArrayReference.cs"> 121 <Compile Include="Properties\AssemblyInfo.cs">
125 <SubType>Code</SubType> 122 <SubType>Code</SubType>
126 </Compile> 123 </Compile>
127 <Compile Include="Types\BaseType.cs"> 124 <Compile Include="Types\BaseType.cs">
128 <SubType>Code</SubType> 125 <SubType>Code</SubType>
129 </Compile> 126 </Compile>
130 <Compile Include="Types\ObjectReference.cs"> 127 <Compile Include="Types\ArrayReference.cs">
131 <SubType>Code</SubType> 128 <SubType>Code</SubType>
132 </Compile> 129 </Compile>
133 <Compile Include="Types\PrimitiveTypes\Byte.cs"> 130 <Compile Include="Types\ObjectReference.cs">
134 <SubType>Code</SubType> 131 <SubType>Code</SubType>
135 </Compile> 132 </Compile>
136 <Compile Include="Types\PrimitiveTypes\Char.cs"> 133 <Compile Include="Types\PrimitiveTypes\Char.cs">
137 <SubType>Code</SubType> 134 <SubType>Code</SubType>
138 </Compile> 135 </Compile>
136 <Compile Include="Types\PrimitiveTypes\Byte.cs">
137 <SubType>Code</SubType>
138 </Compile>
139 <Compile Include="Types\PrimitiveTypes\Float.cs"> 139 <Compile Include="Types\PrimitiveTypes\Float.cs">
140 <SubType>Code</SubType> 140 <SubType>Code</SubType>
141 </Compile> 141 </Compile>
diff --git a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj.user b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj.user
+++ b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build
index c5255db..ac4d564 100644
--- a/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build
+++ b/OpenSim/OpenSim.Scripting/EmbeddedJVM/OpenSim.Scripting.EmbeddedJVM.dll.build
@@ -11,26 +11,26 @@
11 <resources prefix="OpenSim.Scripting.EmbeddedJVM" dynamicprefix="true" > 11 <resources prefix="OpenSim.Scripting.EmbeddedJVM" dynamicprefix="true" >
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="ClassInstance.cs" /> 14 <include name="MainMemory.cs" />
15 <include name="ClassRecord.cs" />
16 <include name="Heap.cs" /> 15 <include name="Heap.cs" />
17 <include name="Interpreter.cs" /> 16 <include name="StackFrame.cs" />
18 <include name="InterpreterLogic.cs" /> 17 <include name="InterpreterLogic.cs" />
18 <include name="OpenSimJVM.cs" />
19 <include name="InterpreterMethods.cs" /> 19 <include name="InterpreterMethods.cs" />
20 <include name="ClassInstance.cs" />
20 <include name="InterpreterReturn.cs" /> 21 <include name="InterpreterReturn.cs" />
21 <include name="MainMemory.cs" /> 22 <include name="Interpreter.cs" />
22 <include name="MethodMemory.cs" /> 23 <include name="ClassRecord.cs" />
23 <include name="Object.cs" />
24 <include name="OpenSimJVM.cs" />
25 <include name="Stack.cs" /> 24 <include name="Stack.cs" />
26 <include name="StackFrame.cs" /> 25 <include name="Object.cs" />
27 <include name="Thread.cs" /> 26 <include name="Thread.cs" />
27 <include name="MethodMemory.cs" />
28 <include name="Properties/AssemblyInfo.cs" /> 28 <include name="Properties/AssemblyInfo.cs" />
29 <include name="Types/ArrayReference.cs" />
30 <include name="Types/BaseType.cs" /> 29 <include name="Types/BaseType.cs" />
30 <include name="Types/ArrayReference.cs" />
31 <include name="Types/ObjectReference.cs" /> 31 <include name="Types/ObjectReference.cs" />
32 <include name="Types/PrimitiveTypes/Byte.cs" />
33 <include name="Types/PrimitiveTypes/Char.cs" /> 32 <include name="Types/PrimitiveTypes/Char.cs" />
33 <include name="Types/PrimitiveTypes/Byte.cs" />
34 <include name="Types/PrimitiveTypes/Float.cs" /> 34 <include name="Types/PrimitiveTypes/Float.cs" />
35 <include name="Types/PrimitiveTypes/Int.cs" /> 35 <include name="Types/PrimitiveTypes/Int.cs" />
36 </sources> 36 </sources>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs b/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
index 30abd84..ab3c34c 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
+++ b/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/BDBLocalStorage.cs
@@ -1,5 +1,6 @@
1/* 1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/ 2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
3* 4*
4* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
@@ -8,14 +9,14 @@
8* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the 12* * Neither the name of the OpenSim Project nor the
12* 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
13* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
14* 15*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* 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
@@ -85,6 +86,28 @@ namespace OpenSim.Storage.LocalStorageBDB
85 { 86 {
86 87
87 } 88 }
89
90 public void SaveParcels(ParcelData[] parcel_data)
91 {
92 }
93
94 public void SaveParcel(ParcelData parcel)
95 {
96 }
97
98 public void RemoveParcel(ParcelData parcel)
99 {
100 }
101
102 public void RemoveAllParcels()
103 {
104 }
105
106 public void LoadParcels(ILocalStorageParcelReceiver recv)
107 {
108 recv.NoParcelDataFromStorage();
109 }
110
88 public void ShutDown() 111 public void ShutDown()
89 { 112 {
90 sim.GetDb().Close(); 113 sim.GetDb().Close();
diff --git a/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.csproj.user b/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.csproj.user
+++ b/OpenSim/OpenSim.Storage/LocalStorageBerkeleyDB/OpenSim.Storage.LocalStorageBerkeleyDB.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/Db4LocalStorage.cs b/OpenSim/OpenSim.Storage/LocalStorageDb4o/Db4LocalStorage.cs
index a50795a..93f55d6 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageDb4o/Db4LocalStorage.cs
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/Db4LocalStorage.cs
@@ -1,5 +1,6 @@
1/* 1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/ 2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
3* 4*
4* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
@@ -8,14 +9,14 @@
8* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the 12* * Neither the name of the OpenSim Project nor the
12* 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
13* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
14* 15*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* 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
@@ -28,133 +29,120 @@ using System;
28using System.Collections.Generic; 29using System.Collections.Generic;
29using Db4objects.Db4o; 30using Db4objects.Db4o;
30using Db4objects.Db4o.Query; 31using Db4objects.Db4o.Query;
32
31using libsecondlife; 33using libsecondlife;
32using OpenSim.Framework.Interfaces; 34using OpenSim.Framework.Interfaces;
33using OpenSim.Framework.Types; 35using OpenSim.Framework.Types;
36using OpenSim.Framework.Console;
34 37
35 38
36namespace OpenSim.Storage.LocalStorageDb4o 39namespace OpenSim.Storage.LocalStorageDb4o
37{ 40{
38 /// <summary> 41 /// <summary>
39 /// 42 ///
40 /// </summary> 43 /// </summary>
41 public class Db4LocalStorage : ILocalStorage 44 public class Db4LocalStorage : ILocalStorage
42 { 45 {
43 private IObjectContainer db; 46 private IObjectContainer db;
44 private string datastore; 47 private string datastore;
45 48
46 public Db4LocalStorage() 49 public Db4LocalStorage()
47 { 50 {
48 51
49 } 52 }
50 53
51 public void Initialise(string dfile) 54 public void Initialise(string dfile)
52 { 55 {
53 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"Db4LocalStorage Opening " + dfile); 56 OpenSim.Framework.Console.MainConsole.Instance.Warn("Db4LocalStorage Opening " + dfile);
54 datastore = dfile; 57 datastore = dfile;
55 try 58 try
56 { 59 {
57 db = Db4oFactory.OpenFile(datastore); 60 db = Db4oFactory.OpenFile(datastore);
58 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Db4LocalStorage creation"); 61 OpenSim.Framework.Console.MainConsole.Instance.Verbose("Db4LocalStorage creation");
59 } 62 }
60 catch (Exception e) 63 catch (Exception e)
61 { 64 {
62 db.Close(); 65 db.Close();
63 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"Db4LocalStorage :Constructor - Exception occured"); 66 OpenSim.Framework.Console.MainConsole.Instance.Warn("Db4LocalStorage :Constructor - Exception occured");
64 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,e.ToString()); 67 OpenSim.Framework.Console.MainConsole.Instance.Warn(e.ToString());
65 } 68 }
66 } 69 }
67 70
68 public void StorePrim(PrimData prim) 71 public void StorePrim(PrimData prim)
69 { 72 {
70 IObjectSet result = db.Query(new UUIDQuery(prim.FullID)); 73 IObjectSet result = db.Query(new UUIDPrimQuery(prim.FullID));
71 if(result.Count>0) 74 if (result.Count > 0)
72 { 75 {
73 //prim already in storage 76 //prim already in storage
74 //so update it 77 //so update it
75 PrimData found = (PrimData) result.Next(); 78 PrimData found = (PrimData)result.Next();
76 found.PathBegin = prim.PathBegin; 79 found.PathBegin = prim.PathBegin;
77 found.PathCurve= prim.PathCurve; 80 found.PathCurve = prim.PathCurve;
78 found.PathEnd = prim.PathEnd; 81 found.PathEnd = prim.PathEnd;
79 found.PathRadiusOffset = prim.PathRadiusOffset; 82 found.PathRadiusOffset = prim.PathRadiusOffset;
80 found.PathRevolutions = prim.PathRevolutions; 83 found.PathRevolutions = prim.PathRevolutions;
81 found.PathScaleX= prim.PathScaleX; 84 found.PathScaleX = prim.PathScaleX;
82 found.PathScaleY = prim.PathScaleY; 85 found.PathScaleY = prim.PathScaleY;
83 found.PathShearX = prim.PathShearX; 86 found.PathShearX = prim.PathShearX;
84 found.PathShearY = prim.PathShearY; 87 found.PathShearY = prim.PathShearY;
85 found.PathSkew = prim.PathSkew; 88 found.PathSkew = prim.PathSkew;
86 found.PathTaperX = prim.PathTaperX; 89 found.PathTaperX = prim.PathTaperX;
87 found.PathTaperY = prim.PathTaperY; 90 found.PathTaperY = prim.PathTaperY;
88 found.PathTwist = prim.PathTwist; 91 found.PathTwist = prim.PathTwist;
89 found.PathTwistBegin = prim.PathTwistBegin; 92 found.PathTwistBegin = prim.PathTwistBegin;
90 found.PCode = prim.PCode; 93 found.PCode = prim.PCode;
91 found.ProfileBegin = prim.ProfileBegin; 94 found.ProfileBegin = prim.ProfileBegin;
92 found.ProfileCurve = prim.ProfileCurve; 95 found.ProfileCurve = prim.ProfileCurve;
93 found.ProfileEnd = prim.ProfileEnd; 96 found.ProfileEnd = prim.ProfileEnd;
94 found.ProfileHollow = prim.ProfileHollow; 97 found.ProfileHollow = prim.ProfileHollow;
95 found.Position = prim.Position; 98 found.Position = prim.Position;
96 found.Rotation = prim.Rotation; 99 found.Rotation = prim.Rotation;
97 found.Texture = prim.Texture; 100 found.Texture = prim.Texture;
98 db.Set(found); 101 db.Set(found);
99 db.Commit(); 102 db.Commit();
100 } 103 }
101 else 104 else
102 { 105 {
103 //not in storage 106 //not in storage
104 db.Set(prim); 107 db.Set(prim);
105 db.Commit(); 108 db.Commit();
106 } 109 }
107 } 110 }
108 111
109 public void RemovePrim(LLUUID primID) 112 public void RemovePrim(LLUUID primID)
110 { 113 {
111 IObjectSet result = db.Query(new UUIDQuery(primID)); 114 IObjectSet result = db.Query(new UUIDPrimQuery(primID));
112 if(result.Count>0) 115 if (result.Count > 0)
113 { 116 {
114 PrimData found = (PrimData) result.Next(); 117 PrimData found = (PrimData)result.Next();
115 db.Delete(found); 118 db.Delete(found);
116 } 119 }
117 } 120 }
118 121
119 122
120 public void LoadPrimitives(ILocalStorageReceiver receiver) 123 public void LoadPrimitives(ILocalStorageReceiver receiver)
121 { 124 {
122 IObjectSet result = db.Get(typeof(PrimData)); 125 IObjectSet result = db.Get(typeof(PrimData));
123 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"Db4LocalStorage.cs: LoadPrimitives() - number of prims in storages is "+result.Count); 126 OpenSim.Framework.Console.MainConsole.Instance.Verbose("Db4LocalStorage.cs: LoadPrimitives() - number of prims in storages is " + result.Count);
124 foreach (PrimData prim in result) { 127 foreach (PrimData prim in result)
125 receiver.PrimFromStorage(prim); 128 {
126 } 129 receiver.PrimFromStorage(prim);
127 } 130 }
131 }
128 132
129 public float[] LoadWorld() 133 public float[] LoadWorld()
130 { 134 {
131 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"LoadWorld() - Loading world...."); 135 OpenSim.Framework.Console.MainConsole.Instance.Verbose("LoadWorld() - Loading world....");
132 //World blank = new World();
133 float[] heightmap = null; 136 float[] heightmap = null;
134 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"LoadWorld() - Looking for a heightmap in local DB"); 137 OpenSim.Framework.Console.MainConsole.Instance.Verbose("LoadWorld() - Looking for a heightmap in local DB");
135 IObjectSet world_result = db.Get(typeof(MapStorage)); 138 IObjectSet world_result = db.Get(typeof(MapStorage));
136 if (world_result.Count > 0) 139 if (world_result.Count > 0)
137 { 140 {
138 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"LoadWorld() - Found a heightmap in local database, loading"); 141 OpenSim.Framework.Console.MainConsole.Instance.Verbose("LoadWorld() - Found a heightmap in local database, loading");
139 MapStorage map = (MapStorage)world_result.Next(); 142 MapStorage map = (MapStorage)world_result.Next();
140 //blank.LandMap = map.Map; 143 //blank.LandMap = map.Map;
141 heightmap = map.Map; 144 heightmap = map.Map;
142 } 145 }
143 else
144 {
145 /*
146 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LoadWorld() - No heightmap found, generating new one");
147 HeightmapGenHills hills = new HeightmapGenHills();
148 // blank.LandMap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false);
149 // heightmap = hills.GenerateHeightmap(200, 4.0f, 80.0f, false);
150 heightmap = new float[256, 256];
151 OpenSim.Framework.Console.MainConsole.Instance.WriteLine("LoadWorld() - Saving heightmap to local database");
152 MapStorage map = new MapStorage();
153 map.Map = heightmap; //blank.LandMap;
154 db.Set(map);
155 db.Commit();
156 */
157 }
158 return heightmap; 146 return heightmap;
159 } 147 }
160 148
@@ -163,7 +151,7 @@ namespace OpenSim.Storage.LocalStorageDb4o
163 IObjectSet world_result = db.Get(typeof(MapStorage)); 151 IObjectSet world_result = db.Get(typeof(MapStorage));
164 if (world_result.Count > 0) 152 if (world_result.Count > 0)
165 { 153 {
166 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW,"SaveWorld() - updating saved copy of heightmap in local database"); 154 OpenSim.Framework.Console.MainConsole.Instance.Verbose("SaveWorld() - updating saved copy of heightmap in local database");
167 MapStorage map = (MapStorage)world_result.Next(); 155 MapStorage map = (MapStorage)world_result.Next();
168 db.Delete(map); 156 db.Delete(map);
169 } 157 }
@@ -173,10 +161,111 @@ namespace OpenSim.Storage.LocalStorageDb4o
173 db.Commit(); 161 db.Commit();
174 } 162 }
175 163
176 public void ShutDown() 164 public void SaveParcel(ParcelData parcel)
177 { 165 {
178 db.Commit(); 166 IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
179 db.Close(); 167 if (result.Count > 0)
180 } 168 {
181 } 169 //Old Parcel
182} 170 ParcelData updateParcel = (ParcelData)result.Next();
171 updateParcel.AABBMax = parcel.AABBMax;
172 updateParcel.AABBMin = parcel.AABBMin;
173 updateParcel.area = parcel.area;
174 updateParcel.auctionID = parcel.auctionID;
175 updateParcel.authBuyerID = parcel.authBuyerID;
176 updateParcel.category = parcel.category;
177 updateParcel.claimDate = parcel.claimDate;
178 updateParcel.claimPrice = parcel.claimPrice;
179 updateParcel.groupID = parcel.groupID;
180 updateParcel.groupPrims = parcel.groupPrims;
181 updateParcel.isGroupOwned = parcel.isGroupOwned;
182 updateParcel.landingType = parcel.landingType;
183 updateParcel.mediaAutoScale = parcel.mediaAutoScale;
184 updateParcel.mediaID = parcel.mediaID;
185 updateParcel.mediaURL = parcel.mediaURL;
186 updateParcel.musicURL = parcel.musicURL;
187 updateParcel.localID = parcel.localID;
188 updateParcel.ownerID = parcel.ownerID;
189 updateParcel.passHours = parcel.passHours;
190 updateParcel.passPrice = parcel.passPrice;
191 updateParcel.parcelBitmapByteArray = (byte[])parcel.parcelBitmapByteArray.Clone();
192 updateParcel.parcelDesc = parcel.parcelDesc;
193 updateParcel.parcelFlags = parcel.parcelFlags;
194 updateParcel.parcelName = parcel.parcelName;
195 updateParcel.parcelStatus = parcel.parcelStatus;
196 updateParcel.salePrice = parcel.salePrice;
197 updateParcel.snapshotID = parcel.snapshotID;
198 updateParcel.userLocation = parcel.userLocation;
199 updateParcel.userLookAt = parcel.userLookAt;
200
201 db.Set(updateParcel);
202 }
203 else
204 {
205 db.Set(parcel);
206 }
207 db.Commit();
208 }
209
210 public void SaveParcels(ParcelData[] parcel_data)
211 {
212 MainConsole.Instance.Notice("Parcel Backup: Saving Parcels...");
213 int i;
214 for (i = 0; i < parcel_data.GetLength(0); i++)
215 {
216
217 SaveParcel(parcel_data[i]);
218
219 }
220 MainConsole.Instance.Notice("Parcel Backup: Parcel Save Complete");
221 }
222
223 public void RemoveParcel(ParcelData parcel)
224 {
225 IObjectSet result = db.Query(new UUIDParcelQuery(parcel.globalID));
226 if (result.Count > 0)
227 {
228 db.Delete(result[0]);
229 }
230 db.Commit();
231 }
232 public void RemoveAllParcels()
233 {
234 MainConsole.Instance.Notice("Parcel Backup: Removing all parcels...");
235 IObjectSet result = db.Get(typeof(ParcelData));
236 if (result.Count > 0)
237 {
238 foreach (ParcelData parcelData in result)
239 {
240 RemoveParcel(parcelData);
241 }
242 }
243 }
244
245 public void LoadParcels(ILocalStorageParcelReceiver recv)
246 {
247 MainConsole.Instance.Notice("Parcel Backup: Loading Parcels...");
248 IObjectSet result = db.Get(typeof(ParcelData));
249 if (result.Count > 0)
250 {
251 MainConsole.Instance.Notice("Parcel Backup: Parcels exist in database.");
252 foreach (ParcelData parcelData in result)
253 {
254
255 recv.ParcelFromStorage(parcelData);
256 }
257 }
258 else
259 {
260 MainConsole.Instance.Notice("Parcel Backup: No parcels exist. Creating basic parcel.");
261 recv.NoParcelDataFromStorage();
262 }
263 MainConsole.Instance.Notice("Parcel Backup: Parcels Restored");
264 }
265 public void ShutDown()
266 {
267 db.Commit();
268 db.Close();
269 }
270 }
271} \ No newline at end of file
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj
index 9b4ff5d..7d90947 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj
@@ -93,13 +93,16 @@
93 <Compile Include="AssemblyInfo.cs"> 93 <Compile Include="AssemblyInfo.cs">
94 <SubType>Code</SubType> 94 <SubType>Code</SubType>
95 </Compile> 95 </Compile>
96 <Compile Include="Db4LocalStorage.cs"> 96 <Compile Include="MapStorage.cs">
97 <SubType>Code</SubType> 97 <SubType>Code</SubType>
98 </Compile> 98 </Compile>
99 <Compile Include="MapStorage.cs"> 99 <Compile Include="UUIDPrimQuery.cs">
100 <SubType>Code</SubType> 100 <SubType>Code</SubType>
101 </Compile> 101 </Compile>
102 <Compile Include="UUIDQuery.cs"> 102 <Compile Include="UUIDParcelQuery.cs">
103 <SubType>Code</SubType>
104 </Compile>
105 <Compile Include="Db4LocalStorage.cs">
103 <SubType>Code</SubType> 106 <SubType>Code</SubType>
104 </Compile> 107 </Compile>
105 </ItemGroup> 108 </ItemGroup>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj.user b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj.user
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
index da2db14..9789712 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/OpenSim.Storage.LocalStorageDb4o.dll.build
@@ -12,9 +12,10 @@
12 </resources> 12 </resources>
13 <sources failonempty="true"> 13 <sources failonempty="true">
14 <include name="AssemblyInfo.cs" /> 14 <include name="AssemblyInfo.cs" />
15 <include name="Db4LocalStorage.cs" />
16 <include name="MapStorage.cs" /> 15 <include name="MapStorage.cs" />
17 <include name="UUIDQuery.cs" /> 16 <include name="UUIDPrimQuery.cs" />
17 <include name="UUIDParcelQuery.cs" />
18 <include name="Db4LocalStorage.cs" />
18 </sources> 19 </sources>
19 <references basedir="${project::get-base-directory()}"> 20 <references basedir="${project::get-base-directory()}">
20 <lib> 21 <lib>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDParcelQuery.cs b/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDParcelQuery.cs
new file mode 100644
index 0000000..d24fb5f
--- /dev/null
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDParcelQuery.cs
@@ -0,0 +1,52 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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
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
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System;
29using System.Collections.Generic;
30using System.Text;
31using Db4objects.Db4o;
32using Db4objects.Db4o.Query;
33using libsecondlife;
34using OpenSim.Framework.Interfaces;
35using OpenSim.Framework.Types;
36
37namespace OpenSim.Storage.LocalStorageDb4o
38{
39 public class UUIDParcelQuery : Predicate
40 {
41 private LLUUID globalIDSearch;
42
43 public UUIDParcelQuery(LLUUID find)
44 {
45 globalIDSearch = find;
46 }
47 public bool Match(ParcelData parcel)
48 {
49 return (parcel.globalID == globalIDSearch);
50 }
51 }
52}
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDPrimQuery.cs b/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDPrimQuery.cs
new file mode 100644
index 0000000..b2e8a91
--- /dev/null
+++ b/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDPrimQuery.cs
@@ -0,0 +1,52 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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
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
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System;
29using System.Collections.Generic;
30using System.Text;
31using Db4objects.Db4o;
32using Db4objects.Db4o.Query;
33using libsecondlife;
34using OpenSim.Framework.Interfaces;
35using OpenSim.Framework.Types;
36
37namespace OpenSim.Storage.LocalStorageDb4o
38{
39 public class UUIDPrimQuery : Predicate
40 {
41 private LLUUID _findID;
42
43 public UUIDPrimQuery(LLUUID find)
44 {
45 _findID = find;
46 }
47 public bool Match(PrimData prim)
48 {
49 return (prim.FullID == _findID);
50 }
51 }
52}
diff --git a/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDQuery.cs b/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDQuery.cs
deleted file mode 100644
index ba9e139..0000000
--- a/OpenSim/OpenSim.Storage/LocalStorageDb4o/UUIDQuery.cs
+++ /dev/null
@@ -1,25 +0,0 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4using Db4objects.Db4o;
5using Db4objects.Db4o.Query;
6using libsecondlife;
7using OpenSim.Framework.Interfaces;
8using OpenSim.Framework.Types;
9
10namespace OpenSim.Storage.LocalStorageDb4o
11{
12 public class UUIDQuery : Predicate
13 {
14 private LLUUID _findID;
15
16 public UUIDQuery(LLUUID find)
17 {
18 _findID = find;
19 }
20 public bool Match(PrimData prim)
21 {
22 return (prim.FullID == _findID);
23 }
24 }
25}
diff --git a/OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.csproj.user b/OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.csproj.user
+++ b/OpenSim/OpenSim.Storage/LocalStorageSQLite/OpenSim.Storage.LocalStorageSQLite.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.Storage/LocalStorageSQLite/SQLiteLocalStorage.cs b/OpenSim/OpenSim.Storage/LocalStorageSQLite/SQLiteLocalStorage.cs
index 11eca0f..ee8b9ff 100644
--- a/OpenSim/OpenSim.Storage/LocalStorageSQLite/SQLiteLocalStorage.cs
+++ b/OpenSim/OpenSim.Storage/LocalStorageSQLite/SQLiteLocalStorage.cs
@@ -1,5 +1,6 @@
1/* 1/*
2* Copyright (c) OpenSim project, http://sim.opensecondlife.org/ 2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
3* 4*
4* Redistribution and use in source and binary forms, with or without 5* Redistribution and use in source and binary forms, with or without
5* modification, are permitted provided that the following conditions are met: 6* modification, are permitted provided that the following conditions are met:
@@ -8,14 +9,14 @@
8* * Redistributions in binary form must reproduce the above copyright 9* * Redistributions in binary form must reproduce the above copyright
9* notice, this list of conditions and the following disclaimer in the 10* notice, this list of conditions and the following disclaimer in the
10* documentation and/or other materials provided with the distribution. 11* documentation and/or other materials provided with the distribution.
11* * Neither the name of the <organization> nor the 12* * Neither the name of the OpenSim Project nor the
12* 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
13* derived from this software without specific prior written permission. 14* derived from this software without specific prior written permission.
14* 15*
15* THIS SOFTWARE IS PROVIDED BY <copyright holder> ``AS IS'' AND ANY 16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
16* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18* DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY 19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
19* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 21* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21* 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
@@ -36,7 +37,6 @@ using libsecondlife;
36using OpenSim.Framework.Interfaces; 37using OpenSim.Framework.Interfaces;
37using OpenSim.Framework.Types; 38using OpenSim.Framework.Types;
38 39
39
40namespace OpenSim.Storage.LocalStorageSQLite 40namespace OpenSim.Storage.LocalStorageSQLite
41{ 41{
42 public class SQLiteLocalStorage : ILocalStorage 42 public class SQLiteLocalStorage : ILocalStorage
@@ -54,8 +54,8 @@ namespace OpenSim.Storage.LocalStorageSQLite
54 catch (Exception e) 54 catch (Exception e)
55 { 55 {
56 db.Close(); 56 db.Close();
57 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"SQLiteLocalStorage :Constructor - Exception occured"); 57 OpenSim.Framework.Console.MainConsole.Instance.Warn("SQLiteLocalStorage :Constructor - Exception occured");
58 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,e.ToString()); 58 OpenSim.Framework.Console.MainConsole.Instance.Warn(e.ToString());
59 } 59 }
60 } 60 }
61 61
@@ -117,8 +117,8 @@ namespace OpenSim.Storage.LocalStorageSQLite
117 } 117 }
118 catch (Exception e) 118 catch (Exception e)
119 { 119 {
120 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"SQLiteLocalStorage :StorePrim - Exception occured"); 120 OpenSim.Framework.Console.MainConsole.Instance.Warn("SQLiteLocalStorage :StorePrim - Exception occured");
121 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,e.ToString()); 121 OpenSim.Framework.Console.MainConsole.Instance.Warn(e.ToString());
122 } 122 }
123 123
124 cmd.Dispose(); 124 cmd.Dispose();
@@ -144,8 +144,8 @@ namespace OpenSim.Storage.LocalStorageSQLite
144 } 144 }
145 catch (Exception e) 145 catch (Exception e)
146 { 146 {
147 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,"SQLiteLocalStorage :RemovePrim - Exception occured"); 147 OpenSim.Framework.Console.MainConsole.Instance.Warn("SQLiteLocalStorage :RemovePrim - Exception occured");
148 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.MEDIUM,e.ToString()); 148 OpenSim.Framework.Console.MainConsole.Instance.Warn(e.ToString());
149 } 149 }
150 150
151 cmd.Dispose(); 151 cmd.Dispose();
@@ -167,6 +167,28 @@ namespace OpenSim.Storage.LocalStorageSQLite
167 167
168 } 168 }
169 169
170 public void SaveParcels(ParcelData[] parcel_manager)
171 {
172
173 }
174
175 public void SaveParcel(ParcelData parcel)
176 {
177 }
178
179 public void RemoveParcel(ParcelData parcel)
180 {
181 }
182
183 public void RemoveAllParcels()
184 {
185 }
186
187 public void LoadParcels(ILocalStorageParcelReceiver recv)
188 {
189 recv.NoParcelDataFromStorage();
190 }
191
170 public void ShutDown() 192 public void ShutDown()
171 { 193 {
172 db.Close(); 194 db.Close();
diff --git a/OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj.user b/OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj.user
+++ b/OpenSim/OpenSim.Terrain.BasicTerrain/OpenSim.Terrain.BasicTerrain.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.World/Avatar.Update.cs b/OpenSim/OpenSim.World/Avatar.Update.cs
index 478f224..04879a6 100644
--- a/OpenSim/OpenSim.World/Avatar.Update.cs
+++ b/OpenSim/OpenSim.World/Avatar.Update.cs
@@ -43,7 +43,7 @@ namespace OpenSim.world
43 public void SendInitialPosition() 43 public void SendInitialPosition()
44 { 44 {
45 Console.WriteLine("sending initial Avatar data"); 45 Console.WriteLine("sending initial Avatar data");
46 this.ControllingClient.SendAvatarData(this.regionData, this.firstname, this.lastname, this.uuid, this.localid, new LLVector3(128, 128, 60)); 46 this.ControllingClient.SendAvatarData(this.m_world.m_regInfo, this.firstname, this.lastname, this.uuid, this.localid, new LLVector3(128, 128, 60));
47 } 47 }
48 48
49 /// <summary> 49 /// <summary>
diff --git a/OpenSim/OpenSim.World/Avatar.cs b/OpenSim/OpenSim.World/Avatar.cs
index ecd938b..368bc53 100644
--- a/OpenSim/OpenSim.World/Avatar.cs
+++ b/OpenSim/OpenSim.World/Avatar.cs
@@ -33,11 +33,7 @@ namespace OpenSim.world
33 private LLVector3 positionLastFrame = new LLVector3(0, 0, 0); 33 private LLVector3 positionLastFrame = new LLVector3(0, 0, 0);
34 private ulong m_regionHandle; 34 private ulong m_regionHandle;
35 private Dictionary<uint, IClientAPI> m_clientThreads; 35 private Dictionary<uint, IClientAPI> m_clientThreads;
36 private string m_regionName;
37 private ushort m_regionWaterHeight;
38 private bool m_regionTerraform;
39 private bool childAvatar = false; 36 private bool childAvatar = false;
40 private RegionInfo regionData;
41 37
42 /// <summary> 38 /// <summary>
43 /// 39 ///
@@ -46,17 +42,13 @@ namespace OpenSim.world
46 /// <param name="world"></param> 42 /// <param name="world"></param>
47 /// <param name="clientThreads"></param> 43 /// <param name="clientThreads"></param>
48 /// <param name="regionDat"></param> 44 /// <param name="regionDat"></param>
49 public Avatar(IClientAPI theClient, World world, Dictionary<uint, IClientAPI> clientThreads, RegionInfo regionDat) 45 public Avatar(IClientAPI theClient, World world, Dictionary<uint, IClientAPI> clientThreads)
50 { 46 {
51 47
52 m_world = world; 48 m_world = world;
53 m_clientThreads = clientThreads; 49 m_clientThreads = clientThreads;
54 regionData = regionDat;
55 this.uuid = theClient.AgentId; 50 this.uuid = theClient.AgentId;
56 m_regionName = regionData.RegionName; 51
57 m_regionHandle = regionData.RegionHandle;
58 m_regionTerraform = regionData.RegionTerraform;
59 m_regionWaterHeight = regionData.RegionWaterHeight;
60 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)"); 52 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "Avatar.cs - Loading details from grid (DUMMY)");
61 ControllingClient = theClient; 53 ControllingClient = theClient;
62 this.firstname = ControllingClient.FirstName; 54 this.firstname = ControllingClient.FirstName;
@@ -148,7 +140,7 @@ namespace OpenSim.world
148 /// </summary> 140 /// </summary>
149 public void CompleteMovement() 141 public void CompleteMovement()
150 { 142 {
151 this.ControllingClient.MoveAgentIntoRegion(this.regionData); 143 this.ControllingClient.MoveAgentIntoRegion(this.m_world.m_regInfo);
152 } 144 }
153 145
154 /// <summary> 146 /// <summary>
@@ -174,7 +166,7 @@ namespace OpenSim.world
174 /// </summary> 166 /// </summary>
175 public void SendRegionHandshake() 167 public void SendRegionHandshake()
176 { 168 {
177 this.ControllingClient.SendRegionHandshake(this.regionData); 169 this.m_world.estateManager.sendRegionHandshake(this.ControllingClient);
178 } 170 }
179 171
180 /// <summary> 172 /// <summary>
diff --git a/OpenSim/OpenSim.World/Estate/EstateManager.cs b/OpenSim/OpenSim.World/Estate/EstateManager.cs
new file mode 100644
index 0000000..37abc6d
--- /dev/null
+++ b/OpenSim/OpenSim.World/Estate/EstateManager.cs
@@ -0,0 +1,296 @@
1using System;
2using System.Collections.Generic;
3using System.Text;
4
5using OpenSim.Framework.Types;
6using OpenSim.Framework.Interfaces;
7using OpenSim.world;
8using OpenSim;
9
10using libsecondlife;
11using libsecondlife.Packets;
12
13namespace OpenSim.world.Estate
14{
15
16 /// <summary>
17 /// Processes requests regarding estates. Refer to EstateSettings.cs in OpenSim.Framework. Types for all of the core settings
18 /// </summary>
19 public class EstateManager
20 {
21 private World m_world;
22
23 public EstateManager(World world)
24 {
25 m_world = world; //Estate settings found at world.m_regInfo.estateSettings
26 }
27
28 private bool convertParamStringToBool(byte[] field)
29 {
30 string s = Helpers.FieldToUTF8String(field);
31 if (s == "1" || s.ToLower() == "y" || s.ToLower() == "yes" || s.ToLower() == "t" || s.ToLower() == "true")
32 {
33 return true;
34 }
35 return false;
36 }
37
38 public void handleEstateOwnerMessage(EstateOwnerMessagePacket packet, IClientAPI remote_client)
39 {
40 if (remote_client.AgentId == m_world.m_regInfo.MasterAvatarAssignedUUID)
41 {
42 switch (Helpers.FieldToUTF8String(packet.MethodData.Method))
43 {
44 case "getinfo":
45 Console.WriteLine("GETINFO Requested");
46 this.sendRegionInfoPacketToAll();
47
48 break;
49 case "setregioninfo":
50 if (packet.ParamList.Length != 9)
51 {
52 OpenSim.Framework.Console.MainConsole.Instance.Error("EstateOwnerMessage: SetRegionInfo method has a ParamList of invalid length");
53 }
54 else
55 {
56 m_world.m_regInfo.estateSettings.regionFlags = libsecondlife.Simulator.RegionFlags.None;
57
58 if (convertParamStringToBool(packet.ParamList[0].Parameter))
59 {
60 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.BlockTerraform;
61 }
62
63 if (convertParamStringToBool(packet.ParamList[1].Parameter))
64 {
65 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.NoFly;
66 }
67
68 if (convertParamStringToBool(packet.ParamList[2].Parameter))
69 {
70 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.AllowDamage;
71 }
72
73 if (convertParamStringToBool(packet.ParamList[3].Parameter) == false)
74 {
75 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.BlockLandResell;
76 }
77
78
79 int tempMaxAgents = Convert.ToInt16(Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[4].Parameter)));
80 m_world.m_regInfo.estateSettings.maxAgents = (byte)tempMaxAgents;
81
82 float tempObjectBonusFactor = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[5].Parameter));
83 m_world.m_regInfo.estateSettings.objectBonusFactor = tempObjectBonusFactor;
84
85 int tempMatureLevel = Convert.ToInt16(Helpers.FieldToUTF8String(packet.ParamList[6].Parameter));
86 m_world.m_regInfo.estateSettings.simAccess = (libsecondlife.Simulator.SimAccess)tempMatureLevel;
87
88
89 if (convertParamStringToBool(packet.ParamList[7].Parameter))
90 {
91 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.RestrictPushObject;
92 }
93
94 if (convertParamStringToBool(packet.ParamList[8].Parameter))
95 {
96 m_world.m_regInfo.estateSettings.regionFlags = m_world.m_regInfo.estateSettings.regionFlags | libsecondlife.Simulator.RegionFlags.AllowParcelChanges;
97 }
98
99 sendRegionInfoPacketToAll();
100
101 }
102 break;
103 case "texturebase":
104 foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList)
105 {
106 string s = Helpers.FieldToUTF8String(block.Parameter);
107 string[] splitField = s.Split(' ');
108 if (splitField.Length == 2)
109 {
110 LLUUID tempUUID = new LLUUID(splitField[1]);
111 switch (Convert.ToInt16(splitField[0]))
112 {
113 case 0:
114 m_world.m_regInfo.estateSettings.terrainBase0 = tempUUID;
115 break;
116 case 1:
117 m_world.m_regInfo.estateSettings.terrainBase1 = tempUUID;
118 break;
119 case 2:
120 m_world.m_regInfo.estateSettings.terrainBase2 = tempUUID;
121 break;
122 case 3:
123 m_world.m_regInfo.estateSettings.terrainBase3 = tempUUID;
124 break;
125 }
126 }
127 }
128 break;
129 case "texturedetail":
130 foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList)
131 {
132
133 string s = Helpers.FieldToUTF8String(block.Parameter);
134 string[] splitField = s.Split(' ');
135 if (splitField.Length == 2)
136 {
137 LLUUID tempUUID = new LLUUID(splitField[1]);
138 switch (Convert.ToInt16(splitField[0]))
139 {
140 case 0:
141 m_world.m_regInfo.estateSettings.terrainDetail0 = tempUUID;
142 break;
143 case 1:
144 m_world.m_regInfo.estateSettings.terrainDetail1 = tempUUID;
145 break;
146 case 2:
147 m_world.m_regInfo.estateSettings.terrainDetail2 = tempUUID;
148 break;
149 case 3:
150 m_world.m_regInfo.estateSettings.terrainDetail3 = tempUUID;
151 break;
152 }
153 }
154 }
155 break;
156 case "textureheights":
157 foreach (EstateOwnerMessagePacket.ParamListBlock block in packet.ParamList)
158 {
159
160 string s = Helpers.FieldToUTF8String(block.Parameter);
161 string[] splitField = s.Split(' ');
162 if (splitField.Length == 3)
163 {
164
165 float tempHeightLow = (float)Convert.ToDecimal(splitField[1]);
166 float tempHeightHigh = (float)Convert.ToDecimal(splitField[2]);
167
168 switch (Convert.ToInt16(splitField[0]))
169 {
170 case 0:
171 m_world.m_regInfo.estateSettings.terrainStartHeight0 = tempHeightLow;
172 m_world.m_regInfo.estateSettings.terrainHeightRange0 = tempHeightHigh;
173 break;
174 case 1:
175 m_world.m_regInfo.estateSettings.terrainStartHeight1 = tempHeightLow;
176 m_world.m_regInfo.estateSettings.terrainHeightRange1 = tempHeightHigh;
177 break;
178 case 2:
179 m_world.m_regInfo.estateSettings.terrainStartHeight2 = tempHeightLow;
180 m_world.m_regInfo.estateSettings.terrainHeightRange2 = tempHeightHigh;
181 break;
182 case 3:
183 m_world.m_regInfo.estateSettings.terrainStartHeight3 = tempHeightLow;
184 m_world.m_regInfo.estateSettings.terrainHeightRange3 = tempHeightHigh;
185 break;
186 }
187 }
188 }
189 break;
190 case "texturecommit":
191 sendRegionHandshakeToAll();
192 break;
193 case "setregionterrain":
194 if (packet.ParamList.Length != 9)
195 {
196 OpenSim.Framework.Console.MainConsole.Instance.Error("EstateOwnerMessage: SetRegionTerrain method has a ParamList of invalid length");
197 }
198 else
199 {
200 m_world.m_regInfo.estateSettings.waterHeight = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[0].Parameter));
201 m_world.m_regInfo.estateSettings.terrainRaiseLimit = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[1].Parameter));
202 m_world.m_regInfo.estateSettings.terrainLowerLimit = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[2].Parameter));
203 m_world.m_regInfo.estateSettings.useFixedSun = this.convertParamStringToBool(packet.ParamList[4].Parameter);
204 m_world.m_regInfo.estateSettings.sunHour = (float)Convert.ToDecimal(Helpers.FieldToUTF8String(packet.ParamList[5].Parameter));
205
206 sendRegionInfoPacketToAll();
207 }
208 break;
209 default:
210 OpenSim.Framework.Console.MainConsole.Instance.Error("EstateOwnerMessage: Unknown method requested\n" + packet.ToString());
211 break;
212 }
213 }
214 }
215
216 public void sendRegionInfoPacketToAll()
217 {
218 foreach (OpenSim.world.Avatar av in m_world.Avatars.Values)
219 {
220 this.sendRegionInfoPacket(av.ControllingClient);
221 }
222 }
223
224 public void sendRegionHandshakeToAll()
225 {
226 foreach (OpenSim.world.Avatar av in m_world.Avatars.Values)
227 {
228 this.sendRegionHandshake(av.ControllingClient);
229 }
230 }
231
232 public void sendRegionInfoPacket(IClientAPI remote_client)
233 {
234
235 AgentCircuitData circuitData = remote_client.RequestClientInfo();
236
237 RegionInfoPacket regionInfoPacket = new RegionInfoPacket();
238 regionInfoPacket.AgentData.AgentID = circuitData.AgentID;
239 regionInfoPacket.AgentData.SessionID = circuitData.SessionID;
240 regionInfoPacket.RegionInfo.BillableFactor = m_world.m_regInfo.estateSettings.billableFactor;
241 regionInfoPacket.RegionInfo.EstateID = m_world.m_regInfo.estateSettings.estateID;
242 regionInfoPacket.RegionInfo.MaxAgents = m_world.m_regInfo.estateSettings.maxAgents;
243 regionInfoPacket.RegionInfo.ObjectBonusFactor = m_world.m_regInfo.estateSettings.objectBonusFactor;
244 regionInfoPacket.RegionInfo.ParentEstateID = m_world.m_regInfo.estateSettings.parentEstateID;
245 regionInfoPacket.RegionInfo.PricePerMeter = m_world.m_regInfo.estateSettings.pricePerMeter;
246 regionInfoPacket.RegionInfo.RedirectGridX = m_world.m_regInfo.estateSettings.redirectGridX;
247 regionInfoPacket.RegionInfo.RedirectGridY = m_world.m_regInfo.estateSettings.redirectGridY;
248 regionInfoPacket.RegionInfo.RegionFlags = (uint)m_world.m_regInfo.estateSettings.regionFlags;
249 regionInfoPacket.RegionInfo.SimAccess = (byte)m_world.m_regInfo.estateSettings.simAccess;
250 regionInfoPacket.RegionInfo.SimName = Helpers.StringToField(m_world.m_regInfo.RegionName);
251 regionInfoPacket.RegionInfo.SunHour = m_world.m_regInfo.estateSettings.sunHour;
252 regionInfoPacket.RegionInfo.TerrainLowerLimit = m_world.m_regInfo.estateSettings.terrainLowerLimit;
253 regionInfoPacket.RegionInfo.TerrainRaiseLimit = m_world.m_regInfo.estateSettings.terrainRaiseLimit;
254 regionInfoPacket.RegionInfo.UseEstateSun = !m_world.m_regInfo.estateSettings.useFixedSun;
255 regionInfoPacket.RegionInfo.WaterHeight = m_world.m_regInfo.estateSettings.waterHeight;
256
257 remote_client.OutPacket(regionInfoPacket);
258 }
259
260 public void sendRegionHandshake(IClientAPI remote_client)
261 {
262 System.Text.Encoding _enc = System.Text.Encoding.ASCII;
263 RegionHandshakePacket handshake = new RegionHandshakePacket();
264
265 handshake.RegionInfo.BillableFactor = m_world.m_regInfo.estateSettings.billableFactor;
266 handshake.RegionInfo.IsEstateManager = false;
267 handshake.RegionInfo.TerrainHeightRange00 = m_world.m_regInfo.estateSettings.terrainHeightRange0;
268 handshake.RegionInfo.TerrainHeightRange01 = m_world.m_regInfo.estateSettings.terrainHeightRange1;
269 handshake.RegionInfo.TerrainHeightRange10 = m_world.m_regInfo.estateSettings.terrainHeightRange2;
270 handshake.RegionInfo.TerrainHeightRange11 = m_world.m_regInfo.estateSettings.terrainHeightRange3;
271 handshake.RegionInfo.TerrainStartHeight00 = m_world.m_regInfo.estateSettings.terrainStartHeight0;
272 handshake.RegionInfo.TerrainStartHeight01 = m_world.m_regInfo.estateSettings.terrainStartHeight1;
273 handshake.RegionInfo.TerrainStartHeight10 = m_world.m_regInfo.estateSettings.terrainStartHeight2;
274 handshake.RegionInfo.TerrainStartHeight11 = m_world.m_regInfo.estateSettings.terrainStartHeight3;
275 handshake.RegionInfo.SimAccess = (byte)m_world.m_regInfo.estateSettings.simAccess;
276 handshake.RegionInfo.WaterHeight = m_world.m_regInfo.estateSettings.waterHeight;
277
278
279 handshake.RegionInfo.RegionFlags = (uint)m_world.m_regInfo.estateSettings.regionFlags;
280
281 handshake.RegionInfo.SimName = _enc.GetBytes(m_world.m_regInfo.estateSettings.waterHeight + "\0");
282 handshake.RegionInfo.SimOwner = m_world.m_regInfo.MasterAvatarAssignedUUID;
283 handshake.RegionInfo.TerrainBase0 = m_world.m_regInfo.estateSettings.terrainBase0;
284 handshake.RegionInfo.TerrainBase1 = m_world.m_regInfo.estateSettings.terrainBase1;
285 handshake.RegionInfo.TerrainBase2 = m_world.m_regInfo.estateSettings.terrainBase2;
286 handshake.RegionInfo.TerrainBase3 = m_world.m_regInfo.estateSettings.terrainBase3;
287 handshake.RegionInfo.TerrainDetail0 = m_world.m_regInfo.estateSettings.terrainDetail0;
288 handshake.RegionInfo.TerrainDetail1 = m_world.m_regInfo.estateSettings.terrainDetail1;
289 handshake.RegionInfo.TerrainDetail2 = m_world.m_regInfo.estateSettings.terrainDetail2;
290 handshake.RegionInfo.TerrainDetail3 = m_world.m_regInfo.estateSettings.terrainDetail3;
291 handshake.RegionInfo.CacheID = LLUUID.Random(); //I guess this is for the client to remember an old setting?
292
293 remote_client.OutPacket(handshake);
294 }
295 }
296}
diff --git a/OpenSim/OpenSim.World/OpenSim.World.csproj b/OpenSim/OpenSim.World/OpenSim.World.csproj
index dd469a9..f3c7b1f 100644
--- a/OpenSim/OpenSim.World/OpenSim.World.csproj
+++ b/OpenSim/OpenSim.World/OpenSim.World.csproj
@@ -133,49 +133,52 @@
133 <Compile Include="Avatar.Client.cs"> 133 <Compile Include="Avatar.Client.cs">
134 <SubType>Code</SubType> 134 <SubType>Code</SubType>
135 </Compile> 135 </Compile>
136 <Compile Include="Avatar.cs"> 136 <Compile Include="Entity.cs">
137 <SubType>Code</SubType> 137 <SubType>Code</SubType>
138 </Compile> 138 </Compile>
139 <Compile Include="Avatar.Update.cs"> 139 <Compile Include="World.PacketHandlers.cs">
140 <SubType>Code</SubType> 140 <SubType>Code</SubType>
141 </Compile> 141 </Compile>
142 <Compile Include="AvatarAnimations.cs"> 142 <Compile Include="AvatarAnimations.cs">
143 <SubType>Code</SubType> 143 <SubType>Code</SubType>
144 </Compile> 144 </Compile>
145 <Compile Include="Entity.cs"> 145 <Compile Include="SceneObject.cs">
146 <SubType>Code</SubType> 146 <SubType>Code</SubType>
147 </Compile> 147 </Compile>
148 <Compile Include="Primitive.cs"> 148 <Compile Include="Primitive.cs">
149 <SubType>Code</SubType> 149 <SubType>Code</SubType>
150 </Compile> 150 </Compile>
151 <Compile Include="SceneObject.cs"> 151 <Compile Include="World.Scripting.cs">
152 <SubType>Code</SubType> 152 <SubType>Code</SubType>
153 </Compile> 153 </Compile>
154 <Compile Include="World.cs"> 154 <Compile Include="WorldBase.cs">
155 <SubType>Code</SubType> 155 <SubType>Code</SubType>
156 </Compile> 156 </Compile>
157 <Compile Include="World.PacketHandlers.cs"> 157 <Compile Include="ParcelManager.cs">
158 <SubType>Code</SubType> 158 <SubType>Code</SubType>
159 </Compile> 159 </Compile>
160 <Compile Include="World.Scripting.cs"> 160 <Compile Include="Avatar.Update.cs">
161 <SubType>Code</SubType> 161 <SubType>Code</SubType>
162 </Compile> 162 </Compile>
163 <Compile Include="WorldBase.cs"> 163 <Compile Include="World.cs">
164 <SubType>Code</SubType> 164 <SubType>Code</SubType>
165 </Compile> 165 </Compile>
166 <Compile Include="scripting\IScriptContext.cs"> 166 <Compile Include="Avatar.cs">
167 <SubType>Code</SubType> 167 <SubType>Code</SubType>
168 </Compile> 168 </Compile>
169 <Compile Include="scripting\IScriptEntity.cs"> 169 <Compile Include="scripting\IScriptHandler.cs">
170 <SubType>Code</SubType> 170 <SubType>Code</SubType>
171 </Compile> 171 </Compile>
172 <Compile Include="scripting\IScriptHandler.cs"> 172 <Compile Include="scripting\ScriptFactory.cs">
173 <SubType>Code</SubType>
174 </Compile>
175 <Compile Include="scripting\IScriptContext.cs">
173 <SubType>Code</SubType> 176 <SubType>Code</SubType>
174 </Compile> 177 </Compile>
175 <Compile Include="scripting\Script.cs"> 178 <Compile Include="scripting\Script.cs">
176 <SubType>Code</SubType> 179 <SubType>Code</SubType>
177 </Compile> 180 </Compile>
178 <Compile Include="scripting\ScriptFactory.cs"> 181 <Compile Include="scripting\IScriptEntity.cs">
179 <SubType>Code</SubType> 182 <SubType>Code</SubType>
180 </Compile> 183 </Compile>
181 <Compile Include="scripting\Scripts\FollowRandomAvatar.cs"> 184 <Compile Include="scripting\Scripts\FollowRandomAvatar.cs">
@@ -187,6 +190,9 @@
187 <Compile Include="types\Triangle.cs"> 190 <Compile Include="types\Triangle.cs">
188 <SubType>Code</SubType> 191 <SubType>Code</SubType>
189 </Compile> 192 </Compile>
193 <Compile Include="Estate\EstateManager.cs">
194 <SubType>Code</SubType>
195 </Compile>
190 </ItemGroup> 196 </ItemGroup>
191 <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" /> 197 <Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets" />
192 <PropertyGroup> 198 <PropertyGroup>
diff --git a/OpenSim/OpenSim.World/OpenSim.World.csproj.user b/OpenSim/OpenSim.World/OpenSim.World.csproj.user
index 9bfaf67..082d673 100644
--- a/OpenSim/OpenSim.World/OpenSim.World.csproj.user
+++ b/OpenSim/OpenSim.World/OpenSim.World.csproj.user
@@ -2,7 +2,7 @@
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 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 5 <ReferencePath>C:\sugilite\bin\</ReferencePath>
6 <LastOpenVersion>8.0.50727</LastOpenVersion> 6 <LastOpenVersion>8.0.50727</LastOpenVersion>
7 <ProjectView>ProjectFiles</ProjectView> 7 <ProjectView>ProjectFiles</ProjectView>
8 <ProjectTrust>0</ProjectTrust> 8 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim.World/ParcelManager.cs b/OpenSim/OpenSim.World/ParcelManager.cs
new file mode 100644
index 0000000..d571150
--- /dev/null
+++ b/OpenSim/OpenSim.World/ParcelManager.cs
@@ -0,0 +1,832 @@
1/*
2* Copyright (c) Contributors, http://www.openmetaverse.org/
3* See CONTRIBUTORS.TXT for a full list of copyright holders.
4*
5* Redistribution and use in source and binary forms, with or without
6* modification, are permitted provided that the following conditions are met:
7* * Redistributions of source code must retain the above copyright
8* notice, this list of conditions and the following disclaimer.
9* * Redistributions in binary form must reproduce the above copyright
10* notice, this list of conditions and the following disclaimer in the
11* documentation and/or other materials provided with the distribution.
12* * Neither the name of the OpenSim Project nor the
13* names of its contributors may be used to endorse or promote products
14* derived from this software without specific prior written permission.
15*
16* THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY
17* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19* DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
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
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
25* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26*
27*/
28using System;
29using System.Collections.Generic;
30using System.Text;
31using libsecondlife;
32using libsecondlife.Packets;
33using OpenSim.Framework.Interfaces;
34using OpenSim.Framework.Types;
35
36namespace OpenSim.world
37{
38
39
40 #region ParcelManager Class
41 /// <summary>
42 /// Handles Parcel objects and operations requiring information from other Parcel objects (divide, join, etc)
43 /// </summary>
44 public class ParcelManager : OpenSim.Framework.Interfaces.ILocalStorageParcelReceiver
45 {
46
47 #region Constants
48 //Parcel types set with flags in ParcelOverlay.
49 //Only one of these can be used.
50 public const byte PARCEL_TYPE_PUBLIC = (byte)0; //Equals 00000000
51 public const byte PARCEL_TYPE_OWNED_BY_OTHER = (byte)1; //Equals 00000001
52 public const byte PARCEL_TYPE_OWNED_BY_GROUP = (byte)2; //Equals 00000010
53 public const byte PARCEL_TYPE_OWNED_BY_REQUESTER = (byte)3; //Equals 00000011
54 public const byte PARCEL_TYPE_IS_FOR_SALE = (byte)4; //Equals 00000100
55 public const byte PARCEL_TYPE_IS_BEING_AUCTIONED = (byte)5; //Equals 00000101
56
57
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 parcel 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
61 public const byte PARCEL_FLAG_PROPERTY_BORDER_WEST = (byte)64; //Equals 01000000
62 public const byte PARCEL_FLAG_PROPERTY_BORDER_SOUTH = (byte)128; //Equals 10000000
63
64 //RequestResults (I think these are right, they seem to work):
65 public const int PARCEL_RESULT_ONE_PARCEL = 0; // The request they made contained only one parcel
66 public const int PARCEL_RESULT_MULTIPLE_PARCELS = 1; // The request they made contained more than one parcel
67
68 //These are other constants. Yay!
69 public const int START_PARCEL_LOCAL_ID = 1;
70 #endregion
71
72 #region Member Variables
73 public Dictionary<int, Parcel> parcelList = new Dictionary<int, Parcel>();
74 private int lastParcelLocalID = START_PARCEL_LOCAL_ID - 1;
75 private int[,] parcelIDList = new int[64, 64];
76
77 private static World m_world;
78 #endregion
79
80 #region Constructors
81 public ParcelManager(World world)
82 {
83
84 m_world = world;
85 parcelIDList.Initialize();
86
87 }
88 #endregion
89
90 #region Member Functions
91
92 #region Parcel From Storage Functions
93 public void ParcelFromStorage(ParcelData data)
94 {
95 Parcel new_parcel = new Parcel(data.ownerID, data.isGroupOwned, m_world);
96 new_parcel.parcelData = data.Copy();
97 new_parcel.setParcelBitmapFromByteArray();
98 addParcel(new_parcel);
99
100 }
101
102 public void NoParcelDataFromStorage()
103 {
104 resetSimParcels();
105 }
106 #endregion
107
108 #region Parcel Add/Remove/Get/Create
109 /// <summary>
110 /// Creates a basic Parcel object without an owner (a zeroed key)
111 /// </summary>
112 /// <returns></returns>
113 public Parcel createBaseParcel()
114 {
115 return new Parcel(new LLUUID(), false, m_world);
116 }
117
118 /// <summary>
119 /// Adds a parcel to the stored list and adds them to the parcelIDList to what they own
120 /// </summary>
121 /// <param name="new_parcel">The parcel being added</param>
122 public void addParcel(Parcel new_parcel)
123 {
124 lastParcelLocalID++;
125 new_parcel.parcelData.localID = lastParcelLocalID;
126 parcelList.Add(lastParcelLocalID, new_parcel.Copy());
127
128
129 bool[,] parcelBitmap = new_parcel.getParcelBitmap();
130 int x, y;
131 for (x = 0; x < 64; x++)
132 {
133 for (y = 0; y < 64; y++)
134 {
135 if (parcelBitmap[x, y])
136 {
137 parcelIDList[x, y] = lastParcelLocalID;
138 }
139 }
140 }
141 parcelList[lastParcelLocalID].forceUpdateParcelInfo();
142
143
144 }
145 /// <summary>
146 /// Removes a parcel from the list. Will not remove if local_id is still owning an area in parcelIDList
147 /// </summary>
148 /// <param name="local_id">Parcel.localID of the parcel to remove.</param>
149 public void removeParcel(int local_id)
150 {
151 int x, y;
152 for (x = 0; x < 64; x++)
153 {
154 for (y = 0; y < 64; y++)
155 {
156 if (parcelIDList[x, y] == local_id)
157 {
158 throw new Exception("Could not remove parcel. Still being used at " + x + ", " + y);
159 }
160 }
161 }
162 m_world.localStorage.RemoveParcel(parcelList[local_id].parcelData);
163 parcelList.Remove(local_id);
164 }
165
166 public void performFinalParcelJoin(Parcel master, Parcel slave)
167 {
168 int x, y;
169 bool[,] parcelBitmapSlave = slave.getParcelBitmap();
170 for (x = 0; x < 64; x++)
171 {
172 for (y = 0; y < 64; y++)
173 {
174 if (parcelBitmapSlave[x, y])
175 {
176 parcelIDList[x, y] = master.parcelData.localID;
177 }
178 }
179 }
180 removeParcel(slave.parcelData.localID);
181 }
182 /// <summary>
183 /// Get the parcel at the specified point
184 /// </summary>
185 /// <param name="x">Value between 0 - 256 on the x axis of the point</param>
186 /// <param name="y">Value between 0 - 256 on the y axis of the point</param>
187 /// <returns>Parcel at the point supplied</returns>
188 public Parcel getParcel(int x, int y)
189 {
190 if (x > 256 || y > 256 || x < 0 || y < 0)
191 {
192 throw new Exception("Error: Parcel not found at point " + x + ", " + y);
193 }
194 else
195 {
196 return parcelList[parcelIDList[x / 4, y / 4]];
197 }
198
199 }
200 #endregion
201
202 #region Parcel Modification
203 /// <summary>
204 /// Subdivides a parcel
205 /// </summary>
206 /// <param name="start_x">West Point</param>
207 /// <param name="start_y">South Point</param>
208 /// <param name="end_x">East Point</param>
209 /// <param name="end_y">North Point</param>
210 /// <param name="attempting_user_id">LLUUID of user who is trying to subdivide</param>
211 /// <returns>Returns true if successful</returns>
212 public bool subdivide(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id)
213 {
214 //First, lets loop through the points and make sure they are all in the same parcel
215 //Get the parcel at start
216 Parcel startParcel = getParcel(start_x, start_y);
217 if (startParcel == null) return false; //No such parcel at the beginning
218
219 //Loop through the points
220 try
221 {
222 int totalX = end_x - start_x;
223 int totalY = end_y - start_y;
224 int x, y;
225 for (y = 0; y < totalY; y++)
226 {
227 for (x = 0; x < totalX; x++)
228 {
229 Parcel tempParcel = getParcel(start_x + x, start_y + y);
230 if (tempParcel == null) return false; //No such parcel at that point
231 if (tempParcel != startParcel) return false; //Subdividing over 2 parcels; no-no
232 }
233 }
234 }
235 catch (Exception e)
236 {
237 return false; //Exception. For now, lets skip subdivision
238 }
239
240 //If we are still here, then they are subdividing within one parcel
241 //Check owner
242 if (startParcel.parcelData.ownerID != attempting_user_id)
243 {
244 return false; //They cant do this!
245 }
246
247 //Lets create a new parcel with bitmap activated at that point (keeping the old parcels info)
248 Parcel newParcel = startParcel.Copy();
249 newParcel.parcelData.parcelName = "Subdivision of " + newParcel.parcelData.parcelName;
250 newParcel.parcelData.globalID = LLUUID.Random();
251
252 newParcel.setParcelBitmap(Parcel.getSquareParcelBitmap(start_x, start_y, end_x, end_y));
253
254 //Now, lets set the subdivision area of the original to false
255 int startParcelIndex = startParcel.parcelData.localID;
256 parcelList[startParcelIndex].setParcelBitmap(Parcel.modifyParcelBitmapSquare(startParcel.getParcelBitmap(), start_x, start_y, end_x, end_y, false));
257 parcelList[startParcelIndex].forceUpdateParcelInfo();
258
259
260 //Now add the new parcel
261 addParcel(newParcel);
262
263
264
265
266
267 return true;
268 }
269 /// <summary>
270 /// Join 2 parcels together
271 /// </summary>
272 /// <param name="start_x">x value in first parcel</param>
273 /// <param name="start_y">y value in first parcel</param>
274 /// <param name="end_x">x value in second parcel</param>
275 /// <param name="end_y">y value in second parcel</param>
276 /// <param name="attempting_user_id">LLUUID of the avatar trying to join the parcels</param>
277 /// <returns>Returns true if successful</returns>
278 public bool join(int start_x, int start_y, int end_x, int end_y, LLUUID attempting_user_id)
279 {
280 end_x -= 4;
281 end_y -= 4;
282
283 //NOTE: The following only connects the parcels in each corner and not all the parcels that are within the selection box!
284 //This should be fixed later -- somewhat "incomplete code" --Ming
285 Parcel startParcel, endParcel;
286
287 try
288 {
289 startParcel = getParcel(start_x, start_y);
290 endParcel = getParcel(end_x, end_y);
291 }
292 catch (Exception e)
293 {
294 return false; //Error occured when trying to get the start and end parcels
295 }
296 if (startParcel == endParcel)
297 {
298 return false; //Subdivision of the same parcel is not allowed
299 }
300
301 //Check the parcel owners:
302 if (startParcel.parcelData.ownerID != endParcel.parcelData.ownerID)
303 {
304 return false;
305 }
306 if (startParcel.parcelData.ownerID != attempting_user_id)
307 {
308 //TODO: Group editing stuff. Avatar owner support for now
309 return false;
310 }
311
312 //Same owners! Lets join them
313 //Merge them to startParcel
314 parcelList[startParcel.parcelData.localID].setParcelBitmap(Parcel.mergeParcelBitmaps(startParcel.getParcelBitmap(), endParcel.getParcelBitmap()));
315 performFinalParcelJoin(startParcel, endParcel);
316
317 return true;
318
319
320
321 }
322 #endregion
323
324 #region Parcel Updating
325 /// <summary>
326 /// Where we send the ParcelOverlay packet to the client
327 /// </summary>
328 /// <param name="remote_client">The object representing the client</param>
329 public void sendParcelOverlay(IClientAPI remote_client)
330 {
331 const int PARCEL_BLOCKS_PER_PACKET = 1024;
332 int x, y = 0;
333 byte[] byteArray = new byte[PARCEL_BLOCKS_PER_PACKET];
334 int byteArrayCount = 0;
335 int sequenceID = 0;
336 ParcelOverlayPacket packet;
337
338 for (y = 0; y < 64; y++)
339 {
340 for (x = 0; x < 64; x++)
341 {
342 byte tempByte = (byte)0; //This represents the byte for the current 4x4
343 Parcel currentParcelBlock = getParcel(x * 4, y * 4);
344
345 if (currentParcelBlock.parcelData.ownerID == remote_client.AgentId)
346 {
347 //Owner Flag
348 tempByte = Convert.ToByte(tempByte | PARCEL_TYPE_OWNED_BY_REQUESTER);
349 }
350 else if (currentParcelBlock.parcelData.salePrice > 0 && (currentParcelBlock.parcelData.authBuyerID == LLUUID.Zero || currentParcelBlock.parcelData.authBuyerID == remote_client.AgentId))
351 {
352 //Sale Flag
353 tempByte = Convert.ToByte(tempByte | PARCEL_TYPE_IS_FOR_SALE);
354 }
355 else if (currentParcelBlock.parcelData.ownerID == LLUUID.Zero)
356 {
357 //Public Flag
358 tempByte = Convert.ToByte(tempByte | PARCEL_TYPE_PUBLIC);
359 }
360 else
361 {
362 //Other Flag
363 tempByte = Convert.ToByte(tempByte | PARCEL_TYPE_OWNED_BY_OTHER);
364 }
365
366
367 //Now for border control
368 if (x == 0)
369 {
370 tempByte = Convert.ToByte(tempByte | PARCEL_FLAG_PROPERTY_BORDER_WEST);
371 }
372 else if (getParcel((x - 1) * 4, y * 4) != currentParcelBlock)
373 {
374 tempByte = Convert.ToByte(tempByte | PARCEL_FLAG_PROPERTY_BORDER_WEST);
375 }
376
377 if (y == 0)
378 {
379 tempByte = Convert.ToByte(tempByte | PARCEL_FLAG_PROPERTY_BORDER_SOUTH);
380 }
381 else if (getParcel(x * 4, (y - 1) * 4) != currentParcelBlock)
382 {
383 tempByte = Convert.ToByte(tempByte | PARCEL_FLAG_PROPERTY_BORDER_SOUTH);
384 }
385
386 byteArray[byteArrayCount] = tempByte;
387 byteArrayCount++;
388 if (byteArrayCount >= PARCEL_BLOCKS_PER_PACKET)
389 {
390 byteArrayCount = 0;
391 packet = new ParcelOverlayPacket();
392 packet.ParcelData.Data = byteArray;
393 packet.ParcelData.SequenceID = sequenceID;
394 remote_client.OutPacket((Packet)packet);
395 sequenceID++;
396 byteArray = new byte[PARCEL_BLOCKS_PER_PACKET];
397 }
398 }
399 }
400
401 packet = new ParcelOverlayPacket();
402 packet.ParcelData.Data = byteArray;
403 packet.ParcelData.SequenceID = sequenceID; //Eh?
404 remote_client.OutPacket((Packet)packet);
405 }
406 #endregion
407
408 /// <summary>
409 /// Resets the sim to the default parcel (full sim parcel owned by the default user)
410 /// </summary>
411 public void resetSimParcels()
412 {
413 //Remove all the parcels in the sim and add a blank, full sim parcel set to public
414 parcelList.Clear();
415 lastParcelLocalID = START_PARCEL_LOCAL_ID - 1;
416 parcelIDList.Initialize();
417
418 Parcel fullSimParcel = new Parcel(LLUUID.Zero, false, m_world);
419
420 fullSimParcel.setParcelBitmap(Parcel.getSquareParcelBitmap(0, 0, 256, 256));
421 fullSimParcel.parcelData.parcelName = "Your Sim Parcel";
422 fullSimParcel.parcelData.parcelDesc = "";
423
424 fullSimParcel.parcelData.ownerID = m_world.m_regInfo.MasterAvatarAssignedUUID;
425 fullSimParcel.parcelData.salePrice = 1;
426 fullSimParcel.parcelData.parcelFlags = libsecondlife.Parcel.ParcelFlags.ForSale;
427 fullSimParcel.parcelData.parcelStatus = libsecondlife.Parcel.ParcelStatus.Leased;
428
429 addParcel(fullSimParcel);
430
431 }
432 #endregion
433 }
434 #endregion
435
436
437 #region Parcel Class
438 /// <summary>
439 /// Keeps track of a specific parcel's information
440 /// </summary>
441 public class Parcel
442 {
443 #region Member Variables
444 public ParcelData parcelData = new ParcelData();
445 public World m_world;
446
447 private bool[,] parcelBitmap = new bool[64, 64];
448
449 #endregion
450
451
452 #region Constructors
453 public Parcel(LLUUID owner_id, bool is_group_owned, World world)
454 {
455 m_world = world;
456 parcelData.ownerID = owner_id;
457 parcelData.isGroupOwned = is_group_owned;
458
459 }
460 #endregion
461
462
463 #region Member Functions
464
465 #region General Functions
466 /// <summary>
467 /// Checks to see if this parcel contains a point
468 /// </summary>
469 /// <param name="x"></param>
470 /// <param name="y"></param>
471 /// <returns>Returns true if the parcel contains the specified point</returns>
472 public bool containsPoint(int x, int y)
473 {
474 if (x >= 0 && y >= 0 && x <= 256 && x <= 256)
475 {
476 return (parcelBitmap[x / 4, y / 4] == true);
477 }
478 else
479 {
480 return false;
481 }
482 }
483
484 public Parcel Copy()
485 {
486 Parcel newParcel = new Parcel(this.parcelData.ownerID, this.parcelData.isGroupOwned, m_world);
487
488 //Place all new variables here!
489 newParcel.parcelBitmap = (bool[,])(this.parcelBitmap.Clone());
490 newParcel.parcelData = parcelData.Copy();
491
492 return newParcel;
493 }
494
495 #endregion
496
497
498 #region Packet Request Handling
499 /// <summary>
500 /// Sends parcel properties as requested
501 /// </summary>
502 /// <param name="sequence_id">ID sent by client for them to keep track of</param>
503 /// <param name="snap_selection">Bool sent by client for them to use</param>
504 /// <param name="remote_client">Object representing the client</param>
505 public void sendParcelProperties(int sequence_id, bool snap_selection, int request_result, IClientAPI remote_client)
506 {
507
508 ParcelPropertiesPacket updatePacket = new ParcelPropertiesPacket();
509 updatePacket.ParcelData.AABBMax = parcelData.AABBMax;
510 updatePacket.ParcelData.AABBMin = parcelData.AABBMin;
511 updatePacket.ParcelData.Area = parcelData.area;
512 updatePacket.ParcelData.AuctionID = parcelData.auctionID;
513 updatePacket.ParcelData.AuthBuyerID =parcelData.authBuyerID; //unemplemented
514
515 updatePacket.ParcelData.Bitmap = parcelData.parcelBitmapByteArray;
516
517 updatePacket.ParcelData.Desc = libsecondlife.Helpers.StringToField(parcelData.parcelDesc);
518 updatePacket.ParcelData.Category = (byte)parcelData.category;
519 updatePacket.ParcelData.ClaimDate = parcelData.claimDate;
520 updatePacket.ParcelData.ClaimPrice = parcelData.claimPrice;
521 updatePacket.ParcelData.GroupID = parcelData.groupID;
522 updatePacket.ParcelData.GroupPrims = parcelData.groupPrims;
523 updatePacket.ParcelData.IsGroupOwned = parcelData.isGroupOwned;
524 updatePacket.ParcelData.LandingType = (byte)parcelData.landingType;
525 updatePacket.ParcelData.LocalID = parcelData.localID;
526 updatePacket.ParcelData.MaxPrims = 1000; //unemplemented
527 updatePacket.ParcelData.MediaAutoScale = parcelData.mediaAutoScale;
528 updatePacket.ParcelData.MediaID = parcelData.mediaID;
529 updatePacket.ParcelData.MediaURL = Helpers.StringToField(parcelData.mediaURL);
530 updatePacket.ParcelData.MusicURL = Helpers.StringToField(parcelData.musicURL);
531 updatePacket.ParcelData.Name = Helpers.StringToField(parcelData.parcelName);
532 updatePacket.ParcelData.OtherCleanTime = 0; //unemplemented
533 updatePacket.ParcelData.OtherCount = 0; //unemplemented
534 updatePacket.ParcelData.OtherPrims = 0; //unemplented
535 updatePacket.ParcelData.OwnerID = parcelData.ownerID;
536 updatePacket.ParcelData.OwnerPrims = 0; //unemplemented
537 updatePacket.ParcelData.ParcelFlags = (uint)parcelData.parcelFlags; //unemplemented
538 updatePacket.ParcelData.ParcelPrimBonus = (float)1.0; //unemplemented
539 updatePacket.ParcelData.PassHours = parcelData.passHours;
540 updatePacket.ParcelData.PassPrice = parcelData.passPrice;
541 updatePacket.ParcelData.PublicCount = 0; //unemplemented
542 updatePacket.ParcelData.RegionDenyAnonymous = false; //unemplemented
543 updatePacket.ParcelData.RegionDenyIdentified = false; //unemplemented
544 updatePacket.ParcelData.RegionDenyTransacted = false; //unemplemented
545 updatePacket.ParcelData.RegionPushOverride = true; //unemplemented
546 updatePacket.ParcelData.RentPrice = 0; //??
547 updatePacket.ParcelData.RequestResult = request_result;
548 updatePacket.ParcelData.SalePrice = parcelData.salePrice; //unemplemented
549 updatePacket.ParcelData.SelectedPrims = 0; //unemeplemented
550 updatePacket.ParcelData.SelfCount = 0;//unemplemented
551 updatePacket.ParcelData.SequenceID = sequence_id;
552 updatePacket.ParcelData.SimWideMaxPrims = 15000; //unemplemented
553 updatePacket.ParcelData.SimWideTotalPrims = 0; //unemplemented
554 updatePacket.ParcelData.SnapSelection = snap_selection;
555 updatePacket.ParcelData.SnapshotID = parcelData.snapshotID;
556 updatePacket.ParcelData.Status = (byte)parcelData.parcelStatus;
557 updatePacket.ParcelData.TotalPrims = 0; //unemplemented
558 updatePacket.ParcelData.UserLocation = parcelData.userLocation;
559 updatePacket.ParcelData.UserLookAt = parcelData.userLookAt;
560 remote_client.OutPacket((Packet)updatePacket);
561 }
562
563 public void updateParcelProperties(ParcelPropertiesUpdatePacket packet, IClientAPI remote_client)
564 {
565 if (remote_client.AgentId == parcelData.ownerID)
566 {
567 //Needs later group support
568 parcelData.authBuyerID = packet.ParcelData.AuthBuyerID;
569 parcelData.category = (libsecondlife.Parcel.ParcelCategory)packet.ParcelData.Category;
570 parcelData.parcelDesc = Helpers.FieldToUTF8String(packet.ParcelData.Desc);
571 parcelData.groupID = packet.ParcelData.GroupID;
572 parcelData.landingType = packet.ParcelData.LandingType;
573 parcelData.mediaAutoScale = packet.ParcelData.MediaAutoScale;
574 parcelData.mediaID = packet.ParcelData.MediaID;
575 parcelData.mediaURL = Helpers.FieldToUTF8String(packet.ParcelData.MediaURL);
576 parcelData.musicURL = Helpers.FieldToUTF8String(packet.ParcelData.MusicURL);
577 parcelData.parcelName = libsecondlife.Helpers.FieldToUTF8String(packet.ParcelData.Name);
578 parcelData.parcelFlags = (libsecondlife.Parcel.ParcelFlags)packet.ParcelData.ParcelFlags;
579 parcelData.passHours = packet.ParcelData.PassHours;
580 parcelData.passPrice = packet.ParcelData.PassPrice;
581 parcelData.salePrice = packet.ParcelData.SalePrice;
582 parcelData.snapshotID = packet.ParcelData.SnapshotID;
583 parcelData.userLocation = packet.ParcelData.UserLocation;
584 parcelData.userLookAt = packet.ParcelData.UserLookAt;
585
586 foreach (Avatar av in m_world.Avatars.Values)
587 {
588 Parcel over = m_world.parcelManager.getParcel((int)Math.Round(av.Pos.X), (int)Math.Round(av.Pos.Y));
589 if (over == this)
590 {
591 sendParcelProperties(0, false, 0, av.ControllingClient);
592 }
593 }
594 }
595 }
596 #endregion
597
598
599 #region Update Functions
600 /// <summary>
601 /// Updates the AABBMin and AABBMax values after area/shape modification of parcel
602 /// </summary>
603 private void updateAABBAndAreaValues()
604 {
605 int min_x = 64;
606 int min_y = 64;
607 int max_x = 0;
608 int max_y = 0;
609 int tempArea = 0;
610 int x, y;
611 for (x = 0; x < 64; x++)
612 {
613 for (y = 0; y < 64; y++)
614 {
615 if (parcelBitmap[x, y] == true)
616 {
617 if (min_x > x) min_x = x;
618 if (min_y > y) min_y = y;
619 if (max_x < x) max_x = x;
620 if (max_y < y) max_y = y;
621 tempArea += 16; //16sqm parcel
622 }
623 }
624 }
625 parcelData.AABBMin = new LLVector3((float)(min_x * 4), (float)(min_y * 4), m_world.Terrain[(min_x * 4), (min_y * 4)]);
626 parcelData.AABBMax = new LLVector3((float)(max_x * 4), (float)(max_y * 4), m_world.Terrain[(max_x * 4), (max_y * 4)]);
627 parcelData.area = tempArea;
628 }
629
630 public void updateParcelBitmapByteArray()
631 {
632 parcelData.parcelBitmapByteArray = convertParcelBitmapToBytes();
633 }
634
635 /// <summary>
636 /// Update all settings in parcel such as area, bitmap byte array, etc
637 /// </summary>
638 public void forceUpdateParcelInfo()
639 {
640 this.updateAABBAndAreaValues();
641 this.updateParcelBitmapByteArray();
642 }
643
644 public void setParcelBitmapFromByteArray()
645 {
646 parcelBitmap = convertBytesToParcelBitmap();
647 }
648 #endregion
649
650
651 #region Parcel Bitmap Functions
652 /// <summary>
653 /// Sets the parcel's bitmap manually
654 /// </summary>
655 /// <param name="bitmap">64x64 block representing where this parcel is on a map</param>
656 public void setParcelBitmap(bool[,] bitmap)
657 {
658 if (bitmap.GetLength(0) != 64 || bitmap.GetLength(1) != 64 || bitmap.Rank != 2)
659 {
660 //Throw an exception - The bitmap is not 64x64
661 throw new Exception("Error: Invalid Parcel Bitmap");
662 }
663 else
664 {
665 //Valid: Lets set it
666 parcelBitmap = bitmap;
667 forceUpdateParcelInfo();
668
669 }
670 }
671 /// <summary>
672 /// Gets the parcels bitmap manually
673 /// </summary>
674 /// <returns></returns>
675 public bool[,] getParcelBitmap()
676 {
677 return parcelBitmap;
678 }
679 /// <summary>
680 /// Converts the parcel bitmap to a packet friendly byte array
681 /// </summary>
682 /// <returns></returns>
683 private byte[] convertParcelBitmapToBytes()
684 {
685 byte[] tempConvertArr = new byte[512];
686 byte tempByte = 0;
687 int x, y, i, byteNum = 0;
688 i = 0;
689 for (y = 0; y < 64; y++)
690 {
691 for (x = 0; x < 64; x++)
692 {
693 tempByte = Convert.ToByte(tempByte | Convert.ToByte(parcelBitmap[x, y]) << (i++ % 8));
694 if (i % 8 == 0)
695 {
696 tempConvertArr[byteNum] = tempByte;
697 tempByte = (byte)0;
698 i = 0;
699 byteNum++;
700 }
701 }
702 }
703 return tempConvertArr;
704 }
705
706 private bool[,] convertBytesToParcelBitmap()
707 {
708 bool[,] tempConvertMap = new bool[64, 64];
709 tempConvertMap.Initialize();
710 byte tempByte = 0;
711 int x = 0, y = 0, i = 0, bitNum = 0;
712 for(i = 0; i < 512; i++)
713 {
714 tempByte = parcelData.parcelBitmapByteArray[i];
715 for(bitNum = 0; bitNum < 8; bitNum++)
716 {
717 bool bit = Convert.ToBoolean(Convert.ToByte(tempByte >> bitNum) & (byte)1);
718 tempConvertMap[x, y] = bit;
719 x++;
720 if(x > 63)
721 {
722 x = 0;
723 y++;
724 }
725
726 }
727
728 }
729 return tempConvertMap;
730 }
731 /// <summary>
732 /// Full sim parcel creation
733 /// </summary>
734 /// <returns></returns>
735 public static bool[,] basicFullRegionParcelBitmap()
736 {
737 return getSquareParcelBitmap(0, 0, 256, 256);
738 }
739
740 /// <summary>
741 /// Used to modify the bitmap between the x and y points. Points use 64 scale
742 /// </summary>
743 /// <param name="start_x"></param>
744 /// <param name="start_y"></param>
745 /// <param name="end_x"></param>
746 /// <param name="end_y"></param>
747 /// <returns></returns>
748 public static bool[,] getSquareParcelBitmap(int start_x, int start_y, int end_x, int end_y)
749 {
750
751 bool[,] tempBitmap = new bool[64, 64];
752 tempBitmap.Initialize();
753
754 tempBitmap = modifyParcelBitmapSquare(tempBitmap, start_x, start_y, end_x, end_y, true);
755 return tempBitmap;
756 }
757
758 /// <summary>
759 /// Change a parcel's bitmap at within a square and set those points to a specific value
760 /// </summary>
761 /// <param name="parcel_bitmap"></param>
762 /// <param name="start_x"></param>
763 /// <param name="start_y"></param>
764 /// <param name="end_x"></param>
765 /// <param name="end_y"></param>
766 /// <param name="set_value"></param>
767 /// <returns></returns>
768 public static bool[,] modifyParcelBitmapSquare(bool[,] parcel_bitmap, int start_x, int start_y, int end_x, int end_y, bool set_value)
769 {
770 if (parcel_bitmap.GetLength(0) != 64 || parcel_bitmap.GetLength(1) != 64 || parcel_bitmap.Rank != 2)
771 {
772 //Throw an exception - The bitmap is not 64x64
773 throw new Exception("Error: Invalid Parcel Bitmap in modifyParcelBitmapSquare()");
774 }
775
776 int x, y;
777 for (y = 0; y < 64; y++)
778 {
779 for (x = 0; x < 64; x++)
780 {
781 if (x >= start_x / 4 && x < end_x / 4
782 && y >= start_y / 4 && y < end_y / 4)
783 {
784 parcel_bitmap[x, y] = set_value;
785 }
786 }
787 }
788 return parcel_bitmap;
789 }
790 /// <summary>
791 /// Join the true values of 2 bitmaps together
792 /// </summary>
793 /// <param name="bitmap_base"></param>
794 /// <param name="bitmap_add"></param>
795 /// <returns></returns>
796 public static bool[,] mergeParcelBitmaps(bool[,] bitmap_base, bool[,] bitmap_add)
797 {
798 if (bitmap_base.GetLength(0) != 64 || bitmap_base.GetLength(1) != 64 || bitmap_base.Rank != 2)
799 {
800 //Throw an exception - The bitmap is not 64x64
801 throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_base in mergeParcelBitmaps");
802 }
803 if (bitmap_add.GetLength(0) != 64 || bitmap_add.GetLength(1) != 64 || bitmap_add.Rank != 2)
804 {
805 //Throw an exception - The bitmap is not 64x64
806 throw new Exception("Error: Invalid Parcel Bitmap - Bitmap_add in mergeParcelBitmaps");
807
808 }
809
810 int x, y;
811 for (y = 0; y < 64; y++)
812 {
813 for (x = 0; x < 64; x++)
814 {
815 if (bitmap_add[x, y])
816 {
817 bitmap_base[x, y] = true;
818 }
819 }
820 }
821 return bitmap_base;
822 }
823 #endregion
824
825 #endregion
826
827
828 }
829 #endregion
830
831
832}
diff --git a/OpenSim/OpenSim.World/World.cs b/OpenSim/OpenSim.World/World.cs
index 1d56ea3..1f97820 100644
--- a/OpenSim/OpenSim.World/World.cs
+++ b/OpenSim/OpenSim.World/World.cs
@@ -15,6 +15,8 @@ using OpenSim.Framework;
15using OpenSim.RegionServer.world.scripting; 15using OpenSim.RegionServer.world.scripting;
16using OpenSim.Terrain; 16using OpenSim.Terrain;
17using OpenGrid.Framework.Communications; 17using OpenGrid.Framework.Communications;
18using OpenSim.world.Estate;
19
18 20
19namespace OpenSim.world 21namespace OpenSim.world
20{ 22{
@@ -40,6 +42,9 @@ namespace OpenSim.world
40 protected RegionCommsHostBase regionCommsHost; 42 protected RegionCommsHostBase regionCommsHost;
41 protected RegionServerCommsManager commsManager; 43 protected RegionServerCommsManager commsManager;
42 44
45 public ParcelManager parcelManager;
46 public EstateManager estateManager;
47
43 #region Properties 48 #region Properties
44 /// <summary> 49 /// <summary>
45 /// 50 ///
@@ -444,7 +449,7 @@ namespace OpenSim.world
444 /// <summary> 449 /// <summary>
445 /// 450 ///
446 /// </summary> 451 /// </summary>
447 /// <param name="remoteClient"></param> 452 /// <param name="remoteClient"></param
448 /// <param name="agentID"></param> 453 /// <param name="agentID"></param>
449 /// <param name="child"></param> 454 /// <param name="child"></param>
450 public override void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child) 455 public override void AddNewAvatar(IClientAPI remoteClient, LLUUID agentID, bool child)
@@ -458,7 +463,7 @@ namespace OpenSim.world
458 try 463 try
459 { 464 {
460 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent"); 465 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent");
461 newAvatar = new Avatar(remoteClient, this, m_clientThreads, this.m_regInfo); 466 newAvatar = new Avatar(remoteClient, this, m_clientThreads);
462 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Adding new avatar to world"); 467 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Adding new avatar to world");
463 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Starting RegionHandshake "); 468 OpenSim.Framework.Console.MainConsole.Instance.WriteLine(OpenSim.Framework.Console.LogPriority.LOW, "World.cs:AddViewerAgent() - Starting RegionHandshake ");
464 newAvatar.SendRegionHandshake(); 469 newAvatar.SendRegionHandshake();
diff --git a/OpenSim/OpenSim.World/WorldBase.cs b/OpenSim/OpenSim.World/WorldBase.cs
index 19a8fb5..4d806e3 100644
--- a/OpenSim/OpenSim.World/WorldBase.cs
+++ b/OpenSim/OpenSim.World/WorldBase.cs
@@ -23,7 +23,7 @@ namespace OpenSim.world
23 protected string m_regionName; 23 protected string m_regionName;
24 // protected InventoryCache _inventoryCache; 24 // protected InventoryCache _inventoryCache;
25 // protected AssetCache _assetCache; 25 // protected AssetCache _assetCache;
26 protected RegionInfo m_regInfo; 26 public RegionInfo m_regInfo;
27 27
28 public TerrainEngine Terrain; //TODO: Replace TerrainManager with this. 28 public TerrainEngine Terrain; //TODO: Replace TerrainManager with this.
29 protected libsecondlife.TerrainManager TerrainManager; // To be referenced via TerrainEngine 29 protected libsecondlife.TerrainManager TerrainManager; // To be referenced via TerrainEngine
diff --git a/OpenSim/OpenSim/OpenSim.csproj.user b/OpenSim/OpenSim/OpenSim.csproj.user
index ba0418b..66e2cb4 100644
--- a/OpenSim/OpenSim/OpenSim.csproj.user
+++ b/OpenSim/OpenSim/OpenSim.csproj.user
@@ -3,7 +3,7 @@
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 <StartArguments>-loginserver -sandbox -accounts</StartArguments> 5 <StartArguments>-loginserver -sandbox -accounts</StartArguments>
6 <ReferencePath>C:\New Folder\second-life-viewer\opensim-dailys2\opensim26-05\branches\Sugilite\bin\</ReferencePath> 6 <ReferencePath>C:\sugilite\bin\</ReferencePath>
7 <LastOpenVersion>8.0.50727</LastOpenVersion> 7 <LastOpenVersion>8.0.50727</LastOpenVersion>
8 <ProjectView>ProjectFiles</ProjectView> 8 <ProjectView>ProjectFiles</ProjectView>
9 <ProjectTrust>0</ProjectTrust> 9 <ProjectTrust>0</ProjectTrust>
diff --git a/OpenSim/OpenSim/OpenSim.exe.build b/OpenSim/OpenSim/OpenSim.exe.build
index 4f8ca8a..9c209ac 100644
--- a/OpenSim/OpenSim/OpenSim.exe.build
+++ b/OpenSim/OpenSim/OpenSim.exe.build
@@ -29,8 +29,10 @@
29 <include name="../../bin/OpenSim.Framework.Console.dll" /> 29 <include name="../../bin/OpenSim.Framework.Console.dll" />
30 <include name="../../bin/OpenSim.Physics.Manager.dll" /> 30 <include name="../../bin/OpenSim.Physics.Manager.dll" />
31 <include name="../../bin/OpenSim.Servers.dll" /> 31 <include name="../../bin/OpenSim.Servers.dll" />
32 <include name="../../bin/OpenSim.World.dll" />
32 <include name="../../bin/OpenSim.RegionServer.dll" /> 33 <include name="../../bin/OpenSim.RegionServer.dll" />
33 <include name="../../bin/OpenSim.GenericConfig.Xml.dll" /> 34 <include name="../../bin/OpenSim.GenericConfig.Xml.dll" />
35 <include name="../../bin/OpenGrid.Framework.Communications.dll" />
34 <include name="../../bin/XMLRPC.dll" /> 36 <include name="../../bin/XMLRPC.dll" />
35 </references> 37 </references>
36 </csc> 38 </csc>
diff --git a/OpenSim/OpenSim/OpenSimMain.cs b/OpenSim/OpenSim/OpenSimMain.cs
index 7c83dee..cbcf3db 100644
--- a/OpenSim/OpenSim/OpenSimMain.cs
+++ b/OpenSim/OpenSim/OpenSimMain.cs
@@ -69,7 +69,6 @@ namespace OpenSim
69 m_loginserver = startLoginServer; 69 m_loginserver = startLoginServer;
70 m_physicsEngine = physicsEngine; 70 m_physicsEngine = physicsEngine;
71 m_config = configFile; 71 m_config = configFile;
72
73 m_console = new ConsoleBase("region-console-" + Guid.NewGuid().ToString() + ".log", "Region", this, silent); 72 m_console = new ConsoleBase("region-console-" + Guid.NewGuid().ToString() + ".log", "Region", this, silent);
74 OpenSim.Framework.Console.MainConsole.Instance = m_console; 73 OpenSim.Framework.Console.MainConsole.Instance = m_console;
75 } 74 }