Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0001773opensim[REGION] OpenSim Corepublic2008-07-18 08:102012-02-16 17:18
Reportermohax 
Assigned To 
PrioritynormalSeveritymajorReproducibilityalways
StatusfeedbackResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0001773: llSitTarget behaves inconsistently unlike SL (might also be handling of sit target prim property persistence)
Description[Listing as OpenSim Core since not convinced this is just an llSitTarget function problem]

Summary:

llSitTarget and the persistence expected from SL is simply and confusingly not the same causing furniture and other pose related objects to be horribly frusterating to create and debug. I suspect this is a compound problem: sit target is not persisting in objects taken into inventory or even in-world for a long time; and repositioning of sit target in a root prim is being lost after linked sets are taken into inventory.

Longer Explanation:

In order to understand this confusing bug, we have to start by recapping current SL sit target behavior and then how it differs from current OpenSim behavior:

In SL when llSitTarget is called even once for any script within a prim the sit target offset and rotation become persistent properties of that prim, until another llSitTarget is called. This includes taking the object into inventory and rerezzing it.

Furthermore, when a sit target is set in a root prim in a linked set then sitting anywhere on any of the prims in the linked set observes the root prim sit target. The only exception to this is if another prim also has had llSitTarget called from within it and there are two sitters, say in a couch for example. In this case, the first sitter, on _any_ prim in the couch always gets the root prim sit target and the second gets the sit target in the next prim. If the root prim does not have a sit target but one or more other prims do have them, then the prim(s) with the sit target(s) 'wins'. If there are two and neither are root, SL seems to randomly pick between them but always repositions to a sit target if _any_ sit target for any linked prim has been defined. If an avatar sits specifically on a prim with a sit target then that sit target position is always observed, even if it is not in the root prim. This is how people are able to specify position on a multi-user couch, for instance. Never at any time is the position of any non-sit-target prim used to calculate sit position if even one prim has ever had a llSitTarget() called for it.

The OpenSim Bug:

Currently OpenSim appears to observe this behavior _only_ for the first time the set is linked and the llSitTarget is set and _only_ while the new linked set remains in-world. When working sitting on any prim puts the avatar on the defined sit target rather than that of the sit-target-less prim they may have sat on.

However, taking that same linked set into inventory and rerezzing it causes the set to allow the avatar to sit on _any_ prim, with or without a sit target, and OpenSim attempts to resolve the sit position from that specific prim's position rather than allowing the sit target that should have persisted from llSitTarget call to direct avatar positioning. It seems, strangely, that all the prims have had a sit target defined and persisted rather than just the one and their sit targets are all off, almost the exact inverse of the actual llSitTarget call originally.

Recreation Steps:

* rez three prims
* link them so that the middle prim is root
* create a script in root prim that calls llSetTarget(<0.0,0.0,0.4>,ZERO_ROTATION)
* include on_rez(integer param){llResetScript();)
* add something to script to know it has initialized correctly (llSay,etc)
* save and wait for script to init
* sit on root prim, observe position
* sit on other prim, observe position
* note that sit target is authoritivative for all possible sit positions
* take linked set into inventory
* rez in world
* attempt same sit test, observe each prim now apparently has (incorrect) authoritative sit target even if original sit target for root prim is still observed for that prim only

Work arounds:

One work around is to rez furniture and then rez a poseball that remains unlinked and which contains llSitTarget in it, but even that is unreliable.
TagsNo tags attached.
Git Revision or version number
Run ModeStandalone (1 Region) , Standalone (Multiple Regions) , Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)
Physics EngineODE
Script Engine
EnvironmentMono / Linux32, Mono / Windows
Mono Version
Viewer
Attached Files

- Relationships
related to 0003846closedGrumly57 sit target changes are lost when sim restarts 

-  Notes
(0003864)
Twitch (manager)
2008-07-18 08:24

I can confirm this issue. It was introduced in r5432.
(0004215)
nlin (developer)
2008-08-04 20:40

Confirmed, but it also appears earlier in r5431. Investigating further.
(0005110)
nlin (developer)
2008-09-08 23:01

I think this has been fixed. Could the original reporter please confirm.
(0013421)
Fly-Man- (developer)
2009-09-18 06:52

This issue was automatically checked by Mantis Issue Check:

Feedback was added after original submit date
(0017727)
LaniGlobal (reporter)
2011-01-01 18:43

Still exists. Tested 0.7.1 Opensim OSgrid.
(0020198)
justincc (administrator)
2011-10-21 19:24

Still an issue with OpenSim 0.7.2?
(0020230)
LaniGlobal (reporter)
2011-10-23 20:45

Yes, still an issue with OpenSim 0.7.2 as of 24 October 2011.
(0020878)
justincc (administrator)
2012-02-16 17:18

May have been resolved by git master b6df9e9 (Nov 5 2011).

- Issue History
Date Modified Username Field Change
2008-07-18 08:10 mohax New Issue
2008-07-18 08:10 mohax SVN Revision => 5494 (but also in earlier versions)
2008-07-18 08:10 mohax Run Mode => Standalone (1 Region) , Standalone (Multiple Regions) , Grid (1 Region per Sim) , Grid (Multiple Regions per Sim)
2008-07-18 08:10 mohax Physics Engine => ODE
2008-07-18 08:10 mohax Environment => Mono / Linux32, Mono / Windows
2008-07-18 08:25 Twitch Note Added: 0003864
2008-08-04 20:40 nlin Note Added: 0004215
2008-09-08 23:01 nlin Note Added: 0005110
2009-09-18 06:52 Fly-Man- Note Added: 0013421
2009-09-18 06:52 Fly-Man- Status new => feedback
2011-01-01 18:43 LaniGlobal Note Added: 0017727
2011-01-01 18:48 LaniGlobal Relationship added related to 0003846
2011-01-01 22:24 samiam Note Added: 0017728
2011-01-01 22:31 samiam Note Edited: 0017728
2011-01-01 22:44 samiam Note Deleted: 0017728
2011-10-21 19:24 justincc Note Added: 0020198
2011-10-23 20:45 LaniGlobal Note Added: 0020230
2012-02-16 17:18 justincc Note Added: 0020878


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker