aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/ScenePresence.cs
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2013-12-05 02:10:46 +0000
committerJustin Clark-Casey (justincc)2013-12-05 02:10:46 +0000
commit17b32b764acd815400d9eb903aaec6dcebd60ac7 (patch)
treeba6ccf9987f40940b77f779d07ba187c463c9c4a /OpenSim/Region/Framework/Scenes/ScenePresence.cs
parentIgnore X and Y body rotations when sent by mouse look. (diff)
downloadopensim-SC_OLD-17b32b764acd815400d9eb903aaec6dcebd60ac7.zip
opensim-SC_OLD-17b32b764acd815400d9eb903aaec6dcebd60ac7.tar.gz
opensim-SC_OLD-17b32b764acd815400d9eb903aaec6dcebd60ac7.tar.bz2
opensim-SC_OLD-17b32b764acd815400d9eb903aaec6dcebd60ac7.tar.xz
Fix regression where mouse look flight direction no longer worked by zeroing x/y rot before sending agent updates, instead of before any agent update processing
It turns out that the x/y rot data in mouselook is needed to implement this and to push the avatar against the ground if walking in mouselook. Doing this in the terse send so that we preserve mouselook rotation information
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs15
1 files changed, 2 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index dae20a5..7ed3a4b 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1652,20 +1652,9 @@ namespace OpenSim.Region.Framework.Scenes
1652 1652
1653 bool update_rotation = false; 1653 bool update_rotation = false;
1654 1654
1655 // Whilst not in mouselook, an avatar will transmit only the Z rotation as this is the only axis 1655 if (agentData.BodyRotation != Rotation)
1656 // it rotates around.
1657 // In mouselook, X and Y co-ordinate will also be sent but when used in Rotation, these cause unwanted
1658 // excessive up and down movements of the camera when looking up and down.
1659 // See http://opensimulator.org/mantis/view.php?id=3274
1660 // This does not affect head movement, since this is controlled entirely by camera movement rather than
1661 // body rotation. It does not affect sitting avatar since it's the sitting part rotation that takes
1662 // effect, not the avatar rotation.
1663 // However, if we do need to store X and Y rotations in the future, another solution needs to be found
1664 // for the mouselook bug. Possibly, one could strip out X and Y rotations before sending the avatar
1665 // update messages.
1666 if (agentData.BodyRotation.Z != Rotation.Z || agentData.BodyRotation.W != Rotation.W)
1667 { 1656 {
1668 Rotation = new Quaternion(0, 0, agentData.BodyRotation.Z, agentData.BodyRotation.W); 1657 Rotation = agentData.BodyRotation;
1669 update_rotation = true; 1658 update_rotation = true;
1670 } 1659 }
1671 1660