aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Region/ClientStack')
-rw-r--r--OpenSim/Region/ClientStack/ClientView.API.cs1
-rw-r--r--OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs24
2 files changed, 23 insertions, 2 deletions
diff --git a/OpenSim/Region/ClientStack/ClientView.API.cs b/OpenSim/Region/ClientStack/ClientView.API.cs
index b18a844..b24b207 100644
--- a/OpenSim/Region/ClientStack/ClientView.API.cs
+++ b/OpenSim/Region/ClientStack/ClientView.API.cs
@@ -58,6 +58,7 @@ namespace OpenSim.Region.ClientStack
58 public event StartAnim OnStartAnim; 58 public event StartAnim OnStartAnim;
59 public event Action<IClientAPI> OnRequestAvatarsData; 59 public event Action<IClientAPI> OnRequestAvatarsData;
60 public event LinkObjects OnLinkObjects; 60 public event LinkObjects OnLinkObjects;
61 public event DelinkObjects OnDelinkObjects;
61 public event UpdateVector OnGrabObject; 62 public event UpdateVector OnGrabObject;
62 public event ObjectSelect OnDeGrabObject; 63 public event ObjectSelect OnDeGrabObject;
63 public event ObjectDuplicate OnObjectDuplicate; 64 public event ObjectDuplicate OnObjectDuplicate;
diff --git a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
index f941d6c..82ad1c8 100644
--- a/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
+++ b/OpenSim/Region/ClientStack/ClientView.ProcessPackets.cs
@@ -223,7 +223,7 @@ namespace OpenSim.Region.ClientStack
223 #region Objects/m_sceneObjects 223 #region Objects/m_sceneObjects
224 224
225 case PacketType.ObjectLink: 225 case PacketType.ObjectLink:
226 // OpenSim.Framework.Console.MainLog.Instance.Verbose( Pack.ToString()); 226 //OpenSim.Framework.Console.MainLog.Instance.Verbose( Pack.ToString());
227 ObjectLinkPacket link = (ObjectLinkPacket) Pack; 227 ObjectLinkPacket link = (ObjectLinkPacket) Pack;
228 uint parentprimid = 0; 228 uint parentprimid = 0;
229 List<uint> childrenprims = new List<uint>(); 229 List<uint> childrenprims = new List<uint>();
@@ -241,6 +241,26 @@ namespace OpenSim.Region.ClientStack
241 OnLinkObjects(parentprimid, childrenprims); 241 OnLinkObjects(parentprimid, childrenprims);
242 } 242 }
243 break; 243 break;
244 case PacketType.ObjectDelink:
245 //OpenSim.Framework.Console.MainLog.Instance.Verbose( Pack.ToString());
246 ObjectDelinkPacket delink = (ObjectDelinkPacket) Pack;
247
248 // It appears the prim at index 0 is not always the root prim (for
249 // instance, when one prim of a link set has been edited independently
250 // of the others). Therefore, we'll pass all the ids onto the delink
251 // method for it to decide which is the root.
252 List<uint> prims = new List<uint>();
253 for (int i = 0; i < delink.ObjectData.Length; i++)
254 {
255 prims.Add(delink.ObjectData[i].ObjectLocalID);
256 }
257
258 if (OnDelinkObjects != null)
259 {
260 OnDelinkObjects(prims);
261 }
262
263 break;
244 case PacketType.ObjectAdd: 264 case PacketType.ObjectAdd:
245 if (OnAddPrim != null) 265 if (OnAddPrim != null)
246 { 266 {
@@ -775,4 +795,4 @@ namespace OpenSim.Region.ClientStack
775 OutPacket(logReply); 795 OutPacket(logReply);
776 } 796 }
777 } 797 }
778} \ No newline at end of file 798}