diff options
Changed the DeRezObject event so it passes a list<uint> of localIDs in one event trigger rather than triggering the event once for every localid in the derez packet.
Diffstat (limited to 'OpenSim/Region')
-rw-r--r-- | OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | 8 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | 17 |
2 files changed, 23 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs index 74a8874..3fdb386 100644 --- a/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs +++ b/OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs | |||
@@ -5065,16 +5065,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP | |||
5065 | handlerDeRezObject = OnDeRezObject; | 5065 | handlerDeRezObject = OnDeRezObject; |
5066 | if (handlerDeRezObject != null) | 5066 | if (handlerDeRezObject != null) |
5067 | { | 5067 | { |
5068 | List<uint> deRezIDs = new List<uint>(); | ||
5069 | |||
5068 | foreach (DeRezObjectPacket.ObjectDataBlock data in | 5070 | foreach (DeRezObjectPacket.ObjectDataBlock data in |
5069 | DeRezPacket.ObjectData) | 5071 | DeRezPacket.ObjectData) |
5070 | { | 5072 | { |
5073 | deRezIDs.Add(data.ObjectLocalID); | ||
5074 | } | ||
5071 | // It just so happens that the values on the DeRezAction enumerator match the Destination | 5075 | // It just so happens that the values on the DeRezAction enumerator match the Destination |
5072 | // values given by a Second Life client | 5076 | // values given by a Second Life client |
5073 | handlerDeRezObject(this, data.ObjectLocalID, | 5077 | handlerDeRezObject(this, deRezIDs, |
5074 | DeRezPacket.AgentBlock.GroupID, | 5078 | DeRezPacket.AgentBlock.GroupID, |
5075 | (DeRezAction)DeRezPacket.AgentBlock.Destination, | 5079 | (DeRezAction)DeRezPacket.AgentBlock.Destination, |
5076 | DeRezPacket.AgentBlock.DestinationID); | 5080 | DeRezPacket.AgentBlock.DestinationID); |
5077 | } | 5081 | |
5078 | } | 5082 | } |
5079 | break; | 5083 | break; |
5080 | 5084 | ||
diff --git a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs index f65f834..3fe879a 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.Inventory.cs | |||
@@ -1684,6 +1684,23 @@ namespace OpenSim.Region.Framework.Scenes | |||
1684 | } | 1684 | } |
1685 | } | 1685 | } |
1686 | 1686 | ||
1687 | /// <summary> | ||
1688 | /// Called when one or more objects are removed from the environment into inventory. | ||
1689 | /// </summary> | ||
1690 | /// <param name="remoteClient"></param> | ||
1691 | /// <param name="localID"></param> | ||
1692 | /// <param name="groupID"></param> | ||
1693 | /// <param name="action"></param> | ||
1694 | /// <param name="destinationID"></param> | ||
1695 | public virtual void DeRezObject(IClientAPI remoteClient, List<uint> localIDs, | ||
1696 | UUID groupID, DeRezAction action, UUID destinationID) | ||
1697 | { | ||
1698 | foreach (uint localID in localIDs) | ||
1699 | { | ||
1700 | DeRezObject(remoteClient, localID, groupID, action, destinationID); | ||
1701 | } | ||
1702 | } | ||
1703 | |||
1687 | /// <summary> | 1704 | /// <summary> |
1688 | /// Called when an object is removed from the environment into inventory. | 1705 | /// Called when an object is removed from the environment into inventory. |
1689 | /// </summary> | 1706 | /// </summary> |