diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 26958a467..27208689b 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -1,6 +1,12 @@ # Troubleshooting Common Issues - Weird macro error with a very tall call stack: Restart Visual Studio Code + - NOTE: This is caused by Polymod somewhere, and seems to only occur when there is another compile error somewhere in the program. There is a bounty up for it. + - `Get Thread Context Failed`: Turn off other expensive applications while building + - `Type not found: T1`: This is thrown by `json2object`, make sure the data type of `@:default` is correct. - NOTE: `flixel.util.typeLimit.OneOfTwo` isn't supported. + +- `Class lists not properly generated. Try cleaning out your export folder, restarting your IDE, and rebuilding your project.` + - This is a bug specific to HTML5. Simply perform the steps listed (don't forget to restart the IDE too). diff --git a/hmm.json b/hmm.json index 593011448..64a05b16f 100644 --- a/hmm.json +++ b/hmm.json @@ -11,7 +11,7 @@ "name": "flixel", "type": "git", "dir": null, - "ref": "8437a86aa5dafdb3f5dcb91d212cb10a4ee6e53b", + "ref": "da04cbda49a4c5eebe93fb61296dbaf4f0f1b556", "url": "https://github.com/EliteMasterEric/flixel" }, { @@ -144,7 +144,7 @@ "name": "polymod", "type": "git", "dir": null, - "ref": "e8a07b81e3bc535238ad8649e38f5d43c46f1b65", + "ref": "41aea83dbc267234b301434553ce8c17742b8ab7", "url": "https://github.com/larsiusprime/polymod" }, { diff --git a/source/funkin/ui/freeplay/CapsuleText.hx b/source/funkin/ui/freeplay/CapsuleText.hx index 1a5a0a335..3a520e015 100644 --- a/source/funkin/ui/freeplay/CapsuleText.hx +++ b/source/funkin/ui/freeplay/CapsuleText.hx @@ -38,12 +38,19 @@ class CapsuleText extends FlxSpriteGroup function set_text(value:String):String { + if (value == null) return value; + if (blurredText == null || whiteText == null) + { + trace('WARN: Capsule not initialized properly'); + return text = value; + } + blurredText.text = value; whiteText.text = value; whiteText.textField.filters = [ new openfl.filters.GlowFilter(0x00ccff, 1, 5, 5, 210, BitmapFilterQuality.MEDIUM), // new openfl.filters.BlurFilter(5, 5, BitmapFilterQuality.LOW) ]; - return value; + return text = value; } } diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 37e1260c0..371021114 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -998,6 +998,11 @@ class FreeplayState extends MusicBeatSubState PlayStatePlaylist.isStoryMode = false; var targetSong:Song = SongRegistry.instance.fetchEntry(cap.songData.songId); + if (targetSong == null) + { + FlxG.log.warn('WARN: could not find song with id (${cap.songData.songId})'); + return; + } var targetDifficulty:String = currentDifficulty; // TODO: Implement Pico into the interface properly. diff --git a/source/funkin/ui/transition/LoadingState.hx b/source/funkin/ui/transition/LoadingState.hx index 69590bfe3..a223a4123 100644 --- a/source/funkin/ui/transition/LoadingState.hx +++ b/source/funkin/ui/transition/LoadingState.hx @@ -1,24 +1,25 @@ package funkin.ui.transition; -import funkin.play.PlayStatePlaylist; import flixel.FlxSprite; import flixel.FlxState; -import funkin.graphics.shaders.ScreenWipeShader; import flixel.math.FlxMath; +import flixel.tweens.FlxEase; +import flixel.tweens.FlxTween; import flixel.util.FlxTimer; +import funkin.graphics.shaders.ScreenWipeShader; import funkin.play.PlayState; +import funkin.play.PlayStatePlaylist; +import funkin.play.song.Song.SongDifficulty; +import funkin.ui.mainmenu.MainMenuState; +import funkin.ui.MusicBeatState; import haxe.io.Path; import lime.app.Future; -import flixel.tweens.FlxTween; -import funkin.ui.MusicBeatState; import lime.app.Promise; import lime.utils.AssetLibrary; -import flixel.tweens.FlxEase; import lime.utils.AssetManifest; import lime.utils.Assets as LimeAssets; -import openfl.utils.Assets; -import funkin.ui.mainmenu.MainMenuState; import openfl.filters.ShaderFilter; +import openfl.utils.Assets; class LoadingState extends MusicBeatState { @@ -59,18 +60,20 @@ class LoadingState extends MusicBeatState initSongsManifest().onComplete(function(lib) { callbacks = new MultiCallback(onLoad); var introComplete = callbacks.add('introComplete'); - // checkLoadSong(getSongPath()); - // if (PlayState.currentSong.needsVoices) - // { - // var files = PlayState.currentSong.voiceList; - // - // if (files == null) files = ['']; // loads with no file name assumption, to load 'Voices.ogg' or whatev normally - // - // for (sndFile in files) - // { - // checkLoadSong(getVocalPath(sndFile)); - // } - // } + + if (Std.isOfType(target, PlayState)) + { + var targetPlayState:PlayState = cast target; + var targetChart:SongDifficulty = targetPlayState.currentChart; + var instPath:String = Paths.inst(targetChart.song.id); + var voicesPaths:Array = targetChart.buildVoiceList(); + + checkLoadSong(instPath); + for (voicePath in voicesPaths) + { + checkLoadSong(voicePath); + } + } checkLibrary('shared'); checkLibrary(PlayStatePlaylist.campaignId);