diff options
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | 14 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 3 |
2 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs index 90b7b51..2057c65 100644 --- a/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs +++ b/OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs | |||
@@ -322,6 +322,18 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
322 | } | 322 | } |
323 | } | 323 | } |
324 | 324 | ||
325 | // Override and put into where it came from, if it came | ||
326 | // from anywhere in inventory | ||
327 | // | ||
328 | if (action == DeRezAction.Take || action == DeRezAction.TakeCopy) | ||
329 | { | ||
330 | if (objectGroup.RootPart.FromFolderID != UUID.Zero) | ||
331 | { | ||
332 | InventoryFolderBase f = new InventoryFolderBase(objectGroup.RootPart.FromFolderID, userID); | ||
333 | folder = m_Scene.InventoryService.GetFolder(f); | ||
334 | } | ||
335 | } | ||
336 | |||
325 | if (folder == null) // None of the above | 337 | if (folder == null) // None of the above |
326 | { | 338 | { |
327 | folder = new InventoryFolderBase(folderID); | 339 | folder = new InventoryFolderBase(folderID); |
@@ -485,6 +497,8 @@ namespace OpenSim.Region.CoreModules.Framework.InventoryAccess | |||
485 | SceneObjectGroup group | 497 | SceneObjectGroup group |
486 | = SceneObjectSerializer.FromOriginalXmlFormat(itemId, xmlData); | 498 | = SceneObjectSerializer.FromOriginalXmlFormat(itemId, xmlData); |
487 | 499 | ||
500 | group.RootPart.FromFolderID = item.Folder; | ||
501 | |||
488 | if (!m_Scene.Permissions.CanRezObject( | 502 | if (!m_Scene.Permissions.CanRezObject( |
489 | group.Children.Count, remoteClient.AgentId, pos) | 503 | group.Children.Count, remoteClient.AgentId, pos) |
490 | && !attachment) | 504 | && !attachment) |
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 59fd805..0698411 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -180,6 +180,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
180 | public UUID FromItemID; | 180 | public UUID FromItemID; |
181 | 181 | ||
182 | [XmlIgnore] | 182 | [XmlIgnore] |
183 | public UUID FromFolderID; | ||
184 | |||
185 | [XmlIgnore] | ||
183 | public int STATUS_ROTATE_X; | 186 | public int STATUS_ROTATE_X; |
184 | 187 | ||
185 | [XmlIgnore] | 188 | [XmlIgnore] |