mirror of
https://github.com/freedoom/freedoom.git
synced 2025-09-01 13:25:46 -04:00
54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
#!/usr/bin/python
|
|
from doom import Patch, Texture
|
|
|
|
import sys,re
|
|
|
|
if len(sys.argv) != 2:
|
|
sys.stderr.write("usage: sw1_sw2.py <infile>\n")
|
|
sys.exit()
|
|
|
|
infile = sys.argv[1]
|
|
|
|
# TODO: a generalized form of this para should probably be moved into the
|
|
# Texture class
|
|
texture1 = file(infile, "r").read()
|
|
textures = {}
|
|
current = None
|
|
for line in texture1.split("\n"):
|
|
if len(line) == 0 or line[0] == ";" or line[0] == "#":
|
|
continue
|
|
elif line[0] == "*" and current:
|
|
junk,name,y,x= line.split()
|
|
current.patches.append(Patch(name,int(x),int(y)))
|
|
else:
|
|
line = line.split()
|
|
current = Texture(line[0],line[1],line[2])
|
|
textures[line[0]] = current
|
|
|
|
oldtex = file("../../textures/combined.txt", "r").read()
|
|
patches = []
|
|
texline = ''
|
|
for line in oldtex.split("\n"):
|
|
# start of a patch line
|
|
if len(line) > 0 and line[0] == "*":
|
|
patches.append(line)
|
|
else:
|
|
# end of a texture definition and we had just one patch
|
|
if 1 == len(patches):
|
|
print patches[0]
|
|
patches = []
|
|
texline = ''
|
|
# end of a texture definition,look up the patches
|
|
elif texline != '':
|
|
bits = texline.split()
|
|
if bits[0] in textures:
|
|
texture = textures[bits[0]]
|
|
print '\n'.join(map(str,texture.patches))
|
|
texline = ''
|
|
else:
|
|
sys.stderr.write("uh oh, no idea of patches for %s"%bits[0])
|
|
|
|
# start of a texture definition
|
|
if re.match(r'^[A-Z]', line):
|
|
texline = line
|
|
print line
|