aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
authorMelanie Thielker2009-02-17 04:16:42 +0000
committerMelanie Thielker2009-02-17 04:16:42 +0000
commit31307849342c36c133b5cb8039296116c5456136 (patch)
tree1922584dea8426a8d81873d4d68b552e9761add2 /OpenSim/Region/ClientStack
parentSmall change on dealing with ODE physics, so that this warning doesn't happen... (diff)
downloadopensim-SC-31307849342c36c133b5cb8039296116c5456136.zip
opensim-SC-31307849342c36c133b5cb8039296116c5456136.tar.gz
opensim-SC-31307849342c36c133b5cb8039296116c5456136.tar.bz2
opensim-SC-31307849342c36c133b5cb8039296116c5456136.tar.xz
Re-add the objectID field to the anim pack, that was deemed unneccessary
and dropped nonths ago, because it is required to get smooth region crossings with AO running. Without it, in some corner cases, anims will continue to run in an unstoppable state.
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs11
1 files changed, 7 insertions, 4 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
index dd0f6ac..3565e5a 100644
--- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs
@@ -2493,15 +2493,13 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2493 OutPacket(avp, ThrottleOutPacketType.Task); 2493 OutPacket(avp, ThrottleOutPacketType.Task);
2494 } 2494 }
2495 2495
2496 public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId) 2496 public void SendAnimations(UUID[] animations, int[] seqs, UUID sourceAgentId, UUID[] objectIDs)
2497 { 2497 {
2498 //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name); 2498 //m_log.DebugFormat("[CLIENT]: Sending animations to {0}", Name);
2499 2499
2500 AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation); 2500 AvatarAnimationPacket ani = (AvatarAnimationPacket)PacketPool.Instance.GetPacket(PacketType.AvatarAnimation);
2501 // TODO: don't create new blocks if recycling an old packet 2501 // TODO: don't create new blocks if recycling an old packet
2502 ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[1]; 2502 ani.AnimationSourceList = new AvatarAnimationPacket.AnimationSourceListBlock[animations.Length];
2503 ani.AnimationSourceList[0] = new AvatarAnimationPacket.AnimationSourceListBlock();
2504 ani.AnimationSourceList[0].ObjectID = sourceAgentId;
2505 ani.Sender = new AvatarAnimationPacket.SenderBlock(); 2503 ani.Sender = new AvatarAnimationPacket.SenderBlock();
2506 ani.Sender.ID = sourceAgentId; 2504 ani.Sender.ID = sourceAgentId;
2507 ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[animations.Length]; 2505 ani.AnimationList = new AvatarAnimationPacket.AnimationListBlock[animations.Length];
@@ -2511,6 +2509,11 @@ namespace OpenSim.Region.ClientStack.LindenUDP
2511 ani.AnimationList[i] = new AvatarAnimationPacket.AnimationListBlock(); 2509 ani.AnimationList[i] = new AvatarAnimationPacket.AnimationListBlock();
2512 ani.AnimationList[i].AnimID = animations[i]; 2510 ani.AnimationList[i].AnimID = animations[i];
2513 ani.AnimationList[i].AnimSequenceID = seqs[i]; 2511 ani.AnimationList[i].AnimSequenceID = seqs[i];
2512
2513 ani.AnimationSourceList[i] = new AvatarAnimationPacket.AnimationSourceListBlock();
2514 ani.AnimationSourceList[i].ObjectID = objectIDs[i];
2515 if (objectIDs[i] == UUID.Zero)
2516 ani.AnimationSourceList[i].ObjectID = sourceAgentId;
2514 } 2517 }
2515 ani.Header.Reliable = false; 2518 ani.Header.Reliable = false;
2516 OutPacket(ani, ThrottleOutPacketType.Task); 2519 OutPacket(ani, ThrottleOutPacketType.Task);