Dean Herbert
387fcb8781
Add a brief inline comment to make sure we don't undo the fix
2024-04-25 21:31:36 +08:00
Bartłomiej Dach
c1107d2797
Fully refetch working beatmap when entering editor
...
Closes https://github.com/ppy/osu/issues/21794 .
I'm not actually super sure as to what the exact mode of failure is
here, but it's 99% to do with working beatmap cache invalidation. Likely
this can be even considered as another case of
https://github.com/ppy/osu/issues/21357 , but because this is a one-liner
"fix," I'm PRing it anyways.
The issue is confusing to understand when working with the swap scenario
given in the issue, but it's a little easier to understand when
performing the following:
1. Have a beatmap set with 2 difficulties. Let's call them "A" and "B".
2. From song select, without ever exiting to main menu, edit "A". Change
the difficulty name to "AA". Save and exit back to song select; do
not exit out to main menu.
3. From song select, edit "B". Change the difficulty name to "BB". Save
and exit back to song select.
4. The difficulty names will be "A" and "BB".
Basically what I *think* is causing this, is the fact that even though
editor invalidates the working beatmap by refetching it afresh on exit,
song select is blissfully unaware of this, and continues working with
its own `BeatmapInfo` instances which have backlinks to
`BeatmapSetInfo`.
When editing the first of the two difficulties and then the second,
the editing of the first one only invalidates the first one rather than
the entire set, and the second difficulty continues to have a stale
reference to the first one via the beatmap set, and as such ends up
overwriting the changes from the first save when passed into the editor
and modified again.
2024-04-25 14:31:13 +02:00
Dan Balasescu
343b3ba0e6
Don't re-filter unless mods may change the filter
2024-04-15 21:07:36 +09:00
Dan Balasescu
d12a2e7df7
Replace schedule with SequenceEqual()
2024-04-01 17:02:02 +09:00
Dan Balasescu
6e746a0fa0
Fix carousel reoder on initial enter
2024-03-28 23:56:46 +09:00
Dan Balasescu
9fd6449fd8
Add mods to FilterCriteria, pass to ruleset method
2024-03-28 23:03:26 +09:00
Dan Balasescu
10edb54614
Add ability to query key count with mods
2024-03-28 22:51:12 +09:00
Bartłomiej Dach
56dc6bb192
Merge branch 'master' into feat/support-filtering-for-multiple-types
2024-03-26 12:39:51 +01:00
Bartłomiej Dach
e52d51cd0a
Update OptionalSet
implementation to intersect across multiple filters rather than union
2024-03-26 12:32:03 +01:00
Bartłomiej Dach
a1880e89c2
Use title as tiebreaker when sorting beatmap carousel by artist
...
Closes https://github.com/ppy/osu/issues/27548 .
Reference: e53980dd76/osu
!/GameplayElements/Beatmaps/BeatmapTreeManager.cs#L341-L347
2024-03-22 08:41:10 +01:00
Bartłomiej Dach
af3f7dcbbf
Retouch update criteria method
2024-03-19 18:33:35 +01:00
Bartłomiej Dach
320373e3e0
Rename method to match convention better
2024-03-19 18:28:13 +01:00
Bartłomiej Dach
feaf59e15f
Use HashSet
instead of SortedSet
...
No need for it to be sorted.
2024-03-19 18:26:58 +01:00
Vlad Frangu
77119b2cdb
chore: correct doc string
2024-03-18 16:44:42 +02:00
Vlad Frangu
d0678bfbee
chore: requested changes
2024-03-18 15:30:43 +02:00
Vlad Frangu
e1c1609271
chore: correct equal logic
2024-03-16 21:48:44 +02:00
Vlad Frangu
0a6960296e
feat: Support filtering for multiple statuses
2024-03-16 21:32:55 +02:00
Dean Herbert
f44aadaaa8
Merge pull request #27331 from bdach/statistics-updates-in-multi
...
Show user statistics updates on multiplayer and playlists results screens
2024-02-29 12:26:48 +08:00
Bartłomiej Dach
a5948d38ac
Merge pull request #27380 from frenzibyte/fix-advanced-stats-display
...
Fix advanced stats in beatmap info overlay showing "key count" on non-mania beatmaps
2024-02-28 18:02:48 +01:00
Bartłomiej Dach
6a3a7cca58
Merge branch 'master' into adjust-carousel-padding
2024-02-28 16:00:43 +01:00
Dean Herbert
8e336610d0
Add xmldoc explaining Ruleset
bindable's usage
2024-02-26 18:31:40 +08:00
Salman Ahmed
5c049feca1
Fix advanced stats in beatmap info overlay showing "key count" on non-mania beatmaps
2024-02-25 21:18:15 +03:00
Bartłomiej Dach
869f0a82de
Use hashset for faster lookup
2024-02-23 15:38:52 +01:00
Dean Herbert
157819c199
Materialise realm collection hashes during song select search process
...
Without this, there's a large overhead to do a realm-live `Contains`
search when a collection is selected.
This may also help considerably alleviate
https://github.com/ppy/osu/discussions/27298#discussioncomment-8552508
as we will be performing the native realm search much less.
2024-02-23 11:41:27 +08:00
Bartłomiej Dach
0074bdc5a1
Change ResultsScreen
constructor boolean params to init-only properties
2024-02-22 20:15:03 +01:00
Bartłomiej Dach
46c8560ca5
Merge branch 'master' into multiplayer-difficulty-tooltip
2024-02-22 12:08:29 +01:00
Bartłomiej Dach
d06c67ad8f
Substitute two jank interdependent bool flags for single tri-state enums
2024-02-22 12:05:50 +01:00
Bartłomiej Dach
1a831145ce
Merge branch 'master' into fix-bpm-differences
2024-02-22 10:41:22 +01:00
Bartłomiej Dach
81a9908c60
Extract common helper for BPM rounding
2024-02-22 10:27:37 +01:00
Dean Herbert
fb593470d5
Use DEFAULT
instead of INSTANCE
or static field
...
Matches other similar comparers.
2024-02-21 21:02:20 +08:00
Bartłomiej Dach
929858226a
Use custom comparer in beatmap carousel for expected sort behaviour
2024-02-21 12:43:18 +01:00
Andrei Zavatski
2543a48ac8
Apply padding to GridContainers directly
2024-02-20 23:18:37 +03:00
Dean Herbert
6960f87509
Merge pull request #26895 from vmfunc/ordinal-sorting
...
Consider case sensitivity when sorting beatmaps in song select
2024-02-18 04:05:22 +08:00
Dean Herbert
674ee91bb5
Define aggregate max delegates as static to further reduce allocations
2024-02-15 11:40:50 +08:00
Dean Herbert
80abf6aab3
Avoid some further enumerator allocations
2024-02-15 09:45:24 +08:00
Andrei Zavatski
6e1b4152c0
Redice allocations during aggregate beatmap sort
2024-02-15 00:01:55 +03:00
Bartłomiej Dach
ae9a2661ac
Sprinkle some raw string prefixes
2024-02-14 16:20:47 +01:00
Bartłomiej Dach
414066fd34
Inline problematic function (and rename things to make more sense)
2024-02-14 16:07:42 +01:00
Bartłomiej Dach
a8ae0a032f
Simplify parsing
2024-02-14 15:58:38 +01:00
Bartłomiej Dach
c24328dda3
Abandon date filter if no meaningful time bound found during parsing
2024-02-14 15:56:32 +01:00
Bartłomiej Dach
f0f37df67f
Revert unnecessary change
2024-02-14 15:37:02 +01:00
Bartłomiej Dach
1113355753
Merge branch 'master' into add-last-played-filter
2024-02-14 15:36:19 +01:00
Stoppedpuma
ca0819cf7a
Alias "mapper" as well
2024-02-11 20:28:16 +01:00
Stoppedpuma
7c04e8bfba
Alias author to creator
...
Allows "author" to show the results of "creator"
2024-02-10 07:48:24 +01:00
Bartłomiej Dach
865f4d76ff
Add unranked indicator to song select footer too
2024-02-01 21:51:41 +01:00
Bartłomiej Dach
f87ab19731
Apply NRT to FooterButtonMods
2024-02-01 21:32:38 +01:00
syscats
0407b5d84a
use ordinal sorting on each method
2024-02-01 14:03:59 +01:00
syscats
7165511754
Use ordinal sorting for artist string comparison
2024-01-31 15:49:31 +01:00
Bartłomiej Dach
acc2614090
Apply alternative solution
...
Fixes the logo flying out of the wrong corner when transitioning from
song select to gameplay.
Co-authored-by: Dean Herbert <pe@ppy.sh>
2024-01-29 20:07:27 +01:00
Dean Herbert
f2546d72c2
Fix osu! logo being mispositioned in song select on very wide resolutions
2024-01-29 20:45:51 +09:00
Dean Herbert
cc341b4119
Adjust beatmap carousel padding to avoid scrollbar disappearing underneath logo
2024-01-25 15:21:19 +09:00
Dean Herbert
02bb506cce
Avoid using .Children
for enumeration in other locations
2024-01-23 05:32:11 +09:00
Dean Herbert
1f0ad5cff2
Apply same fix in more places
2024-01-22 15:56:16 +09:00
Dean Herbert
74f05a5c4b
Use container itself rather than ScrollContent
2024-01-22 15:54:24 +09:00
Andrei Zavatski
cec4f670d1
Reduce allocation overhead in BeatmapCarousel
2024-01-22 03:12:23 +03:00
Dean Herbert
68496f7a0e
Fix scores not showing up on leaderboards during gameplay
2024-01-14 15:13:20 +09:00
Bartłomiej Dach
66b3945cd6
Move current screen check to better place
2024-01-09 10:44:30 +01:00
Bartłomiej Dach
58db39ec32
Fix crash when clicking osu! logo in song select immediately after exiting
...
Closes https://github.com/ppy/osu/issues/26415 .
The crash report with incomplete log was backwards, the exit comes
first. Sentry events and the reproducing test in
8a87301c55
confirm this.
2024-01-08 21:37:25 +01:00
Bartłomiej Dach
70ba5dd0d3
Merge pull request #26385 from peppy/carousel-thing
...
Fix beatmap carousel not preloading panels when off-screen
2024-01-08 19:37:34 +01:00
Dean Herbert
51bd32bf7e
Restore comment regarding usage of MinBy
2024-01-09 01:08:47 +09:00
Dean Herbert
e77d203a24
Refactor delayed load logic to hopefully read better
2024-01-09 01:08:17 +09:00
Dean Herbert
d3710f0bfd
Remove scores from song select leaderboard when leaving the screen
2024-01-06 20:53:20 +09:00
Dean Herbert
81c6fd5589
Load items closer to the centre of the screen as a priority
2024-01-04 19:25:12 +09:00
Dean Herbert
adac3b65ce
Fix beatmap carousel not preloading panels when off-screen
2024-01-04 19:25:12 +09:00
Salman Ahmed
4dc11c4c48
Update existing code to use helper method
2023-12-31 05:18:07 +03:00
CaffeeLake
bca0600482
Use 0.99x or 1.01x
...
Signed-off-by: CaffeeLake <PascalCoffeeLake@gmail.com>
2023-12-31 00:47:09 +09:00
Dean Herbert
ffc8778d67
Fix song select leaderboard tab ordering not matching stable
2023-12-28 14:13:35 +09:00
Nathan Tran
060bf8beff
Fix rewind backtracking
2023-12-25 15:27:32 -08:00
Simon G
b31b9e96d0
adjust beatmap length and drain based on rate changing mods
2023-12-22 03:04:48 +01:00
Dean Herbert
7fa4dcf0fb
Fix selection retention logic copy paste failure
2023-12-20 19:27:57 +09:00
Dean Herbert
e003462f7d
Fix beatmap updates causing one extra carousel selection
2023-12-20 19:15:02 +09:00
Dean Herbert
64f62e7d90
Fix song select running updates when screen is not active
...
Who would have guessed that `Schedule` calls were there for a reason!
I've tidied things up. Most of the changes I've made here are not
required – the schedule is the main thing here. The reason the sound was
playing is because one-too-many schedules was removed causing beatmap
updates to update carousel specifics while still at the player loader
screen.
Note that the selection sound still plays on returning to song select,
but this is not a regression. I'm looking at fixing this in a separate
PR because I'm in a good place as far as understanding the logic right
now and it would be a waste to leave it broken.
Closes https://github.com/ppy/osu/issues/25875 .
2023-12-20 17:31:09 +09:00
Bartłomiej Dach
9a5027e556
Merge pull request #25900 from peppy/editor-from-any-carousel
...
Allow choosing "Edit" from any beatmap carousel item
2023-12-20 08:35:42 +01:00
Dan Balasescu
3818977a36
Merge pull request #25898 from peppy/song-select-stats
...
Update song select to always show difficulty stats
2023-12-20 14:39:35 +09:00
Dean Herbert
85e5d74a16
Apply proposed changes
2023-12-20 12:42:06 +09:00
Bartłomiej Dach
e306cc35ba
Merge branch 'master' into fix-song-select-realm-refresh-performance
2023-12-19 14:14:46 +01:00
Dean Herbert
bbfdd6892d
Allow choosing "Edit" from any beatmap carousel item
2023-12-19 19:58:49 +09:00
Dean Herbert
502e3edac3
Add missing invalidation call
2023-12-19 19:39:48 +09:00
Dean Herbert
3b848e8503
Tidy up visual look
2023-12-19 19:28:02 +09:00
Dean Herbert
07bb0805e9
Move advanced stats to a more permanent location on song select
2023-12-19 19:10:43 +09:00
Dean Herbert
0a64d631e2
Add support for dual-column advanced stats
2023-12-19 19:09:47 +09:00
Dean Herbert
8f5d21dc70
Actually fix realm selection retention regression
2023-12-19 18:10:55 +09:00
Dean Herbert
7e9c1b2acb
Use sender
's realm (because we can)
2023-12-19 17:27:52 +09:00
Bartłomiej Dach
7c05d66bd7
Add more detail to exception
2023-12-19 08:57:18 +01:00
Dean Herbert
44efa2c540
Fix incorrect ordering of items at song select when certain sort modes are used
2023-12-19 15:09:03 +09:00
Dean Herbert
d81cabc063
Revert "Improve performance of attemptSelection
using new cached count and LastSelected
"
...
This reverts commit 25df42630e
.
2023-12-18 22:46:02 +09:00
Dean Herbert
25e3a8e82e
Fix a few of silly issues
2023-12-18 22:45:58 +09:00
Dean Herbert
25df42630e
Improve performance of attemptSelection
using new cached count and LastSelected
2023-12-18 20:47:08 +09:00
Dean Herbert
5755fa214a
Cache non-filtered beatmap counts to massively improve count performance
2023-12-18 20:44:08 +09:00
Dean Herbert
034c5cd654
Debounce count updates for good measure
2023-12-18 20:43:23 +09:00
Dean Herbert
6fa1f5ef9b
Simplify invalidation logic
...
The only case where this was checking is guaranteed by realm to only be called once.
2023-12-18 20:31:02 +09:00
Dean Herbert
87b7699fcc
Avoid calling invalidation logic per beatmap set updated
...
Realm will batch the updates. We don't want to do expensive operations per set when we don't need to.
2023-12-18 20:31:02 +09:00
Dean Herbert
32cc3f9ef7
Combine multiple similar invalidation logic into single event
2023-12-18 20:31:02 +09:00
Dean Herbert
48e89b903c
Merge pull request #25760 from bdach/if-i-speak-i-am-in-big-trouble-pt-1
...
Fix `AdjustedAttributesTooltip` being broken by design
2023-12-15 12:26:10 +09:00
Dan Balasescu
fbef40bb1f
Reduce some allocations in SongSelect in the mania ruleset
2023-12-15 11:01:15 +09:00
Bartłomiej Dach
9e5b6b97ff
Fix AdjustedAttributesTooltip
being broken by design
...
Fixes issue described in the following comment:
https://github.com/ppy/osu/pull/25759#issuecomment-1855954637
That is just not how the tooltip system is supposed to be used.
To name the individual sins:
- Caching and returning a tooltip instance like the classes that used
tooltips is incorrect. The lifetime of tooltip instances is managed by
the tooltip container. `GetCustomTooltip()` is called by it
exclusively. It should return a fresh instance every time.
- Not putting actual data in `IHasCustomTooltip.TooltipContent` is
wrong.
- Having `Tooltip.SetContent()` be a no-op is *grossly and flagrantly*
wrong.
I'm not even sure which particular combination of the above
transgressions caused the issue as it presented itself, but at this time
I frankly do not care.
2023-12-14 16:15:56 +01:00
Givikap120
b22a7cf520
Update AdvancedStats.cs
2023-12-14 14:31:58 +02:00
Givikap120
c2373bb37b
change the order of attributes
...
+ simplifying the bug fix
2023-12-14 14:31:19 +02:00
Givikap120
8698835db2
fixed bug
...
fixed the bug where it's not updates tooltip when there are no mods
2023-12-14 14:00:35 +02:00
Dean Herbert
5062c53e36
Refactor everything for sanity
2023-12-13 17:33:39 +09:00
Dean Herbert
fb44fb18e0
Update in line with upstream changes
2023-12-13 16:42:20 +09:00
Dean Herbert
0259ab761b
Merge branch 'master' into arod_rate_adjust
2023-12-13 16:35:18 +09:00
Dean Herbert
fdcf87569c
Merge pull request #25711 from smoogipoo/mania-convert-song-select-keycount
...
Display osu!mania keycount in song select carousel panels and details
2023-12-13 16:31:25 +09:00
Dean Herbert
5e10f9f899
Fix failing tests due to more textboxes being present with searchable dropdowns
2023-12-13 15:11:47 +09:00
Dan Balasescu
c31ff84417
Fix possible nullref
2023-12-13 13:32:27 +09:00
Givikap120
2d94841929
fixed one test
2023-12-10 02:00:32 +02:00
Givikap120
faf54bca43
Merge branch 'master' into arod_rate_adjust
2023-12-10 01:49:18 +02:00
Givikap120
1d0c37e138
fixed test errors
2023-12-10 00:40:05 +02:00
Dan Balasescu
b36db3518c
Add keycount to song select details panel and carousel panels
2023-12-09 22:31:51 +09:00
Dean Herbert
8286d3896f
Fix searching at song select matching incorrect ruleset
...
Regressed with https://github.com/ppy/osu/pull/25679 .
2023-12-06 11:32:26 +09:00
Dean Herbert
45e499778f
Search terms before performing other criteria checks
...
Very minor, but putting the more common case towards the
start of the method allows early return.
2023-12-05 15:28:56 +09:00
Dean Herbert
42010574b5
Avoid list construction when doing filtering
2023-12-05 15:26:14 +09:00
Dean Herbert
27e778ae09
Avoid sorting items when already in the correct sort order
2023-12-05 14:47:32 +09:00
Dean Herbert
7fda38d0b0
Use ordinal comparison when searching at song select
...
Bypasses various overheads. In theory should be fine? (until it's not on some language)
2023-12-05 14:14:13 +09:00
Givikap120
c2a44cf118
Made custom tooltip
2023-11-23 23:30:18 +02:00
Dean Herbert
9172632b0b
Rename method and adjust xmldoc to be very explicit about how wrong this is
2023-11-17 17:04:20 +09:00
Dean Herbert
d1cea10f21
Add note about localisation
2023-11-17 16:52:40 +09:00
Bartłomiej Dach
70d2de5669
Move song select touch detector to solo implementation
...
It should not run in multiplayer. Even if we wanted to allow touch-only
playlist items at some point, the current behaviour of multiplayer song
selects with respect to touch device mod is currently just broken.
2023-11-14 16:35:16 +09:00
Givikap120
26d493986c
Fixed precision and updated AdvancedStats
2023-11-12 18:05:18 +02:00
Dean Herbert
6bd5eda2a0
Merge branch 'master' into arod_rate_adjust
2023-11-12 15:49:07 +09:00
Givikap120
60c3e7250b
fixed naming incconvinence
2023-11-10 15:13:40 +02:00
Bartłomiej Dach
97fee6143c
Rename touch "input handlers" to detectors
2023-11-06 10:08:19 +01:00
Givikap120
d0b2b4f7b9
Update AdvancedStats.cs
2023-11-04 21:57:42 +02:00
Givikap120
820519c37d
improved tooltip
2023-11-04 21:55:46 +02:00
Givikap120
57170501cd
Improve code quality
2023-11-04 17:25:09 +02:00
Bartłomiej Dach
8784dd42c0
Do not attempt to turn on Touch Device in song select with autoplay active
2023-11-02 22:56:43 +01:00
Bartłomiej Dach
c588f434e5
Fix song select touch handler causing crashes when song select is suspended
2023-11-02 21:24:58 +01:00
Bartłomiej Dach
2f6ff893b5
Automatically activate and deactivate touch device mod in song select
2023-11-02 19:45:48 +01:00
Susko3
366e41f111
Use local workaround instead of disabling clipboard entirely
2023-10-28 12:23:23 +02:00
Bartłomiej Dach
2fa2217381
Fix left side of carousel blocking volume adjust hotkeys
...
Closes https://github.com/ppy/osu/issues/25234 .
A little ad-hoc, but probably fine...?
2023-10-26 16:26:35 +02:00
Bartłomiej Dach
5d6a58d443
Add failing test scene for scroll handling in song select
2023-10-26 16:24:16 +02:00
Bartłomiej Dach
19be0055d5
Merge pull request #24921 from Pasi4K5/diff-name-search
...
Add ability to search for difficulty names using square brackets
2023-10-24 12:07:02 +02:00
Dean Herbert
c9161a7bfc
Remove incorrect copy paste fail
2023-10-24 17:32:01 +09:00
Bartłomiej Dach
abfe2ce0fe
Fix comment
2023-10-24 10:05:20 +02:00
Dean Herbert
fcb366af4d
Add diff=
support for more advanced usages
2023-10-24 16:09:05 +09:00
Dean Herbert
6865d8894d
Simplify implementation and remove unsupported test coverage
2023-10-24 16:01:32 +09:00
Dean Herbert
1274829193
Block scroll and click operations on the left side of song select
2023-10-24 14:51:40 +09:00
Pasi4K5
c5339f440e
Apply code review suggestions
2023-10-23 23:30:54 +02:00
Dean Herbert
0ae0b0c353
Fix carousel "reset position" marging not scaling with UI scale correctly
2023-10-20 20:04:26 +09:00
Dean Herbert
137a1d948d
Allow interacting with the carousel anywhere in empty space at song select
2023-10-20 20:04:11 +09:00
Dean Herbert
e081fa48a2
Fix various other inspections
2023-10-17 17:48:51 +09:00
Dean Herbert
7139592e43
Fix collections not being sorted correctly in context menus
2023-10-16 16:03:12 +09:00
Dean Herbert
936a21a661
Fix redundant bindable initialisation in SongSelect
2023-10-06 16:51:56 +09:00
Pasi4K5
c927f90a48
Replace regex with a custom algorithm and update test scene.
2023-09-29 13:46:33 +02:00
Pasi4K5
23c20ca5f4
Add xmldocs
2023-09-29 13:44:11 +02:00
Dean Herbert
ae31a8fadf
Reduce delay before loading beatmap after selection change at song select
...
This was originally set high because of performance concerns. We have
since improved things quite drastically. Even with a very low debounce
my song select is amazingly smooth.
This is about as low as we can got unless we want chaos when key
repeating left/right arrows (it's not as bad as you think, maybe worth
testing during review and see if it feels more expected?).
Of note, stable has key repeat disabled on left/right arrows and zero
debounce.
Addresses concerns in https://github.com/ppy/osu/discussions/24916 .
2023-09-26 16:21:09 +09:00
Pasi4K5
74896fd6b2
Fix multiple difficulty search queries not working in some cases.
2023-09-25 13:38:47 +02:00
Pasi4K5
793d1bf970
Add ability to search for difficulty names
2023-09-25 12:52:49 +02:00
Salman Ahmed
5266cdc722
Add explanatory note
2023-09-21 20:41:10 +03:00
Dean Herbert
9af4e75dfc
Disable clipboard export for song select textbox
...
In combination with https://github.com/ppy/osu-framework/pull/5997 ,
closes https://github.com/ppy/osu/issues/24867
2023-09-22 01:24:29 +09:00