diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes/ScenePresence.cs')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/ScenePresence.cs | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenSim/Region/Environment/Scenes/ScenePresence.cs b/OpenSim/Region/Environment/Scenes/ScenePresence.cs index 0849698..74e9cdc 100644 --- a/OpenSim/Region/Environment/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Environment/Scenes/ScenePresence.cs | |||
@@ -1906,6 +1906,15 @@ namespace OpenSim.Region.Environment.Scenes | |||
1906 | 1906 | ||
1907 | internal void Close() | 1907 | internal void Close() |
1908 | { | 1908 | { |
1909 | lock (m_attachments) | ||
1910 | { | ||
1911 | foreach (SceneObjectGroup grp in m_attachments) | ||
1912 | { | ||
1913 | // ControllingClient may be null at this point! | ||
1914 | m_scene.m_innerScene.DetachSingleAttachmentToInv(grp.GetFromAssetID(), ControllingClient); | ||
1915 | } | ||
1916 | m_attachments.Clear(); | ||
1917 | } | ||
1909 | lock (m_knownPrimUUID) | 1918 | lock (m_knownPrimUUID) |
1910 | { | 1919 | { |
1911 | m_knownPrimUUID.Clear(); | 1920 | m_knownPrimUUID.Clear(); |
@@ -1972,6 +1981,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
1972 | gobj.RootPart.SetParentLocalId(0); | 1981 | gobj.RootPart.SetParentLocalId(0); |
1973 | gobj.RootPart.m_IsAttachment = false; | 1982 | gobj.RootPart.m_IsAttachment = false; |
1974 | gobj.AbsolutePosition = gobj.RootPart.m_attachedPos; | 1983 | gobj.AbsolutePosition = gobj.RootPart.m_attachedPos; |
1984 | gobj.RootPart.LastOwnerID = gobj.GetFromAssetID(); | ||
1975 | m_scene.CrossPrimGroupIntoNewRegion(regionHandle, gobj); | 1985 | m_scene.CrossPrimGroupIntoNewRegion(regionHandle, gobj); |
1976 | } | 1986 | } |
1977 | } | 1987 | } |