diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 2a39ffd..c16c544 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -1990,7 +1990,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
1990 | // m_log.DebugFormat("[SCENE PRESENCE]: Resetting move to target for {0}", Name); | 1990 | // m_log.DebugFormat("[SCENE PRESENCE]: Resetting move to target for {0}", Name); |
1991 | 1991 | ||
1992 | MovingToTarget = false; | 1992 | MovingToTarget = false; |
1993 | MoveToPositionTarget = Vector3.Zero; | 1993 | // MoveToPositionTarget = Vector3.Zero; |
1994 | m_forceToApply = null; // cancel possible last action | ||
1994 | 1995 | ||
1995 | // We need to reset the control flag as the ScenePresenceAnimator uses this to determine the correct | 1996 | // We need to reset the control flag as the ScenePresenceAnimator uses this to determine the correct |
1996 | // resting animation (e.g. hover or stand). NPCs don't have a client that will quickly reset this flag. | 1997 | // resting animation (e.g. hover or stand). NPCs don't have a client that will quickly reset this flag. |
@@ -2140,12 +2141,18 @@ namespace OpenSim.Region.Framework.Scenes | |||
2140 | 2141 | ||
2141 | if (canSit) | 2142 | if (canSit) |
2142 | { | 2143 | { |
2144 | |||
2143 | if (PhysicsActor != null) | 2145 | if (PhysicsActor != null) |
2144 | { | 2146 | { |
2145 | // We can remove the physicsActor until they stand up. | 2147 | // We can remove the physicsActor until they stand up. |
2146 | RemoveFromPhysicalScene(); | 2148 | RemoveFromPhysicalScene(); |
2147 | } | 2149 | } |
2148 | 2150 | ||
2151 | if (MovingToTarget) | ||
2152 | ResetMoveToTarget(); | ||
2153 | |||
2154 | Velocity = Vector3.Zero; | ||
2155 | |||
2149 | part.AddSittingAvatar(UUID); | 2156 | part.AddSittingAvatar(UUID); |
2150 | 2157 | ||
2151 | cameraAtOffset = part.GetCameraAtOffset(); | 2158 | cameraAtOffset = part.GetCameraAtOffset(); |
@@ -2230,6 +2237,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2230 | return true; | 2237 | return true; |
2231 | } | 2238 | } |
2232 | 2239 | ||
2240 | |||
2233 | // not doing autopilot | 2241 | // not doing autopilot |
2234 | m_requestedSitTargetID = 0; | 2242 | m_requestedSitTargetID = 0; |
2235 | 2243 | ||
@@ -2259,8 +2267,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
2259 | 2267 | ||
2260 | // m_log.InfoFormat("physsit {0} {1}", offset.ToString(),Orientation.ToString()); | 2268 | // m_log.InfoFormat("physsit {0} {1}", offset.ToString(),Orientation.ToString()); |
2261 | 2269 | ||
2270 | RemoveFromPhysicalScene(); | ||
2271 | |||
2272 | if (MovingToTarget) | ||
2273 | ResetMoveToTarget(); | ||
2274 | |||
2275 | Velocity = Vector3.Zero; | ||
2276 | |||
2262 | part.AddSittingAvatar(UUID); | 2277 | part.AddSittingAvatar(UUID); |
2263 | 2278 | ||
2279 | |||
2264 | Vector3 cameraAtOffset = part.GetCameraAtOffset(); | 2280 | Vector3 cameraAtOffset = part.GetCameraAtOffset(); |
2265 | Vector3 cameraEyeOffset = part.GetCameraEyeOffset(); | 2281 | Vector3 cameraEyeOffset = part.GetCameraEyeOffset(); |
2266 | bool forceMouselook = part.GetForceMouselook(); | 2282 | bool forceMouselook = part.GetForceMouselook(); |
@@ -2269,8 +2285,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2269 | part.UUID, offset, Orientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook); | 2285 | part.UUID, offset, Orientation, false, cameraAtOffset, cameraEyeOffset, forceMouselook); |
2270 | 2286 | ||
2271 | // not using autopilot | 2287 | // not using autopilot |
2272 | Velocity = Vector3.Zero; | ||
2273 | RemoveFromPhysicalScene(); | ||
2274 | 2288 | ||
2275 | Rotation = Orientation; | 2289 | Rotation = Orientation; |
2276 | m_pos = offset; | 2290 | m_pos = offset; |
@@ -2317,6 +2331,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2317 | return; | 2331 | return; |
2318 | } | 2332 | } |
2319 | 2333 | ||
2334 | |||
2320 | if (part.SitTargetAvatar == UUID) | 2335 | if (part.SitTargetAvatar == UUID) |
2321 | { | 2336 | { |
2322 | Vector3 sitTargetPos = part.SitTargetPosition; | 2337 | Vector3 sitTargetPos = part.SitTargetPosition; |