diff options
author | Melanie | 2010-10-08 11:31:52 +0200 |
---|---|---|
committer | Melanie | 2010-10-08 11:31:52 +0200 |
commit | 52dd547863c0cdd22f53f0efcaef11ae096855a0 (patch) | |
tree | e1b545832530f02b3485a39826555e444423aad3 /OpenSim/Region/OptionalModules/ContentManagementSystem | |
parent | Implement rezzing coalesced objects (diff) | |
download | opensim-SC-52dd547863c0cdd22f53f0efcaef11ae096855a0.zip opensim-SC-52dd547863c0cdd22f53f0efcaef11ae096855a0.tar.gz opensim-SC-52dd547863c0cdd22f53f0efcaef11ae096855a0.tar.bz2 opensim-SC-52dd547863c0cdd22f53f0efcaef11ae096855a0.tar.xz |
Make SendKillObject send multiple localIDs in one packet. This avoids the
halting visual behavior of large group deletes and eliminates the packet flood
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs index 3a6996e..84c7f29 100644 --- a/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs +++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/CMModel.cs | |||
@@ -259,9 +259,10 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
259 | // I thought that the DeleteGroup() function would handle all of this, but it doesn't. I'm not sure WHAT it handles. | 259 | // I thought that the DeleteGroup() function would handle all of this, but it doesn't. I'm not sure WHAT it handles. |
260 | ((SceneObjectGroup)scene.Entities[uuid]).DetachFromBackup(); | 260 | ((SceneObjectGroup)scene.Entities[uuid]).DetachFromBackup(); |
261 | scene.PhysicsScene.RemovePrim(((SceneObjectGroup)scene.Entities[uuid]).RootPart.PhysActor); | 261 | scene.PhysicsScene.RemovePrim(((SceneObjectGroup)scene.Entities[uuid]).RootPart.PhysActor); |
262 | scene.SendKillObject(scene.Entities[uuid].LocalId); | 262 | scene.SendKillObject(new List<uint>() { scene.Entities[uuid].LocalId }); |
263 | scene.SceneGraph.DeleteSceneObject(uuid, false); | 263 | scene.SceneGraph.DeleteSceneObject(uuid, false); |
264 | ((SceneObjectGroup)scene.Entities[uuid]).DeleteGroupFromScene(false); | 264 | ((SceneObjectGroup)scene.Entities[uuid]).DeleteGroupFromScene(false); |
265 | scene.SendKillObject(new List<uint>() { ((SceneObjectGroup)scene.Entities[uuid]).LocalId }); | ||
265 | } | 266 | } |
266 | catch(Exception e) | 267 | catch(Exception e) |
267 | { | 268 | { |
diff --git a/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs b/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs index c7b1ed7..cd60f4b 100644 --- a/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs +++ b/OpenSim/Region/OptionalModules/ContentManagementSystem/MetaEntity.cs | |||
@@ -175,7 +175,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
175 | //This is important because we are not IN any database. | 175 | //This is important because we are not IN any database. |
176 | //m_Entity.FakeDeleteGroup(); | 176 | //m_Entity.FakeDeleteGroup(); |
177 | foreach (SceneObjectPart part in m_Entity.Parts) | 177 | foreach (SceneObjectPart part in m_Entity.Parts) |
178 | client.SendKillObject(m_Entity.RegionHandle, part.LocalId); | 178 | client.SendKillObject(m_Entity.RegionHandle, new List<uint>() { part.LocalId }); |
179 | } | 179 | } |
180 | 180 | ||
181 | /// <summary> | 181 | /// <summary> |
@@ -187,7 +187,7 @@ namespace OpenSim.Region.OptionalModules.ContentManagement | |||
187 | { | 187 | { |
188 | m_Entity.Scene.ForEachClient( | 188 | m_Entity.Scene.ForEachClient( |
189 | delegate(IClientAPI controller) | 189 | delegate(IClientAPI controller) |
190 | { controller.SendKillObject(m_Entity.RegionHandle, part.LocalId); } | 190 | { controller.SendKillObject(m_Entity.RegionHandle, new List<uint>() { part.LocalId }); } |
191 | ); | 191 | ); |
192 | } | 192 | } |
193 | } | 193 | } |