Restore duplication of the SL bug where linking phantom to solid lets the

child prim remain phantom
avinationmerge
Melanie 2012-03-12 14:06:39 +01:00
parent bfd38ecad4
commit edc8a15487
1 changed files with 2 additions and 3 deletions

View File

@ -2511,7 +2511,6 @@ namespace OpenSim.Region.Framework.Scenes
// physics flags from group to be applied to linked parts // physics flags from group to be applied to linked parts
bool grpusephys = UsesPhysics; bool grpusephys = UsesPhysics;
bool grptemporary = IsTemporary; bool grptemporary = IsTemporary;
bool gprphantom = IsPhantom;
Vector3 oldGroupPosition = linkPart.GroupPosition; Vector3 oldGroupPosition = linkPart.GroupPosition;
Quaternion oldRootRotation = linkPart.RotationOffset; Quaternion oldRootRotation = linkPart.RotationOffset;
@ -2557,7 +2556,7 @@ namespace OpenSim.Region.Framework.Scenes
linkPart.CreateSelected = true; linkPart.CreateSelected = true;
// let physics know preserve part volume dtc messy since UpdatePrimFlags doesn't look to parent changes for now // let physics know preserve part volume dtc messy since UpdatePrimFlags doesn't look to parent changes for now
linkPart.UpdatePrimFlags(grpusephys, grptemporary, gprphantom, linkPart.VolumeDetectActive, true); linkPart.UpdatePrimFlags(grpusephys, grptemporary, (linkPart.Flags & PrimFlags.Phantom) != null, linkPart.VolumeDetectActive, true);
if (linkPart.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical) if (linkPart.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
{ {
linkPart.PhysActor.link(m_rootPart.PhysActor); linkPart.PhysActor.link(m_rootPart.PhysActor);
@ -2579,7 +2578,7 @@ namespace OpenSim.Region.Framework.Scenes
{ {
LinkNonRootPart(part, oldGroupPosition, oldRootRotation, linkNum++); LinkNonRootPart(part, oldGroupPosition, oldRootRotation, linkNum++);
// let physics know // let physics know
part.UpdatePrimFlags(grpusephys, grptemporary, gprphantom, part.VolumeDetectActive, true); part.UpdatePrimFlags(grpusephys, grptemporary, (part.Flags & PrimFlags.Phantom) != null, part.VolumeDetectActive, true);
if (part.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical) if (part.PhysActor != null && m_rootPart.PhysActor != null && m_rootPart.PhysActor.IsPhysical)
{ {
part.PhysActor.link(m_rootPart.PhysActor); part.PhysActor.link(m_rootPart.PhysActor);