From 92162bfdadf23bb05023ff4f724fb1dd601ca7e6 Mon Sep 17 00:00:00 2001
From: EliteMasterEric <ericmyllyoja@gmail.com>
Date: Thu, 28 Sep 2023 16:49:01 -0400
Subject: [PATCH 1/2] Fix crash handler without breaking HaxeUI

---
 hmm.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/hmm.json b/hmm.json
index 47460facf..fdaf753f7 100644
--- a/hmm.json
+++ b/hmm.json
@@ -139,7 +139,7 @@
       "name": "openfl",
       "type": "git",
       "dir": null,
-      "ref": "d33d489a137ff8fdece4994cf1302f0b6334ed08",
+      "ref": "de9395d2f367a80f93f082e1b639b9cde2258bf1",
       "url": "https://github.com/EliteMasterEric/openfl"
     },
     {
@@ -160,4 +160,4 @@
       "version": "0.11.0"
     }
   ]
-}
\ No newline at end of file
+}

From b6752531bf9300397a2ed2c4e56be54e062b42b4 Mon Sep 17 00:00:00 2001
From: EliteMasterEric <ericmyllyoja@gmail.com>
Date: Fri, 29 Sep 2023 22:29:32 -0400
Subject: [PATCH 2/2] Add chart editor theme

---
 assets                                        |  2 +-
 .../charting/ChartEditorDialogHandler.hx      |  5 ++++
 .../ui/debug/charting/ChartEditorState.hx     | 28 +++++++++++++++++++
 3 files changed, 34 insertions(+), 1 deletion(-)

diff --git a/assets b/assets
index a62e7e50d..e0e56cb3c 160000
--- a/assets
+++ b/assets
@@ -1 +1 @@
-Subproject commit a62e7e50d59c14d256c75da651b79dea77e1620e
+Subproject commit e0e56cb3cdb1b4394c744d5c1502cdb2629fa9b6
diff --git a/source/funkin/ui/debug/charting/ChartEditorDialogHandler.hx b/source/funkin/ui/debug/charting/ChartEditorDialogHandler.hx
index 6f44f89a2..3bb945fc8 100644
--- a/source/funkin/ui/debug/charting/ChartEditorDialogHandler.hx
+++ b/source/funkin/ui/debug/charting/ChartEditorDialogHandler.hx
@@ -83,6 +83,7 @@ class ChartEditorDialogHandler
     linkCreateBasic.onClick = function(_event) {
       // Hide the welcome dialog
       dialog.hideDialog(DialogButton.CANCEL);
+      state.stopWelcomeMusic();
 
       //
       // Create Song Wizard
@@ -95,6 +96,7 @@ class ChartEditorDialogHandler
     linkImportChartLegacy.onClick = function(_event) {
       // Hide the welcome dialog
       dialog.hideDialog(DialogButton.CANCEL);
+      state.stopWelcomeMusic();
 
       // Open the "Import Chart" dialog
       openImportChartWizard(state, 'legacy', false);
@@ -105,6 +107,7 @@ class ChartEditorDialogHandler
     buttonBrowse.onClick = function(_event) {
       // Hide the welcome dialog
       dialog.hideDialog(DialogButton.CANCEL);
+      state.stopWelcomeMusic();
 
       // Open the "Open Chart" dialog
       openBrowseWizard(state, false);
@@ -133,6 +136,7 @@ class ChartEditorDialogHandler
       linkTemplateSong.text = songName;
       linkTemplateSong.onClick = function(_event) {
         dialog.hideDialog(DialogButton.CANCEL);
+        state.stopWelcomeMusic();
 
         // Load song from template
         state.loadSongAsTemplate(targetSongId);
@@ -141,6 +145,7 @@ class ChartEditorDialogHandler
       splashTemplateContainer.addComponent(linkTemplateSong);
     }
 
+    state.fadeInWelcomeMusic();
     return dialog;
   }
 
diff --git a/source/funkin/ui/debug/charting/ChartEditorState.hx b/source/funkin/ui/debug/charting/ChartEditorState.hx
index add65c5bf..e8887496e 100644
--- a/source/funkin/ui/debug/charting/ChartEditorState.hx
+++ b/source/funkin/ui/debug/charting/ChartEditorState.hx
@@ -751,6 +751,11 @@ class ChartEditorState extends HaxeUIState
    */
   // ==============================
 
+  /**
+   * The chill audio track that plays when you open the Chart Editor.
+   */
+  public var welcomeMusic:FlxSound = new FlxSound();
+
   /**
    * The audio track for the instrumental.
    * `null` until an instrumental track is loaded.
@@ -1249,6 +1254,9 @@ class ChartEditorState extends HaxeUIState
     // Get rid of any music from the previous state.
     FlxG.sound.music.stop();
 
+    // Play the welcome music.
+    setupWelcomeMusic();
+
     buildDefaultSongData();
 
     buildBackground();
@@ -1273,6 +1281,26 @@ class ChartEditorState extends HaxeUIState
     ChartEditorDialogHandler.openWelcomeDialog(this, false);
   }
 
+  function setupWelcomeMusic()
+  {
+    this.welcomeMusic.loadEmbedded(Paths.music('chartEditorLoop/chartEditorLoop'));
+    this.welcomeMusic.looped = true;
+    // this.welcomeMusic.play();
+    // fadeInWelcomeMusic();
+  }
+
+  public function fadeInWelcomeMusic():Void
+  {
+    this.welcomeMusic.play();
+    this.welcomeMusic.fadeIn(4, 0, 1.0);
+  }
+
+  public function stopWelcomeMusic():Void
+  {
+    // this.welcomeMusic.fadeOut(4, 0);
+    this.welcomeMusic.pause();
+  }
+
   function buildDefaultSongData():Void
   {
     selectedVariation = Constants.DEFAULT_VARIATION;