From ff19b3f38bde084e695492b6b80c685329db455f Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Wed, 2 Aug 2023 01:49:25 +0000 Subject: [PATCH] generate: add moves --- tools/generate/__main__.py | 3 ++- tools/generate/files.py | 3 +++ tools/parse/move/moves.py | 10 +++++----- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/tools/generate/__main__.py b/tools/generate/__main__.py index 79d7322..0868132 100644 --- a/tools/generate/__main__.py +++ b/tools/generate/__main__.py @@ -9,8 +9,9 @@ def generate(base_path, target_path): path = base_path / filename if path != target_path: continue + buf = func().getvalue() with open(path, 'w') as f: - f.write(func().getvalue()) + f.write(buf) # sys.argv[1] is secretly used in parse base_path = Path(sys.argv[2]) diff --git a/tools/generate/files.py b/tools/generate/files.py index 54bf1a3..acc4ea9 100644 --- a/tools/generate/files.py +++ b/tools/generate/files.py @@ -5,6 +5,7 @@ from generate import tilesets from generate import collision_tile_ids from generate import text from generate import text_pointers +from generate.move import moves files = [ (maps.generate_header, "maps.hpp"), @@ -21,4 +22,6 @@ files = [ (text.generate_source, "text.cpp"), (text_pointers.generate_header, "text_pointers.hpp"), (text_pointers.generate_source, "text_pointers.cpp"), + (moves.generate_header, "moves.hpp"), + (moves.generate_source, "moves.cpp"), ] diff --git a/tools/parse/move/moves.py b/tools/parse/move/moves.py index 310c25b..5abd6b9 100644 --- a/tools/parse/move/moves.py +++ b/tools/parse/move/moves.py @@ -7,7 +7,7 @@ tokenize_lines = partial(tokenize.lines, prefix='move ') @dataclass class Move: - constant_name: str + animation_name: str effect: str power: int type: str @@ -17,9 +17,9 @@ class Move: def flatten(tokens): for t in tokens: assert t[0] == 'move', t - _, (constant_name, effect, power, type, accuracy, pp) = t - yield constant_name, Move( - constant_name, + _, (animation_name, effect, power, type, accuracy, pp) = t + yield Move( + animation_name, effect, number.parse(power), type, @@ -30,4 +30,4 @@ def flatten(tokens): def parse(prefix): path = prefix / 'data/moves/moves.asm' with open(path) as f: - return dict(flatten(tokenize_lines(f.read().split('\n')))) + return list(flatten(tokenize_lines(f.read().split('\n'))))