aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/Scene.cs
diff options
context:
space:
mode:
authorMelanie Thielker2008-09-03 19:28:46 +0000
committerMelanie Thielker2008-09-03 19:28:46 +0000
commiteee9c114cbcfdefba2b2edc94d4d174689c5d546 (patch)
tree9bfe5c6268cbbbb805f97c8013f1a641add6867e /OpenSim/Region/Environment/Scenes/Scene.cs
parentMantis #2112 (diff)
downloadopensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.zip
opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.gz
opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.bz2
opensim-SC_OLD-eee9c114cbcfdefba2b2edc94d4d174689c5d546.tar.xz
Mantis #2111
Eliminate gretuitious KillObject packets. KillObject is sent to the viewer for the root part only. Also prevents the full update on deselect that makes a deleted object reappear and stay visible until the background deleter got around to it. We still send 2 KillObject packets for the root prim, that could be avoided only at a cost in reliability. One packet seems an acceptable price to pay for consistency.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Environment/Scenes/Scene.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index 2b242fc..45062eb 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -2496,6 +2496,15 @@ namespace OpenSim.Region.Environment.Scenes
2496 2496
2497 public void SendKillObject(uint localID) 2497 public void SendKillObject(uint localID)
2498 { 2498 {
2499 SceneObjectPart part = GetSceneObjectPart(localID);
2500 if (part != null) // It is a prim
2501 {
2502 if (part.ParentGroup != null && part.ParentGroup.RootPart != null) // Valid
2503 {
2504 if (part.ParentGroup.RootPart != part) // Child part
2505 return;
2506 }
2507 }
2499 Broadcast(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); }); 2508 Broadcast(delegate(IClientAPI client) { client.SendKillObject(m_regionHandle, localID); });
2500 } 2509 }
2501 2510