diff options
Diffstat (limited to 'OpenSim/Region/Environment/Scenes')
-rw-r--r-- | OpenSim/Region/Environment/Scenes/InnerScene.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/Scene.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | 8 |
3 files changed, 16 insertions, 4 deletions
diff --git a/OpenSim/Region/Environment/Scenes/InnerScene.cs b/OpenSim/Region/Environment/Scenes/InnerScene.cs index d63544a..f58f334 100644 --- a/OpenSim/Region/Environment/Scenes/InnerScene.cs +++ b/OpenSim/Region/Environment/Scenes/InnerScene.cs | |||
@@ -517,6 +517,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
517 | group.SetFromAssetID(newAssetID); | 517 | group.SetFromAssetID(newAssetID); |
518 | } | 518 | } |
519 | group.AttachToAgent(remoteClient.AgentId, AttachmentPt, attachPos); | 519 | group.AttachToAgent(remoteClient.AgentId, AttachmentPt, attachPos); |
520 | // In case it is later dropped again, don't let | ||
521 | // it get cleaned up | ||
522 | // | ||
523 | group.RootPart.RemFlag(PrimFlags.TemporaryOnRez); | ||
520 | } | 524 | } |
521 | else | 525 | else |
522 | { | 526 | { |
diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs index 8f8c89e..09ebbee 100644 --- a/OpenSim/Region/Environment/Scenes/Scene.cs +++ b/OpenSim/Region/Environment/Scenes/Scene.cs | |||
@@ -2052,6 +2052,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2052 | { | 2052 | { |
2053 | if (RootPrim.Shape.State != 0) | 2053 | if (RootPrim.Shape.State != 0) |
2054 | { | 2054 | { |
2055 | // Never persist | ||
2056 | |||
2057 | grp.DetachFromBackup(); | ||
2058 | |||
2055 | // Attachment | 2059 | // Attachment |
2056 | ScenePresence sp = GetScenePresence(grp.OwnerID); | 2060 | ScenePresence sp = GetScenePresence(grp.OwnerID); |
2057 | if (sp != null) | 2061 | if (sp != null) |
@@ -2063,6 +2067,10 @@ namespace OpenSim.Region.Environment.Scenes | |||
2063 | grp.SetFromAssetID(grp.RootPart.LastOwnerID); | 2067 | grp.SetFromAssetID(grp.RootPart.LastOwnerID); |
2064 | AttachObject(sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition); | 2068 | AttachObject(sp.ControllingClient, grp.LocalId, (uint)0, grp.GroupRotation, grp.AbsolutePosition); |
2065 | } | 2069 | } |
2070 | else | ||
2071 | { | ||
2072 | RootPrim.AddFlag(PrimFlags.TemporaryOnRez); | ||
2073 | } | ||
2066 | } | 2074 | } |
2067 | } | 2075 | } |
2068 | } | 2076 | } |
diff --git a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs index 482d936..ebd79e2 100644 --- a/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Environment/Scenes/SceneObjectGroup.cs | |||
@@ -713,7 +713,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
713 | // don't attach attachments to child agents | 713 | // don't attach attachments to child agents |
714 | if (avatar.IsChildAgent) return; | 714 | if (avatar.IsChildAgent) return; |
715 | 715 | ||
716 | DetachFromBackup(this); | 716 | DetachFromBackup(); |
717 | m_rootPart.AttachedAvatar = agentID; | 717 | m_rootPart.AttachedAvatar = agentID; |
718 | 718 | ||
719 | 719 | ||
@@ -955,7 +955,7 @@ namespace OpenSim.Region.Environment.Scenes | |||
955 | // code needs a redesign. | 955 | // code needs a redesign. |
956 | m_isDeleted = true; | 956 | m_isDeleted = true; |
957 | 957 | ||
958 | DetachFromBackup(this); | 958 | DetachFromBackup(); |
959 | 959 | ||
960 | lock (m_parts) | 960 | lock (m_parts) |
961 | { | 961 | { |
@@ -1925,9 +1925,9 @@ namespace OpenSim.Region.Environment.Scenes | |||
1925 | /// Stop this object from being persisted over server restarts. | 1925 | /// Stop this object from being persisted over server restarts. |
1926 | /// </summary> | 1926 | /// </summary> |
1927 | /// <param name="objectGroup"></param> | 1927 | /// <param name="objectGroup"></param> |
1928 | public void DetachFromBackup(SceneObjectGroup objectGroup) | 1928 | public void DetachFromBackup() |
1929 | { | 1929 | { |
1930 | m_scene.EventManager.OnBackup -= objectGroup.ProcessBackup; | 1930 | m_scene.EventManager.OnBackup -= ProcessBackup; |
1931 | } | 1931 | } |
1932 | 1932 | ||
1933 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) | 1933 | private void LinkNonRootPart(SceneObjectPart part, Vector3 oldGroupPosition, Quaternion oldGroupRotation) |