aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorMelanie2011-04-21 23:06:01 +0100
committerMelanie2011-04-21 23:06:01 +0100
commit0c68fbdb1aa746d1f18242f921bd2605271c06db (patch)
treec5a35a5723f4c73821c20773d6bc2897b92dcce8 /OpenSim/Region/Framework
parentAdd fix a minor bug (diff)
parentMerge branch 'master' of melanie@opensimulator.org:/var/git/opensim (diff)
downloadopensim-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')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.Inventory.cs21
-rw-r--r--OpenSim/Region/Framework/Scenes/Serialization/CoalescedSceneObjectsSerializer.cs47
-rw-r--r--OpenSim/Region/Framework/Scenes/UuidGatherer.cs18
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