diff options
author | Melanie | 2011-04-21 23:06:01 +0100 |
---|---|---|
committer | Melanie | 2011-04-21 23:06:01 +0100 |
commit | 0c68fbdb1aa746d1f18242f921bd2605271c06db (patch) | |
tree | c5a35a5723f4c73821c20773d6bc2897b92dcce8 /OpenSim/Region/Framework | |
parent | Add fix a minor bug (diff) | |
parent | Merge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff) | |
download | opensim-SC_OLD-0c68fbdb1aa746d1f18242f921bd2605271c06db.zip opensim-SC_OLD-0c68fbdb1aa746d1f18242f921bd2605271c06db.tar.gz opensim-SC_OLD-0c68fbdb1aa746d1f18242f921bd2605271c06db.tar.bz2 opensim-SC_OLD-0c68fbdb1aa746d1f18242f921bd2605271c06db.tar.xz |
Merge branch 'master' into careminster-presence-refactor
Diffstat (limited to 'OpenSim/Region/Framework')
3 files changed, 58 insertions, 28 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs index 0b545c4..9f0ac4f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs | |||
@@ -77,16 +77,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
77 | } | 77 | } |
78 | 78 | ||
79 | /// <summary> | 79 | /// <summary> |
80 | /// Add an inventory item to a prim in this group. | 80 | /// Add an inventory item from a user's inventory to a prim in this scene object. |
81 | /// </summary> | 81 | /// </summary> |
82 | /// <param name="remoteClient"></param> | 82 | /// <param name="remoteClient">The client adding the item.</param> |
83 | /// <param name="localID"></param> | 83 | /// <param name="localID">The local ID of the part receiving the add.</param> |
84 | /// <param name="item"></param> | 84 | /// <param name="item">The user inventory item being added.</param> |
85 | /// <param name="copyItemID">The item UUID that should be used by the new item.</param> | 85 | /// <param name="copyItemID">The item UUID that should be used by the new item.</param> |
86 | /// <returns></returns> | 86 | /// <returns></returns> |
87 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, | 87 | public bool AddInventoryItem(IClientAPI remoteClient, uint localID, |
88 | InventoryItemBase item, UUID copyItemID) | 88 | InventoryItemBase item, UUID copyItemID) |
89 | { | 89 | { |
90 | // m_log.DebugFormat( | ||
91 | // "[PRIM INVENTORY]: Adding inventory item {0} from {1} to part with local ID {2}", | ||
92 | // item.Name, remoteClient.Name, localID); | ||
93 | |||
90 | UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID; | 94 | UUID newItemId = (copyItemID != UUID.Zero) ? copyItemID : item.ID; |
91 | 95 | ||
92 | SceneObjectPart part = GetChildPart(localID); | 96 | SceneObjectPart part = GetChildPart(localID); |
@@ -128,15 +132,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
128 | taskItem.GroupPermissions = item.GroupPermissions; | 132 | taskItem.GroupPermissions = item.GroupPermissions; |
129 | taskItem.NextPermissions = item.NextPermissions; | 133 | taskItem.NextPermissions = item.NextPermissions; |
130 | } | 134 | } |
131 | 135 | ||
132 | taskItem.Flags = item.Flags; | 136 | taskItem.Flags = item.Flags; |
137 | |||
138 | // m_log.DebugFormat( | ||
139 | // "[PRIM INVENTORY]: Flags are 0x{0:X} for item {1} added to part {2} by {3}", | ||
140 | // taskItem.Flags, taskItem.Name, localID, remoteClient.Name); | ||
141 | |||
133 | // TODO: These are pending addition of those fields to TaskInventoryItem | 142 | // TODO: These are pending addition of those fields to TaskInventoryItem |
134 | // taskItem.SalePrice = item.SalePrice; | 143 | // taskItem.SalePrice = item.SalePrice; |
135 | // taskItem.SaleType = item.SaleType; | 144 | // taskItem.SaleType = item.SaleType; |
136 | taskItem.CreationDate = (uint)item.CreationDate; | 145 | taskItem.CreationDate = (uint)item.CreationDate; |
137 | 146 | ||
138 | bool addFromAllowedDrop = false; | 147 | bool addFromAllowedDrop = false; |
139 | if (remoteClient!=null) | 148 | if (remoteClient != null) |
140 | { | 149 | { |
141 | addFromAllowedDrop = remoteClient.AgentId != part.OwnerID; | 150 | addFromAllowedDrop = remoteClient.AgentId != part.OwnerID; |
142 | } | 151 | } |
diff --git a/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs b/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs index babcb54..55455cc 100644 --- a/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs +++ b/OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs | |||
@@ -117,29 +117,40 @@ namespace OpenSim.Region.Framework.Scenes.Serialization | |||
117 | { | 117 | { |
118 | using (XmlTextReader reader = new XmlTextReader(sr)) | 118 | using (XmlTextReader reader = new XmlTextReader(sr)) |
119 | { | 119 | { |
120 | reader.Read(); | 120 | try |
121 | if (reader.Name != "CoalescedObject") | ||
122 | { | 121 | { |
123 | // m_log.DebugFormat( | 122 | reader.Read(); |
124 | // "[COALESCED SCENE OBJECTS SERIALIZER]: TryFromXml() root element was {0} so returning false", | 123 | if (reader.Name != "CoalescedObject") |
125 | // reader.Name); | 124 | { |
125 | // m_log.DebugFormat( | ||
126 | // "[COALESCED SCENE OBJECTS SERIALIZER]: TryFromXml() root element was {0} so returning false", | ||
127 | // reader.Name); | ||
128 | |||
129 | return false; | ||
130 | } | ||
126 | 131 | ||
127 | return false; | 132 | coa = new CoalescedSceneObjects(UUID.Zero); |
128 | } | 133 | reader.Read(); |
129 | 134 | ||
130 | coa = new CoalescedSceneObjects(UUID.Zero); | 135 | while (reader.NodeType != XmlNodeType.EndElement && reader.Name != "CoalescedObject") |
131 | reader.Read(); | ||
132 | |||
133 | while (reader.NodeType != XmlNodeType.EndElement && reader.Name != "CoalescedObject") | ||
134 | { | ||
135 | if (reader.Name == "SceneObjectGroup") | ||
136 | { | 136 | { |
137 | string soXml = reader.ReadOuterXml(); | 137 | if (reader.Name == "SceneObjectGroup") |
138 | coa.Add(SceneObjectSerializer.FromOriginalXmlFormat(soXml)); | 138 | { |
139 | string soXml = reader.ReadOuterXml(); | ||
140 | coa.Add(SceneObjectSerializer.FromOriginalXmlFormat(soXml)); | ||
141 | } | ||
139 | } | 142 | } |
143 | |||
144 | reader.ReadEndElement(); // CoalescedObject | ||
140 | } | 145 | } |
141 | 146 | catch (Exception e) | |
142 | reader.ReadEndElement(); // CoalescedObject | 147 | { |
148 | m_log.ErrorFormat( | ||
149 | "[COALESCED SCENE OBJECTS SERIALIZER]: Deserialization of xml failed with {0} {1}", | ||
150 | e.Message, e.StackTrace); | ||
151 | |||
152 | return false; | ||
153 | } | ||
143 | } | 154 | } |
144 | } | 155 | } |
145 | 156 | ||
diff --git a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs index 3978a7d..fdfbc78 100644 --- a/OpenSim/Region/Framework/Scenes/UuidGatherer.cs +++ b/OpenSim/Region/Framework/Scenes/UuidGatherer.cs | |||
@@ -294,10 +294,20 @@ namespace OpenSim.Region.Framework.Scenes | |||
294 | if (null != objectAsset) | 294 | if (null != objectAsset) |
295 | { | 295 | { |
296 | string xml = Utils.BytesToString(objectAsset.Data); | 296 | string xml = Utils.BytesToString(objectAsset.Data); |
297 | SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml); | 297 | |
298 | 298 | CoalescedSceneObjects coa; | |
299 | if (null != sog) | 299 | if (CoalescedSceneObjectsSerializer.TryFromXml(xml, out coa)) |
300 | GatherAssetUuids(sog, assetUuids); | 300 | { |
301 | foreach (SceneObjectGroup sog in coa.Objects) | ||
302 | GatherAssetUuids(sog, assetUuids); | ||
303 | } | ||
304 | else | ||
305 | { | ||
306 | SceneObjectGroup sog = SceneObjectSerializer.FromOriginalXmlFormat(xml); | ||
307 | |||
308 | if (null != sog) | ||
309 | GatherAssetUuids(sog, assetUuids); | ||
310 | } | ||
301 | } | 311 | } |
302 | } | 312 | } |
303 | 313 | ||