ppy / osu

rhythm is just a *click* away!
https://osu.ppy.sh
MIT License
15.32k stars 2.28k forks source link

`EffectControlPoint`s don't save correctly when scroll speed is adjusted on a ruleset that doesn't support it #21139

Closed NovaliX-Dev closed 1 year ago

NovaliX-Dev commented 1 year ago

Type

Cosmetic

Bug description

When effects are set in the timing panel, the editor saves them weirdly.

Steps to reproduce

Kiai bug:

  1. Open the editor and go to the timing section
  2. Add a first time point with the kiai effect turned on. Set a random value.
  3. Add a second time point with the same effect and another value.
  4. Save the map, close it and reopen it.

Skip Bar Line bug:

  1. Open the editor and go to the timing section
  2. Add a time point with the "Skip Bar Line" option turned on. Set a random value.
  3. Save the map, close it and reopen it.

Screenshots or videos

Kiai bug

https://user-images.githubusercontent.com/79244938/200195769-b59568bd-10be-4415-9d45-b56dd940d048.mp4

Skip Bar Line bug

https://user-images.githubusercontent.com/79244938/200195851-678abdb2-1f5c-44a5-bec6-164c9634e345.mp4

Version

2022.1101.0-lazer

Platform informations

Os : Windows 11

Logs

database.log input.log network.log performance.log runtime.log updater.log

peppy commented 1 year ago

This is a touch awkward. The decoding of scroll speed is only done for rulesets which support it:

https://github.com/ppy/osu/blob/6177df2a2486dfbbb98cbd57fb408c61b8c4e534/osu.Game/Beatmaps/Formats/LegacyBeatmapDecoder.cs#L453-L454

which leads to cascading failures due to equality checks going weird.

This would be fixed if we moved to a new serialisation format (at which point we wouldn't be transferring scroll speed values from current SV). I'm not sure how to better handle it until then. Maybe the setting should just be disabled on rulesets like osu!?

NovaliX-Dev commented 1 year ago

So Scroll Speed are not supposed to be used in osu! mode. What is their primary use ?

I found them useful for the kiai effect for changing the intensity.