import json, sys def val(x): if isinstance(x, dict) and 't' in x: v=x.get('v') if x['t']=='struct' and isinstance(v,dict): return {k:val(w) for k,w in v.items()} return v return x for p in sys.argv[1:]: print("="*60, p) n=0 for ln in open(p): r=json.loads(ln) if 'hook' not in r: continue n+=1 a={x['n']:val(x) for x in (r.get('args') or [])} s=r.get('side') or {} after=val((s.get('rng') or {}).get('after')) if r['hook'].endswith('RNG::Seed'): print(f" #{n:2} Seed rng={a.get('rng')} seed=0x{a.get('seed',0):08x} strategic={a.get('is_strategic_generator')} after={after}") else: print(f" #{n:2} {r['hook']} {json.dumps(a)}") print(f" ({n} records)")