Clear existing transforms on DHO return to pool

This commit is contained in:
Bartłomiej Dach 2020-11-15 19:45:49 +01:00
parent 42de4437cc
commit 9c0a0031d6

View File

@ -287,6 +287,8 @@ namespace osu.Game.Rulesets.Objects.Drawables
HitObject = null; HitObject = null;
lifetimeEntry = null; lifetimeEntry = null;
clearExistingStateTransforms();
hasHitObjectApplied = false; hasHitObjectApplied = false;
} }
@ -403,8 +405,7 @@ namespace osu.Game.Rulesets.Objects.Drawables
double transformTime = HitObject.StartTime - InitialLifetimeOffset; double transformTime = HitObject.StartTime - InitialLifetimeOffset;
base.ApplyTransformsAt(double.MinValue, true); clearExistingStateTransforms();
base.ClearTransformsAfter(double.MinValue, true);
using (BeginAbsoluteSequence(transformTime, true)) using (BeginAbsoluteSequence(transformTime, true))
UpdateInitialTransforms(); UpdateInitialTransforms();
@ -432,6 +433,12 @@ namespace osu.Game.Rulesets.Objects.Drawables
PlaySamples(); PlaySamples();
} }
private void clearExistingStateTransforms()
{
base.ApplyTransformsAt(double.MinValue, true);
base.ClearTransformsAfter(double.MinValue, true);
}
/// <summary> /// <summary>
/// Apply (generally fade-in) transforms leading into the <see cref="HitObject"/> start time. /// Apply (generally fade-in) transforms leading into the <see cref="HitObject"/> start time.
/// The local drawable hierarchy is recursively delayed to <see cref="LifetimeStart"/> for convenience. /// The local drawable hierarchy is recursively delayed to <see cref="LifetimeStart"/> for convenience.