mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 03:30:13 +01:00
more crash fixes
This commit is contained in:
@@ -100,21 +100,21 @@ class AIBattleGameScreen(GameScreen):
|
||||
|
||||
def init_tja(self, song: Path):
|
||||
"""Initialize the TJA file"""
|
||||
self.tja = TJAParser(song, start_delay=self.start_delay)
|
||||
self.parser = TJAParser(song, start_delay=self.start_delay)
|
||||
self.movie = None
|
||||
session_data = global_data.session_data[global_data.player_num]
|
||||
session_data.song_title = self.tja.metadata.title.get(global_data.config['general']['language'].lower(), self.tja.metadata.title['en'])
|
||||
if self.tja.metadata.wave.exists() and self.tja.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.tja.metadata.wave, 'song')
|
||||
session_data.song_title = self.parser.metadata.title.get(global_data.config['general']['language'].lower(), self.parser.metadata.title['en'])
|
||||
if self.parser.metadata.wave.exists() and self.parser.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.parser.metadata.wave, 'song')
|
||||
|
||||
tja_copy = copy.deepcopy(self.tja)
|
||||
self.player_1 = PlayerNoChara(self.tja, global_data.player_num, session_data.selected_difficulty, False, global_data.modifiers[global_data.player_num])
|
||||
self.player_1.gauge = AIGauge(self.player_1.player_num, self.player_1.difficulty, self.tja.metadata.course_data[self.player_1.difficulty].level, self.player_1.total_notes, self.player_1.is_2p)
|
||||
tja_copy = copy.deepcopy(self.parser)
|
||||
self.player_1 = PlayerNoChara(self.parser, global_data.player_num, session_data.selected_difficulty, False, global_data.modifiers[global_data.player_num])
|
||||
self.player_1.gauge = AIGauge(self.player_1.player_num, self.player_1.difficulty, self.parser.metadata.course_data[self.player_1.difficulty].level, self.player_1.total_notes, self.player_1.is_2p)
|
||||
ai_modifiers = copy.deepcopy(global_data.modifiers[global_data.player_num])
|
||||
ai_modifiers.auto = True
|
||||
self.player_2 = AIPlayer(tja_copy, PlayerNum.AI, session_data.selected_difficulty, True, ai_modifiers, AIDifficulty.LVL_2)
|
||||
self.start_ms = (get_current_ms() - self.tja.metadata.offset*1000)
|
||||
self.precise_start = time.time() - self.tja.metadata.offset
|
||||
self.start_ms = (get_current_ms() - self.parser.metadata.offset*1000)
|
||||
self.precise_start = time.time() - self.parser.metadata.offset
|
||||
self.total_notes = len(self.player_1.don_notes) + len(self.player_1.kat_notes)
|
||||
logger.info(f"TJA initialized for two-player song: {song}")
|
||||
|
||||
@@ -140,7 +140,7 @@ class AIBattleGameScreen(GameScreen):
|
||||
if self.transition.is_finished:
|
||||
self.start_song(self.current_ms)
|
||||
else:
|
||||
self.start_ms = current_time - self.tja.metadata.offset*1000
|
||||
self.start_ms = current_time - self.parser.metadata.offset*1000
|
||||
self.update_background(current_time)
|
||||
|
||||
self.update_audio(self.current_ms)
|
||||
|
||||
@@ -90,7 +90,7 @@ class DanGameScreen(GameScreen):
|
||||
self.player_1.is_dan = True
|
||||
self.player_1.gauge = DanGauge(global_data.player_num, self.total_notes)
|
||||
self.song_info = SongInfo(song.metadata.title.get(global_data.config["general"]["language"], "en"), genre_index)
|
||||
self.bpm = self.tja.metadata.bpm
|
||||
self.bpm = self.parser.metadata.bpm
|
||||
logger.info(f"TJA initialized for song: {song.file_path}")
|
||||
|
||||
|
||||
@@ -103,19 +103,19 @@ class DanGameScreen(GameScreen):
|
||||
song, genre_index, difficulty, level = songs[self.song_index]
|
||||
session_data.selected_difficulty = difficulty
|
||||
self.player_1.difficulty = difficulty
|
||||
self.tja = TJAParser(song.file_path, start_delay=self.start_delay)
|
||||
self.parser = TJAParser(song.file_path, start_delay=self.start_delay)
|
||||
if self.song_music is not None:
|
||||
audio.unload_music_stream(self.song_music)
|
||||
self.song_music = None
|
||||
self.song_started = False
|
||||
|
||||
if self.tja.metadata.wave.exists() and self.tja.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.tja.metadata.wave, 'song')
|
||||
self.player_1.parser = self.tja
|
||||
if self.parser.metadata.wave.exists() and self.parser.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.parser.metadata.wave, 'song')
|
||||
self.player_1.parser = self.parser
|
||||
self.player_1.reset_chart()
|
||||
self.dan_transition.start()
|
||||
self.song_info = SongInfo(self.tja.metadata.title.get(global_data.config["general"]["language"], "en"), genre_index)
|
||||
self.start_ms = (get_current_ms() - self.tja.metadata.offset*1000)
|
||||
self.song_info = SongInfo(self.parser.metadata.title.get(global_data.config["general"]["language"], "en"), genre_index)
|
||||
self.start_ms = (get_current_ms() - self.parser.metadata.offset*1000)
|
||||
|
||||
def _calculate_dan_info(self):
|
||||
"""Calculate all dan info data for drawing"""
|
||||
@@ -205,7 +205,7 @@ class DanGameScreen(GameScreen):
|
||||
if self.transition.is_finished and self.dan_transition.is_finished:
|
||||
self.start_song(self.current_ms)
|
||||
else:
|
||||
self.start_ms = current_time - self.tja.metadata.offset*1000
|
||||
self.start_ms = current_time - self.parser.metadata.offset*1000
|
||||
self.update_background(current_time)
|
||||
|
||||
if self.song_music is not None:
|
||||
|
||||
@@ -46,16 +46,16 @@ class PracticeGameScreen(GameScreen):
|
||||
|
||||
def init_tja(self, song: Path):
|
||||
"""Initialize the TJA file"""
|
||||
self.tja = TJAParser(song, start_delay=self.start_delay)
|
||||
self.parser = TJAParser(song, start_delay=self.start_delay)
|
||||
self.scrobbling_tja = TJAParser(song, start_delay=self.start_delay)
|
||||
global_data.session_data[global_data.player_num].song_title = self.tja.metadata.title.get(global_data.config['general']['language'].lower(), self.tja.metadata.title['en'])
|
||||
if self.tja.metadata.wave.exists() and self.tja.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.tja.metadata.wave, 'song')
|
||||
self.player_1 = PracticePlayer(self.tja, global_data.player_num, global_data.session_data[global_data.player_num].selected_difficulty, False, global_data.modifiers[global_data.player_num])
|
||||
notes, branch_m, branch_e, branch_n = self.tja.notes_to_position(self.player_1.difficulty)
|
||||
global_data.session_data[global_data.player_num].song_title = self.parser.metadata.title.get(global_data.config['general']['language'].lower(), self.parser.metadata.title['en'])
|
||||
if self.parser.metadata.wave.exists() and self.parser.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.parser.metadata.wave, 'song')
|
||||
self.player_1 = PracticePlayer(self.parser, global_data.player_num, global_data.session_data[global_data.player_num].selected_difficulty, False, global_data.modifiers[global_data.player_num])
|
||||
notes, branch_m, branch_e, branch_n = self.parser.notes_to_position(self.player_1.difficulty)
|
||||
self.scrobble_timeline = notes.timeline
|
||||
_, self.scrobble_note_list, self.bars = apply_modifiers(notes, self.player_1.modifiers)
|
||||
self.start_ms = (get_current_ms() - self.tja.metadata.offset*1000)
|
||||
self.start_ms = (get_current_ms() - self.parser.metadata.offset*1000)
|
||||
self.scrobble_index = 0
|
||||
self.scrobble_time = self.bars[self.scrobble_index].hit_ms
|
||||
self.scrobble_move = Animation.create_move(200, total_distance=0)
|
||||
@@ -110,7 +110,7 @@ class PracticeGameScreen(GameScreen):
|
||||
|
||||
self.pause_time = start_time
|
||||
audio.play_music_stream(self.song_music, 'music')
|
||||
audio.seek_music_stream(self.song_music, (self.pause_time - self.start_delay)/1000 - self.tja.metadata.offset)
|
||||
audio.seek_music_stream(self.song_music, (self.pause_time - self.start_delay)/1000 - self.parser.metadata.offset)
|
||||
self.song_started = True
|
||||
self.start_ms = get_current_ms() - self.pause_time
|
||||
|
||||
@@ -156,7 +156,7 @@ class PracticeGameScreen(GameScreen):
|
||||
if self.transition.is_finished:
|
||||
self.start_song(self.current_ms)
|
||||
else:
|
||||
self.start_ms = current_time - self.tja.metadata.offset*1000
|
||||
self.start_ms = current_time - self.parser.metadata.offset*1000
|
||||
self.update_background(current_time)
|
||||
|
||||
if self.song_music is not None:
|
||||
|
||||
@@ -24,7 +24,7 @@ logger = logging.getLogger(__name__)
|
||||
class TwoPlayerGameScreen(GameScreen):
|
||||
def on_screen_start(self):
|
||||
super().on_screen_start()
|
||||
scene_preset = self.tja.metadata.scene_preset
|
||||
scene_preset = self.parser.metadata.scene_preset
|
||||
if self.background is not None:
|
||||
self.background.unload()
|
||||
self.background = Background(PlayerNum.TWO_PLAYER, self.bpm, scene_preset=scene_preset)
|
||||
@@ -83,20 +83,20 @@ class TwoPlayerGameScreen(GameScreen):
|
||||
|
||||
def init_tja(self, song: Path):
|
||||
"""Initialize the TJA file"""
|
||||
self.tja = TJAParser(song, start_delay=self.start_delay)
|
||||
if self.tja.metadata.bgmovie != Path() and self.tja.metadata.bgmovie.exists():
|
||||
self.movie = VideoPlayer(self.tja.metadata.bgmovie)
|
||||
self.parser = TJAParser(song, start_delay=self.start_delay)
|
||||
if self.parser.metadata.bgmovie != Path() and self.parser.metadata.bgmovie.exists():
|
||||
self.movie = VideoPlayer(self.parser.metadata.bgmovie)
|
||||
self.movie.set_volume(0.0)
|
||||
else:
|
||||
self.movie = None
|
||||
global_data.session_data[PlayerNum.P1].song_title = self.tja.metadata.title.get(global_data.config['general']['language'].lower(), self.tja.metadata.title['en'])
|
||||
if self.tja.metadata.wave.exists() and self.tja.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.tja.metadata.wave, 'song')
|
||||
global_data.session_data[PlayerNum.P1].song_title = self.parser.metadata.title.get(global_data.config['general']['language'].lower(), self.parser.metadata.title['en'])
|
||||
if self.parser.metadata.wave.exists() and self.parser.metadata.wave.is_file() and self.song_music is None:
|
||||
self.song_music = audio.load_music_stream(self.parser.metadata.wave, 'song')
|
||||
|
||||
tja_copy = copy.deepcopy(self.tja)
|
||||
self.player_1 = Player(self.tja, PlayerNum.P1, global_data.session_data[PlayerNum.P1].selected_difficulty, False, global_data.modifiers[PlayerNum.P1])
|
||||
tja_copy = copy.deepcopy(self.parser)
|
||||
self.player_1 = Player(self.parser, PlayerNum.P1, global_data.session_data[PlayerNum.P1].selected_difficulty, False, global_data.modifiers[PlayerNum.P1])
|
||||
self.player_2 = Player(tja_copy, PlayerNum.P2, global_data.session_data[PlayerNum.P2].selected_difficulty, True, global_data.modifiers[PlayerNum.P2])
|
||||
self.start_ms = (get_current_ms() - self.tja.metadata.offset*1000)
|
||||
self.start_ms = (get_current_ms() - self.parser.metadata.offset*1000)
|
||||
logger.info(f"TJA initialized for two-player song: {song}")
|
||||
|
||||
def spawn_ending_anims(self):
|
||||
@@ -122,7 +122,7 @@ class TwoPlayerGameScreen(GameScreen):
|
||||
if self.transition.is_finished:
|
||||
self.start_song(self.current_ms)
|
||||
else:
|
||||
self.start_ms = current_time - self.tja.metadata.offset*1000
|
||||
self.start_ms = current_time - self.parser.metadata.offset*1000
|
||||
self.update_background(current_time)
|
||||
|
||||
if self.song_music is not None:
|
||||
|
||||
Reference in New Issue
Block a user