Fix hitobjects with unknown lifetimes by enforcing non-null judgement

We've seen multiple cases where DrawableHitObject are stuck in the lifetime management container
due to not implementing a judgement (meaning they are never "hit" or "missed"). To avoid this going forward
CreateJudgement() must be implemented and return a non-null judgement.

This fixes BananaShower and JuiceStreams in osu!catch.

This also makes HitObject abstract and cleans up convert HitObject implementations.
This commit is contained in:
Dean Herbert
2020-02-23 13:01:30 +09:00
parent 66317f9fcd
commit ffc7eaa3f2
36 changed files with 72 additions and 105 deletions

View File

@ -27,7 +27,7 @@ namespace osu.Game.Rulesets.Osu.Tests
foreach (HitResult result in Enum.GetValues(typeof(HitResult)).OfType<HitResult>().Skip(1))
{
AddStep("Show " + result.GetDescription(), () => SetContents(() =>
new DrawableOsuJudgement(new JudgementResult(new HitObject(), new Judgement()) { Type = result }, null)
new DrawableOsuJudgement(new JudgementResult(new ConvertHitObject(), new Judgement()) { Type = result }, null)
{
Anchor = Anchor.Centre,
Origin = Anchor.Centre,