JustinCC is evil. f7b28dd3
broke script persistence. This fixes it.
parent
f5e3d5a33a
commit
1b2edfe75f
|
@ -57,6 +57,15 @@ namespace OpenSim.Region.Framework.Interfaces
|
||||||
/// <param name="linkNum">Link number for the part</param>
|
/// <param name="linkNum">Link number for the part</param>
|
||||||
void ResetInventoryIDs();
|
void ResetInventoryIDs();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reset parent object UUID for all the items in the prim's inventory.
|
||||||
|
/// </summary>
|
||||||
|
///
|
||||||
|
/// If this method is called and there are inventory items, then we regard the inventory as having changed.
|
||||||
|
///
|
||||||
|
/// <param name="linkNum">Link number for the part</param>
|
||||||
|
void ResetObjectID();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Change every item in this inventory to a new owner.
|
/// Change every item in this inventory to a new owner.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
@ -511,6 +511,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
if (node.Attributes["UUID"] != null)
|
if (node.Attributes["UUID"] != null)
|
||||||
{
|
{
|
||||||
UUID itemid = new UUID(node.Attributes["UUID"].Value);
|
UUID itemid = new UUID(node.Attributes["UUID"].Value);
|
||||||
|
m_log.DebugFormat("[SCRIPT STATE]: Adding state for oldID {0}", itemid);
|
||||||
m_savedScriptState.Add(itemid, node.InnerXml);
|
m_savedScriptState.Add(itemid, node.InnerXml);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -500,7 +500,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
|
|
||||||
// This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part
|
// This is necessary so that TaskInventoryItem parent ids correctly reference the new uuid of this part
|
||||||
if (Inventory != null)
|
if (Inventory != null)
|
||||||
Inventory.ResetInventoryIDs();
|
Inventory.ResetObjectID();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2763,6 +2763,7 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
UUID = UUID.Random();
|
UUID = UUID.Random();
|
||||||
LinkNum = linkNum;
|
LinkNum = linkNum;
|
||||||
LocalId = 0;
|
LocalId = 0;
|
||||||
|
Inventory.ResetInventoryIDs();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -140,6 +140,34 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ResetObjectID()
|
||||||
|
{
|
||||||
|
m_items.LockItemsForWrite(true);
|
||||||
|
|
||||||
|
if (Items.Count == 0)
|
||||||
|
{
|
||||||
|
m_items.LockItemsForWrite(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
HasInventoryChanged = true;
|
||||||
|
if (m_part.ParentGroup != null)
|
||||||
|
{
|
||||||
|
m_part.ParentGroup.HasGroupChanged = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
IList<TaskInventoryItem> items = new List<TaskInventoryItem>(Items.Values);
|
||||||
|
Items.Clear();
|
||||||
|
|
||||||
|
foreach (TaskInventoryItem item in items)
|
||||||
|
{
|
||||||
|
item.ParentPartID = m_part.UUID;
|
||||||
|
item.ParentID = m_part.UUID;
|
||||||
|
Items.Add(item.ItemID, item);
|
||||||
|
}
|
||||||
|
m_items.LockItemsForWrite(false);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Change every item in this inventory to a new owner.
|
/// Change every item in this inventory to a new owner.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue