fix mantis 7733, reverting setting of IsAttachment on first call to full check. Replace instead same simple IsAttachment tests by full checks

avinationmerge
UbitUmarov 2015-10-29 22:14:11 +00:00
parent 8b1ae501b5
commit dd9b06e3b6
2 changed files with 6 additions and 9 deletions

View File

@ -447,12 +447,8 @@ namespace OpenSim.Region.Framework.Scenes
/// <returns></returns> /// <returns></returns>
public bool IsAttachmentCheckFull() public bool IsAttachmentCheckFull()
{ {
if(IsAttachment) return (IsAttachment ||
return true; (m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0));
IsAttachment = (m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0);
return IsAttachment;
} }
private struct avtocrossInfo private struct avtocrossInfo

View File

@ -1753,8 +1753,9 @@ namespace OpenSim.Region.Framework.Scenes
} }
else else
{ {
if ((!isPhantom || isPhysical || _VolumeDetectActive) && !ParentGroup.IsAttachment if ((!isPhantom || isPhysical || _VolumeDetectActive)
&& !(Shape.PathCurve == (byte)Extrusion.Flexible)) && !ParentGroup.IsAttachmentCheckFull()
&& !(Shape.PathCurve == (byte)Extrusion.Flexible))
{ {
AddToPhysics(isPhysical, isPhantom, isPhysical); AddToPhysics(isPhysical, isPhantom, isPhysical);
} }
@ -4241,7 +4242,7 @@ namespace OpenSim.Region.Framework.Scenes
} }
if (SetPhantom if (SetPhantom
|| ParentGroup.IsAttachment || ParentGroup.IsAttachmentCheckFull()
|| PhysicsShapeType == (byte)PhysShapeType.none || PhysicsShapeType == (byte)PhysShapeType.none
|| (Shape.PathCurve == (byte)Extrusion.Flexible)) // note: this may have been changed above in the case of joints || (Shape.PathCurve == (byte)Extrusion.Flexible)) // note: this may have been changed above in the case of joints
{ {