diff options
Merge branch 'avination' into careminster
Conflicts:
OpenSim/Region/Framework/Interfaces/ISimulationDataService.cs
OpenSim/Services/Connectors/Simulation/SimulationDataService.cs
OpenSim/Tests/Common/Mock/MockRegionDataPlugin.cs
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index e83696b..6feb883 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1059,6 +1059,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
1059 | IsChildAgent = true; | 1059 | IsChildAgent = true; |
1060 | m_scene.SwapRootAgentCount(true); | 1060 | m_scene.SwapRootAgentCount(true); |
1061 | RemoveFromPhysicalScene(); | 1061 | RemoveFromPhysicalScene(); |
1062 | ParentID = 0; // Child agents can't be sitting | ||
1062 | 1063 | ||
1063 | // FIXME: Set RegionHandle to the region handle of the scene this agent is moving into | 1064 | // FIXME: Set RegionHandle to the region handle of the scene this agent is moving into |
1064 | 1065 | ||
@@ -2102,6 +2103,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2102 | 2103 | ||
2103 | public void HandleAgentRequestSit(IClientAPI remoteClient, UUID agentID, UUID targetID, Vector3 offset) | 2104 | public void HandleAgentRequestSit(IClientAPI remoteClient, UUID agentID, UUID targetID, Vector3 offset) |
2104 | { | 2105 | { |
2106 | if (IsChildAgent) | ||
2107 | return; | ||
2108 | |||
2105 | if (ParentID != 0) | 2109 | if (ParentID != 0) |
2106 | { | 2110 | { |
2107 | StandUp(); | 2111 | StandUp(); |
@@ -2905,8 +2909,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
2905 | 2909 | ||
2906 | // If we don't have a PhysActor, we can't cross anyway | 2910 | // If we don't have a PhysActor, we can't cross anyway |
2907 | // Also don't do this while sat, sitting avatars cross with the | 2911 | // Also don't do this while sat, sitting avatars cross with the |
2908 | // object they sit on. | 2912 | // object they sit on. ParentUUID denoted a pending sit, don't |
2909 | if (ParentID != 0 || PhysicsActor == null) | 2913 | // interfere with it. |
2914 | if (ParentID != 0 || PhysicsActor == null || ParentUUID != UUID.Zero) | ||
2910 | return; | 2915 | return; |
2911 | 2916 | ||
2912 | if (!IsInTransit) | 2917 | if (!IsInTransit) |