mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
Merge pull request #129 from yenatch/master
preprocessor print macro + fix make lzs target
This commit is contained in:
commit
ce187ca03f
@ -1440,6 +1440,7 @@ def mass_to_colored_png(debug=False):
|
||||
to_png(os.path.join(root, name), None, os.path.join(root, os.path.splitext(name)[0]+'.pal'))
|
||||
else:
|
||||
to_png(os.path.join(root, name))
|
||||
os.touch(os.path.join(root, name))
|
||||
|
||||
# only monster and trainer pics for now
|
||||
for root, dirs, files in os.walk('../gfx/pics/'):
|
||||
@ -1450,11 +1451,14 @@ def mass_to_colored_png(debug=False):
|
||||
to_png(os.path.join(root, name), None, os.path.join(root, 'normal.pal'))
|
||||
else:
|
||||
to_png(os.path.join(root, name))
|
||||
os.touch(os.path.join(root, name))
|
||||
|
||||
for root, dirs, files in os.walk('../gfx/trainers/'):
|
||||
for name in files:
|
||||
if debug: print os.path.splitext(name), os.path.join(root, name)
|
||||
if os.path.splitext(name)[1] == '.2bpp':
|
||||
to_png(os.path.join(root, name), None, os.path.join(root, name[:-5]+'.pal'))
|
||||
os.touch(os.path.join(root, name))
|
||||
|
||||
|
||||
def mass_decompress(debug=False):
|
||||
@ -1479,6 +1483,7 @@ def mass_decompress(debug=False):
|
||||
else:
|
||||
with open(os.path.join(root, name), 'rb') as lz: de = Decompressed(lz.read())
|
||||
to_file(os.path.join(root, os.path.splitext(name)[0]+'.2bpp'), de.output)
|
||||
os.touch(os.path.join(root, name))
|
||||
|
||||
def append_terminator_to_lzs(directory):
|
||||
# fix lzs that were extracted with a missing terminator
|
||||
|
@ -352,6 +352,11 @@ def quote_translator(asm):
|
||||
sys.stdout.write(asm)
|
||||
return
|
||||
|
||||
print_macro = False
|
||||
if asms[0].strip() == 'print':
|
||||
asms[0] = asms[0].replace('print','db 0,')
|
||||
print_macro = True
|
||||
|
||||
output = ""
|
||||
even = False
|
||||
i = 0
|
||||
@ -359,6 +364,7 @@ def quote_translator(asm):
|
||||
i = i + 1
|
||||
|
||||
if even:
|
||||
characters = []
|
||||
# token is a string to convert to byte values
|
||||
while len(token):
|
||||
# read a single UTF-8 codepoint
|
||||
@ -393,10 +399,35 @@ def quote_translator(asm):
|
||||
char = char + token[0]
|
||||
token = token[1:]
|
||||
|
||||
output += ("${0:02X}".format(chars[char]))
|
||||
characters += [char]
|
||||
|
||||
if print_macro:
|
||||
line = 0
|
||||
while len(characters):
|
||||
last_char = 1
|
||||
if len(characters) > 18 and characters[-1] != '@':
|
||||
for i, char in enumerate(characters):
|
||||
last_char = i + 1
|
||||
if ' ' not in characters[i+1:18]: break
|
||||
output += ", ".join("${0:02X}".format(chars[char]) for char in characters[:last_char-1])
|
||||
if characters[last_char-1] != " ":
|
||||
output += ", ${0:02X}".format(characters[last_char-1])
|
||||
if not line & 1:
|
||||
line_ending = 0x4f
|
||||
else:
|
||||
line_ending = 0x51
|
||||
output += ", ${0:02X}".format(line_ending)
|
||||
line += 1
|
||||
else:
|
||||
output += ", ".join(["${0:02X}".format(chars[char]) for char in characters[:last_char]])
|
||||
characters = characters[last_char:]
|
||||
if len(characters): output += ", "
|
||||
# end text
|
||||
line_ending = 0x57
|
||||
output += ", ${0:02X}".format(line_ending)
|
||||
|
||||
output += ", ".join(["${0:02X}".format(chars[char]) for char in characters])
|
||||
|
||||
if len(token):
|
||||
output += (", ")
|
||||
# if not even
|
||||
else:
|
||||
output += (token)
|
||||
|
Loading…
x
Reference in New Issue
Block a user