diff options
author | Melanie Thielker | 2010-05-21 07:37:55 +0200 |
---|---|---|
committer | Melanie | 2010-05-21 05:13:31 +0100 |
commit | 792e149c7eb26678a309a2c21c66183906db10f0 (patch) | |
tree | 9c8ee0ea61e3c71809f0613e21516d2654d0aa04 /OpenSim/Region/ClientStack/LindenUDP | |
parent | Cleaned up MySql migrations a bit more, got rid of all old-form migration fil... (diff) | |
download | opensim-SC_OLD-792e149c7eb26678a309a2c21c66183906db10f0.zip opensim-SC_OLD-792e149c7eb26678a309a2c21c66183906db10f0.tar.gz opensim-SC_OLD-792e149c7eb26678a309a2c21c66183906db10f0.tar.bz2 opensim-SC_OLD-792e149c7eb26678a309a2c21c66183906db10f0.tar.xz |
Ensure that the first update sent out for any given prim is a full update
Diffstat (limited to 'OpenSim/Region/ClientStack/LindenUDP')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 07c3a6a..cf78266 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -325,6 +325,7 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
325 | 325 | ||
326 | private int m_cachedTextureSerial; | 326 | private int m_cachedTextureSerial; |
327 | private PriorityQueue<double, EntityUpdate> m_entityUpdates; | 327 | private PriorityQueue<double, EntityUpdate> m_entityUpdates; |
328 | private Dictionary<uint, bool> m_seenPrims = new Dictionary<uint, bool>(); | ||
328 | 329 | ||
329 | /// <value> | 330 | /// <value> |
330 | /// List used in construction of data blocks for an object update packet. This is to stop us having to | 331 | /// 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 | |||
3495 | 3496 | ||
3496 | // Compressed object updates only make sense for LL primitives | 3497 | // Compressed object updates only make sense for LL primitives |
3497 | if (!(update.Entity is SceneObjectPart)) | 3498 | if (!(update.Entity is SceneObjectPart)) |
3499 | { | ||
3498 | canUseCompressed = false; | 3500 | canUseCompressed = false; |
3501 | } | ||
3502 | else | ||
3503 | { | ||
3504 | if (!m_seenPrims.ContainsKey(((SceneObjectPart)update.Entity).LocalId)) | ||
3505 | { | ||
3506 | updateFlags = PrimUpdateFlags.FullUpdate; | ||
3507 | m_seenPrims[((SceneObjectPart)update.Entity).LocalId] = true; | ||
3508 | } | ||
3509 | } | ||
3499 | 3510 | ||
3500 | if (updateFlags.HasFlag(PrimUpdateFlags.FullUpdate)) | 3511 | if (updateFlags.HasFlag(PrimUpdateFlags.FullUpdate)) |
3501 | { | 3512 | { |