Fix scripted detach of temp attachments

avinationmerge
Melanie 2012-08-20 15:35:06 +02:00
parent 0a959343a5
commit f71ed7eb79
1 changed files with 2 additions and 6 deletions

View File

@ -526,10 +526,6 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
public void DetachSingleAttachmentToInv(IScenePresence sp, SceneObjectGroup so) public void DetachSingleAttachmentToInv(IScenePresence sp, SceneObjectGroup so)
{ {
// As per Linden spec, detach (take) is disabled for temp attachs
if (so.FromItemID == UUID.Zero)
return;
lock (sp.AttachmentsSyncLock) lock (sp.AttachmentsSyncLock)
{ {
// Save avatar attachment information // Save avatar attachment information
@ -1050,7 +1046,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
ScenePresence sp = m_scene.GetScenePresence(remoteClient.AgentId); ScenePresence sp = m_scene.GetScenePresence(remoteClient.AgentId);
SceneObjectGroup group = m_scene.GetGroupByPrim(objectLocalID); SceneObjectGroup group = m_scene.GetGroupByPrim(objectLocalID);
if (sp != null && group != null) if (sp != null && group != null && group.FromItemID != UUID.Zero)
DetachSingleAttachmentToInv(sp, group); DetachSingleAttachmentToInv(sp, group);
} }
@ -1068,7 +1064,7 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
foreach (SceneObjectGroup group in attachments) foreach (SceneObjectGroup group in attachments)
{ {
if (group.FromItemID == itemID) if (group.FromItemID == itemID && group.FromItemID != UUID.Zero)
{ {
DetachSingleAttachmentToInv(sp, group); DetachSingleAttachmentToInv(sp, group);
return; return;