diff options
Merge branch 'master' into careminster
Conflicts:
OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
OpenSim/Region/CoreModules/Framework/InventoryAccess/InventoryAccessModule.cs
OpenSim/Region/Framework/Scenes/SceneObjectPartInventory.cs
OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs index 9db34fd..2420048 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs | |||
@@ -111,6 +111,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
111 | STATUS_ROTATE_Z = 0x008, | 111 | STATUS_ROTATE_Z = 0x008, |
112 | } | 112 | } |
113 | 113 | ||
114 | // This flag has the same purpose as InventoryItemFlags.ObjectSlamPerm | ||
115 | public static readonly uint SLAM = 16; | ||
116 | |||
114 | // private PrimCountTaintedDelegate handlerPrimCountTainted = null; | 117 | // private PrimCountTaintedDelegate handlerPrimCountTainted = null; |
115 | 118 | ||
116 | /// <summary> | 119 | /// <summary> |
@@ -3810,13 +3813,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
3810 | // needs to be called with phys building true | 3813 | // needs to be called with phys building true |
3811 | Vector3 oldPos; | 3814 | Vector3 oldPos; |
3812 | 3815 | ||
3813 | // FIXME: This improves the situation where editing just the root prim of an attached object would send | ||
3814 | // all the other parts to oblivion after detach/reattach. However, a problem remains since the root prim | ||
3815 | // still ends up in the wrong position on reattach. | ||
3816 | if (IsAttachment) | 3816 | if (IsAttachment) |
3817 | oldPos = RootPart.OffsetPosition; | 3817 | oldPos = m_rootPart.AttachedPos + m_rootPart.OffsetPosition; // OffsetPosition should always be 0 in an attachments's root prim |
3818 | else | 3818 | else |
3819 | oldPos = AbsolutePosition + RootPart.OffsetPosition; | 3819 | oldPos = AbsolutePosition + m_rootPart.OffsetPosition; |
3820 | 3820 | ||
3821 | Vector3 diff = oldPos - newPos; | 3821 | Vector3 diff = oldPos - newPos; |
3822 | Quaternion partRotation = m_rootPart.RotationOffset; | 3822 | Quaternion partRotation = m_rootPart.RotationOffset; |
@@ -3831,6 +3831,9 @@ namespace OpenSim.Region.Framework.Scenes | |||
3831 | } | 3831 | } |
3832 | 3832 | ||
3833 | AbsolutePosition = newPos; | 3833 | AbsolutePosition = newPos; |
3834 | |||
3835 | if (IsAttachment) | ||
3836 | m_rootPart.AttachedPos = newPos; | ||
3834 | 3837 | ||
3835 | HasGroupChanged = true; | 3838 | HasGroupChanged = true; |
3836 | if (m_rootPart.Undoing) | 3839 | if (m_rootPart.Undoing) |