From 96ecb62197dbb5fef9f6c1855e032ac855b94e5f Mon Sep 17 00:00:00 2001
From: Justin Clarke Casey
Date: Tue, 1 Apr 2008 17:06:33 +0000
Subject: * Fix for mantis #678 * Shift copied prims should now keep the script
in both prims over region startups
---
OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 5 ++++-
.../Region/Environment/Scenes/SceneObjectPart.Inventory.cs | 13 +++++++++++--
2 files changed, 15 insertions(+), 3 deletions(-)
(limited to 'OpenSim/Region')
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
index edb76e9..eb7ad33 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs
@@ -386,6 +386,9 @@ namespace OpenSim.Region.Environment.Scenes
UpdateParentIDs();
}
+ ///
+ /// Hooks this object up to the backup event so that it is persisted to the database when the update thread executes.
+ ///
private void AttachToBackup()
{
if (InSceneBackup)
@@ -550,7 +553,7 @@ namespace OpenSim.Region.Environment.Scenes
#region Copying
///
- ///
+ /// Duplicates this object, including operations such as physics set up and attaching to the backup event.
///
///
public SceneObjectGroup Copy(LLUUID cAgentID, LLUUID cGroupID)
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
index f7e82a5..56894b7 100644
--- a/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
+++ b/OpenSim/Region/Environment/Scenes/SceneObjectPart.Inventory.cs
@@ -90,13 +90,22 @@ namespace OpenSim.Region.Environment.Scenes
///
/// Reset LLUUIDs for all the items in the prim's inventory. This involves either generating
- /// new ones or setting existing UUIDs to the correct parent UUIDs
+ /// new ones or setting existing UUIDs to the correct parent UUIDs.
+ ///
+ /// If this method is called and there are inventory items, then we regard the inventory as having changed.
///
/// Link number for the part
public void ResetInventoryIDs()
{
lock (TaskInventory)
- {
+ {
+ if (0 == TaskInventory.Count)
+ {
+ return;
+ }
+
+ HasInventoryChanged = true;
+
IList items = new List(TaskInventory.Values);
TaskInventory.Clear();
--
cgit v1.1