mirror of
https://github.com/Yonokid/PyTaiko.git
synced 2026-02-04 03:30:13 +01:00
delay hotfixes
This commit is contained in:
@@ -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
|
||||
|
||||
|
19
libs/tja.py
19
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()
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user