aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/Framework/Scenes/ScenePresence.cs19
1 files changed, 19 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
index 33db88b..6433878 100644
--- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs
+++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs
@@ -1125,6 +1125,25 @@ namespace OpenSim.Region.Framework.Scenes
1125 1125
1126 public void StopFlying() 1126 public void StopFlying()
1127 { 1127 {
1128 Vector3 pos = AbsolutePosition;
1129 if (Appearance.AvatarHeight != 127.0f)
1130 pos += new Vector3(0f, 0f, (Appearance.AvatarHeight / 6f));
1131 else
1132 pos += new Vector3(0f, 0f, (1.56f / 6f));
1133
1134 AbsolutePosition = pos;
1135
1136 // attach a suitable collision plane regardless of the actual situation to force the LLClient to land.
1137 // Collision plane below the avatar's position a 6th of the avatar's height is suitable.
1138 // Mind you, that this method doesn't get called if the avatar's velocity magnitude is greater then a
1139 // certain amount.. because the LLClient wouldn't land in that situation anyway.
1140
1141 // why are we still testing for this really old height value default???
1142 if (Appearance.AvatarHeight != 127.0f)
1143 CollisionPlane = new Vector4(0, 0, 0, pos.Z - Appearance.AvatarHeight / 6f);
1144 else
1145 CollisionPlane = new Vector4(0, 0, 0, pos.Z - (1.56f / 6f));
1146
1128 ControllingClient.SendAgentTerseUpdate(this); 1147 ControllingClient.SendAgentTerseUpdate(this);
1129 } 1148 }
1130 1149