import struct, sys data = open(r'C:\git\bt411\content\BTL4.RES', 'rb').read() labOnly, maxID = struct.unpack_from(' points = 1/scale pts = ['%g' % (1.0/s if s else 0) for s in scales] print('zone %2d %-24s armor(default)=%g scale=[%s] -> points=[%s]' % (z, name, dap, ' '.join('%.6g' % s for s in scales), ' '.join(pts))) print(' seg=%d vital=%d legs(L%d,R%d) descend=%d sibs=%d mats=%d crits=%s redirects=%s' % (segidx, vital, lleg, rleg, descend, sibs, sklcount, [(round(w,3), round(pc,3), si) for (w,pc,si) in crits], redirects)) print('consumed %d of %d bytes' % (p, len(buf))) want = [n.lower() for n in (sys.argv[1:] or ['madcat','bhk1'])] for (rid, rt, nm, roff, rlen) in DZ: if any(w in nm.lower() for w in want): parse_zone_stream(data[roff:roff+rlen], 'id=%d %s' % (rid, nm))