Serialize Keyframe motion for region crossings

This commit is contained in:
Melanie
2012-02-26 12:29:35 +01:00
parent edc78defed
commit aa552d0526
4 changed files with 96 additions and 4 deletions

View File

@@ -244,6 +244,17 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
sr.Close();
}
XmlNodeList keymotion = doc.GetElementsByTagName("KeyframeMotion");
if (keymotion.Count > 0)
{
m_log.DebugFormat("[SERIALIZER]: Deserialized KeyframeMotion");
sceneObject.KeyframeMotion = KeyframeMotion.FromData(sceneObject, Convert.FromBase64String(keymotion[0].InnerText));
}
else
{
sceneObject.KeyframeMotion = null;
}
// Script state may, or may not, exist. Not having any, is NOT
// ever a problem.
sceneObject.LoadScriptState(doc);
@@ -597,7 +608,6 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
obj.sopVehicle = _vehicle;
}
private static void ProcessShape(SceneObjectPart obj, XmlTextReader reader)
{
List<string> errorNodeNames;
@@ -1168,6 +1178,16 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
});
writer.WriteEndElement();
if (sog.KeyframeMotion != null)
{
Byte[] data = sog.KeyframeMotion.Serialize();
writer.WriteStartElement(String.Empty, "KeyframeMotion", String.Empty);
writer.WriteBase64(data, 0, data.Length);
writer.WriteEndElement();
}
writer.WriteEndElement();
}