-
-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove slider velocity from DrumRoll
#24537
Conversation
Something tells me this is going to break elsewhere... For example this usage looks particularly suspect: osu/osu.Game/Beatmaps/Formats/LegacyBeatmapEncoder.cs Lines 268 to 278 in d2baffa
This is probably another manifestation of us over-complicating the beatmap format with control points, to a nigh point of unmaintainability, as I can't remember the reason why this was added in the first place. @peppy probably (hopefully) knows better than me. |
The code you mentioned doesn't do anything in the flow of encoding taiko beatmaps because |
I dunno, this change looks correct to me. But at this point we've moved things back and forth so many times that I've lost track how we wanted to play this scroll speed vs slider velocity thing. Probably gonna have to run like conversion or SR tests locally to confirm in practice. |
This change looks fine as far as my automated SR/PP tests observe: https://docs.google.com/spreadsheets/d/1bCKncunrtCtv5shXMPPb-jkpNZqXtKc7FQj7qrUQkgM/edit (sheet empty) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Relatively sure this is right
To recap so we're on the same page:
As mentioned by @OliBomby in #24537 (comment), the code mentioned is not run for taiko legacy encoding. The intention of the code is to ferry the now local slider velocities in osu (and catch i guess?) to the correct place in the legacy format. I don't think this is over-complicated. I think we're still moving in the correct direction to reduce complexity (moving away from global control points where possible, and maintaining the mapping only in decode/encode). Also this change looks correct and was likely an oversight. |
Removed
ISliderVelocity
fromDrumRoll
because it doesnt need it and it created the ability to edit the SV in the editor which shouldn't be possible, because changing it only breaks the drum roll duration.If you change the SV of a drum roll in the editor, save, and come back. The duration will have changed by a factor equal to how much you changed the SV from the scroll speed.
The SV was being used to calculate the scroll speed of the drum roll and it just happened to always be the same as the
ScrollSpeed
because of howLegacyBeatmapDecoder
works. Removing SV and using scroll speed directly makes the intention of the code a lot clearer.