64 lines
1.9 KiB
Python
64 lines
1.9 KiB
Python
import sys
|
|
|
|
from pathlib import Path
|
|
|
|
from parse import map # constants
|
|
# headers
|
|
# blocks
|
|
# objects
|
|
# hidden_objects
|
|
|
|
from parse import tileset # constants
|
|
# headers
|
|
# gfx
|
|
# collision_tile_ids
|
|
|
|
from parse import spritesheet # constants
|
|
# spritesheets
|
|
# gfx
|
|
|
|
|
|
from parse import text
|
|
from parse import scripts
|
|
|
|
def memoize(f):
|
|
value = None
|
|
def inner():
|
|
nonlocal value
|
|
if value is None:
|
|
value = f()
|
|
return value
|
|
return inner
|
|
|
|
prefix = Path(sys.argv[1])
|
|
|
|
# map
|
|
map_constants_list = memoize(lambda: map.constants.parse(prefix))
|
|
map_headers = memoize(lambda: map.headers.parse_all(prefix))
|
|
map_blocks_list = memoize(lambda: map.blocks.parse(prefix))
|
|
map_objects_list = memoize(lambda: map.objects.parse_all(prefix))
|
|
map_hidden_objects_list = memoize(lambda: map.hidden_objects.parse(prefix))
|
|
|
|
# tileset
|
|
tileset_constants_list = memoize(lambda: tileset.constants.parse(prefix))
|
|
tileset_headers_list = memoize(lambda: tileset.headers.parse(prefix))
|
|
tileset_gfx_list = memoize(lambda: tileset.gfx.parse(prefix))
|
|
tileset_collision_tile_ids_list = memoize(lambda: tileset.collision_tile_ids.parse(prefix))
|
|
|
|
|
|
|
|
# sprites
|
|
spritesheet_gfx_list = memoize(lambda: spritesheet.gfx.parse(prefix))
|
|
spritesheet_spritesheets_list = memoize(lambda: spritesheet.spritesheets.parse(prefix))
|
|
spritesheet_constants_list = memoize(lambda: spritesheet.constants.parse(prefix))
|
|
|
|
# text
|
|
scripts_list = memoize(lambda: scripts.parse_all(prefix))
|
|
text_list = memoize(lambda: text.parse_all(prefix))
|
|
|
|
# need:
|
|
#data/tilesets/pair_collision_tile_ids.asm
|
|
#cut_tree_blocks.asm
|
|
|
|
# home/vcopy: animations
|