From af5eeab7cf86ec5b8a90aa435d7068ef954dc504 Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Fri, 21 May 2010 07:37:55 +0200 Subject: [PATCH] Ensure that the first update sent out for any given prim is a full update --- OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index e29ae2aeca..cddc7b2532 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs @@ -325,6 +325,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP private int m_cachedTextureSerial; private PriorityQueue m_entityUpdates; + private Dictionary m_seenPrims = new Dictionary(); /// /// List used in construction of data blocks for an object update packet. This is to stop us having to @@ -3495,7 +3496,17 @@ namespace OpenSim.Region.ClientStack.LindenUDP // Compressed object updates only make sense for LL primitives if (!(update.Entity is SceneObjectPart)) + { canUseCompressed = false; + } + else + { + if (!m_seenPrims.ContainsKey(((SceneObjectPart)update.Entity).LocalId)) + { + updateFlags = PrimUpdateFlags.FullUpdate; + m_seenPrims[((SceneObjectPart)update.Entity).LocalId] = true; + } + } if (updateFlags.HasFlag(PrimUpdateFlags.FullUpdate)) {