aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Application/OpenSimBase.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Application/OpenSimBase.cs')
-rw-r--r--OpenSim/Region/Application/OpenSimBase.cs31
1 files changed, 31 insertions, 0 deletions
diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs
index 4a02264..e5cf07a 100644
--- a/OpenSim/Region/Application/OpenSimBase.cs
+++ b/OpenSim/Region/Application/OpenSimBase.cs
@@ -589,6 +589,37 @@ namespace OpenSim
589 return clientServer; 589 return clientServer;
590 } 590 }
591 591
592 public void RemoveRegion(Scene scene, bool cleanup)
593 {
594 // only need to check this if we are not at the
595 // root level
596 if ((m_sceneManager.CurrentScene != null) &&
597 (m_sceneManager.CurrentScene.RegionInfo.RegionID == scene.RegionInfo.RegionID))
598 {
599 m_sceneManager.TrySetCurrentScene("..");
600 }
601
602 scene.DeleteAllSceneObjects();
603 m_regionData.Remove(scene.RegionInfo);
604 m_sceneManager.CloseScene(scene);
605
606 if (!cleanup)
607 return;
608
609 if (!String.IsNullOrEmpty(scene.RegionInfo.RegionFile))
610 {
611 File.Delete(scene.RegionInfo.RegionFile);
612 m_log.InfoFormat("[OPENSIM MAIN] deleting region file \"{0}\"", scene.RegionInfo.RegionFile);
613 }
614 }
615
616 public void RemoveRegion(string name, bool cleanUp)
617 {
618 Scene target;
619 if (m_sceneManager.TryGetScene(name, out target))
620 RemoveRegion(target, cleanUp);
621 }
622
592 protected override StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring) 623 protected override StorageManager CreateStorageManager(string connectionstring, string estateconnectionstring)
593 { 624 {
594 return new StorageManager(m_storageDll, connectionstring, estateconnectionstring); 625 return new StorageManager(m_storageDll, connectionstring, estateconnectionstring);