diff --git a/Makefile b/Makefile index e241f8364d..5245a09b69 100644 --- a/Makefile +++ b/Makefile @@ -370,6 +370,7 @@ setup: venv # TODO: for now, we only extract assets from the Debug ROM ifeq ($(VERSION),gc-eu-mq-dbg) $(PYTHON) extract_assets.py -j$(N_THREADS) + $(PYTHON) tools/msgdis.py --text-out assets/text/message_data.h --staff-text-out assets/text/message_data_staff.h endif disasm: $(DISASM_O_FILES) diff --git a/extract_assets.py b/extract_assets.py index defac57dcd..ced7da4a1c 100755 --- a/extract_assets.py +++ b/extract_assets.py @@ -96,7 +96,7 @@ def processZAPDArgs(argsZ): def main(): parser = argparse.ArgumentParser(description="baserom asset extractor") parser.add_argument("-s", "--single", help="asset path relative to assets/, e.g. objects/gameplay_keep") - parser.add_argument("-f", "--force", help="Force the extraction of every xml instead of checking the touched ones, and text (overwriting current files).", action="store_true") + parser.add_argument("-f", "--force", help="Force the extraction of every xml instead of checking the touched ones (overwriting current files).", action="store_true") parser.add_argument("-j", "--jobs", help="Number of cpu cores to extract with.") parser.add_argument("-u", "--unaccounted", help="Enables ZAPD unaccounted detector warning system.", action="store_true") parser.add_argument("-Z", help="Pass the argument on to ZAPD, e.g. `-ZWunaccounted` to warn about unaccounted blocks in XMLs. Each argument should be passed separately, *without* the leading dash.", metavar="ZAPD_ARG", action="append") @@ -128,21 +128,6 @@ def main(): del extractedAssetsTracker[fullPath] ExtractFunc(fullPath) else: - extract_text_path = "assets/text/message_data.h" - extract_staff_text_path = "assets/text/message_data_staff.h" - - # Only extract text if the header does not already exist, or if --force was passed - if not args.force: - if os.path.isfile(extract_text_path): - extract_text_path = None - if os.path.isfile(extract_staff_text_path): - extract_staff_text_path = None - - if extract_text_path is not None or extract_staff_text_path is not None: - print("Extracting text") - from tools import msgdis - msgdis.extract_all_text(extract_text_path, extract_staff_text_path) - xmlFiles = [] for currentPath, _, files in os.walk(os.path.join("assets", "xml")): for file in files: diff --git a/tools/msgdis.py b/tools/msgdis.py old mode 100644 new mode 100755 index a946779fac..1da85713ec --- a/tools/msgdis.py +++ b/tools/msgdis.py @@ -5,6 +5,7 @@ import re, struct from os import path +import argparse # =================================================== # Util @@ -404,3 +405,23 @@ def extract_all_text(text_out, staff_text_out): with open(staff_text_out, "w", encoding="utf8") as outfile: outfile.write(out.strip() + "\n") + + +def main(): + parser = argparse.ArgumentParser( + description="Extract text from the baserom into .h files" + ) + parser.add_argument("--text-out", help="Path to output .h file for text") + parser.add_argument( + "--staff-text-out", help="Path to output .h file for staff text" + ) + + args = parser.parse_args() + if not (args.text_out or args.staff_text_out): + parser.error("No output file requested") + + extract_all_text(args.text_out, args.staff_text_out) + + +if __name__ == "__main__": + main()