From c342429afe21e38ec86042ecdd93724546ca6dcc Mon Sep 17 00:00:00 2001 From: Stewie Date: Sat, 19 Mar 2022 19:19:12 -0400 Subject: [PATCH] Adding new functions in ToolsTales_Exectuable - extract Menu files - extract Story files --- ToolsTales.py | 10 ++--- ToolsTales_Executable.py | 58 ++++++++++---------------- __pycache__/ToolsTales.cpython-38.pyc | Bin 22412 -> 22313 bytes 3 files changed, 26 insertions(+), 42 deletions(-) diff --git a/ToolsTales.py b/ToolsTales.py index c318c72..93fb7a7 100644 --- a/ToolsTales.py +++ b/ToolsTales.py @@ -808,7 +808,7 @@ class ToolsTales: if file_path == '': file_path = self.elfOriginal - print("Elf changed") + f = open(file_path , "rb") @@ -835,9 +835,8 @@ class ToolsTales: pointers_offset.append(block_pointers_offset[i]) pointers_value.append(block_pointers_value[i]) is_bad_count = 0 - if( section == "Battle Tutorial 3"): - - print(block_pointers_offset[i]) + + else: is_bad_count = is_bad_count = 1 f.read(step) @@ -883,7 +882,6 @@ class ToolsTales: pointers_offset_list.extend( pointers_offset) texts_list.extend( texts ) - print(set(section_list)) #Remove duplicates list_informations = self.remove_duplicates(section_list, pointers_offset_list, texts_list) @@ -903,7 +901,7 @@ class ToolsTales: texts_list = [] for file_definition in self.menu_files_json: - print("Extracting...{}".format(file_definition['File_Extract'])) + print("...{}".format(file_definition['File_Extract'])) self.extract_Menu_File(file_definition) diff --git a/ToolsTales_Executable.py b/ToolsTales_Executable.py index 51d78a5..83ea72c 100644 --- a/ToolsTales_Executable.py +++ b/ToolsTales_Executable.py @@ -83,47 +83,18 @@ def get_arguments(argv=None): ) sp_unpack.add_argument( "file", - choices=["all", "dat", "mfh", "theirsce", "scpk"], + choices=["All", "Main", "Menu", "Story", "Skits"], metavar="FILE", help="Options: all, dat, mfh, theirsce, scpk", ) - sp_unpack.add_argument( - "--input", - metavar="input_path", - required=True, - help="Specify input file path.", - type=os.path.abspath, - ) - - sp_unpack.add_argument( - "--output", - metavar="output_path", - help="Specify output path.", - type=os.path.abspath, - ) - - sp_unpack.add_argument( - "--elf", - metavar="elf_path", - dest="elf_path", - help="Specify custom SLPS_254.50 (a.k.a ELF) file path.", - type=os.path.abspath, - ) - - sp_unpack.add_argument( - "--no-decompress", - action="store_true", - help="Don't decompress compto files.", - ) - # PAK commands sp_pack = sp.add_parser("pack", help="Packs some file types into the originals.") sp_pack.add_argument( "file", - choices=["All", "Menu", "Story", "Skits"], + choices=["All", "Main", "Menu", "Story", "Skits"], metavar="FILE", help="Inserts files back into their containers.", ) @@ -184,9 +155,9 @@ def hex2bytes(tales_instance, hex_value): def getTalesInstance(game_name): - talesInstance = ToolsTOR.ToolsTOR("tbl") - if game_name == "TOR": - talesInstance = ToolsTOR.ToolsTOR("tbl") + talesInstance = ToolsTOR.ToolsTOR("TBL_All.json") + #if game_name == "TOR": + # talesInstance = ToolsTOR.ToolsTOR("tbl") return talesInstance @@ -215,8 +186,23 @@ if __name__ == "__main__": if args.file == "Menu": #SLPS - tales_instance.insert_Menu_File("../Data/TOR/Disc/Original/SLPS_254.50") + #tales_instance.insert_Menu_File("../Data/TOR/Disc/Original/SLPS_254.50") print("new SLPS is found inside Data/{}/Disc/New".format(game_name)) #Other files for menu stuff - \ No newline at end of file + if args.action == "unpack": + + if args.file == "Main": + tales_instance.extract_Main_Archive() + + if args.file == "Menu": + print("Extracting Menu Files") + tales_instance.extract_All_Menu() + + if args.file == "Story": + tales_instance.extract_All_Story_Files() + + if args.file == "Skits": + + + \ No newline at end of file diff --git a/__pycache__/ToolsTales.cpython-38.pyc b/__pycache__/ToolsTales.cpython-38.pyc index d22be4eae4ea3bdaf7912b43febd43c0e4bfb9c0..e1e648763e8ca0cf5d1e5bcfad6b3fa9fc1775e7 100644 GIT binary patch delta 5627 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 G!vg`ozNg#( delta 5799 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