summaryrefslogtreecommitdiff
path: root/extras/connection_helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'extras/connection_helper.py')
m---------extras0
-rw-r--r--extras/connection_helper.py104
2 files changed, 0 insertions, 104 deletions
diff --git a/extras b/extras
new file mode 160000
+Subproject 7aa016fb528bcc8dcb30c6a887957851623eccc
diff --git a/extras/connection_helper.py b/extras/connection_helper.py
deleted file mode 100644
index c15b3582..00000000
--- a/extras/connection_helper.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#author: Bryan Bishop <kanzure@gmail.com>
-#date: 2012-01-15
-#help with connection math
-import extract_maps
-from pretty_map_headers import map_constants, map_name_cleaner, offset_to_pointer
-
-def print_connections(map_id, in_connection_id=None, do_output=False):
- map1 = extract_maps.map_headers[map_id]
- map1_name = map1["name"]
- connections = map1["connections"]
- output = ""
-
- if in_connection_id != None:
- connections2 = {}
- connections2[in_connection_id] = connections[in_connection_id]
- connections = connections2
-
- for connection_id in connections:
- connection = connections[connection_id]
- direction = connection["direction"]
- connected_pointer = int(connection["connected_map_tile_pointer"], 16)
- current_pointer = int(connection["current_map_tile_pointer"], 16)
- map2_id = connection["map_id"]
- map2 = extract_maps.map_headers[map2_id]
- map2_name = map2["name"]
- map2_cname = map_name_cleaner(map2["name"], None)[:-2]
- map2_bank = int(map2["bank"], 16)
- map2_blocks_pointer = offset_to_pointer(int(map2["map_pointer"], 16))
- map2_height = int(map2["y"], 16)
- map2_width = int(map2["x"], 16)
-
- output += map1_name + " (id=" + str(map_id) + ") " + direction + " to " + map2_name + "\n"
- output += "map2 blocks pointer: " + hex(map2_blocks_pointer) + "\n"
- output += "map2 height: " + str(map2_height) + "\n"
- output += "map2 width: " + str(map2_width) + "\n"
- output += "map1 connection pointer: " + hex(connected_pointer) + "\n"
-
- shift = 0
- #not sure about the calculated shift for NORTH or SOUTH
- if direction == "NORTH":
- calculated = map2_blocks_pointer + (map2_height - 3) * map2_width
- result = connected_pointer - calculated
- if result != 0:
- shift = result #seems to always be 2?
- calculated = map2_blocks_pointer + (map2_height - 3) * map2_width + shift
- output += "shift: " + str(shift) + "\n"
- formula = map2_cname + "Blocks + (" + map2_cname + "Height - 3) * " + map2_cname + "Width + " + str(shift)
- else:
- formula = map2_cname + "Blocks + (" + map2_cname + "Height - 3) * " + map2_cname + "Width"
- elif direction == "SOUTH":
- calculated = map2_blocks_pointer
- result = connected_pointer - calculated
- formula = map2_cname + "Blocks"
- if result != 0:
- shift = result
- calculated = map2_blocks_pointer + shift
- output += "shift: " + str(shift) + "\n"
- formula += " + " + str(shift)
- elif direction == "WEST":
- calculated = map2_blocks_pointer - 3 + (map2_width)
- result = connected_pointer - calculated
- formula = map2_cname + "Blocks - 3 + (" + map2_cname + "Width)"
- if result != 0:
- shift = result / map2_width
- shift += 1
- calculated = map2_blocks_pointer - 3 + (map2_width * shift)
- output += "shift: " + str(shift) + "\n"
- formula = map2_cname + "Blocks - 3 + (" + map2_cname + "Width * " + str(shift) + ")"
- elif direction == "EAST":
- calculated = map2_blocks_pointer + (map2_width)
- result = connected_pointer - calculated
- output += ".. result is: " + str(result) + "\n"
- formula = map2_cname + "Blocks + (" + map2_cname + "Width)"
- if result != 0:
- shift = result / map2_width
- shift += 1
- calculated = map2_blocks_pointer + (map2_width * shift)
- output += "shift: " + str(shift) + "\n"
- formula = map2_cname + "Blocks" + " + (" + map2_cname + "Width * " + str(shift) + ")"
-
- output += "formula: " + formula + "\n"
-
- result = connected_pointer - calculated
- output += "result: " + str(result) + "\n"
-
- output += "\n\n"
-
- if in_connection_id != None:
- return formula
- if do_output == True:
- return output
-
-if __name__ == "__main__":
- extract_maps.load_rom()
- extract_maps.load_map_pointers()
- extract_maps.read_all_map_headers()
-
- #trouble:
- #print_connections(13)
- #print_connections(15)
-
- for map_id in extract_maps.map_headers.keys():
- if map_id not in extract_maps.bad_maps:
- print print_connections(map_id, do_output=True)