aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs27
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