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')
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