From 44c2fbc9fce99e9d03da234ef4b06df825b0b6bf Mon Sep 17 00:00:00 2001 From: Faraphel Date: Tue, 1 Feb 2022 15:53:50 +0100 Subject: [PATCH] fixed disabling "keep_original_track" : bmg are now correct --- source/CT_Config.py | 8 +++--- source/Game.py | 61 ++++++++++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 29 deletions(-) diff --git a/source/CT_Config.py b/source/CT_Config.py index 64eb64e..ee66568 100644 --- a/source/CT_Config.py +++ b/source/CT_Config.py @@ -115,11 +115,11 @@ class CT_Config: 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") + else: + lecode_flags.append("N$SHOW") + if self.add_original_track_prefix: lecode_flags.append("N$F_WII") + if self.swap_original_order: lecode_flags.append("N$SWAP") header = ( "#CT-CODE\n" diff --git a/source/Game.py b/source/Game.py index 126b5f9..ee16fa4 100644 --- a/source/Game.py +++ b/source/Game.py @@ -291,37 +291,48 @@ class Game: with open(extra_common_path, "w", encoding="utf8") as f: f.write("#BMG\n") - for bmgtrack in bmgtracks.split("\n"): - if "=" in bmgtrack: + if self.common.ct_config.keep_original_track: + for bmgtrack in bmgtracks.split("\n"): + if "=" in bmgtrack: - prefix = "" - track_name = bmgtrack[bmgtrack.find("= ") + 2:] + prefix = "" + track_name = bmgtrack[bmgtrack.find("= ") + 2:] - if "T" in bmgtrack[:bmgtrack.find("=")]: - start_track_id: int = bmgtrack.find("T") # index where the bmg track definition start - track_id = bmgtrack[start_track_id:start_track_id + 3] - if track_id[1] in "1234": # if the track is a original track from the wii - prefix = "Wii" - if prefix in Track.tags_color: - prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" - prefix += " " + if "T" in bmgtrack[:bmgtrack.find("=")]: + start_track_id: int = bmgtrack.find("T") # index where the bmg track definition start + track_id = bmgtrack[start_track_id:start_track_id + 3] + if track_id[1] in "1234": # if the track is a original track from the wii + prefix = "Wii" + if prefix in Track.tags_color: + prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" + prefix += " " - elif track_id[1] in "5678": # if the track is a retro track from the original game - prefix, *track_name = track_name.split(" ") - track_name = " ".join(track_name) - if prefix in Track.tags_color: - prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" - prefix += " " + elif track_id[1] in "5678": # if the track is a retro track from the original game + prefix, *track_name = track_name.split(" ") + track_name = " ".join(track_name) + if prefix in Track.tags_color: + prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" + prefix += " " - track_id = hex(bmgID_track_move[track_id])[2:] + track_id = hex(bmgID_track_move[track_id])[2:] - else: # Arena - start_track_id = bmgtrack.find("U") + 1 # index where the bmg arena definition start - 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:] + else: # Arena + start_track_id = bmgtrack.find("U") + 1 # index where the bmg arena definition start + 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") + if not self.common.ct_config.add_original_track_prefix: prefix = "" + f.write(f" {track_id}\t= {prefix}{track_name}\n") + + else: + for cup_index, cup in enumerate(self.common.ct_config.get_all_cups(), start=1): + if cup_index > 8: break # only keep the 8 first cup + for track_index, track in enumerate(cup.get_tracks(), start=1): + f.write( + f" T{cup_index}{track_index}\t= " + f"{track.get_track_formatted_name(filter_highlight=self.common.ct_config.filter_track_highlight)}" + f"\n" + ) def patch_bmg(self, gamefile: str) -> None: """