diff options
-rw-r--r-- | OpenSim/Region/Framework/Interfaces/IEntityInventory.cs | 9 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 3 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 28 | ||||
-rw-r--r-- | bin/OpenSimDefaults.ini | 3 |
4 files changed, 42 insertions, 1 deletions
diff --git a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs index 7edb43e..2e6faa0 100644 --- a/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs +++ b/OpenSim/Region/Framework/Interfaces/IEntityInventory.cs | |||
@@ -58,6 +58,15 @@ namespace OpenSim.Region.Framework.Interfaces | |||
58 | void ResetInventoryIDs(); | 58 | void ResetInventoryIDs(); |
59 | 59 | ||
60 | /// <summary> | 60 | /// <summary> |
61 | /// Reset parent object UUID for all the items in the prim's inventory. | ||
62 | /// </summary> | ||
63 | /// | ||
64 | /// If this method is called and there are inventory items, then we regard the inventory as having changed. | ||
65 | /// | ||
66 | /// <param name="linkNum">Link number for the part</param> | ||
67 | void ResetObjectID(); | ||
68 | |||
69 | /// <summary> | ||
61 | /// Change every item in this inventory to a new owner. | 70 | /// Change every item in this inventory to a new owner. |
62 | /// </summary> | 71 | /// </summary> |
63 | /// <param name="ownerId"></param> | 72 | /// <param name="ownerId"></param> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 024bdc9..95cd26f 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -500,7 +500,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
500 | 500 | ||
501 | // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part | 501 | // This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part |
502 | if (Inventory != null) | 502 | if (Inventory != null) |
503 | Inventory.ResetInventoryIDs(); | 503 | Inventory.ResetObjectID(); |
504 | } | 504 | } |
505 | } | 505 | } |
506 | 506 | ||
@@ -2763,6 +2763,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
2763 | UUID = UUID.Random(); | 2763 | UUID = UUID.Random(); |
2764 | LinkNum = linkNum; | 2764 | LinkNum = linkNum; |
2765 | LocalId = 0; | 2765 | LocalId = 0; |
2766 | Inventory.ResetInventoryIDs(); | ||
2766 | } | 2767 | } |
2767 | 2768 | ||
2768 | /// <summary> | 2769 | /// <summary> |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs index 53ddb5d..fbaa7d4 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | |||
@@ -140,6 +140,34 @@ namespace OpenSim.Region.Framework.Scenes | |||
140 | } | 140 | } |
141 | } | 141 | } |
142 | 142 | ||
143 | public void ResetObjectID() | ||
144 | { | ||
145 | m_items.LockItemsForWrite(true); | ||
146 | |||
147 | if (Items.Count == 0) | ||
148 | { | ||
149 | m_items.LockItemsForWrite(false); | ||
150 | return; | ||
151 | } | ||
152 | |||
153 | HasInventoryChanged = true; | ||
154 | if (m_part.ParentGroup != null) | ||
155 | { | ||
156 | m_part.ParentGroup.HasGroupChanged = true; | ||
157 | } | ||
158 | |||
159 | IList<TaskInventoryItem> items = new List<TaskInventoryItem>(Items.Values); | ||
160 | Items.Clear(); | ||
161 | |||
162 | foreach (TaskInventoryItem item in items) | ||
163 | { | ||
164 | item.ParentPartID = m_part.UUID; | ||
165 | item.ParentID = m_part.UUID; | ||
166 | Items.Add(item.ItemID, item); | ||
167 | } | ||
168 | m_items.LockItemsForWrite(false); | ||
169 | } | ||
170 | |||
143 | /// <summary> | 171 | /// <summary> |
144 | /// Change every item in this inventory to a new owner. | 172 | /// Change every item in this inventory to a new owner. |
145 | /// </summary> | 173 | /// </summary> |
diff --git a/bin/OpenSimDefaults.ini b/bin/OpenSimDefaults.ini index 94d021d..e78f25b 100644 --- a/bin/OpenSimDefaults.ini +++ b/bin/OpenSimDefaults.ini | |||
@@ -1264,3 +1264,6 @@ | |||
1264 | ;; default standalone, overridable in StandaloneCommon.ini | 1264 | ;; default standalone, overridable in StandaloneCommon.ini |
1265 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" | 1265 | StorageProvider = "OpenSim.Data.Null.dll:NullRegionData" |
1266 | 1266 | ||
1267 | [Modules] | ||
1268 | Include-modules = "addon-modules/*/config/*.ini" | ||
1269 | |||