diff options
| -rw-r--r-- | indra/newview/character/avatar_lad.xml | 2 | ||||
| -rw-r--r-- | indra/newview/llwearable.cpp | 20 | 
2 files changed, 20 insertions, 2 deletions
| diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 10c197d09e..d7182dfaab 100644 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -1,6 +1,6 @@  <?xml version="1.0" encoding="US-ASCII" standalone="yes"?>  <linden_avatar - version="1.0" wearable_definition_version="24">  + version="1.0" wearable_definition_version="22">     <!-- The wearable_definition_version is checked during asset upload. -->    <!-- If you increment it, check indra/lib/python/indra/assetutil.py.  -->    <skeleton diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp index e37dffd526..2849cfa20e 100644 --- a/indra/newview/llwearable.cpp +++ b/indra/newview/llwearable.cpp @@ -225,7 +225,13 @@ BOOL LLWearable::importFile( LLFILE* file )  		return FALSE;  	} -	if( mDefinitionVersion > LLWearable::sCurrentDefinitionVersion ) + +	// Temoprary hack to allow wearables with definition version 24 to still load. +	// This should only affect lindens and NDA'd testers who have saved wearables in 2.0 +	// the extra check for version == 24 can be removed before release, once internal testers +	// have loaded these wearables again. See hack pt 2 at bottom of function to ensure that +	// these wearables get re-saved with version definition 22. +	if( mDefinitionVersion > LLWearable::sCurrentDefinitionVersion && mDefinitionVersion != 24 )  	{  		llwarns << "Wearable asset has newer version (" << mDefinitionVersion << ") than XML (" << LLWearable::sCurrentDefinitionVersion << ")" << llendl;  		return FALSE; @@ -414,6 +420,18 @@ BOOL LLWearable::importFile( LLFILE* file )  	// copy all saved param values to working params  	revertValues(); +	// Hack pt 2. If the wearable we just loaded has definition version 24, +	// then force a re-save of this wearable after slamming the version number to 22. +	// This number was incorrectly incremented for internal builds before release, and +	// this fix will ensure that the affected wearables are re-saved with the right version number. +	// the versions themselves are compatible. This code can be removed before release. +	if( mDefinitionVersion == 24 ) +	{ +		mDefinitionVersion = 22; +		U32 index = gAgentWearables.getWearableIndex(this); +		gAgentWearables.saveWearable(mType,index,TRUE); +	} +  	return TRUE;  } | 
