diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs | 28 |
1 files changed, 28 insertions, 0 deletions
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> |