diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-04-15 18:24:56 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-04-15 18:24:56 -0500 |
commit | 27c5e4c56f815bd17edab38f35145f8d6ba61019 (patch) | |
tree | 31eee26b986549a4c52f99de3e31dfacfb36e882 | |
parent | 26e1e46945103583bd7a1996199b589686f73ee7 (diff) |
keep track of these headers in globals
original-commit-id: bd2a23379ee4b7a69d43609f033cdb581080c385
-rw-r--r-- | crystal.py | 26 |
1 files changed, 21 insertions, 5 deletions
@@ -5522,6 +5522,7 @@ class MapHeader: self.second_map_header_address = calculate_pointer(ord(rom[address+3])+(ord(rom[address+4])<<8), self.bank.byte) #TODO: is the bank really supposed to be 0x25 all the time ?? self.second_map_header = SecondMapHeader(self.second_map_header_address, map_group=self.map_group, map_id=self.map_id, debug=self.debug) + all_second_map_headers.append(self.second_map_header) self.location_on_world_map = HexByte(address=address+5) self.music = HexByte(address=address+6) self.time_of_day = DecimalParam(address=address+7) @@ -5534,11 +5535,13 @@ class MapHeader: output += "\n\n; location on world map, music, time of day, fishing group\n" output += "db " + ", ".join([self.location_on_world_map.to_asm(), self.muisc.to_asm(), self.time_of_day.to_asm(), self.fishing_group.to_asm()]) return output - + +all_map_headers = [] def parse_map_header_at(address, map_group=None, map_id=None, debug=True): """parses an arbitrary map header at some address""" print "parsing a map header at: " + hex(address) map_header = MapHeader(address, map_group=map_group, map_id=map_id, debug=debug) + all_map_headers.append(map_header) return map_header def old_parse_map_header_at(address, map_group=None, map_id=None, debug=True): @@ -5609,10 +5612,12 @@ class SecondMapHeader: ###self.script_address = PointerLabelBeforeBank(address+6) self.script_header_address = calculate_pointer_from_bytes_at(address+6, bank=True) self.script_header = MapScriptHeader(self.script_header_address, map_group=self.map_group, map_id=self.map_id, debug=self.debug) - + all_map_script_headers.append(self.script_header) + self.event_header_address = calculate_pointer_from_bytes_at(address+9, bank=ord(rom[address+6])) self.event_header = MapEventHeader(self.event_header_address) self.connections = DecimalParam(address=address+11) + all_map_event_headers.append(self.event_header) #border_block = bytes[0] #height = bytes[1] @@ -5657,9 +5662,13 @@ class SecondMapHeader: output += "; connections\n" output += "db " + self.connections.to_asm() return output + +all_second_map_headers = [] def parse_second_map_header_at(address, map_group=None, map_id=None, debug=True): """each map has a second map header""" - return SecondMapHeader(address, map_group=map_group, map_id=map_id, debug=debug) + smh = SecondMapHeader(address, map_group=map_group, map_id=map_id, debug=debug) + all_second_map_headers.append(smh) + return smh def old_parse_second_map_header_at(address, map_group=None, map_id=None, debug=True): """each map has a second map header""" @@ -5818,9 +5827,12 @@ class MapEventHeader: return output +all_map_event_headers = [] def parse_map_event_header_at(address, map_group=None, map_id=None, debug=True, bank=None): """parse crystal map event header byte structure thing""" - return MapEventHeader(address, map_group=map_group, map_id=map_id, debug=debug, bank=bank) + ev = MapEventHeader(address, map_group=map_group, map_id=map_id, debug=debug, bank=bank) + all_map_event_headers.append(ev) + return ev def old_parse_map_event_header_at(address, map_group=None, map_id=None, debug=True): """parse crystal map event header byte structure thing""" @@ -5970,8 +5982,12 @@ class MapScriptHeader: #not so sure about this next one output += "\n".join(["dbw "+str(p["hook"])+", "+p["callback"].to_asm() for p in self.callbacks]) return output + +all_map_script_headers = [] def parse_map_script_header_at(address, map_group=None, map_id=None, debug=True): - return MapScriptHeader(address, map_group=map_group, map_id=map_id, debug=debug) + evv = MapScriptHeader(address, map_group=map_group, map_id=map_id, debug=debug) + all_map_script_headers.append(evv) + return evv def old_parse_map_script_header_at(address, map_group=None, map_id=None, debug=True): print "starting to parse the map's script header.." |