diff options
| -rwxr-xr-x | indra/llappearance/lldriverparam.cpp | 1 | ||||
| -rwxr-xr-x | indra/newview/llagent.cpp | 10 | ||||
| -rwxr-xr-x | indra/newview/llvoavatar.cpp | 10 | 
3 files changed, 17 insertions, 4 deletions
| diff --git a/indra/llappearance/lldriverparam.cpp b/indra/llappearance/lldriverparam.cpp index 01184a9e23..1f7e8b8652 100755 --- a/indra/llappearance/lldriverparam.cpp +++ b/indra/llappearance/lldriverparam.cpp @@ -190,6 +190,7 @@ BOOL LLDriverParam::setInfo(LLDriverParamInfo *info)  	// FIXME DRANO this clobbers mWearablep, which means any code  	// currently using mWearablep is wrong, or at least untested.  	*new_param = *this; +	//new_param->mWearablep = wearable;  //	new_param->mDriven.clear(); // clear driven list to avoid overwriting avatar driven params from wearables.   	return new_param;  } diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp index 3e26eac59a..9eb2723dcf 100755 --- a/indra/newview/llagent.cpp +++ b/indra/newview/llagent.cpp @@ -904,6 +904,16 @@ void LLAgent::setRegion(LLViewerRegion *regionp)  	{  		LLEnvManagerNew::instance().onRegionCrossing();  	} + +	// If the newly entered region is using server bakes, and our +	// current appearance is non-baked, request appearance update from +	// server. +	if (isAgentAvatarValid() && +		!gAgentAvatarp->isUsingServerBakes() && +		(mRegionp->getCentralBakeVersion()>0)) +	{ +		LLAppearanceMgr::instance().requestServerAppearanceUpdate(); +	}  } diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index a49ecc0127..b08226fe94 100755 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -6400,8 +6400,6 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  		//mesgsys->getU32Fast(_PREHASH_AppearanceData, _PREHASH_Flags, appearance_flags, 0);  	} -	mUseServerBakes = (appearance_version > 0); -  	// Only now that we have result of appearance_version can we decide whether to bail out.  	if( isSelf() )  	{ @@ -6409,7 +6407,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  		{  			llwarns << avString() << "Received AvatarAppearance message for self in non-server-bake region" << llendl;  		} -		if( mFirstTEMessageReceived && !isUsingServerBakes()) +		if( mFirstTEMessageReceived && (appearance_version == 0))  		{  			return;  		} @@ -6417,7 +6415,8 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  	// Check for stale update. -	if (isUsingServerBakes() && isSelf() +	if (isSelf() +		&& isUsingServerBakes()  		&& this_update_cof_version >= LLViewerInventoryCategory::VERSION_INITIAL  		&& this_update_cof_version < last_update_request_cof_version)  	{ @@ -6425,6 +6424,9 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )  				<< ", got " << this_update_cof_version << llendl;  		return;  	} + +	mUseServerBakes = (appearance_version > 0); +  	applyParsedTEMessage(tec);  	// prevent the overwriting of valid baked textures with invalid baked textures | 
