Пример #1
0
def module_main(argv):
    if len(argv) == 7:
        level_id = int(argv[5], 0)
        level_header = level_info.load_level_header(level_id=level_id)
        output_pal = palette.assemble_palette(level_header.load_list.palettes)
        main(argv[6], output_pal, int(argv[1], 0), int(argv[2], 0), int(argv[3], 0), int(argv[4]))
    else:
        print 'Usage: {0} <chunk_id> <offset> <count> <size> <level_palette> <output.png>'.format(argv[0])
Пример #2
0
def module_main(argv):
    if len(argv) == 7:
        level_id = int(argv[5], 0)
        level_header = level_info.load_level_header(level_id=level_id)
        output_pal = palette.assemble_palette(level_header.load_list.palettes)
        main(argv[6], output_pal, int(argv[1], 0), int(argv[2], 0),
             int(argv[3], 0), int(argv[4]))
    else:
        print 'Usage: {0} <chunk_id> <offset> <count> <size> <level_palette> <output.png>'.format(
            argv[0])
Пример #3
0
import sys

from lvtools import chunk, level_info
from lvtools.compression import decompress_data
from lvtools.util import take_n, read_word


def main(level_header, out):
    out.write("%d %d\n" % (level_header.width, level_header.height))

    tilemap_data = decompress_data(chunk.read_chunk(
        level_header.tilemap_chunk))

    for row in take_n(tilemap_data, level_header.width * 2):
        out.write(' '.join(
            str(read_word(row, i)) for i in xrange(0, len(row), 2)))
        out.write('\n')


if __name__ == '__main__':
    level_id = int(sys.argv[1], 0)
    main(level_info.load_level_header(level_id=level_id), sys.stdout)
Пример #4
0
        tile = (util.read_word(data, i+offs) for offs in xrange(0, 8, 2))
        # Extract attributes
        tile = [(x >> 6, x & 0x10, x & 0x20) for x in tile]
        metatiles.append(tile)
    return metatiles

def main(level_header, output_file, tiles_per_row):
    output_pal = palette.assemble_palette(level_header.load_list.palettes)
    tiles = tileset.extract_tiles(level_header)

    metatile_data = decompress_data(chunk.read_chunk(level_header.metatile_chunk))
    meta_info = parse_metatile_info(metatile_data)
    del metatile_data

    def assemble_metatile(info):
        flipped_tiles = [graphics.flip_image(tiles[i], 8, hf, vf) for i, hf, vf in info]
        return graphics.layout_tiles(flipped_tiles, 8, 8, [[0, 1], [2, 3]])[0]

    meta_imgs = [assemble_metatile(info) for info in meta_info]

    output_data, output_w, output_h = graphics.layout_tiles(meta_imgs, 16, 16, tileset.rows_of_tiles(len(meta_imgs), tiles_per_row))

    with open(output_file, 'wb') as f:
        w = png.Writer(output_w, output_h, palette=output_pal)
        w.write_array(f, output_data)

if __name__ == '__main__':
    level_id = int(sys.argv[1], 0)
    level_header = level_info.load_level_header(level_id=level_id)
    main(level_header, sys.argv[2], int(sys.argv[3]))
Пример #5
0
import sys
import dump_tilemap
from lvtools import level_info

if __name__ == '__main__':
    filename = "tilemaps/%02d_%s.txt"
    for i, (chunk_id, name) in enumerate(level_info.level_info):
        if name in ('MainMenu', 'MainMenu2', 'Ending1'):
            # Don't have tilesets
            continue
        print "Dumping %s..." % (name,)

        with open(filename % (i, name), 'w') as f:
            dump_tilemap.main(level_info.load_level_header(chunk_id=chunk_id), f)
Пример #6
0
import sys

from lvtools import chunk, level_info
from lvtools.compression import decompress_data
from lvtools.util import take_n, read_word

def main(level_header, out):
    out.write("%d %d\n" % (level_header.width, level_header.height))

    tilemap_data = decompress_data(chunk.read_chunk(level_header.tilemap_chunk))

    for row in take_n(tilemap_data, level_header.width * 2):
        out.write(' '.join(str(read_word(row, i)) for i in xrange(0, len(row), 2)))
        out.write('\n')

if __name__ == '__main__':
    level_id = int(sys.argv[1], 0)
    main(level_info.load_level_header(level_id=level_id), sys.stdout)
Пример #7
0
import sys
import dump_tileset, dump_metatileset, dump_tileset_mask
from lvtools import level_info

if __name__ == '__main__':
    dumper = {
        'tiles': dump_tileset,
        'tilemask': dump_tileset_mask,
        'metatiles': dump_metatileset,
    }[sys.argv[1]]

    filename = "tilesets/%02d_%s.png"
    for i, (chunk_id, name) in enumerate(level_info.level_info):
        if name in ('MainMenu', 'MainMenu2', 'Ending1'):
            # Don't have tilesets
            continue
        print "Dumping %s..." % (name,)

        dumper.main(level_info.load_level_header(chunk_id=chunk_id), filename % (i, name), 16)
Пример #8
0
import sys
import dump_tileset, dump_metatileset, dump_tileset_mask
from lvtools import level_info

if __name__ == '__main__':
    dumper = {
        'tiles': dump_tileset,
        'tilemask': dump_tileset_mask,
        'metatiles': dump_metatileset,
    }[sys.argv[1]]

    filename = "tilesets/%02d_%s.png"
    for i, (chunk_id, name) in enumerate(level_info.level_info):
        if name in ('MainMenu', 'MainMenu2', 'Ending1'):
            # Don't have tilesets
            continue
        print "Dumping %s..." % (name, )

        dumper.main(level_info.load_level_header(chunk_id=chunk_id),
                    filename % (i, name), 16)