SL-751, SL-691 - test lsl scripts update, better syncing between skeleton and drawable
parent
bbe5681d05
commit
30880e062a
|
|
@ -50,6 +50,7 @@
|
|||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llvocache.h"
|
||||
#include "llcontrolavatar.h"
|
||||
|
||||
const F32 MIN_INTERPOLATE_DISTANCE_SQUARED = 0.001f * 0.001f;
|
||||
const F32 MAX_INTERPOLATE_DISTANCE_SQUARED = 10.f * 10.f;
|
||||
|
|
@ -697,6 +698,11 @@ F32 LLDrawable::updateXform(BOOL undamped)
|
|||
mXform.setScale(LLVector3(1,1,1)); //no scale in drawable transforms (IT'S A RULE!)
|
||||
mXform.updateMatrix();
|
||||
|
||||
if (mVObjp && mVObjp->isRootEdit() && mVObjp->getControlAvatar())
|
||||
{
|
||||
mVObjp->getControlAvatar()->matchVolumeTransform();
|
||||
}
|
||||
|
||||
if (mSpatialBridge)
|
||||
{
|
||||
gPipeline.markMoved(mSpatialBridge, FALSE);
|
||||
|
|
|
|||
|
|
@ -4062,10 +4062,6 @@ void LLViewerObject::setPosition(const LLVector3 &pos, BOOL damped)
|
|||
// position caches need to be up to date on root objects
|
||||
updatePositionCaches();
|
||||
}
|
||||
if (getControlAvatar() && isRootEdit())
|
||||
{
|
||||
getControlAvatar()->matchVolumeTransform();
|
||||
}
|
||||
}
|
||||
|
||||
void LLViewerObject::setPositionGlobal(const LLVector3d &pos_global, BOOL damped)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
list buttons = ["anim start", "anim stop", " ", "verbose on", "verbose off", " "];
|
||||
list buttons = ["anim start", "anim stop", "step", "verbose on", "verbose off", " "];
|
||||
string dialogInfo = "\nPlease make a choice.";
|
||||
|
||||
key ToucherID;
|
||||
|
|
@ -20,7 +20,7 @@ default
|
|||
llListenRemove(listenHandle);
|
||||
listenHandle = llListen(dialogChannel, "", ToucherID, "");
|
||||
llDialog(ToucherID, dialogInfo, buttons, dialogChannel);
|
||||
llSetTimerEvent(60.0); // Here we set a time limit for responses
|
||||
//llSetTimerEvent(60.0); // Here we set a time limit for responses
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string message)
|
||||
|
|
@ -35,7 +35,7 @@ default
|
|||
// stop timer since the menu was clicked
|
||||
llSetTimerEvent(0);
|
||||
|
||||
llOwnerSay("Sending message " + message + " on channel " + (string)commandChannel);
|
||||
//llOwnerSay("Sending message " + message + " on channel " + (string)commandChannel);
|
||||
llRegionSay(commandChannel, message);
|
||||
}
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ default
|
|||
llSetTimerEvent(0);
|
||||
|
||||
llListenRemove(listenHandle);
|
||||
llWhisper(0, "Sorry. You snooze; you lose.");
|
||||
//llWhisper(0, "Sorry. You snooze; you lose.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
integer listenHandle;
|
||||
integer verbose;
|
||||
integer num_steps = 50;
|
||||
integer num_steps = 12;
|
||||
float circle_time = 5.0;
|
||||
integer circle_step;
|
||||
vector circle_pos;
|
||||
|
|
@ -14,12 +14,21 @@ start_circle(vector center, float radius)
|
|||
circle_radius = radius;
|
||||
circle_step = 0;
|
||||
llSetTimerEvent(circle_time/num_steps);
|
||||
llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 1.0);
|
||||
}
|
||||
|
||||
stop_circle()
|
||||
{
|
||||
llSetTimerEvent(0);
|
||||
llSetRegionPos(circle_center);
|
||||
llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 0.0);
|
||||
integer i;
|
||||
for (i=0; i<10; i++)
|
||||
{
|
||||
vector new_pos = circle_center;
|
||||
new_pos.x += llFrand(0.01);
|
||||
llSetRegionPos(new_pos);
|
||||
llSleep(0.1);
|
||||
}
|
||||
}
|
||||
|
||||
next_circle()
|
||||
|
|
@ -32,34 +41,19 @@ next_circle()
|
|||
circle_step = (circle_step+1)%num_steps;
|
||||
}
|
||||
|
||||
circle_path(vector center, float radius)
|
||||
{
|
||||
integer i;
|
||||
integer num_steps = 50;
|
||||
float circle_time = 5.0; // seconds
|
||||
for (i=0; i<num_steps; ++i)
|
||||
{
|
||||
float rad = (i * TWO_PI)/num_steps;
|
||||
float x = center.x + llCos(rad)*radius;
|
||||
float y = center.y + llSin(rad)*radius;
|
||||
float z = center.z;
|
||||
llSetRegionPos(<x,y,z>);
|
||||
llSleep(circle_time/num_steps);
|
||||
}
|
||||
}
|
||||
|
||||
default
|
||||
{
|
||||
state_entry()
|
||||
{
|
||||
llSay(0, "Hello, Avatar!");
|
||||
//llSay(0, "Hello, Avatar!");
|
||||
listenHandle = llListen(-2001,"","","");
|
||||
verbose = 0;
|
||||
circle_center = llGetPos();
|
||||
}
|
||||
|
||||
listen(integer channel, string name, key id, string message)
|
||||
{
|
||||
llOwnerSay("got message " + name + " " + (string) id + " " + message);
|
||||
//llOwnerSay("got message " + name + " " + (string) id + " " + message);
|
||||
list words = llParseString2List(message,[" "],[]);
|
||||
string command = llList2String(words,0);
|
||||
string option = llList2String(words,1);
|
||||
|
|
@ -85,6 +79,11 @@ default
|
|||
verbose = 0;
|
||||
}
|
||||
}
|
||||
if (command=="step")
|
||||
{
|
||||
llSetTimerEvent(0);
|
||||
next_circle();
|
||||
}
|
||||
}
|
||||
|
||||
timer()
|
||||
|
|
|
|||
Loading…
Reference in New Issue