diff options
author | Oren Hurvitz | 2013-01-22 11:59:20 +0200 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2013-01-25 04:03:26 +0000 |
commit | af6a7cf95df76708d013932d8ef92c9bbeda0e5d (patch) | |
tree | bf341a0cc35e0ed1516c9f0b5058d8c54a21cb13 /OpenSim/Region | |
parent | Store NULL in the 'DynAttrs' column if the prim doesn't have any dynamic attr... (diff) | |
download | opensim-SC-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.zip opensim-SC-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.gz opensim-SC-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.bz2 opensim-SC-af6a7cf95df76708d013932d8ef92c9bbeda0e5d.tar.xz |
Added DynAttrs to the serialized XML format of prims. When copying prims, use deep copy for DynAttrs.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | 14 |
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()); |