diff options
Fix the unscripted sit rotation being incorrect (relative to the prim). Note that unscripted sit offset is still really poor but this is not something i'm prepared to spend time on fixing.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 56e7e93..5191236 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -2053,9 +2053,13 @@ namespace OpenSim.Region.Framework.Scenes | |||
2053 | //Console.WriteLine("Camera Eye ={0}", cameraEyeOffset); | 2053 | //Console.WriteLine("Camera Eye ={0}", cameraEyeOffset); |
2054 | 2054 | ||
2055 | //NOTE: SendSitResponse should be relative to the GROUP *NOT* THE PRIM if we're sitting on a child | 2055 | //NOTE: SendSitResponse should be relative to the GROUP *NOT* THE PRIM if we're sitting on a child |
2056 | ControllingClient.SendSitResponse(part.ParentGroup.UUID, ((offset * part.RotationOffset) + part.OffsetPosition), sitOrientation, autopilot, cameraAtOffset, cameraEyeOffset, forceMouselook); | 2056 | Quaternion roffset = Quaternion.Identity; |
2057 | if (SitTargetisSet) | ||
2058 | { | ||
2059 | roffset = part.RotationOffset; | ||
2060 | } | ||
2061 | ControllingClient.SendSitResponse(part.ParentGroup.UUID, ((offset * roffset) + part.OffsetPosition), sitOrientation / part.RotationOffset, autopilot, cameraAtOffset, cameraEyeOffset, forceMouselook); | ||
2057 | 2062 | ||
2058 | m_requestedSitTargetUUID = part.UUID; //KF: Correct autopilot target | ||
2059 | // This calls HandleAgentSit twice, once from here, and the client calls | 2063 | // This calls HandleAgentSit twice, once from here, and the client calls |
2060 | // HandleAgentSit itself after it gets to the location | 2064 | // HandleAgentSit itself after it gets to the location |
2061 | // It doesn't get to the location until we've moved them there though | 2065 | // It doesn't get to the location until we've moved them there though |
@@ -2441,7 +2445,7 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos); | |||
2441 | } | 2445 | } |
2442 | 2446 | ||
2443 | m_linkedPrim = part.UUID; | 2447 | m_linkedPrim = part.UUID; |
2444 | 2448 | m_offsetRotation = m_offsetRotation / part.RotationOffset; | |
2445 | Velocity = Vector3.Zero; | 2449 | Velocity = Vector3.Zero; |
2446 | RemoveFromPhysicalScene(); | 2450 | RemoveFromPhysicalScene(); |
2447 | Animator.TrySetMovementAnimation(sitAnimation); | 2451 | Animator.TrySetMovementAnimation(sitAnimation); |