diff options
author | Melanie Thielker | 2009-02-17 04:16:42 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-02-17 04:16:42 +0000 |
commit | 31307849342c36c133b5cb8039296116c5456136 (patch) | |
tree | 1922584dea8426a8d81873d4d68b552e9761add2 /OpenSim/Region/ClientStack | |
parent | Small change on dealing with ODE physics, so that this warning doesn't happen... (diff) | |
download | opensim-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.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); |