Fix wrong InitialLifetimeOffset is used for a non-pooled DHO.

HitObjectLifetimeEntry's InitialLifetimeOffset is different from DrawableHitObject's InitialLifetimeOffset.
This commit is contained in:
ekrctb
2021-04-21 11:32:01 +09:00
parent 44ff08cce4
commit 73d3da1687

View File

@ -239,6 +239,11 @@ namespace osu.Game.Rulesets.Objects.Drawables
lifetimeEntry = newEntry;
// LifetimeStart is already computed using HitObjectLifetimeEntry's InitialLifetimeOffset.
// We override this with DHO's InitialLifetimeOffset for a non-pooled DHO.
if (newEntry is SyntheticHitObjectEntry)
lifetimeEntry.LifetimeStart = HitObject.StartTime - InitialLifetimeOffset;
LifetimeStart = lifetimeEntry.LifetimeStart;
LifetimeEnd = lifetimeEntry.LifetimeEnd;