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

@ -124,7 +124,7 @@ namespace osu.Game.Tests.Visual.Gameplay
private void newJudgement(double offset = 0)
{
var judgement = new JudgementResult(new HitObject(), new Judgement())
var judgement = new JudgementResult(new ConvertHitObject(), new Judgement())
{
TimeOffset = offset == 0 ? RNG.Next(-150, 150) : offset,
Type = HitResult.Perfect,