aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
authorOren Hurvitz2013-01-22 11:59:20 +0200
committerJustin Clark-Casey (justincc)2013-01-25 04:03:26 +0000
commitaf6a7cf95df76708d013932d8ef92c9bbeda0e5d (patch)
treebf341a0cc35e0ed1516c9f0b5058d8c54a21cb13 /OpenSim/Region
parentStore NULL in the 'DynAttrs' column if the prim doesn't have any dynamic attr... (diff)
downloadopensim-SC_OLD-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.zip
opensim-SC_OLD-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.gz
opensim-SC_OLD-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.bz2
opensim-SC_OLD-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.xz
Added DynAttrs to the serialized XML format of prims. When copying prims, use deep copy for DynAttrs.
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs2
-rw-r--r--OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs14
2 files changed, 16 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 27f3a4d..189d298 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1625,6 +1625,8 @@ namespace OpenSim.Region.Framework.Scenes
1625 Array.Copy(Shape.ExtraParams, extraP, extraP.Length); 1625 Array.Copy(Shape.ExtraParams, extraP, extraP.Length);
1626 dupe.Shape.ExtraParams = extraP; 1626 dupe.Shape.ExtraParams = extraP;
1627 1627
1628 dupe.DynAttrs.CopyFrom(DynAttrs);
1629
1628 if (userExposed) 1630 if (userExposed)
1629 { 1631 {
1630/* 1632/*
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
index 2d4c60a..4a2a47e 100644
--- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
+++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs
@@ -359,6 +359,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
359 m_SOPXmlProcessors.Add("CollisionSound", ProcessCollisionSound); 359 m_SOPXmlProcessors.Add("CollisionSound", ProcessCollisionSound);
360 m_SOPXmlProcessors.Add("CollisionSoundVolume", ProcessCollisionSoundVolume); 360 m_SOPXmlProcessors.Add("CollisionSoundVolume", ProcessCollisionSoundVolume);
361 m_SOPXmlProcessors.Add("MediaUrl", ProcessMediaUrl); 361 m_SOPXmlProcessors.Add("MediaUrl", ProcessMediaUrl);
362 m_SOPXmlProcessors.Add("DynAttrs", ProcessDynAttrs);
362 m_SOPXmlProcessors.Add("TextureAnimation", ProcessTextureAnimation); 363 m_SOPXmlProcessors.Add("TextureAnimation", ProcessTextureAnimation);
363 m_SOPXmlProcessors.Add("ParticleSystem", ProcessParticleSystem); 364 m_SOPXmlProcessors.Add("ParticleSystem", ProcessParticleSystem);
364 m_SOPXmlProcessors.Add("PayPrice0", ProcessPayPrice0); 365 m_SOPXmlProcessors.Add("PayPrice0", ProcessPayPrice0);
@@ -722,6 +723,11 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
722 obj.MediaUrl = reader.ReadElementContentAsString("MediaUrl", String.Empty); 723 obj.MediaUrl = reader.ReadElementContentAsString("MediaUrl", String.Empty);
723 } 724 }
724 725
726 private static void ProcessDynAttrs(SceneObjectPart obj, XmlTextReader reader)
727 {
728 obj.DynAttrs.ReadXml(reader);
729 }
730
725 private static void ProcessTextureAnimation(SceneObjectPart obj, XmlTextReader reader) 731 private static void ProcessTextureAnimation(SceneObjectPart obj, XmlTextReader reader)
726 { 732 {
727 obj.TextureAnimation = Convert.FromBase64String(reader.ReadElementContentAsString("TextureAnimation", String.Empty)); 733 obj.TextureAnimation = Convert.FromBase64String(reader.ReadElementContentAsString("TextureAnimation", String.Empty));
@@ -1235,6 +1241,14 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
1235 writer.WriteElementString("CollisionSoundVolume", sop.CollisionSoundVolume.ToString()); 1241 writer.WriteElementString("CollisionSoundVolume", sop.CollisionSoundVolume.ToString());
1236 if (sop.MediaUrl != null) 1242 if (sop.MediaUrl != null)
1237 writer.WriteElementString("MediaUrl", sop.MediaUrl.ToString()); 1243 writer.WriteElementString("MediaUrl", sop.MediaUrl.ToString());
1244
1245 if (sop.DynAttrs.Count > 0)
1246 {
1247 writer.WriteStartElement("DynAttrs");
1248 sop.DynAttrs.WriteXml(writer);
1249 writer.WriteEndElement();
1250 }
1251
1238 WriteBytes(writer, "TextureAnimation", sop.TextureAnimation); 1252 WriteBytes(writer, "TextureAnimation", sop.TextureAnimation);
1239 WriteBytes(writer, "ParticleSystem", sop.ParticleSystem); 1253 WriteBytes(writer, "ParticleSystem", sop.ParticleSystem);
1240 writer.WriteElementString("PayPrice0", sop.PayPrice[0].ToString()); 1254 writer.WriteElementString("PayPrice0", sop.PayPrice[0].ToString());