aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/CoreModules/Avatar/Attachments (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Do not allow a script to attach a prim if its being sat upon.Justin Clark-Casey (justincc)2012-07-092-1/+40
| | | | | | This prevents a stack overflow where a get position on the avatar will refer to the attachment which will in turn refer back to the avatar. This required recording of all sitting avatars on a prim which is done separately from recording the sit target avatar. Recording HashSet is null if there are no sitting avatars in order to save memory.
* minor: Remove some wrong comments in attachments regression testsJustin Clark-Casey (justincc)2012-07-061-2/+0
|
* Add assert to attachment regression tests to check that number of objects in ↵Justin Clark-Casey (justincc)2012-07-061-0/+14
| | | | the scene graph
* refactor: extract method UpdateUserInventoryWithAttachment() from ↵Justin Clark-Casey (justincc)2012-07-061-29/+38
| | | | AttachObject() for better code comprehension
* Add OSSL function osForceAttachToAvatarFromInventory()Justin Clark-Casey (justincc)2012-07-051-1/+1
| | | | | | | This works like osForceAttachToAvatar() but allows an object to be directly specified from the script object's inventory rather than forcing it to be rezzed in the scene first. Still only attaches objects to the owner of the script. This allows one to bypass the complicated co-ordination of first rezzing objects in the scene before attaching them. Threat level high.
* Change AttachmentsModule.DetachSingleAttachmentToInv() to accept a SOG ↵Justin Clark-Casey (justincc)2012-06-282-40/+45
| | | | | | | directly instead of an item ID to then shuffle through attachments, saving CPU busywork. Almost all callers already had the sog to hand. Still checking that it's really an attachment, but now by inspecting SOG.AttachedAvatar
* Rather than iterating through all SOGs in the scene looking for the one that ↵Justin Clark-Casey (justincc)2012-06-281-24/+17
| | | | matches out fromItemID on detach, go through the agent's attachment sog list instead.
* Remove code that tried to delete an attachment back to inventory if ↵Justin Clark-Casey (justincc)2012-06-281-6/+1
| | | | | | | RezSingleAttachmentFromInventoryInternal() returned null. null would only ever be returned if the item couldn't be located within inventory and this would happen immediately. In this case, derezzing wouldn't work anyway since there is no item to derez.
* refactor: Move ScenePresence <-> AgentData attachments copying code into ↵Justin Clark-Casey (justincc)2012-06-271-0/+50
| | | | AttachmentsModule.
* Automatically disable log4net before each regression test so that logging is ↵Justin Clark-Casey (justincc)2012-06-271-3/+1
| | | | | | | confined to a single test if it's turned on. This involves making test classes inherit from a common OpenSimTestCase. This will be applied to more classes as required.
* refactor: Remove unnecessary AttachmentModuleTests.m_userId in favour of ↵Justin Clark-Casey (justincc)2012-06-261-40/+26
| | | | local variables
* refactor: Use local attachment module variables instead of global m_attMod.Justin Clark-Casey (justincc)2012-06-261-11/+10
| | | | This also avoids confusion between tests where one sets up m_attMod and another accidentally uses it after failing to set one up itself.
* refactor: make m_presence a local variable in all AttachmentsModuleTests ↵Justin Clark-Casey (justincc)2012-06-261-26/+25
| | | | since it doesn't need to be global and some tests set up more than one sp
* Add regression test to check that attachments in source region are deleting ↵Justin Clark-Casey (justincc)2012-06-261-18/+115
| | | | when an agent teleports to a neighbouring region
* When attachments are being saved and deleted for a closing root agent, ↵Justin Clark-Casey (justincc)2012-06-251-12/+21
| | | | | | delete first to avoid a hud race condition with update threads. If delete doesn't occur first then the update thread can outrace the IsAttachment = false necessary to save attachments and send hud artifacts to other viewers.
* In AttachmentsModule.DetachSingleAttachmentToInvInternal(), remove ↵Justin Clark-Casey (justincc)2012-06-251-1/+1
| | | | | | | | | attachment before changing properties for correct inventory serialization. Serialization of attachments requires IsAttachment = false so that correct positions are serialized instead of avatar position. However, doing this when a hud is still attached allows race conditions with update threads, resulting in hud artifacts on other viewers. This change sets SOG.IsDeleted before serialization changes take place (IsDeleted itself is not a serialized property). LLClientView then screens out any deleted SOGs before sending updates to viewers.
* Stop flicking IsAttachment false and then true in ↵Justin Clark-Casey (justincc)2012-06-221-10/+0
| | | | | | | | AttachmentsModule.UpdateAttachmentPosition() in order to avoid a hud update race condition. Previously, setting IsAttachment to false then true was necessary to serialize the updated attachment object information. However, UpdateAttachmentPosition no longer does this update. Whilst IsAttachment is set to false there is a race condition where the update thread can wrongly send hud object updates to clients that do not own the hud, resulting in screen artifacts.
* refactor AttachmentsModule tests to use a common method for standard ↵Justin Clark-Casey (justincc)2012-06-221-70/+69
| | | | attachment item setup
* Add regression test for updating attachment positionJustin Clark-Casey (justincc)2012-06-221-0/+30
|
* correct wrong incomplete comment from previous commit 3c3ea19 in ↵Justin Clark-Casey (justincc)2012-06-141-1/+2
| | | | AttachmentsModule
* Fix a bug where scene objects attached as HUDs through scripts would not ↵Justin Clark-Casey (justincc)2012-06-141-0/+13
| | | | | | disappear for other avatars. We do this by sending a kill message for that object to all other avatars apart from the one that has the hud.
* Resolve some mono compiler warnings.Justin Clark-Casey (justincc)2012-05-251-2/+0
|
* Fetch the dialog module reference in AttachmentsModule in RegionLoaded() not ↵Justin Clark-Casey (justincc)2012-05-231-1/+1
| | | | | | AddRegion() The reference is not guaranteed to be there when AddRegion() is called but will definitely be present at RegionLoaded() if it's going to be present at all.
* Fix bug where an avatar that had an object they owned attached through ↵Justin Clark-Casey (justincc)2012-05-232-137/+82
| | | | | | | llAttachToAvatar() or osForceAttachToAvatar() would wrongly have next permissions come into play when they detached that object and rezzed it in scene. This is because the attachments module code was setting the 'object slam' bit by using PermissionMask.All Solution here is to route the attachment item creation call through the existing inventory code in BasicInventoryAccessModule rather than copy/pasted code in AttachmentsModule itself.
* Fire the scripting changed event with CHANGED_OWNER when an object that has ↵Justin Clark-Casey (justincc)2012-05-051-9/+9
| | | | | | | changed owners is rezzed. This needs to occur after the script is resumed rather than before, when the event is just dropped. Addresses http://opensimulator.org/mantis/view.php?id=5890 and http://opensimulator.org/mantis/view.php?id=5952
* Add regression test for teleporting an agent between separated regions on ↵Justin Clark-Casey (justincc)2012-04-271-1/+1
| | | | | | | | the same simulator. This involves a large amount of change in test scene setup code to allow test scenes to share shared modules SetupScene is now an instance method that requires an instantiation of SceneHelpers, though other SceneHelpers methods are still static May split these out into separate classes in the future.
* Comment out some debug ATTACHMENTS log messages for now.Justin Clark-Casey (justincc)2012-04-251-15/+14
|
* Minor improvements to loggingOren Hurvitz2012-04-241-1/+3
| | | | Eliminated an extra newline in the console if the log line doesn't contain a category (example of a category: "[ASSETS]").
* Store FromItemID for attachments once on SOG instead of on every SOP and ↵Justin Clark-Casey (justincc)2012-04-072-12/+13
| | | | | | only ever using the root part entry. This eliminates some pointless memory use.
* Prevent a changed attachment that has been saved from being saved again.Melanie2012-02-011-0/+1
|
* Straighten out some attachment mess. Don't save attachment states for HGMelanie2012-02-011-11/+8
| | | | | visitors at all. On Leaving a sim, save only the changed ones. Don't save all scripted stuff when leaving a sim.
* Don't try to save a NPCs attachment states on NPC deleteMelanie2012-01-071-0/+8
|
* Add commented log lines to FetchInventoryDescendents2 path for future use.Justin Clark-Casey (justincc)2011-12-091-0/+2
| | | | Haven't been able to resolve issue where attachments are removed by the viewer on relog on a localhost
* Convert SendKillObject to take a list of uint rather than sending oneMelanie2011-11-061-1/+1
| | | | packet per prim. More to come as we change to make use of this.
* remove now redundant m_physical_prim flag from SOP.ApplyPhysics()Justin Clark-Casey (justincc)2011-10-151-1/+1
|
* factor common code out into SOP.RemoveFromPhysics()Justin Clark-Casey (justincc)2011-10-151-4/+1
|
* Removed all refs to IClientAPI from IAttachmentsModule. Separated client ↵Dan Lake2011-10-042-361/+375
| | | | handlers for attachments to call public interface and rearranged module file into sections
* Removed redundant code in AttachmentsModule and simplified interfaces which ↵Dan Lake2011-10-032-95/+73
| | | | converted back and forth between ScenePresence and IClientAPI. More to be done still.
* Remove usage of Linden packet types from inside Attachments Module and interfaceDan Lake2011-10-031-5/+4
|
* Add Enabled switch in new [Attachments] section in OpenSimDefaults.ini to ↵Justin Clark-Casey (justincc)2011-09-301-3/+53
| | | | | | allow attachments to be temporarily turned off. This is for debugging purposes. Defaults to Attachments Enabled
* Don't try and delete attachments for child agent closeJustin Clark-Casey (justincc)2011-09-131-0/+32
|
* Remove code from DetachSingleAttachmentToInv() that sets group changed on ↵Justin Clark-Casey (justincc)2011-09-131-11/+0
| | | | all parts, now that we're performing this check in UpdateKnownItem() for other purposes
* remove redunant itemID and agentID arguments from UpdateKnownItem().Justin Clark-Casey (justincc)2011-09-131-6/+4
| | | | itemID is always taken taken from the group's stored item id, and agentID is never used.
* Remove UpdateKnownItem() from IAttachmentsModule.Justin Clark-Casey (justincc)2011-09-131-1/+1
| | | | It's not appropriate for code outside the attachments module to call this.
* minor: remove redundant grp != null check from AM.UpdateKnownItem()Justin Clark-Casey (justincc)2011-09-131-36/+33
|
* Stop attempts to rewear already worn items from removing and reattaching.Justin Clark-Casey (justincc)2011-09-131-42/+77
| | | | | | | | Viewer 2/3 will sometimes attempt to rewear attachments, even though they have already been attached during the main login process. This change ignores those attempts. This stops script failures during login, as the rewearing was racing with the script startup code. It might also help with attachments being abnormally put into deleted state. Hopefully resolves some more of http://opensimulator.org/mantis/view.php?id=5644
* Comment out attachments code in Scene.IncomingCreateObject(UUID userID, UUID ↵Justin Clark-Casey (justincc)2011-09-131-3/+14
| | | | | | | | | itemID) for now As far as I can see, this is only invoked by a PUT request to ObjectHandlers, which is not being used anyway. Invoking attachments code at this point is probably inappropriate since it would still be invoked when the client entered the scene. Being commented to simplify analysis of attachments issues. Can be uncommented when in use. Also, small tweak to lock and log removal of a SOG from the SceneObjectGroupsByLocalPartID collection in SceneGraph.GetGroupByPrim() if an inconsistency is found.
* Start locking entire add/remove operations on an ↵Justin Clark-Casey (justincc)2011-09-121-175/+207
| | | | | | | | | IScenePresence.AttachmentsSyncLock object Attach and detach packets are processed asynchronously when received from a viewer. Bugs like http://opensimulator.org/mantis/view.php?id=5644 indicate that in some situations (such as attaching/detaching entire folders of objects at once), there are race conditions between these threads. Since multiple data structures need to be updated on attach/detach, it's not enough to lock the individual collections. Therefore, this commit introduces a new IScenePresence.AttachmentsSyncLock which add/remove operations lock on.
* Remember to set and unset the fire and forget method at the top of the ↵Justin Clark-Casey (justincc)2011-09-081-3/+7
| | | | attachment and npc tests
* refactor: Make logic in AM.AttachObject() clearer by not reusing existing ↵Justin Clark-Casey (justincc)2011-09-061-14/+19
| | | | variables in different contexts