summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbriaguya <briaguya@alice>2023-01-18 01:21:18 -0500
committerbriaguya <briaguya@alice>2023-01-18 01:21:18 -0500
commitc6dad0b40f0fd845050697b70f4f1f11b9def2c0 (patch)
tree27df98cd86bc2a61140c9fea1a987fc126a10ee9
parent43fd3d1e56e8b5222c081508736b869fcca948c8 (diff)
parentb47ba463bccdadca12a8fad99563974ee8238b4a (diff)
Merge remote-tracking branch 'origin/develop-bradley' into bradmerge
-rwxr-xr-xextract_assets.py9
-rw-r--r--rom_chooser.py22
2 files changed, 18 insertions, 13 deletions
diff --git a/extract_assets.py b/extract_assets.py
index 4e17d45..4983e6c 100755
--- a/extract_assets.py
+++ b/extract_assets.py
@@ -32,17 +32,16 @@ def main():
parser.add_argument("-z", "--zapd", help="Path to ZAPD executable", dest="zapd_exe", type=str)
parser.add_argument("rom", help="Path to the rom", type=str, nargs="?")
parser.add_argument("--non-interactive", help="Runs the script non-interactively for use in build scripts.", dest="non_interactive", action="store_true")
+ parser.add_argument("-v", "--verbose", help="Display rom's header checksums and their corresponding xml folder", dest="verbose", action="store_true")
args = parser.parse_args()
- rom_paths = [ args.rom ] if args.rom else rom_chooser.chooseROM(args.non_interactive)
- for rom_path in rom_paths:
- rom = Z64Rom(rom_path)
-
+ roms = [ Z64Rom(args.rom) ] if args.rom else rom_chooser.chooseROM(args.verbose, args.non_interactive)
+ for rom in roms:
if (os.path.exists("Extract")):
shutil.rmtree("Extract")
- BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom_path, zapd_exe=args.zapd_exe)
+ BuildOTR("../soh/assets/xml/" + rom.version.xml_ver + "/", rom.file_path, zapd_exe=args.zapd_exe)
if __name__ == "__main__":
main()
diff --git a/rom_chooser.py b/rom_chooser.py
index 5e79add..bdee088 100644
--- a/rom_chooser.py
+++ b/rom_chooser.py
@@ -2,12 +2,13 @@ import os, sys, glob
from rom_info import Z64Rom
-def chooseROM(non_interactive=False):
+def chooseROM(verbose=False, non_interactive=False):
roms = []
for file in glob.glob("*.z64"):
- if Z64Rom.isValidRom(file):
- roms.append(file)
+ rom = Z64Rom(file)
+ if rom.is_valid:
+ roms.append(rom)
if not (roms):
print("Error: No roms located, place one in the OTRExporter directory", file=os.sys.stderr)
@@ -21,23 +22,28 @@ def chooseROM(non_interactive=False):
foundMq = False
foundOot = False
for rom in roms:
- isMq = Z64Rom.isMqRom(rom)
- if isMq and not foundMq:
+ if rom.isMq and not foundMq:
romsToExtract.append(rom)
foundMq = True
- elif not isMq and not foundOot:
+ elif not rom.isMq and not foundOot:
romsToExtract.append(rom)
foundOot = True
return romsToExtract
- print(str(len(roms))+ " roms found, please select one by pressing 1-"+str(len(roms)))
+ print(f"{len(roms)} roms found, please select one by pressing 1-{len(roms)}")
+ print()
for i in range(len(roms)):
- print(str(i+1)+ ". " + roms[i])
+ print(f"[{i+1:>2d}] {roms[i].file_path}")
+ if verbose:
+ print(f" Checksum: {roms[i].checksum.value}, Version XML: {roms[i].version.xml_ver}")
+ print()
while(1):
try:
selection = int(input())
+ except KeyboardInterrupt:
+ sys.exit(1)
except:
print("Bad input. Try again with the number keys.")
continue