Files
@ 4455a7e86643
Branch filter:
Location: light9/light8/sub_analyzer.py - annotation
4455a7e86643
3.8 KiB
text/x-python
added a note about the funny read order
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 | 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 c74fe7efabc1 c74fe7efabc1 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 c74fe7efabc1 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 45b12307c695 | from Subs import *
from Patch import *
from types import TupleType
from Config import patch, subs
import re
import Patch
Patch.reload_data(0)
def resolve_name(channelname):
"Insure that we're talking about the primary name of the light"
return Patch.get_channel_name(Patch.get_dmx_channel(channelname))
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 = 'god upfill1 upfill2 upfill3 upfill4 red1 red2 red3 red4 blue1 blue2 blue3 blue4 cycleft cycright sidefill1 sidefill2'.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 ch 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)
|