Merge branch 'master' of /var/git/opensim/

viewer-2-initial-appearance
opensim mirror account 2010-11-16 03:20:05 -08:00
commit fa1f9bb3c1
2 changed files with 18 additions and 7 deletions

View File

@ -735,7 +735,10 @@ namespace OpenSim.Region.Framework.Scenes.Serialization
private static void ProcessTIOldItemID(TaskInventoryItem item, XmlTextReader reader) private static void ProcessTIOldItemID(TaskInventoryItem item, XmlTextReader reader)
{ {
item.OldItemID = ReadUUID(reader, "OldItemID"); ReadUUID(reader, "OldItemID");
// On deserialization, the old item id MUST BE UUID.Zero!!!!!
// Setting this to the saved value will BREAK script persistence!
// item.OldItemID = ReadUUID(reader, "OldItemID");
} }
private static void ProcessTILastOwnerID(TaskInventoryItem item, XmlTextReader reader) private static void ProcessTILastOwnerID(TaskInventoryItem item, XmlTextReader reader)

View File

@ -2983,16 +2983,24 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
if ((item.PermsMask & ScriptBaseClass.PERMISSION_ATTACH) != 0) if ((item.PermsMask & ScriptBaseClass.PERMISSION_ATTACH) != 0)
{ {
SceneObjectGroup grp = m_host.ParentGroup; IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
UUID itemID = grp.GetFromItemID(); if (attachmentsModule != null)
Util.FireAndForget(DetachWrapper, m_host);
}
}
ScenePresence presence = World.GetScenePresence(m_host.OwnerID); private void DetachWrapper(object o)
{
SceneObjectPart host = (SceneObjectPart)o;
SceneObjectGroup grp = host.ParentGroup;
UUID itemID = grp.GetFromItemID();
ScenePresence presence = World.GetScenePresence(host.OwnerID);
IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule; IAttachmentsModule attachmentsModule = m_ScriptEngine.World.AttachmentsModule;
if (attachmentsModule != null) if (attachmentsModule != null)
attachmentsModule.ShowDetachInUserInventory(itemID, presence.ControllingClient); attachmentsModule.ShowDetachInUserInventory(itemID, presence.ControllingClient);
} }
}
public void llTakeCamera(string avatar) public void llTakeCamera(string avatar)
{ {