aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
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);