diff --git a/docs/tja_compat.csv b/docs/tja_compat.csv index 4b0942b..975628e 100644 --- a/docs/tja_compat.csv +++ b/docs/tja_compat.csv @@ -64,7 +64,6 @@ BGOFFSET,Unsupported,Unknown #LEVELHOLD,Unsupported,TaikoJiro v1.63 #DIRECTION,Unsupported,TJAPlayer2 for.PC -#HIDDEN,Unsupported,TJAPlayer2 for.PC #SENOTECHANGE,Unsupported,TJAPlayer3 v1.4.0 #NEXTSONG,Unsupported,TJAPlayer3 v1.5.0 #PAPAMAMA,Unsupported,TJAPlayer3-f v1.7.2.0 diff --git a/libs/tja.py b/libs/tja.py index b78dd7c..e9fba6c 100644 --- a/libs/tja.py +++ b/libs/tja.py @@ -1256,7 +1256,7 @@ class TJAParser: # Do not modify bpm, it needs to be changed live by bpmchange bpmchange = parsed_bpm / bpmchange_last_bpm bpmchange_last_bpm = parsed_bpm - + bpmchange_timeline = TimelineObject() bpmchange_timeline.hit_ms = self.current_ms bpmchange_timeline.bpmchange = bpmchange @@ -1281,17 +1281,14 @@ class TJAParser: continue elif part.startswith("#DELAY"): delay_ms = float(part[6:]) * 1000 - if scroll_type == ScrollType.BMSCROLL or scroll_type == ScrollType.HBSCROLL: - if delay_ms <= 0: - # No changes if not positive - pass - else: - # Do not modify current_ms, it will be modified live - delay_current += delay_ms - - # Delays will be combined between notes, and attached to previous note + if delay_ms <= 0: + # No changes if not positive + pass else: - self.current_ms += delay_ms + # Do not modify current_ms, it will be modified live + delay_current += delay_ms + + # Delays will be combined between notes, and attached to previous note continue elif part.startswith("#SUDDEN"): parts = part.split() diff --git a/scenes/game.py b/scenes/game.py index 395a302..4dd5aa2 100644 --- a/scenes/game.py +++ b/scenes/game.py @@ -415,7 +415,7 @@ class Player: self.bpm = 120 if self.timeline and hasattr(self.timeline[self.timeline_index], 'bpm'): self.bpm = self.timeline[self.timeline_index].bpm - # Handle HBSCROLL, BMSCROLL (pre-modify hit_ms, so that notes can't be literally hit, but are still visually different) - basically it applies the transformations of #BPMCHANGE and #DELAY to hit_ms, so that notes can't be hit even if its visaulyl + # Handle HBSCROLL, BMSCROLL (pre-modify hit_ms, so that notes can't be literally hit, but are still visually different) - basically it applies the transformations of #BPMCHANGE and #DELAY to hit_ms, so that notes can't be hit even if its visaulyl for i, o in enumerate(self.timeline): if hasattr(o, 'bpmchange'): hit_ms = o.hit_ms @@ -435,7 +435,7 @@ class Player: for i2 in range(i + 1, len(self.timeline)): o2 = self.timeline[i2] o2.hit_ms += delay - + # Decide end_time after all transforms have been applied self.end_time = 0 if self.play_notes: @@ -1067,7 +1067,7 @@ class Player: # Check if it ended if ms_from_start >= self.delay_end: delay = self.delay_end - self.delay_start - for note in chain(self.play_notes, self.current_bars, self.draw_bar_list): + for note in chain(self.don_notes, self.kat_notes, self.other_notes, self.current_bars, self.draw_bar_list): note.load_ms += delay self.delay_start = None self.delay_end = None