From 85d3f63c5076cd8e23ab6123b12ea854b5acc971 Mon Sep 17 00:00:00 2001 From: Goatgarien Date: Wed, 15 Feb 2023 06:54:56 -0800 Subject: [PATCH] Fixed note scaling to use time instead of measures --- BAKKA-Editor/CircleView.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/BAKKA-Editor/CircleView.cs b/BAKKA-Editor/CircleView.cs index 4a0a81c..1ec38fb 100644 --- a/BAKKA-Editor/CircleView.cs +++ b/BAKKA-Editor/CircleView.cs @@ -89,10 +89,21 @@ namespace BAKKA_Editor return EndMeasure.MeasureDecimal - CurrentMeasure; } + private float GetNoteScaleFromMeasure(Chart chart, float objectTime) + { + // Scale from 0-1 + float objectTimeAsTime = chart.GetTime(new BeatInfo(objectTime)); + float currentTime = chart.GetTime(new BeatInfo(CurrentMeasure)); + float totalTimeDisplayed = chart.GetTime(new BeatInfo(CurrentMeasure + GetTotalMeasureShowNotes(chart))) - currentTime; + float notescaleInit = 1 - ((objectTimeAsTime - currentTime) * (1 / totalTimeDisplayed)); + return notescaleInit; + } + private ArcInfo GetScaledRect(Chart chart, float objectTime) { ArcInfo info = new(); - float notescaleInit = 1 - ((objectTime - CurrentMeasure) * (1 / GetTotalMeasureShowNotes(chart))); // Scale from 0-1 + + float notescaleInit = GetNoteScaleFromMeasure(chart, objectTime); info.NoteScale = (float)Math.Pow(10.0f, notescaleInit) / 10.0f; float scaledRectSize = DrawRect.Width * info.NoteScale; float scaledRadius = scaledRectSize / 2.0f;