diff options
author | Diva Canto | 2013-07-20 17:58:32 -0700 |
---|---|---|
committer | Diva Canto | 2013-07-21 09:01:44 -0700 |
commit | b5ab0698d6328c90d779c2af29914da840335233 (patch) | |
tree | c78baed03c24a8f78ff210962bb6e9acf302c653 /OpenSim/Region/ClientStack/Linden/UDP | |
parent | Filter certain viewer effects depending on distance between the avatar that i... (diff) | |
download | opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.zip opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.gz opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.bz2 opensim-SC_OLD-b5ab0698d6328c90d779c2af29914da840335233.tar.xz |
EDIT BEAMS!!! They had been missing from OpenSim since ever. Thanks to lkalif for telling me how to route the information. The viewer effect is under the distance filter, so only avatars with cameras < 10m away see the beams.
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-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 | ||