aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs25
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs2
2 files changed, 19 insertions, 8 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 1d65136..3a0ddae 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5098,11 +5098,15 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5098 // excessive up and down movements of the camera when looking up and down. 5098 // excessive up and down movements of the camera when looking up and down.
5099 // See http://opensimulator.org/mantis/view.php?id=3274 5099 // See http://opensimulator.org/mantis/view.php?id=3274
5100 // This does not affect head movement, since this is controlled entirely by camera movement rather than 5100 // This does not affect head movement, since this is controlled entirely by camera movement rather than
5101 // body rotation. It does not affect sitting avatar since it's the sitting part rotation that takes 5101 // body rotation. We still need to transmit X and Y for sitting avatars but mouselook does not change
5102 // effect, not the avatar rotation. 5102 // the rotation in this case.
5103 rotation = presence.Rotation; 5103 rotation = presence.Rotation;
5104 rotation.X = 0; 5104
5105 rotation.Y = 0; 5105 if (!presence.IsSatOnObject)
5106 {
5107 rotation.X = 0;
5108 rotation.Y = 0;
5109 }
5106 5110
5107 if (sendTexture) 5111 if (sendTexture)
5108 textureEntry = presence.Appearance.Texture.GetBytes(); 5112 textureEntry = presence.Appearance.Texture.GetBytes();
@@ -5225,11 +5229,16 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5225 // excessive up and down movements of the camera when looking up and down. 5229 // excessive up and down movements of the camera when looking up and down.
5226 // See http://opensimulator.org/mantis/view.php?id=3274 5230 // See http://opensimulator.org/mantis/view.php?id=3274
5227 // This does not affect head movement, since this is controlled entirely by camera movement rather than 5231 // This does not affect head movement, since this is controlled entirely by camera movement rather than
5228 // body rotation. It does not affect sitting avatar since it's the sitting part rotation that takes 5232 // body rotation. We still need to transmit X and Y for sitting avatars but mouselook does not change
5229 // effect, not the avatar rotation. 5233 // the rotation in this case.
5230 Quaternion rot = data.Rotation; 5234 Quaternion rot = data.Rotation;
5231 rot.X = 0; 5235
5232 rot.Y = 0; 5236 if (!data.IsSatOnObject)
5237 {
5238 rot.X = 0;
5239 rot.Y = 0;
5240 }
5241
5233 rot.ToBytes(objectData, 52); 5242 rot.ToBytes(objectData, 52);
5234 //data.AngularVelocity.ToBytes(objectData, 64); 5243 //data.AngularVelocity.ToBytes(objectData, 64);
5235 5244
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index cf98ef2..5e80f5a 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1902,6 +1902,8 @@ namespace OpenSim.Region.Framework.Scenes
1902 ControllingClient.SendAgentTerseUpdate(this); 1902 ControllingClient.SendAgentTerseUpdate(this);
1903 1903
1904 PhysicsActor actor = PhysicsActor; 1904 PhysicsActor actor = PhysicsActor;
1905
1906 // This will be the case if the agent is sitting on the groudn or on an object.
1905 if (actor == null) 1907 if (actor == null)
1906 { 1908 {
1907 SendControlsToScripts(flagsForScripts); 1909 SendControlsToScripts(flagsForScripts);