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 = getNextVisualParam())
{
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (param->isTweakable())
{
param->setWeight( param->getDefaultWeight(), FALSE );
}
@@ -394,7 +394,7 @@ BOOL LLCharacter::visualParamWeightsAreDefault()
param;
param = getNextVisualParam())
{
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (param->isTweakable())
{
if (param->getWeight() != param->getDefaultWeight())
return false;

View File

@@ -238,7 +238,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL set_by_user)
{
if (mInfo)
{
if (getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (isTweakable())
{
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)
{
if (mIsAnimating && getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (mIsAnimating && isTweakable())
{
mIsAnimating = FALSE;
setWeight(mTargetWeight, set_by_user);

View File

@@ -51,6 +51,7 @@ enum EVisualParamGroup
{
VISUAL_PARAM_GROUP_TWEAKABLE,
VISUAL_PARAM_GROUP_ANIMATABLE,
VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT,
NUM_VISUAL_PARAM_GROUPS
};
@@ -124,7 +125,7 @@ public:
void setMaxDisplayName(const std::string& s) { mInfo->mMaxName = 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 getMaxWeight() { return mInfo->mMaxWeight; }
F32 getDefaultWeight() { return mInfo->mDefaultWeight; }
@@ -133,7 +134,8 @@ public:
F32 getWeight() { return mIsAnimating ? mTargetWeight : mCurWeight; }
F32 getCurrentWeight() { return mCurWeight; }
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; }
void setNextParam( LLVisualParam *next );

View File

@@ -1099,7 +1099,7 @@
camera_distance=".8"
camera_angle="15">
<param_skeleton>
<bone name="mNeck" scale="0 0 .5" />
<bone name="mNeck" scale="0 0 .5" />
</param_skeleton>
</param>
</skeleton>
@@ -11424,7 +11424,7 @@
id="876" />
</param_driver>
</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">
<param_driver>
<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" />
</param_driver>
</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">
<param_driver>
<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" />
</param_driver>
</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">
<param_driver>
<driven id="1064" min1="0" max1="1" max2="1" min2="1" />

View File

@@ -7586,7 +7586,7 @@ void LLAgent::sendAgentSetAppearance()
param;
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 );

View File

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

View File

@@ -547,7 +547,7 @@ void LLPanelEditWearable::setSubpart( ESubpart subpart )
param = (LLViewerVisualParam *)avatar->getNextVisualParam())
{
if (param->getID() == -1
|| param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE
|| !param->isTweakable()
|| param->getEditGroup() != part->mEditGroup
|| !(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 = getNextVisualParam())
{
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (param->isTweakable())
{
param->stopAnimating(mAppearanceAnimSetByUser);
}
@@ -3007,7 +3007,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
param;
param = getNextVisualParam())
{
if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
if (param->isTweakable())
{
param->animate(morph_amt, mAppearanceAnimSetByUser);
}
@@ -6252,6 +6252,7 @@ BOOL LLVOAvatar::loadAvatar()
if (sAvatarXmlInfo->mLayerInfoList.empty())
{
llwarns << "avatar file: missing <layer_set> node" << llendl;
return FALSE;
}
else
{
@@ -6292,23 +6293,21 @@ BOOL LLVOAvatar::loadAvatar()
}
// 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;
for (iter = sAvatarXmlInfo->mDriverInfoList.begin();
iter != sAvatarXmlInfo->mDriverInfoList.end(); iter++)
LLDriverParamInfo *info = *iter;
LLDriverParam* driver_param = new LLDriverParam( this );
if (driver_param->setInfo(info))
{
LLDriverParamInfo *info = *iter;
LLDriverParam* driver_param = new LLDriverParam( this );
if (driver_param->setInfo(info))
{
addVisualParam( driver_param );
}
else
{
delete driver_param;
llwarns << "avatar file: driver_param->parseData() failed" << llendl;
return FALSE;
}
addVisualParam( driver_param );
}
else
{
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++ )
{
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) )
while( param && (!param->isTweakable()) )
{
param = getNextVisualParam();
}
@@ -9155,7 +9154,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
if( !param )
{
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;
@@ -9198,7 +9197,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
}
}
while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) )
while( param && (!param->isTweakable()) )
{
param = getNextVisualParam();
}
@@ -9476,8 +9475,8 @@ void LLVOAvatar::dumpArchetypeXML( void* )
for( LLVisualParam* param = avatar->getFirstVisualParam(); param; param = avatar->getNextVisualParam() )
{
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
if( (viewer_param->getWearableType() == type) &&
(viewer_param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) )
if( (viewer_param->getWearableType() == type) &&
(viewer_param->isTweakable() ) )
{
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() );

View File

@@ -494,7 +494,7 @@ BOOL LLWearable::isOldVersion()
param;
param = (LLViewerVisualParam*) avatar->getNextVisualParam() )
{
if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
if( (param->getWearableType() == mType) && (param->isTweakable()) )
{
param_count++;
if( !is_in_map(mVisualParamMap, param->getID() ) )
@@ -550,7 +550,7 @@ BOOL LLWearable::isDirty()
param;
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());
weight = llclamp( weight, param->getMinWeight(), param->getMaxWeight() );
@@ -651,7 +651,7 @@ void LLWearable::setParamsToDefaults()
mVisualParamMap.clear();
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();
}
@@ -685,7 +685,7 @@ void LLWearable::writeToAvatar( BOOL set_by_user )
// Pull params
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();
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
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();
avatar->setVisualParamWeight( param_id, param->getDefaultWeight(), set_by_user );
@@ -834,7 +834,7 @@ void LLWearable::readFromAvatar()
mVisualParamMap.clear();
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
@@ -899,7 +899,7 @@ void LLWearable::copyDataFrom( LLWearable* src )
param;
param = (LLViewerVisualParam*) avatar->getNextVisualParam() )
{
if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
if( (param->getWearableType() == mType) && (param->isTweakable()) )
{
S32 id = param->getID();
F32 weight = get_if_there(src->mVisualParamMap, id, param->getDefaultWeight() );