diff options
author | yenatch <yenatch@gmail.com> | 2016-04-10 19:08:07 -0400 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2016-04-10 19:08:07 -0400 |
commit | 050b05e5cec12d76b722c6a0fc84d80abd8dec5e (patch) | |
tree | 85225cbf66888a5292e7c1e6e1a3ddc8093b386d | |
parent | dfe657177453423987544798d9763b2938874b42 (diff) |
Accidentally moved get_pic_animation out of gfx.py.
-rw-r--r-- | pokemontools/dump_gfx.py | 39 | ||||
-rw-r--r-- | pokemontools/gfx.py | 39 |
2 files changed, 39 insertions, 39 deletions
diff --git a/pokemontools/dump_gfx.py b/pokemontools/dump_gfx.py index 372b8c3..88f1510 100644 --- a/pokemontools/dump_gfx.py +++ b/pokemontools/dump_gfx.py @@ -288,45 +288,6 @@ def rip_bulk_gfx(rom, dest='gfx', crystal=True): rip_compressed_misc (rom, dest=os.path.join(dest, 'misc')) -def get_pic_animation(tmap, w, h): - """ - Generate pic animation data from a combined tilemap of each frame. - """ - frame_text = '' - bitmask_text = '' - - frames = list(split(tmap, w * h)) - base = frames.pop(0) - bitmasks = [] - - for i in xrange(len(frames)): - frame_text += '\tdw .frame{}\n'.format(i + 1) - - for i, frame in enumerate(frames): - bitmask = map(operator.ne, frame, base) - if bitmask not in bitmasks: - bitmasks.append(bitmask) - which_bitmask = bitmasks.index(bitmask) - - mask = iter(bitmask) - masked_frame = filter(lambda _: mask.next(), frame) - - frame_text += '.frame{}\n'.format(i + 1) - frame_text += '\tdb ${:02x} ; bitmask\n'.format(which_bitmask) - if masked_frame: - frame_text += '\tdb {}\n'.format(', '.join( - map('${:02x}'.format, masked_frame) - )) - - for i, bitmask in enumerate(bitmasks): - bitmask_text += '; {}\n'.format(i) - for byte in split(bitmask, 8): - byte = int(''.join(map(int.__repr__, reversed(byte))), 2) - bitmask_text += '\tdb %{:08b}\n'.format(byte) - - return frame_text, bitmask_text - - def dump_pic_animations(addresses={'bitmasks': 'BitmasksPointers', 'frames': 'FramesPointers'}, pokemon=pokemon_constants, rom=None): """ The code to dump pic animations from rom is mysteriously absent. diff --git a/pokemontools/gfx.py b/pokemontools/gfx.py index 3f221d6..3f90d0f 100644 --- a/pokemontools/gfx.py +++ b/pokemontools/gfx.py @@ -508,6 +508,45 @@ def convert_2bpp_to_png(image, **kwargs): return width, height, palette, greyscale, bitdepth, px_map +def get_pic_animation(tmap, w, h): + """ + Generate pic animation data from a combined tilemap of each frame. + """ + frame_text = '' + bitmask_text = '' + + frames = list(split(tmap, w * h)) + base = frames.pop(0) + bitmasks = [] + + for i in xrange(len(frames)): + frame_text += '\tdw .frame{}\n'.format(i + 1) + + for i, frame in enumerate(frames): + bitmask = map(operator.ne, frame, base) + if bitmask not in bitmasks: + bitmasks.append(bitmask) + which_bitmask = bitmasks.index(bitmask) + + mask = iter(bitmask) + masked_frame = filter(lambda _: mask.next(), frame) + + frame_text += '.frame{}\n'.format(i + 1) + frame_text += '\tdb ${:02x} ; bitmask\n'.format(which_bitmask) + if masked_frame: + frame_text += '\tdb {}\n'.format(', '.join( + map('${:02x}'.format, masked_frame) + )) + + for i, bitmask in enumerate(bitmasks): + bitmask_text += '; {}\n'.format(i) + for byte in split(bitmask, 8): + byte = int(''.join(map(int.__repr__, reversed(byte))), 2) + bitmask_text += '\tdb %{:08b}\n'.format(byte) + + return frame_text, bitmask_text + + def export_png_to_2bpp(filein, fileout=None, palout=None, **kwargs): arguments = { |