From 4d73e0cc475f7195261cfff3592eb01b9192aac2 Mon Sep 17 00:00:00 2001 From: Kade <26305836+Kade-github@users.noreply.github.com> Date: Thu, 19 Sep 2024 01:20:16 -0700 Subject: [PATCH] fix some interesting issues with this redundant trace removal --- source/funkin/Conductor.hx | 11 ++++++++++- source/funkin/play/Countdown.hx | 7 ------- source/funkin/play/PlayState.hx | 29 +++++++++++++++++------------ 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/source/funkin/Conductor.hx b/source/funkin/Conductor.hx index 3211f31f5..bd7c7196f 100644 --- a/source/funkin/Conductor.hx +++ b/source/funkin/Conductor.hx @@ -412,8 +412,17 @@ class Conductor var oldBeat:Float = this.currentBeat; var oldStep:Float = this.currentStep; + // If the song is playing, limit the song position to the length of the song or beginning of the song. + if (FlxG.sound.music != null && FlxG.sound.music.playing) + { + this.songPosition = Math.min(currentLength, Math.max(0, songPos)); + } + else + { + this.songPosition = songPos; + } + // Set the song position we are at (for purposes of calculating note positions, etc). - this.songPosition = Math.min(currentLength, Math.max(0, songPos)); currentTimeChange = timeChanges[0]; if (this.songPosition > 0.0) diff --git a/source/funkin/play/Countdown.hx b/source/funkin/play/Countdown.hx index c883006a0..643883a43 100644 --- a/source/funkin/play/Countdown.hx +++ b/source/funkin/play/Countdown.hx @@ -29,11 +29,6 @@ class Countdown */ public static var soundSuffix:String = ''; - /** - * Whether the countdown has finished. - */ - public static var finished:Bool = false; - /** * Which alternate graphic on countdown to use. * You can set this via script. @@ -58,7 +53,6 @@ class Countdown */ public static function performCountdown():Bool { - finished = false; countdownStep = BEFORE; var cancelled:Bool = propagateCountdownEvent(countdownStep); if (cancelled) @@ -107,7 +101,6 @@ class Countdown if (countdownStep == AFTER) { - finished = true; stopCountdown(); } }, 5); // Before, 3, 2, 1, GO!, After diff --git a/source/funkin/play/PlayState.hx b/source/funkin/play/PlayState.hx index 06dd5f95e..4e81d3a83 100644 --- a/source/funkin/play/PlayState.hx +++ b/source/funkin/play/PlayState.hx @@ -687,7 +687,11 @@ class PlayState extends MusicBeatSubState } Conductor.instance.mapTimeChanges(currentChart.timeChanges); - Conductor.instance.update((Conductor.instance.beatLengthMs * -5) + startTimestamp); + var pre:Float = (Conductor.instance.beatLengthMs * -5) + startTimestamp; + + trace('Attempting to start at ' + pre); + + Conductor.instance.update(pre); // The song is now loaded. We can continue to initialize the play state. initCameras(); @@ -915,7 +919,7 @@ class PlayState extends MusicBeatSubState { // Do NOT apply offsets at this point, because they already got applied the previous frame! Conductor.instance.update(Conductor.instance.songPosition + elapsed * 1000, false); - if (Conductor.instance.songPosition - Conductor.instance.instrumentalOffset >= (startTimestamp) && Countdown.finished) + if (Conductor.instance.songPosition >= (startTimestamp + Conductor.instance.instrumentalOffset)) { trace("started song at " + Conductor.instance.songPosition); startSong(); @@ -1395,17 +1399,18 @@ class PlayState extends MusicBeatSubState // activeNotes.sort(SortUtil.byStrumtime, FlxSort.DESCENDING); } - var correctSync:Float = Math.min(FlxG.sound.music.length, Math.max(0, Conductor.instance.songPosition - Conductor.instance.instrumentalOffset)); - - if (!startingSong - && FlxG.sound.music != null - && (Math.abs(FlxG.sound.music.time - correctSync) > 100 || Math.abs(vocals.checkSyncError(correctSync)) > 100)) + if (FlxG.sound.music != null) { - trace("VOCALS NEED RESYNC"); - if (vocals != null) trace(vocals.checkSyncError(correctSync)); - trace(FlxG.sound.music.time); - trace(correctSync); - resyncVocals(); + var correctSync:Float = Math.min(FlxG.sound.music.length, Math.max(0, Conductor.instance.songPosition - Conductor.instance.instrumentalOffset)); + + if (!startingSong && (Math.abs(FlxG.sound.music.time - correctSync) > 100 || Math.abs(vocals.checkSyncError(correctSync)) > 100)) + { + trace("VOCALS NEED RESYNC"); + if (vocals != null) trace(vocals.checkSyncError(correctSync)); + trace(FlxG.sound.music.time); + trace(correctSync); + resyncVocals(); + } } // Only bop camera if zoom level is below 135%