annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
45b12307c695 Initial revision
drewp
parents:
diff changeset
1 #!/usr/bin/python
45b12307c695 Initial revision
drewp
parents:
diff changeset
2 from Subs import *
45b12307c695 Initial revision
drewp
parents:
diff changeset
3 from Patch import *
45b12307c695 Initial revision
drewp
parents:
diff changeset
4 from types import TupleType
45b12307c695 Initial revision
drewp
parents:
diff changeset
5
45b12307c695 Initial revision
drewp
parents:
diff changeset
6 from Config import patch, subs
45b12307c695 Initial revision
drewp
parents:
diff changeset
7
45b12307c695 Initial revision
drewp
parents:
diff changeset
8 import re
45b12307c695 Initial revision
drewp
parents:
diff changeset
9 import Patch
45b12307c695 Initial revision
drewp
parents:
diff changeset
10 Patch.reload_data(0)
45b12307c695 Initial revision
drewp
parents:
diff changeset
11
45b12307c695 Initial revision
drewp
parents:
diff changeset
12 subusage = {}
45b12307c695 Initial revision
drewp
parents:
diff changeset
13
45b12307c695 Initial revision
drewp
parents:
diff changeset
14 # colors = 'ROGBVndcihs'
45b12307c695 Initial revision
drewp
parents:
diff changeset
15 colors = 'ndcihs'
45b12307c695 Initial revision
drewp
parents:
diff changeset
16
45b12307c695 Initial revision
drewp
parents:
diff changeset
17 color_chart = {
45b12307c695 Initial revision
drewp
parents:
diff changeset
18 '1-01' : 'ROYd', # broadway (morning - afternoon)
45b12307c695 Initial revision
drewp
parents:
diff changeset
19 '1-02' : 'i', # int. mission
45b12307c695 Initial revision
drewp
parents:
diff changeset
20 '1-03' : 'R', # phone booth
45b12307c695 Initial revision
drewp
parents:
diff changeset
21 '1-04' : 'RBVh', # hotbox
45b12307c695 Initial revision
drewp
parents:
diff changeset
22 '1-05' : 'RBd', # off broadway
45b12307c695 Initial revision
drewp
parents:
diff changeset
23 '1-06' : 'ROYd', # ext. mission
45b12307c695 Initial revision
drewp
parents:
diff changeset
24 '1-07' : 'ROYn', # gambler intro, off broadway
45b12307c695 Initial revision
drewp
parents:
diff changeset
25 '1-08' : 'ROBIVc', # havana, clubs
45b12307c695 Initial revision
drewp
parents:
diff changeset
26 '1-09' : 'ROYBIVc', # havana, outside, night
45b12307c695 Initial revision
drewp
parents:
diff changeset
27 '1-10' : 'BVn', # ext. mission, night (4am)
45b12307c695 Initial revision
drewp
parents:
diff changeset
28
45b12307c695 Initial revision
drewp
parents:
diff changeset
29 '2-01' : 'RBIVh', # hotbox
45b12307c695 Initial revision
drewp
parents:
diff changeset
30 '2-02' : 'RBn', # more can i wish you
45b12307c695 Initial revision
drewp
parents:
diff changeset
31 '2-03' : 'GBs', # sewer (crap game)
45b12307c695 Initial revision
drewp
parents:
diff changeset
32 '2-04' : 'Bn', # sue me
45b12307c695 Initial revision
drewp
parents:
diff changeset
33 '2-05' : 'i', # int. mission
45b12307c695 Initial revision
drewp
parents:
diff changeset
34 '2-06' : '', # marry
45b12307c695 Initial revision
drewp
parents:
diff changeset
35 '2-07' : 'd', # broadway finale
45b12307c695 Initial revision
drewp
parents:
diff changeset
36 }
45b12307c695 Initial revision
drewp
parents:
diff changeset
37
45b12307c695 Initial revision
drewp
parents:
diff changeset
38 scene_names = {
45b12307c695 Initial revision
drewp
parents:
diff changeset
39 '1-01' : 'broadway (morning to afternoon)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
40 '1-02' : 'int. mission',
45b12307c695 Initial revision
drewp
parents:
diff changeset
41 '1-03' : 'phone booth',
45b12307c695 Initial revision
drewp
parents:
diff changeset
42 '1-04' : 'hotbox',
45b12307c695 Initial revision
drewp
parents:
diff changeset
43 '1-05' : 'guys and dolls (off broadway)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
44 '1-06' : 'ext. mission, lunch time',
45b12307c695 Initial revision
drewp
parents:
diff changeset
45 '1-07' : 'gambler intro, off broadway',
45b12307c695 Initial revision
drewp
parents:
diff changeset
46 '1-08' : 'havana, clubs',
45b12307c695 Initial revision
drewp
parents:
diff changeset
47 '1-09' : 'havana, outside, night',
45b12307c695 Initial revision
drewp
parents:
diff changeset
48 '1-10' : 'ext. mission, night (4am)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
49
45b12307c695 Initial revision
drewp
parents:
diff changeset
50 '2-01' : 'hotbox',
45b12307c695 Initial revision
drewp
parents:
diff changeset
51 '2-02' : 'more can i wish you',
45b12307c695 Initial revision
drewp
parents:
diff changeset
52 '2-03' : 'sewer (crap game)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
53 '2-04' : 'sue me',
45b12307c695 Initial revision
drewp
parents:
diff changeset
54 '2-05' : 'rock the boat (int. mission)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
55 '2-06' : 'marry (trav)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
56 '2-07' : 'finale (broadway)',
45b12307c695 Initial revision
drewp
parents:
diff changeset
57 }
45b12307c695 Initial revision
drewp
parents:
diff changeset
58
45b12307c695 Initial revision
drewp
parents:
diff changeset
59 sub_to_scene = {}
45b12307c695 Initial revision
drewp
parents:
diff changeset
60
45b12307c695 Initial revision
drewp
parents:
diff changeset
61 # blacklist is a list of *prefixes* to light names that won't be shown
45b12307c695 Initial revision
drewp
parents:
diff changeset
62 blacklist = 'god upfill red blue cyc oran sidefill'.split()
45b12307c695 Initial revision
drewp
parents:
diff changeset
63 blacklist.extend(['side l','side r'])
45b12307c695 Initial revision
drewp
parents:
diff changeset
64
45b12307c695 Initial revision
drewp
parents:
diff changeset
65 for subname, levdict in subs.items():
45b12307c695 Initial revision
drewp
parents:
diff changeset
66 if type(subname) == TupleType:
45b12307c695 Initial revision
drewp
parents:
diff changeset
67 subname = subname[0]
45b12307c695 Initial revision
drewp
parents:
diff changeset
68 oldname = subname
45b12307c695 Initial revision
drewp
parents:
diff changeset
69 subname = re.sub(r'\*(\d-\d+)-.*', r'\1', subname)
45b12307c695 Initial revision
drewp
parents:
diff changeset
70 if oldname == subname: continue
45b12307c695 Initial revision
drewp
parents:
diff changeset
71 sub_to_scene[oldname] = subname
45b12307c695 Initial revision
drewp
parents:
diff changeset
72 subname = oldname # restore 'em. restore 'em good.
45b12307c695 Initial revision
drewp
parents:
diff changeset
73 if not levdict:
45b12307c695 Initial revision
drewp
parents:
diff changeset
74 print "Warning: %s is useless (empty sub)." % subname
45b12307c695 Initial revision
drewp
parents:
diff changeset
75 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
76 for ch, lev in levdict.items():
45b12307c695 Initial revision
drewp
parents:
diff changeset
77 if lev:
45b12307c695 Initial revision
drewp
parents:
diff changeset
78 ch = resolve_name(ch)
45b12307c695 Initial revision
drewp
parents:
diff changeset
79 subusage.setdefault(ch, [])
45b12307c695 Initial revision
drewp
parents:
diff changeset
80 subusage[ch].append((lev, subname))
45b12307c695 Initial revision
drewp
parents:
diff changeset
81
45b12307c695 Initial revision
drewp
parents:
diff changeset
82 def twist(l):
45b12307c695 Initial revision
drewp
parents:
diff changeset
83 return [(b,a) for a,b in l]
45b12307c695 Initial revision
drewp
parents:
diff changeset
84
45b12307c695 Initial revision
drewp
parents:
diff changeset
85 def format_usage(ch, usage):
45b12307c695 Initial revision
drewp
parents:
diff changeset
86 if max([ch.startswith(pre) for pre in blacklist]):
45b12307c695 Initial revision
drewp
parents:
diff changeset
87 return
45b12307c695 Initial revision
drewp
parents:
diff changeset
88
45b12307c695 Initial revision
drewp
parents:
diff changeset
89 usage=twist(usage)
45b12307c695 Initial revision
drewp
parents:
diff changeset
90 usage.sort()
45b12307c695 Initial revision
drewp
parents:
diff changeset
91 # usage.reverse()
45b12307c695 Initial revision
drewp
parents:
diff changeset
92 usage=twist(usage)
45b12307c695 Initial revision
drewp
parents:
diff changeset
93 print "======= %s ======= (%d uses)" % (ch, len(usage))
45b12307c695 Initial revision
drewp
parents:
diff changeset
94 if 1:
45b12307c695 Initial revision
drewp
parents:
diff changeset
95 use_str = ''
45b12307c695 Initial revision
drewp
parents:
diff changeset
96 for lev, sub in usage:
45b12307c695 Initial revision
drewp
parents:
diff changeset
97 if lev>30:
45b12307c695 Initial revision
drewp
parents:
diff changeset
98 if sub_to_scene[sub] in color_chart:
45b12307c695 Initial revision
drewp
parents:
diff changeset
99 subcolors = color_chart[sub_to_scene[sub]]
45b12307c695 Initial revision
drewp
parents:
diff changeset
100 col_str = ''
45b12307c695 Initial revision
drewp
parents:
diff changeset
101 for c in colors:
45b12307c695 Initial revision
drewp
parents:
diff changeset
102 if c in subcolors: col_str += c
45b12307c695 Initial revision
drewp
parents:
diff changeset
103 else: col_str += ' '
45b12307c695 Initial revision
drewp
parents:
diff changeset
104 print col_str,
45b12307c695 Initial revision
drewp
parents:
diff changeset
105 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
106 print ' ' * len(colors),
45b12307c695 Initial revision
drewp
parents:
diff changeset
107 scenename = scene_names.get(sub_to_scene[sub], '')
45b12307c695 Initial revision
drewp
parents:
diff changeset
108 levbar="*"*(lev//5)
45b12307c695 Initial revision
drewp
parents:
diff changeset
109 print ' %3d %-20s\t%-30s %s' % (lev, levbar,sub, scenename)
45b12307c695 Initial revision
drewp
parents:
diff changeset
110 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
111 use_str = '\n '.join(["%d\t%s" % (lev, sub) for lev, sub in usage])
45b12307c695 Initial revision
drewp
parents:
diff changeset
112 print ' ' + use_str
45b12307c695 Initial revision
drewp
parents:
diff changeset
113
45b12307c695 Initial revision
drewp
parents:
diff changeset
114 subitems = subusage.items()
45b12307c695 Initial revision
drewp
parents:
diff changeset
115 subitems.sort()
45b12307c695 Initial revision
drewp
parents:
diff changeset
116 for ch, usage in subitems:
45b12307c695 Initial revision
drewp
parents:
diff changeset
117 if 0:
45b12307c695 Initial revision
drewp
parents:
diff changeset
118 usedict = {}
45b12307c695 Initial revision
drewp
parents:
diff changeset
119 for lev, subname in usage: # remove duplicates
45b12307c695 Initial revision
drewp
parents:
diff changeset
120 usedict[subname] = max(lev, usedict.get(subname, 0))
45b12307c695 Initial revision
drewp
parents:
diff changeset
121
45b12307c695 Initial revision
drewp
parents:
diff changeset
122 newusage = [(lev, sub) for sub, lev in usedict.items()]
45b12307c695 Initial revision
drewp
parents:
diff changeset
123
45b12307c695 Initial revision
drewp
parents:
diff changeset
124 format_usage(ch, newusage)
45b12307c695 Initial revision
drewp
parents:
diff changeset
125 else:
45b12307c695 Initial revision
drewp
parents:
diff changeset
126 format_usage(ch, usage)