Serious fix for the Tintable tattoos!

Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
Beeks
2010-09-27 00:20:34 -04:00
parent 3a48310ee7
commit 79412de233
10 changed files with 947 additions and 946 deletions

View File

@@ -378,7 +378,7 @@ void LLCharacter::clearVisualParamWeights()
param; param;
param = getNextVisualParam()) param = getNextVisualParam())
{ {
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (param->isTweakable())
{ {
param->setWeight( param->getDefaultWeight(), FALSE ); param->setWeight( param->getDefaultWeight(), FALSE );
} }
@@ -394,7 +394,7 @@ BOOL LLCharacter::visualParamWeightsAreDefault()
param; param;
param = getNextVisualParam()) param = getNextVisualParam())
{ {
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (param->isTweakable())
{ {
if (param->getWeight() != param->getDefaultWeight()) if (param->getWeight() != param->getDefaultWeight())
return false; return false;

View File

@@ -238,7 +238,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL set_by_user)
{ {
if (mInfo) if (mInfo)
{ {
if (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (isTweakable())
{ {
mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight); mTargetWeight = llclamp(target_value, mInfo->mMinWeight, mInfo->mMaxWeight);
} }
@@ -282,7 +282,7 @@ void LLVisualParam::animate( F32 delta, BOOL set_by_user )
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void LLVisualParam::stopAnimating(BOOL set_by_user) void LLVisualParam::stopAnimating(BOOL set_by_user)
{ {
if (mIsAnimating && getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (mIsAnimating && isTweakable())
{ {
mIsAnimating = FALSE; mIsAnimating = FALSE;
setWeight(mTargetWeight, set_by_user); setWeight(mTargetWeight, set_by_user);

View File

@@ -51,6 +51,7 @@ enum EVisualParamGroup
{ {
VISUAL_PARAM_GROUP_TWEAKABLE, VISUAL_PARAM_GROUP_TWEAKABLE,
VISUAL_PARAM_GROUP_ANIMATABLE, VISUAL_PARAM_GROUP_ANIMATABLE,
VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT,
NUM_VISUAL_PARAM_GROUPS NUM_VISUAL_PARAM_GROUPS
}; };
@@ -124,7 +125,7 @@ public:
void setMaxDisplayName(const std::string& s) { mInfo->mMaxName = s; } void setMaxDisplayName(const std::string& s) { mInfo->mMaxName = s; }
void setMinDisplayName(const std::string& s) { mInfo->mMinName = s; } void setMinDisplayName(const std::string& s) { mInfo->mMinName = s; }
EVisualParamGroup getGroup() { return mInfo->mGroup; } EVisualParamGroup getGroup() const { return mInfo->mGroup; }
F32 getMinWeight() { return mInfo->mMinWeight; } F32 getMinWeight() { return mInfo->mMinWeight; }
F32 getMaxWeight() { return mInfo->mMaxWeight; } F32 getMaxWeight() { return mInfo->mMaxWeight; }
F32 getDefaultWeight() { return mInfo->mDefaultWeight; } F32 getDefaultWeight() { return mInfo->mDefaultWeight; }
@@ -133,7 +134,8 @@ public:
F32 getWeight() { return mIsAnimating ? mTargetWeight : mCurWeight; } F32 getWeight() { return mIsAnimating ? mTargetWeight : mCurWeight; }
F32 getCurrentWeight() { return mCurWeight; } F32 getCurrentWeight() { return mCurWeight; }
F32 getLastWeight() { return mLastWeight; } F32 getLastWeight() { return mLastWeight; }
BOOL isAnimating() { return mIsAnimating; } BOOL isAnimating() { return mIsAnimating; }
BOOL isTweakable() { return (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) || (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT); }
LLVisualParam* getNextParam() { return mNext; } LLVisualParam* getNextParam() { return mNext; }
void setNextParam( LLVisualParam *next ); void setNextParam( LLVisualParam *next );

View File

@@ -1099,7 +1099,7 @@
camera_distance=".8" camera_distance=".8"
camera_angle="15"> camera_angle="15">
<param_skeleton> <param_skeleton>
<bone name="mNeck" scale="0 0 .5" /> <bone name="mNeck" scale="0 0 .5" />
</param_skeleton> </param_skeleton>
</param> </param>
</skeleton> </skeleton>
@@ -11424,7 +11424,7 @@
id="876" /> id="876" />
</param_driver> </param_driver>
</param> </param>
<param id="1071" group="0" wearable="tattoo" edit_group="colorpicker" name="tattoo_red" <param id="1071" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_red"
value_min="0" value_max="1" value_default="1"> value_min="0" value_max="1" value_default="1">
<param_driver> <param_driver>
<driven id="1062" min1="0" max1="1" max2="1" min2="1" /> <driven id="1062" min1="0" max1="1" max2="1" min2="1" />
@@ -11432,7 +11432,7 @@
<driven id="1068" min1="0" max1="1" max2="1" min2="1" /> <driven id="1068" min1="0" max1="1" max2="1" min2="1" />
</param_driver> </param_driver>
</param> </param>
<param id="1072" group="0" wearable="tattoo" edit_group="colorpicker" name="tattoo_green" <param id="1072" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_green"
value_min="0" value_max="1" value_default="1"> value_min="0" value_max="1" value_default="1">
<param_driver> <param_driver>
<driven id="1063" min1="0" max1="1" max2="1" min2="1" /> <driven id="1063" min1="0" max1="1" max2="1" min2="1" />
@@ -11440,7 +11440,7 @@
<driven id="1069" min1="0" max1="1" max2="1" min2="1" /> <driven id="1069" min1="0" max1="1" max2="1" min2="1" />
</param_driver> </param_driver>
</param> </param>
<param id="1073" group="0" wearable="tattoo" edit_group="colorpicker" name="tattoo_blue" <param id="1073" group="2" wearable="tattoo" edit_group="colorpicker" name="tattoo_blue"
value_min="0" value_max="1" value_default="1"> value_min="0" value_max="1" value_default="1">
<param_driver> <param_driver>
<driven id="1064" min1="0" max1="1" max2="1" min2="1" /> <driven id="1064" min1="0" max1="1" max2="1" min2="1" />

View File

@@ -7586,7 +7586,7 @@ void LLAgent::sendAgentSetAppearance()
param; param;
param = (LLViewerVisualParam*)mAvatarObject->getNextVisualParam()) param = (LLViewerVisualParam*)mAvatarObject->getNextVisualParam())
{ {
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
{ {
msg->nextBlockFast(_PREHASH_VisualParam ); msg->nextBlockFast(_PREHASH_VisualParam );

View File

@@ -17,7 +17,7 @@ Rewritten by Hg Beeks
#include "llviewercontrol.h" #include "llviewercontrol.h"
#include "llvoavatar.h" #include "llvoavatar.h"
//this is for debugging ;D //this is for debugging ;D
#define AO_DEBUG //#define AO_DEBUG
//static variables //static variables
std::list<std::string> LLAO::mStandOverrides; std::list<std::string> LLAO::mStandOverrides;

View File

@@ -547,7 +547,7 @@ void LLPanelEditWearable::setSubpart( ESubpart subpart )
param = (LLViewerVisualParam *)avatar->getNextVisualParam()) param = (LLViewerVisualParam *)avatar->getNextVisualParam())
{ {
if (param->getID() == -1 if (param->getID() == -1
|| param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE || !param->isTweakable()
|| param->getEditGroup() != part->mEditGroup || param->getEditGroup() != part->mEditGroup
|| !(param->getSex() & avatar_sex)) || !(param->getSex() & avatar_sex))
{ {

File diff suppressed because it is too large Load Diff

View File

@@ -2968,7 +2968,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
param; param;
param = getNextVisualParam()) param = getNextVisualParam())
{ {
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (param->isTweakable())
{ {
param->stopAnimating(mAppearanceAnimSetByUser); param->stopAnimating(mAppearanceAnimSetByUser);
} }
@@ -3007,7 +3007,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
param; param;
param = getNextVisualParam()) param = getNextVisualParam())
{ {
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) if (param->isTweakable())
{ {
param->animate(morph_amt, mAppearanceAnimSetByUser); param->animate(morph_amt, mAppearanceAnimSetByUser);
} }
@@ -6252,6 +6252,7 @@ BOOL LLVOAvatar::loadAvatar()
if (sAvatarXmlInfo->mLayerInfoList.empty()) if (sAvatarXmlInfo->mLayerInfoList.empty())
{ {
llwarns << "avatar file: missing <layer_set> node" << llendl; llwarns << "avatar file: missing <layer_set> node" << llendl;
return FALSE;
} }
else else
{ {
@@ -6292,23 +6293,21 @@ BOOL LLVOAvatar::loadAvatar()
} }
// avatar_lad.xml : <driver_parameters> // avatar_lad.xml : <driver_parameters>
LLVOAvatarXmlInfo::driver_info_list_t::iterator iter;
for (iter = sAvatarXmlInfo->mDriverInfoList.begin();
iter != sAvatarXmlInfo->mDriverInfoList.end(); iter++)
{ {
LLVOAvatarXmlInfo::driver_info_list_t::iterator iter; LLDriverParamInfo *info = *iter;
for (iter = sAvatarXmlInfo->mDriverInfoList.begin(); LLDriverParam* driver_param = new LLDriverParam( this );
iter != sAvatarXmlInfo->mDriverInfoList.end(); iter++) if (driver_param->setInfo(info))
{ {
LLDriverParamInfo *info = *iter; addVisualParam( driver_param );
LLDriverParam* driver_param = new LLDriverParam( this ); }
if (driver_param->setInfo(info)) else
{ {
addVisualParam( driver_param ); delete driver_param;
} llwarns << "avatar file: driver_param->parseData() failed" << llendl;
else return FALSE;
{
delete driver_param;
llwarns << "avatar file: driver_param->parseData() failed" << llendl;
return FALSE;
}
} }
} }
@@ -9147,7 +9146,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
for( S32 i = 0; i < num_blocks; i++ ) for( S32 i = 0; i < num_blocks; i++ )
{ {
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) while( param && (!param->isTweakable()) )
{ {
param = getNextVisualParam(); param = getNextVisualParam();
} }
@@ -9155,7 +9154,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
if( !param ) if( !param )
{ {
llwarns << "Number of params in AvatarAppearance msg does not match number of params in avatar xml file for " << getFullname() << " (Too many)." << llendl; llwarns << "Number of params in AvatarAppearance msg does not match number of params in avatar xml file for " << getFullname() << " (Too many)." << llendl;
return; break;
} }
U8 value; U8 value;
@@ -9198,7 +9197,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
} }
} }
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) while( param && (!param->isTweakable()) )
{ {
param = getNextVisualParam(); param = getNextVisualParam();
} }
@@ -9476,8 +9475,8 @@ void LLVOAvatar::dumpArchetypeXML( void* )
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() ) for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{ {
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param; LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
if( (viewer_param->getWearableType() == type) && if( (viewer_param->getWearableType() == type) &&
(viewer_param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) ) (viewer_param->isTweakable() ) )
{ {
apr_file_printf( file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n", apr_file_printf( file, "\t\t<param id=\"%d\" name=\"%s\" value=\"%.3f\"/>\n",
viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight() ); viewer_param->getID(), viewer_param->getName().c_str(), viewer_param->getWeight() );

View File

@@ -494,7 +494,7 @@ BOOL LLWearable::isOldVersion()
param; param;
param = (LLViewerVisualParam*) avatar->getNextVisualParam() ) param = (LLViewerVisualParam*) avatar->getNextVisualParam() )
{ {
if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (param->getWearableType() == mType) && (param->isTweakable()) )
{ {
param_count++; param_count++;
if( !is_in_map(mVisualParamMap, param->getID() ) ) if( !is_in_map(mVisualParamMap, param->getID() ) )
@@ -550,7 +550,7 @@ BOOL LLWearable::isDirty()
param; param;
param = (LLViewerVisualParam*) avatar->getNextVisualParam() ) param = (LLViewerVisualParam*) avatar->getNextVisualParam() )
{ {
if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (param->getWearableType() == mType) && (param->isTweakable()) )
{ {
F32 weight = get_if_there(mVisualParamMap, param->getID(), param->getDefaultWeight()); F32 weight = get_if_there(mVisualParamMap, param->getID(), param->getDefaultWeight());
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() ); weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
@@ -651,7 +651,7 @@ void LLWearable::setParamsToDefaults()
mVisualParamMap.clear(); mVisualParamMap.clear();
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() ) for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{ {
if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->isTweakable()) )
{ {
mVisualParamMap[param->getID()] = param->getDefaultWeight(); mVisualParamMap[param->getID()] = param->getDefaultWeight();
} }
@@ -685,7 +685,7 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
// Pull params // Pull params
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() ) for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{ {
if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->isTweakable()) )
{ {
S32 param_id = param->getID(); S32 param_id = param->getID();
F32 weight = get_if_there(mVisualParamMap, param_id, param->getDefaultWeight()); F32 weight = get_if_there(mVisualParamMap, param_id, param->getDefaultWeight());
@@ -786,7 +786,7 @@ void LLWearable::removeFromAvatar( EWearableType type, BOOL set_by_user )
// Pull params // Pull params
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() ) for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{ {
if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->isTweakable()) )
{ {
S32 param_id = param->getID(); S32 param_id = param->getID();
avatar->setVisualParamWeight( param_id, param->getDefaultWeight(), set_by_user ); avatar->setVisualParamWeight( param_id, param->getDefaultWeight(), set_by_user );
@@ -834,7 +834,7 @@ void LLWearable::readFromAvatar()
mVisualParamMap.clear(); mVisualParamMap.clear();
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() ) for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{ {
if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (((LLViewerVisualParam*)param)->getWearableType() == mType) && (param->isTweakable()) )
{ {
//pretty sure is right //pretty sure is right
@@ -899,7 +899,7 @@ void LLWearable::copyDataFrom( LLWearable* src )
param; param;
param = (LLViewerVisualParam*) avatar->getNextVisualParam() ) param = (LLViewerVisualParam*) avatar->getNextVisualParam() )
{ {
if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) ) if( (param->getWearableType() == mType) && (param->isTweakable()) )
{ {
S32 id = param->getID(); S32 id = param->getID();
F32 weight = get_if_there(src->mVisualParamMap, id, param->getDefaultWeight() ); F32 weight = get_if_there(src->mVisualParamMap, id, param->getDefaultWeight() );