Resource information is now centralized in resources.csv.

The old scripts that trolled content/ and src/ for information
have been retired, and the new script reads the CSV file and
generates the resource files directly.

Future changes to the resource indices or content should be
done by modifying resources.csv and regenerating the data.


git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@2925 8092fc87-c524-0410-9efc-e669fe64eaf9
This commit is contained in:
mcmartin
2008-02-24 22:06:03 +00:00
parent 9d914998b9
commit d0dcf67ac6
10 changed files with 148 additions and 19 deletions
+280
View File
@@ -0,0 +1,280 @@
#!/usr/bin/python
import scan_defines as scan
# 72-5-4 for colortable.str_cts_ -- 0x09000504L -- OOLITE_COLOR_TAB. Goes up through
# 202-87-2 for PLANET00_BIG_MASK_PMAP_ANIM. Goes up through 58.
# MAROON and CRIMSON seem swapped!
planettypes = ['oolite',
'yttric',
'quasidegenerate',
'lanthanide',
'treasure',
'urea',
'metal',
'radioactive',
'opalescent',
'cyanic',
'acid',
'alkali',
'halide',
'green',
'copper',
'carbide',
'ultramarine',
'noble',
'azure',
'chondrite',
'purple',
'superdense',
'pellucid',
'dust',
'crimson',
'cimmerian',
'infrared',
'selenic',
'auric',
'fluorescent',
'ultraviolet',
'plutonic',
'rainbow',
'shattered',
'sapphire',
'organic',
'xenolithic',
'redux',
'primordial',
'emerald',
'chlorine',
'magnetic',
'water',
'telluric',
'hydrocarbon',
'iodine',
'vinylogous',
'ruby',
'magma',
'maroon',
'bluegas', # PLANET50 # (As per colorcodes)
'cyangas',
'greengas',
'greygas',
'orangegas',
'purplegas',
'redgas',
'violetgas',
'yellowgas']
headersymbols = {'quasidegenerate': 'quasi_degenerate',
'superdense': 'super_dense',
'bluegas': 'blu_gas',
'cyangas': 'cya_gas',
'greengas': 'grn_gas',
'greygas': 'gry_gas',
'orangegas': 'ora_gas',
'purplegas': 'pur_gas',
'redgas': 'red_gas',
'violetgas': 'vio_gas',
'yellowgas': 'yel_gas' }
xlattabs = ['oolite',
'yttric',
'quasidegenerate',
'yttric',
'quasidegenerate',
'urea',
'metal',
'yttric',
'opalescent',
'quasidegenerate',
'yttric',
'yttric',
'yttric',
'urea',
'quasidegenerate',
'opalescent',
'urea',
'yttric',
'urea',
'chondrite',
'urea',
'quasidegenerate',
'opalescent',
'yttric',
'urea',
'quasidegenerate',
'opalescent',
'urea',
'quasidegenerate',
'opalescent',
'yttric',
'yttric',
'rainbow',
'shattered',
'sapphire',
'quasidegenerate',
'opalescent',
'redux',
'yttric',
'sapphire',
'chlorine',
'opalescent',
'chlorine',
'yttric',
'quasidegenerate',
'urea',
'opalescent',
'sapphire',
'quasidegenerate',
'urea',
'gas',
'gas',
'gas',
'gas',
'gas',
'gas',
'gas',
'gas',
'gas']
colorcodes = ['blu', 'cya', 'grn', 'gry', 'ora', 'pur', 'red', 'vio', 'yel']
# androsyn -> androsynth
# blackurq -> kohrah
# human -> earthling
# slylandr -> slylandro
# thradd -> thraddash
# zoqfot -> zoqfotpik
shiptypes = ['arilou',
'chmmr',
'earthling',
'orz',
'pkunk',
'shofixti',
'spathi',
'supox',
'thraddash',
'utwig',
'vux',
'yehat',
'melnorme',
'druuge',
'ilwrath',
'mycon',
'slylandro',
'umgah',
'urquan',
'zoqfotpik',
'syreen',
'kohrah',
'androsynth',
'chenjesu',
'mmrnmhrm']
#blackur -> kohrah
#comandr -> commander
#melnorm -> melnorme
#shofixt -> shofixti
#slyland -> slylandro
#starbas -> starbase
#talkpet -> talkingpet
#thradd -> thraddash
#zoqfot -> zoqfotpik
convtypes = ['arilou',
'chmmr',
'commander',
'orz',
'pkunk',
'shofixti',
'spathi',
'supox',
'thraddash',
'utwig',
'vux',
'yehat',
'melnorme',
'druuge',
'ilwrath',
'mycon',
'slylandro',
'umgah',
'urquan',
'zoqfotpik',
'syreen',
'kohrah',
'talkingpet',
'slyhome']
def write_planet_gfx():
vals = scan.collect_data()
planetanibase = vals.index([x for x in vals if x[0] == 'PLANET00_BIG_MASK_PMAP_ANIM'][0])
(pkg, inst, typ) = scan.res_decode_str(vals[planetanibase][1])
resmap = []
for planettype in planettypes:
for size in ['large', 'medium', 'small']:
print "%3d %3d %3d planet.%s.%s" % (pkg, inst, typ, planettype, size)
resmap.append(("planet.%s.%s" % (planettype, size), vals[planetanibase][3]))
planetanibase += 1
inst += 1
pkg += 1
print
print "---"
print
for (key, val) in resmap:
print "%s = GFXRES:%s" % (key, val)
def write_planet_str():
vals = scan.collect_data()
planetctbase = [x for x in vals if x[0] == 'OOLITE_COLOR_TAB'][0]
(basepkg, ctinst, typ) = scan.res_decode_str(planetctbase[1])
xltinst = ctinst + 1
reslist = []
deflist = []
rmplist = []
pkg = basepkg
for (planettype, xltindex) in zip(planettypes, xlattabs):
ctres = "planet.%s.colortable" % planettype
xltres = "planet.%s.translatetable" % planettype
defname = planettype
if planettype in headersymbols:
defname = headersymbols[defname]
defname = defname.upper()
ctdef = "%s_COLOR_TAB" % defname
xltdef = "%s_XLAT_TAB" % defname
if xltindex in headersymbols:
oldxltdef = "%s_XLAT_TAB" % headersymbols[xltindex].upper()
else:
oldxltdef = "%s_XLAT_TAB" % xltindex.upper()
ctmatch = [x for x in vals if x[0] == ctdef]
xltmatch = [x for x in vals if x[0] == oldxltdef]
if len(ctmatch) != 1:
raise ValueError, "Couldn't find unique %s" % ctdef
if len(xltmatch) != 1:
raise ValueError, "Couldn't find unique %s" % oldxltdef
ctfile = ctmatch[0][3]
xltfile = xltmatch[0][3]
reslist.append("%3d %3d %3d %s" % (pkg, ctinst, typ, ctres))
reslist.append("%3d %3d %3d %s" % (pkg, xltinst, typ, xltres))
deflist.append("#define %s %s" % (ctdef, scan.res_encode_str(pkg, ctinst, typ)))
deflist.append("#define %s %s" % (xltdef, scan.res_encode_str(pkg, xltinst, typ)))
rmplist.append("%s = STRTAB:%s" % (ctres, ctfile))
rmplist.append("%s = STRTAB:%s" % (xltres, xltfile))
pkg += 1
for l in reslist:
print l
print
print "---"
print
for l in deflist:
print l
print
print "---"
print
for l in rmplist:
print l
if __name__ == '__main__':
write_planet_str()