Store Result.TimeAbsolute separately from offset

Calculating from TimeOffset is bad because it loses precision.
The result time won't change anymore
even If `HitObject.GetEndTime()` changes later.
This commit is contained in:
ekrctb
2023-01-24 15:35:06 +09:00
parent cc87923179
commit efef97d5be
4 changed files with 20 additions and 10 deletions

View File

@ -455,7 +455,7 @@ namespace osu.Game.Rulesets.UI
private void onNewResult(DrawableHitObject drawable, JudgementResult result)
{
// Not using result.TimeAbsolute because that might change and also there is a potential precision issue.
judgementResults.Push(new JudgementResultEntry(Time.Current, drawable.Entry.AsNonNull(), result));
judgementResults.Push(new JudgementResultEntry(drawable.Entry.AsNonNull(), result));
NewResult?.Invoke(drawable, result);
}
@ -466,8 +466,7 @@ namespace osu.Game.Rulesets.UI
RevertResult?.Invoke(result);
entry.HitObjectEntry.OnRevertResult();
result.TimeOffset = 0;
result.Type = HitResult.None;
result.Reset();
}
#region Editor logic