diff options
Diffstat (limited to 'maps/mapgen.py')
-rwxr-xr-x | maps/mapgen.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/maps/mapgen.py b/maps/mapgen.py new file mode 100755 index 0000000..a7e6817 --- /dev/null +++ b/maps/mapgen.py @@ -0,0 +1,31 @@ +import sys +from struct import pack + +def mapgen(filename): + file = open(filename, 'r') + target = open(filename + '.map', 'wb') + contents = file.read() + + lines = contents.strip().split("\n") + target.write(pack('>H', len(lines[0]))) + target.write(pack('>H', len(lines))) + + first_nibble = False + temp_byte = 0 + for char in contents.replace('\n', '').strip(): + first_nibble = not first_nibble + num = int(char, 16) + temp_byte |= num << (4 * first_nibble) + if not first_nibble: + target.write(pack('B', temp_byte)) + temp_byte = 0 + if first_nibble: target.write(pack('B', temp_byte)) + + file.close() + target.close() + +if __name__ == "__main__": + if len(sys.argv) > 1: + mapgen(sys.argv[1]) + else: + exit(1) |