aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs27
1 files changed, 6 insertions, 21 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
index ea6174a..6371a1f 100644
--- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
+++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs
@@ -713,13 +713,13 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
713 so.UpdateGroupRotationR(absoluteRot); 713 so.UpdateGroupRotationR(absoluteRot);
714 } 714 }
715 715
716// rootPart.RemFlag(PrimFlags.TemporaryOnRez); 716 rootPart.RemFlag(PrimFlags.TemporaryOnRez);
717// rootPart.AddFlag(PrimFlags.Phantom);
718
719// rootPart.ApplyPhysics(rootPart.GetEffectiveObjectFlags(), rootPart.VolumeDetectActive,false);
720 717
721 // not physical, not temporary, phaton, not volume detector 718 // not physical, not temporary, phaton, not volume detector
722 so.UpdatePrimFlags(rootPart.LocalId,false,false,true,rootPart.VolumeDetectActive); 719// so.UpdatePrimFlags(rootPart.LocalId,false,false,true,rootPart.VolumeDetectActive);
720
721 // restore full physical state instead
722 so.ApplyPhysics();
723 723
724 so.HasGroupChanged = true; 724 so.HasGroupChanged = true;
725 rootPart.Rezzed = DateTime.Now; 725 rootPart.Rezzed = DateTime.Now;
@@ -918,32 +918,17 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
918 918
919 so.AttachedAvatar = sp.UUID; 919 so.AttachedAvatar = sp.UUID;
920 920
921// if (so.RootPart.PhysActor != null)
922// so.RootPart.RemoveFromPhysics();
923
924 foreach (SceneObjectPart part in so.Parts) 921 foreach (SceneObjectPart part in so.Parts)
925 { 922 {
926 if (part.KeyframeMotion != null) 923 if (part.KeyframeMotion != null)
927 { 924 part.KeyframeMotion.Suspend();
928 part.KeyframeMotion.Delete();
929 part.KeyframeMotion = null;
930 }
931 925
932// if (part.IsJoint() && ((part.Flags & PrimFlags.Physics) != 0))
933// {
934// PhysicsScene.RequestJointDeletion(part.Name); // FIXME: what if the name changed?
935// }
936// else
937 if (part.PhysActor != null) 926 if (part.PhysActor != null)
938 { 927 {
939 if(part.PhysActor.IsPhysical)
940 so.Scene.RemovePhysicalPrim(1);
941 part.RemoveFromPhysics(); 928 part.RemoveFromPhysics();
942 } 929 }
943 } 930 }
944 931
945 so.RootPart.Flags &= ~PrimFlags.Physics;
946
947 so.AbsolutePosition = attachOffset; 932 so.AbsolutePosition = attachOffset;
948 so.RootPart.AttachedPos = attachOffset; 933 so.RootPart.AttachedPos = attachOffset;
949 so.IsAttachment = true; 934 so.IsAttachment = true;