import re
import sys

USAGE_MSG = '''
Font converter for jDAAD (A DAAD text adventure engine interpreter in javascript, https://github.com/Utodev/jDAAD) by Alexey Galkin, 2023. MIT license.

Usage:
	python jdaadfc.py <source> <destination> <mode>

Mode:
	ascii	convert font.js to ASCII-font file
	js	convert ASCII-font file to font.js
'''

if len(sys.argv) != 4:
    print(USAGE_MSG)
    quit()
    
input_filename = sys.argv[1]
output_filename = sys.argv[2]
mode =  sys.argv[3]
    
output = ''
    
with open(input_filename, 'r') as file:
    
    if mode == 'ascii':
	    input_file = file.read()
	    js_font = input_file[input_file.find('[')+1:input_file.find(']')]
	    js_font = js_font.replace('0x', '').split(',')
	    for byte in js_font:
	    	line = bin(int(byte, 16))[2:]
	    	line = '0' * (8-len(line)) + line
	    	line = line.replace('0', '.').replace('1', '#')
	    	output = output + line + '\n'
	    	
    elif mode == 'js':
        input_file = file.readlines()
        output = [hex(int(byte.replace('.', '0').replace('#', '1'), 2)) for byte in input_file]
        output = f'''// The DAAD 8x6 font converted by jdaadfc.

var font = [{', '.join(output)}];
				'''
	    		
    else:
	    print(USAGE_MSG)
	    quit()
    		
with open(output_filename, 'w') as file:
	file.write(output)