summaryrefslogtreecommitdiff
path: root/indra/llcharacter
diff options
context:
space:
mode:
authorLeyla Farazha <leyla@lindenlab.com>2010-07-06 17:51:07 -0700
committerLeyla Farazha <leyla@lindenlab.com>2010-07-06 17:51:07 -0700
commit33d1aa30ab25cd0a0fd4bbd6728b1277e73c45d2 (patch)
treeaa737a3258a409e539f378744b990294bac6115d /indra/llcharacter
parent86ba458ebcc979bdd03b490842311bd5621fb0b4 (diff)
parentdc6c35e353b991db2651d26bc76e5b3ee9921157 (diff)
Merge from dessie/viewer-release
Diffstat (limited to 'indra/llcharacter')
-rw-r--r--indra/llcharacter/llcharacter.cpp2
-rw-r--r--indra/llcharacter/llkeyframewalkmotion.cpp3
-rw-r--r--indra/llcharacter/llvisualparam.cpp4
-rw-r--r--indra/llcharacter/llvisualparam.h2
4 files changed, 7 insertions, 4 deletions
diff --git a/indra/llcharacter/llcharacter.cpp b/indra/llcharacter/llcharacter.cpp
index 27c0c0b640..11665aff76 100644
--- a/indra/llcharacter/llcharacter.cpp
+++ b/indra/llcharacter/llcharacter.cpp
@@ -381,7 +381,7 @@ void LLCharacter::clearVisualParamWeights()
param;
param = getNextVisualParam())
{
- if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (param->isTweakable())
{
param->setWeight( param->getDefaultWeight(), FALSE );
}
diff --git a/indra/llcharacter/llkeyframewalkmotion.cpp b/indra/llcharacter/llkeyframewalkmotion.cpp
index 0587e5642c..4a1aca62bc 100644
--- a/indra/llcharacter/llkeyframewalkmotion.cpp
+++ b/indra/llcharacter/llkeyframewalkmotion.cpp
@@ -289,7 +289,8 @@ BOOL LLWalkAdjustMotion::onUpdate(F32 time, U8* joint_mask)
F32 foot_speed = speed - ((foot_slip_vector * avatar_movement_dir) / delta_time);
// multiply animation playback rate so that foot speed matches avatar speed
- F32 desired_speed_multiplier = llclamp(speed / foot_speed, 0.f, ANIM_SPEED_MAX);
+ F32 min_speed_multiplier = clamp_rescale(speed, 0.f, 1.f, 0.f, 0.1f);
+ F32 desired_speed_multiplier = llclamp(speed / foot_speed, min_speed_multiplier, ANIM_SPEED_MAX);
// blend towards new speed adjustment value
F32 new_speed_adjust = lerp(mAdjustedSpeed, desired_speed_multiplier, LLCriticalDamp::getInterpolant(SPEED_ADJUST_TIME_CONSTANT));
diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp
index 703fe2f9cc..122406e20b 100644
--- a/indra/llcharacter/llvisualparam.cpp
+++ b/indra/llcharacter/llvisualparam.cpp
@@ -261,7 +261,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL upload_bake)
if (mInfo)
{
- if (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (isTweakable())
{
mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight);
}
@@ -305,7 +305,7 @@ void LLVisualParam::animate( F32 delta, BOOL upload_bake )
//-----------------------------------------------------------------------------
void LLVisualParam::stopAnimating(BOOL upload_bake)
{
- if (mIsAnimating && getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (mIsAnimating && isTweakable())
{
mIsAnimating = FALSE;
setWeight(mTargetWeight, upload_bake);
diff --git a/indra/llcharacter/llvisualparam.h b/indra/llcharacter/llvisualparam.h
index 12b45e6ebe..20ee5fd7ec 100644
--- a/indra/llcharacter/llvisualparam.h
+++ b/indra/llcharacter/llvisualparam.h
@@ -52,6 +52,7 @@ enum EVisualParamGroup
{
VISUAL_PARAM_GROUP_TWEAKABLE,
VISUAL_PARAM_GROUP_ANIMATABLE,
+ VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT,
NUM_VISUAL_PARAM_GROUPS
};
@@ -144,6 +145,7 @@ public:
F32 getCurrentWeight() const { return mCurWeight; }
F32 getLastWeight() const { return mLastWeight; }
BOOL isAnimating() const { return mIsAnimating; }
+ BOOL isTweakable() const { return (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) || (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT); }
LLVisualParam* getNextParam() { return mNext; }
void setNextParam( LLVisualParam *next );