diff --git a/src/StageStats.cpp b/src/StageStats.cpp index 3888c69743..95f9dd2597 100644 --- a/src/StageStats.cpp +++ b/src/StageStats.cpp @@ -278,7 +278,7 @@ static HighScore FillInHighScore(const PlayerStageStats &pss, const PlayerState auto steps = SONGMAN->GetStepsByChartkey(hs.GetChartKey()); auto td = steps->GetTimingData(); SCOREMAN->SetAllTopScores(); // this is super lazy and a chart specific function should be made -mina - hs.timeStamps = td->ConvertReplayNoteRowsToTimestamps(pss.GetNoteRowVector()); + hs.timeStamps = td->ConvertReplayNoteRowsToTimestamps(pss.GetNoteRowVector(), hs.GetMusicRate()); DLMAN->UploadScore(&hs); hs.timeStamps.clear(); hs.timeStamps.shrink_to_fit(); diff --git a/src/TimingData.cpp b/src/TimingData.cpp index 848f075be5..56a343a031 100644 --- a/src/TimingData.cpp +++ b/src/TimingData.cpp @@ -1413,10 +1413,10 @@ float TimingData::WhereUAtBroNoOffset(float beat) const { return GetElapsedTimeFromBeatNoOffset(beat); } -vector TimingData::ConvertReplayNoteRowsToTimestamps(vector nrv) { +vector TimingData::ConvertReplayNoteRowsToTimestamps(vector nrv, float rate) { vector o; for (auto nr : nrv) - o.emplace_back(WhereUAtBroNoOffset(nr)); + o.emplace_back(WhereUAtBro(nr) / rate); return o; } diff --git a/src/TimingData.h b/src/TimingData.h index abbed54dc8..292fdff05b 100644 --- a/src/TimingData.h +++ b/src/TimingData.h @@ -483,7 +483,7 @@ class TimingData float WhereUAtBroNoOffset(float beat); float WhereUAtBro(int row); - vector ConvertReplayNoteRowsToTimestamps(vector nrv); + vector ConvertReplayNoteRowsToTimestamps(vector nrv, float rate); bool ValidSequentialAssumption = true; void InvalidateSequentialAssmption() { ValidSequentialAssumption = false; }