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))