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 "llviewerobjectlist.h"
|
||||||
#include "llviewerwindow.h"
|
#include "llviewerwindow.h"
|
||||||
#include "llvocache.h"
|
#include "llvocache.h"
|
||||||
|
#include "llcontrolavatar.h"
|
||||||
|
|
||||||
const F32 MIN_INTERPOLATE_DISTANCE_SQUARED = 0.001f * 0.001f;
|
const F32 MIN_INTERPOLATE_DISTANCE_SQUARED = 0.001f * 0.001f;
|
||||||
const F32 MAX_INTERPOLATE_DISTANCE_SQUARED = 10.f * 10.f;
|
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.setScale(LLVector3(1,1,1)); //no scale in drawable transforms (IT'S A RULE!)
|
||||||
mXform.updateMatrix();
|
mXform.updateMatrix();
|
||||||
|
|
||||||
|
if (mVObjp && mVObjp->isRootEdit() && mVObjp->getControlAvatar())
|
||||||
|
{
|
||||||
|
mVObjp->getControlAvatar()->matchVolumeTransform();
|
||||||
|
}
|
||||||
|
|
||||||
if (mSpatialBridge)
|
if (mSpatialBridge)
|
||||||
{
|
{
|
||||||
gPipeline.markMoved(mSpatialBridge, FALSE);
|
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
|
// position caches need to be up to date on root objects
|
||||||
updatePositionCaches();
|
updatePositionCaches();
|
||||||
}
|
}
|
||||||
if (getControlAvatar() && isRootEdit())
|
|
||||||
{
|
|
||||||
getControlAvatar()->matchVolumeTransform();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLViewerObject::setPositionGlobal(const LLVector3d &pos_global, BOOL damped)
|
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.";
|
string dialogInfo = "\nPlease make a choice.";
|
||||||
|
|
||||||
key ToucherID;
|
key ToucherID;
|
||||||
|
|
@ -20,7 +20,7 @@ default
|
||||||
llListenRemove(listenHandle);
|
llListenRemove(listenHandle);
|
||||||
listenHandle = llListen(dialogChannel, "", ToucherID, "");
|
listenHandle = llListen(dialogChannel, "", ToucherID, "");
|
||||||
llDialog(ToucherID, dialogInfo, buttons, dialogChannel);
|
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)
|
listen(integer channel, string name, key id, string message)
|
||||||
|
|
@ -35,7 +35,7 @@ default
|
||||||
// stop timer since the menu was clicked
|
// stop timer since the menu was clicked
|
||||||
llSetTimerEvent(0);
|
llSetTimerEvent(0);
|
||||||
|
|
||||||
llOwnerSay("Sending message " + message + " on channel " + (string)commandChannel);
|
//llOwnerSay("Sending message " + message + " on channel " + (string)commandChannel);
|
||||||
llRegionSay(commandChannel, message);
|
llRegionSay(commandChannel, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ default
|
||||||
llSetTimerEvent(0);
|
llSetTimerEvent(0);
|
||||||
|
|
||||||
llListenRemove(listenHandle);
|
llListenRemove(listenHandle);
|
||||||
llWhisper(0, "Sorry. You snooze; you lose.");
|
//llWhisper(0, "Sorry. You snooze; you lose.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
integer listenHandle;
|
integer listenHandle;
|
||||||
integer verbose;
|
integer verbose;
|
||||||
integer num_steps = 50;
|
integer num_steps = 12;
|
||||||
float circle_time = 5.0;
|
float circle_time = 5.0;
|
||||||
integer circle_step;
|
integer circle_step;
|
||||||
vector circle_pos;
|
vector circle_pos;
|
||||||
|
|
@ -14,12 +14,21 @@ start_circle(vector center, float radius)
|
||||||
circle_radius = radius;
|
circle_radius = radius;
|
||||||
circle_step = 0;
|
circle_step = 0;
|
||||||
llSetTimerEvent(circle_time/num_steps);
|
llSetTimerEvent(circle_time/num_steps);
|
||||||
|
llTargetOmega(<0.0, 0.0, 1.0>, TWO_PI/circle_time, 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_circle()
|
stop_circle()
|
||||||
{
|
{
|
||||||
llSetTimerEvent(0);
|
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()
|
next_circle()
|
||||||
|
|
@ -32,34 +41,19 @@ next_circle()
|
||||||
circle_step = (circle_step+1)%num_steps;
|
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
|
default
|
||||||
{
|
{
|
||||||
state_entry()
|
state_entry()
|
||||||
{
|
{
|
||||||
llSay(0, "Hello, Avatar!");
|
//llSay(0, "Hello, Avatar!");
|
||||||
listenHandle = llListen(-2001,"","","");
|
listenHandle = llListen(-2001,"","","");
|
||||||
verbose = 0;
|
verbose = 0;
|
||||||
|
circle_center = llGetPos();
|
||||||
}
|
}
|
||||||
|
|
||||||
listen(integer channel, string name, key id, string message)
|
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,[" "],[]);
|
list words = llParseString2List(message,[" "],[]);
|
||||||
string command = llList2String(words,0);
|
string command = llList2String(words,0);
|
||||||
string option = llList2String(words,1);
|
string option = llList2String(words,1);
|
||||||
|
|
@ -85,6 +79,11 @@ default
|
||||||
verbose = 0;
|
verbose = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (command=="step")
|
||||||
|
{
|
||||||
|
llSetTimerEvent(0);
|
||||||
|
next_circle();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
timer()
|
timer()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue