pokemon/tools/parse/parse.py
Zack Buhman a56def6074 add font and text data
The original font is a bit of a mess, and includes many duplicate
characters.

I decided to reorganize the characters in a new set of glyphs, in
derivced/font.png.

This also includes very basic parsing for text data.
2023-07-30 03:09:20 +00:00

54 lines
1.5 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
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