aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs7
2 files changed, 6 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index f5e2c9d..3b13e64 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -447,12 +447,8 @@ namespace OpenSim.Region.Framework.Scenes
447 /// <returns></returns> 447 /// <returns></returns>
448 public bool IsAttachmentCheckFull() 448 public bool IsAttachmentCheckFull()
449 { 449 {
450 if(IsAttachment) 450 return (IsAttachment ||
451 return true; 451 (m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0));
452
453 IsAttachment = (m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0);
454
455 return IsAttachment;
456 } 452 }
457 453
458 private struct avtocrossInfo 454 private struct avtocrossInfo
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 25aa83f..d1c5f72 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -1753,8 +1753,9 @@ namespace OpenSim.Region.Framework.Scenes
1753 } 1753 }
1754 else 1754 else
1755 { 1755 {
1756 if ((!isPhantom || isPhysical || _VolumeDetectActive) && !ParentGroup.IsAttachment 1756 if ((!isPhantom || isPhysical || _VolumeDetectActive)
1757 && !(Shape.PathCurve == (byte)Extrusion.Flexible)) 1757 && !ParentGroup.IsAttachmentCheckFull()
1758 && !(Shape.PathCurve == (byte)Extrusion.Flexible))
1758 { 1759 {
1759 AddToPhysics(isPhysical, isPhantom, isPhysical); 1760 AddToPhysics(isPhysical, isPhantom, isPhysical);
1760 } 1761 }
@@ -4241,7 +4242,7 @@ namespace OpenSim.Region.Framework.Scenes
4241 } 4242 }
4242 4243
4243 if (SetPhantom 4244 if (SetPhantom
4244 || ParentGroup.IsAttachment 4245 || ParentGroup.IsAttachmentCheckFull()
4245 || PhysicsShapeType == (byte)PhysShapeType.none 4246 || PhysicsShapeType == (byte)PhysShapeType.none
4246 || (Shape.PathCurve == (byte)Extrusion.Flexible)) // note: this may have been changed above in the case of joints 4247 || (Shape.PathCurve == (byte)Extrusion.Flexible)) // note: this may have been changed above in the case of joints
4247 { 4248 {