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
|
||||
5: {"name": "pkmn_nickname", "class": MultiByteParam}, #XXX TextLabelParam ?
|
||||
}
|
||||
allowed_lengths = [4, 6]
|
||||
|
||||
def parse(self):
|
||||
self.params = {}
|
||||
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: " + \
|
||||
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: " + \
|
||||
original_line
|
||||
|
||||
# --- end of ridiculously long sanity check ---
|
||||
|
||||
index = 0
|
||||
while index < len(macro.param_types):
|
||||
while index < len(params):
|
||||
param_type = macro.param_types[index]
|
||||
description = param_type["name"]
|
||||
param_klass = param_type["class"]
|
||||
|
Loading…
x
Reference in New Issue
Block a user