Skip to content
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

Sometimes undo slider changes set the anchor type to bezier #28888

Closed
cihe13375 opened this issue Jul 16, 2024 · 2 comments · Fixed by #29446
Closed

Sometimes undo slider changes set the anchor type to bezier #28888

cihe13375 opened this issue Jul 16, 2024 · 2 comments · Fixed by #29446
Labels
area:beatmap-parsing .osu file format parsing area:editor

Comments

@cihe13375
Copy link

cihe13375 commented Jul 16, 2024

Type

Game behaviour

Bug description

  1. create a straight slider
  2. change the first anchor type to perfect curve
  3. add an anchor in the middle
  4. drag the new anchor
  5. ctrl+z twice
  6. note that the first anchor type becomes bezier.

Also it can be seen that the slider is somehow extended when changing the anchor type in step (2), though idk if that's a bug.

Screenshots or videos

aaaa.mp4

Version

2024.625.2 (the video is recorded on a custom build but I can confirm the issue also exists on 2024.625.2 official release)

Logs

@bdach bdach self-assigned this Jul 17, 2024
@bdach bdach added the area:beatmap-parsing .osu file format parsing label Jul 17, 2024
@bdach
Copy link
Collaborator

bdach commented Jul 17, 2024

This is happening because the following part of beatmap decoder is running interference:

// Edge-case rules (to match stable).
if (type == PathType.PERFECT_CURVE)
{
int endPointLength = endPoint == null ? 0 : 1;
if (vertices.Length + endPointLength != 3)
type = PathType.BEZIER;
else if (isLinear(points[0], points[1], endPoint ?? points[2]))
{
// osu-stable special-cased colinear perfect curves to a linear path
type = PathType.LINEAR;
}
}

I'm not sure what the solution is here. A better serialisation format with no silent coercions of this sort, perhaps. Or a better editor change tracking system that does not rely on encoding/decoding the beatmap. Neither is probably happening in the nearest months.

@smoogipoo any better ideas?

@bdach bdach removed their assignment Jul 17, 2024
@smoogipoo
Copy link
Contributor

Other than perhaps using the beatmap version if that's even available, I don't have any better ideas right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:beatmap-parsing .osu file format parsing area:editor
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants