From 374c042ad020fd8b60adf6c9814f905f0f56d919 Mon Sep 17 00:00:00 2001 From: EliteMasterEric Date: Tue, 23 Apr 2024 18:32:07 -0400 Subject: [PATCH] Fix a critical issue causing instrumental variations to not load on web. --- source/funkin/play/song/Song.hx | 13 +++++++++---- source/funkin/ui/transition/LoadingState.hx | 2 +- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/source/funkin/play/song/Song.hx b/source/funkin/play/song/Song.hx index d219dc2f6..e71ae3213 100644 --- a/source/funkin/play/song/Song.hx +++ b/source/funkin/play/song/Song.hx @@ -609,28 +609,33 @@ class SongDifficulty return cast events; } - public function cacheInst(instrumental = ''):Void + public function getInstPath(instrumental = ''):String { if (characters != null) { if (instrumental != '' && characters.altInstrumentals.contains(instrumental)) { var instId = '-$instrumental'; - FlxG.sound.cache(Paths.inst(this.song.id, instId)); + return Paths.inst(this.song.id, instId); } else { // Fallback to default instrumental. var instId = (characters.instrumental ?? '') != '' ? '-${characters.instrumental}' : ''; - FlxG.sound.cache(Paths.inst(this.song.id, instId)); + return Paths.inst(this.song.id, instId); } } else { - FlxG.sound.cache(Paths.inst(this.song.id)); + return Paths.inst(this.song.id); } } + public function cacheInst(instrumental = ''):Void + { + FlxG.sound.cache(getInstPath(instrumental)); + } + public function playInst(volume:Float = 1.0, looped:Bool = false):Void { var suffix:String = (variation != null && variation != '' && variation != 'default') ? '-$variation' : ''; diff --git a/source/funkin/ui/transition/LoadingState.hx b/source/funkin/ui/transition/LoadingState.hx index ec6621ee3..3b53e1b4a 100644 --- a/source/funkin/ui/transition/LoadingState.hx +++ b/source/funkin/ui/transition/LoadingState.hx @@ -77,7 +77,7 @@ class LoadingState extends MusicBeatSubState var difficulty:String = playParams.targetDifficulty ?? Constants.DEFAULT_DIFFICULTY; var variation:String = playParams.targetVariation ?? Constants.DEFAULT_VARIATION; var targetChart:SongDifficulty = playParams.targetSong?.getDifficulty(difficulty, variation); - var instPath:String = Paths.inst(targetChart.song.id); + var instPath:String = targetChart.getInstPath(playParams.targetInstrumental); var voicesPaths:Array = targetChart.buildVoiceList(); checkLoadSong(instPath);