diff options
| -rwxr-xr-x[-rw-r--r--] | indra/llappearance/llwearabledata.cpp | 5 | ||||
| -rw-r--r-- | indra/llcharacter/llvisualparam.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llviewerwearable.cpp | 4 | ||||
| -rwxr-xr-x | indra/newview/llvoavatarself.cpp | 7 | 
4 files changed, 17 insertions, 0 deletions
| diff --git a/indra/llappearance/llwearabledata.cpp b/indra/llappearance/llwearabledata.cpp index d70bbf286a..401b1dc192 100644..100755 --- a/indra/llappearance/llwearabledata.cpp +++ b/indra/llappearance/llwearabledata.cpp @@ -119,6 +119,11 @@ U32 LLWearableData::pushWearable(const LLWearableType::EType type,  void LLWearableData::wearableUpdated(LLWearable *wearable, BOOL removed)  {  	wearable->setUpdated(); +	// FIXME DRANO avoid updating params via wearables when rendering server-baked appearance. +	if (mAvatarAppearance->isUsingServerBakes() && !mAvatarAppearance->isUsingLocalAppearance()) +	{ +		return; +	}  	if (!removed)  	{  		pullCrossWearableValues(wearable->getType()); diff --git a/indra/llcharacter/llvisualparam.cpp b/indra/llcharacter/llvisualparam.cpp index 809b312abe..255f61b1b3 100644 --- a/indra/llcharacter/llvisualparam.cpp +++ b/indra/llcharacter/llvisualparam.cpp @@ -250,6 +250,7 @@ void LLVisualParam::setAnimationTarget(F32 target_value, BOOL upload_bake)  	if (mIsDummy)  	{  		setWeight(target_value, upload_bake); +		mTargetWeight = mCurWeight;  		return;  	} diff --git a/indra/newview/llviewerwearable.cpp b/indra/newview/llviewerwearable.cpp index f3d9b2c678..1200f65b6e 100755 --- a/indra/newview/llviewerwearable.cpp +++ b/indra/newview/llviewerwearable.cpp @@ -476,6 +476,10 @@ void LLViewerWearable::setItemID(const LLUUID& item_id)  void LLViewerWearable::revertValues()  { +	if (isAgentAvatarValid() && gAgentAvatarp->isUsingServerBakes() && !gAgentAvatarp->isUsingLocalAppearance()) +	{ +		return; +	}  	LLWearable::revertValues(); diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp index 7ca40a8752..a29ef2f3ad 100755 --- a/indra/newview/llvoavatarself.cpp +++ b/indra/newview/llvoavatarself.cpp @@ -668,6 +668,13 @@ BOOL LLVOAvatarSelf::setParamWeight(const LLViewerVisualParam *param, F32 weight  		return FALSE;  	} +	// FIXME DRANO - kludgy way to avoid overwriting avatar state from wearables. +	if (isUsingServerBakes() && !isUsingLocalAppearance()) +	{ +		return FALSE; +	} + +  	if (param->getCrossWearable())  	{  		LLWearableType::EType type = (LLWearableType::EType)param->getWearableType(); | 
