diff options
| -rw-r--r-- | indra/newview/llvoavatar.cpp | 10 | ||||
| -rw-r--r-- | scripts/content_tools/arche_tool.py | 17 | 
2 files changed, 22 insertions, 5 deletions
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 0728509bcd..25565715c2 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -1851,6 +1851,10 @@ void LLVOAvatar::resetSkeleton()          return;      } +    // Save mPelvis state +    LLVector3 pelvis_pos = getJoint("mPelvis")->getPosition(); +    LLQuaternion pelvis_rot = getJoint("mPelvis")->getRotation(); +      // Clear all attachment pos overrides      clearAttachmentPosOverrides(); @@ -1903,6 +1907,10 @@ void LLVOAvatar::resetSkeleton()      // Restore attachment pos overrides      rebuildAttachmentPosOverrides(); +    // Restore mPelvis state +    getJoint("mPelvis")->setRotation(pelvis_rot); +    getJoint("mPelvis")->setPosition(pelvis_pos); +          // Restart animations      resetAnimations(); @@ -7855,7 +7863,7 @@ void LLVOAvatar::applyParsedAppearanceMessage(LLAppearanceMessageContents& conte  			LLVisualParam* param = contents.mParams[i];  			F32 newWeight = contents.mParamWeights[i]; -			if (is_first_appearance_message || (param->getWeight() != newWeight)) +			if (slam_params || is_first_appearance_message || (param->getWeight() != newWeight))  			{  				params_changed = TRUE;  				params_changed_count++; diff --git a/scripts/content_tools/arche_tool.py b/scripts/content_tools/arche_tool.py index 5140f5b888..23c96fc64e 100644 --- a/scripts/content_tools/arche_tool.py +++ b/scripts/content_tools/arche_tool.py @@ -39,10 +39,12 @@ def node_key(e):          return e.tag + " " + e.get("name")      return None -def compare_matched_nodes(key,items): +def compare_matched_nodes(key,items,summary):      tags = list(set([e.tag for e in items]))      if len(tags) != 1:          print "different tag types for key",key +        summary.setdefault("tag_mismatch",0) +        summary["tag_mismatch"] += 1          return      all_attrib = list(set(chain.from_iterable([e.attrib.keys() for e in items])))      #print key,"all_attrib",all_attrib @@ -50,11 +52,14 @@ def compare_matched_nodes(key,items):          vals = [e.get(attr) for e in items]          #print "key",key,"attr",attr,"vals",vals          if len(set(vals)) != 1: -            print "key",key,"attr",attr,"multiple values",vals -     +            print key,"- attr",attr,"multiple values",vals +            summary.setdefault("attr",{}) +            summary["attr"].setdefault(attr,0) +            summary["attr"][attr] += 1  def compare_trees(file_trees):      print "compare_trees" +    summary = {}      all_keys = list(set([node_key(e) for tree in file_trees for e in tree.getroot().iter() if node_key(e)]))      #print "keys",all_keys      tree_nodes = [] @@ -66,9 +71,13 @@ def compare_trees(file_trees):          for nodes in tree_nodes:              if not key in nodes:                  print "file",i,"missing item for key",key +                summary.setdefault("missing",0) +                summary["missing"] += 1              else:                  items.append(nodes[key]) -        compare_matched_nodes(key,items) +        compare_matched_nodes(key,items,summary) +    print "Summary:" +    print summary  if __name__ == "__main__":  | 
