Alter uuid gather so that it properly analyzes coalesced objects.
This should correct save all the assets required for the items within the coalesced objects in an IAR. This should also correctly gather the items on hypergrid takes.0.7.1-dev
parent
ccc26f7443
commit
63c1b7e475
|
@ -116,6 +116,8 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
using (StringReader sr = new StringReader(xml))
|
||||
{
|
||||
using (XmlTextReader reader = new XmlTextReader(sr))
|
||||
{
|
||||
try
|
||||
{
|
||||
reader.Read();
|
||||
if (reader.Name != "CoalescedObject")
|
||||
|
@ -141,6 +143,15 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
|
|||
|
||||
reader.ReadEndElement(); // CoalescedObject
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
m_log.ErrorFormat(
|
||||
"[COALESCED SCENE OBJECTS SERIALIZER]: Deserialization of xml failed with {0} {1}",
|
||||
e.Message, e.StackTrace);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
|
|
@ -298,12 +298,22 @@ namespace OpenSim.Region.Framework.Scenes
|
|||
if (null != objectAsset)
|
||||
{
|
||||
string xml = Utils.BytesToString(objectAsset.Data);
|
||||
|
||||
CoalescedSceneObjects coa;
|
||||
if (CoalescedSceneObjectsSerializer.TryFromXml(xml, out coa))
|
||||
{
|
||||
foreach (SceneObjectGroup sog in coa.Objects)
|
||||
GatherAssetUuids(sog, assetUuids);
|
||||
}
|
||||
else
|
||||
{
|
||||
SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml);
|
||||
|
||||
if (null != sog)
|
||||
GatherAssetUuids(sog, assetUuids);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the asset uuid associated with a gesture
|
||||
|
|
Loading…
Reference in New Issue