aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs27
1 files changed, 20 insertions, 7 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index 2b288df..601de61 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -5544,17 +5544,30 @@ namespace OpenSim.Region.ClientStack.LindenUDP
5544 5544
5545 if(GroupsNeedFullUpdate.Count > 0) 5545 if(GroupsNeedFullUpdate.Count > 0)
5546 { 5546 {
5547 bool viewerCache = m_supportViewerCache && (m_viewerHandShakeFlags & 1) != 0;// && mysp.IsChildAgent; 5547 bool sendProbes = m_supportViewerCache && (m_viewerHandShakeFlags & 1) != 0 && (m_viewerHandShakeFlags & 2) == 0;
5548 foreach (SceneObjectGroup grp in GroupsNeedFullUpdate) 5548
5549 if(sendProbes)
5550 {
5551 foreach (SceneObjectGroup grp in GroupsNeedFullUpdate)
5552 {
5553 PrimUpdateFlags flags = PrimUpdateFlags.CancelKill;
5554 if (grp.IsViewerCachable)
5555 flags |= PrimUpdateFlags.UpdateProbe;
5556 foreach (SceneObjectPart p in grp.Parts)
5557 SendEntityUpdate(p, flags);
5558 }
5559 }
5560 else
5549 { 5561 {
5562 m_viewerHandShakeFlags &= ~2U; // nexttime send probes
5550 PrimUpdateFlags flags = PrimUpdateFlags.CancelKill; 5563 PrimUpdateFlags flags = PrimUpdateFlags.CancelKill;
5551 if (viewerCache && grp.IsViewerCachable) 5564 foreach (SceneObjectGroup grp in GroupsNeedFullUpdate)
5552 flags |= PrimUpdateFlags.UpdateProbe; 5565 {
5553 foreach (SceneObjectPart p in grp.Parts) 5566 foreach (SceneObjectPart p in grp.Parts)
5554 SendEntityUpdate(p, flags); 5567 SendEntityUpdate(p, flags);
5568 }
5555 } 5569 }
5556 } 5570 }
5557
5558 CheckGroupsInViewBusy = false; 5571 CheckGroupsInViewBusy = false;
5559 } 5572 }
5560 5573