Mercurial > code > home > repos > light9
view light8/sub_analyzer.py @ 15:c76b62eccdec
put **kw back in, they now go to the scale and can override the defaults.
put **kw back in, they now go to the scale and can override the defaults.
for our purposes, we probably want to edit the defaults so we don't have
them in every call.
author | dmcc |
---|---|
date | Sun, 07 Jul 2002 06:18:40 +0000 |
parents | 45b12307c695 |
children | c74fe7efabc1 |
line wrap: on
line source
#!/usr/bin/python from Subs import * from Patch import * from types import TupleType from Config import patch, subs import re import Patch Patch.reload_data(0) subusage = {} # colors = 'ROGBVndcihs' colors = 'ndcihs' color_chart = { '1-01' : 'ROYd', # broadway (morning - afternoon) '1-02' : 'i', # int. mission '1-03' : 'R', # phone booth '1-04' : 'RBVh', # hotbox '1-05' : 'RBd', # off broadway '1-06' : 'ROYd', # ext. mission '1-07' : 'ROYn', # gambler intro, off broadway '1-08' : 'ROBIVc', # havana, clubs '1-09' : 'ROYBIVc', # havana, outside, night '1-10' : 'BVn', # ext. mission, night (4am) '2-01' : 'RBIVh', # hotbox '2-02' : 'RBn', # more can i wish you '2-03' : 'GBs', # sewer (crap game) '2-04' : 'Bn', # sue me '2-05' : 'i', # int. mission '2-06' : '', # marry '2-07' : 'd', # broadway finale } scene_names = { '1-01' : 'broadway (morning to afternoon)', '1-02' : 'int. mission', '1-03' : 'phone booth', '1-04' : 'hotbox', '1-05' : 'guys and dolls (off broadway)', '1-06' : 'ext. mission, lunch time', '1-07' : 'gambler intro, off broadway', '1-08' : 'havana, clubs', '1-09' : 'havana, outside, night', '1-10' : 'ext. mission, night (4am)', '2-01' : 'hotbox', '2-02' : 'more can i wish you', '2-03' : 'sewer (crap game)', '2-04' : 'sue me', '2-05' : 'rock the boat (int. mission)', '2-06' : 'marry (trav)', '2-07' : 'finale (broadway)', } sub_to_scene = {} # blacklist is a list of *prefixes* to light names that won't be shown blacklist = 'god upfill red blue cyc oran sidefill'.split() blacklist.extend(['side l','side r']) for subname, levdict in subs.items(): if type(subname) == TupleType: subname = subname[0] oldname = subname subname = re.sub(r'\*(\d-\d+)-.*', r'\1', subname) if oldname == subname: continue sub_to_scene[oldname] = subname subname = oldname # restore 'em. restore 'em good. if not levdict: print "Warning: %s is useless (empty sub)." % subname else: for ch, lev in levdict.items(): if lev: ch = resolve_name(ch) subusage.setdefault(ch, []) subusage[ch].append((lev, subname)) def twist(l): return [(b,a) for a,b in l] def format_usage(ch, usage): if max([ch.startswith(pre) for pre in blacklist]): return usage=twist(usage) usage.sort() # usage.reverse() usage=twist(usage) print "======= %s ======= (%d uses)" % (ch, len(usage)) if 1: use_str = '' for lev, sub in usage: if lev>30: if sub_to_scene[sub] in color_chart: subcolors = color_chart[sub_to_scene[sub]] col_str = '' for c in colors: if c in subcolors: col_str += c else: col_str += ' ' print col_str, else: print ' ' * len(colors), scenename = scene_names.get(sub_to_scene[sub], '') levbar="*"*(lev//5) print ' %3d %-20s\t%-30s %s' % (lev, levbar,sub, scenename) else: use_str = '\n '.join(["%d\t%s" % (lev, sub) for lev, sub in usage]) print ' ' + use_str subitems = subusage.items() subitems.sort() for ch, usage in subitems: if 0: usedict = {} for lev, subname in usage: # remove duplicates usedict[subname] = max(lev, usedict.get(subname, 0)) newusage = [(lev, sub) for sub, lev in usedict.items()] format_usage(ch, newusage) else: format_usage(ch, usage)