diff options
Diffstat (limited to 'OpenSim')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 19 |
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 | ||