diff options
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 11 |
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); |