diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs index b8d210c..87d1ace 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/SceneObjectSerializer.cs | |||
@@ -114,7 +114,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
114 | // Script state may, or may not, exist. Not having any, is NOT | 114 | // Script state may, or may not, exist. Not having any, is NOT |
115 | // ever a problem. | 115 | // ever a problem. |
116 | sceneObject.LoadScriptState(reader); | 116 | sceneObject.LoadScriptState(reader); |
117 | 117 | sceneObject.AggregateDeepPerms(); | |
118 | return sceneObject; | 118 | return sceneObject; |
119 | } | 119 | } |
120 | 120 | ||
@@ -278,7 +278,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
278 | // Script state may, or may not, exist. Not having any, is NOT | 278 | // Script state may, or may not, exist. Not having any, is NOT |
279 | // ever a problem. | 279 | // ever a problem. |
280 | sceneObject.LoadScriptState(doc); | 280 | sceneObject.LoadScriptState(doc); |
281 | 281 | sceneObject.AggregatePerms(); | |
282 | return sceneObject; | 282 | return sceneObject; |
283 | } | 283 | } |
284 | catch (Exception e) | 284 | catch (Exception e) |
@@ -453,9 +453,10 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
453 | m_SOPXmlProcessors.Add("Torque", ProcessTorque); | 453 | m_SOPXmlProcessors.Add("Torque", ProcessTorque); |
454 | m_SOPXmlProcessors.Add("VolumeDetectActive", ProcessVolumeDetectActive); | 454 | m_SOPXmlProcessors.Add("VolumeDetectActive", ProcessVolumeDetectActive); |
455 | 455 | ||
456 | |||
457 | m_SOPXmlProcessors.Add("Vehicle", ProcessVehicle); | 456 | m_SOPXmlProcessors.Add("Vehicle", ProcessVehicle); |
458 | 457 | ||
458 | m_SOPXmlProcessors.Add("PhysicsInertia", ProcessPhysicsInertia); | ||
459 | |||
459 | m_SOPXmlProcessors.Add("RotationAxisLocks", ProcessRotationAxisLocks); | 460 | m_SOPXmlProcessors.Add("RotationAxisLocks", ProcessRotationAxisLocks); |
460 | m_SOPXmlProcessors.Add("PhysicsShapeType", ProcessPhysicsShapeType); | 461 | m_SOPXmlProcessors.Add("PhysicsShapeType", ProcessPhysicsShapeType); |
461 | m_SOPXmlProcessors.Add("Density", ProcessDensity); | 462 | m_SOPXmlProcessors.Add("Density", ProcessDensity); |
@@ -781,6 +782,23 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
781 | } | 782 | } |
782 | } | 783 | } |
783 | 784 | ||
785 | private static void ProcessPhysicsInertia(SceneObjectPart obj, XmlReader reader) | ||
786 | { | ||
787 | PhysicsInertiaData pdata = PhysicsInertiaData.FromXml2(reader); | ||
788 | |||
789 | if (pdata == null) | ||
790 | { | ||
791 | obj.PhysicsInertia = null; | ||
792 | m_log.DebugFormat( | ||
793 | "[SceneObjectSerializer]: Parsing PhysicsInertiaData for object part {0} {1} encountered errors. Please see earlier log entries.", | ||
794 | obj.Name, obj.UUID); | ||
795 | } | ||
796 | else | ||
797 | { | ||
798 | obj.PhysicsInertia = pdata; | ||
799 | } | ||
800 | } | ||
801 | |||
784 | private static void ProcessShape(SceneObjectPart obj, XmlReader reader) | 802 | private static void ProcessShape(SceneObjectPart obj, XmlReader reader) |
785 | { | 803 | { |
786 | List<string> errorNodeNames; | 804 | List<string> errorNodeNames; |
@@ -1498,6 +1516,9 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
1498 | if (sop.VehicleParams != null) | 1516 | if (sop.VehicleParams != null) |
1499 | sop.VehicleParams.ToXml2(writer); | 1517 | sop.VehicleParams.ToXml2(writer); |
1500 | 1518 | ||
1519 | if (sop.PhysicsInertia != null) | ||
1520 | sop.PhysicsInertia.ToXml2(writer); | ||
1521 | |||
1501 | if(sop.RotationAxisLocks != 0) | 1522 | if(sop.RotationAxisLocks != 0) |
1502 | writer.WriteElementString("RotationAxisLocks", sop.RotationAxisLocks.ToString().ToLower()); | 1523 | writer.WriteElementString("RotationAxisLocks", sop.RotationAxisLocks.ToString().ToLower()); |
1503 | writer.WriteElementString("PhysicsShapeType", sop.PhysicsShapeType.ToString().ToLower()); | 1524 | writer.WriteElementString("PhysicsShapeType", sop.PhysicsShapeType.ToString().ToLower()); |
@@ -1739,6 +1760,7 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
1739 | 1760 | ||
1740 | reader.ReadEndElement(); // SceneObjectPart | 1761 | reader.ReadEndElement(); // SceneObjectPart |
1741 | 1762 | ||
1763 | obj.AggregateInnerPerms(); | ||
1742 | // m_log.DebugFormat("[SceneObjectSerializer]: parsed SOP {0} {1}", obj.Name, obj.UUID); | 1764 | // m_log.DebugFormat("[SceneObjectSerializer]: parsed SOP {0} {1}", obj.Name, obj.UUID); |
1743 | return obj; | 1765 | return obj; |
1744 | } | 1766 | } |