diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-05-20 09:37:43 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-05-20 09:37:43 -0500 |
commit | a27a7f2892e5b24f4446d46c892b7d38ff3f6970 (patch) | |
tree | 0ff8536706ba78b1b30efab1304a39da6dda0238 /extras/crystal.py | |
parent | 2c73f020a66e36bda80ff61ea24285527e67625c (diff) |
reuse pre-existing/pre-inserted MapBlockData objects when possible
Diffstat (limited to 'extras/crystal.py')
-rw-r--r-- | extras/crystal.py | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/extras/crystal.py b/extras/crystal.py index a55c50a4a..4ae1f0ec6 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -4743,14 +4743,16 @@ class SecondMapHeader: self.height = DecimalParam(address=address+1) self.width = DecimalParam(address=address+2) - #TODO: process blockdata ? #bank appears first ###self.blockdata_address = PointerLabelBeforeBank(address+3) self.blockdata_address = calculate_pointer_from_bytes_at(address+3, bank=True) - self.blockdata = MapBlockData(self.blockdata_address, map_group=self.map_group, map_id=self.map_id, debug=self.debug, width=self.width, height=self.height) + xyz = script_parse_table[self.blockdata_address] + if xyz == None: + self.blockdata = MapBlockData(self.blockdata_address, map_group=self.map_group, map_id=self.map_id, debug=self.debug, width=self.width, height=self.height) + else: + self.blockdata = xyz #bank appears first - #TODO: process MapScriptHeader ###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) |