1
0
mirror of https://github.com/ppy/osu.git synced 2024-09-24 12:47:24 +08:00
Commit Graph

29690 Commits

Author SHA1 Message Date
Dan Balasescu
c4b5a07f4b
Merge branch 'master' into realm-move-data-migration-to-context-factory 2021-11-24 14:40:26 +09:00
Dean Herbert
a7853fc9cc Fix cases of known-non-null 2021-11-24 14:26:25 +09:00
Dean Herbert
ec89dfa043 Update framework 2021-11-24 14:09:25 +09:00
Dean Herbert
0aedbbe165 Fix incorrect fallback logic causing test failure 2021-11-24 14:04:55 +09:00
Dean Herbert
c2f8d9f677 Update tests which set Files lists directly 2021-11-24 14:00:14 +09:00
Dean Herbert
99a139dc98 Initialise all file lists at construction time (and remove setter) 2021-11-24 13:56:21 +09:00
Dan Balasescu
5a0a95f9d4 Trim whitespace 2021-11-24 13:48:59 +09:00
Dan Balasescu
84268c3d85 Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-24 13:48:48 +09:00
Dan Balasescu
6183d1cd46
Merge pull request #15769 from peppy/model-equality-consistency
Update cases where equality can be used instead of primary key equality
2021-11-24 13:45:57 +09:00
Dan Balasescu
6ffba8a546
Merge pull request #15768 from peppy/standardise-ruleset-create-instance
Remove nullability of `Ruleset.CreateInstance`
2021-11-24 13:43:23 +09:00
Dean Herbert
a3fdab34d5 Avoid json serialisation of aggregate helper properties
Also avoids `throw`ing when there are no beatmaps available. Until now
this wasn't an issue due to the `Beatmaps` list being null instead of empty.
2021-11-24 13:36:34 +09:00
Dean Herbert
8c60f37508 Fix cases of dynamically assigning Beatmaps to BeatmapSetInfo using list assignment 2021-11-24 13:27:37 +09:00
Dean Herbert
49c2cb9125 Initialise BeatmapSet.Beatmaps list to line up with realm expectations 2021-11-24 13:25:55 +09:00
Dean Herbert
ee22c24370 Update RulesetConfigCache to cache via ShortName instead of ID 2021-11-24 13:10:18 +09:00
Dean Herbert
729f681938 Update cases where equality can be used instead of primary key equality 2021-11-24 12:49:57 +09:00
Dean Herbert
6aed41eacc
Merge branch 'master' into realm-move-data-migration-to-context-factory 2021-11-24 12:38:44 +09:00
Dean Herbert
63b09b356f Rewrite commments to read better 2021-11-24 12:37:09 +09:00
Dean Herbert
6cd1bfd94f Remove outdated comment 2021-11-24 12:35:05 +09:00
Dean Herbert
0eea026afb Remove null checks on CreateInstance() calls 2021-11-24 12:23:09 +09:00
Dean Herbert
8d69ebd7db Remove nullability of Ruleset.CreateInstance 2021-11-24 12:23:06 +09:00
Dean Herbert
049f25a133
Merge pull request #15757 from smoogipoo/fix-multiplayer-tests
Fix several intermittent multiplayer test failures
2021-11-24 09:32:01 +09:00
Bartłomiej Dach
1a1603f0db
Implement preview track playback 2021-11-23 23:17:30 +01:00
Bartłomiej Dach
9164f006aa
Implement basic behaviour of play button 2021-11-23 22:44:09 +01:00
Bartłomiej Dach
5d13686cdf
Add play button for card preview 2021-11-23 22:44:08 +01:00
Bartłomiej Dach
4011da033b
Split off thumbnail to separate component 2021-11-23 22:44:07 +01:00
Bartłomiej Dach
0d409fa33e
Merge branch 'master' into realm-ruleset-keybinding-short-name 2021-11-23 20:18:58 +01:00
Bartłomiej Dach
fa96b29d6b
Merge branch 'master' into realm-ruleset-setting-short-name 2021-11-23 19:44:41 +01:00
Dean Herbert
6b134359c9 Handle the case where the ruleset isn't found in the EF database any more 2021-11-23 19:15:52 +09:00
Dean Herbert
4149d458f0 Move realm data migrations inside the RealmContextFactory 2021-11-23 18:14:15 +09:00
Dean Herbert
d9917ee6c7 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 18:13:26 +09:00
Dean Herbert
40cd998f99 Fix incorrect disposal 2021-11-23 18:13:05 +09:00
Dan Balasescu
79a8e60468 Resolve inspection 2021-11-23 17:55:04 +09:00
Dean Herbert
782191c410 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 17:48:48 +09:00
Dean Herbert
b1b6723826 Add xmldoc and verbatim string markers 2021-11-23 17:47:43 +09:00
Dean Herbert
505fede44d Pass the full EF context rather than a legacy RulesetStore 2021-11-23 17:40:20 +09:00
Dan Balasescu
fd4d5e98a7
Merge pull request #15745 from bdach/settings-number-box-stack-overflow
Fix crashes on trying to play back replays of seeded mods with seed value over 1 billion
2021-11-23 16:36:05 +09:00
Dan Balasescu
b7510697c8
Merge pull request #15753 from peppy/osu-test-scene-isolation-clean-up
Restructure how the headless storage is used / documented to hopefully make more sense
2021-11-23 16:29:39 +09:00
Dan Balasescu
6363833fb3 Revert unnecessary changes 2021-11-23 16:17:09 +09:00
Dan Balasescu
1f13669636 Don't poll while in room
Fixes timeout in `TestJoinRoomWithoutPassword`, because the 'server' returns
out-of-date data while the `MatchSubScreen` has possible not been entered
yet (and thus hasn't disabled polling itself yet).

Can be tested by adding a `Task.Delay(3000);` at the end of
the `MultiplayerClient.JoinRoom()` task.
2021-11-23 16:14:01 +09:00
Dan Balasescu
69a9fc9732 Fix a few more multiplayer test timeouts
These can be tested by adding a `Task.Delay(3000);` at the end of the
`MultiplayerClient.JoinRoom` task. The reason is typically that
`Client.Room` becomes not-null but the join task still hasn't completed
yet, so e.g. the ready button is still disabled.
2021-11-23 16:07:03 +09:00
Dan Balasescu
7906ae2b1d Update room immediately on join 2021-11-23 16:03:37 +09:00
Dean Herbert
6fb2757739 Remove usage of Nuget.Packaging extension methods for IList.AddRange 2021-11-23 15:02:02 +09:00
Dean Herbert
0989d6a92e Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 14:55:40 +09:00
Dean Herbert
f264b128c2 Merge branch 'master' into realm-ruleset-setting-short-name 2021-11-23 14:55:36 +09:00
Dean Herbert
473f6b0347 Add more xmldoc 2021-11-23 14:17:24 +09:00
Dean Herbert
55f7d120e6 Rename and reorder fields in OsuTestScene 2021-11-23 14:13:14 +09:00
Dean Herbert
5631e75f16 Restructure how the headless storage is used / documented to hopefully make more sense 2021-11-23 14:11:27 +09:00
Dean Herbert
49e2a8afa3 Don't directly reset the database when running tests
The containing storage is destroyed anyway, so this is redundant.
2021-11-23 14:08:04 +09:00
Dean Herbert
feb983d5bd Rename Debug namespace to avoid collisions 2021-11-23 13:09:41 +09:00
Dean Herbert
53d6b3c402 Merge branch 'realm-ruleset-setting-short-name' into realm-ruleset-keybinding-short-name 2021-11-23 11:49:13 +09:00
Dean Herbert
1f321e2910 Run EF migrations earlier to ensure it is complete before usage 2021-11-23 11:48:58 +09:00
Dean Herbert
119ac19f86
Merge branch 'master' into realm-beatmap-file-relation 2021-11-23 10:20:22 +09:00
Dean Herbert
e580fc5abc
Merge pull request #15735 from peppy/remove-ruleset-info-inheritance
Remove subclassing of `RulesetInfo`
2021-11-23 10:18:32 +09:00
Bartłomiej Dach
1ec5dd2cdf
Merge branch 'master' into realm-beatmap-file-relation 2021-11-22 21:53:08 +01:00
Bartłomiej Dach
4a9f080f3c
Accept full range of int in SettingsNumberBox
This fixes stack overflow exceptions that would arise when a
`Current.Value` of 1 billion or more was set on a `SettingsNumberBox`.
The stack overflow was caused by the "maximum 9 digits" spec. If a value
technically within `int` bounds, but larger than 1 billion (in the range
[1,000,000,000; 2,147,483,647], to be more precise), a feedback loop
between the setting control's `Current` and its inner text box's
`Current` would occur, wherein the last digit would be trimmed and then
re-appended again forevermore.

To resolve, remove the offending spec and rely on `int.TryParse`
entirely to be able to discern overflow range. Additionally, UX of the
text box is slightly changed to notify when the `int` range is exceeded
with a red flash.

This behaviour would not have been possible to implement without recent
framework-side fixes to text box (removal of text set scheduling).
2021-11-22 20:49:14 +01:00
Dan Balasescu
fba9e360a1
Merge branch 'master' into ruleset-use-short-name 2021-11-22 23:56:34 +09:00
Dan Balasescu
7ce5cb6162
Merge pull request #15739 from peppy/realm-migration-ordering
Fix realm applying migrations from one version too early
2021-11-22 23:52:50 +09:00
Dean Herbert
6c36770eb3 Add back allowance for tests scenes using empty ShortName 2021-11-22 21:41:09 +09:00
Dean Herbert
d94b27a8a2 Switch realm ruleset key bindings to use ruleset's ShortName as key 2021-11-22 18:52:30 +09:00
Dean Herbert
329bae50b0 Switch realm ruleset configuration to use ruleset's ShortName as key 2021-11-22 18:52:00 +09:00
Dean Herbert
ca26b6c540 Provide RealmContextFactory with the EF RulesetStore for migration purposes 2021-11-22 18:51:44 +09:00
Dean Herbert
d2062ff97f Reformat realm migrations list for legibility 2021-11-22 18:47:18 +09:00
Dean Herbert
361cb78880 Fix realm applying migrations from one version too early 2021-11-22 18:46:46 +09:00
Dean Herbert
f1926c6d27 Store preferred ruleset to configuration using ShortName instead of ID 2021-11-22 17:45:31 +09:00
Dean Herbert
377ba2673a Use Ruleset's ShortName for mod caching purposes 2021-11-22 16:52:54 +09:00
Dean Herbert
a8bc1ab052 Attempt to fix fody issues by ignoring new property 2021-11-22 16:45:55 +09:00
Dean Herbert
cb5b6911e6 Seal RulesetInfo and remove virtual methods 2021-11-22 16:39:26 +09:00
Dean Herbert
b9923e5396 Remove subclassing of RulesetInfo 2021-11-22 16:39:17 +09:00
Dean Herbert
1cdfa6d9a0 Add helper property to access a realm beatmap's beatmap file 2021-11-22 15:30:11 +09:00
Dean Herbert
ff13a98077 Reformat realm migrations list for legibility 2021-11-22 15:23:16 +09:00
Dan Balasescu
f64d20ed71 Fix APIRoom queue mode not updated on change 2021-11-22 13:46:01 +09:00
Dean Herbert
bbb3abbc61
Merge branch 'master' into multi-queueing-modes 2021-11-22 12:32:47 +09:00
Dan Balasescu
f3ba62d2c2 Add xmldoc to serverSidePlaylist 2021-11-22 11:26:41 +09:00
Dan Balasescu
10dc08a855 Store server-side playlist instead of mutating client-side version 2021-11-22 11:18:21 +09:00
Dan Balasescu
6420971660 Adjust test client with new queue-changing logic 2021-11-22 11:10:10 +09:00
Dan Balasescu
4b498c7bd6 Merge branch 'master' into multi-queueing-modes 2021-11-22 07:46:45 +09:00
Bartłomiej Dach
975744d26c
Remove no longer used [Cached] attribute 2021-11-21 13:19:16 +01:00
Dean Herbert
c0962b1c4f
Merge branch 'master' into beatmap-card/download-button 2021-11-21 20:04:26 +09:00
Bartłomiej Dach
aaf3f3854e
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 11:32:29 +01:00
Bartłomiej Dach
bb8e8bc4f0
Use consistent type for mod collection in all overloads 2021-11-21 11:30:45 +01:00
Dean Herbert
8c72f4843d
Merge pull request #15684 from frenzibyte/fix-ios-online
Fix MessagePack workaround formatter potentially initializing on iOS
2021-11-21 16:02:08 +09:00
Dean Herbert
63642450a4
Merge branch 'master' into fix-working-beatmap-wrong-exception-type 2021-11-21 15:50:07 +09:00
Dan Balasescu
49de22ebba
Merge pull request #15711 from peppy/fix-skill-memory-leak
Stop persisting `Skill`s in `DifficultyAttributes`
2021-11-21 15:47:49 +09:00
Dan Balasescu
a06b361fe2
Merge pull request #15705 from bdach/fix-difficulty-cache-caching-zeroes
Fix zero star difficulty values being cached when diffcalc was interrupted
2021-11-21 15:45:29 +09:00
Salman Ahmed
af01b0ed48 BASE_DERIVED -> BASE_TYPE_MAPPING 2021-11-21 06:30:14 +03:00
Dean Herbert
fd3e5d333e Add xmldoc note about Skill potentially being memory expensive 2021-11-21 12:15:32 +09:00
Dean Herbert
9f688f6291 Stop persisting Skills in DifficultyAttributes 2021-11-21 12:15:32 +09:00
Salman Ahmed
915bde6f96 Remove unnecessary MatchServerEvent mapping 2021-11-21 06:09:45 +03:00
Bartłomiej Dach
65cb011bac
Merge branch 'master' into beatmap-card/download-button 2021-11-20 18:49:11 +01:00
Bartłomiej Dach
297de27a6a
Use BindTarget from card rather than caching & resolving download tracker 2021-11-20 18:48:26 +01:00
Bartłomiej Dach
b3606f4a21
Rename {Play -> GoToBeatmap}Button 2021-11-20 18:36:39 +01:00
Bartłomiej Dach
78ee213573
Merge branch 'master' into storage-path-extension-method 2021-11-20 18:21:46 +01:00
Bartłomiej Dach
a7e45a9098
Log all non-cancellation errors in difficulty cache 2021-11-20 17:32:40 +01:00
Bartłomiej Dach
6100bf66a6
Clean up cancellation handling in WorkingBeatmap
After the recent changes introducing cancellation support to
`WorkingBeatmap`, it turned out that if the cancellation support was
used, `GetPlayableBeatmap()` would raise timeout exceptions rather than
the expected `OperationCanceledException`.

To that end, split off a separate overload for the typical usage, that
catches `OperationCanceledException` and converts them to beatmap load
timeout exceptions, and use normal `OperationCanceledException`s in the
overload that requires a cancellation token to work.
2021-11-20 17:23:55 +01:00
Bartłomiej Dach
15feb17da8
Change difficulty cache storage type to nullable
The recent changes related to adding support for working beatmap load
cancellation exposed a flaw in the beatmap difficulty cache. With the
way the difficulty computation logic was written, any error in the
calculation process (including beatmap load timeout, or cancellation)
would result in a 0.00 star rating being permanently cached in memory
for the given beatmap.

To resolve, change the difficulty cache's return type to nullable.
In failure scenarios, `null` is returned, rather than
`default(StarDifficulty)` as done previously.
2021-11-20 17:00:50 +01:00
Salman Ahmed
8b28bf31f6 Separate SignalR workaround types away from resolver 2021-11-20 15:11:02 +03:00
Dean Herbert
e0629ba81c Update all dependencies 2021-11-20 13:31:10 +09:00
Salman Ahmed
0342923408 Fix SignalR messagepack formatter potentially initializing on iOS 2021-11-19 20:04:31 +03:00
Dan Balasescu
d397524878
Merge pull request #15676 from peppy/multiplayer-incorrect-beatmap-error
Show better error message when selecting an unavailable beatmap during multiplayer room creation
2021-11-19 18:59:46 +09:00
Dan Balasescu
de0e8ad822 Merge branch 'master' into multi-queueing-modes 2021-11-19 18:58:15 +09:00
Dan Balasescu
4c8c34b43f Use full name for round robin 2021-11-19 18:42:34 +09:00
Dan Balasescu
4e625b78e2 Update queue mode names 2021-11-19 18:28:43 +09:00
Dan Balasescu
f3f8ac2c43 Use single 2021-11-19 16:36:32 +09:00
Dan Balasescu
abb8b0de47 Also mutate multiplayer room playlist on callbacks 2021-11-19 16:35:45 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dan Balasescu
12e1142b07 Rename settings section 2021-11-19 15:47:40 +09:00
Dan Balasescu
a922ce2fd9 Remove unnecessary nameofs 2021-11-19 15:45:45 +09:00
Dean Herbert
6e5918a100 Add slight scale to icon buttons 2021-11-19 15:28:03 +09:00
Dean Herbert
741c27c1f2 Always populate action to make button behave better in testing scenarios 2021-11-19 15:27:38 +09:00
Dean Herbert
5034cb1025
Merge branch 'master' into beatmap-card/download-button 2021-11-19 14:59:42 +09:00
Dean Herbert
0c289bf8e5 Remove pointless namespace 2021-11-19 14:46:53 +09:00
Dean Herbert
284e554cbf Only show user displayable portion of server errors when seleting a song in multiplayer 2021-11-19 13:58:03 +09:00
Dean Herbert
c901a4fd7e Show better error message when selecting an unavailable beatmap during multiplayer room creation 2021-11-19 13:28:42 +09:00
Dean Herbert
77c0b8dfa9 Fix stray typo 2021-11-19 13:27:06 +09:00
Dean Herbert
cb2547a6be Merge branch 'master' into multi-queueing-modes 2021-11-19 13:20:57 +09:00
Dan Balasescu
6ebe54b183
Merge pull request #15494 from Tollii/beatmap-cancellation-token
Add support for cancellation tokens for beatmap difficulty calculation
2021-11-19 10:54:32 +09:00
Bartłomiej Dach
0eaf450204
Make field readonly 2021-11-18 22:50:41 +01:00
Bartłomiej Dach
8a1d6757af
Merge branch 'master' into beatmap-card/download-button 2021-11-18 22:37:35 +01:00
Bartłomiej Dach
412abf30d9
Refactor buttons again to work with latest design guidelines 2021-11-18 22:34:40 +01:00
Bartłomiej Dach
761d1e45f2
Use lime background on right side of card to signify downloaded sets 2021-11-18 21:36:41 +01:00
Dean Herbert
bf8507c7b9 Only apply default timeout when debugger not attached 2021-11-18 23:26:45 +09:00
Joseph Madamba
a09589f833 Fix score panels sometimes jumping when toggling statistics fast 2021-11-17 23:15:51 -08:00
Dan Balasescu
698b6c4242
Merge pull request #15668 from peppy/key-repeat
Update `KeyBindingContainer` usage to block key repeat where applicable
2021-11-18 15:21:35 +09:00
Dan Balasescu
1dacc50ecb Merge branch 'master' into multi-queueing-modes 2021-11-18 15:16:27 +09:00
Dean Herbert
9ec6ecd3f6 Update framework 2021-11-18 13:39:25 +09:00
Dean Herbert
1fdf0e9770
Merge branch 'master' into supporter-icon-link 2021-11-18 13:36:14 +09:00
Dean Herbert
db4e4c982c Add hover effect to supporter button 2021-11-18 13:35:42 +09:00
Dean Herbert
cdb2a92f86 Disable key repeat for all ruleset handling cases 2021-11-18 13:13:36 +09:00
Dean Herbert
66c307e0ee Remove usage of key repeat helper method 2021-11-18 13:13:36 +09:00
Dean Herbert
7599efac30 Update editor cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
Dean Herbert
3de8125eac Update UI cases where repeat should not be handled 2021-11-18 13:13:36 +09:00
Dean Herbert
5fb5e0035c
Merge pull request #15657 from smoogipoo/expose-calculate-accuracy
Expose LegacyScoreDecoder.PopulateAccuracy()
2021-11-18 11:33:25 +09:00
Joseph Madamba
cd5e379c48 Link osu!supporter icon to its web page 2021-11-17 14:43:34 -08:00
Bartłomiej Dach
1c13b39104
Revert incorrect ordering change 2021-11-17 22:10:46 +01:00
Bartłomiej Dach
8b134914cf
Merge branch 'master' into beatmap-cancellation-token 2021-11-17 21:52:30 +01:00
Dan Balasescu
e4aec3f519
Merge pull request #15648 from peppy/playlist-show-invalid-beatmaps
Highlight invalid playlist items during room creation
2021-11-17 22:24:22 +09:00
Dan Balasescu
860546bf63
Merge pull request #15634 from peppy/i-working-beatmap/simple-cases
Update all simple cases of switching to `IWorkingBeatmap`
2021-11-17 22:08:27 +09:00
Dean Herbert
214705f1e5 Adjust error message, take 2 2021-11-17 21:11:37 +09:00
Dan Balasescu
5fb5baa4c9 Adjust error message 2021-11-17 21:06:33 +09:00
Dean Herbert
7c2e79f911 Update all simple cases of switching to IWorkingBeatmap 2021-11-17 20:56:57 +09:00
Dean Herbert
fd0cae2bfb
Merge branch 'master' into difficulty-attribute-helpers 2021-11-17 20:49:31 +09:00
Dean Herbert
0a7498014f Move consts to top of file 2021-11-17 20:47:52 +09:00
Dan Balasescu
9182eab486 Rename method + xmldoc 2021-11-17 20:45:48 +09:00
Dan Balasescu
815179f713 Use consts for attribute IDs 2021-11-17 20:31:18 +09:00
Dan Balasescu
abb333299b Document base class 2021-11-17 20:20:54 +09:00
Dan Balasescu
08f129b4c8 Expose LegacyScoreDecoder.CalculateAccuracy() 2021-11-17 20:09:30 +09:00
Dean Herbert
96e983bbad Disallow playlist item selection at playlist room creation screen
Wasn't being used for anything, confusing that it's even possible.
2021-11-17 14:40:07 +09:00
Dan Balasescu
97bc67245d Fix xmldoc reference 2021-11-17 11:46:06 +09:00
Dan Balasescu
f5b95c9e6d Add ModUtils helper to instantiate mods from ruleset 2021-11-17 11:30:47 +09:00
Dean Herbert
8e9b55ef6d Disallow selection of invalid items 2021-11-17 11:28:43 +09:00