From f3fb80c9479c14b8c9afc8794b053fcf74957f77 Mon Sep 17 00:00:00 2001 From: "Brad Payne (Vir Linden)" Date: Wed, 27 Apr 2016 17:19:09 -0400 Subject: SL-344 - fixed a problem in avatar_lad with some params in wrong group, added diagnostics to make this easier to detect. --- indra/newview/character/avatar_lad.xml | 166 ++++++++++++++++----------------- indra/newview/llvoavatar.cpp | 5 +- scripts/content_tools/skel_tool.py | 26 +++++- 3 files changed, 109 insertions(+), 88 deletions(-) diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml index 6701645a39..261d495af9 100755 --- a/indra/newview/character/avatar_lad.xml +++ b/indra/newview/character/avatar_lad.xml @@ -2101,7 +2101,7 @@ @@ -2128,7 +2128,7 @@ @@ -2146,7 +2146,7 @@ @@ -2194,7 +2194,7 @@ @@ -2279,7 +2279,7 @@ @@ -2370,7 +2370,7 @@ @@ -2421,7 +2421,7 @@ @@ -2574,7 +2574,7 @@ @@ -2745,7 +2745,7 @@ @@ -2771,7 +2771,7 @@ @@ -2792,7 +2792,7 @@ @@ -2874,7 +2874,7 @@ @@ -2955,7 +2955,7 @@ @@ -2973,7 +2973,7 @@ @@ -2992,7 +2992,7 @@ @@ -3010,7 +3010,7 @@ @@ -3044,7 +3044,7 @@ @@ -3079,7 +3079,7 @@ @@ -3141,7 +3141,7 @@ @@ -3156,7 +3156,7 @@ @@ -3171,7 +3171,7 @@ @@ -3186,7 +3186,7 @@ @@ -3202,7 +3202,7 @@ @@ -3233,7 +3233,7 @@ @@ -3252,7 +3252,7 @@ @@ -3271,7 +3271,7 @@ @@ -3302,7 +3302,7 @@ @@ -3328,7 +3328,7 @@ @@ -3354,7 +3354,7 @@ @@ -3737,7 +3737,7 @@ @@ -3783,7 +3783,7 @@ @@ -3829,7 +3829,7 @@ @@ -3850,7 +3850,7 @@ @@ -3871,7 +3871,7 @@ @@ -3887,7 +3887,7 @@ @@ -3927,7 +3927,7 @@ @@ -3952,7 +3952,7 @@ @@ -3979,7 +3979,7 @@ @@ -4000,7 +4000,7 @@ @@ -4021,7 +4021,7 @@ @@ -4042,7 +4042,7 @@ @@ -4063,7 +4063,7 @@ @@ -4915,7 +4915,7 @@ --> @@ -4924,7 +4924,7 @@ @@ -4933,7 +4933,7 @@ @@ -4942,7 +4942,7 @@ @@ -4951,7 +4951,7 @@ @@ -4960,7 +4960,7 @@ @@ -4969,7 +4969,7 @@ @@ -4978,7 +4978,7 @@ @@ -4987,7 +4987,7 @@ @@ -4996,7 +4996,7 @@ @@ -5005,7 +5005,7 @@ @@ -5024,7 +5024,7 @@ @@ -5033,7 +5033,7 @@ @@ -5042,7 +5042,7 @@ @@ -5051,7 +5051,7 @@ @@ -5060,7 +5060,7 @@ @@ -5069,7 +5069,7 @@ @@ -5078,7 +5078,7 @@ @@ -5087,7 +5087,7 @@ @@ -5124,7 +5124,7 @@ @@ -5133,7 +5133,7 @@ @@ -5142,7 +5142,7 @@ @@ -5151,7 +5151,7 @@ @@ -5160,7 +5160,7 @@ @@ -5204,7 +5204,7 @@ @@ -5231,7 +5231,7 @@ @@ -5240,7 +5240,7 @@ @@ -5249,7 +5249,7 @@ @@ -5258,7 +5258,7 @@ @@ -5285,7 +5285,7 @@ @@ -5305,7 +5305,7 @@ @@ -5517,7 +5517,7 @@ @@ -5646,7 +5646,7 @@ getWearableType(); } S32 u8_value = F32_to_U8(value,viewer_param->getMinWeight(),viewer_param->getMaxWeight()); - apr_file_printf(file, "\t\t\n", + apr_file_printf(file, "\t\t\n", viewer_param->getID(), viewer_param->getName().c_str(), value, u8_value, type_string.c_str(), - LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str() + LLWearableType::getTypeName(LLWearableType::EType(wtype)).c_str(), + viewer_param->getGroup() // param_location_name(vparam->getParamLocation()).c_str() ); } diff --git a/scripts/content_tools/skel_tool.py b/scripts/content_tools/skel_tool.py index 3b99be5e33..bb52ae3f3e 100644 --- a/scripts/content_tools/skel_tool.py +++ b/scripts/content_tools/skel_tool.py @@ -228,7 +228,7 @@ def validate_skel_tree(tree, ogtree, reftree, fix=False): # Check contents of avatar_lad file relative to a specified skeleton -def validate_lad_tree(ladtree,skeltree): +def validate_lad_tree(ladtree,skeltree,orig_ladtree): print "validate_lad_tree" bone_names = [elt.get("name") for elt in skeltree.iter("bone")] bone_names.append("mScreen") @@ -271,7 +271,21 @@ def validate_lad_tree(ladtree,skeltree): else: if args.verbose: print "driven_id",driven_id,"has one driver",dset - + + if orig_ladtree: + # make sure expected message format is unchanged + orig_message_params_by_id = dict((int(param.get("id")),param) for param in orig_ladtree.iter("param") if param.get("group") in ["0","3"]) + orig_message_ids = sorted(orig_message_params_by_id.keys()) + #print "orig_message_ids",orig_message_ids + message_params_by_id = dict((int(param.get("id")),param) for param in ladtree.iter("param") if param.get("group") in ["0","3"]) + message_ids = sorted(message_params_by_id.keys()) + #print "message_ids",message_ids + if (set(message_ids) != set(orig_message_ids)): + print "mismatch in message ids!" + print "added",set(message_ids) - set(orig_message_ids) + print "removed",set(orig_message_ids) - set(message_ids) + else: + print "message ids OK" def remove_joint_by_name(tree, name): print "remove joint:",name @@ -345,6 +359,7 @@ if __name__ == "__main__": parser.add_argument("--ogfile", help="specify file containing base bones") parser.add_argument("--ref_file", help="specify another file containing replacements for missing fields") parser.add_argument("--lad_file", help="specify avatar_lad file to check") + parser.add_argument("--orig_lad_file", help="specify avatar_lad file to compare to") parser.add_argument("--aliases", help="specify file containing bone aliases") parser.add_argument("--validate", action="store_true", help="check specified input file for validity") parser.add_argument("--fix", action="store_true", help="try to correct errors") @@ -366,6 +381,8 @@ if __name__ == "__main__": ogtree = None reftree = None ladtree = None + orig_ladtree = None + if args.ogfile: ogtree = etree.parse(args.ogfile) @@ -375,6 +392,9 @@ if __name__ == "__main__": if args.lad_file: ladtree = etree.parse(args.lad_file) + if args.orig_lad_file: + orig_ladtree = etree.parse(args.orig_lad_file) + if args.remove: for name in args.remove: remove_joint_by_name(tree,name) @@ -384,7 +404,7 @@ if __name__ == "__main__": validate_skel_tree(tree, ogtree, reftree) if args.validate and ladtree: - validate_lad_tree(ladtree, tree) + validate_lad_tree(ladtree, tree, orig_ladtree) if args.fix and ogtree: validate_skel_tree(tree, ogtree, reftree, True) -- cgit v1.2.3