From a4b59d14bf34270bf04520320eabf3f11b5f2d29 Mon Sep 17 00:00:00 2001 From: Kolo <67389779+JustKolosaki@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:40:02 +0200 Subject: [PATCH] applySongRank fix fixes the bug with the percent being overriden when the song has the same letter rank but lower percent (eg. E Rank with 99% being overriden by E Rank with 93%) --- source/funkin/save/Save.hx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/funkin/save/Save.hx b/source/funkin/save/Save.hx index 2bbda15c0..74af9994e 100644 --- a/source/funkin/save/Save.hx +++ b/source/funkin/save/Save.hx @@ -598,11 +598,15 @@ class Save return; } + //percent also accounts for different ranks + var oldPerc = (previousScoreData.tallies.sick + previousScoreData.tallies.good) / previousScoreData.tallies.totalNotes; + var newPerc = (newScoreData.tallies.sick + newScoreData.tallies.good) / newScoreData.tallies.totalNotes; + // Set the high score and the high rank separately. var newScore:SaveScoreData = { - score: (previousScoreData.score > newScoreData.score) ? previousScoreData.score : newScoreData.score, - tallies: (previousRank > newRank) ? previousScoreData.tallies : newScoreData.tallies + score: Std.int(Math.max(previousScoreData.score, newScoreData.score)), + tallies: (oldPerc > newPerc ? previousScoreData.tallies : newScoreData.tallies) }; song.set(difficultyId, newScore);