papermario/tools/build/mapfs/pack_title_data.py
lshamis ae66312d8c
Add Python linter to github actions (#1100)
* Add Python linter to github actions

* wip

* Add back splat_ext

* Format files

* C++ -> C

* format 2 files

* split workflow into separate file, line length 120, fix excludes

* -l 120 in ci

* update black locally and apply formatting changes

* pyproject.toject

---------

Co-authored-by: Ethan Roseman <ethteck@gmail.com>
2023-07-30 02:03:17 +09:00

55 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
from sys import argv
if __name__ == "__main__":
argv.pop(0) # python3
if len(argv) > 4:
out, img1, img2, img3, img2_pal = argv
else:
out, img1, img2, img3 = argv
img2_pal = None
with open(img1, "rb") as f:
img1 = f.read()
with open(img2, "rb") as f:
img2 = f.read()
with open(img3, "rb") as f:
img3 = f.read()
if img2_pal:
with open(img2_pal, "rb") as f:
img2_pal = f.read()
with open(out, "wb") as f:
f.seek(0x10)
pos2 = f.tell()
f.write(img2)
if img2_pal:
pos2_pal = f.tell()
f.write(img2_pal)
else:
pos2_pal = None
pos3 = f.tell()
f.write(img3)
pos1 = f.tell()
f.write(img1)
if img2_pal:
# jp padding?
f.write(b"\x00" * 0x10)
f.seek(0)
f.write(pos1.to_bytes(4, byteorder="big"))
f.write(pos2.to_bytes(4, byteorder="big"))
f.write(pos3.to_bytes(4, byteorder="big"))
if pos2_pal:
f.write(pos2_pal.to_bytes(4, byteorder="big"))