1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-16 13:17:26 +08:00
Commit Graph

21 Commits

Author SHA1 Message Date
Dean Herbert
451ba1c861
Ensure PresentGameplay doesn't get stuck in loop if no beatmaps available 2024-01-16 15:13:08 +09:00
Bartłomiej Dach
f239d03d75
Forcibly change ruleset to correct one before entering gameplay from main menu
Closes #25663 (again).

As it turns out, in some scenarios it can be the case that the current
game-global `Beatmap` is not valid for the current game-global
`Ruleset`. The validity of one and the other in conjunction is only
really validated by the song select screen; elsewhere there is no
guarantee that the global beatmap is playable using the global ruleset.

However, this only comes up in very specific circumstances, namely one:
when trying to autoplay a catch beatmap with osu! ruleset globally
active via the skin editor flow.

`Player` is responsible for retrieving the beatmap to be played. It does
so by invoking the appropriate beatmap converter and asking it if the
beatmap can be converted:

	6d64538d7a/osu.Game/Beatmaps/WorkingBeatmap.cs (L262-L266)

If the code above throws, `Player` actually silently covers for this, by
trying the beatmap's default ruleset instead:

	6d64538d7a/osu.Game/Screens/Play/Player.cs (L529-L536)

However, for the pairing of osu! ruleset and catch beatmap, this fails,
as `OsuBeatmapConverter`'s condition necessary for permitting conversion
is that the objects have a defined position:

	6d64538d7a/osu.Game.Rulesets.Osu/Beatmaps/OsuBeatmapConverter.cs (L25)

which they will do, due to the fact that all catch beatmaps are really
just osu! beatmaps but with conversion steps applied, and thus `Player`
succeeds to load the catch beatmap in osu! ruleset.

In the skin editor scenario, this would lead to the secondary failure
of the skin editor trying to apply `CatchModAutoplay` on top of all
of that, which would fail at the hard-cast of the beatmap
to `CatchBeatmap`.
2023-12-06 10:35:41 +01:00
Dean Herbert
ca991f1f54
Move flags local to EndlessPlayer 2023-12-06 17:18:35 +09:00
Dean Herbert
c5a08a0711
Remove unused using statement 2023-12-04 23:06:08 +09:00
Bartłomiej Dach
5512298d60
Trim unused resolved bindable 2023-12-04 15:01:23 +01:00
Bartłomiej Dach
8754fa40f4
Source autoplay mod from beatmap about to be presented rather than ambient global 2023-12-04 14:42:51 +01:00
Bartłomiej Dach
063694f544
Do not attempt to load gameplay scene if current beatmap is dummy 2023-12-04 14:42:51 +01:00
Bartłomiej Dach
9d39b70e38
Fix endless player not handling load failure 2023-12-04 14:42:51 +01:00
Bartłomiej Dach
055fb5bd8f
Do not set initial activity in skin editor endless player
Seems like an overreach to say that the user is "watching a replay"
there.
2023-12-04 14:42:51 +01:00
Dean Herbert
7153c823e8
Choose a better beatmap if the intro is still playing
Also skip intro time.
2023-11-24 17:47:20 +09:00
Dean Herbert
95229cb336
Show gameplay when loading the skin editor from the main menu 2023-11-24 17:47:20 +09:00
Dean Herbert
191e8c5487
Add note about skin editor reload jank 2023-11-23 16:39:05 +09:00
Dean Herbert
aa749aeb73
Save any unsaved changes in the skin editor when game changes screens
Closes https://github.com/ppy/osu/issues/25494.
2023-11-21 17:49:57 +09:00
Bartłomiej Dach
aea5eb37dc
Remove unused using directive 2023-06-22 20:24:44 +02:00
Dean Herbert
cb0f642ad7 Change skin editor flow to always save on toggle
This also moves the beatmap skin disable toggle to on toggle, in line
with review feedback.

I've decided to always apply the disable, not just on the `Player`
screen. It should be assumed that if a user is in the skin editor they
are never going to need access to this anyway.
2023-06-21 16:14:47 +09:00
Dean Herbert
366dd96875 Use bindable lease instead of reimplementing the same thing locally 2023-06-21 16:09:54 +09:00
Dean Herbert
d7b486e2ac Disable beatmap skinning when entering the skin editor 2023-06-20 19:18:17 +09:00
Dean Herbert
925deb7ca5 Make skin editor clipboard shared between screens and skins to allow moving elements over 2023-02-15 19:35:37 +09:00
Dean Herbert
5ca5f04794 Add parameter hint for optional bool value 2023-02-03 15:18:40 +09:00
Dean Herbert
015f4f2b38 Avoid showing skin save message when changing scenes after making no changes 2023-02-02 18:42:37 +09:00
Dean Herbert
8dc2e6872e Move skin editor to overlays namespace 2023-02-02 14:00:31 +09:00