From 438e303b3b94a3d95497c5e29c5d099e1780ea8f Mon Sep 17 00:00:00 2001 From: Faraphel Date: Tue, 1 Feb 2022 00:19:50 +0100 Subject: [PATCH] added add_original_track_prefix, swap_original_order, enable_random_cup and keep_original_track option to the ct_config. The last one have bmg issue. --- .gitignore | 1 + source/CT_Config.py | 42 ++++++++++++++++++++++++++++++++---------- source/Game.py | 1 + source/wszst/lec.py | 1 - 4 files changed, 34 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 5937aa6..bbcf9c2 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /option.json /scripts/tmp/ /Pack/MKWFaraphel/file/generated/ +/Pack/UltraDupraMegaSupraMKW/ diff --git a/source/CT_Config.py b/source/CT_Config.py index c077cba..64eb64e 100644 --- a/source/CT_Config.py +++ b/source/CT_Config.py @@ -13,7 +13,9 @@ class CT_Config: tags_color: dict = None, prefix_list: list = None, suffix_list: list = None, tag_retro: str = "Retro", default_track: dict = None, pack_path: str = "", file_process: dict = None, file_structure: dict = None, default_sort: str = "", - cup: list = None, tracks_list: list = None, + cup: list = None, tracks_list: list = None, add_original_track_prefix: bool = True, + swap_original_order: bool = True, keep_original_track: bool = True, + enable_random_cup: bool = True, *args, **kwargs): self.version = version @@ -23,6 +25,11 @@ class CT_Config: self.region = region self.cheat_region = cheat_region + self.add_original_track_prefix = add_original_track_prefix + self.swap_original_order = swap_original_order + self.keep_original_track = keep_original_track # display issue, bad bmg. + self.enable_random_cup = enable_random_cup + self.ordered_cups = [] self.unordered_tracks = [] @@ -106,12 +113,21 @@ class CT_Config: """ with open(directory + "CTFILE.txt", "w", encoding="utf-8") as ctfile, \ open(directory + "RCTFILE.txt", "w", encoding="utf-8") as rctfile: + + lecode_flags = [] + if self.add_original_track_prefix: lecode_flags.append("N$F_WII") + if self.swap_original_order: lecode_flags.append("N$SWAP") + + if not self.keep_original_track: lecode_flags.append("N$NONE") + else: lecode_flags.append("N$SHOW") + header = ( "#CT-CODE\n" "[RACING-TRACK-LIST]\n" "%LE-FLAGS=1\n" - "%WIIMM-CUP=1\n" - "N N$SWAP | N$F_WII\n\n" + f"%WIIMM-CUP={int(self.enable_random_cup)}\n" + f"N {' | '.join(lecode_flags)}\n" + "\n" ) ctfile.write(header); rctfile.write(header) @@ -153,14 +169,20 @@ class CT_Config: """ CT_ICON_WIDTH = 128 - default_cups = [ - "left", "right", + default_cups = ["left", "right"] - "mushroom", "shell", "flower", "banana", - "star", "leaf", "special", "lightning", - - "random" - ] + if self.keep_original_track: + if self.swap_original_order: + default_cups.extend( + ["mushroom", "shell", "flower", "banana", + "star", "leaf", "special", "lightning"] + ) + else: + default_cups.extend( + ["mushroom", "flower", "star", "special", + "shell", "banana", "leaf", "lightning"] + ) + if self.enable_random_cup: default_cups.append("random") total_cup_count = self.get_cup_count() + len(default_cups) # +10 because left, right, start at 0, 8 normal cup ct_icon = Image.new("RGBA", (CT_ICON_WIDTH, CT_ICON_WIDTH * (total_cup_count + 2))) diff --git a/source/Game.py b/source/Game.py index b4c6730..126b5f9 100644 --- a/source/Game.py +++ b/source/Game.py @@ -320,6 +320,7 @@ class Game: track_id = bmgtrack[start_track_id:start_track_id + 2] track_id = hex((int(track_id[0]) - 1) * 5 + (int(track_id[1]) - 1) + 0x7020)[2:] + if not self.common.ct_config.add_original_track_prefix: prefix = "" f.write(f" {track_id}\t= {prefix}{track_name}\n") def patch_bmg(self, gamefile: str) -> None: diff --git a/source/wszst/lec.py b/source/wszst/lec.py index 87c236b..b11494c 100644 --- a/source/wszst/lec.py +++ b/source/wszst/lec.py @@ -33,7 +33,6 @@ def patch(lecode_file: str = f"./file/lecode-PAL.bin", cmd.extend(["--copy-tracks", path]) for path in move_track_paths: cmd.extend(["--move-tracks", path]) - print(cmd) subprocess.run( cmd,