aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs')
-rw-r--r--OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs16
1 files changed, 15 insertions, 1 deletions
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index 1e6cd8f..9042c04 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -436,12 +436,26 @@ namespace OpenSim.Region.Environment.Scenes
436 linkPart.SetParent(this); 436 linkPart.SetParent(this);
437 437
438 //TODO: rest of parts 438 //TODO: rest of parts
439 foreach (SceneObjectPart part in objectGroup.Children.Values)
440 {
441 if (part.UUID != objectGroup.m_rootPart.UUID)
442 {
443 this.LinkNonRootPart(part);
444 }
445 }
439 446
440 m_scene.EventManager.OnBackup -= objectGroup.ProcessBackup; 447 m_scene.EventManager.OnBackup -= objectGroup.ProcessBackup;
441 m_scene.DeleteEntity(objectGroup.UUID); 448 m_scene.DeleteEntity(objectGroup.UUID);
442 this.ScheduleGroupForFullUpdate(); 449 this.ScheduleGroupForFullUpdate();
443 } 450 }
444 451
452 private void LinkNonRootPart(SceneObjectPart part)
453 {
454 part.SetParent(this);
455 part.ParentID = this.m_rootPart.LocalID;
456 this.m_parts.Add(part.UUID, part);
457 }
458
445 /// <summary> 459 /// <summary>
446 /// 460 ///
447 /// </summary> 461 /// </summary>
@@ -812,7 +826,7 @@ namespace OpenSim.Region.Environment.Scenes
812 /// <param name="datastore"></param> 826 /// <param name="datastore"></param>
813 public void ProcessBackup(OpenSim.Region.Interfaces.IRegionDataStore datastore) 827 public void ProcessBackup(OpenSim.Region.Interfaces.IRegionDataStore datastore)
814 { 828 {
815 datastore.StoreObject(this); 829 datastore.StoreObject(this, m_scene.RegionInfo.SimUUID);
816 } 830 }
817 #endregion 831 #endregion
818 832