diff options
author | Bryan Bishop <kanzure@gmail.com> | 2012-05-20 03:02:35 -0500 |
---|---|---|
committer | Bryan Bishop <kanzure@gmail.com> | 2012-05-20 03:02:35 -0500 |
commit | 1b60103454ffd345cdbc0c3a25dc9478fc4be482 (patch) | |
tree | 3758fe0841a3eb8928523110b23ff88d37fdeb00 /crystal.py | |
parent | 264a01671c69f3325bcdc4c4124edc55697a4052 (diff) |
update TrainerGroupParam and TrainerIdParam to use better constant/number rules
original-commit-id: 1fb70a4b4f25b3b2824392d0aeecae86d7a5d083
Diffstat (limited to 'crystal.py')
-rw-r--r-- | crystal.py | 31 |
1 files changed, 24 insertions, 7 deletions
@@ -1693,15 +1693,32 @@ class PointerParamToItemAndLetter(MultiByteParam): class TrainerIdParam(SingleByteParam): - #raise NotImplementedError, bryan_message - pass - #def to_asm(self): - # pass + def to_asm(self): + # find the group id by first finding the param type id + i = 0 + foundit = None + for (k, v) in self.parent.param_types.items(): + if v["class"] == TrainerGroupParam: + foundit = i + break + i += 1 -class TrainerGroupParam(SingleByteParam): - #raise NotImplementedError, bryan_message - pass + if foundit == None: + raise Exception, "didn't find a TrainerGroupParam in this command??" + # now get the trainer group id + trainer_group_id = self.parent.params[foundit].byte + + # check the rule to see whether to use an id or not + if "uses_numeric_trainer_ids" in trainer_group_names[trainer_group_id].keys(): + return str(self.byte) + else: + return trainer_group_names[trainer_group_id]["trainer_names"][self.byte-1] + +class TrainerGroupParam(SingleByteParam): + def to_asm(self): + trainer_group_id = self.byte + return trainer_group_names[trainer_group_id]["constant"] class MenuDataPointerParam(PointerLabelParam): #read menu data at the target site |