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

31803 Commits

Author SHA1 Message Date
Dan Balasescu
c5b1e5cbf8 Fix union resolver failing on multiple derived types 2022-02-24 20:27:22 +09:00
Dean Herbert
d69446ff6e
Merge pull request #16979 from smoogipoo/fix-playlists-partial-mod
Fix playlists not allowing entry with partial mods
2022-02-24 19:37:10 +09:00
Susko3
6f29cbccd1 Remove unused using 2022-02-24 10:36:10 +01:00
Susko3
255b3b067b Remove track fade 2022-02-24 10:13:27 +01:00
Dan Balasescu
7193bc8554 Fix playlists comparing mod equality via APIMod 2022-02-24 17:04:16 +09:00
Dan Balasescu
2acaffd5e7 Fix APIMod storing bindables instead of value 2022-02-24 17:01:12 +09:00
Dean Herbert
bb1aa032bd Combine SelectedItem and CurrentPlaylistItem into same storage 2022-02-24 16:21:20 +09:00
Dean Herbert
c6d78b9325 Fix several oversights in data linking causing drawable rooms not updating as expected 2022-02-24 16:12:15 +09:00
Dean Herbert
b4a54b38e7 Remove redundant parameter specification 2022-02-24 16:02:16 +09:00
Dean Herbert
401cf2a955 Allow pausing game-wide audio via hotkey as long as LocalUserPlaying is not set
`Player` seems to handle this correctly locally already, which is to say
if the user attempts to toggle the pause state incorrectly, it will
still recover.

The logic stoppic this operation was only in the key binding handler,
which meant it was already possible from the now playing overlay this
whole time, so I *think* this should be quite safe.
2022-02-24 16:00:14 +09:00
Dean Herbert
3f6bdc5585 Don't expose "mark as read" errors to the user via notifications
This can happen if the user leaves the channel before the request is
fired. You can't mark a channel as read when you're not in the channel.

Addresses https://github.com/ppy/osu/discussions/16973.
2022-02-24 15:40:07 +09:00
Dean Herbert
435bdd0b4a Combine and simplify state management logic
This makes a few changes to bring things into a better shape during
mouse interactions with the mod panels:

- Dragging away from the panel now works in line with other buttons (ie.
  `OsuButton`)
- Hovering now uses a lightened version of the current state, rather
  than always using the active colour. I think this feels better.
- Mouse down now uses a transform point of 0.5. This is to give the
  button a feeling of one of those latching light switches which resists
until reaching a point of overcoming the spring and switching state. I
think 0.4 (non-active) and 0.6 (from active) may work better, but left
at 0.5 for simplicity of implementation and I think it's good enough?
- Border always uses the gradiented version. I did this for simplicity
  of implementation, but also think it looks better.
- Adjusted transform durations to feel better to me.
2022-02-24 15:25:30 +09:00
Dean Herbert
6e8daa06fa Merge branch 'master' into mod-overlay/panel 2022-02-24 14:34:59 +09:00
Dean Herbert
2a2b8912c1
Merge branch 'master' into android-allow-exiting 2022-02-24 13:22:52 +09:00
Dean Herbert
8f951f8e8a
Merge pull request #16969 from peppy/update-framework
Update framework
2022-02-24 11:32:34 +09:00
Bartłomiej Dach
713f89a59c
Implement incompatibility-displaying variant of mod panel 2022-02-23 23:19:06 +01:00
Bartłomiej Dach
bbe2dfa458
Move out incompatibility displaying tooltip to own class 2022-02-23 23:18:15 +01:00
Bartłomiej Dach
8a0aba6c59
Implement mod panel for new mod select screen 2022-02-23 23:18:14 +01:00
Bartłomiej Dach
29d77a29aa
Merge branch 'master' into startup-protocol-handling 2022-02-23 21:10:27 +01:00
Dean Herbert
3f2ef030e4 Group SpectatorClient private fields together 2022-02-24 02:31:55 +09:00
Dean Herbert
5ffdd57895 Rename weirdly named parameter 2022-02-24 02:28:13 +09:00
Dean Herbert
694c6ad872 Fix frames potentially getting lost due to non-matching Schedule usage 2022-02-24 02:28:13 +09:00
Dean Herbert
260cf793fe Add test coverage of more advanced frame delivery scenarios to TestSceneSpectatorPlayback 2022-02-24 02:28:13 +09:00
Dean Herbert
47b84295a6 Fix bundle send logic not correctly waiting for task completion (due to nested schedule) 2022-02-24 02:23:48 +09:00
Dean Herbert
c94e7e2abe Add ability to simulate network failures to TestSpectatorClient 2022-02-24 02:23:48 +09:00
Dean Herbert
14c8ce50a0 Prefix all test send methods in TestSpectatorClient with Send 2022-02-24 02:23:48 +09:00
Dean Herbert
cff6f85472 Add note about reconnection being insufficient currently 2022-02-24 02:23:48 +09:00
Dean Herbert
5ff4d3f8e5 Add support to SpectatorClient to resend failed frame bundles 2022-02-24 02:21:29 +09:00
Susko3
5dd0d48df9 Move the key handling logic to MainMenu and simplify it
Also makes use of the host.SuspendToBackground() return value.
2022-02-23 14:06:22 +01:00
Dean Herbert
53bbd00675 Also make APIUser opt-in and remove the remaining serialization exclusion rule 2022-02-23 17:12:38 +09:00
Dean Herbert
43c83d2de1 Add note about why RoomID is nulled in DeepClone 2022-02-23 17:10:11 +09:00
Dean Herbert
f14a9af801 Make Room opt-in rather than opt-out for json serialization 2022-02-23 17:10:10 +09:00
Dean Herbert
28c9c5ab6a Remove unnecessary ShouldSerialize rules in Room 2022-02-23 17:10:10 +09:00
Dean Herbert
5d73691de4 Use existing HandleLink flow rather than reimplmenting 2022-02-23 17:02:39 +09:00
Dean Herbert
87da650dfb Update framework 2022-02-23 14:06:56 +09:00
Dean Herbert
5e7dd31f6d
Merge branch 'master' into mod-overlay/switches 2022-02-23 13:49:23 +09:00
Dan Balasescu
71a012bea6
Don't update count twice immediately
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-23 13:42:47 +09:00
Dan Balasescu
2bea485af8 Fix currently playing text not showing in lounge 2022-02-23 13:37:47 +09:00
Susko3
7bdcb5952e Fix handling badly-formatted osu:// urls 2022-02-23 00:36:56 +01:00
Bartłomiej Dach
d8fa443ea0
Extract default mod switch measurements to constants
For use later when specific sizes/scales of the mod switches are
desired.
2022-02-22 23:22:11 +01:00
Bartłomiej Dach
1a358698fb
Merge branch 'master' into startup-protocol-handling 2022-02-22 22:42:16 +01:00
Bartłomiej Dach
d1d6847d32
Add comment about split usage in osu:// protocol link handling 2022-02-22 22:24:37 +01:00
Dean Herbert
6de4e05e49 Fix current selection not being correctly maintained when BeatmapPicker updates its display 2022-02-22 17:17:08 +09:00
Dean Herbert
ed008267d7
Fix one more case of escaping not being present
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-22 16:45:18 +09:00
Dean Herbert
ca0a041153
Fix missing escaping causing test failures
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-22 16:45:04 +09:00
Dean Herbert
61b3280de1 Add missing property copies in Room.CopyFrom implementation 2022-02-22 15:47:00 +09:00
Dean Herbert
71ae425fb2 Merge branch 'master' into rooms-request-faster 2022-02-22 15:45:05 +09:00
Dean Herbert
057fd6c352 Add mention of StarRatingRangeDisplay fallback scenario being wrong for multiplayer 2022-02-22 15:37:42 +09:00
Dean Herbert
f12044b03e Add mention of PlaylistItem.Beatmap being a placeholder in many cases 2022-02-22 15:31:08 +09:00
Dean Herbert
cde3d9c08b Change precedence order to favour playlist as a source for beatmap count 2022-02-22 15:15:57 +09:00
Dean Herbert
e744840d07 Ensure old results are cleared from beatmap overlay on logout 2022-02-22 14:56:04 +09:00
Dean Herbert
d6032a2335 Fix beatmap overlay not re-fetching results after login 2022-02-22 14:55:52 +09:00
Dan Balasescu
a676acd80d
Merge pull request #16945 from peppy/three-column-playlist
Update playlist room display to a three column layout
2022-02-22 12:21:56 +09:00
Bartłomiej Dach
cfc41a0a36
Implement small mod switch 2022-02-22 00:26:35 +01:00
Bartłomiej Dach
5186693dad
Implement tiny mod switch 2022-02-22 00:26:35 +01:00
Bartłomiej Dach
cd3641137b
Add OsuColour method mapping colours from basic theme to mod types 2022-02-22 00:02:54 +01:00
Bartłomiej Dach
d71e511413
Merge branch 'master' into spotlights-on-top 2022-02-21 23:42:02 +01:00
Bartłomiej Dach
959f0330e0
Merge branch 'master' into three-column-playlist 2022-02-21 23:40:21 +01:00
Bartłomiej Dach
e3ae52360e
Merge branch 'master' into leaderboard-score-timeref 2022-02-21 20:50:00 +01:00
Susko3
3eee505aa2 Update "exit" flow when pressing back on Android 2022-02-21 20:24:17 +01:00
Susko3
8d70b85e41 Revert changes 2022-02-21 20:20:24 +01:00
Dean Herbert
897f0ecd5f
Merge pull request #16938 from smoogipoo/classic-score-hitobject-factor
Scale classic score by hitobject count instead of max combo
2022-02-22 00:40:56 +09:00
Dean Herbert
113153e6a3 Fix remaining filter tests 2022-02-22 00:25:00 +09:00
Dean Herbert
2aa0364092 Fix null reference in tests during attempted ruleset filtering 2022-02-22 00:14:33 +09:00
Dean Herbert
98c008b95f Fix test failures due to order change 2022-02-21 19:48:39 +09:00
Dean Herbert
655b23f408 Update playlist room display to a three column layout
Similar to the changes made to multiplayer.
2022-02-21 19:46:33 +09:00
Dean Herbert
c7e9cf904b Fix incorrect null check on now-bindable DifficultyRange 2022-02-21 19:38:26 +09:00
Dean Herbert
ffa5291b74 Add fallback handling for item count to support different request types 2022-02-21 19:37:36 +09:00
Dean Herbert
b5348e0407 Update ruleset filtering to use newly provided array return 2022-02-21 19:05:32 +09:00
Dean Herbert
b43008b9f6 Add cover and count handling from newer response version 2022-02-21 19:05:22 +09:00
Dean Herbert
39d64e779c Handle API returned difficulty range for rooms 2022-02-21 19:05:19 +09:00
Dean Herbert
7f4cc221d2 Add API versioning 2022-02-21 19:02:03 +09:00
Dan Balasescu
3e0e77394b
Merge branch 'master' into beatmap-decoder-ruleset-store 2022-02-21 18:26:22 +09:00
Dan Balasescu
0cfb85f3bb
Merge pull request #16939 from peppy/fix-intro-import-failure-ruleset-test-projects
Add safeties to skip attempted import of the intro beatmap when osu! ruleset not present
2022-02-21 18:24:56 +09:00
Dean Herbert
02a8500500 Ensure spotlights always show at the top of the lounge listing
As proposed at https://github.com/ppy/osu/discussions/16936. Spotlights
are intended to have focus, so let's make sure they are the first thing
the user sees for the time being.
2022-02-21 18:01:46 +09:00
Dean Herbert
1737128334 Allow room category to be copied even if Spotlight
I remember that this conditional copy was added to support making copies
of spotlight rooms without carrying across the `Spotlight` type, but in
testing this is already handled web side to the point that it's not
required.

The rationale for allowing the copy is that this method is used for
tests, where it was not being copied correctly from the input as
expected (used at
bdc3b76df0/osu.Game/Tests/Visual/OnlinePlay/TestRoomManager.cs (L38)).
2022-02-21 17:47:56 +09:00
Dan Balasescu
c466d6df94 Ensure to not multiply by 0 2022-02-21 17:19:35 +09:00
Dean Herbert
2f6e65a9a2 Gracefully handle undefined DateTimeOffset values
Only seems to happen in tests, but best to safeguard against this
regardless.
2022-02-21 16:35:40 +09:00
Dean Herbert
656c58567d Add safeties to skip attempted import of the intro beatmap when osu! ruleset not present
In general running this import will not cause any critical failures, but
the import itself *will* fail – and more loudly with the upcoming
changes to `RulesetStore` (https://github.com/ppy/osu/pull/16890). Due
to it being a loud failure, it will cause the notification overlay to
display a parsing error, which can interrupt the flow of some tests.

See test failure at
https://github.com/ppy/osu/runs/5268848949?check_suite_focus=true as an
example (video coverage at
https://github.com/ppy/osu/pull/16890#issuecomment-1046542243).
2022-02-21 16:21:38 +09:00
Dean Herbert
3d0caa44c8 Remove unused utils class 2022-02-21 13:43:30 +09:00
Dean Herbert
fc1877b6fa Move to extension method and revert logic to match previous implementation 2022-02-21 13:42:26 +09:00
Dan Balasescu
c3b365cf6b Scale classic score by hitobject count 2022-02-21 13:31:03 +09:00
Dean Herbert
79408f6afc Add xmldoc and clean up ScoreboardTimeUtils extension methods a touch 2022-02-21 13:30:58 +09:00
Dean Herbert
2ded7d281b Remove unused using statement 2022-02-21 13:17:19 +09:00
Dean Herbert
abe1a3990a
Merge branch 'master' into leaderboard-score-timeref 2022-02-21 12:11:10 +09:00
Bartłomiej Dach
36a00c1ee2
Remove static OverlayColourProviders 2022-02-20 21:09:08 +01:00
Bartłomiej Dach
ce0db9d4db
Remove all references to static OverlayColourProviders 2022-02-20 21:09:08 +01:00
Bartłomiej Dach
79ba37bbab
Add Colour0 to OverlayColourProvider 2022-02-20 21:09:08 +01:00
Bartłomiej Dach
2592f0900d
Add comments about OverlayColourProvider vs OsuColour distinction 2022-02-20 21:08:58 +01:00
Bartłomiej Dach
e20ae5b871
Add all colour constants for "basic" colour theme to OsuColour 2022-02-20 21:00:49 +01:00
dekrain
262751a98a
Revert highlighting recent scores 2022-02-19 21:23:35 +01:00
dekrain
31b7ce053d
Fix CI issues 2022-02-19 21:18:26 +01:00
dekrain
0d83c5a39a
Add colour highlighting recent scores 2022-02-19 20:47:30 +01:00
dekrain
15ed9ec4fa
Merge scoreboard and leaderboard implementations together 2022-02-19 20:47:02 +01:00
Susko3
7ef710de22 Allow exiting/minimizing on Android when on the initial cookie screen 2022-02-19 18:15:49 +01:00
Dean Herbert
c869be87d1 Update FlatFileWorkingBeatmap to not require a ruleset store 2022-02-19 20:53:04 +09:00
Dan Balasescu
65ffcefdf9
Merge pull request #16910 from peppy/fix-storyboard-background-replacement
Fix storyboard background replacement logic not working for beatmaps with multiple backgrounds
2022-02-18 19:08:52 +09:00
Dean Herbert
a029e418cf Use internal instead of protected internal 2022-02-18 17:06:04 +09:00
Dean Herbert
3abbf07fb3 Revert local registrations in test scenes 2022-02-18 16:52:34 +09:00
Dean Herbert
cf1dd1ebd3 Disallow registering a null RulesetStore 2022-02-18 16:52:34 +09:00
Dean Herbert
420e2c538f Automatically use an AssemblyRulesetStore if no custom store is registered 2022-02-18 16:52:34 +09:00
Dean Herbert
631c23ea3a Merge branch 'master' into beatmap-decoder-ruleset-store 2022-02-18 16:52:33 +09:00
Dean Herbert
e49da2948d Fix storyboard background replacement logic not working for beatmaps with multiple backgrounds
In the case where the background image of individual difficulties is
different, querying the beatmap *set*'s metadata as we were will cause
issues.

I haven't added test coverage for this but can if required. Can be
manually tested using https://osu.ppy.sh/beatmapsets/1595773#osu/3377474
(specifically the highest difficulty).

Closes https://github.com/ppy/osu/discussions/16873.
2022-02-18 16:24:19 +09:00
Dean Herbert
29c5683ba3 Add handling of beatmap links on startup 2022-02-18 16:14:37 +09:00
Dean Herbert
98aaf83177 Add a centralised constant for the osu URL schema protocol 2022-02-18 15:57:37 +09:00
dekrain
1abbb9ab39
Align the bar to be on baseline of score components
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-17 21:26:59 +01:00
OctopuSSX
08317b4265 Update ScreenshotManager.cs 2022-02-17 20:43:36 +03:00
Dean Herbert
d7ef0e4174
Merge pull request #16895 from bdach/better-new-difficulty-naming
Name newly created difficulties in a better way
2022-02-17 21:54:09 +09:00
Dean Herbert
9d0023c750 Fix incorrect mappings 2022-02-17 21:12:51 +09:00
Dean Herbert
3d5ed24e20 Fix beatmap overlay leaderboards and links not working
Completely aware that this isn't how it should be done, but would like
to get this out in a hotfix release today. Maybe changes opinions on
https://github.com/ppy/osu/pull/16890 structure?
2022-02-17 21:05:00 +09:00
Dean Herbert
bbc4ea1203
Merge branch 'master' into better-new-difficulty-naming 2022-02-17 19:21:33 +09:00
dekrain
f4d1e6f600
Add tests for timerefs 2022-02-17 10:38:29 +01:00
dekrain
7bd731ae08
Move the date next to the flag icon 2022-02-17 10:12:35 +01:00
Dean Herbert
2a1edcdf73
Merge branch 'master' into remove-playlistitem-beatmap 2022-02-17 17:19:26 +09:00
Dean Herbert
dc74d17478 Update framework 2022-02-17 16:45:20 +09:00
Dean Herbert
7307e68e9c Revert "Merge pull request #16889 from smoogipoo/remove-mod-multiplier"
This reverts commit 252b945d3b, reversing
changes made to a1b39a96cf.
2022-02-17 13:26:12 +09:00
Stedoss
aac1c53b06 Remove creator name from playlist item panel beatmap text 2022-02-17 03:04:16 +00:00
Bartłomiej Dach
8a08bb7aaf
Use best-name-finding helper in new difficulty creation flow 2022-02-17 00:28:18 +01:00
Bartłomiej Dach
e09570c31b
Implement best-name-finding helper method 2022-02-17 00:28:17 +01:00
Bartłomiej Dach
cb9ffc655a
Add tests showing expected behaviour of naming helper 2022-02-17 00:28:13 +01:00
dekrain
333a305af3
Use floor instead of ceiling 2022-02-17 00:09:17 +01:00
dekrain
c124034cf3
Add text displaying recent score time 2022-02-16 23:18:14 +01:00
Dean Herbert
23933fc881 Update xmldoc to mention that multipliers are not applied anywhere 2022-02-16 17:32:22 +09:00
Dean Herbert
5ffd3ff82a Add xmldoc and allow constructing an AssemblyRulesetStore with a directory path 2022-02-16 17:25:16 +09:00
Dean Herbert
5477af08c5 Register an AssemblyRulesetStore in tests which don't use OsuGameBase 2022-02-16 17:21:57 +09:00
Dean Herbert
d0efecfc9c Add RulesetStore for use where realm is not present (ie. other projects) 2022-02-16 17:13:54 +09:00
Dean Herbert
13086541f0 Add static RulesetStore to LegacyBeatmapDecoder 2022-02-16 17:13:54 +09:00
Dean Herbert
7a69de0060 Split out realm portion of RulesetStore 2022-02-16 17:13:31 +09:00
Dean Herbert
3d3f0a89c2 Remove legacy RulesetID property from BeatmapInfo 2022-02-16 16:46:53 +09:00
Dan Balasescu
4c1413e0c7 No longer require Mod implementation 2022-02-16 16:36:02 +09:00
Dan Balasescu
5dd9771c5f Remove mod multipliers from being applied to scores 2022-02-16 16:27:27 +09:00
Dan Balasescu
55d9f0b44b Store beatmap to a field instead 2022-02-16 16:03:08 +09:00
Dan Balasescu
edd31bf3aa Revert styling change 2022-02-16 15:51:18 +09:00
Dean Herbert
7e24b36f26 Merge branch 'master' into remove-playlistitem-beatmap 2022-02-16 14:24:57 +09:00
Dan Balasescu
84e82ef5e4 Add XMLDocs to difficulty attribute properties 2022-02-16 14:09:19 +09:00
Dan Balasescu
5db63a8751 Expose read-only list from request 2022-02-16 11:30:03 +09:00
Dean Herbert
6a08fd57ef Rename "client" fields in tests to specify whether spectator or multiplayer 2022-02-16 09:52:18 +09:00
Dean Herbert
187870b794 Merge branch 'master' into fix-multi-cache-dependencies 2022-02-16 09:44:37 +09:00
Dean Herbert
954ae60b81
Merge branch 'master' into copy-existing-difficulty 2022-02-16 08:55:12 +09:00
Dan Balasescu
ea5bb46fb8
Merge branch 'master' into net6 2022-02-16 00:40:04 +09:00
Dan Balasescu
b1dbd4abfe Fix incorrect playlist item <-> availability tracker logic
Results in revert to some prior logic for the tracker implementation.
2022-02-15 23:50:12 +09:00
Dan Balasescu
48573d2401 Move test request handling earlier in setup 2022-02-15 23:50:10 +09:00
Dan Balasescu
bdc3b76df0 Remove beatmap bindable from PlaylistItem 2022-02-15 23:50:08 +09:00
Dan Balasescu
94a974e1c9 Make OnlinePlayBeatmapAvailabilityTracker look up the online beatmap 2022-02-15 23:41:50 +09:00
Dan Balasescu
afcb7a4630 Make DrawableRoomPlaylistItem look up the online beatmap 2022-02-15 23:41:50 +09:00
Dan Balasescu
73ce1b324e Make DrawableRoom look up the online beatmap 2022-02-15 23:41:50 +09:00
Dan Balasescu
ccd265ebe7 Handle beatmap lookup requests in TestRoomRequestsHandler 2022-02-15 23:41:50 +09:00
Dan Balasescu
a5183cec77 Add helper to construct APIBeatmap 2022-02-15 23:41:08 +09:00
Dan Balasescu
2675bb87ff Add BeatmapLookupCache as another dependency 2022-02-15 21:05:25 +09:00
Dan Balasescu
c48a0dc993 Move UserLookupCache to online play test dependencies 2022-02-15 20:56:46 +09:00
Dan Balasescu
b2276baf71 Seal OnlinePlayTestScene.CreateChildDependencies() 2022-02-15 20:55:57 +09:00
Dan Balasescu
5b765581d8 Fix free mod selection not showing allowed mods 2022-02-15 16:28:15 +09:00
Dan Balasescu
efeba30b9f Remove ruleset and mod bindables from PlaylistItem 2022-02-15 16:28:15 +09:00
Dean Herbert
334fe1f120 Add AsSplitQuery specification to avoid optimisation recommendation log messages 2022-02-15 15:23:17 +09:00
Dean Herbert
8ec28dc8bc Update OsuDbContext in line with EF changes 2022-02-15 15:19:50 +09:00
Dean Herbert
28b45fa899 Add assertions against null reference for connection usages 2022-02-15 15:19:50 +09:00
Dean Herbert
60153bb69d Update nuget packages to highest usable versions
EF packages are intentionally pinned to 5.0.14 as higher versions no
longer support `netstandard2.1`, which we require for xamarin projects.
2022-02-15 15:19:23 +09:00
Salman Ahmed
f5d0eb41cb Update further ChangeFocus usages 2022-02-15 02:42:39 +03:00
Bartłomiej Dach
e45a2ae0fc
Restructure difficulty copy flow to adapt to latest changes 2022-02-14 22:02:37 +01:00
Bartłomiej Dach
6221447164
Append copy suffix on creating copy of difficulty 2022-02-14 20:19:12 +01:00
Bartłomiej Dach
40cfee3421
Explicitly reset online ID and beatmap status on copy 2022-02-14 19:54:40 +01:00
Bartłomiej Dach
7e75fa7117
Revert "Change BeatmapInfo copy logic to be opt-in rather than opt-out"
This reverts commit 5dabc9282c.
2022-02-14 19:52:08 +01:00
Bartłomiej Dach
4bd58cfde1
Update one more custom transform with BorderColour type change 2022-02-14 18:52:19 +01:00
Dean Herbert
8da0800d7f Update ChangeFocus usage in line with framework changes 2022-02-15 02:47:35 +09:00
Dean Herbert
b581ca14cc Update usages in line with BorderColour type change 2022-02-15 02:32:38 +09:00
Dean Herbert
e304c031dc Update framework 2022-02-14 22:06:37 +09:00
Dean Herbert
5b30921cbf Merge branch 'master' into net6 2022-02-14 22:06:35 +09:00
Dean Herbert
e324287f79 Reduce expansion delay on ExpandingButtonContainer
Felt too long.
2022-02-14 18:08:17 +09:00
Dean Herbert
3aa5908de8 Remove unused using statement 2022-02-14 18:01:56 +09:00
Dean Herbert
b9d9fc56af Move files to UI namespace 2022-02-14 17:51:39 +09:00
Dean Herbert
80ba06b0e3
Merge branch 'master' into expandable-controls 2022-02-14 16:57:45 +09:00
Bartłomiej Dach
5dabc9282c
Change BeatmapInfo copy logic to be opt-in rather than opt-out 2022-02-13 19:04:11 +01:00
Bartłomiej Dach
ecd6a68c6f
Clear hash when creating copy of existing difficulty 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
6fd663a718
Apply some renames to convey difference between creation options better 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
a144d6f8d6
Fix beatmap skin properties not copying 2022-02-13 14:01:22 +01:00
Bartłomiej Dach
1bf5375e74
Fix BeatmapInfo-associated member not copying 2022-02-13 14:01:21 +01:00
Bartłomiej Dach
a2c2b2bbb3
Add flow for copying existing difficulty content 2022-02-13 14:01:20 +01:00
Dan Balasescu
8b05b35b8c
Merge pull request #16854 from peppy/combine-score-submission-request-implementation
Standardise and combine base implementation of score submission requests
2022-02-11 17:31:55 +09:00
Dean Herbert
28bbf34b14 Remove unnecessary this. prefix 2022-02-11 16:21:49 +09:00
Dan Balasescu
43f1044987
Merge pull request #16850 from frenzibyte/readonly-pinned-scores
Add read-only pinned scores view in user profile overlay
2022-02-11 16:15:46 +09:00
Dean Herbert
908c31c687 Update stream read operations to use new helper methods 2022-02-11 16:02:25 +09:00
Dean Herbert
beb3731c0b Standardise and combine base implementation of score submission requests
These share too much yet have very different constructor signatures and
property exposure. Just a clean-up pass as I begin to look at replay
submission.
2022-02-11 15:53:47 +09:00
Salman Ahmed
ccd6648961 Update pinned score container header to use localised title 2022-02-11 09:22:09 +03:00
Salman Ahmed
b06caf2bf7 Update resources 2022-02-11 09:12:02 +03:00
Salman Ahmed
92e22c57a7 Introduce private APIRuleset for online ID equality comparison 2022-02-11 08:27:01 +03:00
Salman Ahmed
6f0e32826c Standardise ordering/grouping of IRulesetInfo/RulesetInfos 2022-02-11 04:27:11 +03:00
Salman Ahmed
26839f6ad8 Consider OnlineIDs during ruleset equality if available
Required for `APIBeatmap`s, which provide `Ruleset` instances with `OnlineID` available only.

Also consistent with the comparer implementation.
2022-02-11 04:26:58 +03:00
Salman Ahmed
1b729e891d Update pointless CompareTo implementation once again 2022-02-11 04:17:30 +03:00
Salman Ahmed
9574bc1382 Allow IRulesetInfos of same type to be comparable
At first I was planning on making `CompareTo` implemented at
`IRulesetInfo` itself and shared across classes, but turns out it only
implements it explicitly and not allow direct `IRulesetInfo.Equals`
calls.

It messed with my head enough that I decided to just let each class have
its own implementation and only allow same type.
2022-02-11 04:03:23 +03:00
Salman Ahmed
4f7003928a Add score container for pinned scores in ranks section 2022-02-10 21:32:18 +03:00
Salman Ahmed
9cd88ec2b8 Update API models with score pinning changes 2022-02-10 21:23:38 +03:00
Dean Herbert
2939bc4644 Update resources 2022-02-11 01:49:52 +09:00
Dean Herbert
eda213e4de
Merge pull request #16827 from smoogipoo/spectator-state-rework
Add user state to SpectatorState, allowing multiplayer to continue to results
2022-02-11 01:48:47 +09:00
Dean Herbert
44f2d8a448 Allow game folder migration to fail gracefully when cleanup cannot completely succeed 2022-02-10 19:30:26 +09:00
Dean Herbert
88bb9d4237 Fix migration errors not outputting the call stack to logs 2022-02-10 15:50:03 +09:00
Dan Balasescu
ebd105422f Remove unused using 2022-02-10 14:22:08 +09:00
Dan Balasescu
f7fb7825cc Simplify disposal 2022-02-10 14:21:51 +09:00
Dan Balasescu
a3896a8ebd Remove allowance of null dependency 2022-02-10 14:21:50 +09:00
Dan Balasescu
18251c9285 Clean up SpectatorScreen based on suggestions 2022-02-09 12:20:07 +09:00
Dan Balasescu
ffc4c64f7e Unify namings across the board 2022-02-09 12:10:07 +09:00
Dean Herbert
c242a63b11 Fix playlist overlay null reference when attempting an empty selection
As reported at https://github.com/ppy/osu/discussions/16829.
2022-02-09 10:16:45 +09:00
Dan Balasescu
886d1d2df6 Refactorings 2022-02-08 21:29:43 +09:00
Dean Herbert
79d1d54e33 Rename parameter to match other usages 2022-02-08 20:35:38 +09:00
Dan Balasescu
c1766d8a41 Add paused state 2022-02-08 20:29:53 +09:00
Dan Balasescu
4c76027178 Rename completed state to passed 2022-02-08 20:29:49 +09:00
Dan Balasescu
45b3f472ab Merge branch 'master' into spectator-state-rework 2022-02-08 19:51:50 +09:00
Dan Balasescu
b1a73996ba Fix incorrect check for beatmap availability 2022-02-08 19:36:42 +09:00
Henry Lin
10bdb7240f Pre-check for divisor zero and add explanation 2022-02-08 14:36:29 +08:00
Dean Herbert
8cca12da64
Merge branch 'master' into display-performance-attributes 2022-02-08 14:45:35 +09:00
Dan Balasescu
c2416c490e Fix crash on disconnection during multi-spectate 2022-02-08 11:29:39 +09:00
Henry Lin
56c90a21ce Add a todo 2022-02-06 11:22:12 +08:00
Henry Lin
f78c853bc7 Calculate max combo locally in PerformanceBreakdownCalculator 2022-02-06 10:59:53 +08:00
Henry Lin
0b1fef38af Use the playable beatmap provided in CreateStatisticsForScore 2022-02-05 21:36:34 +08:00
Henry Lin
c35ef917a1 Remove tooltip from performance statistic 2022-02-05 21:18:23 +08:00
Henry Lin
2e1a9f1379 Add performance breakdown as statistic item in extended statistics panel 2022-02-05 21:13:16 +08:00
Henry Lin
f29301cd1e
Merge branch 'master' into display-performance-attributes 2022-02-05 16:59:46 +08:00
Dean Herbert
eb25730b61 Revert "Merge pull request #16716 from peppy/carousel-less-invalidations"
This reverts commit 8d13e0514b, reversing
changes made to 95582a9023.
2022-02-05 16:12:58 +09:00
Dean Herbert
fd81842ade
Merge pull request #16778 from smoogipoo/simplify-test-spectator-client
Refactor TestSpectatorClient implementation
2022-02-05 00:26:44 +09:00
Salman Ahmed
5f5db2ae82
Merge branch 'master' into mvp-safe-area-support 2022-02-04 17:01:46 +03:00
Dan Balasescu
3a8ec205b3 Merge branch 'simplify-test-spectator-client' into spectator-state-rework 2022-02-04 22:42:53 +09:00
Dan Balasescu
09728a29ed Merge branch 'fix-broken-test-scene' into spectator-state-rework 2022-02-04 22:42:10 +09:00
Dan Balasescu
750f90e728 Simplify TestSpectatorClient implementation 2022-02-04 22:38:40 +09:00
Dean Herbert
d62885f30b
Don't schedule call to updateSize in LoadComplete to ensure following FinishTransforms runs as expected
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-02-04 22:31:41 +09:00
Salman Ahmed
5e47ce333c Change SafeAreaOverrideEdges to be get-only and protected 2022-02-04 16:10:49 +03:00
Dean Herbert
b5dde6f1ad Update resources 2022-02-04 21:38:52 +09:00
Dean Herbert
e2262bf3b2 Schedule all calls to updateSize for safety 2022-02-04 20:33:15 +09:00
Dean Herbert
98f61415c2
Merge branch 'master' into mvp-safe-area-support 2022-02-04 20:05:35 +09:00
Jamie Taylor
0f48c0131c
Layer playback of beatmap-changed and random-beatmap samples 2022-02-04 19:57:54 +09:00
Dean Herbert
002cc7261b
Merge pull request #16773 from smoogipoo/fix-spectator-restart-crash
Fix crash when gameplay is started while inside multiplayer spectator screen
2022-02-04 19:23:08 +09:00
Dean Herbert
503025b970 Fix completely incorrect and dangerous usage of bindable binding 2022-02-04 19:19:44 +09:00
Dean Herbert
915d63f6de Limit safe area bottom override to iOS only 2022-02-04 18:58:29 +09:00
Dean Herbert
8fc4d0c6f5 Add override edge rule to overflow above home indicator on iOS 2022-02-04 18:20:17 +09:00
Dan Balasescu
d5269ba05b Merge branch 'fix-spectator-restart-crash' into spectator-state-rework 2022-02-04 17:59:18 +09:00
Dan Balasescu
0473c6c52f Also handle null SelectedItem for safety 2022-02-04 17:53:51 +09:00
Dan Balasescu
b41655d5b9 Fix crash when gameplay starts while in multi-spectator screen 2022-02-04 17:47:41 +09:00
Dean Herbert
30d2c7ba6a Add parenthesis to disambiguify conditionals 2022-02-04 17:07:23 +09:00
Dean Herbert
52fdf0349f Add safe area support via ScalingContainer 2022-02-04 16:37:05 +09:00
Dean Herbert
4728919bca Update framework 2022-02-04 15:45:27 +09:00
Dan Balasescu
63064d682b
Merge pull request #16743 from hlysine/extended-statistics-without-replay
Allow statistic items in results screen to display without needing to watch a replay
2022-02-04 15:07:52 +09:00
Salman Ahmed
bbef12e72c Refactor ExpandingControlContainer to no longer rely on controls 2022-02-04 05:45:12 +03:00
Dean Herbert
ee1feae806
Remove unnecessary ruleset ordering
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-02-04 11:06:18 +09:00
Bartłomiej Dach
6dc0f3fd96
Merge difficulty creation methods into one
One of them wasn't really doing much anymore and was more obfuscating
what was actually happening at this point.
2022-02-03 18:14:30 +01:00
Bartłomiej Dach
b7d7e6612e
Merge branch 'master' into new-difficulty-creation-v3 2022-02-03 16:36:18 +01:00
Dan Balasescu
f285060148 Fix MultiSpectatorScreen not continuing to results 2022-02-03 21:50:19 +09:00
Dan Balasescu
483977d5c8 Merge branch 'master' into spectator-state-rework 2022-02-03 19:59:07 +09:00
Dean Herbert
bef0a2da21 Remove return type from AddDifficultyToBeatmapSet
Also removes a pointless realm encapsulation.
2022-02-03 19:43:43 +09:00
Dean Herbert
ad47649d1c Make BeatmapModelManager.Save non-virtual 2022-02-03 19:38:53 +09:00
Dean Herbert
b2efce2656
Merge branch 'master' into expandable-controls 2022-02-03 19:23:34 +09:00
Dean Herbert
47d577ec9c Add back constructor for ruleset compatibility 2022-02-03 19:17:56 +09:00
Dean Herbert
6974c2d255 Remove weird panelIsComplete flag and replace LINQ with simple foreach 2022-02-03 19:00:03 +09:00
Dean Herbert
df9d99f5aa Merge branch 'master' into extended-statistics-without-replay 2022-02-03 18:59:48 +09:00
Dean Herbert
6d6327d3da Fix test beatmap loading potentially performing selection before carousel itself is loaded 2022-02-03 18:40:16 +09:00
Dean Herbert
e65996efc3 Rename variable to match purpose better 2022-02-03 17:14:38 +09:00
Dean Herbert
137a9a0305 Merge branch 'master' into songselect-random-sfx 2022-02-03 17:14:28 +09:00
Dean Herbert
c8ce00b26a Trigger a re-layout of HUD components when scoring mode is changed
This is a simple way of fixing the layout of scoring elements
overlapping due to different score display width requirements of
different scoring modes. It will only resolve the case where a user
hasn't customsied the layout of the default skins, but as this is a very
simple / low effort implementation for the most common scenario, I think
it makes sense.

Closes https://github.com/ppy/osu/issues/16067.
2022-02-03 14:50:41 +09:00
Dean Herbert
a69c7a9de6 Split exceptions back out to give better messaging 2022-02-03 14:09:27 +09:00
Dean Herbert
62fa915193 Standardise exception messages for local-user-logged-out flows 2022-02-03 13:58:55 +09:00
Dan Balasescu
d9a43b4c4c Fix API requests not completing when offline 2022-02-03 13:16:54 +09:00
Henry Lin
aff36d4e16 Refactor populateStatistics to avoid disposing 2022-02-03 11:52:37 +08:00
Dan Balasescu
62537eb4aa Fix spectator not completing 2022-02-03 12:44:33 +09:00
Dean Herbert
b94fe84712
Merge branch 'master' into new-difficulty-creation-v3 2022-02-03 10:48:20 +09:00
Dean Herbert
2731d8e3c2
Merge pull request #16701 from LeNitrous/mod-alternate-osu
Add "Alternate" mod for osu! ruleset
2022-02-03 10:41:23 +09:00
Bartłomiej Dach
a8ffc4fc2a
Add editor override to respect IsolateSavingFromDatabase 2022-02-02 21:57:21 +01:00
Bartłomiej Dach
47429fb0c6
Fix same-name safety firing wrongly 2022-02-02 21:57:21 +01:00
Bartłomiej Dach
afc48d86df
Add failing test coverage for save after safeties addition 2022-02-02 21:57:10 +01:00
Bartłomiej Dach
4f1aac9345
Add safeties preventing creating multiple difficulties with same name 2022-02-02 21:57:09 +01:00
Bartłomiej Dach
54bb6ad40c
Fix working beatmaps not seeing new difficulties after add 2022-02-02 21:55:34 +01:00
Bartłomiej Dach
0d51c015ad
Add basic test coverage for new difficulty creation 2022-02-02 21:55:34 +01:00
Bartłomiej Dach
dc96c4888b
Add support for creating new blank difficulties 2022-02-02 21:55:33 +01:00
Bartłomiej Dach
b613aedeb8
Fix menu item width changing when hovered 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
3386f038ba
Add new difficulty creation menu 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
e2fcdc394b
Extract method for difficulty switch menu creation 2022-02-02 21:23:35 +01:00
Bartłomiej Dach
82f9ad63f5
Fix flashlight size multiplier printing with too many decimal digits 2022-02-02 20:41:25 +01:00
Salman Ahmed
074a691635 Set keyboard step to 0.1 for difficulty adjust sliders 2022-02-02 17:43:08 +03:00
Dan Balasescu
81a22dbd29 Add back playing users list 2022-02-02 23:19:43 +09:00
Dan Balasescu
fcbba3d948 Rename PlayingUserStates -> WatchingUserStates 2022-02-02 23:11:29 +09:00
Dan Balasescu
9d1d13c715 Fix up TestSpectatorClient implementation
Rather than using a list which is supposed to be updated "client"-side,
now uses the "server"-side list.
2022-02-02 23:05:09 +09:00
Dean Herbert
19eb9ad8a7 Reorder StatisticsItem constructor to make a touch more sense 2022-02-02 23:02:38 +09:00
Henry Lin
3c2a6fe208 Don't prompt for a replay if no item requires hit events 2022-02-02 19:07:14 +08:00
Henry Lin
1e19c7046a Use spacing instead of bottom margin 2022-02-02 19:02:29 +08:00
Henry Lin
b0023b9809 Also dispose rows 2022-02-02 19:00:46 +08:00
Dan Balasescu
6d3bc005ea Merge branch 'master' into spectator-state-rework 2022-02-02 18:57:04 +09:00
Dan Balasescu
b5fb3b7dae Fix crash when selecting swap mod as freemod 2022-02-02 18:42:22 +09:00
Henry Lin
36bfef4f54 Dispose container before replacing 2022-02-02 17:32:16 +08:00
Henry Lin
042574660c Rename "Content" to "CreateContent" 2022-02-02 17:29:03 +08:00
Henry Lin
90e30bc9e8 Remove useless null checks 2022-02-02 17:26:17 +08:00
Henry Lin
5e3d124eef Add scrolling to the extended statistics panel 2022-02-02 17:20:22 +08:00
Dan Balasescu
db0f3b7f5e
Merge pull request #16738 from peppy/fix-ruleset-incorrectly-loading
Fix rulesets potentially being marked `Available` even when methods are missing
2022-02-02 18:03:04 +09:00
Dean Herbert
4f3e55a0ce
Merge branch 'master' into songselect-random-sfx 2022-02-02 17:18:24 +09:00
Dean Herbert
cb31ce812c Merge branch 'master' into cursor-tap 2022-02-02 16:34:34 +09:00
Dean Herbert
4758de226b Update resources 2022-02-02 16:27:59 +09:00
Dean Herbert
0c5da9370a Fix rulesets potentially being marked Available even when methods are missing
Came up when running the game after the recent breaking changes
(https://github.com/ppy/osu/pull/16722), where two template rulesets I
had loaded were erroring on startup but still being marked as available,
allowing them to crash the game on attempting to initiate relpay logic.

These cases are already handled for first-time ruleset loading via the
`GetTypes()` enumeration in `RulesetStore.addRuleset`, but when
consistency checking already present rulesets the only runtime
validation being done was `ruleset.CreateInstance()`, which does not
handle missing types or methods.
2022-02-02 14:52:01 +09:00
Jamie Taylor
6e60e68b80
Change from click to mousedown+mouseup and only play when cursor is visible 2022-02-02 14:44:06 +09:00
Henry Lin
3ba5d88914 Update statistics item display logic 2022-02-02 13:41:51 +08:00
Henry Lin
c5c4c85006 Lazily create content of StatisticItem 2022-02-02 13:29:18 +08:00
Dean Herbert
6d962e7925
Merge pull request #16726 from dekrain/leaderboard-score-tooltip
Add basic tooltip for leaderboard scores
2022-02-02 13:56:45 +09:00
Dean Herbert
d065e32ca1 Fix crash due to MatchLeaderboardScores not having populated rulesets 2022-02-02 13:23:49 +09:00
Henry Lin
b4fd1ecba2 Hide attribute if the maximum is 0 2022-02-02 11:02:01 +08:00
Dean Herbert
35b7653290 Revert mod flow changes and add visual test coverage showing an overflow case 2022-02-02 09:13:19 +09:00
Bartłomiej Dach
75101b1105
Remove unused ruleset ctor params from test beatmap model managers
No longer used since 00e3af3366.
2022-02-01 21:49:41 +01:00
Bartłomiej Dach
994fb966b6
Remove Host ctor param from SkinModelManager
No longer used since 29d074bdb8.
2022-02-01 21:37:19 +01:00
Bartłomiej Dach
07d09b3520
Remove unused parameter from createGameplayComponents()
No longer used since 136843c8e4.
2022-02-01 21:35:41 +01:00
Bartłomiej Dach
a94702b3ae
Remove unused parameters in LegacyComboCounter
No longer used since 9bb8a43bce.
2022-02-01 21:35:41 +01:00
Bartłomiej Dach
1fa2bf5d69
Remove unused parameter from createColourBars()
No longer used since b61aa660c6.
2022-02-01 21:35:40 +01:00
Bartłomiej Dach
c6a65ccfed
Remove unused parameter from createContent()
No longer used since 513e470b52.
2022-02-01 21:35:40 +01:00
Bartłomiej Dach
16e0cc6a2b
Remove IIpcHost param from ScoreManager
No longer used since 3e3b9bc963.
2022-02-01 21:35:40 +01:00
Bartłomiej Dach
a378e78ced
Fix RealmLive unnecessarily passing ID around
Appears to have never been needed. When the `retrieveFromID` method was
created in 81b5717ae7, it didn't use the
`id` parameter for anything either.
2022-02-01 21:35:12 +01:00
Bartłomiej Dach
3d7af805a3
Fix BeatmapMetadata not using its user param correctly 2022-02-01 21:16:28 +01:00
dekrain
eee020f8e4
Cleanup tooltip layout
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-01 20:26:52 +01:00
Henry Lin
b06128ffa5 Rename "Final PP" to "Achieved PP" 2022-02-01 22:26:55 +08:00
Henry Lin
39524f3dd2 Split total pp into 2 lines 2022-02-01 22:26:30 +08:00
Dan Balasescu
f4210f7a30 Rework spectator components to use new user state 2022-02-01 21:53:25 +09:00
Dan Balasescu
41007169f7 Give SpectatorState a user state 2022-02-01 21:51:05 +09:00
Dean Herbert
0f83f77d2b Add xmldoc for new ResetFromReplayFrame method 2022-02-01 16:52:53 +09:00
Dean Herbert
f87920cd83 Remove unnecessary GridContainer and list mods verticall to give more space 2022-02-01 16:43:26 +09:00
Dean Herbert
8eace12fe3 Synchronise (roughly) backgrounds of all custom tooltips 2022-02-01 16:35:25 +09:00
Dean Herbert
fdb52a8fd7 Remove gap in tooltip display between statistics 2022-02-01 16:35:25 +09:00
Dean Herbert
855135c51e Fix potential nullref during display due to incorrect equality check 2022-02-01 16:13:27 +09:00
Dean Herbert
e1b57c4bf6 Fix inspections 2022-02-01 16:07:57 +09:00
dekrain
d7b939277e
Code quality improvements 2022-02-01 07:10:00 +01:00
dekrain
fd287e06f2
Add missing license header 2022-02-01 06:51:00 +01:00
Dan Balasescu
38e075c522 Add HasQuit gameplay state 2022-02-01 14:47:19 +09:00
Dan Balasescu
781cb9f18d Move HasPassed/HasFailed into GameplayState 2022-02-01 14:46:24 +09:00
dekrain
c2b775c0a3
Minor alignment adjustments 2022-02-01 06:45:59 +01:00
Dan Balasescu
502e6af008 Remove PlayingUsers list from SpectatorClient 2022-02-01 14:42:30 +09:00
Dan Balasescu
0641264a11 Merge branch 'master' into spectator-consistency-frames 2022-02-01 14:35:30 +09:00
dekrain
db973fb348
Add basic tooltip for leaderboard scores 2022-02-01 06:28:18 +01:00
Dan Balasescu
c421d8d3cd
Merge pull request #16719 from peppy/mania-column-touch
Add basic touch input support for osu!mania
2022-02-01 12:26:29 +09:00
Dan Balasescu
c50577e25f
Apply suggestion from review
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-02-01 10:48:41 +09:00
Dan Balasescu
4fb565e15f Reset ScoreProcessor from statistics replay frames 2022-01-31 21:32:56 +09:00
Dan Balasescu
39e1d65976 Make ScoreProcessor write all judgement types 2022-01-31 18:53:47 +09:00
Dan Balasescu
0458d408bb Add replay statistics frames to FramedReplayInputHandler 2022-01-31 18:53:47 +09:00
Dan Balasescu
4727aeda01 Give last bundled replay frame the frame header 2022-01-31 18:53:47 +09:00
Dan Balasescu
f3d4756c7f
Merge pull request #16713 from frenzibyte/fix-spectator-gcc-state-2
Fix multiplayer spectator occasionally rewinding time unexpectedly
2022-01-31 18:33:08 +09:00
Dan Balasescu
62603e78fd
Merge pull request #16714 from frenzibyte/rewrite-hardware-correction-clock
Rewrite `HardwareCorrectionOffsetClock` to handle seeking on different gameplay rates
2022-01-31 17:32:22 +09:00
Dan Balasescu
a49a9ed0a0 Fix incorrect invoke 2022-01-31 17:19:04 +09:00
Dean Herbert
0e764538e0 Retrieve KeyBindingContainer via DI rather than traversal lookup 2022-01-31 17:05:04 +09:00
Dean Herbert
9005bce0fa Add "counter" keyword for key overlay setting 2022-01-31 16:37:51 +09:00
Dean Herbert
a84fd2e20c
Merge branch 'master' into master 2022-01-31 16:30:08 +09:00
Dan Balasescu
cec16d17ab
Merge pull request #16696 from peppy/fix-migration-crash-case-sensitivity
Fix stable import not working when multiple configuration files exist with different file case
2022-01-31 15:52:29 +09:00
Dan Balasescu
8d13e0514b
Merge pull request #16716 from peppy/carousel-less-invalidations
Refactor carousel drawables to reduce invalidations
2022-01-31 15:52:08 +09:00
Dean Herbert
c8c0ae5658
Merge branch 'master' into flush-frames-end-play 2022-01-31 15:12:41 +09:00
Dean Herbert
57f793aff0 Rename dictionary and make private for added safety 2022-01-31 15:12:08 +09:00
Dean Herbert
6bc6675fa1 Adjust fade in times slightly 2022-01-31 14:46:20 +09:00
Dean Herbert
8917ab78f4 Reduce unnecessary container nesting and adjust empty state opacity slightly 2022-01-31 14:46:20 +09:00
Dean Herbert
2ee0db0ebf Move fade in function local 2022-01-31 14:46:20 +09:00
Dean Herbert
c3e3b2019d Reduce overhead of ApplyState by tracking previous values
Even with pooling applied, there are overheads involved with transforms
when quickly cycling through the carousel.

The main goal here is to reduce the transforms in cases the reuse is
still in the same state. Avoiding firing `FadeIn` and `FadeOut` are the
main areas of saving.
2022-01-31 14:46:20 +09:00
Dean Herbert
a06287e76a Remove DrawableCarouselItem.Update updating of height
Marginal from a performance aspect, but reads better.
2022-01-31 14:46:20 +09:00
Dan Balasescu
e9f3e7f5cb
Merge pull request #16703 from peppy/leaderboard-component-fixes
Rewrite `Leaderboard` component to bring up to current code standards
2022-01-31 14:33:04 +09:00
Dean Herbert
9c9fda84f3 Add schedule and cancellation check to score ordering step 2022-01-31 13:50:53 +09:00
Dean Herbert
610eb9f6a4 Remove unnecessary container level 2022-01-31 13:45:49 +09:00
Salman Ahmed
6556a7e3c3 Handle different gameplay rates when seeking on master clock 2022-01-31 01:40:07 +03:00
Dean Herbert
f8939af5e6 Track loading via state as well 2022-01-31 01:12:03 +09:00
Dean Herbert
1cec76df74
Fix weird reading xmldoc
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-01-30 23:18:40 +09:00
Dean Herbert
82806d7aeb Ensure the background is eventually displayed when IntroTriangles suspends 2022-01-30 21:32:39 +09:00
Dean Herbert
52f1c2bfdb Add failsafe to IntroScreen to stop users with incorrect audio configuration getting stuck
The most common case of this seems to be linux users with incorrect or
unsupported audio driver configurations. It continues to be brought up
in discussions as people are unsure of why their game freezes on
startup, and unable to easily recover.
2022-01-30 18:51:16 +09:00
Dean Herbert
04dbb5d3c6 Disallow setting "NoScores" externally as it is handled internally 2022-01-30 16:18:19 +09:00
Dean Herbert
acc1199add Consolidate flows of Set operations, either result or error 2022-01-30 16:16:00 +09:00
Dean Herbert
c401629dd8 Also refactor placeholder logic to make more sense 2022-01-30 10:50:32 +09:00
Salman Ahmed
3ec193d47e Fix spectator clock container incorrectly starting catch-up clock 2022-01-30 01:46:10 +03:00
Salman Ahmed
4f4f60248f Add failing test case 2022-01-30 01:46:10 +03:00
Dean Herbert
b434e29a7c Move loading hide operation inside early return to ensure not hidden too early
It should only be hidden after the async load completes.
2022-01-30 03:10:15 +09:00
Dean Herbert
dad9cc9315 Ensure Reset/Scores_Set run inline where possible 2022-01-30 03:06:29 +09:00
Dean Herbert
9b573fbc2b Add missing entries to switch statement and guard against out of range 2022-01-30 02:58:53 +09:00
Dean Herbert
d21464ea61 Fix assertions to work in both directions 2022-01-30 02:54:51 +09:00
Dean Herbert
d3cb910cf8 Convert inline math to not so inline to make operation more explicit 2022-01-30 02:37:01 +09:00
Dean Herbert
3d771c0fc7 Remove unnecessary loading hide call from PlaceholderState_Set and add more assertiveness 2022-01-30 02:34:31 +09:00
Nitrous
e408d8ef0e
rename Frames to ReplayFrames 2022-01-29 23:19:51 +08:00
Dean Herbert
6f54f8ad78 Add more safety around CancellationToken usage 2022-01-29 23:58:57 +09:00
Dean Herbert
d0b74a91fb Fix edge cases with score drawable loading 2022-01-29 23:58:57 +09:00
Dean Herbert
0293d95f82 Simplify IsOnlineScope usage 2022-01-29 23:58:57 +09:00
Dean Herbert
daea13f491 Simplify flow of cancellation token 2022-01-29 23:58:57 +09:00
Dean Herbert
3d59bab7c6 Remove fetch callback logic completely 2022-01-29 23:58:57 +09:00
Dean Herbert
13f445ddd5 Move score update code into own method 2022-01-29 23:58:57 +09:00
Dean Herbert
c48e9f2bbd Remove more unnecessary schedule/cancel logic 2022-01-29 23:58:57 +09:00
Dean Herbert
a700ad3849 Remove scoresLoadedOnce weirdness 2022-01-29 23:58:57 +09:00
Dean Herbert
661fec7c8a Make score setter private 2022-01-29 23:58:57 +09:00
Dean Herbert
b85b2c01fb Reorder based on accessibility and add regions 2022-01-29 23:58:57 +09:00
Dean Herbert
c548658662 Remove move unused pieces 2022-01-29 23:58:57 +09:00
Dean Herbert
17aa9f3040 Remove pointless level of schedule/cancel logic 2022-01-29 23:58:57 +09:00
Dean Herbert
64925b3fea Remove unused Content override 2022-01-29 23:58:57 +09:00
Dean Herbert
b9dac6c3b2 Reorder and tidy up bindable flows 2022-01-29 23:58:57 +09:00
Dean Herbert
aee93934d5 Rename methods to make more sense (and always run through AddOnce) 2022-01-29 23:58:57 +09:00
Dean Herbert
c6d303a5b4 Add xmldoc to Leaderboard class 2022-01-29 23:58:57 +09:00
Nitrous
a8eb3f95df
add readonly modifier 2022-01-29 22:54:17 +08:00
Nitrous
b4e516c535
allow test scenes to specify replays manually 2022-01-29 22:31:24 +08:00
Dean Herbert
1a14ccc7ee Run EF migrations before migrating to realm
Turns out that there are more than zero users that are upgrading from
old databases. I think we probably want to support this for now.

Tested against database in https://github.com/ppy/osu/discussions/16700
and one other I had locally, both work correctly.
2022-01-29 23:13:23 +09:00
Dean Herbert
d48fae1100 Revert "Remove all EF migrations"
This reverts commit bb5b9458e8.
2022-01-29 23:13:23 +09:00
Nitrous
98d8b26a9c
move ModAlternate to OsuModAlternate and check if intro has ended 2022-01-29 21:49:40 +08:00
Nitrous
2326c36836
remove unused method and fix description 2022-01-29 21:09:36 +08:00
Nitrous
aa582fb0e1
add Alternate Mod 2022-01-29 20:38:12 +08:00
Dean Herbert
e7823982d8 Fix ruleset value not being transferred when FinaliseSelection is not called 2022-01-29 18:44:48 +09:00
Dean Herbert
b2ebcabdd5 Fix potential crash during stable install migration due to multiple configuration files
Apparently this can be a thing on windows.

Closes https://github.com/ppy/osu/discussions/16689.
2022-01-29 13:30:07 +09:00
Dan Balasescu
3037a3a769 Purge final spectator frames before ending play 2022-01-28 22:26:05 +09:00
Dan Balasescu
397971c631 Change FrameDataBundle.Frames into an IList 2022-01-28 22:06:34 +09:00
Dan Balasescu
8883505eed
Merge pull request #16686 from peppy/fix-ar-on-old-maps
Fix approach rate not being transferred from OD on older beatmaps
2022-01-28 20:17:37 +09:00
Dean Herbert
53ca597e2b Update framework 2022-01-28 19:12:32 +09:00
Dean Herbert
142a67e163 Fix approach rate not being transferred from OD on older beatmaps 2022-01-28 18:53:28 +09:00
Jamie Taylor
4d9b61212b
Add 'cursor tap' audio feedback 2022-01-28 18:13:51 +09:00
Dan Balasescu
f021a274d2
Merge pull request #16681 from peppy/fix-delete-local-scores
Fix delete local scores via "Clear all scores" button crashing the game
2022-01-28 17:01:31 +09:00
Dan Balasescu
bdc9ca40f2
Merge pull request #16676 from peppy/fix-editor-custom-ruleset
Fix editor crashing on custom rulesets due to `ChangeHandler` not being supported
2022-01-28 16:26:56 +09:00
Dan Balasescu
c7f8528d63
Merge pull request #16673 from peppy/fix-polling-component-thread-safety
Fix occasional non-fatal errors from polling API requests incorrectly getting queued twice
2022-01-28 16:26:47 +09:00
Dan Balasescu
b94984bd2d
Merge pull request #16678 from peppy/hold-for-menu-always-fade
Ensure hold for menu button fades out if the cursor is never moved
2022-01-28 15:55:41 +09:00
Dean Herbert
0d3ac4fd9c Fix delete local scores crashing the game 2022-01-28 15:54:53 +09:00
Dean Herbert
778eebc94d Add test coverage of local score import and deletion 2022-01-28 15:50:36 +09:00
Dean Herbert
cb7ae413fe Ensure test game is always active 2022-01-28 15:50:35 +09:00
Dan Balasescu
0bba8a52c6
Merge pull request #16663 from bdach/beatmap-info-defaults
Change some beatmap info/metadata defaults in a backwards compatible manner
2022-01-28 15:41:20 +09:00
Dean Herbert
28c8e07e3f Ensure hold for menu button fades out if the cursor is never moved
Closes https://github.com/ppy/osu/discussions/16669.
2022-01-28 14:48:35 +09:00
Dean Herbert
b7d8c9bf06 Fix a couple of cases of incorrect equality checks in the case both values are null 2022-01-28 14:29:56 +09:00
Dean Herbert
b3856c9005 Fix editor crashing on custom rulesets due to ChangeHandler not being supported
As per https://github.com/ppy/osu/discussions/16668, even without proper
saving support some ruleset developers do want to work on the editor.
This brings things back into a workable state.
2022-01-28 14:03:31 +09:00
Dean Herbert
91be77ad3d Fix null ref in ComposeScreen when ruleset doesn't provide a composer 2022-01-28 14:01:10 +09:00
Dean Herbert
c953a5d503 Ensure PollingComponent.Poll is always called from the update thread
Not strictly required since all `Poll` implementations are now
threadsafe, but extra safety is never a bad thing?
2022-01-28 13:44:11 +09:00
Dean Herbert
c44af4853d Add thread safety to PollingComponent.Poll implementations 2022-01-28 13:43:53 +09:00
Jamie Taylor
f59828e2d9
Add audio feedback to song select 'random' 2022-01-28 13:43:37 +09:00
Bartłomiej Dach
6674567af1
Use -1 as the default preview time globally in metadata 2022-01-27 21:51:51 +01:00
Bartłomiej Dach
1b8136e3e0
Change some BeatmapInfo defaults in a backwards compatible manner 2022-01-27 21:49:37 +01:00
Bartłomiej Dach
04d6ca59a3
Merge branch 'master' into song-select-scroll-position-during-delete 2022-01-27 20:46:19 +01:00
Dean Herbert
942ea896f1 Skip scores missing beatmaps during realm migration 2022-01-28 01:20:32 +09:00
Dean Herbert
81461be49f Skip beatmap imports where ruleset is not present in realm
Closes #16651.

When a ruleset is not available, the `Find` call would return null. When
a null is passed to the constructor, `BeatmapInfo` would create an "osu"
ruleset, which tries to get stored to realm and fails on duplicate
primary key.

Probably need to add better safeties against this (or change that
constructor...) but this will fix the migration process.

Probably not serious enough to pull the build. This only affects
rulesets like karaoke which have custom beatmaps.
2022-01-28 00:14:20 +09:00
Dean Herbert
2d1a8a9d49 Use a more correct CompareTo implementation for ruleset ordering 2022-01-27 21:58:04 +09:00
Salman Ahmed
2cc69d6b19 Replace IsControlDragged with an abstract ShouldBeExpanded 2022-01-27 15:57:56 +03:00
Dean Herbert
33b7bdcf82 Update pointless CompareTo implementation 2022-01-27 21:49:33 +09:00
Dean Herbert
7af23328a4
Merge branch 'master' into ruleset-ordering-fix 2022-01-27 21:46:03 +09:00
Dean Herbert
d7fd11a16d
Merge pull request #16644 from peppy/ruleset-id-fixes
Update all usages of `RulesetID` and `Ruleset.ID` to use `Ruleset.OnlineID`
2022-01-27 21:44:22 +09:00
Dean Herbert
df9f969030
Merge pull request #16645 from peppy/fix-button-system-crash
Fix `ButtonSystem` null reference crash due to missing null check in delayed animations
2022-01-27 17:09:46 +09:00
Dean Herbert
3ae5973ab7 Fix compilation error due to commit split 2022-01-27 17:08:31 +09:00
Dean Herbert
a5d422e82c Merge branch 'master' into ruleset-id-fixes 2022-01-27 17:07:18 +09:00
Dean Herbert
29a4ec949f
Merge pull request #16637 from bdach/editor-changes-not-resetting
Fix changes to beatmap info made in editor persisting after exit without save
2022-01-27 17:02:42 +09:00
Dean Herbert
449e9bcf5c Ensure beatmap carousel scroll position is maintained during deletion operations 2022-01-27 16:52:02 +09:00
Dean Herbert
0a45aa80cb Remove unnecessary double-schedule in UpdateBeatmapSet 2022-01-27 16:52:02 +09:00
Dan Balasescu
54d18bd7ac
Merge pull request #16642 from peppy/ruleset-private-info-set
Make `Ruleset.RulesetInfo` get only
2022-01-27 16:41:52 +09:00
Dan Balasescu
81ba1558de
Merge pull request #16643 from peppy/ruleset-silly-ctor
Remove pointless constructor in `RulesetInfo`
2022-01-27 16:41:38 +09:00
Dean Herbert
b87d1a61a8 Fix ButtonSystem null reference crash due to missing null check in delayed animations
```csharp
[runtime] 2022-01-27 07:36:34 [error]: System.NullReferenceException: Object reference not set to an instance of an object.
[runtime] 2022-01-27 07:36:34 [error]: at osu.Game.Screens.Menu.ButtonSystem.<>c__DisplayClass56_0.<updateLogoState>b__1() in /Users/dean/Projects/osu/osu.Game/Screens/Menu/ButtonSystem.cs:line 357
[runtime] 2022-01-27 07:36:34 [error]: at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
[runtime] 2022-01-27 07:36:34 [error]: at osu.Framework.Threading.Scheduler.Update()
[runtime] 2022-01-27 07:36:34 [error]: at osu.Framework.Graphics.Drawable.UpdateSubTree()
```
2022-01-27 16:39:38 +09:00
Dean Herbert
5637fd64d6 Perform ordering using IComparable instead 2022-01-27 15:59:20 +09:00
Dan Balasescu
9ff2b9eb95
Merge pull request #16640 from peppy/realm-migration-always-delete
Improve realm migration UX to give users a recovery path on error
2022-01-27 15:43:14 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Dean Herbert
714177cce1 Remove pointless constructor in RulesetInfo 2022-01-27 15:37:27 +09:00
Dean Herbert
e67b1fe0ec Make Ruleset.RulesetInfo get only 2022-01-27 15:36:35 +09:00
Dean Herbert
f30d63107a Add SortID to RulesetInfo to allow stable ordering of rulesets for display 2022-01-27 15:35:16 +09:00
Dean Herbert
67ccb87992 Add exception message to discussion template url 2022-01-27 14:56:04 +09:00
Dean Herbert
fb081384e1 Add safety against zip creation potentially failing (probably can't but still) 2022-01-27 14:55:52 +09:00
Dean Herbert
465e7d29fe Avoid showing the external link warning 2022-01-27 14:53:11 +09:00
Dean Herbert
31abb372e5 Automatically zip and show the backup archive to the user 2022-01-27 14:52:58 +09:00
Dean Herbert
08948f60f3 Move backups to "backups" subfolder to make them easier to find 2022-01-27 14:39:13 +09:00
Dean Herbert
b745252962 Show notification when migration fails to give users a recovery path 2022-01-27 14:39:11 +09:00
Dean Herbert
deb5d75b5f Change migration process to always delete old EF database
It is already backed up, so this is probably fine.
2022-01-27 14:33:46 +09:00
Dean Herbert
587c0f965c Add more attempts to delete EF database
Just noticed in passing. Probably best we do this since it was known to
fail on windows in some rare cases.
2022-01-27 14:32:21 +09:00
Bartłomiej Dach
d760283665
Ensure edited beatmap is restored to a baseline state on exit 2022-01-26 21:15:49 +01:00
Bartłomiej Dach
df9658641c
Merge branch 'master' into Third-party-ruleset-filter-fix 2022-01-26 18:54:20 +01:00
Dean Herbert
f70e10e8a4 Fix ruleset filter matching using OnlineID instead of ShortName 2022-01-27 01:25:57 +09:00
Dean Herbert
f21e3d0d86 Block collection loading until realm migration has completed 2022-01-27 00:34:51 +09:00
Derrick Timmermans
873d367615
Fix custom rulesets not being able to convert maps 2022-01-26 15:51:39 +01:00
Dan Balasescu
bab337591f
Merge pull request #16630 from peppy/fix-null-mod-json-parse-fail
Fix some score imports failing due to null string attempted to be parsed as json
2022-01-26 23:15:23 +09:00
Salman Ahmed
7f34085baa Mark EditorSavingTestScene as abstract 2022-01-26 17:04:30 +03:00
Dean Herbert
378173cc66 Fix some score imports failing due to null string attempted to be parsed as json 2022-01-26 22:46:29 +09:00
Dan Balasescu
cf9ee43b17
Merge pull request #16608 from peppy/playlist-overlay-optimisations
Optimise `PlaylistOverlay` and reduce startup overhead of `MusicController`
2022-01-26 20:28:33 +09:00
Dan Balasescu
a07fce55d4
Merge pull request #16606 from peppy/fix-out-of-order-events-on-block-fail
Fix notification reset events potentially arriving out of order if a block operation times out
2022-01-26 20:28:21 +09:00
Dan Balasescu
0dd2de3e1e
Merge pull request #16628 from peppy/fix-realm-ruleset-ordering
Fix custom rulesets being displayed before official ones
2022-01-26 19:19:01 +09:00
Dan Balasescu
94d3e2c90c
Merge branch 'master' into fix-out-of-order-events-on-block-fail 2022-01-26 19:08:55 +09:00
Dan Balasescu
b3f2392358 Resolve compilation error due to removed method 2022-01-26 19:04:18 +09:00
Dan Balasescu
cdca1285ab
Merge branch 'master' into playlist-overlay-optimisations 2022-01-26 19:01:33 +09:00
Dan Balasescu
b1a23486c5
Merge pull request #16626 from peppy/fix-skin-section-realm-usage
Refactor `SkinSection` to avoid unnecessary realm queries
2022-01-26 19:01:15 +09:00
Dean Herbert
57e624d8e7 Fix custom rulesets being displayed before official ones 2022-01-26 18:46:32 +09:00
Dean Herbert
473c4d00ca Fix grouped difficulty icons using incorrect lookup for ruleset grouping 2022-01-26 18:38:44 +09:00
Dean Herbert
45636ce04b Remove collection ToLive helper method to avoid confusion 2022-01-26 18:26:37 +09:00
Dean Herbert
3aa681005b Skip importing scores which have no matching realm ruleset
There's no real way to recover these unless we want to start importing
rulesets into realm. And that seems counter productive. This can only
happen if users don't have the dll present any more, and it was removed
far before realm was tracking rulesets (else it would have an
`Available=0` entry in realm to match).
2022-01-26 18:04:54 +09:00
Dean Herbert
f2d48d088d Fix realm migration failures with presence of databased EF rulesets that don't exist on disk 2022-01-26 17:57:03 +09:00
Dean Herbert
d1a2256262 Refactor SkinSection to avoid unnecessary realm queries 2022-01-26 17:48:11 +09:00
Dean Herbert
885fb92aad Move final empty result set sending to post-compact 2022-01-26 17:21:57 +09:00
Dean Herbert
791ea0308f Add flag to guard against deadlocks during blocking operations 2022-01-26 17:09:28 +09:00
Dan Balasescu
4a51bab9ac
Merge pull request #16622 from peppy/fix-results-score-switch-crash
Fix crash at results screen when viewing another score panel after playing
2022-01-26 16:59:39 +09:00
Salman Ahmed
a34b8fc4d0 Merge branch 'master' into expandable-controls 2022-01-26 10:36:22 +03:00
Salman Ahmed
161ff45f8c Resolve further UI-related issues 2022-01-26 10:36:18 +03:00
Dean Herbert
11f0f3c17d Revert "Move final result set firing to before the update realm is disposed"
This reverts commit 24bcba6418.
2022-01-26 16:21:24 +09:00
Salman Ahmed
eb83b7fe0a Update existing implementation with changes 2022-01-26 10:18:17 +03:00
Salman Ahmed
6998266770 Add simplified implementation of an expandable slider 2022-01-26 10:18:06 +03:00
Dean Herbert
24bcba6418 Move final result set firing to before the update realm is disposed
Without this, if any registered callback attempts to access
`RealmAccess.Realm` when handling the empty set callback, it will
deadlock the game.
2022-01-26 15:57:06 +09:00
Dean Herbert
68ee80c5de
Merge pull request #16623 from frenzibyte/refactor-editor-save-test
Refactor editor saving test scene for scalability
2022-01-26 15:40:39 +09:00
Salman Ahmed
b5e6352137 Revert SettingsItem<T>-related changes 2022-01-26 09:31:35 +03:00
Dean Herbert
5ea781faef Send unsubscribe actions to synchronization context for consistency and safety 2022-01-26 15:24:53 +09:00
Dean Herbert
4fe3d83fc4 Update framework 2022-01-26 15:21:14 +09:00
Dean Herbert
91e0d1021f Merge branch 'master' into fix-out-of-order-events-on-block-fail 2022-01-26 15:21:10 +09:00
Dean Herbert
267a7bd21f Give RealmUser.Username a better default value 2022-01-26 15:14:49 +09:00
Dean Herbert
9532454e2a Remove ILive remnants 2022-01-26 15:12:07 +09:00
Dean Herbert
ba46827ac0 Merge branch 'master' into playlist-overlay-optimisations 2022-01-26 15:11:14 +09:00
Dan Balasescu
8f85f32f2b
Merge pull request #16619 from peppy/live-no-interface
Remove `ILive<>` interface (and use `abstract Live<>` instead)
2022-01-26 14:54:14 +09:00
Dean Herbert
3491b77c8c Fix ScoreInfo.RealmUser not getting deep cloned correctly
I'm still not at all happy with the play-to-results flow (with multiple
clones), but this will have to do for now.
2022-01-26 14:27:48 +09:00
Dan Balasescu
2e622650de
Merge pull request #16617 from peppy/realm-block-button-sanity
Don't auto-unblock realm when user has manually pressed unblock button
2022-01-26 14:27:37 +09:00
Salman Ahmed
064468faad Refactor editor saving test scene for scalability 2022-01-26 07:57:46 +03:00
Dean Herbert
cd71ec0edd Remove ILive<> interface (and use abstract Live<> instead) 2022-01-26 13:38:56 +09:00
Dean Herbert
d37c3c463e Move statistics to static class 2022-01-26 13:29:12 +09:00
Dean Herbert
7ca73f7e6d Don't auto-unblock realm when user has manually pressed unblock button 2022-01-26 12:51:09 +09:00
Dean Herbert
c7947b3489 Add statistics for Live usage 2022-01-26 12:42:24 +09:00
Dean Herbert
56b06f34f0 Fix RealmLive not refetching if update thread context was closed at some point 2022-01-26 12:32:34 +09:00
Dean Herbert
d76822b685 Avoid creating realm contexts or refetching when accessing RealmLive from the update thread 2022-01-26 12:32:34 +09:00
Dean Herbert
dda513dd08 Change PlaylistOverlay to use ILive 2022-01-26 12:19:59 +09:00
Dean Herbert
64914c45a4 Remove unnecessary realm query helper method 2022-01-26 11:53:50 +09:00
Dean Herbert
bdf215c576
Merge branch 'master' into improve-timeline-zoom 2022-01-26 03:40:53 +09:00
Dean Herbert
1747063fd9
Merge pull request #16610 from frenzibyte/fix-beat-divisor-not-saving
Fix beat divisor no longer saving in editor
2022-01-26 03:40:31 +09:00
Salman Ahmed
4169e5592e Reword event handler name and update xmldoc 2022-01-25 19:36:19 +03:00
Salman Ahmed
d1cbdf63f0 Add support for reading/saving timeline zoom in editor 2022-01-25 18:57:39 +03:00
Dean Herbert
cdef67ccd0 Log posted notifications
To help with test failures and the likes.
2022-01-25 23:38:48 +09:00
Dean Herbert
5b82eaf112
Merge branch 'master' into fix-beat-divisor-not-saving 2022-01-25 23:29:37 +09:00
Dean Herbert
c32c26dc72
Merge pull request #16611 from frenzibyte/isolate-editor-test-beatmap
Recreate working beatmap per-test in `EditorTestScene`
2022-01-25 23:29:20 +09:00
Dan Balasescu
b3aa9310a3
Merge pull request #16607 from peppy/key-binding-container-notification-fix
Fix `DatabasedKeyBindingContainer` re-querying realm on receiving notification
2022-01-25 21:40:21 +09:00
Dean Herbert
4a9f4eecba Use blocking calls to SynchronizationContext to guarantee order of execution 2022-01-25 20:49:52 +09:00
Salman Ahmed
a93873e8ca Recreate test beatmap of EditorTestScene on set up 2022-01-25 13:03:27 +03:00
Salman Ahmed
4d8c5ebb0c
Merge branch 'master' into fix-beat-divisor-not-saving 2022-01-25 12:30:05 +03:00
Salman Ahmed
f7f58b06a1 Fix beat divisor not saving in editor 2022-01-25 11:56:38 +03:00
Dean Herbert
1a776a9587 Completely remove subscription from MusicController 2022-01-25 16:53:02 +09:00
Dean Herbert
2a786f9ec0 Load text only after it comes on screen (and tidy up selection handling logic) 2022-01-25 16:51:21 +09:00
Dean Herbert
ace2bd2208 Apply some initial optimisations to PlaylistItem 2022-01-25 16:51:21 +09:00
Dean Herbert
8a4f3a7ce0 Reimplement subscription logic in PlaylistOverlay directly 2022-01-25 16:51:21 +09:00
Dean Herbert
958cfde608 Stop detaching and exposing beatmaps from MusicController 2022-01-25 16:51:21 +09:00
Dan Balasescu
d8270fe14f
Merge pull request #16604 from peppy/less-async-import
Remove `Task` from the inner-most `Import` method in `RealmArchiveModelImporter`
2022-01-25 16:47:07 +09:00
Dan Balasescu
6e531a574d
Merge pull request #16594 from peppy/realm-subscription-tracking
Add tracking of total realm subscriptions
2022-01-25 16:46:53 +09:00
Dean Herbert
1f9cf00db8 Fix DatabasedKeyBindingContainer re-querying realm on receiving notification 2022-01-25 16:44:44 +09:00
Salman Ahmed
5a9524a74e Decrease default timeline zoom to "6 seconds visible" range 2022-01-25 10:43:51 +03:00
Dean Herbert
1bb1366c9f Fix notification reset events potentially arriving out of order if a block operation times out 2022-01-25 16:26:06 +09:00
Dean Herbert
0d575006fb
Merge pull request #16605 from peppy/fix-collection-db-migrate-crash
Fix crash when trying to migrate collection database that doesn't exist
2022-01-25 16:25:15 +09:00
Dan Balasescu
7f2e66298b
Merge branch 'master' into realm-subscription-tracking 2022-01-25 16:03:21 +09:00
Dan Balasescu
1c6ad56821
Merge pull request #16595 from peppy/realm-block-timeout-assert-failure
Fix a failed `BlockAllOperations` leaving update realm in unretrieved state
2022-01-25 16:03:13 +09:00
Dean Herbert
a46b06ffe8
Merge branch 'master' into realm-subscription-tracking 2022-01-25 15:56:35 +09:00
Dean Herbert
fc58b202b1 Fix crash when trying to migrate collection database that doesn't exist 2022-01-25 15:45:23 +09:00
Dean Herbert
778d2a71b4 Remove Task from the inner-most Import method in RealmArchiveModelImporter
One of my pending work items for post-realm merge.

The lowest-level import task is no longer asynchronous, as we don't want
it to span multiple threads to allow easier interaction with realm.
Removing the `Task` spec simplifies a heap of usages.

Individual usages should decide whether they want to run the import
asynchronously, by either using an alternative override or spooling up a
thread themselves.
2022-01-25 15:30:29 +09:00
Dan Balasescu
47a13c2eb0
Merge pull request #16603 from peppy/update-framework
Update framework
2022-01-25 15:15:49 +09:00
Dean Herbert
35e1c7de7d Merge branch 'master' into realm-block-timeout-assert-failure 2022-01-25 15:05:11 +09:00
Dean Herbert
5fb9b58c9b Add tracking of total subscriptions 2022-01-25 14:51:41 +09:00
Dan Balasescu
05a2d7fbfe
Merge pull request #16591 from peppy/fix-editor-slider-velocity-saving
Don't include nested hit objects' `DifficultyControlPoints` in legacy encoder logic
2022-01-25 14:50:09 +09:00
Dean Herbert
bda77fb6b3
Merge branch 'master' into realm-block-timeout-assert-failure 2022-01-25 14:47:34 +09:00
Dan Balasescu
bfa521bdd2
Merge pull request #16593 from peppy/realm-clean-up
Clean up realm naming
2022-01-25 14:33:53 +09:00
Dean Herbert
5872dabf60 Fix incorrect flag to options conversion 2022-01-25 14:16:15 +09:00
Dean Herbert
9ad4d66e4d Merge branch 'realm-clean-up' into realm-block-timeout-assert-failure 2022-01-25 13:58:36 +09:00
Dean Herbert
a5c76a9647 Fix a few more cases of "context" terminology usage 2022-01-25 13:56:47 +09:00
Dean Herbert
dd2caea694 Update GetSuitableHost usages in line with new HostOptions 2022-01-25 13:52:02 +09:00
Dean Herbert
df1297ade6 Update framework 2022-01-25 13:50:41 +09:00
Dean Herbert
bbcc149e2e During import if files are found to be missing, ensure they are restored
This is one step closer to sanity in terms of physical files. As per the
comment I have left in place, we really should be checking file sizes or
hashes, but to keep things simple and fast I've opted to just cover the
"missing file" scenario for now.

Ran into this when testing against a foreign `client.realm` by:
- Noticing a beatmap doesn't load
- Deleting said beatmap
- Downloading via beatmap overlay
- Beatmap is restored but still doesn't work

Note that I've kept the logic where this will undelete an existing
import rather than create one from fresh, as I think that is beneficial
to the user (ie. it will still keep any linked scores on restore).
2022-01-25 13:44:54 +09:00
Dean Herbert
d7342880f5 Update remaining cases of clashes with realm.Write and realm.RegisterForNotifications 2022-01-25 13:09:48 +09:00
Dean Herbert
e23b10e6a5 Update remaining cases of clashing variable name in realm.Run(realm.. 2022-01-25 13:04:05 +09:00
Dean Herbert
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
Bartłomiej Dach
8c3fbb6eb4
Merge branch 'master' into Liswiera-FL-changes 2022-01-24 21:32:36 +01:00
Bartłomiej Dach
a227af75ed
Simplify flashlight parameter passing flow 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
5874475dff
Extract DefaultFlashlightSize to base flashlight class 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
a7c0d507ce
Rename flashlight settings to be more accurate 2022-01-24 21:03:02 +01:00
Bartłomiej Dach
da771044a7
Merge branch 'master' into realm-clean-up 2022-01-24 19:15:31 +01:00
Dean Herbert
6f4c337a56 Fix a failed BlockAllOperations leaving update realm in unretrieved state
If the operation timed out on..

```csharp
   throw new TimeoutException(@"Took too long to acquire lock");
```

..from an update thread, it would not restore the update context.

The next call would then fail on the assert that ensures a non-null
context in such cases.

Can add test coverage if required.
2022-01-24 20:53:29 +09:00
Dean Herbert
3bc86ee68f Merge branch 'master' into music-controller-less-population 2022-01-24 20:44:37 +09:00
Dean Herbert
f30894840c Update terminology to realm "instance" rather than "context"
This matches the terminology used by realm themselves, which feels
better.
2022-01-24 20:38:38 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dan Balasescu
bb54ad9ad8
Merge pull request #16547 from peppy/realm-stable-subscriptions
Fix realm subscriptions getting lost after a context recycle
2022-01-24 20:20:04 +09:00