add block labels to map headers

.. and a tool for assisting with that.

hg-commit-id: f832fa6e62f9
This commit is contained in:
Bryan Bishop 2012-01-04 01:57:15 -06:00
parent 8ef51d4697
commit 27af4ea2ab
3 changed files with 211 additions and 169 deletions

View file

@ -0,0 +1,42 @@
#!/usr/bin/python
#author: Bryan Bishop <kanzure@gmail.com>
#date: 2011-01-04
#purpose: insert labels into map headers
import sys
asm = None
asm_lines = []
def load_asm():
global asm, asm_lines
asm = open("../pokered.asm", "r").read()
asm_lines = asm.split("\n")
def find_with_start_of_line(name):
global asm_lines
for line in asm_lines:
if len(line) > len(name) and ": " in line:
if line[:len(name)] == name: return True
return False
def process_lines():
global asm, asm_lines
for line in asm_lines:
if not "_h:" in line: continue #skip
index = asm_lines.index(line)
name = line.split("_h:")[0]
if "Blocks" in asm_lines[index+3]: continue #skip, already done
#if not (str(name + "Blocks:") in asm): continue #skip, no block label found
if not find_with_start_of_line(name + "Blocks:"): continue #skip
orig_line = asm_lines[index+3]
fixed_line = orig_line.split(",")
fixed_line[0] = " dw " + name + "Blocks"
fixed_line = ",".join(fixed_line)
asm_lines[index+3] = fixed_line
if __name__ == "__main__":
load_asm()
process_lines()
sys.stdout.write("\n".join(asm_lines))

View file

@ -123,11 +123,11 @@ def insert_all_labels():
if not ("cat" in mapmap["name"]) and "copy" in mapmap["name"].lower(): continue #skip this one
#bill's house breaks things?
if mapmap["name"] == "Bill's House": continue
#if mapmap["name"] == "Bill's House": continue
if mapmap["name"] == "Viridian Forest": continue
if mapmap["name"] == "Cerulean Mart": continue
#if mapmap["name"] == "Cerulean Mart": continue
if mapmap["name"] == "Virdian Forest Exit": continue
if "copy" in mapmap["name"].lower(): continue #skip this one too..
#if "copy" in mapmap["name"].lower(): continue #skip this one too..
if mapmap["map_pointer"] in used_map_pointers: continue #skip for sure

File diff suppressed because it is too large Load diff