shithub: pokecrystal

Download patch

ref: 26e0ee9545f40522e4ff3f5a4c54437618d14f57
parent: 2588ff6255542bcaf8f20a6cafa3e9943cd0d292
author: Bryan Bishop <kanzure@gmail.com>
date: Sat Apr 21 14:24:54 EDT 2012

TrainerFragments pointing to 0x26ef should be ignored

--- a/extras/crystal.py
+++ b/extras/crystal.py
@@ -2246,13 +2246,17 @@
     def __init__(self, *args, **kwargs):
         address = kwargs["address"]
         print "TrainerFragment address=" + hex(address)
-        if not is_valid_address(address) or address in [0x26ef]: return
-        Command.__init__(self, *args, **kwargs)
+        self.address = address
         self.last_address = self.address + self.size
+        if not is_valid_address(address) or address in [0x26ef]:
+            self.include_in_asm = False
+            return
         script_parse_table[self.address : self.last_address] = self
+        Command.__init__(self, *args, **kwargs)
     
     def get_dependencies(self):
         deps = []
+        if not is_valid_address(self.address): return deps
         deps.append(self.params[3])
         deps.extend(self.params[3].get_dependencies())
         deps.append(self.params[4])
@@ -2282,12 +2286,14 @@
 
 class TrainerFragmentParam(PointerLabelParam):
     """used by PeopleEvent to point to trainer data"""
-
     def parse(self):
         address = calculate_pointer_from_bytes_at(self.address, bank=self.bank)
         self.calculated_address = address
-        trainerfrag = TrainerFragment(address=address, map_group=self.map_group, map_id=self.map_id, debug=self.debug)
-        self.dependencies = [trainerfrag]
+        if address == 0x26ef:
+            self.dependencies = []
+        else:
+            trainerfrag = TrainerFragment(address=address, map_group=self.map_group, map_id=self.map_id, debug=self.debug)
+            self.dependencies = [trainerfrag]
         PointerLabelParam.parse(self)
 
     def get_dependencies(self):
--