aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMW2009-07-12 12:32:39 +0000
committerMW2009-07-12 12:32:39 +0000
commitd9a8ecf238344374274b2d5dcc7c4efa3ecd0c11 (patch)
tree8a9a1122f2d0b788934b39871f145b7d8b7e2e01
parent* Workaround for a bug in Vivox Server r2978, whereby channel-search.channels... (diff)
downloadopensim-SC-d9a8ecf238344374274b2d5dcc7c4efa3ecd0c11.zip
opensim-SC-d9a8ecf238344374274b2d5dcc7c4efa3ecd0c11.tar.gz
opensim-SC-d9a8ecf238344374274b2d5dcc7c4efa3ecd0c11.tar.bz2
opensim-SC-d9a8ecf238344374274b2d5dcc7c4efa3ecd0c11.tar.xz
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.
-rw-r--r--OpenSim/Framework/IClientAPI.cs2
-rw-r--r--OpenSim/Region/ClientStack/LindenUDP/LLClientView.cs8
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.Inventory.cs17
3 files changed, 24 insertions, 3 deletions
diff --git a/OpenSim/Framework/IClientAPI.cs b/OpenSim/Framework/IClientAPI.cs
index 7c8b1aa..efde5ce 100644
--- a/OpenSim/Framework/IClientAPI.cs
+++ b/OpenSim/Framework/IClientAPI.cs
@@ -99,7 +99,7 @@ namespace OpenSim.Framework
99 public delegate void GenericCall4(Packet packet, IClientAPI remoteClient); 99 public delegate void GenericCall4(Packet packet, IClientAPI remoteClient);
100 100
101 public delegate void DeRezObject( 101 public delegate void DeRezObject(
102 IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction action, UUID destinationID); 102 IClientAPI remoteClient, List<uint> localIDs, UUID groupID, DeRezAction action, UUID destinationID);
103 103
104 public delegate void GenericCall5(IClientAPI remoteClient, bool status); 104 public delegate void GenericCall5(IClientAPI remoteClient, bool status);
105 105
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>