diff options
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 27 |
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; |