diff options
| author | AltoXorg <56553686+Alto1772@users.noreply.github.com> | 2023-01-18 06:05:24 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-17 17:05:24 -0500 |
| commit | b47ba463bccdadca12a8fad99563974ee8238b4a (patch) | |
| tree | bada0d3a029603ceb8cc5bcc8ad8eb1c230f3d9f | |
| parent | 48a6db34d5125587d27676eb81d51a49bd1335fc (diff) | |
changes to the asset extraction script (#2068)
- fixes exiting with Ctrl+C on linux
- chooseROM returns Z64Rom object in addition to speed
- adds simple verbosity for inspecting roms
| -rwxr-xr-x | extract_assets.py | 9 | ||||
| -rw-r--r-- | rom_chooser.py | 22 |
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 |
