Fabian van Oeffelt
7527ddbc68
Comment, make code more readable, functions are now private
2024-05-02 19:05:43 +02:00
Fabian van Oeffelt
f534c4aada
Initial implementation
2024-05-02 18:42:35 +02:00
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