mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-01-23 09:16:20 -08:00
fix preprocessor/givepoke for variable-number-of-parameter macros
This commit is contained in:
parent
2d763b53a6
commit
079afeea46
@ -1871,6 +1871,8 @@ class GivePoke(Command):
|
|||||||
4: {"name": "trainer_name_pointer", "class": MultiByteParam}, #should probably use TextLabelParam
|
4: {"name": "trainer_name_pointer", "class": MultiByteParam}, #should probably use TextLabelParam
|
||||||
5: {"name": "pkmn_nickname", "class": MultiByteParam}, #XXX TextLabelParam ?
|
5: {"name": "pkmn_nickname", "class": MultiByteParam}, #XXX TextLabelParam ?
|
||||||
}
|
}
|
||||||
|
allowed_lengths = [4, 6]
|
||||||
|
|
||||||
def parse(self):
|
def parse(self):
|
||||||
self.params = {}
|
self.params = {}
|
||||||
byte = ord(rom[self.address])
|
byte = ord(rom[self.address])
|
||||||
|
@ -481,14 +481,20 @@ def macro_translator(macro, token, line):
|
|||||||
raise Exception, "dunno what to do with this non db/dw macro param: " + \
|
raise Exception, "dunno what to do with this non db/dw macro param: " + \
|
||||||
str(param_klass) + " in line: " + original_line
|
str(param_klass) + " in line: " + original_line
|
||||||
|
|
||||||
assert len(params) == allowed_length, \
|
# sometimes the allowed length can vary
|
||||||
|
if hasattr(macro, "allowed_lengths"):
|
||||||
|
allowed_lengths = macro.allowed_lengths + [allowed_length]
|
||||||
|
else:
|
||||||
|
allowed_lengths = [allowed_length]
|
||||||
|
|
||||||
|
assert len(params) in allowed_lengths, \
|
||||||
"mismatched number of parameters on this line: " + \
|
"mismatched number of parameters on this line: " + \
|
||||||
original_line
|
original_line
|
||||||
|
|
||||||
# --- end of ridiculously long sanity check ---
|
# --- end of ridiculously long sanity check ---
|
||||||
|
|
||||||
index = 0
|
index = 0
|
||||||
while index < len(macro.param_types):
|
while index < len(params):
|
||||||
param_type = macro.param_types[index]
|
param_type = macro.param_types[index]
|
||||||
description = param_type["name"]
|
description = param_type["name"]
|
||||||
param_klass = param_type["class"]
|
param_klass = param_type["class"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user