Fix taiko leaving behind empty judgements on legacy skins

This commit is contained in:
Bartłomiej Dach 2021-03-06 16:02:20 +01:00
parent b241749119
commit 06e42b4b4c
2 changed files with 6 additions and 10 deletions

View File

@ -35,7 +35,7 @@ public override Drawable GetDrawableComponent(ISkinComponent component)
{
// if a taiko skin is providing explosion sprites, hide the judgements completely
if (hasExplosion.Value)
return Drawable.Empty();
return Drawable.Empty().With(d => d.LifetimeEnd = double.MinValue);
}
if (!(component is TaikoSkinComponent taikoComponent))

View File

@ -150,17 +150,13 @@ private void runAnimation()
}
if (JudgementBody.Drawable is IAnimatableJudgement animatable)
{
var drawableAnimation = (Drawable)animatable;
animatable.PlayAnimation();
// a derived version of DrawableJudgement may be proposing a lifetime.
// if not adjusted (or the skinned portion requires greater bounds than calculated) use the skinned source's lifetime.
double lastTransformTime = drawableAnimation.LatestTransformEndTime;
if (LifetimeEnd == double.MaxValue || lastTransformTime > LifetimeEnd)
LifetimeEnd = lastTransformTime;
}
// a derived version of DrawableJudgement may be proposing a lifetime.
// if not adjusted (or the skinned portion requires greater bounds than calculated) use the skinned source's lifetime.
double lastTransformTime = JudgementBody.Drawable.LatestTransformEndTime;
if (LifetimeEnd == double.MaxValue || lastTransformTime > LifetimeEnd)
LifetimeEnd = lastTransformTime;
}
}