diff --git a/extras/crystal.py b/extras/crystal.py index 8be7b495d..32c2f7d4d 100644 --- a/extras/crystal.py +++ b/extras/crystal.py @@ -2990,8 +2990,6 @@ music_commands_new = { music_command_enders = [0xEA, 0xEB, 0xEE, 0xFC, 0xFF,] # special case for 0xFD (if loopchannel.count = 0, break) - - def create_music_command_classes(debug=False): klasses = [GivePoke] for (byte, cmd) in music_commands_new.items(): @@ -3010,6 +3008,10 @@ def create_music_command_classes(debug=False): klass_name = cmd_name+"Command" klass = classobj(klass_name, (Command,), params) globals()[klass_name] = klass + if klass.macro_name == "notetype": + klass.allowed_lengths = [1, 2] + elif klass.macro_name in ["togglenoise", "sfxtogglenoise"]: + klass.allowed_lengths = [0, 1] klasses.append(klass) # later an individual klass will be instantiated to handle something return klasses diff --git a/preprocessor.py b/preprocessor.py index 5758db323..7c1decd37 100644 --- a/preprocessor.py +++ b/preprocessor.py @@ -490,12 +490,6 @@ def macro_translator(macro, token, line): else: allowed_lengths = [allowed_length] - if macro.macro_name == "notetype": - allowed_lengths = [1,2] - elif macro.macro_name == "togglenoise" \ - or macro.macro_name == "sfxtogglenoise": - allowed_lengths = [0,1] - assert len(params) in allowed_lengths, \ "mismatched number of parameters on this line: " + \ original_line @@ -589,4 +583,4 @@ def read_line(l): sys.stdout.write(comment) for l in sys.stdin: - read_line(l) \ No newline at end of file + read_line(l)