diff --git a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs index a18fad60a1..4132b2be7b 100644 --- a/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs +++ b/OpenSim/Framework/Serialization/External/RegionSettingsSerializer.cs @@ -194,36 +194,46 @@ namespace OpenSim.Framework.Serialization.External if (xtr.IsStartElement("Telehub")) { - xtr.ReadStartElement("Telehub"); - - while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) + if (xtr.IsEmptyElement) + xtr.Read(); + else { - switch (xtr.Name) + xtr.ReadStartElement("Telehub"); + while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) { - case "TelehubObject": - settings.TelehubObject = UUID.Parse(xtr.ReadElementContentAsString()); - break; - case "SpawnPoint": - string str = xtr.ReadElementContentAsString(); - SpawnPoint sp = SpawnPoint.Parse(str); - settings.AddSpawnPoint(sp); - break; + switch (xtr.Name) + { + case "TelehubObject": + settings.TelehubObject = UUID.Parse(xtr.ReadElementContentAsString()); + break; + case "SpawnPoint": + string str = xtr.ReadElementContentAsString(); + SpawnPoint sp = SpawnPoint.Parse(str); + settings.AddSpawnPoint(sp); + break; + } } + xtr.ReadEndElement(); } } if (xtr.IsStartElement("Environment")) { - xtr.ReadStartElement("Environment"); - - while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) + if (xtr.IsEmptyElement) + xtr.Read(); + else { - switch (xtr.Name) + xtr.ReadStartElement("Environment"); + while (xtr.Read() && xtr.NodeType != XmlNodeType.EndElement) { - case "data": - regionEnv = ViewerEnvironment.FromOSDString(xtr.ReadElementContentAsString()); - break; + switch (xtr.Name) + { + case "data": + regionEnv = ViewerEnvironment.FromOSDString(xtr.ReadElementContentAsString()); + break; + } } + xtr.ReadEndElement(); } } diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs index ae932401f5..32f3f8e0e2 100644 --- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs +++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs @@ -1054,7 +1054,10 @@ namespace OpenSim.Region.CoreModules.World.Archiver IEnvironmentModule mEnv = scene.RequestModuleInterface(); if(mEnv != null) + { mEnv.StoreOnRegion(regionEnv); + mEnv.WindlightRefresh(0); + } RegionSettings currentRegionSettings = scene.RegionInfo.RegionSettings; diff --git a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs index 1d36af8c00..2d0f4c66e9 100755 --- a/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs +++ b/OpenSim/Region/CoreModules/World/Land/LandManagementModule.cs @@ -1815,7 +1815,14 @@ namespace OpenSim.Region.CoreModules.World.Land } } } + FinalizeLandPrimCountUpdate(); // update simarea information + + lock (m_landList) + { + foreach(LandObject lo in m_landList.Values) + lo.SendLandUpdateToAvatarsOverMe(); + } } } @@ -1825,7 +1832,6 @@ namespace OpenSim.Region.CoreModules.World.Land new_land.SetLandBitmapFromByteArray(); AddLandObject(new_land); -// new_land.SendLandUpdateToAvatarsOverMe(); } public void ReturnObjectsInParcel(int localID, uint returnType, UUID[] agentIDs, UUID[] taskIDs, IClientAPI remoteClient)