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.
54 lines
1.5 KiB
Python
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
|