Mercurial > code > home > repos > light9
view light8/sub_analyzer.py @ 59:001646cd5349
all mousewheel events everywhere will now pass up the tree to be caught by
all mousewheel events everywhere will now pass up the tree to be caught by
higher widgets. if things get slow, this might be the problem
author | drewp |
---|---|
date | Tue, 09 Jul 2002 07:36:29 +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)