The touch command works fine to start the swing but will not stop it.
vector SwingPos;
integer i = 0;
rotation rot;
rotation delta;
default
{
state_entry()
{
llSetPos(llGetPos());
SwingPos = llGetPos();
}
touch_start(integer total_number)
{
state swing_start;
}
}
state swing_start
{
state_entry()
{
rot = llGetRot();
delta = llEuler2Rot(<0,-PI/32,0>
;rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
state swing_forward;
}
touch_start(integer total_number)
{
state stopped;
}
}
state swing_forward
{
state_entry()
{
delta = llEuler2Rot(<0,PI/32,0>
;rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
delta = llEuler2Rot(<0,-PI/32,0>
;rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
rot = delta * rot;
llSetRot(rot);
state swing_back;
}
touch_start(integer total_number)
{
state stopped;
}
}
state swing_back
{
state_entry()
{
state swing_forward;
}
touch_start(integer total_number)
{
state stopped;
}
}
state stopped
{
state_entry()
{
llSetPos(SwingPos);
}
touch_start(integer total_number)
{
i = 0;
state swing_start;
}
}
))