diff options
Diffstat (limited to '')
18 files changed, 135 insertions, 59 deletions
diff --git a/OpenSim/Data/IRegionData.cs b/OpenSim/Data/IRegionData.cs index 546b5e8..70e1065 100644 --- a/OpenSim/Data/IRegionData.cs +++ b/OpenSim/Data/IRegionData.cs | |||
@@ -85,21 +85,6 @@ namespace OpenSim.Data | |||
85 | List<RegionData> GetHyperlinks(UUID scopeID); | 85 | List<RegionData> GetHyperlinks(UUID scopeID); |
86 | } | 86 | } |
87 | 87 | ||
88 | [Flags] | ||
89 | public enum RegionFlags : int | ||
90 | { | ||
91 | DefaultRegion = 1, // Used for new Rez. Random if multiple defined | ||
92 | FallbackRegion = 2, // Regions we redirect to when the destination is down | ||
93 | RegionOnline = 4, // Set when a region comes online, unset when it unregisters and DeleteOnUnregister is false | ||
94 | NoDirectLogin = 8, // Region unavailable for direct logins (by name) | ||
95 | Persistent = 16, // Don't remove on unregister | ||
96 | LockedOut = 32, // Don't allow registration | ||
97 | NoMove = 64, // Don't allow moving this region | ||
98 | Reservation = 128, // This is an inactive reservation | ||
99 | Authenticate = 256, // Require authentication | ||
100 | Hyperlink = 512 // Record represents a HG link | ||
101 | } | ||
102 | |||
103 | public class RegionDataDistanceCompare : IComparer<RegionData> | 88 | public class RegionDataDistanceCompare : IComparer<RegionData> |
104 | { | 89 | { |
105 | private Vector2 m_origin; | 90 | private Vector2 m_origin; |
diff --git a/OpenSim/Data/MSSQL/MSSQLRegionData.cs b/OpenSim/Data/MSSQL/MSSQLRegionData.cs index 3ae87c3..0d89706 100644 --- a/OpenSim/Data/MSSQL/MSSQLRegionData.cs +++ b/OpenSim/Data/MSSQL/MSSQLRegionData.cs | |||
@@ -37,6 +37,7 @@ using OpenMetaverse; | |||
37 | using OpenSim.Framework; | 37 | using OpenSim.Framework; |
38 | using OpenSim.Region.Framework.Interfaces; | 38 | using OpenSim.Region.Framework.Interfaces; |
39 | using OpenSim.Region.Framework.Scenes; | 39 | using OpenSim.Region.Framework.Scenes; |
40 | using RegionFlags = OpenSim.Framework.RegionFlags; | ||
40 | 41 | ||
41 | namespace OpenSim.Data.MSSQL | 42 | namespace OpenSim.Data.MSSQL |
42 | { | 43 | { |
diff --git a/OpenSim/Data/MySQL/MySQLRegionData.cs b/OpenSim/Data/MySQL/MySQLRegionData.cs index 0614879..a2d4ae4 100644 --- a/OpenSim/Data/MySQL/MySQLRegionData.cs +++ b/OpenSim/Data/MySQL/MySQLRegionData.cs | |||
@@ -30,11 +30,11 @@ using System.Collections; | |||
30 | using System.Collections.Generic; | 30 | using System.Collections.Generic; |
31 | using System.Data; | 31 | using System.Data; |
32 | using System.Reflection; | 32 | using System.Reflection; |
33 | 33 | using MySql.Data.MySqlClient; | |
34 | using OpenMetaverse; | 34 | using OpenMetaverse; |
35 | using OpenSim.Framework; | 35 | using OpenSim.Framework; |
36 | using OpenSim.Data; | 36 | using OpenSim.Data; |
37 | using MySql.Data.MySqlClient; | 37 | using RegionFlags = OpenSim.Framework.RegionFlags; |
38 | 38 | ||
39 | namespace OpenSim.Data.MySQL | 39 | namespace OpenSim.Data.MySQL |
40 | { | 40 | { |
diff --git a/OpenSim/Data/Null/NullRegionData.cs b/OpenSim/Data/Null/NullRegionData.cs index deb50cb..b4d701a 100644 --- a/OpenSim/Data/Null/NullRegionData.cs +++ b/OpenSim/Data/Null/NullRegionData.cs | |||
@@ -33,6 +33,7 @@ using OpenSim.Framework; | |||
33 | using OpenSim.Data; | 33 | using OpenSim.Data; |
34 | using System.Reflection; | 34 | using System.Reflection; |
35 | using log4net; | 35 | using log4net; |
36 | using RegionFlags = OpenSim.Framework.RegionFlags; | ||
36 | 37 | ||
37 | namespace OpenSim.Data.Null | 38 | namespace OpenSim.Data.Null |
38 | { | 39 | { |
diff --git a/OpenSim/Framework/RegionFlags.cs b/OpenSim/Framework/RegionFlags.cs new file mode 100644 index 0000000..a3089b0 --- /dev/null +++ b/OpenSim/Framework/RegionFlags.cs | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * Copyright (c) Contributors, http://opensimulator.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 OpenSimulator 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 | |||
28 | using System; | ||
29 | |||
30 | namespace OpenSim.Framework | ||
31 | { | ||
32 | /// <summary> | ||
33 | /// Region flags used internally by OpenSimulator to store installation specific information about regions. | ||
34 | /// </summary> | ||
35 | /// <remarks> | ||
36 | /// Don't confuse with OpenMetaverse.RegionFlags which are client facing flags (i.e. they go over the wire). | ||
37 | /// Returned by IGridService.GetRegionFlags() | ||
38 | /// </remarks> | ||
39 | [Flags] | ||
40 | public enum RegionFlags : int | ||
41 | { | ||
42 | DefaultRegion = 1, // Used for new Rez. Random if multiple defined | ||
43 | FallbackRegion = 2, // Regions we redirect to when the destination is down | ||
44 | RegionOnline = 4, // Set when a region comes online, unset when it unregisters and DeleteOnUnregister is false | ||
45 | NoDirectLogin = 8, // Region unavailable for direct logins (by name) | ||
46 | Persistent = 16, // Don't remove on unregister | ||
47 | LockedOut = 32, // Don't allow registration | ||
48 | NoMove = 64, // Don't allow moving this region | ||
49 | Reservation = 128, // This is an inactive reservation | ||
50 | Authenticate = 256, // Require authentication | ||
51 | Hyperlink = 512 // Record represents a HG link | ||
52 | } | ||
53 | } \ No newline at end of file | ||
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 0869bd5..62f51d9 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -47,6 +47,7 @@ using OpenSim.Region.Framework.Scenes; | |||
47 | using OpenSim.Services.Interfaces; | 47 | using OpenSim.Services.Interfaces; |
48 | using Timer = System.Timers.Timer; | 48 | using Timer = System.Timers.Timer; |
49 | using AssetLandmark = OpenSim.Framework.AssetLandmark; | 49 | using AssetLandmark = OpenSim.Framework.AssetLandmark; |
50 | using RegionFlags = OpenMetaverse.RegionFlags; | ||
50 | using Nini.Config; | 51 | using Nini.Config; |
51 | 52 | ||
52 | using System.IO; | 53 | using System.IO; |
diff --git a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs index aa1e127..679be18 100644 --- a/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs +++ b/OpenSim/Region/CoreModules/Framework/EntityTransfer/HGEntityTransferModule.cs | |||
@@ -212,7 +212,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
212 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, region.RegionID); | 212 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, region.RegionID); |
213 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: region {0} flags: {1}", region.RegionID, flags); | 213 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: region {0} flags: {1}", region.RegionID, flags); |
214 | 214 | ||
215 | if ((flags & (int)OpenSim.Data.RegionFlags.Hyperlink) != 0) | 215 | if ((flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
216 | { | 216 | { |
217 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Destination region {0} is hyperlink", region.RegionID); | 217 | m_log.DebugFormat("[HG ENTITY TRANSFER MODULE]: Destination region {0} is hyperlink", region.RegionID); |
218 | GridRegion real_destination = m_GatekeeperConnector.GetHyperlinkRegion(region, region.RegionID); | 218 | GridRegion real_destination = m_GatekeeperConnector.GetHyperlinkRegion(region, region.RegionID); |
@@ -232,7 +232,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
232 | return true; | 232 | return true; |
233 | 233 | ||
234 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); | 234 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); |
235 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Data.RegionFlags.Hyperlink) != 0) | 235 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
236 | return true; | 236 | return true; |
237 | 237 | ||
238 | return false; | 238 | return false; |
@@ -256,7 +256,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
256 | reason = string.Empty; | 256 | reason = string.Empty; |
257 | logout = false; | 257 | logout = false; |
258 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); | 258 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); |
259 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Data.RegionFlags.Hyperlink) != 0) | 259 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
260 | { | 260 | { |
261 | // this user is going to another grid | 261 | // this user is going to another grid |
262 | // check if HyperGrid teleport is allowed, based on user level | 262 | // check if HyperGrid teleport is allowed, based on user level |
@@ -298,7 +298,7 @@ namespace OpenSim.Region.CoreModules.Framework.EntityTransfer | |||
298 | // The rest is only needed for controlling appearance | 298 | // The rest is only needed for controlling appearance |
299 | 299 | ||
300 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); | 300 | int flags = Scene.GridService.GetRegionFlags(Scene.RegionInfo.ScopeID, reg.RegionID); |
301 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Data.RegionFlags.Hyperlink) != 0) | 301 | if (flags == -1 /* no region in DB */ || (flags & (int)OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
302 | { | 302 | { |
303 | // this user is going to another grid | 303 | // this user is going to another grid |
304 | if (Scene.UserManagementModule.IsLocalGridUser(sp.UUID)) | 304 | if (Scene.UserManagementModule.IsLocalGridUser(sp.UUID)) |
diff --git a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs index 58bbd24..0e6d663 100644 --- a/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Estate/EstateManagementModule.cs | |||
@@ -39,6 +39,7 @@ using OpenMetaverse; | |||
39 | using OpenSim.Framework; | 39 | using OpenSim.Framework; |
40 | using OpenSim.Region.Framework.Interfaces; | 40 | using OpenSim.Region.Framework.Interfaces; |
41 | using OpenSim.Region.Framework.Scenes; | 41 | using OpenSim.Region.Framework.Scenes; |
42 | using RegionFlags = OpenMetaverse.RegionFlags; | ||
42 | 43 | ||
43 | namespace OpenSim.Region.CoreModules.World.Estate | 44 | namespace OpenSim.Region.CoreModules.World.Estate |
44 | { | 45 | { |
diff --git a/OpenSim/Region/CoreModules/World/Land/LandObject.cs b/OpenSim/Region/CoreModules/World/Land/LandObject.cs index 0536f6e..8829f27 100644 --- a/OpenSim/Region/CoreModules/World/Land/LandObject.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandObject.cs | |||
@@ -33,6 +33,7 @@ using OpenMetaverse; | |||
33 | using OpenSim.Framework; | 33 | using OpenSim.Framework; |
34 | using OpenSim.Region.Framework.Interfaces; | 34 | using OpenSim.Region.Framework.Interfaces; |
35 | using OpenSim.Region.Framework.Scenes; | 35 | using OpenSim.Region.Framework.Scenes; |
36 | using RegionFlags = OpenMetaverse.RegionFlags; | ||
36 | 37 | ||
37 | namespace OpenSim.Region.CoreModules.World.Land | 38 | namespace OpenSim.Region.CoreModules.World.Land |
38 | { | 39 | { |
diff --git a/OpenSim/Region/Framework/Scenes/EventManager.cs b/OpenSim/Region/Framework/Scenes/EventManager.cs index e25fa94..a8ff218 100644 --- a/OpenSim/Region/Framework/Scenes/EventManager.cs +++ b/OpenSim/Region/Framework/Scenes/EventManager.cs | |||
@@ -913,7 +913,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
913 | public event SceneObjectPartCopyDelegate OnSceneObjectPartCopy; | 913 | public event SceneObjectPartCopyDelegate OnSceneObjectPartCopy; |
914 | public delegate void SceneObjectPartCopyDelegate(SceneObjectPart copy, SceneObjectPart original, bool userExposed); | 914 | public delegate void SceneObjectPartCopyDelegate(SceneObjectPart copy, SceneObjectPart original, bool userExposed); |
915 | 915 | ||
916 | public delegate void SceneObjectPartUpdated(SceneObjectPart sop); | 916 | public delegate void SceneObjectPartUpdated(SceneObjectPart sop, bool full); |
917 | public event SceneObjectPartUpdated OnSceneObjectPartUpdated; | 917 | public event SceneObjectPartUpdated OnSceneObjectPartUpdated; |
918 | 918 | ||
919 | public delegate void ScenePresenceUpdated(ScenePresence sp); | 919 | public delegate void ScenePresenceUpdated(ScenePresence sp); |
@@ -2837,7 +2837,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2837 | } | 2837 | } |
2838 | } | 2838 | } |
2839 | 2839 | ||
2840 | public void TriggerSceneObjectPartUpdated(SceneObjectPart sop) | 2840 | public void TriggerSceneObjectPartUpdated(SceneObjectPart sop, bool full) |
2841 | { | 2841 | { |
2842 | SceneObjectPartUpdated handler = OnSceneObjectPartUpdated; | 2842 | SceneObjectPartUpdated handler = OnSceneObjectPartUpdated; |
2843 | if (handler != null) | 2843 | if (handler != null) |
@@ -2846,7 +2846,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2846 | { | 2846 | { |
2847 | try | 2847 | try |
2848 | { | 2848 | { |
2849 | d(sop); | 2849 | d(sop, full); |
2850 | } | 2850 | } |
2851 | catch (Exception e) | 2851 | catch (Exception e) |
2852 | { | 2852 | { |
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index e6b8c16..671feda 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -2139,7 +2139,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
2139 | public bool AddRestoredSceneObject( | 2139 | public bool AddRestoredSceneObject( |
2140 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted, bool sendClientUpdates) | 2140 | SceneObjectGroup sceneObject, bool attachToBackup, bool alreadyPersisted, bool sendClientUpdates) |
2141 | { | 2141 | { |
2142 | return m_sceneGraph.AddRestoredSceneObject(sceneObject, attachToBackup, alreadyPersisted, sendClientUpdates); | 2142 | if (m_sceneGraph.AddRestoredSceneObject(sceneObject, attachToBackup, alreadyPersisted, sendClientUpdates)) |
2143 | { | ||
2144 | EventManager.TriggerObjectAddedToScene(sceneObject); | ||
2145 | return true; | ||
2146 | } | ||
2147 | |||
2148 | return false; | ||
2149 | |||
2143 | } | 2150 | } |
2144 | 2151 | ||
2145 | /// <summary> | 2152 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 3f10b34..199526e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2465,7 +2465,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2465 | // UUID, Name, TimeStampFull); | 2465 | // UUID, Name, TimeStampFull); |
2466 | 2466 | ||
2467 | if (ParentGroup.Scene != null) | 2467 | if (ParentGroup.Scene != null) |
2468 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); | 2468 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, true); |
2469 | } | 2469 | } |
2470 | 2470 | ||
2471 | /// <summary> | 2471 | /// <summary> |
@@ -2499,7 +2499,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2499 | } | 2499 | } |
2500 | 2500 | ||
2501 | if (ParentGroup.Scene != null) | 2501 | if (ParentGroup.Scene != null) |
2502 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this); | 2502 | ParentGroup.Scene.EventManager.TriggerSceneObjectPartUpdated(this, false); |
2503 | } | 2503 | } |
2504 | 2504 | ||
2505 | public void ScriptSetPhysicsStatus(bool UsePhysics) | 2505 | public void ScriptSetPhysicsStatus(bool UsePhysics) |
diff --git a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs index f3b0630..c736557 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODECharacter.cs | |||
@@ -100,7 +100,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
100 | private bool m_hackSentFly = false; | 100 | private bool m_hackSentFly = false; |
101 | private int m_requestedUpdateFrequency = 0; | 101 | private int m_requestedUpdateFrequency = 0; |
102 | private Vector3 m_taintPosition; | 102 | private Vector3 m_taintPosition; |
103 | 103 | internal bool m_avatarplanted = false; | |
104 | /// <summary> | 104 | /// <summary> |
105 | /// Hold set forces so we can process them outside physics calculations. This prevents race conditions if we set force | 105 | /// Hold set forces so we can process them outside physics calculations. This prevents race conditions if we set force |
106 | /// while calculatios are going on | 106 | /// while calculatios are going on |
@@ -413,7 +413,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
413 | set | 413 | set |
414 | { | 414 | { |
415 | m_iscollidingObj = value; | 415 | m_iscollidingObj = value; |
416 | if (value) | 416 | if (value && !m_avatarplanted) |
417 | m_pidControllerActive = false; | 417 | m_pidControllerActive = false; |
418 | else | 418 | else |
419 | m_pidControllerActive = true; | 419 | m_pidControllerActive = true; |
diff --git a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs index 7a50c4c..cbe21e2 100644 --- a/OpenSim/Region/Physics/OdePlugin/OdeScene.cs +++ b/OpenSim/Region/Physics/OdePlugin/OdeScene.cs | |||
@@ -501,6 +501,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
501 | public int physics_logging_interval = 0; | 501 | public int physics_logging_interval = 0; |
502 | public bool physics_logging_append_existing_logfile = false; | 502 | public bool physics_logging_append_existing_logfile = false; |
503 | 503 | ||
504 | private bool avplanted = false; | ||
505 | private bool av_av_collisions_off = false; | ||
504 | 506 | ||
505 | public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); | 507 | public d.Vector3 xyz = new d.Vector3(128.1640f, 128.3079f, 25.7600f); |
506 | public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); | 508 | public d.Vector3 hpr = new d.Vector3(125.5000f, -17.0000f, 0.0000f); |
@@ -644,6 +646,9 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
644 | avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f); | 646 | avMovementDivisorWalk = physicsconfig.GetFloat("av_movement_divisor_walk", 1.3f); |
645 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); | 647 | avMovementDivisorRun = physicsconfig.GetFloat("av_movement_divisor_run", 0.8f); |
646 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); | 648 | avCapRadius = physicsconfig.GetFloat("av_capsule_radius", 0.37f); |
649 | avplanted = physicsconfig.GetBoolean("av_planted", false); | ||
650 | av_av_collisions_off = physicsconfig.GetBoolean("av_av_collisions_off", false); | ||
651 | |||
647 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); | 652 | IsAvCapsuleTilted = physicsconfig.GetBoolean("av_capsule_tilted", false); |
648 | 653 | ||
649 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); | 654 | contactsPerCollision = physicsconfig.GetInt("contacts_per_collision", 80); |
@@ -663,6 +668,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
663 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); | 668 | meshSculptLOD = physicsconfig.GetFloat("mesh_lod", 32f); |
664 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); | 669 | MeshSculptphysicalLOD = physicsconfig.GetFloat("mesh_physical_lod", 16f); |
665 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); | 670 | m_filterCollisions = physicsconfig.GetBoolean("filter_collisions", false); |
671 | |||
672 | |||
666 | 673 | ||
667 | if (Environment.OSVersion.Platform == PlatformID.Unix) | 674 | if (Environment.OSVersion.Platform == PlatformID.Unix) |
668 | { | 675 | { |
@@ -1309,6 +1316,10 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1309 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) | 1316 | if ((p1 is OdePrim) && (((OdePrim)p1).m_isVolumeDetect)) |
1310 | skipThisContact = true; // No collision on volume detect prims | 1317 | skipThisContact = true; // No collision on volume detect prims |
1311 | 1318 | ||
1319 | if (av_av_collisions_off) | ||
1320 | if ((p1 is OdeCharacter) && (p2 is OdeCharacter)) | ||
1321 | skipThisContact = true; | ||
1322 | |||
1312 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) | 1323 | if (!skipThisContact && (p2 is OdePrim) && (((OdePrim)p2).m_isVolumeDetect)) |
1313 | skipThisContact = true; // No collision on volume detect prims | 1324 | skipThisContact = true; // No collision on volume detect prims |
1314 | 1325 | ||
@@ -1972,7 +1983,8 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1972 | 1983 | ||
1973 | newAv.Flying = isFlying; | 1984 | newAv.Flying = isFlying; |
1974 | newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset; | 1985 | newAv.MinimumGroundFlightOffset = minimumGroundFlightOffset; |
1975 | 1986 | newAv.m_avatarplanted = avplanted; | |
1987 | |||
1976 | return newAv; | 1988 | return newAv; |
1977 | } | 1989 | } |
1978 | 1990 | ||
@@ -1987,6 +1999,7 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
1987 | 1999 | ||
1988 | internal void AddCharacter(OdeCharacter chr) | 2000 | internal void AddCharacter(OdeCharacter chr) |
1989 | { | 2001 | { |
2002 | chr.m_avatarplanted = avplanted; | ||
1990 | if (!_characters.Contains(chr)) | 2003 | if (!_characters.Contains(chr)) |
1991 | { | 2004 | { |
1992 | _characters.Add(chr); | 2005 | _characters.Add(chr); |
diff --git a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs index 35cb408..038a4bf 100644 --- a/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs +++ b/OpenSim/Services/Connectors/SimianGrid/SimianGridServiceConnector.cs | |||
@@ -384,8 +384,8 @@ namespace OpenSim.Services.Connectors.SimianGrid | |||
384 | if (response["Success"].AsBoolean()) | 384 | if (response["Success"].AsBoolean()) |
385 | { | 385 | { |
386 | OSDMap extraData = response["ExtraData"] as OSDMap; | 386 | OSDMap extraData = response["ExtraData"] as OSDMap; |
387 | int enabled = response["Enabled"].AsBoolean() ? (int) OpenSim.Data.RegionFlags.RegionOnline : 0; | 387 | int enabled = response["Enabled"].AsBoolean() ? (int)OpenSim.Framework.RegionFlags.RegionOnline : 0; |
388 | int hypergrid = extraData["HyperGrid"].AsBoolean() ? (int) OpenSim.Data.RegionFlags.Hyperlink : 0; | 388 | int hypergrid = extraData["HyperGrid"].AsBoolean() ? (int)OpenSim.Framework.RegionFlags.Hyperlink : 0; |
389 | int flags = enabled | hypergrid; | 389 | int flags = enabled | hypergrid; |
390 | m_log.DebugFormat("[SGGC] enabled - {0} hg - {1} flags - {2}", enabled, hypergrid, flags); | 390 | m_log.DebugFormat("[SGGC] enabled - {0} hg - {1} flags - {2}", enabled, hypergrid, flags); |
391 | return flags; | 391 | return flags; |
diff --git a/OpenSim/Services/GridService/GridService.cs b/OpenSim/Services/GridService/GridService.cs index 5bdea06..ee3b858 100644 --- a/OpenSim/Services/GridService/GridService.cs +++ b/OpenSim/Services/GridService/GridService.cs | |||
@@ -151,11 +151,11 @@ namespace OpenSim.Services.GridService | |||
151 | // | 151 | // |
152 | // Get it's flags | 152 | // Get it's flags |
153 | // | 153 | // |
154 | OpenSim.Data.RegionFlags rflags = (OpenSim.Data.RegionFlags)Convert.ToInt32(region.Data["flags"]); | 154 | OpenSim.Framework.RegionFlags rflags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(region.Data["flags"]); |
155 | 155 | ||
156 | // Is this a reservation? | 156 | // Is this a reservation? |
157 | // | 157 | // |
158 | if ((rflags & OpenSim.Data.RegionFlags.Reservation) != 0) | 158 | if ((rflags & OpenSim.Framework.RegionFlags.Reservation) != 0) |
159 | { | 159 | { |
160 | // Regions reserved for the null key cannot be taken. | 160 | // Regions reserved for the null key cannot be taken. |
161 | if ((string)region.Data["PrincipalID"] == UUID.Zero.ToString()) | 161 | if ((string)region.Data["PrincipalID"] == UUID.Zero.ToString()) |
@@ -166,10 +166,10 @@ namespace OpenSim.Services.GridService | |||
166 | // NOTE: Fudging the flags value here, so these flags | 166 | // NOTE: Fudging the flags value here, so these flags |
167 | // should not be used elsewhere. Don't optimize | 167 | // should not be used elsewhere. Don't optimize |
168 | // this with the later retrieval of the same flags! | 168 | // this with the later retrieval of the same flags! |
169 | rflags |= OpenSim.Data.RegionFlags.Authenticate; | 169 | rflags |= OpenSim.Framework.RegionFlags.Authenticate; |
170 | } | 170 | } |
171 | 171 | ||
172 | if ((rflags & OpenSim.Data.RegionFlags.Authenticate) != 0) | 172 | if ((rflags & OpenSim.Framework.RegionFlags.Authenticate) != 0) |
173 | { | 173 | { |
174 | // Can we authenticate at all? | 174 | // Can we authenticate at all? |
175 | // | 175 | // |
@@ -205,10 +205,10 @@ namespace OpenSim.Services.GridService | |||
205 | if ((region != null) && (region.RegionID == regionInfos.RegionID) && | 205 | if ((region != null) && (region.RegionID == regionInfos.RegionID) && |
206 | ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY))) | 206 | ((region.posX != regionInfos.RegionLocX) || (region.posY != regionInfos.RegionLocY))) |
207 | { | 207 | { |
208 | if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Data.RegionFlags.NoMove) != 0) | 208 | if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.NoMove) != 0) |
209 | return "Can't move this region"; | 209 | return "Can't move this region"; |
210 | 210 | ||
211 | if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Data.RegionFlags.LockedOut) != 0) | 211 | if ((Convert.ToInt32(region.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.LockedOut) != 0) |
212 | return "Region locked out"; | 212 | return "Region locked out"; |
213 | 213 | ||
214 | // Region reregistering in other coordinates. Delete the old entry | 214 | // Region reregistering in other coordinates. Delete the old entry |
@@ -233,7 +233,7 @@ namespace OpenSim.Services.GridService | |||
233 | { | 233 | { |
234 | int oldFlags = Convert.ToInt32(region.Data["flags"]); | 234 | int oldFlags = Convert.ToInt32(region.Data["flags"]); |
235 | 235 | ||
236 | oldFlags &= ~(int)OpenSim.Data.RegionFlags.Reservation; | 236 | oldFlags &= ~(int)OpenSim.Framework.RegionFlags.Reservation; |
237 | 237 | ||
238 | rdata.Data["flags"] = oldFlags.ToString(); // Preserve flags | 238 | rdata.Data["flags"] = oldFlags.ToString(); // Preserve flags |
239 | } | 239 | } |
@@ -252,7 +252,7 @@ namespace OpenSim.Services.GridService | |||
252 | } | 252 | } |
253 | 253 | ||
254 | int flags = Convert.ToInt32(rdata.Data["flags"]); | 254 | int flags = Convert.ToInt32(rdata.Data["flags"]); |
255 | flags |= (int)OpenSim.Data.RegionFlags.RegionOnline; | 255 | flags |= (int)OpenSim.Framework.RegionFlags.RegionOnline; |
256 | rdata.Data["flags"] = flags.ToString(); | 256 | rdata.Data["flags"] = flags.ToString(); |
257 | 257 | ||
258 | try | 258 | try |
@@ -283,9 +283,9 @@ namespace OpenSim.Services.GridService | |||
283 | 283 | ||
284 | int flags = Convert.ToInt32(region.Data["flags"]); | 284 | int flags = Convert.ToInt32(region.Data["flags"]); |
285 | 285 | ||
286 | if (!m_DeleteOnUnregister || (flags & (int)OpenSim.Data.RegionFlags.Persistent) != 0) | 286 | if (!m_DeleteOnUnregister || (flags & (int)OpenSim.Framework.RegionFlags.Persistent) != 0) |
287 | { | 287 | { |
288 | flags &= ~(int)OpenSim.Data.RegionFlags.RegionOnline; | 288 | flags &= ~(int)OpenSim.Framework.RegionFlags.RegionOnline; |
289 | region.Data["flags"] = flags.ToString(); | 289 | region.Data["flags"] = flags.ToString(); |
290 | region.Data["last_seen"] = Util.UnixTimeSinceEpoch(); | 290 | region.Data["last_seen"] = Util.UnixTimeSinceEpoch(); |
291 | try | 291 | try |
@@ -320,7 +320,7 @@ namespace OpenSim.Services.GridService | |||
320 | if (rdata.RegionID != regionID) | 320 | if (rdata.RegionID != regionID) |
321 | { | 321 | { |
322 | int flags = Convert.ToInt32(rdata.Data["flags"]); | 322 | int flags = Convert.ToInt32(rdata.Data["flags"]); |
323 | if ((flags & (int)Data.RegionFlags.Hyperlink) == 0) // no hyperlinks as neighbours | 323 | if ((flags & (int)Framework.RegionFlags.Hyperlink) == 0) // no hyperlinks as neighbours |
324 | rinfos.Add(RegionData2RegionInfo(rdata)); | 324 | rinfos.Add(RegionData2RegionInfo(rdata)); |
325 | } | 325 | } |
326 | } | 326 | } |
@@ -470,7 +470,7 @@ namespace OpenSim.Services.GridService | |||
470 | 470 | ||
471 | foreach (RegionData r in regions) | 471 | foreach (RegionData r in regions) |
472 | { | 472 | { |
473 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Data.RegionFlags.RegionOnline) != 0) | 473 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.RegionOnline) != 0) |
474 | ret.Add(RegionData2RegionInfo(r)); | 474 | ret.Add(RegionData2RegionInfo(r)); |
475 | } | 475 | } |
476 | 476 | ||
@@ -486,7 +486,7 @@ namespace OpenSim.Services.GridService | |||
486 | 486 | ||
487 | foreach (RegionData r in regions) | 487 | foreach (RegionData r in regions) |
488 | { | 488 | { |
489 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Data.RegionFlags.RegionOnline) != 0) | 489 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.RegionOnline) != 0) |
490 | ret.Add(RegionData2RegionInfo(r)); | 490 | ret.Add(RegionData2RegionInfo(r)); |
491 | } | 491 | } |
492 | 492 | ||
@@ -502,7 +502,7 @@ namespace OpenSim.Services.GridService | |||
502 | 502 | ||
503 | foreach (RegionData r in regions) | 503 | foreach (RegionData r in regions) |
504 | { | 504 | { |
505 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Data.RegionFlags.RegionOnline) != 0) | 505 | if ((Convert.ToInt32(r.Data["flags"]) & (int)OpenSim.Framework.RegionFlags.RegionOnline) != 0) |
506 | ret.Add(RegionData2RegionInfo(r)); | 506 | ret.Add(RegionData2RegionInfo(r)); |
507 | } | 507 | } |
508 | 508 | ||
@@ -629,7 +629,7 @@ namespace OpenSim.Services.GridService | |||
629 | 629 | ||
630 | private void OutputRegionToConsole(RegionData r) | 630 | private void OutputRegionToConsole(RegionData r) |
631 | { | 631 | { |
632 | OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]); | 632 | OpenSim.Framework.RegionFlags flags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(r.Data["flags"]); |
633 | 633 | ||
634 | ConsoleDisplayList dispList = new ConsoleDisplayList(); | 634 | ConsoleDisplayList dispList = new ConsoleDisplayList(); |
635 | dispList.AddRow("Region Name", r.RegionName); | 635 | dispList.AddRow("Region Name", r.RegionName); |
@@ -659,7 +659,7 @@ namespace OpenSim.Services.GridService | |||
659 | 659 | ||
660 | foreach (RegionData r in regions) | 660 | foreach (RegionData r in regions) |
661 | { | 661 | { |
662 | OpenSim.Data.RegionFlags flags = (OpenSim.Data.RegionFlags)Convert.ToInt32(r.Data["flags"]); | 662 | OpenSim.Framework.RegionFlags flags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(r.Data["flags"]); |
663 | dispTable.AddRow( | 663 | dispTable.AddRow( |
664 | r.RegionName, | 664 | r.RegionName, |
665 | r.RegionID.ToString(), | 665 | r.RegionID.ToString(), |
@@ -673,7 +673,7 @@ namespace OpenSim.Services.GridService | |||
673 | 673 | ||
674 | private int ParseFlags(int prev, string flags) | 674 | private int ParseFlags(int prev, string flags) |
675 | { | 675 | { |
676 | OpenSim.Data.RegionFlags f = (OpenSim.Data.RegionFlags)prev; | 676 | OpenSim.Framework.RegionFlags f = (OpenSim.Framework.RegionFlags)prev; |
677 | 677 | ||
678 | string[] parts = flags.Split(new char[] {',', ' '}, StringSplitOptions.RemoveEmptyEntries); | 678 | string[] parts = flags.Split(new char[] {',', ' '}, StringSplitOptions.RemoveEmptyEntries); |
679 | 679 | ||
@@ -685,18 +685,18 @@ namespace OpenSim.Services.GridService | |||
685 | { | 685 | { |
686 | if (p.StartsWith("+")) | 686 | if (p.StartsWith("+")) |
687 | { | 687 | { |
688 | val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p.Substring(1)); | 688 | val = (int)Enum.Parse(typeof(OpenSim.Framework.RegionFlags), p.Substring(1)); |
689 | f |= (OpenSim.Data.RegionFlags)val; | 689 | f |= (OpenSim.Framework.RegionFlags)val; |
690 | } | 690 | } |
691 | else if (p.StartsWith("-")) | 691 | else if (p.StartsWith("-")) |
692 | { | 692 | { |
693 | val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p.Substring(1)); | 693 | val = (int)Enum.Parse(typeof(OpenSim.Framework.RegionFlags), p.Substring(1)); |
694 | f &= ~(OpenSim.Data.RegionFlags)val; | 694 | f &= ~(OpenSim.Framework.RegionFlags)val; |
695 | } | 695 | } |
696 | else | 696 | else |
697 | { | 697 | { |
698 | val = (int)Enum.Parse(typeof(OpenSim.Data.RegionFlags), p); | 698 | val = (int)Enum.Parse(typeof(OpenSim.Framework.RegionFlags), p); |
699 | f |= (OpenSim.Data.RegionFlags)val; | 699 | f |= (OpenSim.Framework.RegionFlags)val; |
700 | } | 700 | } |
701 | } | 701 | } |
702 | catch (Exception) | 702 | catch (Exception) |
@@ -728,7 +728,7 @@ namespace OpenSim.Services.GridService | |||
728 | int flags = Convert.ToInt32(r.Data["flags"]); | 728 | int flags = Convert.ToInt32(r.Data["flags"]); |
729 | flags = ParseFlags(flags, cmd[4]); | 729 | flags = ParseFlags(flags, cmd[4]); |
730 | r.Data["flags"] = flags.ToString(); | 730 | r.Data["flags"] = flags.ToString(); |
731 | OpenSim.Data.RegionFlags f = (OpenSim.Data.RegionFlags)flags; | 731 | OpenSim.Framework.RegionFlags f = (OpenSim.Framework.RegionFlags)flags; |
732 | 732 | ||
733 | MainConsole.Instance.Output(String.Format("Set region {0} to {1}", r.RegionName, f)); | 733 | MainConsole.Instance.Output(String.Format("Set region {0} to {1}", r.RegionName, f)); |
734 | m_Database.Store(r); | 734 | m_Database.Store(r); |
diff --git a/OpenSim/Services/GridService/HypergridLinker.cs b/OpenSim/Services/GridService/HypergridLinker.cs index 78eab3d..743d089 100644 --- a/OpenSim/Services/GridService/HypergridLinker.cs +++ b/OpenSim/Services/GridService/HypergridLinker.cs | |||
@@ -390,8 +390,8 @@ namespace OpenSim.Services.GridService | |||
390 | List<RegionData> regions = m_Database.Get(mapName, m_ScopeID); | 390 | List<RegionData> regions = m_Database.Get(mapName, m_ScopeID); |
391 | if (regions != null && regions.Count > 0) | 391 | if (regions != null && regions.Count > 0) |
392 | { | 392 | { |
393 | OpenSim.Data.RegionFlags rflags = (OpenSim.Data.RegionFlags)Convert.ToInt32(regions[0].Data["flags"]); | 393 | OpenSim.Framework.RegionFlags rflags = (OpenSim.Framework.RegionFlags)Convert.ToInt32(regions[0].Data["flags"]); |
394 | if ((rflags & OpenSim.Data.RegionFlags.Hyperlink) != 0) | 394 | if ((rflags & OpenSim.Framework.RegionFlags.Hyperlink) != 0) |
395 | { | 395 | { |
396 | regInfo = new GridRegion(); | 396 | regInfo = new GridRegion(); |
397 | regInfo.RegionID = regions[0].RegionID; | 397 | regInfo.RegionID = regions[0].RegionID; |
@@ -460,7 +460,7 @@ namespace OpenSim.Services.GridService | |||
460 | private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle) | 460 | private void AddHyperlinkRegion(GridRegion regionInfo, ulong regionHandle) |
461 | { | 461 | { |
462 | RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo); | 462 | RegionData rdata = m_GridService.RegionInfo2RegionData(regionInfo); |
463 | int flags = (int)OpenSim.Data.RegionFlags.Hyperlink + (int)OpenSim.Data.RegionFlags.NoDirectLogin + (int)OpenSim.Data.RegionFlags.RegionOnline; | 463 | int flags = (int)OpenSim.Framework.RegionFlags.Hyperlink + (int)OpenSim.Framework.RegionFlags.NoDirectLogin + (int)OpenSim.Framework.RegionFlags.RegionOnline; |
464 | rdata.Data["flags"] = flags.ToString(); | 464 | rdata.Data["flags"] = flags.ToString(); |
465 | 465 | ||
466 | m_Database.Store(rdata); | 466 | m_Database.Store(rdata); |
diff --git a/OpenSim/Services/Interfaces/IGridService.cs b/OpenSim/Services/Interfaces/IGridService.cs index d809996..d7da056 100644 --- a/OpenSim/Services/Interfaces/IGridService.cs +++ b/OpenSim/Services/Interfaces/IGridService.cs | |||
@@ -100,6 +100,19 @@ namespace OpenSim.Services.Interfaces | |||
100 | List<GridRegion> GetFallbackRegions(UUID scopeID, int x, int y); | 100 | List<GridRegion> GetFallbackRegions(UUID scopeID, int x, int y); |
101 | List<GridRegion> GetHyperlinks(UUID scopeID); | 101 | List<GridRegion> GetHyperlinks(UUID scopeID); |
102 | 102 | ||
103 | /// <summary> | ||
104 | /// Get internal OpenSimulator region flags. | ||
105 | /// </summary> | ||
106 | /// <remarks> | ||
107 | /// See OpenSimulator.Framework.RegionFlags. These are not returned in the GridRegion structure - | ||
108 | /// they currently need to be requested separately. Possibly this should change to avoid multiple service calls | ||
109 | /// in some situations. | ||
110 | /// </remarks> | ||
111 | /// <returns> | ||
112 | /// The region flags. | ||
113 | /// </returns> | ||
114 | /// <param name='scopeID'></param> | ||
115 | /// <param name='regionID'></param> | ||
103 | int GetRegionFlags(UUID scopeID, UUID regionID); | 116 | int GetRegionFlags(UUID scopeID, UUID regionID); |
104 | } | 117 | } |
105 | 118 | ||