aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World
diff options
context:
space:
mode:
authorOren Hurvitz2011-05-12 14:42:28 +0300
committerJustin Clark-Casey (justincc)2011-05-14 00:41:32 +0100
commit64d868fb64329b1c961dc8f520c71789bc146609 (patch)
tree603b781ed601f3cb872d331b9224a7cbe9beca8d /OpenSim/Region/CoreModules/World
parentThe get_grid_info REST call now encodes XML Entities (diff)
downloadopensim-SC_OLD-64d868fb64329b1c961dc8f520c71789bc146609.zip
opensim-SC_OLD-64d868fb64329b1c961dc8f520c71789bc146609.tar.gz
opensim-SC_OLD-64d868fb64329b1c961dc8f520c71789bc146609.tar.bz2
opensim-SC_OLD-64d868fb64329b1c961dc8f520c71789bc146609.tar.xz
When loading an OAR that doesn't have parcels, create a default parcel
Diffstat (limited to 'OpenSim/Region/CoreModules/World')
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs11
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs2
-rw-r--r--OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs19
3 files changed, 20 insertions, 12 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 82bef48..6461636 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -347,12 +347,15 @@ namespace OpenSim.Region.CoreModules.World.Archiver
347 347
348 landData.Add(parcel); 348 landData.Add(parcel);
349 } 349 }
350 350
351 if (!m_merge) 351 if (!m_merge)
352 m_scene.LandChannel.Clear(false); 352 {
353 bool setupDefaultParcel = (landData.Count == 0);
354 m_scene.LandChannel.Clear(setupDefaultParcel);
355 }
353 356
354 m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData); 357 m_scene.EventManager.TriggerIncomingLandDataFromStorage(landData);
355 m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count); 358 m_log.InfoFormat("[ARCHIVER]: Restored {0} parcels.", landData.Count);
356 } 359 }
357 360
358 /// <summary> 361 /// <summary>
diff --git a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
index 2307c8e..729e9f7 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/Tests/ArchiverTests.cs
@@ -313,6 +313,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver.Tests
313 Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null"); 313 Assert.That(loadedSoundAsset, Is.Not.Null, "loaded sound asset was null");
314 Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match"); 314 Assert.That(loadedSoundAsset.Data, Is.EqualTo(soundData), "saved and loaded sound data do not match");
315 315
316 Assert.Greater(m_scene.LandChannel.AllParcels().Count, 0, "incorrect number of parcels");
317
316 // Temporary 318 // Temporary
317 Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod()); 319 Console.WriteLine("Successfully completed {0}", MethodBase.GetCurrentMethod());
318 } 320 }
diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
index bfab7b8..2eac79d 100644
--- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
+++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs
@@ -668,14 +668,14 @@ namespace OpenSim.Region.CoreModules.World.Land
668 //m_scene.SimulationDataService.RemoveLandObject(lo.LandData.GlobalID); 668 //m_scene.SimulationDataService.RemoveLandObject(lo.LandData.GlobalID);
669 m_scene.EventManager.TriggerLandObjectRemoved(lo.LandData.GlobalID); 669 m_scene.EventManager.TriggerLandObjectRemoved(lo.LandData.GlobalID);
670 } 670 }
671 671
672 m_landList.Clear(); 672 m_landList.Clear();
673
674 ResetSimLandObjects();
675
676 if (setupDefaultParcel)
677 CreateDefaultParcel();
673 } 678 }
674
675 ResetSimLandObjects();
676
677 if (setupDefaultParcel)
678 CreateDefaultParcel();
679 } 679 }
680 680
681 private void performFinalLandJoin(ILandObject master, ILandObject slave) 681 private void performFinalLandJoin(ILandObject master, ILandObject slave)
@@ -1391,8 +1391,11 @@ namespace OpenSim.Region.CoreModules.World.Land
1391 1391
1392 public void EventManagerOnNoLandDataFromStorage() 1392 public void EventManagerOnNoLandDataFromStorage()
1393 { 1393 {
1394 ResetSimLandObjects(); 1394 lock (m_landList)
1395 CreateDefaultParcel(); 1395 {
1396 ResetSimLandObjects();
1397 CreateDefaultParcel();
1398 }
1396 } 1399 }
1397 1400
1398 #endregion 1401 #endregion