From fb91ca6f1d3e61444005175d0a0d55025d15ad5b Mon Sep 17 00:00:00 2001 From: Justin Clark-Casey (justincc) Date: Fri, 3 Aug 2012 23:49:34 +0100 Subject: Fix old regression that stopped saving parcel owner data in OARs. This was working in 0.7.2 but was accidentally removed from 0.7.3. The --publish option for "save oar" will now save oars stripped of parcel owner information as well as scene object info. Please use the --publish option if you want to publish oars that may be later loaded by others to the same grid from which they were saved. --- .../Serialization/External/LandDataSerializer.cs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'OpenSim/Framework/Serialization/External/LandDataSerializer.cs') diff --git a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs index a64f01c..709b516 100644 --- a/OpenSim/Framework/Serialization/External/LandDataSerializer.cs +++ b/OpenSim/Framework/Serialization/External/LandDataSerializer.cs @@ -93,6 +93,8 @@ namespace OpenSim.Framework.Serialization.External "MediaURL", (ld, xtr) => ld.MediaURL = xtr.ReadElementString("MediaURL")); m_ldProcessors.Add( "MusicURL", (ld, xtr) => ld.MusicURL = xtr.ReadElementString("MusicURL")); + m_ldProcessors.Add( + "OwnerID", (ld, xtr) => ld.OwnerID = UUID.Parse(xtr.ReadElementString("OwnerID"))); m_ldProcessors.Add( "ParcelAccessList", ProcessParcelAccessList); @@ -186,7 +188,16 @@ namespace OpenSim.Framework.Serialization.External return landData; } - public static string Serialize(LandData landData) + /// + /// Serialize land data + /// + /// + /// + /// Serialization options. + /// Can be null if there are no options. + /// "wipe-owners" will write UUID.Zero rather than the ownerID so that a later reload loads all parcels with the estate owner as the owner + /// + public static string Serialize(LandData landData, Dictionary options) { StringWriter sw = new StringWriter(); XmlTextWriter xtw = new XmlTextWriter(sw); @@ -215,7 +226,14 @@ namespace OpenSim.Framework.Serialization.External xtw.WriteElementString("MediaID", landData.MediaID.ToString()); xtw.WriteElementString("MediaURL", landData.MediaURL); xtw.WriteElementString("MusicURL", landData.MusicURL); - xtw.WriteElementString("OwnerID", landData.OwnerID.ToString()); + + UUID ownerIdToWrite; + if (options != null && options.ContainsKey("wipe-owners")) + ownerIdToWrite = UUID.Zero; + else + ownerIdToWrite = landData.OwnerID; + + xtw.WriteElementString("OwnerID", ownerIdToWrite.ToString()); xtw.WriteStartElement("ParcelAccessList"); foreach (LandAccessEntry pal in landData.ParcelAccessList) -- cgit v1.1