diff options
Merge branch 'master' of ssh://opensimulator.org/var/git/opensim
Diffstat (limited to 'OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs')
-rw-r--r-- | OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs index 130c869..2a513e9 100644 --- a/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs +++ b/OpenSim/Region/CoreModules/Avatar/Attachments/AttachmentsModule.cs | |||
@@ -407,6 +407,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
407 | 407 | ||
408 | public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId) | 408 | public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId) |
409 | { | 409 | { |
410 | DetachSingleAttachmentToGround(sp, soLocalId, sp.AbsolutePosition, Quaternion.Identity); | ||
411 | } | ||
412 | |||
413 | public void DetachSingleAttachmentToGround(IScenePresence sp, uint soLocalId, Vector3 absolutePos, Quaternion absoluteRot) | ||
414 | { | ||
410 | if (!Enabled) | 415 | if (!Enabled) |
411 | return; | 416 | return; |
412 | 417 | ||
@@ -448,7 +453,11 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments | |||
448 | so.FromItemID = UUID.Zero; | 453 | so.FromItemID = UUID.Zero; |
449 | 454 | ||
450 | SceneObjectPart rootPart = so.RootPart; | 455 | SceneObjectPart rootPart = so.RootPart; |
451 | so.AbsolutePosition = sp.AbsolutePosition; | 456 | so.AbsolutePosition = absolutePos; |
457 | if (absoluteRot != Quaternion.Identity) | ||
458 | { | ||
459 | so.UpdateGroupRotationR(absoluteRot); | ||
460 | } | ||
452 | so.AttachedAvatar = UUID.Zero; | 461 | so.AttachedAvatar = UUID.Zero; |
453 | rootPart.SetParentLocalId(0); | 462 | rootPart.SetParentLocalId(0); |
454 | so.ClearPartAttachmentData(); | 463 | so.ClearPartAttachmentData(); |