Merge pull request #89 from yenatch/master

Fix a modulo by 0 on a default argument to condense_tiles_to_map.
This commit is contained in:
Bryan Bishop
2015-05-06 19:09:48 -05:00

View File

@@ -5,7 +5,6 @@ import sys
import png
from math import sqrt, floor, ceil
import argparse
import yaml
import operator
import configuration
@@ -141,8 +140,9 @@ def condense_tiles_to_map(image, pic=0):
new_tiles += [tile]
# Match the first frame where possible.
if tile == new_tiles[i % pic]:
tilemap += [i % pic]
this_i = i % pic if pic else i
if tile == new_tiles[this_i]:
tilemap += [this_i]
else:
tilemap += [new_tiles.index(tile)]
@@ -686,50 +686,14 @@ def png_to_rgb(palette):
return output
def read_yaml_arguments(filename, yaml_filename = os.path.join(config.path, 'gfx.yaml'), path_arguments = ['pal_file']):
parsed_arguments = {}
# Read arguments from gfx.yaml if it exists.
if os.path.exists(yaml_filename):
yargs = yaml.load(open(yaml_filename))
dirs = os.path.splitext(filename)[0].split('/')
current_path = os.path.dirname(filename)
path = []
while yargs:
for key, value in yargs.items():
# Follow directories to the bottom while picking up keys.
# Try not to mistake other files for keys.
parsed_path = os.path.join( * (path + [key]) )
for guessed_path in map(parsed_path.__add__, ['', '.png']):
if os.path.exists(guessed_path) or '.' in key:
if guessed_path != filename:
continue
if key in path_arguments:
value = os.path.join(current_path, value)
parsed_arguments[key] = value
if not dirs:
break
yargs = yargs.get(dirs[0], {})
path.append(dirs.pop(0))
return parsed_arguments
def read_filename_arguments(filename, yaml_filename = os.path.join(config.path, 'gfx.yaml'), path_arguments = ['pal_file']):
def read_filename_arguments(filename):
"""
Infer graphics conversion arguments given a filename.
If it exists, ./gfx.yaml is traversed for arguments.
Then additional arguments within the filename (separated with ".") are grabbed.
Arguments are separated with '.'.
"""
parsed_arguments = {}
parsed_arguments.update(read_yaml_arguments(
filename,
yaml_filename = yaml_filename,
path_arguments = path_arguments
))
int_arguments = {
'w': 'width',
'h': 'height',