Esempio n. 1
0
def extract_folder(args, conf):
    dat_manager = DatManager(conf.get('game', 'path'))

    output_path = path.join(conf.get('output', 'path'), 'folder', args.name)
    category = dat_manager.get_category_from_filename(args.name)

    (dir_hash, _) = get_hashes(args.name)

    dir_hash_table = category.get_dir_hash_table(dir_hash)

    if not path.exists(output_path):
        makedirs(output_path)

    for file_hash in dir_hash_table.keys():
        output_file_path = path.join(output_path, '%0.8X' % file_hash)

        file_data = category.get_file(dir_hash, file_hash)

        with open(output_file_path + '.dds', 'wb') as file_handle:
            file_handle.write(Texture(file_data).get_as_dds().getvalue())