mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
60 lines
1.3 KiB
Python
60 lines
1.3 KiB
Python
#!/usr/bin/python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
|
|
import extras.pokemontools.config as conf
|
|
import extras.pokemontools.preprocessor as preprocessor
|
|
|
|
from extras.pokemontools.crystal import (
|
|
command_classes,
|
|
Warp,
|
|
XYTrigger,
|
|
Signpost,
|
|
PeopleEvent,
|
|
DataByteWordMacro,
|
|
text_command_classes,
|
|
movement_command_classes,
|
|
music_classes,
|
|
effect_classes,
|
|
)
|
|
|
|
def load_pokecrystal_macros():
|
|
"""
|
|
Construct a list of macros that are needed for pokecrystal preprocessing.
|
|
"""
|
|
ourmacros = []
|
|
|
|
even_more_macros = [
|
|
Warp,
|
|
XYTrigger,
|
|
Signpost,
|
|
PeopleEvent,
|
|
DataByteWordMacro,
|
|
]
|
|
|
|
ourmacros += command_classes
|
|
ourmacros += even_more_macros
|
|
ourmacros += [each[1] for each in text_command_classes]
|
|
ourmacros += movement_command_classes
|
|
ourmacros += music_classes
|
|
ourmacros += effect_classes
|
|
|
|
return ourmacros
|
|
|
|
def preprocess(config, macros, lines=None):
|
|
"""
|
|
Entry point for the preprocessor.
|
|
"""
|
|
processor = preprocessor.Preprocessor(config, macros)
|
|
return processor.preprocess(lines=lines)
|
|
|
|
def main():
|
|
config = conf.Config()
|
|
macros = load_pokecrystal_macros()
|
|
return preprocess(config, macros)
|
|
|
|
# only run against stdin when not included as a module
|
|
if __name__ == "__main__":
|
|
main()
|