Adapt CM to the new CHANGED_OWNER handling

avinationmerge
Melanie Thielker 2010-05-03 04:28:30 +02:00
parent 9f8acbfe3e
commit 8766401777
4 changed files with 36 additions and 4 deletions

View File

@ -245,7 +245,10 @@ namespace OpenSim.Region.CoreModules.Avatar.Attachments
objatt.HasGroupChanged = true; objatt.HasGroupChanged = true;
if (doc != null) if (doc != null)
{
objatt.LoadScriptState(doc); objatt.LoadScriptState(doc);
objatt.ResetOwnerChangeFlag();
}
// Fire after attach, so we don't get messy perms dialogs // Fire after attach, so we don't get messy perms dialogs
// 3 == AttachedRez // 3 == AttachedRez

View File

@ -3931,5 +3931,13 @@ namespace OpenSim.Region.Framework.Scenes
return priority; return priority;
} }
public void ResetOwnerChangeFlag()
{
ForEachPart(delegate(SceneObjectPart part)
{
part.ResetOwnerChangeFlag();
});
}
} }
} }

View File

@ -4683,5 +4683,17 @@ namespace OpenSim.Region.Framework.Scenes
{ {
return new Color4((byte)Color.R, (byte)Color.G, (byte)Color.B, (byte)(0xFF - Color.A)); return new Color4((byte)Color.R, (byte)Color.G, (byte)Color.B, (byte)(0xFF - Color.A));
} }
public void ResetOwnerChangeFlag()
{
List<UUID> inv = Inventory.GetInventoryList();
foreach (UUID itemID in inv)
{
TaskInventoryItem item = Inventory.GetInventoryItem(itemID);
item.OwnerChanged = false;
Inventory.UpdateInventoryItem(item);
}
}
} }
} }

View File

@ -4011,15 +4011,24 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos);
{ {
string xmlData; string xmlData;
XmlDocument d = new XmlDocument(); XmlDocument d = new XmlDocument();
UUID asset;
if (itemData.TryGetValue(itemID, out xmlData)) if (itemData.TryGetValue(itemID, out xmlData))
{ {
d.LoadXml(xmlData); d.LoadXml(xmlData);
m_log.InfoFormat("[ATTACHMENT]: Found saved state for item {0}, loading it", itemID); m_log.InfoFormat("[ATTACHMENT]: Found saved state for item {0}, loading it", itemID);
}
// Rez from inventory // Rez from inventory
UUID asset asset
= m_scene.AttachmentsModule.RezSingleAttachmentFromInventory(ControllingClient, itemID, (uint)p, true, d); = m_scene.AttachmentsModule.RezSingleAttachmentFromInventory(ControllingClient, itemID, (uint)p, true, d);
}
else
{
// Rez from inventory (with a null doc to let
// CHANGED_OWNER happen)
asset
= m_scene.AttachmentsModule.RezSingleAttachmentFromInventory(ControllingClient, itemID, (uint)p, true, null);
}
m_log.InfoFormat( m_log.InfoFormat(
"[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})", "[ATTACHMENT]: Rezzed attachment in point {0} from item {1} and asset {2} ({3})",