diff --git a/assets b/assets index 62ae1154b..c3ce920f1 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 62ae1154ba7d751c96cea208c8f2e2d841a4f1c6 +Subproject commit c3ce920f162ad53cb510557b3bc69ab9805f48d7 diff --git a/source/funkin/data/song/SongData.hx b/source/funkin/data/song/SongData.hx index 6fd54b8b6..663dcc9bd 100644 --- a/source/funkin/data/song/SongData.hx +++ b/source/funkin/data/song/SongData.hx @@ -281,6 +281,8 @@ class SongPlayData /** * The variations this song has. The associated metadata files should exist. */ + @:default([]) + @:optional public var songVariations:Array; /** diff --git a/source/funkin/data/song/migrator/SongData_v2_0_0.hx b/source/funkin/data/song/migrator/SongData_v2_0_0.hx index 62e3faf4c..751ba4a52 100644 --- a/source/funkin/data/song/migrator/SongData_v2_0_0.hx +++ b/source/funkin/data/song/migrator/SongData_v2_0_0.hx @@ -81,6 +81,8 @@ class SongPlayData_v2_0_0 // ========== // UNMODIFIED VALUES // ========== + @:default([]) + @:optional public var songVariations:Array; public var difficulties:Array; diff --git a/source/funkin/data/song/migrator/SongData_v2_1_0.hx b/source/funkin/data/song/migrator/SongData_v2_1_0.hx index 57e4102d9..192c440e0 100644 --- a/source/funkin/data/song/migrator/SongData_v2_1_0.hx +++ b/source/funkin/data/song/migrator/SongData_v2_1_0.hx @@ -91,6 +91,8 @@ class SongPlayData_v2_1_0 // ========== // UNMODIFIED VALUES // ========== + @:default([]) + @:optional public var songVariations:Array; public var difficulties:Array; public var characters:SongData.SongCharacterData; diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx index 4ae2a22f0..37e1260c0 100644 --- a/source/funkin/ui/freeplay/FreeplayState.hx +++ b/source/funkin/ui/freeplay/FreeplayState.hx @@ -1206,6 +1206,15 @@ class DifficultySprite extends FlxSprite difficultyId = diffId; - loadGraphic(Paths.image('freeplay/freeplay' + diffId)); + if (Assets.exists(Paths.file('images/freeplay/freeplay${diffId}.xml'))) + { + this.frames = Paths.getSparrowAtlas('freeplay/freeplay${diffId}'); + this.animation.addByPrefix('idle', 'idle0', 24, true); + if (Preferences.flashingLights) this.animation.play('idle'); + } + else + { + this.loadGraphic(Paths.image('freeplay/freeplay' + diffId)); + } } } diff --git a/source/funkin/ui/story/StoryMenuState.hx b/source/funkin/ui/story/StoryMenuState.hx index e5bb6c34c..456988873 100644 --- a/source/funkin/ui/story/StoryMenuState.hx +++ b/source/funkin/ui/story/StoryMenuState.hx @@ -265,7 +265,7 @@ class StoryMenuState extends MusicBeatState { difficultySprite.frames = Paths.getSparrowAtlas('storymenu/difficulties/${diff}'); difficultySprite.animation.addByPrefix('idle', 'idle0', 24, true); - difficultySprite.animation.play('idle'); + if (Preferences.flashingLights) difficultySprite.animation.play('idle'); } else { @@ -484,7 +484,8 @@ class StoryMenuState extends MusicBeatState if (hasChanged) { buildDifficultySprite(); - funnyMusicThing(); + // Disable the funny music thing for now. + // funnyMusicThing(); } }