aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs10
1 files changed, 5 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index 9548200..9bd7632 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -3235,13 +3235,10 @@ namespace OpenSim.Region.Framework.Scenes
3235 3235
3236 Vector3 oldPos; 3236 Vector3 oldPos;
3237 3237
3238 // FIXME: This improves the situation where editing just the root prim of an attached object would send
3239 // all the other parts to oblivion after detach/reattach. However, a problem remains since the root prim
3240 // still ends up in the wrong position on reattach.
3241 if (IsAttachment) 3238 if (IsAttachment)
3242 oldPos = RootPart.OffsetPosition; 3239 oldPos = m_rootPart.AttachedPos + m_rootPart.OffsetPosition; // OffsetPosition should always be 0 in an attachments's root prim
3243 else 3240 else
3244 oldPos = AbsolutePosition + RootPart.OffsetPosition; 3241 oldPos = AbsolutePosition + m_rootPart.OffsetPosition;
3245 3242
3246 Vector3 diff = oldPos - newPos; 3243 Vector3 diff = oldPos - newPos;
3247 Quaternion partRotation = m_rootPart.RotationOffset; 3244 Quaternion partRotation = m_rootPart.RotationOffset;
@@ -3256,6 +3253,9 @@ namespace OpenSim.Region.Framework.Scenes
3256 } 3253 }
3257 3254
3258 AbsolutePosition = newPos; 3255 AbsolutePosition = newPos;
3256
3257 if (IsAttachment)
3258 m_rootPart.AttachedPos = newPos;
3259 3259
3260 HasGroupChanged = true; 3260 HasGroupChanged = true;
3261 ScheduleGroupForTerseUpdate(); 3261 ScheduleGroupForTerseUpdate();