mirror of
https://github.com/pmret/papermario.git
synced 2024-11-13 22:43:00 +01:00
3315d6010f
* all non-world rodata migrated * data disasm * kinda working * updated yaml * bloop * linker header * configure 2.0 * bin * mass rename to remove code_ * pause rename * battle partner stuff * whew * more renames * more renames * more renaming * it builds! * updates * remove main prefix * one more thing * crc, yay0 * .data, .rodata, .bss * img * dead_atan2 * it buildsgit add -A * split battle/partner/6FAD10 * rm &s on sleepy_sheep syms * sha1sum ninja rule description * OK but commented out PaperMarioMapFS and PaperMarioNpcSprites * uncomment * fix mapfs * match func_8003CFB4 * . * clean up and name npc_iter_no_op * npc.c * enable cc warnings * name npc_find_near * use singular options.asset_path * smores * cc_dsl only when needed * kinda fix configure for splat refactor2 * ok! * new msg format * remove old msg format docs * slight bug fixes, splat adjustment * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "cfc140bb76" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "cfc140bb76" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * git subrepo pull (merge) --force tools/splat subrepo: subdir: "tools/splat" merged: "85349befcd" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "85349befcd" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" * Update symbol addrs * git subrepo pull tools/splat subrepo: subdir: "tools/splat" merged: "a44631e194" upstream: origin: "https://github.com/ethteck/splat.git" branch: "master" commit: "a44631e194" git-subrepo: version: "0.4.3" origin: "https://github.com/ingydotnet/git-subrepo" commit: "2f68596" Co-authored-by: Alex Bates <hi@imalex.xyz>
45 lines
1.4 KiB
Python
Executable File
45 lines
1.4 KiB
Python
Executable File
#! /usr/bin/python3
|
|
|
|
from sys import argv, path
|
|
from pathlib import Path
|
|
path.append(str(Path(__file__).parent.parent.parent / "splat"))
|
|
path.append(str(Path(__file__).parent.parent.parent / "splat_ext"))
|
|
from PaperMarioNpcSprites import Sprite
|
|
|
|
if __name__ == "__main__":
|
|
if len(argv) < 4:
|
|
print("usage: gen_sprite_animations_h.py [OUT] [DIR] [ID]")
|
|
exit(1)
|
|
|
|
_, outfile, sprite_dir, s = argv
|
|
|
|
with open(outfile, "w") as f:
|
|
# get sprite index
|
|
s = int(s)
|
|
assert s >= 1
|
|
|
|
sprite_dir = Path(sprite_dir)
|
|
|
|
sprite = Sprite.from_dir(sprite_dir, read_images=False)
|
|
sprite_name = sprite_dir.stem
|
|
|
|
f.write(f"#ifndef _SPRITE_{sprite_name.upper()}_H_\n")
|
|
f.write(f"#define _SPRITE_{sprite_name.upper()}_H_\n")
|
|
f.write("\n")
|
|
f.write('#include "types.h"\n')
|
|
f.write("\n")
|
|
|
|
f.write(f"#define _NPC_SPRITE_{sprite_name} 0x{s:02X}\n")
|
|
|
|
seen_palette_names = set()
|
|
for p, palette_name in enumerate(sprite.palette_names):
|
|
if palette_name not in seen_palette_names:
|
|
seen_palette_names.add(palette_name)
|
|
f.write(f"#define _NPC_PALETTE_{sprite_name}_{palette_name} 0x{p:02X}\n")
|
|
|
|
for a, name in enumerate(sprite.animation_names):
|
|
f.write(f"#define _NPC_ANIM_{sprite_name}_{name} 0x{a:02X}\n")
|
|
|
|
f.write("\n")
|
|
f.write("#endif\n")
|