91 lines
3.1 KiB
Python
91 lines
3.1 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 pokemon # constants
|
|
# base_stats
|
|
# evos_moves
|
|
# names
|
|
# dex_entries
|
|
# dex_order
|
|
# dex_text
|
|
|
|
from parse import move # constants
|
|
# moves
|
|
# names
|
|
|
|
from parse import text
|
|
from parse import scripts
|
|
from parse import pic
|
|
|
|
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))
|
|
# need:
|
|
#data/tilesets/pair_collision_tile_ids.asm
|
|
#cut_tree_blocks.asm
|
|
|
|
# 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))
|
|
|
|
# home/vcopy: animations
|
|
|
|
# pokemon
|
|
pokemon_base_stats_list = memoize(lambda: pokemon.base_stats.parse_all(prefix))
|
|
pokemon_constants_list = memoize(lambda: pokemon.constants.parse(prefix))
|
|
pokemon_dex_constants_list= memoize(lambda: pokemon.dex_constants.parse(prefix))
|
|
pokemon_dex_entries_list = memoize(lambda: pokemon.dex_entries.parse(prefix))
|
|
pokemon_dex_order_list = memoize(lambda: pokemon.dex_order.parse(prefix))
|
|
pokemon_dex_text_list = memoize(lambda: pokemon.dex_text.parse(prefix))
|
|
pokemon_evos_moves_list = memoize(lambda: pokemon.evos_moves.parse(prefix))
|
|
pokemon_names_list = memoize(lambda: pokemon.names.parse(prefix))
|
|
|
|
# move
|
|
move_constants_list = memoize(lambda: move.constants.parse(prefix))
|
|
move_moves_list = memoize(lambda: move.moves.parse(prefix))
|
|
move_names_list = memoize(lambda: move.names.parse(prefix))
|
|
|
|
# pic
|
|
pic_list = memoize(lambda: pic.parse(prefix))
|