pokemon/tools/parse/parse.py
Zack Buhman e4ff1b4c5a generate/text: added
Of the "trivial" texts that the current parser can handle, these are
now being inserted in obj_events.
2023-07-30 08:52:46 +00:00

59 lines
1.7 KiB
Python

import sys
from pathlib import Path
from parse import map_header
from parse import maps_blocks
from parse import tileset_constants
from parse import tileset_headers
from parse import gfx_tilesets
from parse import collision_tile_ids
from parse import map_objects
from parse import hidden_objects
from parse import map_constants
from parse import gfx_sprites
from parse import spritesheets
from parse import sprite_constants
from parse import text
from parse import scripts
prefix = Path(sys.argv[1])
def memoize(f):
value = None
def inner():
nonlocal value
if value is None:
value = f()
return value
return inner
map_constants_list = memoize(lambda: map_constants.parse(prefix))
map_headers = memoize(lambda: map_header.parse_all(prefix))
maps_blocks_list = memoize(lambda: maps_blocks.parse(prefix))
map_objects_list = memoize(lambda: map_objects.parse_all(prefix))
tileset_constants_list = memoize(lambda: tileset_constants.parse(prefix))
tileset_headers_list = memoize(lambda: tileset_headers.parse(prefix))
gfx_tilesets_list = memoize(lambda: gfx_tilesets.parse(prefix))
collision_tile_ids_list = memoize(lambda: collision_tile_ids.parse(prefix))
hidden_objects_list = memoize(lambda: hidden_objects.parse(prefix))
# need:
#data/tilesets/pair_collision_tile_ids.asm
#cut_tree_blocks.asm
# home/vcopy: animations
# sprites
gfx_sprites_list = memoize(lambda: gfx_sprites.parse(prefix))
spritesheets_list = memoize(lambda: spritesheets.parse(prefix))
sprite_constants_list = memoize(lambda: sprite_constants.parse(prefix))
# text
scripts_list = memoize(lambda: scripts.parse_all(prefix))
text_list = memoize(lambda: text.parse_all(prefix))