diff options
Diffstat (limited to 'extras/replace_dimensions.py')
-rw-r--r-- | extras/replace_dimensions.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/extras/replace_dimensions.py b/extras/replace_dimensions.py new file mode 100644 index 00000000..86645e83 --- /dev/null +++ b/extras/replace_dimensions.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +#author: Bryan Bishop <kanzure@gmail.com> +#date: 2012-01-15 +#replace dimensions with constants +import sys #for non-newline-terminated output :/ +from add_map_labels_to_map_headers import find_with_start_of_line +from pretty_map_headers import map_name_cleaner, spacing + +asm = None +asm_lines = None +def load_asm(): + global asm, asm_lines + asm = open("../common.asm", "r").read() + asm_lines = asm.split("\n") + +def find_line_starting_with(value): + global asm_lines + id = 0 + for line in asm_lines: + if len(line) < len(value): continue + if line[:len(value)] == value: + return asm_lines.index(line) + id += 1 + return False #not found + +def replace_dimensions(): + global asm_lines + for map_id in extract_maps.map_headers.keys(): + if map_id in extract_maps.bad_maps: continue #skip + map1 = extract_maps.map_headers[map_id] + label_name = map_name_cleaner(map1["name"], None) + clean_name = label_name[:-2] + + line_number = find_line_starting_with(label_name) + if line_number == False: continue #skip, not found + + if "dimensions" in asm_lines[line_number + 2] and "$" in asm_lines[line_number + 2] and not "\t" in asm_lines[line_number+2]: + asm_lines[line_number + 2] = spacing + "db " + clean_name + "Height, " + clean_name + "Width ; dimensions (y, x)" + +if __name__ == "__main__": + import extract_maps + extract_maps.load_rom() + extract_maps.load_map_pointers() + extract_maps.read_all_map_headers() + + load_asm() + replace_dimensions() + sys.stdout.write("\n".join(asm_lines)) + |