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
Dean Herbert
4a6266efcf
Merge pull request #29714 from Crystallized21/total-participation-tooltip
...
Add Total Participation stat to users profile Daily Challenge Tooltip
2024-09-08 22:42:02 +09:00
Bartłomiej Dach
7f814d3106
Fix incorrect tiers being used for tooltip total participation display
...
Compare: 95e4561a54
2024-09-08 14:26:50 +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
Dean Herbert
10ef5a6d6d
Update framework
2024-09-07 21:46:43 +09:00
Dan Balasescu
02eb6835e3
Merge pull request #29745 from Ianlucht/fix-beatmap-artist-and-title-search-to-include-double-quotes-resolves#29708
...
Double-quote in beatmap listing when searching by artist/title
2024-09-07 18:42:27 +09:00
Dan Balasescu
ac6cce5911
Refactor to string interpolation
2024-09-07 17:40:33 +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
Ianlucht
581f190856
fixed issues with search by adding the double quotation marks in the BeatmapSetHeaderContents links.
2024-09-06 16:31:48 -06: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
Michael Bui
a31ea24c6d
show stats on all rulesets
2024-09-06 23:05:04 +12:00
Michael Bui
362b4bbc56
Hide daily challenge stats if there are no plays
2024-09-06 23:01:05 +12:00
Michael Bui
ab8771900a
change colour
2024-09-06 22:04:10 +12:00
Michael Bui
34a9d60c19
revert back to axes.both
2024-09-06 22:02:35 +12:00
Michael Bui
f59895aa34
take out drawable
2024-09-06 21:54:41 +12:00
Michael Bui
15f73a3dfb
show participation count in tooltip
2024-09-06 21:52:42 +12:00
Bartłomiej Dach
2c19b7994c
Implement "form" check box control
2024-09-06 11:45:13 +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
Bartłomiej Dach
925710d9b3
Merge pull request #29702 from peppy/fix-offset-control-wrong-order
...
Fix beatmap offset control not working correctly when calibrating from quitting gameplay
2024-09-06 09:39:14 +02:00
Dean Herbert
36a30cf077
Add note about using hard links in the future
2024-09-06 16:01:47 +09:00
Dean Herbert
9802b59459
Merge pull request #29693 from bdach/editor/setup-screen-textbox
...
Implement "form" text box control
2024-09-05 19:31:02 +09: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
Dean Herbert
c51503cfee
Merge pull request #29695 from peppy/fail-t-request-on-null-response
...
Trigger request failure on receiving a null response for a typed `APIRequest`
2024-09-05 18:31:54 +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
Bartłomiej Dach
49b14ad579
Merge branch 'master' into editor/setup-screen-textbox
2024-09-05 11:22:10 +02:00
Bartłomiej Dach
e1b763ff0d
Apply review suggestions wrt border appearance
2024-09-05 11:21:59 +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
6fc60908c0
Trigger request failure on receiving a null response for a typed APIRequest
2024-09-05 01:00:23 +09:00
Bartłomiej Dach
b7a56c8a45
Implement "form" text box control
2024-09-04 14:09:50 +02:00
Dean Herbert
0e85110ee2
Merge pull request #29690 from peppy/update-framework
...
Update framework
2024-09-04 19:39:47 +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
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
Dean Herbert
cb9d1d49a2
Update resources
2024-09-04 18:01:06 +09:00
Dean Herbert
045096b08a
Update framework
2024-09-04 18:00:48 +09: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
Dean Herbert
9abaa87d8f
Merge pull request #29626 from Fabep/master
...
Mod customization header/panel changes
2024-09-04 17:28:11 +09:00
Dean Herbert
86309f4b46
Revert "Woopsie! I accidentally added one too many semi-colons, so I moved it here into the commit instead ;"
...
This reverts commit 582ffcfc97
.
Revert "Mod customisation header's color is now based on the state of the panel rather than the hover of the container."
This reverts commit e3457d8501
.
2024-09-04 17:25:41 +09:00
Dan Balasescu
337a30f3b0
Merge pull request #29688 from peppy/fix-song-select-allocs
...
Fix per-frame allocations in `BeatmapCarousel`
2024-09-04 17:16:10 +09:00
Sheppsu
c89597b060
fix config mistake
2024-09-04 03:37:52 -04:00
Dean Herbert
1017a124ab
Merge pull request #28743 from smallketchup82/velopack
...
Migrate update framework to Velopack
2024-09-04 16:09:36 +09: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
97a51af5a0
Fix one more unnecessary enumerator allocation
2024-09-04 15:22:31 +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
a549cdd5b9
persist analysis settings
2024-09-03 04:49:50 -04: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
Fabep
582ffcfc97
Woopsie! I accidentally added one too many semi-colons, so I moved it here into the commit instead ;
2024-09-02 19:17:07 +02:00
Fabep
e3457d8501
Mod customisation header's color is now based on the state of the panel rather than the hover of the container.
2024-09-02 19:14:08 +02:00
Bartłomiej Dach
d99b2312cd
Merge branch 'master' into Fabep/master
2024-09-02 14:35:44 +02: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
Dan Balasescu
5d09aaae27
Merge pull request #29446 from OliBomby/last-anchor
...
Fix path control points losing curve type on save/reload or undo
2024-09-02 18:40:19 +09:00
Bartłomiej Dach
5211e606b5
Fix mod customisation header being non-functional on mobile
...
As expected the previous touch handling would prevent the header from
working entirely when click handling was removed from the header.
2024-09-02 11:33:43 +02: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
Dean Herbert
f7da7193ff
Update framework
2024-09-01 19:10:08 +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
Dan Balasescu
d5b52152f4
Merge branch 'master' into velopack
2024-08-31 15:44:21 +09: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
Dean Herbert
a09c6e2a25
Merge pull request #29656 from peppy/provide-api-earlier
...
Provide API context earlier to api requests in order to fix missing schedules
2024-08-30 23:15:28 +09: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
Bartłomiej Dach
8ffd4aa82c
Fix NRT inspections
2024-08-30 13:41:34 +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
de208fd5c3
Add very basic error handling for failed beatmap detach
2024-08-30 18:50:03 +09:00
Dean Herbert
2033a5e157
Add disposal of ManualResetEventSlim
2024-08-30 18:50:02 +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
Dean Herbert
2d745fb67e
Apply NRT to APIRequest
2024-08-30 18:35:31 +09:00
Dean Herbert
dd7133657d
Fix weird test critical failure if exception happens too early in execution
...
Noticed in passing.
```
Exit code is 134 (Unhandled exception. System.NullReferenceException:
Object reference not set to an instance of an object.
at osu.Game.OsuGameBase.onExceptionThrown(Exception ex) in
/Users/dean/Projects/osu/osu.Game/OsuGameBase.cs:line 695
at osu.Framework.Platform.GameHost.abortExecutionFromException(Object
sender, Exception exception, Boolean isTerminating)
at osu.Framework.Platform.GameHost.unobservedExceptionHandler(Object
sender, UnobservedTaskExceptionEventArgs args)
at System.Threading.Tasks.TaskExceptionHolder.Finalize())
```
2024-08-30 18:35:31 +09:00
Dean Herbert
07611bd8f5
Use IAPIProvider
interface and correctly support scheduling from DummyAPIAccess
2024-08-30 18:35:31 +09:00
Dean Herbert
5836f497ac
Provide API context earlier to api requests in order to fix missing schedules
...
Closes https://github.com/ppy/osu/issues/29546 .
2024-08-30 18:10:36 +09:00
Fabian Bech Persson
363fc0d5da
Merge branch 'master' into master
2024-08-30 11:06:54 +02: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
a71bc3a24a
Merge pull request #28737 from OliBomby/doubleclick
...
Add more ways to seek to sample points
2024-08-30 16:22:50 +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
Dean Herbert
60c1e0fa72
Merge pull request #29440 from OliBomby/spacebar-resume
...
Allow play/pause with spacebar while placing hitobjects
2024-08-30 12:58:41 +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