aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/World/Archiver
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/CoreModules/World/Archiver')
-rw-r--r--OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs44
1 files changed, 22 insertions, 22 deletions
diff --git a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
index 57b7672..a402f4f 100644
--- a/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
+++ b/OpenSim/Region/CoreModules/World/Archiver/ArchiveReadRequest.cs
@@ -243,29 +243,29 @@ namespace OpenSim.Region.CoreModules.World.Archiver
243 // to the same scene (when this is possible). 243 // to the same scene (when this is possible).
244 sceneObject.ResetIDs(); 244 sceneObject.ResetIDs();
245 245
246 foreach (SceneObjectPart part in sceneObject.Children.Values) 246 lock (sceneObject.Children)
247 { 247 {
248 if (!ResolveUserUuid(part.CreatorID)) 248 foreach (SceneObjectPart part in sceneObject.Children.Values)
249 part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner;
250
251 if (!ResolveUserUuid(part.OwnerID))
252 part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
253
254 if (!ResolveUserUuid(part.LastOwnerID))
255 part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
256
257 // And zap any troublesome sit target information
258 part.SitTargetOrientation = new Quaternion(0, 0, 0, 1);
259 part.SitTargetPosition = new Vector3(0, 0, 0);
260
261 // Fix ownership/creator of inventory items
262 // Not doing so results in inventory items
263 // being no copy/no mod for everyone
264 part.TaskInventory.LockItemsForRead(true);
265 TaskInventoryDictionary inv = part.TaskInventory;
266 foreach (KeyValuePair<UUID, TaskInventoryItem> kvp in inv)
267 { 249 {
268 if (!ResolveUserUuid(kvp.Value.OwnerID)) 250 if (!ResolveUserUuid(part.CreatorID))
251 part.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner;
252
253 if (!ResolveUserUuid(part.OwnerID))
254 part.OwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
255
256 if (!ResolveUserUuid(part.LastOwnerID))
257 part.LastOwnerID = m_scene.RegionInfo.EstateSettings.EstateOwner;
258
259 // And zap any troublesome sit target information
260 part.SitTargetOrientation = new Quaternion(0, 0, 0, 1);
261 part.SitTargetPosition = new Vector3(0, 0, 0);
262
263 // Fix ownership/creator of inventory items
264 // Not doing so results in inventory items
265 // being no copy/no mod for everyone
266 part.TaskInventory.LockItemsForRead(true);
267 TaskInventoryDictionary inv = part.TaskInventory;
268 foreach (KeyValuePair<UUID, TaskInventoryItem> kvp in inv)
269 { 269 {
270 if (!ResolveUserUuid(kvp.Value.OwnerID)) 270 if (!ResolveUserUuid(kvp.Value.OwnerID))
271 { 271 {
@@ -276,8 +276,8 @@ namespace OpenSim.Region.CoreModules.World.Archiver
276 kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner; 276 kvp.Value.CreatorID = m_scene.RegionInfo.EstateSettings.EstateOwner;
277 } 277 }
278 } 278 }
279 part.TaskInventory.LockItemsForRead(false);
279 } 280 }
280 part.TaskInventory.LockItemsForRead(false);
281 } 281 }
282 282
283 if (m_scene.AddRestoredSceneObject(sceneObject, true, false)) 283 if (m_scene.AddRestoredSceneObject(sceneObject, true, false))