• All submissions to this site are governed by Second Life Project Contribution Agreement. By submitting patches and other information using this site, you acknowledge that you have read, understood, and agreed to those terms.
Issue Details (XML | Word | Printable)

Key: SVC-1700
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Normal Normal
Assignee: kelly linden
Reporter: Lex Neva
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
2. Second Life Service - SVC

Havok 4: llTargetOmega() in child prims of physical link sets behaves differently

Created: 28/Feb/08 03:02 PM   Updated: 08/Mar/08 10:37 AM
Component/s: Physics
Affects Version/s: Havok4 Beta
Fix Version/s: None

Linden Lab Issue ID: DEV-11238
Linden Lab Internal Branch: havok4-3


 Description  « Hide
In havok 1 sims, it is possible to have a physical link set with a child prim that is spinning using the non-physical form of llTargetOmega(). To see this in action, visit Suffugium on the main grid and look at a police drone that will be floating by. The white spotlight spins around in a search pattern while the link set moves physically. In Havok 4 sims, llTargetOmega() in a child prim always affects the entire link set using physical llTargetOmega() behavior.

Steps to reproduce:

1. Create a link set with two prims.
2. In the child prim, put this script:

default {
state_entry() { llTargetOmega(<0,0,1>, 1, 1); }
}

3. In the root prim, put this script:

default {
state_entry() { llSetBuoyancy(1.0); }
}

4. Lift the link set so that it's in the air.
5. Set the link set physical.
6. Deselect the link set.

Observed results in havok 1 sims:

The child prim is spinning using nonphysical llTargetOmega(), while the main link set is physical and can be shoved around. Note that the llTargetOmega() call in the child must be made BEFORE the link set is set physical. Buoyancy is not necessary and is just to make the effect more visible.

Observed results in havok 4 sims:

The child prim stops spinning independently when the link set becomes physical. The entire link set starts to spin using physical llTargetOmega() as if the llTargetOmega() call were in the root prim.

Expected results:

No change in behavior in Havok 4. This breaks the police drones and other similar effects, and I don't think there'll be any way to achieve these affects in another way.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Tryptofaa Sands added a comment - 29/Feb/08 12:01 PM
This isn't only a havok4 issue, I'm finding this everywhere!

Lex Neva added a comment - 29/Feb/08 12:04 PM
Following those steps worked for me in havok 1... where were you seeing it not work, Tryptofaa?

Tryptofaa Sands added a comment - 29/Feb/08 12:34 PM - edited
Ok, set that same script for your root:

default {
state_entry() { llSetBuoyancy(1.0); }
}

Then add a reset on rez to your child:

default {
state_entry() { llTargetOmega(<0,0,2>, 1, 1); }
on_rez(integer void)

{ llResetScript(); }

}

Take it to inventory and rez another copy. The whole thing will spin. Once re-rezzed from inventory this behavior seems to stick!

EDIT: make it physical before taking to inventory

Additional:

This is also the case if the object is made physical through LSL, try this in the child:

default
{
state_entry(){ llSetStatus(STATUS_PHYSICS, FALSE); llSleep(1); llTargetOmega(<0,0,0>, 0, 0); }

touch_start(integer void){ state spin; }
}

state spin
{
state_entry(){ llTargetOmega(<0,0,1>, 1, 1); llSleep(1); llSetStatus(STATUS_PHYSICS, TRUE); }

touch_start(integer void){ state default; }
}

Not sure if the llSleep's are needed in all clients but in windlight I have to add those to make it start spinning in the first place!


kelly linden added a comment - 03/Mar/08 01:36 PM
I have a fix for this that should go out in the next update.

Lex Neva added a comment - 03/Mar/08 02:01 PM
Thanks! I'll keep my eye out for the release and test it and report back.

Lex Neva added a comment - 08/Mar/08 10:37 AM
I just verified this on the latest version in beta. Thank you, Kelly!!