Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@cl8n
Copy link
Member

@cl8n cl8n commented Aug 10, 2025

was hoping this would be a super simple one but of course it didn't turn out that way πŸ˜‚

there's two things I'm unsure of:

first, the IAppliesJudgementResult thing -- this was my solution to the problem of HitResult not containing enough information to decide between sliderpoint10 and sliderpoint30 (for LargeTickHit, it could be either). it works as long as DrawableJudgement.Apply() is called again after the skinned judgement finishes loading, which is the case in normal usage of pooled judgements, but idk it just seems a bit finicky to me. it also required me to handle both textures in the same skin lookup, see my comment in OsuLegacySkinTransformer (fixed by changing where 10/30 appear to correspond to lazer's hit results directly)

fwiw, this same problem came up in what will be my next PR for geki and katu support. at the moment I'm using the same interface with the same drawbacks there.

second, I just can't figure out what's wrong with the "slider" case of the test scene. see the "TODO" comment there. I spent too long getting nowhere with fixing that so I'm hoping it'll be easier to identify the issue for someone with more experience on the project... (fixed by bdach)

@nagi-desuuu
Copy link

For what it's worth, is it going to be enabled only on classic mod with a very old legacy skin? (Looking at Elite Beat Osu)

@cl8n
Copy link
Member Author

cl8n commented Aug 11, 2025

For what it's worth, is it going to be enabled only on classic mod with a very old legacy skin? (Looking at Elite Beat Osu)

as in stable, they display only when the legacy skin version = 1


return base.GetDrawableComponent(lookup);

// If slider points are showing and tick misses aren't provided by this skin, don't look up tick misses from any further skins.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this seems like a very arbitrary decision, not sure what to think about it

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah it's just my opinion for what looks good. before I added this part, I thought it looked awkward for old skins to be displaying their own sliderpoints on hits alongside the now-default miss texture (or at least the skins I was using clashed pretty hard there). and in this case, the lack of a sliderpoint basically is the miss indicator anyway

Comment on lines 129 to 147
OsuHitObject hitObject = hitObjectIndex switch
{
0 => new SliderHeadCircle { StartTime = Time.Current, ClassicSliderBehaviour = classic },
1 => new SliderTick { StartTime = Time.Current },
2 => new SliderRepeat(slider) { StartTime = Time.Current },
3 => new SliderTailCircle(slider) { StartTime = Time.Current, ClassicSliderBehaviour = classic },
4 => slider,
_ => throw new UnreachableException(),
};

DrawableOsuHitObject drawableHitObject = hitObject switch
{
SliderHeadCircle head => new DrawableSliderHead(head),
SliderTick tick => new DrawableSliderTick(tick),
SliderRepeat repeat => new DrawableSliderRepeat(repeat),
SliderTailCircle tail => new DrawableSliderTail(tail),
Slider s => new DrawableSlider(s),
_ => throw new UnreachableException(),
};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we don't use this syntax in the project, please use plain switch

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed, is that just a style thing or there's some other reason?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not universally accepted by everyone so the consensus is to just not use it

@cl8n cl8n requested a review from bdach August 16, 2025 16:44
Copy link
Collaborator

@bdach bdach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

seems to work on a single random v1 skin I pulled from the forums, and the other skins don't look broken, so

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants