diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs')
-rw-r--r-- | OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | 27 |
1 files changed, 4 insertions, 23 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs index 2907580..a8759ab 100644 --- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs | |||
@@ -5016,7 +5016,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5016 | { | 5016 | { |
5017 | ScenePresence presence = (ScenePresence)entity; | 5017 | ScenePresence presence = (ScenePresence)entity; |
5018 | 5018 | ||
5019 | attachPoint = 0; | 5019 | attachPoint = presence.State; |
5020 | collisionPlane = presence.CollisionPlane; | 5020 | collisionPlane = presence.CollisionPlane; |
5021 | position = presence.OffsetPosition; | 5021 | position = presence.OffsetPosition; |
5022 | velocity = presence.Velocity; | 5022 | velocity = presence.Velocity; |
@@ -5040,7 +5040,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5040 | SceneObjectPart part = (SceneObjectPart)entity; | 5040 | SceneObjectPart part = (SceneObjectPart)entity; |
5041 | 5041 | ||
5042 | attachPoint = part.ParentGroup.AttachmentPoint; | 5042 | attachPoint = part.ParentGroup.AttachmentPoint; |
5043 | 5043 | attachPoint = ((attachPoint % 16) * 16 + (attachPoint / 16)); | |
5044 | // m_log.DebugFormat( | 5044 | // m_log.DebugFormat( |
5045 | // "[LLCLIENTVIEW]: Sending attachPoint {0} for {1} {2} to {3}", | 5045 | // "[LLCLIENTVIEW]: Sending attachPoint {0} for {1} {2} to {3}", |
5046 | // attachPoint, part.Name, part.LocalId, Name); | 5046 | // attachPoint, part.Name, part.LocalId, Name); |
@@ -5068,7 +5068,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5068 | pos += 4; | 5068 | pos += 4; |
5069 | 5069 | ||
5070 | // Avatar/CollisionPlane | 5070 | // Avatar/CollisionPlane |
5071 | data[pos++] = (byte)((attachPoint % 16) * 16 + (attachPoint / 16)); ; | 5071 | data[pos++] = (byte) attachPoint; |
5072 | if (avatar) | 5072 | if (avatar) |
5073 | { | 5073 | { |
5074 | data[pos++] = 1; | 5074 | data[pos++] = 1; |
@@ -12550,7 +12550,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12550 | OutPacket(dialog, ThrottleOutPacketType.Task); | 12550 | OutPacket(dialog, ThrottleOutPacketType.Task); |
12551 | } | 12551 | } |
12552 | 12552 | ||
12553 | public void StopFlying(ISceneEntity p) | 12553 | public void SendAgentTerseUpdate(ISceneEntity p) |
12554 | { | 12554 | { |
12555 | if (p is ScenePresence) | 12555 | if (p is ScenePresence) |
12556 | { | 12556 | { |
@@ -12564,25 +12564,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
12564 | 12564 | ||
12565 | Vector3 pos = presence.AbsolutePosition; | 12565 | Vector3 pos = presence.AbsolutePosition; |
12566 | 12566 | ||
12567 | if (presence.Appearance.AvatarHeight != 127.0f) | ||
12568 | pos += new Vector3(0f, 0f, (presence.Appearance.AvatarHeight/6f)); | ||
12569 | else | ||
12570 | pos += new Vector3(0f, 0f, (1.56f/6f)); | ||
12571 | |||
12572 | presence.AbsolutePosition = pos; | ||
12573 | |||
12574 | // attach a suitable collision plane regardless of the actual situation to force the LLClient to land. | ||
12575 | // Collision plane below the avatar's position a 6th of the avatar's height is suitable. | ||
12576 | // Mind you, that this method doesn't get called if the avatar's velocity magnitude is greater then a | ||
12577 | // certain amount.. because the LLClient wouldn't land in that situation anyway. | ||
12578 | |||
12579 | // why are we still testing for this really old height value default??? | ||
12580 | if (presence.Appearance.AvatarHeight != 127.0f) | ||
12581 | presence.CollisionPlane = new Vector4(0, 0, 0, pos.Z - presence.Appearance.AvatarHeight/6f); | ||
12582 | else | ||
12583 | presence.CollisionPlane = new Vector4(0, 0, 0, pos.Z - (1.56f/6f)); | ||
12584 | |||
12585 | |||
12586 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock block = | 12567 | ImprovedTerseObjectUpdatePacket.ObjectDataBlock block = |
12587 | CreateImprovedTerseBlock(p, false); | 12568 | CreateImprovedTerseBlock(p, false); |
12588 | 12569 | ||