<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:arial,helvetica,sans-serif;font-size:14pt"><div>Dear Mw:<br><br>Thank you for sharing your technical thoughts as you work through them. It is my fervent hope that others will share similarly so that some of us 'lesser wizards' may learn a bit more by reading how OpenSim is evolving.<br><br>Charles<br></div><div style="font-family: arial,helvetica,sans-serif; font-size: 14pt;"><br><div style="font-family: times new roman,new york,times,serif; font-size: 12pt;"><font size="2" face="Tahoma"><hr size="1"><b><span style="font-weight: bold;">From:</span></b> MW <michaelwri22@yahoo.co.uk><br><b><span style="font-weight: bold;">To:</span></b> opensim-dev@lists.berlios.de<br><b><span style="font-weight: bold;">Sent:</span></b> Friday, July 10, 2009 7:39:06 AM<br><b><span style="font-weight: bold;">Subject:</span></b> [Opensim-dev] Proposal: Change the
OnDeRezObject event<br></font><br>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr><td style="font-family: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; font-size-adjust: inherit; font-stretch: inherit; -x-system-font: none;" valign="top">In the current OnDeRezObject event, only a single localID of a prim is passed at a time.<br><br>So if multiple objects are DeRezzed in one action, even though all the ids are sent in a single packet. We have code in the ClientView that loops through that list and for each id triggers the OnDeRezObject event.<br><br>I propose moving that loop into the Scene handling of the action (Scene.DeRezObject(...)) so that the event is only triggered once per packet and if there are multiple prims to derezz in a packet, the scene code can loop through them and deal with them as required.<br><br>So current the delegate of the OnDeRezObject event is :<br><br> public delegate
void DeRezObject(<br> IClientAPI remoteClient, uint localID, UUID groupID, DeRezAction action, UUID destinationID);<br><br>I propose changing it
to:<br><br>public delegate void DeRezObject(<br> IClientAPI remoteClient, List<uint> localIDs, UUID groupID, DeRezAction action, UUID destinationID);<br><br>It has to be better to have only one event triggering rather than possibly hundreds for the same user action. <br><br>My next step (which I'm currently in the middle of in my local version) is to handle the taking of those multiple prims into inventory and only making a single inventory item, rather than the current method of a separate inventory item for each prim. But that will be detailed in a different proposal.<br></td></tr></tbody></table><br>
</div></div></div></body></html>