From 1f1fe62a06827f2487fb99d45b5a551dc07ed454 Mon Sep 17 00:00:00 2001
From: AppleHair <95587502+AppleHair@users.noreply.github.com>
Date: Fri, 14 Jun 2024 16:53:33 +0300
Subject: [PATCH] [BUGFIX] Fixed Ranks not appearing in freeplay for custom
 variations

Freeplay tries to access a song's rank using the current difficulty name alone, but custom variation ranks are being saved with a variation prefix. This PR makes freeplay look for the variation prefix when necessary.
---
 source/funkin/ui/freeplay/FreeplayState.hx | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/source/funkin/ui/freeplay/FreeplayState.hx b/source/funkin/ui/freeplay/FreeplayState.hx
index 0caaf4591..23c0f6afb 100644
--- a/source/funkin/ui/freeplay/FreeplayState.hx
+++ b/source/funkin/ui/freeplay/FreeplayState.hx
@@ -2094,8 +2094,13 @@ class FreeplaySongData
     {
       this.albumId = songDifficulty.album;
     }
+    
+    // TODO: This line of code makes me sad, but you can't really fix it without a breaking migration.
+    // `easy`, `erect`, `normal-pico`, etc.
+    var suffixedDifficulty = (songDifficulty.variation != Constants.DEFAULT_VARIATION
+      && songDifficulty.variation != 'erect') ? '$currentDifficulty-${songDifficulty.variation}' : currentDifficulty;
 
-    this.scoringRank = Save.instance.getSongRank(songId, currentDifficulty);
+    this.scoringRank = Save.instance.getSongRank(songId, suffixedDifficulty);
 
     this.isNew = song.isSongNew(currentDifficulty);
   }