fixed disabling "keep_original_track" : bmg are now correct

This commit is contained in:
Faraphel 2022-02-01 15:53:50 +01:00
parent 438e303b3b
commit 44c2fbc9fc
2 changed files with 40 additions and 29 deletions

View file

@ -115,11 +115,11 @@ class CT_Config:
open(directory + "RCTFILE.txt", "w", encoding="utf-8") as rctfile: open(directory + "RCTFILE.txt", "w", encoding="utf-8") as rctfile:
lecode_flags = [] 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") 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 = ( header = (
"#CT-CODE\n" "#CT-CODE\n"

View file

@ -291,37 +291,48 @@ class Game:
with open(extra_common_path, "w", encoding="utf8") as f: with open(extra_common_path, "w", encoding="utf8") as f:
f.write("#BMG\n") f.write("#BMG\n")
for bmgtrack in bmgtracks.split("\n"): if self.common.ct_config.keep_original_track:
if "=" in bmgtrack: for bmgtrack in bmgtracks.split("\n"):
if "=" in bmgtrack:
prefix = "" prefix = ""
track_name = bmgtrack[bmgtrack.find("= ") + 2:] track_name = bmgtrack[bmgtrack.find("= ") + 2:]
if "T" in bmgtrack[:bmgtrack.find("=")]: if "T" in bmgtrack[:bmgtrack.find("=")]:
start_track_id: int = bmgtrack.find("T") # index where the bmg track definition start start_track_id: int = bmgtrack.find("T") # index where the bmg track definition start
track_id = bmgtrack[start_track_id:start_track_id + 3] 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 if track_id[1] in "1234": # if the track is a original track from the wii
prefix = "Wii" prefix = "Wii"
if prefix in Track.tags_color: if prefix in Track.tags_color:
prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}"
prefix += " " prefix += " "
elif track_id[1] in "5678": # if the track is a retro track from the original game elif track_id[1] in "5678": # if the track is a retro track from the original game
prefix, *track_name = track_name.split(" ") prefix, *track_name = track_name.split(" ")
track_name = " ".join(track_name) track_name = " ".join(track_name)
if prefix in Track.tags_color: if prefix in Track.tags_color:
prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}" prefix = "\\\\c{" + Track.tags_color[prefix] + "}" + prefix + "\\\\c{off}"
prefix += " " prefix += " "
track_id = hex(bmgID_track_move[track_id])[2:] track_id = hex(bmgID_track_move[track_id])[2:]
else: # Arena else: # Arena
start_track_id = bmgtrack.find("U") + 1 # index where the bmg arena definition start 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 = bmgtrack[start_track_id:start_track_id + 2]
track_id = hex((int(track_id[0]) - 1) * 5 + (int(track_id[1]) - 1) + 0x7020)[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 = "" if not self.common.ct_config.add_original_track_prefix: prefix = ""
f.write(f" {track_id}\t= {prefix}{track_name}\n") 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: def patch_bmg(self, gamefile: str) -> None:
""" """