This repository has been archived by the owner. It is now read-only.
Assets 2

• Fixed the regression in Mantis 3213: The initial appearance of bots was not showing correctly. Also fixed a second case where full updates for bots were not sent correctly (e.g. botChangeOutfit). From what I can tell, both of these problems were caused by failures of the Git/GitHub version control software we (and most of the world) use.

• Fixed a case-sensitivity issue with all users' name lookups. Because MySQL is case-insensitive, lookups of normal user profiles would be successful, but would bypass the user profile cache. This was making them slower than they needed to be, and adding unplanned load on the core database, although it was not problematic. It is possible that this had some other negative effects as well in terms of functionality reliability. This has been resolved, to be case-insensitive as intended, and thus take advantage of the user profile caching again for improved performance. The case-sensitivity of the user lookups also caused bot-related name lookups to completely fail if they were not specified in the same case as the bot was created with. So these fixes also resolves Mantis 3215.

• Fix a regression in llGiveInventory and the other Link and List variants that added unwanted new delays when the delivery was directed to an object. Fixes the problem reported in the forum here.

• Fixed some race conditions related to removing bots. Fixed two cases of null reference exceptions if botRemoveBot is called at the wrong time. Also tightened the lock on removing bots to avoid another possible race condition on removal. This change should hopefully fix the reproducible region crashes reported here.

• Provides an SL-compatible llDetectedGrab() implementation for InWorldz. (The ObjectData.GrabOffsetInitial field coming from the viewer was always 0,0,0 and yet llDetectedGrab works in SL without it. Looks like a protocol design feature never implemented, or broken in the viewer and never fixed. We now do what I'm assuming SL developers had to do; store the initial grab position on the ObjectGrab packet and use the saved one from there on ObjectGrabUpdate to calculate the relative grab vector at llDetectedGrab-time.) Resolves Mantis 2544.

• Added a new InWorldz-specific constant for llGetObjectDetails and iwGetAgentList, named IW_OBJECT_SCRIPT_MEMORY_USED. It functions like the OBJECT_SCRIPT_MEMORY constant, but instead of assuming each script is using the maximum amount of memory, it instead reports the actual memory usage of the scripts. The behavior of OBJECT_SCRIPT_MEMORY could have been changed to support this, but that would have been different than the SL implementation and could have broken scripts imported from Second Life, if they were coded to assume SL behavior, so a new constant is provided instead. Also, a new InWorldz specific constant was added because the existing OBJECT_SCRIPT_MEMORY request will return twice the value it normally would report in SL, because script memory here is 128K (instead of 64K as in SL).