Serious fix for the Tintable tattoos!
Signed-off-by: Beeks <HgDelirium@gmail.com>
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|||||||
@@ -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" />
|
||||||
|
|||||||
@@ -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 );
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
@@ -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() );
|
||||||
|
|||||||
@@ -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() );
|
||||||
|
|||||||
Reference in New Issue
Block a user