1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 22:37:26 +08:00
Commit Graph

15365 Commits

Author SHA1 Message Date
Neku
d0519238a3
Implement beat-synchronized animation in skip overlay 2024-09-19 09:43:45 +02:00
Bartłomiej Dach
f6195c5515
Add to existing selection when dragging with control pressed
Closes https://github.com/ppy/osu/issues/29023.
2024-09-18 15:18:13 +02:00
Dean Herbert
ac507a3ba5
Remove unused parameter in applyActiveCriteria 2024-09-18 17:22:09 +09:00
Dean Herbert
743d509241
Also ensure filter is applied when returning to song select 2024-09-18 17:22:08 +09:00
Dean Herbert
c192a6a1d5
Fix song select crashes due to attempting to clear selection after load has already begun 2024-09-18 16:12:34 +09:00
Dean Herbert
8f49876fe7
Re-sync judgement counter display after replay frame reset 2024-09-18 15:28:11 +09:00
Dean Herbert
c46e9cbce3
Tidy up JudgementCounter classes 2024-09-18 15:28:10 +09:00
Bartłomiej Dach
f0e2b803de
Merge pull request #29766 from SchiavoAnto/29761-fix-blocked-info
Fix timing points being blocked by buttons in the editor
2024-09-08 18:37:59 +02:00
Bartłomiej Dach
7ec2e0e866
Refactor layout code to be a bit less haphazard
Visually the same, functionally much saner.
2024-09-08 16:30:09 +02:00
Bartłomiej Dach
f5c5614eef
Resolve existing colour provider instead of re-caching own one 2024-09-08 16:29:53 +02:00
Bartłomiej Dach
cefbc76490
Fix selection being dropped when changing carousel sort mode from difficulty sort
Closes https://github.com/ppy/osu/issues/29738.

This "regressed" in https://github.com/ppy/osu/pull/29639, but if I
didn't know better, I'd go as far as saying that this looks like a .NET
bug, because the fact that PR broke it looks not sane.

The TL;DR on this is that before the pull in question, the offending
`.Contains()` check that this commit modifies was called on a
`List<BeatmapSetInfo>`. The pull changed the collection type to
`BeatmapSetInfo[]`. That said, the call is a LINQ call, so all good,
right?

Not really. First off, the default overload resolution order means that
the previous code would call `List<T>.Contains()`, and not
`Enumerable.Contains<T>()`. Then again, why would that matter? In both
cases `T` is still `BeatmapSetInfo`, right? Well... about that...

It is difficult to tell for sure what precisely is happening here,
because of what looks like runtime magic. The end *symptom* is that the
old code ended up calling `Array<BeatmapSetInfo>.IndexOf()`, and the new
code ends up calling... `Array<object>.IndexOf()`.

So while yes, `BeatmapSetInfo` implements `IEquatable` and
the expectation would be that `Equals<BeatmapSetInfo>()` should be
getting called, the type elision to `object` means that we're back to
reference equality semantics, because that's what
`EqualityComparer.Default<object>` is.

A five-minute github search across dotnet/runtime yields this:

	c4792a228e/src/coreclr/vm/array.cpp (L984-L990)

Now again, if I didn't know better, I'd see that "OPTIMIZATION:"
comment, see what transpired in this scenario, and call that
optimisation invalid, because it changes semantics. But I *probably*
know that the dotnet team knows better and am probably just going to
take it for what it is, because blame on that code looks to be years
old and it's probably not a new behaviour. (I haven't tested empirically
if it is.)

Instead the fix is just to tell the `.Contains()` method to use the
correct comparer.
2024-09-08 16:06:35 +02:00
schiavoanto
2e6f17f253 Fixed wrong OverlayColourScheme 2024-09-08 16:04:10 +02:00
schiavoanto
cf23c6668c Added background color to hide beatmap background 2024-09-08 15:59:23 +02:00
Ianlucht
cd94d6e2bc fixed if statement format 2024-09-07 14:01:38 -06:00
Ianlucht
e6f81abc3b cleaned up whitespace 2024-09-07 13:57:12 -06:00
Ianlucht
170737b68f added DailyChallengeIntro to notification 2024-09-07 13:48:14 -06:00
Ianlucht
958bfde51d added DailyChallengeIntro to notification 2024-09-07 13:46:42 -06:00
schiavoanto
2bc6547d49 Code quality fix: added type 2024-09-07 16:23:23 +02:00
schiavoanto
32de8e9b2d Fixed ControlPointTable items being blocked by buttons 2024-09-07 16:15:00 +02:00
Dean Herbert
4c6eb89530
Fix beatmap difficulties not being split out on first load
Closes https://github.com/ppy/osu/issues/29728.
2024-09-07 22:14:03 +09:00
Dean Herbert
7f687d545d
Merge pull request #29715 from bdach/fix-stall-on-empty-replay-import-attempt
Fix stall when attempting to import replay after hitting nothing
2024-09-07 22:01:31 +09:00
Dan Balasescu
6fb5c10f19
Merge pull request #29742 from SchiavoAnto/29736-results-collections-overflow
Fix collections overflowing in the results screen
2024-09-07 17:37:11 +09:00
Bruno Heredia
3b81ad4cbf
Fix scroll speed slider defaulting to 0.01 2024-09-07 01:44:40 -03:00
schiavoanto
ed044d5b85 Fix proposal for #29736 2024-09-06 22:58:18 +02:00
Bartłomiej Dach
4e9ad1388f
Fix stall when attempting to import replay after hitting nothing 2024-09-06 13:16:58 +02:00
Dean Herbert
04d133832f
Merge pull request #29711 from smoogipoo/add-played-acronyms
Add 'yes'/'no' acronyms to the `played=` filter
2024-09-06 18:08:37 +09:00
Dan Balasescu
6913d75792
Add 'yes'/'no' acronyms to the played= filter 2024-09-06 18:04:39 +09:00
Bartłomiej Dach
9f834ca1a2
Silence beatmap retrieval failures from results screen favourite button
As reported (very poorly) in
https://github.com/ppy/osu/pull/28991#issuecomment-2331854970.

I believe this is a total edge case and is mostly visible on dev due to
some beatmaps existing on `osu.ppy.sh` and not on `dev.ppy.sh`, but I
tend to agree in general that these types of failures should not be
firing very loud error notifications; logging to network and disabling
the button with a tooltip adjustment should be enough.
2024-09-06 10:29:23 +02:00
Dean Herbert
37f61b26ea
Fix offset adjust control not correctly applying changes after song select quit
This is an interesting scenario where we arrive at a fresh
`BeatmapOffsetControl` but with a reference score (from the last play).

Our best assumption here is that the beatmap's offset hasn't changed
since the last play, so we want to use it for the `lastPlayBeatmapOffset`.
But due to unfortunate order of execution, `Current.Value` was not yet
initialised.
2024-09-05 19:04:52 +09:00
Bartłomiej Dach
3a3a912ebc
Merge pull request #29701 from peppy/fix-gc-fuck-fuck-fuck
Fix high performance session potentially getting stuck after multiplayer spectator
2024-09-05 11:24:54 +02:00
Dean Herbert
446c8109b7
Merge pull request #27334 from Sheppsu/replay-analysis-settings
Add a replay analysis overlay
2024-09-05 17:43:00 +09:00
Dean Herbert
86a06c7e10
Fix high performance session potentially getting stuck after multiplayer spectator 2024-09-05 17:19:53 +09:00
Dean Herbert
ca09028b06
Merge pull request #29616 from peppy/break-overlay-animation
Add beat-synced animation to break overlay
2024-09-04 19:39:35 +09:00
Bartłomiej Dach
130802e480
Add hotkey hints to editor menus 2024-09-04 12:16:54 +02:00
Bartłomiej Dach
0c4f5bcdaa
Decouple editor main menu items from DrawableOsuMenuItem
It didn't ever really make sense for it to be sharing the implementation
details of that (e.g. colouring of primary/dangerous actions), and with
the hotkey display things got outright hacky, so I'm decoupling it
entirely.
2024-09-04 12:16:52 +02:00
Dean Herbert
cc3d220f6f
Allow settings to be added to replay HUD from ruleset 2024-09-04 19:00:23 +09:00
Dean Herbert
a417fec234
Move analysis container implementation completely local to osu! ruleset 2024-09-04 19:00:22 +09:00
Bartłomiej Dach
3acc5fe5a0
Integrate hotkey display into drawable menu items 2024-09-04 11:58:10 +02:00
Dean Herbert
7cd24ba58e
Disallow mistimed firing of beat sync for break overlay for now
It doesn't work well with pause/resume.
2024-09-04 18:00:32 +09:00
Dean Herbert
0e16508fd6
Merge branch 'master' into replay-analysis-settings 2024-09-04 17:52:19 +09:00
Bartłomiej Dach
ef1add3ebb
Merge pull request #29680 from peppy/multiplayer-spectator-auto-download
Add automatic downloading support when spectating a multiplayer room
2024-09-04 10:29:35 +02:00
Sheppsu
c89597b060 fix config mistake 2024-09-04 03:37:52 -04:00
Dean Herbert
dfe11dc68a
Use for with exposed IReadOnlyList rather than making internal container public 2024-09-04 15:25:36 +09:00
Dean Herbert
421f245c31
Fix per-frame allocations in BeatmapCarousel 2024-09-04 14:31:59 +09:00
Dean Herbert
6c89c4eed6
Fix rewind causing weirdness with progress bar animation 2024-09-03 18:50:57 +09:00
Sheppsu
a2b15fcdee rework code logic to make more sense
analysis container creates settings and the settings items are created more nicely
also removed use of localized strings because that can be done separately
2024-09-03 00:59:42 -04:00
Dean Herbert
7b13943377
Handle changes to the automatic download setting immediately 2024-09-02 19:20:05 +09:00
Dean Herbert
872d14ed88
Fix incorrect handling of ordered playlist items 2024-09-02 19:18:43 +09:00
Dean Herbert
6227e4f848
Apply NRT to MultiplayerSpectateButton 2024-09-02 16:37:38 +09:00
Dean Herbert
38a62eed44
Add automatic downloading support when spectating a multiplayer room 2024-09-02 16:37:38 +09:00
Sheppsu
1ed94e598a Merge branch 'master' into replay-analysis-settings 2024-09-01 19:32:25 -04:00
Dean Herbert
e79604cc13
Merge pull request #29542 from frenzibyte/show-daily-challenge-intro-once-per-session
Show daily challenge intro screen once per session
2024-09-01 21:27:16 +09:00
Andrei Zavatski
837fa1b8dc Use FastCircle for kiai visualisation 2024-08-31 17:32:24 +03:00
Andrei Zavatski
501ea68a21 Merge branch 'master' into fast-circle 2024-08-31 17:31:30 +03:00
Dean Herbert
6b8b49e4f1
Simplify scroll speed point display code now that it only serves one purpose 2024-08-31 13:14:56 +09:00
Andrei Zavatski
225418dbb3 Rework kiai handling in summary timeline 2024-08-31 01:59:40 +03:00
Andrei Zavatski
f5a2b5ea03 Use FastCircle in demanding places in the editor 2024-08-30 17:45:26 +03:00
Bartłomiej Dach
4811481483
Merge pull request #29639 from peppy/detached-beatmap-cache
Improve song select load and reload with large beatmap databases
2024-08-30 15:00:20 +02:00
Dean Herbert
7b6e62283f
Fix beatmap not being detached on hide/unhide
The explicit detach call was removed from `updateBeatmapSet`, causing
this to occur. We could optionally add it back (it will be a noop in all
cases though).
2024-08-30 18:50:08 +09:00
Dean Herbert
1b9942cb30
Mark BeatmapSets as internal 2024-08-30 18:44:04 +09:00
Dean Herbert
291dd5b101
Remove TODO 2024-08-30 18:37:27 +09:00
Dan Balasescu
ae0931cfc3
Merge pull request #29653 from peppy/fix-multiplayer-event-leak
Fix event leak in `Multiplayer` implementation
2024-08-30 16:58:27 +09:00
Dean Herbert
3bc42db3a6
Fix event leak in Multiplayer implementation
Very likely closes #29088. It's the only thing I could find odd in the
memory dump.
2024-08-30 16:14:19 +09:00
OliBomby
ba0c4df2a9 Merge remote-tracking branch 'upstream/master' into doubleclick 2024-08-29 19:34:18 +02:00
OliBomby
8fe7ab131c dont seek on right-click, only on keyboard request 2024-08-29 19:34:14 +02:00
Dan Balasescu
4e8fb0dcab
Merge branch 'master' into scroll-speed-std 2024-08-30 00:41:05 +09:00
Dean Herbert
dd675fef45
Merge pull request #29644 from smoogipoo/unplayed-filter-query-2
Adjust `played` song select filter to accept a boolean value
2024-08-29 23:52:37 +09:00
Dean Herbert
c013974790
Merge branch 'master' into detached-beatmap-cache 2024-08-29 22:49:11 +09:00
Dan Balasescu
fec8fa46fa
Merge pull request #29533 from bdach/fix-sample-bank-stuff-again
Fix incorrect bank set / sample addition logic
2024-08-29 21:36:26 +09:00
Dan Balasescu
fde790c014
Rework played filter to a boolean value 2024-08-29 20:59:48 +09:00
Dean Herbert
def1abaeca
Fix some tests not always waiting long enough for beatmap loading
These used to work because there was a huge blocking load operation,
which is now more asynchronous.

Note that the change made in `SongSelect` is not required, but defensive
(feels it should have been doing this the whole time).
2024-08-29 18:42:43 +09:00
Dean Herbert
1776d38809
Remove loadedTestBeatmaps flag 2024-08-28 23:28:44 +09:00
Dean Herbert
e04b5bb3f2
Tidy up test beatmap loading 2024-08-28 23:28:44 +09:00
Dean Herbert
9123d2cb7f
Fix multiple test failures 2024-08-28 23:28:43 +09:00
Dean Herbert
dd4a1104e4
Always debounce external Filter requests (except for tests)
The only exception to the rule here was "when screen isn't active apply
without debounce" but I'm not sure we want this. It would cause a
stutter on returning to song select and I'm not even sure this is a
common scenario.

I'd rather remove it and see if someone finds an actual case where this
is an issue.
2024-08-28 19:13:50 +09:00
Dean Herbert
336abadbd1
Allow running initial filter criteria asynchronously
This reverts a portion of https://github.com/ppy/osu/pull/9539.

The rearrangement in `SongSelect` is required to get the initial filter
into `BeatmapCarousel` (and avoid the `FilterChanged` event firing,
causing a delayed/scheduled filter application).
2024-08-28 19:13:50 +09:00
Dean Herbert
5ed0c6e91a
Remove song select preloading
Really unnecessary now.
2024-08-28 19:13:49 +09:00
Dean Herbert
b1f653899c
Fix enumeration over modified collection 2024-08-28 19:13:49 +09:00
Dean Herbert
81b36d897d
Fix null reference in change handling code 2024-08-28 19:13:49 +09:00
Dean Herbert
081c9eb21b
Fix incorrect cancellation / disposal handling of DetachedBeatmapStore 2024-08-28 17:21:19 +09:00
Dean Herbert
4d42274771
Use bindable list implementation 2024-08-28 16:03:37 +09:00
Dean Herbert
466ed5de78
Add basic detached beatmap store 2024-08-28 16:03:37 +09:00
Dean Herbert
eb70a1b72d
Change middle text to only animate initially 2024-08-28 15:57:42 +09:00
Dean Herbert
47a52d10eb
Revert "Add slight parallax to centre content"
This reverts commit 90d06d4496.
2024-08-28 15:32:59 +09:00
OliBomby
b5b4f915a9 Automatic seek to sample point on right-click 2024-08-27 19:40:33 +02:00
OliBomby
daad476593 Add float comparison leniency just in case 2024-08-27 19:04:16 +02:00
OliBomby
71044a0766 fix difference in sample time calculation 2024-08-27 19:02:40 +02:00
Bartłomiej Dach
a3b0ff4808
Merge branch 'master' into break-overlay-animation 2024-08-27 11:17:56 +02:00
Bartłomiej Dach
321e509f11
Merge pull request #29615 from peppy/break-overlay-improvements
Add shadow around break overlay middle content to make sure it remains visible
2024-08-27 11:16:08 +02:00
Dean Herbert
90d06d4496
Add slight parallax to centre content 2024-08-27 16:37:27 +09:00
Bartłomiej Dach
8d7053d367
Merge pull request #29560 from peppy/fix-daily-challenge-intro-mod-display
Fix mod icons potentially showing incorrectly at daily challenge intro
2024-08-27 09:37:11 +02:00
Dean Herbert
6f1664f0a6
Add beat-synced animation to break overlay
I've been meaning to make the progress bar synchronise with the beat
rather than a continuous countdown, just to give the overlay a bit more
of a rhythmic feel.

Not completely happy with how this feels but I think it's a start?

I had to refactor how the break overlay works in the process. It no
longer creates transforms for all breaks ahead-of-time, which could be
argued as a better way of doing things. It's more dynamically able to
handle breaks now (maybe useful for the future, who knows).
2024-08-27 16:34:37 +09:00
Dean Herbert
98faa07590
Apply NRT to BreakOverlay 2024-08-27 15:01:51 +09:00
Dean Herbert
797b020747
Add shadow around break overlay middle content to make sure it remains visible 2024-08-27 15:01:50 +09:00
Dean Herbert
abdbe510b8
Move break overlay (and cursor) further forward in depth
I didn't really want to move the cursor in front of the HUD, but we face
a bit of an impossible scenario otherwise (it should definitely be in
front of the break overlay for visibility).

So I'll deal with it for now.
2024-08-27 14:52:11 +09:00
Dean Herbert
84bceca778
Assume we can always fetch the ruleset 2024-08-26 15:38:58 +09:00
Dean Herbert
60271fb0f7
Merge pull request #29564 from peppy/skinnable-components-what-2
Remove requirement of `base` calls to ensure user skin container layouts are retrieved
2024-08-23 17:52:46 +09:00
OliBomby
2de5ecceb8 Merge remote-tracking branch 'upstream/master' into scroll-speed-std 2024-08-22 20:17:14 +02:00
OliBomby
ad8e7f1897 Fix scroll speed visualisation missing on start kiai effect points
They were being drawn far offscreen because the width of the kiai multiplied with the X coordinate of the scroll speed vis.
2024-08-22 20:17:09 +02:00
OliBomby
998b5fdc12 Add property EditorShowScrollSpeed to Ruleset 2024-08-22 19:53:34 +02:00