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>
public bool IsAttachmentCheckFull()
{
if(IsAttachment)
return true;
IsAttachment = (m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0);
return IsAttachment;
return (IsAttachment ||
(m_rootPart.Shape.PCode == (byte)PCodeEnum.Primitive && m_rootPart.Shape.State != 0));
}
private struct avtocrossInfo

View File

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