1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-19 05:22:57 +08:00
Commit Graph

31136 Commits

Author SHA1 Message Date
Dean Herbert
dea2e1fac0 Return immediately on failed web request in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:20:51 +09:00
Dean Herbert
8424d86e9a Remove unused cancellationToken parameter in synchronous BeatmapOnlineLookupQueue flow 2022-01-14 13:19:00 +09:00
Dean Herbert
9b33fbbee5 Ensure detached when performing model Clone operations on BeatmapInfo/ScoreInfo 2022-01-14 13:08:20 +09:00
Dean Herbert
9936cdbd65
Merge pull request #16443 from nekodex/fail-volume-dip
Add volume dip to track during fail sequence
2022-01-14 12:31:22 +09:00
Dean Herbert
55b027228f Update resources 2022-01-14 11:54:50 +09:00
Dean Herbert
eb5f15a77e
Merge pull request #16420 from bdach/slider-paste-parsing-failures-2
Fix pasted sliders having sample points with time at infinity
2022-01-13 23:28:49 +09:00
Dean Herbert
54804ebfbd Fix delete/clear scores buttons not working 2022-01-13 18:38:38 +09:00
Dean Herbert
c33fe7bcc6 Remove one more unnecessary Detach operation 2022-01-13 18:32:59 +09:00
Jamie Taylor
c6ae255326
Add volume dip to track during fail sequence 2022-01-13 18:31:32 +09:00
Dean Herbert
2840a71dda Uncomment EF deletion lines in migrations 2022-01-13 18:28:00 +09:00
Dean Herbert
4f8d29c1c0 Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-13 18:25:09 +09:00
Dean Herbert
b610d2db12 Add EF to realm beatmap migration 2022-01-13 18:23:18 +09:00
Dean Herbert
45a23e5a43 Add EF to realm score migration 2022-01-13 18:23:18 +09:00
Dean Herbert
ded1d87739 Move RulesetStore construction earlier in process so rulesets are available for EF migration 2022-01-13 18:23:18 +09:00
Dean Herbert
069d6d2954 Remove pointless compatibility parameter BeatmapSetInfoID 2022-01-13 18:02:10 +09:00
Dean Herbert
4012ef7e7b Reduce polling rate when idle even if HighPollRate is requested 2022-01-13 17:33:55 +09:00
Dean Herbert
46d2f305b5 Log chat polling rate changes 2022-01-13 17:31:59 +09:00
Dean Herbert
0bd34253e7 Increase chat polling rate during multiplayer lobby / games 2022-01-13 17:31:49 +09:00
Dean Herbert
2de0c34bc9 Reduce exposure of ChannelManager 2022-01-13 17:10:48 +09:00
Dean Herbert
c61419dfe5 Fix scores not using correct filename/display strings
I've updated all cases where we should have been using
`GetDisplayString()` anyway, but left the `ToString()` implementations
in place for safety. They should probably be removed in the future.
2022-01-13 16:56:11 +09:00
Dean Herbert
93c78253d6 Add synchronous fetch flow to BeatmapOnlineLookupQueue
The async flow doesn't work great with the realm import process. We
might be able to improve on this going forward, but for the time being
adding a synchronous path seems safest.

After all, we are already an an asynchronous (dedicated) thread pool at
this point.
2022-01-13 16:36:54 +09:00
Dean Herbert
bdb2979b2e Remove async from Populate method 2022-01-13 16:36:54 +09:00
Dean Herbert
70c107b434 Remove pointless override method in RealmArchiveModelManager 2022-01-13 16:27:12 +09:00
Dean Herbert
88145dedf1 Remove oudated comments 2022-01-13 15:27:43 +09:00
Dean Herbert
6025fe325d Fix filter criteria not being applied after carousel loads new beatmap sets 2022-01-13 15:08:51 +09:00
Dean Herbert
0a133c7e97 Fix typo in comment in IntroScreen 2022-01-13 13:47:23 +09:00
Dean Herbert
dcc354aa7c Fix deleted scores not being cleaned up on next startup 2022-01-13 13:40:09 +09:00
Dean Herbert
7a81fe19f6 Bump realm schema version to allow upgrades 2022-01-13 13:28:46 +09:00
Dean Herbert
b77cb344d5 Use ctor rather than MemberwiseClone to guarantee a safer clone of BeatmapDifficulty 2022-01-13 13:23:41 +09:00
Dean Herbert
86b2ac3217 Remove unnecessary Ruleset null check in BeatmapDifficultyCache 2022-01-13 13:19:49 +09:00
Dean Herbert
7baff18764 Add back PerformRead return safety by checking IsManaged status of returned data 2022-01-13 13:14:44 +09:00
Dean Herbert
085893c9b4 Fix stray bracket 2022-01-13 13:03:57 +09:00
Dean Herbert
65dd80e6f6 Sanitise mods / statistics cache logic in ScoreInfo 2022-01-13 12:59:16 +09:00
Dean Herbert
1a29098f3b Change default value and add comment explaining why skins are never "locally available" 2022-01-13 12:50:18 +09:00
Joseph Madamba
66773f6d7d Use comments to disable identifier typos instead 2022-01-12 15:49:28 -08:00
Joseph Madamba
5185f6010e Fix missed identifier typos 2022-01-12 15:46:20 -08:00
Joseph Madamba
b245ffefc1 Merge remote-tracking branch 'upstream/master' into fix-remaining-identifier-names 2022-01-12 15:05:07 -08:00
Bartłomiej Dach
afce976f08
Fix oversubscription to StartTimeBindable.ValueChanged 2022-01-12 19:29:49 +01:00
Bartłomiej Dach
07fc772c24
Merge branch 'master' into slider-paste-parsing-failures-2 2022-01-12 19:06:36 +01:00
Dean Herbert
4c79145c11 Fix potential mod nullref in APIUserScoreAggregate's CreateScoreInfo implementation 2022-01-13 00:28:16 +09:00
Dean Herbert
b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
08da948afc
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-12 19:22:55 +09:00
Dean Herbert
017f5a9b9b
Merge pull request #16430 from smoogipoo/less-harsh-mania-hp
Fix mania requiring PERFECTs to maintain HP
2022-01-12 19:07:13 +09:00
Dean Herbert
8c8c5f4c33 Fix skin hash repopulation not working since realm migration 2022-01-12 18:32:51 +09:00
Dan Balasescu
4106ebf881 Fix mania requiring PERFECTs to maintain HP 2022-01-12 18:29:23 +09:00
Dean Herbert
ef0f794fd6 Remove stay newline 2022-01-12 18:13:14 +09:00
Dean Herbert
eb70a1eeb7 Replace compatibility properties with direct references 2022-01-12 18:13:14 +09:00
Dean Herbert
482cf29e28
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-12 17:57:14 +09:00
Dean Herbert
e12025dd48 Cascade delete metadata when beatmaps are deleted 2022-01-12 17:49:11 +09:00
Dean Herbert
34aa1bf21d Sanitise and remove some usages of Detach which are no longer required 2022-01-12 17:49:11 +09:00
Dean Herbert
5f7365e8f3 Ensure scores are cleaned up alongside beatmap so they don't have a null reference 2022-01-12 17:49:11 +09:00
Dean Herbert
f24b2b1be3 Make copying detached changes to realm only exposed for BeatmapSet
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
Dean Herbert
a4de0f93fa Move manager Update methods to be explicit to where they are still used by legacy code
Also fixes skin hash repopulation being completely broken.
2022-01-12 17:49:11 +09:00
Dean Herbert
580ad03f8d Combine mapper configurations and add more explanation about special cases 2022-01-12 17:49:11 +09:00
Dean Herbert
51d6db1bca Add equatable support to IUser and RealmUser
Not sure this will stick, but let's add it for now to make testing
detach support work nicely.
2022-01-12 17:49:11 +09:00
Salman Ahmed
6db3c32dd1 Handle automapper realm cyclic references via AfterMaps
This may not be the cleanest solution, but there don't seem to be any
way towards this either.

- `UseDestinationValue` has been inherited by default as noted in
https://docs.automapper.org/en/stable/10.0-Upgrade-Guide.html#usedestinationvalue-is-now-inherited-by-default, and its behaviour in this case would be using the nested **managed** realm object for the destination member rather than creating an unmanaged version.

- `MaxDepth` already sets `PreserveReferences` so there's no point of using it.

- `MaxDepth` should probably not be set for all maps, only for those with
cyclic references, to avoid the expensive overhead of `PreserveReferences`, as mentioned in https://docs.automapper.org/en/stable/5.0-Upgrade-Guide.html#circular-references.

That aside, `MaxDepth` should actually only be set to `1` for
`BeatmapSetInfo` mapping, because we don't want AutoMapper to create a
nested instance of `BeatmapSetInfo` in each mapped/detached beatmap, but
for some reason, doing that will cause automapper to not map any beatmap
inside the set and leave it with 0 beatmaps.

While on the other hand, using `MaxDepth(2)` for `BeatmapSetInfo` works,
but creates an unused instance of a `BeatmapSetInfo` inside each mapped
beatmap, which may not be ideal.

For `BeatmapInfo`, it has to be `MaxDepth(2)`, in which the first
`BeatmapInfo` depth would be itself (when detaching a beatmap), and the
second would be nested beatmaps inside the mapped/detached
`BeatmapSetInfo` within the beatmap. (note that when detaching a beatmap
set, the unused instance of `BeatmapSetInfo` within each beatmap of that
beatmap set doesn't also have a list of unused beatmaps as one might expect from the depth specification, it surprisingly has 0 beatmaps)

This causes it to create an unused instance of `BeatmapInfo` in the beatmap set resembling the root mapped/detached beatmap, but that one might be inevitable.
2022-01-12 17:49:11 +09:00
Dean Herbert
dc3730f334 Fix song select import popup not always showing 2022-01-12 17:49:11 +09:00
Dean Herbert
017285b694 Update MusicController to handle deletions more correctly 2022-01-12 17:49:11 +09:00
Dean Herbert
157dfdaa82 Fix protected beatmap sets getting deleted 2022-01-12 17:49:11 +09:00
Dean Herbert
0aff1c232b Fix deleted/hidden carousel queries 2022-01-12 17:49:11 +09:00
Dean Herbert
72656ae01e Fix beatmap restore/undelete flows 2022-01-12 17:49:11 +09:00
Dean Herbert
46206f70d6 Fix beatmap mass deletion flow 2022-01-12 17:49:11 +09:00
Dean Herbert
d5239d550a Add refetch for non-managed hide/restore attempts 2022-01-12 17:49:11 +09:00
Dean Herbert
e0c59f4b3c Localise EF context factory usage to migration only 2022-01-12 17:49:11 +09:00
Dean Herbert
46e92c3b60 Clean up BeatmapManager query methods 2022-01-12 17:49:11 +09:00
Dean Herbert
9beabad6a4 Remove hide/restore event flow 2022-01-12 17:49:11 +09:00
Dean Herbert
c06b5951fd Fix multiple remaining warnings 2022-01-12 17:49:11 +09:00
Dean Herbert
e8dcbaf29a Fix intro screen hitting null reference if intro beatmap is unavailable 2022-01-12 17:49:11 +09:00
Dean Herbert
7dba3c3551 Fix most remaining test issues 2022-01-12 17:49:11 +09:00
Dean Herbert
b7ee6d1866 Add protections against test null refs when beatmap load fails 2022-01-12 17:49:11 +09:00
Dean Herbert
f986c3ebd4 Add basic write support via automapper 2022-01-12 17:49:11 +09:00
Dean Herbert
80eee6d7b0 Make RealmArchiveModelManager.Update work using automapper 2022-01-12 17:49:11 +09:00
Dean Herbert
7509a9ff8f Update BeatmapModelManager.Save to work for editor scenarios 2022-01-12 17:49:11 +09:00
Dean Herbert
8c3dc4333d Fix incorrect realm access after new beatmap import 2022-01-12 17:49:11 +09:00
Dean Herbert
64a47ff850 Allow RealmArchiveModelManager file operations to be performed on detached instances 2022-01-12 17:49:11 +09:00
Dean Herbert
2ce80cc030 Add back caching in WorkingBeatmapCache 2022-01-12 17:49:11 +09:00
Dean Herbert
286994a808 Fix BeatmapDifficulty cloning regression 2022-01-12 17:49:11 +09:00
Dean Herbert
58f8aae731 Fix one missed instance of GetResultSafely 2022-01-12 17:49:11 +09:00
Dean Herbert
f451560203 Update null allowances across beatmaps and scores 2022-01-12 17:49:11 +09:00
Dean Herbert
6033a825ed Ensure BeatmapInfo Difficulty and Metadata is non-null 2022-01-12 17:49:11 +09:00
Dean Herbert
a7958b1d31 Fix edge cases in online availability tracker and combine query code 2022-01-12 17:49:10 +09:00
Dean Herbert
c15efaeff2 Fix OnlinePlayBeatmapAvailabilityTracker not correctly tracking beatmap import changes 2022-01-12 17:49:10 +09:00
Dean Herbert
b531cd0207 Fix donwload trackers not considering deleted scores 2022-01-12 17:49:10 +09:00
Dean Herbert
902dc0eaec Detach rather than consume live when presenting a beatmap 2022-01-12 17:49:10 +09:00
Dean Herbert
5cbd731864 Add RulesetInfo hashcode implementation and tidy up equality 2022-01-12 17:49:10 +09:00
Dean Herbert
c33e163178 Bind ruleset to toolbar later for safety 2022-01-12 17:49:10 +09:00
Dean Herbert
02d0ca2741 Fix protected beatmaps showing up in the song select carousel 2022-01-12 17:49:10 +09:00
Dean Herbert
41d90cd0b5 Fix beatmap carousel test failures 2022-01-12 17:49:10 +09:00
Dean Herbert
a0f8debafe Add note about BeatmapMetadata.Author being weird 2022-01-12 17:49:10 +09:00
Dean Herbert
f4a1fa85a1 Fix incorrect conditional for deciding whether scores can be deleted from UI 2022-01-12 17:49:10 +09:00
Dean Herbert
ae8f522c20 Add support for persisting score's mods to realm 2022-01-12 17:49:10 +09:00
Dean Herbert
d8e75a9de4 Reimplmeent IsAvailableLocally as an abstract method 2022-01-12 17:49:10 +09:00
Dean Herbert
47390d7ec3 Update handling of ruleset nullability when handling a game-wide change 2022-01-12 17:49:10 +09:00
Dean Herbert
ba62d2c756 Fix ScoreInfo oversights causing automapper to fail
Parameter in ctor *has* to be named `realmUser` else automapper will try
to map to the `User` property.
2022-01-12 17:48:49 +09:00
Dan Balasescu
52e240230b
Merge branch 'master' into mouse-button-disable-disables-touch 2022-01-12 17:14:39 +09:00
Dean Herbert
83ccbc1d13 Mention safety failures of Beatmap/Score constructors 2022-01-12 17:00:17 +09:00
Dean Herbert
c831e9107a Fix BeatmapInfo.Clone potentially not cloning if already detached 2022-01-12 17:00:17 +09:00
Dean Herbert
5dd0bb1218 Ensure Score created by GameplayState has a valid ruleset 2022-01-12 17:00:17 +09:00
Dean Herbert
82259ee072 Improve legibility of RulesetInfo.Equals 2022-01-12 17:00:17 +09:00
Dean Herbert
e5af673b01 Fix incorrect BeatmapInfo.ToString implementation 2022-01-12 17:00:17 +09:00
Dean Herbert
a3c70ccdfc Fix OnlineAvailabilityTracker referencing a value in query that could potentially be null 2022-01-12 17:00:17 +09:00
Dean Herbert
b619ff1264 Reattach detached items on delete/undelete 2022-01-12 17:00:17 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
13401a8846 Better handle Statistics to avoid losing data 2022-01-12 17:00:17 +09:00
Dean Herbert
76670a8faa Fix BeatmapDifficultyCache not working with detached beatmaps 2022-01-12 17:00:17 +09:00
Dean Herbert
6919df18fa Fix incorrect ordering and grouping of difficulties at song select 2022-01-12 17:00:17 +09:00
Dean Herbert
aaefd72c69 Handle ignored mappings locally in Detach configuration 2022-01-12 17:00:17 +09:00
Dean Herbert
2b8706b6ce Detach and reattach scores to make work 2022-01-12 17:00:16 +09:00
Dean Herbert
60d2de8a3b Fix potential nullref when song select filters to no results 2022-01-12 17:00:16 +09:00
Dean Herbert
2d2faa72a9 Fix rulesets being out of order 2022-01-12 17:00:16 +09:00
Dean Herbert
e1f77b87de "Fix" OnlinePlayBeatmapAvailabilityTracker 2022-01-12 17:00:16 +09:00
Dean Herbert
de3a338d02 Update realm queries to use Filter to allow for indirect property filtering 2022-01-12 17:00:16 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
de076678fe Fix some remaining test failures 2022-01-12 17:00:16 +09:00
Dean Herbert
3811bd8520 Fix some null inspections 2022-01-12 17:00:16 +09:00
Dean Herbert
667cdb2475 Fix skin lookup when there's no beatmap file available 2022-01-12 17:00:16 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
0793b0f0ab Fix Max lookup methods not checking for zero beatmap count 2022-01-12 17:00:16 +09:00
Dean Herbert
dcd69e852e Add back settable RulesetID for now 2022-01-12 17:00:16 +09:00
Dean Herbert
2a980cc474 Fix BeatmapInfo file lookup not handling the case where no files exist
Quite common for test scenes.
2022-01-12 17:00:16 +09:00
Dean Herbert
167c399e8a Fix invalid DI resolution of RealmFileStore 2022-01-12 17:00:16 +09:00
Dean Herbert
99e46cd26b Fix missing BeatmapMetadata.ToString
This is relied on by a few usages.
2022-01-12 17:00:16 +09:00
Dean Herbert
4295815c7d Fix invalid equality comparison in BeatmapLeaderboard 2022-01-12 17:00:16 +09:00
Dean Herbert
86ce2256be Replace SpectatorScreen event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
5c0d31ed24 Replace OnlinePlayBeatmapAvailabilityTracker event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
6d60aa7d9c Replace TopLocalRank event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
fe8a5e867d Remove updated/removed flow method mapping 2022-01-12 17:00:16 +09:00
Dean Herbert
c9257e9ecc Fix missing disposal of realm subscriptions in BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
8c4836e87d Replace ScoreDownloadTracker event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
00e9f0d41e Replace BeatmapDownloadTracker event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
5dc497e949 Replace BeatmapLeaderboard event flow with realm subscriptions 2022-01-12 17:00:16 +09:00
Dean Herbert
1f9318265e Update ToLive usages in line with recent changes 2022-01-12 17:00:16 +09:00
Dean Herbert
db05727ec4 Remove unused includeProtected parameter 2022-01-12 17:00:16 +09:00
Dean Herbert
a3276758b8 Remove unnecessary re-query of beatmap set in editor menu construction 2022-01-12 17:00:16 +09:00
Dean Herbert
b91f309879 Inline query methods from BeatmapModelManager to BeatmapManager where possible 2022-01-12 17:00:16 +09:00
Dean Herbert
1d536fd0bc Start introducing ILive 2022-01-12 17:00:16 +09:00
Dean Herbert
3152d2d8a0 "Update" BeatmapCarousel 2022-01-12 17:00:16 +09:00
Dean Herbert
8696f82627 Fix intro screen
Fix things
2022-01-12 17:00:16 +09:00
Dean Herbert
abd72c496b "Update" MusicController 2022-01-12 17:00:16 +09:00
Dean Herbert
c4a9211179 Apply NRT to BeatmapManager and move Hide/Restore methods across 2022-01-12 17:00:16 +09:00
Dean Herbert
3ecd535f6e Add back missing IRulesetStore cache 2022-01-12 17:00:16 +09:00
Dean Herbert
8d943b5709 Fix many shortcomings and compatibility issues with EF classes post-rename 2022-01-12 17:00:16 +09:00
Dean Herbert
d7fe3584cd Don't persist Countdown to realm for now
It's another enum which is a pain to handle, and not actually being
consumed anywhere.
2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
a3da8dc49d Fix missing interface implementation of IRulesetStore 2022-01-12 16:58:58 +09:00
Dean Herbert
d70e292828 Remove old EF classes 2022-01-12 16:57:27 +09:00
Dean Herbert
4f6a05ce3d Reimplement all query methods 2022-01-12 16:57:27 +09:00
Dean Herbert
53792811b2 more fixes (almost compiles, except ruleset and manager) 2022-01-12 16:57:27 +09:00
Dean Herbert
e711a6d355 Remove unused ScoreImporter class 2022-01-12 16:57:27 +09:00
Dean Herbert
aac2aa341c Update some more incorrect types for primary key access/set 2022-01-12 16:57:27 +09:00
Dean Herbert
2a4bee61dd Update many score-related classes to move closer to being able to persist to realm 2022-01-12 16:57:27 +09:00
Dean Herbert
e44751c275 Add required properties for compatibility with existing code 2022-01-12 16:57:27 +09:00
Dean Herbert
638b3d9161 Add statistics storage to realm model 2022-01-12 16:57:27 +09:00
Dean Herbert
3da762e145 Replace EF ScoreInfo with realm version
May contain errors.
2022-01-12 16:57:27 +09:00
Dean Herbert
c5e401d678 Update usages to consume IRulesetStore 2022-01-12 16:57:27 +09:00
Dean Herbert
a5df01ff47 Add score importer 2022-01-12 16:57:27 +09:00
Dean Herbert
0dd23c46b0 Add basic RealmScore implementation 2022-01-12 16:57:27 +09:00
Dean Herbert
8c0db79ec1 Remove BeatmapStore and update surrounding code 2022-01-12 16:57:27 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
b77bb2f12b Switch BeatmapModelManager to use RealmArchiveModelManager base class 2022-01-12 16:39:36 +09:00
Dean Herbert
4763fe54d6 Remove unused store classes 2022-01-12 16:39:36 +09:00
Dean Herbert
116f35c52a Remove EF FileStore 2022-01-12 16:39:36 +09:00
Dean Herbert
3ecd889fef Replace EF RulesetStore with realm version
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert
89d6ffa7f3 Use RealmContextFactory instead of EF 2022-01-12 16:39:36 +09:00
Dean Herbert
83cbee39de Mark cases where BeatmapSet is generally guaranteed to be non-null 2022-01-12 16:39:36 +09:00
Dean Herbert
e6fdd0e969 Miscellaneous fixes that don't fit elsewhere 2022-01-12 16:39:36 +09:00
Dean Herbert
df088f96f4 Fix incorrect Metadata-related null checks 2022-01-12 16:39:36 +09:00
Dean Herbert
6a671b0a52 Remove unnecessary assigns of BeatmapSetInfo.Metadata 2022-01-12 16:39:36 +09:00
Dean Herbert
fda529de26 Update usages of APIUser to RealmUser 2022-01-12 16:39:36 +09:00
Dean Herbert
213d89b479 Update null fallback cases involving OnlineID 2022-01-12 16:39:36 +09:00
Dean Herbert
c3df58e01c Add required properties to make realm models backwards compatible 2022-01-12 16:39:36 +09:00
Dean Herbert
618903c217 Rename realm to become imposter classes 2022-01-12 16:39:36 +09:00
Dean Herbert
0b6c4497bd Rename EF classes to allow for shit to hit the fan 2022-01-12 16:39:36 +09:00
Dan Balasescu
2e34887999
Merge pull request #16423 from peppy/realm/manual-compact
Add button to compact realm on demand
2022-01-12 16:23:00 +09:00
Dean Herbert
a82606cf5c
Merge pull request #16407 from smoogipoo/fix-mania-normalised-scroll-speed
Fix calculation of most common beat length for mania scroll speed
2022-01-12 15:23:22 +09:00
Dean Herbert
11e07c1137 Add button to compact realm on demand
In general we're doing things correctly so the realm file shouldn't
expand (unless mass deletions are made from it), but this is a nice way
to manually confirm the behaviour.

Sometimes if using realm studio with osu! running, for instance, the
realm file size can blow out of proportion. This will recover from such
cases.

Note that calling `RealmFactory.Compact` itself is not enough, as it
will fail unless all instances of the realm have been closed.
2022-01-12 15:22:36 +09:00
Dan Balasescu
06a5b89071
Merge pull request #16264 from bdach/beatmap-background-with-storyboard-stopping
Fix main menu background with storyboard stopping after entering and exiting song select
2022-01-12 14:37:42 +09:00
Dean Herbert
d8c52740cb
Merge pull request #16354 from bdach/slider-snapping
Apply slider snapping to current beat divisor more liberally to match user expectations
2022-01-12 11:18:18 +09:00
Susko3
a0842838e7 Add AllowIme => false where applicable
Also adds `AllowWordNavigation => false` to password text box.
2022-01-12 00:15:17 +01:00
Bartłomiej Dach
80ccff9068
Remove no longer necessary guards against default control points
The subscription in which the guards were present was moved from
constructor to `ApplyDefaults()`, and at that point neither the sample
control point or the difficulty point can be the default point, because
there are explicit paths that overwrite those with blank points in the
same methods, prior to the subscription's registration.

The only worry would be that someone would set the default point on the
object themselves, but at that point that is most likely programmer
error anyhow.
2022-01-11 22:14:47 +01:00
Bartłomiej Dach
76d5225bb9
Rewrite storyboard clock management in slightly different way 2022-01-11 22:00:04 +01:00
Bartłomiej Dach
970e0cc85a
Merge branch 'master' into beatmap-background-with-storyboard-stopping 2022-01-11 21:39:49 +01:00
Bartłomiej Dach
7a25fe79b7
Fix sample control point time being calculated before defaults applied
In editor contexts, the `StartTimeBindable` subscription in `HitObject`
was firing before defaults were applied, which in the case of sliders
manifested in an infinite end time. `ApplyDefaults()` also did not
always set the time of the control point to the correct value, which
matters when the beatmap is encoded.

Ensure that the control points receive the correct time values during
default application, and only register the `StartTimeBindable` change
callback after defaults have been successfully applied.
2022-01-11 21:38:59 +01:00
Salman Ahmed
82722cd804
Merge branch 'master' into patch-1 2022-01-11 21:31:13 +03:00
r00ster
a8c3fdd383
Update outdated OpenTabletDriver FAQ links 2022-01-11 16:11:07 +01:00
Dean Herbert
e6368fd6b2
Merge branch 'master' into fix-mania-normalised-scroll-speed 2022-01-11 21:24:32 +09:00
Dan Balasescu
906e700b60 Improve quality of beatmap background blurs 2022-01-11 21:22:16 +09:00
Dan Balasescu
ef66ec4622 Also fix MessageFormatter tests 2022-01-11 17:55:43 +09:00
Dan Balasescu
3cb5f43f77 Fix incorrect action returned for wiki links in DEBUG mode 2022-01-11 17:46:49 +09:00
Dan Balasescu
892374b50b
Merge pull request #16411 from peppy/update-framework
Update framework
2022-01-11 16:09:42 +09:00
Dean Herbert
797d3f5d65 Update framework 2022-01-11 15:09:51 +09:00
Dan Balasescu
38a51b9ce0 Add comment 2022-01-11 13:54:12 +09:00
Dan Balasescu
81fed4c6bf Use time=0 as for the first control point 2022-01-11 12:55:17 +09:00
Dan Balasescu
a09563a7d9 Fix calculation of most common beat length for mania scroll speed 2022-01-11 11:00:30 +09:00
Dean Herbert
90558f809f
Merge branch 'master' into slider-snapping 2022-01-10 22:42:16 +09:00
Dean Herbert
e333831c45
Merge pull request #16371 from bdach/angle-of-rotation-display
Add tooltip with relative rotation in degrees to rotation handles
2022-01-10 22:19:50 +09:00
Dan Balasescu
af9fad00c3 Merge branch 'master' into async-deadlock-safety 2022-01-10 16:11:09 +09:00
Dan Balasescu
928023fabb
Merge pull request #16362 from bdach/multiplayer-wrong-ruleset
Fix multiplayer starting gameplay using last picked item ruleset rather than actual current item ruleset
2022-01-10 15:10:27 +09:00
Dan Balasescu
5aaf5953f4
Merge pull request #16393 from peppy/detach-already-detached
Add mention to detach methods of only running once
2022-01-10 13:42:50 +09:00
Dan Balasescu
6f18db2136
Merge pull request #16390 from peppy/fix-filter-matching-tests
Update `FilterMatchingTest` and filter code to use ruleset's `OnlineID`
2022-01-10 13:10:51 +09:00
Dean Herbert
d072f1d08d Add mention to detach methods of only running once 2022-01-10 13:09:26 +09:00
Dean Herbert
02d8a6359a Update FilterMatchingTest and filter code to use ruleset's OnlineID
The tests were relying on the `RulesetID` being set to 0 in the example
beatmap, even though the ruleset *instance* was set to ID 5.

This explicitly adds that 0 value to show intent, and also removes the
incorrect specification of 5 (which would cause the convert filter tests
to fail).

Also updates the filter code to use `OnlineID`, which is required in
realm changes.
2022-01-10 12:30:34 +09:00
Dean Herbert
ca162ed09a Update resources 2022-01-10 11:36:26 +09:00
Bartłomiej Dach
2e9ba40ae2
Add references to web implementation wrt property used 2022-01-09 14:46:15 +01:00
Bartłomiej Dach
12c8243a9b
Fade out inactive player rows on user ranking table 2022-01-09 14:42:26 +01:00
Bartłomiej Dach
d76c674abc
Add tooltip with relative rotation in degrees to rotation handles 2022-01-08 20:24:15 +01:00
Bartłomiej Dach
24d377fddb
Move implementation of drag handle operations to concrete classes 2022-01-08 20:24:00 +01:00
Bartłomiej Dach
9370e84460
Fix effect point multiplier text box displaying too much decimal digits 2022-01-08 16:12:52 +01:00
Bartłomiej Dach
c5ac996e3f
Restore ruleset using current playlist item on resuming room sub screen
Ensures that the ruleset selected at the multiplayer song selection
screen does not overwrite the current playlist item's ruleset.
2022-01-08 14:56:01 +01:00
Bartłomiej Dach
9e84e31eac
Add score time to beatmap set overlay scoreboard table 2022-01-07 19:18:16 +01:00
Bartłomiej Dach
87f7c7e691
Implement scoreboard-specific time formatting 2022-01-07 19:18:16 +01:00
Bartłomiej Dach
881fa2b86b
Add basic test scene for scoreboard time 2022-01-07 19:18:16 +01:00
Bartłomiej Dach
c09f6ee052
Use slider snapping more liberally to match user expectations
Previously the slider path length would be snapped using the current
beat snap setting on *every* change of the slider path. As it turns out
this is unexpected behaviour in some situations (e.g. when reversing a
path, which is expected to preserve the previous duration, even though
the slider may be technically "unsnapped" at that point in time due to a
different beat snap setting being selected afterwards).
2022-01-07 16:02:04 +01:00
Dean Herbert
f440aadcbc
Merge pull request #16341 from bdach/score-submission-test-failures
Fix intermittent failure in score submission test
2022-01-07 22:24:04 +09:00
Dean Herbert
0698ef6330 Fix one missed rename 2022-01-07 17:36:29 +09:00
Dean Herbert
2ef791069c Fix typon on AdvancedStats 2022-01-07 17:33:38 +09:00
Dean Herbert
6a1e1d186f Update framework 2022-01-07 17:29:09 +09:00
Dean Herbert
3cd996eb4a Merge branch 'master' into async-deadlock-safety 2022-01-07 17:28:59 +09:00
Dan Balasescu
bf328dc9e0
Merge pull request #16291 from peppy/fix-mods-mutated-outside-lease
Fix `MultiplayerMatchSubScreen` mutating mods outside of bindable lease
2022-01-07 17:12:12 +09:00
Bartłomiej Dach
8f744c99ee
Fix settings toolbox toggle button starting in incorrect state
While displaying replays, the colour of the toolbox toggle button would
not match the actual state of the rest of the toolbox, i.e. both buttons
would be white, even though the "playback settings" section was expanded
and as such should have a yellow toggle button.

In the case of the replay player, the failure scenario was as follows:

1. `SettingsToolboxGroup` calls `updateExpanded()` in its BDL to update
   the initial state of the toolbox, including the toggle button
   colour, by adding a colour fade transform.

2. An ancestor of both the toolbox groups - `PlayerSettingsOverlay`,
   which is a `VisibilityContainer` - calls `FinishTransforms(true)` in
   its `LoadCompleteAsync()`, therefore instantly applying the colour
   from point (1) to the toggle button instantly.

3. However, `IconButton` inherits from `OsuAnimatedButton`. And
   `OsuAnimatedButton` changes its colour in `LoadComplete()`, therefore
   undoing the instant application from point (2).

This conjunction of circumstances is instrumental to reproducing the
bug, because if the `FinishTransforms(true)` call wasn't there, point
(3) wouldn't matter - the transform would get applied at some
indeterminate point in the future, ignoring the write from
`OsuAnimatedButton`.

As for the fix, move the `updateExpanded()` call in
`SettingsToolboxGroup` to `LoadComplete()` to avoid the above
unfortunate order. Applying initial visual state in `LoadComplete()` is
the idiomatic style of doing things these days anyhow.
2022-01-06 20:45:56 +01:00
Bartłomiej Dach
f5742d3d2a
Merge branch 'master' into editor-toolbox-expand 2022-01-06 19:01:02 +01:00
Dean Herbert
e02863f780 Avoid accessing DrawWidth from invalidation 2022-01-07 01:24:30 +09:00
Dean Herbert
f703c5f038 Add comment and reduce how often ChildrenOfType is invoked in ExpandingButtonContainer 2022-01-06 23:38:54 +09:00
Dean Herbert
5aca2dd4ce Hide header text when it won't fit in the toolbox group 2022-01-06 23:08:50 +09:00
Dean Herbert
690b425380 Move enum local to usage 2022-01-06 22:56:56 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91 Update continuation usages to use GetCompletedResult 2022-01-06 22:53:07 +09:00
파링
74b15ec30c
Merge branch 'master' into master 2022-01-06 21:12:45 +09:00
Dean Herbert
cea9cab4dc Use ExpandingButtonContainer in editor composer 2022-01-06 21:10:45 +09:00
Dean Herbert
5baaf356aa Split out SettingsToolboxGroup from PlayerSettingsGroup 2022-01-06 21:05:00 +09:00
Dean Herbert
77980196c5 Split out expanding container logic from settings sidebar 2022-01-06 21:02:29 +09:00
Bartłomiej Dach
84765b99b3
Handle score submission request in submission test scene
Was previously not handled at all, therefore displaying request failures
in the test log output. While that was mostly a red herring and
shouldn't have caused any actual *test* failures, it is still better to
handle this explicitly in a realistic manner.
2022-01-06 12:57:26 +01:00
Bartłomiej Dach
f0797d4066
Merge branch 'master' into editor-flip-over-origin 2022-01-06 09:59:18 +01:00
Dan Balasescu
1d69eb629c
Merge pull request #16327 from peppy/fix-editor-playfield-centering
Fix editor playfield not being centered correctly
2022-01-06 16:11:12 +09:00
Dean Herbert
243a1a3cf7 Fix incorrect origin specification for SkinSelectionHandler flips 2022-01-06 14:47:44 +09:00
Bartłomiej Dach
7d195c4344
Merge branch 'master' into page-selector 2022-01-05 22:23:10 +01:00
Dean Herbert
88602ec1b4 Fix mouse button disable not disabling touch input mappings 2022-01-05 18:29:32 +09:00
Dean Herbert
df6a755c36 Update player loader screen mouse disable text to use localised version 2022-01-05 18:29:09 +09:00
Dean Herbert
6779503e57 Refactor logic to avoid TimelineSelectionHandler having to block base calls 2022-01-05 16:56:54 +09:00
Dean Herbert
866ae3472b Add global flip hotkeys 2022-01-05 16:48:07 +09:00
Dean Herbert
13cce50fa7 Remove existing handling of flip hotkeys 2022-01-05 16:30:42 +09:00
Dean Herbert
ef2a4aed9a Fix editor playfield not being centered correctly
This has come up multiple times, with mappers citing that they have
muscle memory for mapping based on the centre of the playfield being in
the centre of the window.

The original plan was to have a second toolbar on the right hand side of
the screen to balance the padding, but we're not at that point yet.
Easiest solution is to do what stable does and allow the left-hand
toolbar items to overlap the playfield underneath it.

In edge cases where the user is running at an aspect ratio that causes
overlaps, they can choose to collapse the toolbars down. We can probably
work on this UI/UX a bit more as we update designs to be more friendly
to such cases.
2022-01-05 16:05:18 +09:00
Dean Herbert
2bf6b55b19 Fix failing test due to changed reset page logic 2022-01-05 14:53:32 +09:00
Dean Herbert
5ed69338a6 Add omission of pages when there are too many 2022-01-04 19:05:14 +09:00
Dean Herbert
86f72b71b1 Prepare tests and general structure to support omission of pages 2022-01-04 18:46:44 +09:00
Dean Herbert
e75c9519f3 Adjust font weighting on selection 2022-01-04 18:19:23 +09:00
Dean Herbert
5a11ee7810 Use OverlayColourProvider and fix font weight 2022-01-04 18:14:42 +09:00
Dean Herbert
ee4f5c0e79 Rename button classes to make more sense 2022-01-04 17:52:40 +09:00
Dean Herbert
db58f5de8e Clean up unnecessary complexity 2022-01-04 17:51:37 +09:00
Dean Herbert
5736b7d978 Fix cursors sent to osu-web being potentially string formatted in incorrect culture
Fixed as per solution at https://github.com/JamesNK/Newtonsoft.Json/issues/874.

Note that due to the use of `JsonExtensionDataAttribute` it's not
feasible to change the actual specification to `JValue` in the
`Dictionary`.

In discussion with the osu-web team, it may be worthwhile to change the cursor
to a string format where parsing is not required at our end. We could already
do this in fact, but there are tests that rely on it being a `JToken` so the
switch to `JValue` seems like the easier path right now.
2022-01-04 17:20:46 +09:00
Dean Herbert
1c899e4402 Fix post-merge issues 2022-01-04 16:46:42 +09:00
Dean Herbert
69e7ee0f48
Merge branch 'master' into page-selector 2022-01-04 16:44:22 +09:00
Dean Herbert
39650ce7e9
Merge pull request #16307 from peppy/beatmap-listing-bottom-padding
Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
2022-01-04 14:14:42 +09:00
Dean Herbert
374dac57f2 Change expanded card content height to 200 2022-01-04 13:22:00 +09:00
Dean Herbert
f9713b8895 Replace usage of TimeoutAttribute to fix beatmap conversion test failures 2022-01-04 11:51:41 +09:00
Dean Herbert
73b40e6833 Replace usage of .Result with .WaitSafelyForResult 2022-01-04 11:51:41 +09:00
Dean Herbert
031a40af6a Replace usages of Wait with WaitSafely 2022-01-04 11:51:41 +09:00
Dean Herbert
f6b1405fa0
Merge branch 'master' into fix-listing-terminal-breakage 2022-01-04 11:49:02 +09:00
Bartłomiej Dach
87fbac15fd
Merge branch 'master' into fix-skin-editor-overlay-show-thread-safetyu 2022-01-03 20:12:18 +01:00
Bartłomiej Dach
de33b420ab
Add safety against performing operation on non-alive foundContent 2022-01-03 20:02:46 +01:00
Bartłomiej Dach
586f158920
Remove initial foundContent value
It always is replaced on the first search anyway, and just remains
forever in the overlay otherwise.
2022-01-03 19:52:42 +01:00
Bartłomiej Dach
6650a468e0
Fix and simplify very broken beatmap listing content swap-out logic
The beatmap listing content swap-out logic was already a source of
several problems, and several attempts of fixing it were made. But as it
turns out it was terminally broken in several aspects.

* The `BypassAutoSizeAxes` juggling was finicky and ugly, and didn't
  really look much different than an instant fade. Therefore, all fade
  durations and manipulations of `BypassAutoSizeAxes` are removed.

* The transform sequence juggling the `BypassAutoSizeAxes` manipulations
  was enqueued on the content which is being in the process of fading
  out. That was partially fixed in 25e38560, but as it turns out, that
  only works if `lastContent` is one of the two placeholder drawables
  (results not found / supporter required to use filter).

  It would not work if `lastContent` is a
  `ReverseChildIDFillFlowContainer` with cards from a previous search in
  it.
2022-01-03 19:51:46 +01:00
Bartłomiej Dach
ef9f56e585
Fix bad check if content is placeholder
The `lastContent == foundContent` check, last touched in a49a4329, is
terminally broken, as it would always be false. `foundContent` is
mutated when a new card load task is started in `onSearchFinished()`,
which is *before* the aforementioned check.

The code prior to a49a4329 was checking against the two static reused
placeholder drawables which was the correct check to apply, and this
commit reverts to using a variant of that check.
2022-01-03 19:51:20 +01:00
Bartłomiej Dach
97439c3df1
Rename method to reflect what it actually does 2022-01-03 19:30:17 +01:00
Bartłomiej Dach
7c246670b4
Add padding to bottom of spotlights ranking view to avoid hovered panels exceeding visible bounds 2022-01-03 18:43:20 +01:00
Bartłomiej Dach
0ad555e9f7
Remove surplus blank line 2022-01-03 18:33:32 +01:00
Dean Herbert
b9851b278d Add padding to the bottom of the beatmap listing overlay to avoid hovered panels exceeding visible bounds
Closes https://github.com/ppy/osu/issues/16120.
2022-01-03 13:18:28 +09:00
Dean Herbert
6356180b6a Remove unnecessary code and fix double nesting causing filtering to not work 2022-01-03 12:53:58 +09:00
Dean Herbert
623d6d6d2d Add migration of positional hitsounds setting to new level based setting 2022-01-03 12:46:20 +09:00
Dean Herbert
5dd024aab7 Remove outdated settings migration 2022-01-03 12:46:02 +09:00
Dean Herbert
bb54f438aa Merge branch 'master' into positional-sounds-strength-adjustment 2022-01-03 12:40:56 +09:00
Bartłomiej Dach
e7d7587ea5
Merge branch 'master' into reduce-chat-overhead 2022-01-01 15:02:55 +01:00
Dean Herbert
675bdd3213 Fix MultiplayerMatchSubScreen mutating mods outside of bindable lease
As seen at https://github.com/peppy/osu/runs/4674501626?check_suite_focus=true.
2022-01-01 12:13:59 +09:00
Dean Herbert
1262e76a58 Fix test failure due to missing DI cached IdleTracker 2021-12-31 23:18:03 +09:00
Dean Herbert
670a30b64b Remove usage of .Result in ArchiveReader 2021-12-31 01:52:01 +09:00
Dean Herbert
089b756f93 Invert logic to make reading easier 2021-12-30 16:03:16 +09:00
Dean Herbert
ef49f2ed0e Add extra extra safety against attempting to load a previously expired editor 2021-12-30 16:02:31 +09:00
Joseph Madamba
cdc148f78e Increase scope of identifier typo disables on special cases 2021-12-29 14:07:36 -08:00
Dean Herbert
b1a444180f Fix Show then Reset potentially resulting in incorrect load target 2021-12-29 21:46:34 +09:00
Dean Herbert
471eea750a Fix calling SkinEditorOverlay.Show before the overlay is loaded causing an exception
As seen at https://github.com/ppy/osu/runs/4652969942?check_suite_focus=true.
2021-12-29 21:18:17 +09:00
Joseph Madamba
c22a07d9fc Bump identifier typo inspection and fix remaining identifier names 2021-12-28 11:26:42 -08:00
pikokr
dec1f31749 Make KeyBindingContainer public 2021-12-28 22:43:07 +09:00
Bartłomiej Dach
63e0492725
Mark ShouldSerialize() methods as implicitly used 2021-12-28 09:02:03 +01:00
Bartłomiej Dach
bc39c2a877
Revert incorrect property rename 2021-12-28 08:31:27 +01:00
Dean Herbert
73dca0c7e3
Merge pull request #16266 from Joehuu/fix-identifier-typos
Fix and normalise most identifier names in code
2021-12-28 15:21:42 +09:00
Joseph Madamba
0bd928b5cd Fix incorrect naming / apply review 2021-12-27 21:44:19 -08:00
Joseph Madamba
5082b0e63f Fix some identifiers using shortened naming 2021-12-27 20:26:28 -08:00
Joseph Madamba
7de43e3aba Fix most open compound words in identifiers being closed 2021-12-27 20:26:28 -08:00
Joseph Madamba
98524d60a4 Fix clear identifier typos 2021-12-27 20:26:28 -08:00
Bartłomiej Dach
568cab6808
Add clarification comment about explicit ProcessFrame() call 2021-12-27 21:13:04 +01:00
Dean Herbert
eb04cc9213 Update framework 2021-12-27 23:04:10 +09:00
Bartłomiej Dach
9f8ad9f833
Fix menu background storyboard stopping after track reload 2021-12-27 12:30:53 +01:00
Dean Herbert
8d927920cb Add comment explainng why to block idle updates when host is not active 2021-12-27 13:31:07 +09:00
Bartłomiej Dach
5a591713ae
Fix legacy combo counter not fully hiding for rulesets that implement their own 2021-12-26 16:49:20 +01:00
Bartłomiej Dach
724b601d2a
Rename AllowSampleLookup argument to something saner 2021-12-26 14:29:07 +01:00
Bartłomiej Dach
dc21c8901e
Always allow looking up storyboard samples from beatmap skin 2021-12-26 14:25:28 +01:00
Dean Herbert
7c25ce81e1 Further reduce chat poll rate when idle or not visible 2021-12-26 16:26:47 +09:00
Dean Herbert
e448c28cad Change IdleHandler to not consider mouse movement as active unless focused 2021-12-26 16:26:33 +09:00
Dean Herbert
8ad53138a6
Merge pull request #16234 from smoogipoo/fix-initial-button-colour
Fix OsuAnimatedButton animating when initially disabled
2021-12-25 15:34:40 +09:00
Dean Herbert
957a1648c7
Merge pull request #16237 from smoogipoo/fix-finished-play-exception-2
Improve reliability of exiting gameplay in multiplayer
2021-12-25 15:32:14 +09:00
Dean Herbert
ac1a452e20
Merge pull request #16239 from peppy/sanitise-test-directory-usage
Fix some more test directory usage weirdness
2021-12-25 12:09:18 +09:00
Dean Herbert
7088471cad Protect against test failures due to logger being set too early (and beginning logging) 2021-12-25 02:21:49 +09:00
Dean Herbert
a9a7a33974 Update framework 2021-12-25 02:04:47 +09:00
Dan Balasescu
a43cc20ae2 Apply changes to GameplayCompleted from reviews 2021-12-24 21:58:20 +09:00
Dan Balasescu
c6854b37c8 Unbind event on disposal 2021-12-24 21:58:09 +09:00
Dan Balasescu
d36fe3af09
Merge pull request #16238 from peppy/fix-incorrect-delegate-capture
Fix incorrect delegate capture leading to slow leak of audio tracks
2021-12-24 21:34:04 +09:00
Dean Herbert
1c0dc204c4 Fix some regressing behaviour due to CleanRunHeadlessGameHost's naming structure changing 2021-12-24 20:24:37 +09:00
Dean Herbert
8cdad5f4d9 Remove incorrectly used gameSuffix from CleanRunHeadlessGameHost 2021-12-24 20:15:10 +09:00
Dean Herbert
2ee3e61983
Merge branch 'master' into beatmap-card/extra-on-listing 2021-12-24 19:02:51 +09:00
Dean Herbert
cc7089c3f4 Cancel more liberally 2021-12-24 19:00:09 +09:00
Dean Herbert
d602aebebb Add missing cancellation token and rename load task variable to match purpose 2021-12-24 18:58:31 +09:00
Dean Herbert
842d508aee Fix incorrect delgate capture leading to slow leak of audio tracks
During profile, it was found that the `Completed` delegate was
incorrectly also capturing `lastTrack`, leading to an unexpected
reference chain that led to a memory leak over a long period of time.

This solves the issue by moving the delegate construction to its own
method, where it won't capture the other variables.
2021-12-24 18:39:29 +09:00
Dean Herbert
83a1d39f80
Merge pull request #16231 from bdach/ruleset-config-cache-overwriting-3
Fix ruleset config cache potentially not working correctly in test contexts
2021-12-24 17:18:42 +09:00
Bartłomiej Dach
3ca238825b
Unify width of normal and extra card sizes 2021-12-24 09:17:07 +01:00
Dan Balasescu
18c144395a Rename to dimColour 2021-12-24 17:03:29 +09:00
Dan Balasescu
f44af1ad69 Move bind to LoadComplete 2021-12-24 17:00:59 +09:00
Dan Balasescu
727335dcad Improve reliability of exiting gameplay 2021-12-24 14:23:09 +09:00
Dan Balasescu
c973739b08 Fix OsuButton event binding + inital-enablement colour 2021-12-24 11:56:12 +09:00
Dan Balasescu
c8073000c5 Fix initally-disabled OsuAnimatedButton colour fading 2021-12-24 11:56:12 +09:00
Dean Herbert
ce4389576f
Merge branch 'master' into fix-incorrect-reference 2021-12-24 10:03:11 +09:00
Bartłomiej Dach
c429c74d89
Expose and use test ruleset config cache in test scenes 2021-12-23 19:42:26 +01:00
Bartłomiej Dach
8094b502cb
Remove test-specific logic from RulesetConfigCache 2021-12-23 19:42:26 +01:00
Bartłomiej Dach
77da1e12d5
Add test implementation of the ruleset config cache 2021-12-23 19:40:55 +01:00
Bartłomiej Dach
5cbaa028eb
Use extracted ruleset config cache implementation in DI 2021-12-23 19:02:10 +01:00
Bartłomiej Dach
0f65c4e960
Extract interface for ruleset config cache 2021-12-23 18:59:02 +01:00
Bartłomiej Dach
a49a4329ee
Add capability to switch between card sizes 2021-12-23 15:55:37 +01:00
Bartłomiej Dach
d0427ec85f
Add support card size tab control to beatmap listing 2021-12-23 15:55:37 +01:00
Bartłomiej Dach
1876617d8e
Implement beatmap card size tab control 2021-12-23 15:55:36 +01:00
Bartłomiej Dach
cd4c1bc678
Add factory method for various card sizes 2021-12-23 15:55:36 +01:00
Dan Balasescu
998b07db90 Fix TestMultiplayerClient referencing the wrong room 2021-12-23 19:14:09 +09:00
Bartłomiej Dach
1040590844
Add cancellation support to game-side IResourceStores 2021-12-23 10:33:17 +01:00
Dean Herbert
0732a9e6da Update framework 2021-12-23 18:08:44 +09:00
Dean Herbert
d69552fbcf Fix potential crash from cross-thread drawable mutation in collection management
As seen at https://github.com/peppy/osu/runs/4613800663?check_suite_focus=true.
2021-12-23 13:21:17 +09:00
Dan Balasescu
e1b539fa9e
Merge pull request #16213 from peppy/working-beatmap-live
Tidy up `WorkingBeatmap`
2021-12-23 13:02:37 +09:00
Bartłomiej Dach
25e38560ce
Fix placeholder drawables on beatmap listing not always hiding correctly
`BeatmapListingOverlay.addContentToPlaceholder()`, in order to make
transitions between different beatmap listing content (whether it is
actual cards, or placeholders for no beatmaps found/supporter-specific
filters chosen), would set `BypassAutoSizeAxes = Y` on content as it is
fading out, to make the transition smoother. The property in question
was supposed to be getting restored to `None` on the next show.

In testing scenarios, it sometimes turned out that this wasn't the case,
therefore making the placeholders effectively not show - while they
were present and fully opaque, they would be the only child of
an auto-sized container with `BypassAutoSizeAxes = Y`, so the parent
auto-sized to a zero height, which logically follows from the premise,
but is not what was desired.

This in turn was caused by the fact that the `BypassAutoSizeAxes = Y`
set was scheduled, and sometimes it would be scheduled in such a way
that the drawable would cease to be present on the next frame due to its
alpha being past the cutoff point of 0.0001. Therefore the scheduled set
would not execute until the *next* time the placeholder was shown,
therefore causing the bug.

Fix by ensuring that the placeholder drawables are always present if
their schedulers have any tasks enqueued, on top of the usual checks of
alpha and scale performed via the base implementation.
2021-12-22 15:05:23 +01:00
Dean Herbert
f179ff33c9 Remove all NRT changes
This reverts commit bb9877adab.
2021-12-22 21:02:06 +09:00
Dean Herbert
bb9877adab Reapply IWorkingBeatmap nullability fixed 2021-12-22 20:48:48 +09:00
Dan Balasescu
67e6b50c12
Merge pull request #16135 from stanriders/refactor-diffcalc
Slightly refactor difficulty and pp calculators
2021-12-22 19:44:02 +09:00
Dan Balasescu
fa5ee5f72c
Merge pull request #16212 from peppy/fix-beatmap-leaderboard-global-reference
Fix potential errors thrown during beatmap leaderboard display due to incorrect beatmap reference
2021-12-22 19:26:32 +09:00
Dean Herbert
bc47801cbb Revert "Apply NRT to WorkingBeatmap"
This reverts commit 9e17d7d4e3.
2021-12-22 19:14:18 +09:00
Dean Herbert
9e17d7d4e3 Apply NRT to WorkingBeatmap 2021-12-22 18:41:45 +09:00
Dean Herbert
53c0a6708f Move public accessor properties to top of file 2021-12-22 18:25:09 +09:00
Dean Herbert
a5f77a86ef Move load methods and rename loadedTrack to match other private fields 2021-12-22 18:24:51 +09:00
Dean Herbert
7344c87b16 Remove RecyclableLazy 2021-12-22 18:18:12 +09:00
Dean Herbert
f3f491374b Remove unused load checks 2021-12-22 18:17:00 +09:00
Dean Herbert
3c95497ed7 Reorder methods to hopefully make more sense 2021-12-22 18:17:00 +09:00
Dean Herbert
e38e4c0adc Enable NRT on IWorkingBeatmap 2021-12-22 18:17:00 +09:00
Dean Herbert
967419c9ac Remove BeatmapSetInfo and Metadata from interface
There were very few accesses to this, and after realm they should all be
done via the `BeatmapInfo`, so let's remove this.
2021-12-22 18:17:00 +09:00
Dean Herbert
1b0af78831 Simplify WorkingBeatmap in multiple ways
Just a clean-up pass.
2021-12-22 18:17:00 +09:00
Dean Herbert
b38b300159 Convert BeatmapMetadata access to be via a computed property 2021-12-22 18:17:00 +09:00
Dean Herbert
5b3a154431 Fix potential errors thrown during beatmap leaderboard display due to incorrect beatmap reference
Specifically, the global `BeatmapInfo` is referenced inside the web
request's success callback, and used to attempt population via methods
which expect non-null beatmap inputs.

Closes #16211.
2021-12-22 17:24:48 +09:00
Dean Herbert
f81e32149b Fix ImportCollectionsTest.TestSaveAndReload not cleaning up before/after run 2021-12-22 13:38:20 +09:00
Dean Herbert
a88800c99a
Merge pull request #16198 from smoogipoo/fix-current-item-before-population
Fix delete button showing on current item before beatmap retrieval
2021-12-22 13:15:07 +09:00
Dan Balasescu
98f044881e
Merge branch 'master' into refactor-diffcalc 2021-12-22 12:31:28 +09:00
Dan Balasescu
7bc5079485
Merge pull request #16201 from bdach/timeline-blueprint-contrast-improvement
Improve contrast of timeline blueprint foreground content for pastel combo colours
2021-12-22 11:33:29 +09:00
Bartłomiej Dach
7ab1c0c99d
Improve contrast of timeline blueprint foreground content for pastel combo colours 2021-12-21 12:54:17 +01:00
StanR
88436d51ae Remove using 2021-12-21 13:44:20 +03:00
Bartłomiej Dach
ca7303a50a
Fix online lookup cache not clearing completed task on early return
The task not being cleared in the early return path would cause
`pendingRequestTask` to become stuck as a completed task, and
`queryValue()` would not recreate it due to the null check there,
therefore stalling all lookups forevermore until a game restart.
2021-12-21 11:13:41 +01:00
Bartłomiej Dach
ee89d8643e
Extract abstract implementation of online lookup cache 2021-12-21 11:12:51 +01:00
StanR
cca02a8016 Create PerformanceAttributes 2021-12-21 13:08:31 +03:00
Dean Herbert
df975fb29e
Merge pull request #16181 from dekrain/statics-reset-no-sb
Split session statics reset method to prevent unloading seasonal backgrounds
2021-12-21 18:52:04 +09:00
Dean Herbert
0bda7892f7
Merge pull request #16197 from bdach/beatmap-card/renames
Rename beatmap card-related classes
2021-12-21 18:51:34 +09:00
Dan Balasescu
4ce61d4260 Directly bind to room updates
Currently doesn't really cause any difference, however it may in the
future if we decide the queueing algorithm shouldn't update PlaylistOrder
when an item has been played.
2021-12-21 18:40:29 +09:00
Dan Balasescu
a34d24fb20 Disallow expired items from showing delete button
This isn't possible in practice since expired items are removed from the
queue list, but this helps out in tests.
2021-12-21 18:37:42 +09:00
Dan Balasescu
d7136d6b48
Merge pull request #16196 from peppy/update-framework
Update framework
2021-12-21 18:23:02 +09:00
Dan Balasescu
4ba5a939db
Merge pull request #16178 from bdach/lounge-background-screen-correct
Fix lounge screen showing information sourced from wrong playlist item
2021-12-21 17:36:23 +09:00
Dan Balasescu
51b7e920c0 Fix delete button being able to show on current item 2021-12-21 16:57:58 +09:00
Bartłomiej Dach
979624160f
Do not reset last hover sound playback time on inactivity 2021-12-21 08:47:41 +01:00
Bartłomiej Dach
cd10af633c
Remove unused private method 2021-12-21 08:47:26 +01:00
Dean Herbert
0198d49a3a Update framework 2021-12-21 16:38:03 +09:00
Dan Balasescu
32fbaf47c0
Merge pull request #16192 from peppy/add-room-lost-logging
Add logging of `MultiplayerMatchSubScreen` exiting from room loss
2021-12-21 16:37:08 +09:00
Bartłomiej Dach
c7b9b176c6
Rename BeatmapCard{Base => } 2021-12-21 08:26:25 +01:00
Bartłomiej Dach
88d4e95ad8
Rename BeatmapCard{ => Normal} 2021-12-21 08:26:21 +01:00
Bartłomiej Dach
bd1fb33ad6
Add and use separate extensions for historical and upcoming playlist items 2021-12-21 08:01:04 +01:00
Dean Herbert
2707b2fbda
Merge pull request #16012 from bdach/beatmap-card/extra
Implement "extra" beatmap card size
2021-12-21 15:40:33 +09:00
Dean Herbert
981158ed88 Rename method and simplify SetDefault calling code 2021-12-21 15:34:32 +09:00
Dan Balasescu
5cea8da80f
Merge pull request #16188 from peppy/multiplayer-button-enabled
Centralise all multiplayer button clicking test logic
2021-12-21 15:10:26 +09:00
Dean Herbert
d08b66a5ff Also add logging to OnlinePlayScreen 2021-12-21 15:07:06 +09:00
Dean Herbert
ddadf3c4b5 Add logging of MultiplayerMatchSubScreen exiting from room loss 2021-12-21 14:53:24 +09:00
Dean Herbert
9aff646ff4 Centralise all multiplayer button clicking test logic
This adds the "wait for enabled" check in a way that can be easily
reused, as it keeps getting missed in test implementations.

This particular commit hopefully fixes
https://github.com/ppy/osu/runs/4583845033?check_suite_focus=true.
2021-12-21 13:49:51 +09:00
Dean Herbert
edcbd4de6d Fix incorrect event unbind logic 2021-12-21 13:05:26 +09:00
Dean Herbert
52db7b36fc Move Schedule call to base implementation of error meter for extra safety 2021-12-21 12:55:21 +09:00
Dean Herbert
28d6ff5d9c Fix potential wrong thread mutation in ColourHitErrorMeter 2021-12-21 12:36:04 +09:00
dekrain
9344897542
Split session statics reset method to prevent unloading seasonal backgrounds while idle 2021-12-20 16:51:51 +01:00
Bartłomiej Dach
f1a03aced5
Merge branch 'master' into beatmap-card/extra 2021-12-20 15:49:00 +01:00
Bartłomiej Dach
0975f570ba
Return last playlist item if all expired 2021-12-20 13:49:05 +01:00
Bartłomiej Dach
a5a9922f81
Fix lounge screen content not matching current room playlist item 2021-12-20 13:32:42 +01:00
Bartłomiej Dach
a59583ee09
Add extension method for returning next playlist item 2021-12-20 13:18:02 +01:00
Dean Herbert
6907a9a3cc Name some screen stacks for better logging context 2021-12-20 18:24:14 +09:00
Dean Herbert
1533aefce5 Update framework 2021-12-20 18:22:19 +09:00
Dan Balasescu
9316abc278 Better fix for intermittent multiplayer tests 2021-12-20 13:10:13 +09:00
Bartłomiej Dach
a6ccbafc77
Fix rank graph showing for unranked users 2021-12-19 13:40:22 +01:00
Bartłomiej Dach
097402677d
Add test for ranked/unranked user display 2021-12-19 13:40:22 +01:00
Dean Herbert
04cfae9bde Fix "Random Skin" text not showing up correctly 2021-12-18 16:26:15 +09:00
StanR
2f2006715e Slightly refactor difficulty and pp calculators 2021-12-17 23:40:23 +03:00
Bartłomiej Dach
33e930f477
Move scale-on-expand logic to BeatmapCardContent 2021-12-17 13:29:20 +01:00
Bartłomiej Dach
d6f6039934
Extract base class for beatmap cards 2021-12-17 13:27:11 +01:00
mk-56
fd5af1fbe7 Code refactor and name changes
cleaned code up with Jetbrains i hope it suffices
2021-12-17 13:16:06 +01:00
Bartłomiej Dach
f052b47d87
Extract collapsible button container for card usage 2021-12-17 12:58:05 +01:00
Bartłomiej Dach
7aab12d4b0
Share extra row dropdown show/cancel show logic 2021-12-17 11:45:05 +01:00
Bartłomiej Dach
3fa45479b0
Share hype/nomination statistic show logic 2021-12-17 11:45:05 +01:00
Dean Herbert
81603a0645 Update framework 2021-12-17 19:32:58 +09:00
Bartłomiej Dach
c6d0b5d200
Merge branch 'master' into beatmap-card/extra-wip 2021-12-17 11:11:36 +01:00
Dean Herbert
1067e2dc00
Merge branch 'master' into update-framework 2021-12-17 16:41:47 +09:00
Dean Herbert
6bfe973fe5 Update framework 2021-12-17 13:44:52 +09:00
Bartłomiej Dach
54790bb758
Merge branch 'master' into fix-realm-post-storage-migration-failure 2021-12-17 00:19:46 +01:00
Salman Ahmed
9a22a082ca
Merge branch 'master' into master 2021-12-16 16:58:24 +03:00
Dean Herbert
eecb1ce9f5 Avoid applying mouse down effects to menu cursor when it isn't visible
Closes #16114.
2021-12-16 20:20:06 +09:00
Dean Herbert
434aa0367f Add back .ToLocalTime() call to DrawableDate
This is required because the class is used in many other places that
don't locally call it.
2021-12-16 18:25:29 +09:00
Dean Herbert
0eac655cff Remove local screen change logging 2021-12-16 18:21:48 +09:00
Dean Herbert
aa0813ff05
Merge pull request #16109 from smoogipoo/chat-overlay-multiplayer-removal
Don't show multiplayer channels in chat overlay
2021-12-16 17:39:45 +09:00
Dan Balasescu
3f1d747b7a
Merge pull request #16090 from peppy/fix-scroll-speed-toast-sample-spam
Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
2021-12-16 17:31:36 +09:00
Dan Balasescu
488374b4a2 Don't show multiplayer channels in chat overlay 2021-12-16 16:41:47 +09:00
Dean Herbert
a9dbcd92a1 Split out unmanaged implementation of RealmLive into its own class 2021-12-16 15:23:55 +09:00
Imad Dodin
b3e83a47a4 Convert to Local Time in Date Tooltip 2021-12-15 21:36:35 -08:00
Dean Herbert
e6e1366c28
Merge pull request #16094 from peppy/beatmap-card-expanded-state-fix
Fix beatmap card potentially collapsing when it shouldn't
2021-12-16 14:13:47 +09:00
Dean Herbert
0ec1e1e2d5
Merge pull request #16091 from MyDogsEd/fix-issue-#15869
Fix the taiko scroller bar appearing during cinema mod
2021-12-16 12:05:00 +09:00
Bartłomiej Dach
cbb65e1e07
Merge branch 'master' into beatmap-card-expanded-state-fix 2021-12-15 22:20:30 +01:00
Dean Herbert
cd8dfac625
Merge pull request #16097 from smoogipoo/forego-resetting-spectate-state
Don't reset spectating state if spectator exited after gameplay finishes
2021-12-15 22:30:41 +09:00
Dean Herbert
33cf4ba7f6
Merge pull request #16075 from smoogipoo/prevent-idle-transition-during-load
Add AbortGameplay() to fix state transition race conditions during multiplayer load
2021-12-15 19:59:19 +09:00
Dan Balasescu
4c53ec12e9
Merge branch 'master' into forego-resetting-spectate-state 2021-12-15 18:47:47 +09:00
Dean Herbert
2025183f5a
Merge pull request #15990 from Susko3/number-textbox-only-numbers
Fix `SettingsNumberBox` accepting non-number characters
2021-12-15 18:39:54 +09:00
Dean Herbert
9e82a3e79a Merge branch 'master' into forego-resetting-spectate-state 2021-12-15 18:05:06 +09:00
Dan Balasescu
18d7b79207 Don't reset spectating state if gameplay is finished 2021-12-15 17:40:30 +09:00
Susko3
643cee4f83 Merge branch 'master' into number-textbox-only-numbers 2021-12-15 09:13:19 +01:00
Dean Herbert
694ee68725 Update resources 2021-12-15 16:59:33 +09:00
Dan Balasescu
740a6f16c7 Fix exception when updating the room's visual playlist 2021-12-15 16:53:25 +09:00
Dean Herbert
42f14667a3 Update framework 2021-12-15 16:50:55 +09:00
Dean Herbert
ad430a6277 Centralise hover state handling (and fix back-to-front conditionals) 2021-12-15 16:44:58 +09:00
Dean Herbert
6a1f535257 Refactor cancellation of expand to be more explicit 2021-12-15 16:38:19 +09:00
Dean Herbert
94d1a2aaca Remove unnecessary collapse call from BeatmapCard
This is already handled at the `BeatmapCardContent` level. This call
actually causes the buggy behaviour reported in
https://github.com/ppy/osu/discussions/16085.
2021-12-15 16:37:47 +09:00
Dean Herbert
7a9db22c52 Tidy up method naming and structure for expanded state changes 2021-12-15 16:29:12 +09:00
Dean Herbert
ef4ab74565 Also only expose Expanded state of BeatmapCard as read-only 2021-12-15 16:26:19 +09:00
Dean Herbert
41e6c24dad Expose Expanded state of BeatmapCardContent as read-only bindable
This is just to reduce complexity of these interactions by ensuring that
the expanded state can only be changed by the class itself.
2021-12-15 16:26:19 +09:00
Susko3
b326ccc196 Move logic to framework and update all usages 2021-12-15 07:13:24 +01:00
JamesTheGeek
828072bcea Fix issue #15869
The taiko-slider is not included in  `Playfield`, so it doesn't get hidden when calling `drawableRuleSet.Playfield.Hide()`.   Calling `drawableRuleSet.Hide()` hides the taiko-slider, in addition to the rest of the `Playfield`.
2021-12-14 23:23:11 -05:00
Dean Herbert
0c11fe7413 Fix toast popups spamming samples when adjusting osu!mania scroll speed during gameplay
Not the most robust of fixes, but as per the reasoning described in the
issue thread, a proper fix will take considerably more effort. This
intends to fix the issue first and foremost, as it sounds so bad I'd
want to mute my sound before adjusting currently.

Closes #15718.
2021-12-15 12:45:23 +09:00
Dean Herbert
9d85beddbe Fix null reference in some tests due to missing realm context factory 2021-12-15 11:16:37 +09:00
Dan Balasescu
2cea39a92a
Merge pull request #16083 from peppy/fix-online-availability-after-reimport
Fix `OnlinePlayBeatmapAvailabilityTracker` failng after modified reimport of existing beatmap
2021-12-15 08:31:02 +09:00
Dan Balasescu
ee6f125948
Merge pull request #15967 from tbrose/chat-mention-fix
Check word boundaries during username mention matching
2021-12-15 08:04:39 +09:00
Dan Balasescu
9ade8069a1 Rename to AbortGameplay() and handle additional states 2021-12-15 06:40:28 +09:00
Dan Balasescu
4c81fd8b7c
Merge pull request #16068 from peppy/fix-fail-animation-background-dim
Improve appearance of player-wide background after failing with low background dim
2021-12-15 06:32:02 +09:00
Bartłomiej Dach
00154fe86d
Merge branch 'master' into fix-menu-background-desync 2021-12-14 21:31:10 +01:00
tbrose
a831744f05 Merge remote-tracking branch 'origin/chat-mention-fix' into chat-mention-fix 2021-12-14 16:24:05 +01:00
tbrose
8e79fac389 Fixes code quality check failed 2021-12-14 16:23:51 +01:00
Dean Herbert
453ecd21b3 Fix OnlinePlayBeatmapAvailabilityTracker potentially in incorrect state
Adter an import of a modified version of a beatmap (that was already
present in the local database), it's feasible that one of these trackers
would not see the state change due to the nuances of the import process.
2021-12-14 19:16:11 +09:00
Dean Herbert
04551ea61e
Merge pull request #16080 from smoogipoo/fix-storyboard-start-time
Fix incorrect storyboard life time start with looping commands
2021-12-14 18:33:56 +09:00
Dean Herbert
cebfeb5220
Merge pull request #16045 from smoogipoo/multiplayer-local-beatmap-query
Rework multiplayer's current item tracking
2021-12-14 18:33:30 +09:00
Dean Herbert
79dd9674fc Use longer form to read better
Using `l.StartTime` reads like a coding issue, even though if you go
down the call chain looks to be correct.
2021-12-14 17:41:09 +09:00
Dean Herbert
8c6f50ddb1 Fix BackgroundScreenDefault incorrectly updating current background after being inactive
If the beatmap was changed but then reverted to the previously displayed
map, the background may have displayed incorrectly on resuming.

Closes #15804.
2021-12-14 16:40:50 +09:00
Dean Herbert
b6a272e31a Add failing test coverage of BackgroundScreeNDefault's beatmap background tracking when active/non-active 2021-12-14 16:40:34 +09:00
Dean Herbert
441b7baa93 Provide a realm factory to usages of ToLive/RealmLive 2021-12-14 14:26:34 +09:00
Dean Herbert
f9a2db5ec6 Add accessibility to realm factory via IStorageResourceProvider
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Dean Herbert
7e576ae9d3 Add note about how the background colour is restored 2021-12-14 13:25:19 +09:00
Dan Balasescu
357a661379 Fix storyboard sprites sometimes starting too early 2021-12-14 13:13:12 +09:00
Dan Balasescu
51b6b9d857
Merge branch 'master' into chat-mention-fix 2021-12-14 11:49:57 +09:00
Dan Balasescu
750bfae909 Fix TestMultiplayerClient not handling all users bailing from gameplay 2021-12-14 11:35:56 +09:00
Dan Balasescu
2f1dc91211 Add AbortLoad() method to abort gameplay loads 2021-12-14 11:30:42 +09:00
Dean Herbert
a076eda834
Merge pull request #16062 from smoogipoo/retry-score-submission-timeout
Increase score submission timeout
2021-12-14 11:03:20 +09:00
Dan Balasescu
419a34e7b4
Merge branch 'master' into test-score-refactoring 2021-12-14 07:30:06 +09:00
Dan Balasescu
7564658b5e Reduce to 30s 2021-12-14 06:40:45 +09:00
Dean Herbert
b0d14526ea Move test ScoreInfo creation to TestResources
The main goal here is to remove the inheritance, since realm doesn't
like that. Unfortunate that we can't use object initialisers in a few of
these places, but no real way around that.
2021-12-13 16:34:50 +09:00
Dan Balasescu
70045494ba Re-simplify code by removing BeatmapManager event instead 2021-12-13 16:09:54 +09:00
Dean Herbert
7318ff3f98 Refactor KeyBindingStore to clean up any excess bindings for individual actions
While this isn't strictly required (outside of rulesets, potentially),
I think it's best that we keep these counts in a sane state.

Right now, it will remove any excess. Arguably, in the case an entry is
found with too many, we should wipe all entries and re-populate the
defaults. Interested in opinions on that before merging. See
https://github.com/ppy/osu/discussions/15925 for an example where wiping
may be the more appropriate behaviour.
2021-12-13 15:26:51 +09:00
Dean Herbert
cac684c044 Improve appearance of player-wide background after failing with low background dim 2021-12-13 14:53:11 +09:00
Dean Herbert
c097dc8048 Add note about reasoning behind MultiplayerClient.GetAPIBeatmap call 2021-12-13 13:39:32 +09:00
Dean Herbert
3ea07b426b
Merge branch 'master' into multiplayer-local-beatmap-query 2021-12-13 13:27:34 +09:00
Dean Herbert
c375c87094
Merge pull request #16065 from frenzibyte/reorder-version-overlay
Display game version overlay behind the overlays layer
2021-12-13 13:25:30 +09:00
Salman Ahmed
d0fbbf110b Expose ScreenContainer for access in OsuGameDesktop 2021-12-13 06:52:36 +03:00
Dan Balasescu
fd979a52fe Increase score submission request timeout to 60s 2021-12-13 07:15:21 +09:00
Dan Balasescu
2cd2b10ce1 Fix results sometimes showing incorrect score position 2021-12-13 06:54:57 +09:00
Dan Balasescu
bf3abb2455
Merge branch 'master' into multiplayer-local-beatmap-query 2021-12-12 16:37:41 +09:00
Dan Balasescu
a6e77f172d Add some comments 2021-12-12 16:30:37 +09:00
Dan Balasescu
d6c08fae48 Fix incorrect global beatmap with availability changes 2021-12-11 23:08:21 +09:00
Dan Balasescu
ece2cddb7f Fix DrawableRoomPlaylistItem lookup interfering with tests 2021-12-11 22:51:20 +09:00
Dan Balasescu
25b274c323 Fix starting gameplay too early after import 2021-12-11 22:47:50 +09:00
Dan Balasescu
1aac978a7b
Merge pull request #16029 from peppy/editor-mod-reset
Fix editor not resetting mods when entering
2021-12-11 20:20:11 +09:00
Dan Balasescu
63a017bc8e Use Array.Empty instead 2021-12-11 19:33:37 +09:00
Dan Balasescu
cdb8237a4b
Merge branch 'master' into pre-realm-score-tidy 2021-12-11 19:25:39 +09:00
Salman Ahmed
3a4266bd5e
Merge branch 'master' into update-framework 2021-12-10 17:50:33 +03:00
Dan Balasescu
6057037e35 Move playlist item beatmap population to MatchSubScreen 2021-12-10 20:08:59 +09:00
Dean Herbert
c1b3ee6bb2 Fix editor not resetting mods when entering
Would leave the user potentially in a test mode that is in a weird
state (ie. if cinema mod was enabled). Eventually we'll add the ability
to choose mods for test play, but that will be done in a saner way.

Closes #15870.
2021-12-10 18:57:45 +09:00
Dean Herbert
3b899af061 Update libraries 2021-12-10 18:46:47 +09:00
Dean Herbert
f7c5a3f506 Use similar method of consuming OnlineID as done in beatmap classes 2021-12-10 18:34:31 +09:00
Dean Herbert
c9f6c5c673 Add MatchesOnlineID implementation for IScoreInfo 2021-12-10 18:34:31 +09:00
Dean Herbert
5f6e887be7 Remove OnlineID comparison from ScoreInfo.Equals
This matches the implementation we have for `BeatmapInfo` and
`BeatmapSetInfo`. All comparisons of `OnlineID` should be done directly
using them (ie. how it's done in `ScoreModelDownloader`).
2021-12-10 18:17:43 +09:00
Dan Balasescu
e98060ac37
Remove unused using 2021-12-10 17:55:18 +09:00
Dean Herbert
73227c084e Update framework 2021-12-10 17:42:40 +09:00
Dean Herbert
970a9ae074 Add update thread asserts to RoomManager methods 2021-12-10 17:22:24 +09:00
Dean Herbert
3633494509
Merge pull request #16020 from smoogipoo/host-enqueue-2
Add support for enqueueing items in host-only mode, and changing arbitrary playlist items
2021-12-10 16:23:48 +09:00
Dean Herbert
c6d0d6451d Change IScoreInfo.User to an interface type 2021-12-10 16:11:49 +09:00
Dean Herbert
bff02bedbf Rename APIScoreInfo to APIScore 2021-12-10 16:11:49 +09:00
Dean Herbert
dbb08f7d46 Use OnlineID for set operations 2021-12-10 16:11:48 +09:00
Dean Herbert
7ac63485ef Add setter for ScoreInfo.OnlineID 2021-12-10 16:11:48 +09:00
Dean Herbert
bf1418bafc Use OnlineID instead of legacy IDs for equality and lookups 2021-12-10 16:11:48 +09:00
Dan Balasescu
4e6286920c
Merge pull request #16017 from peppy/fix-child-set-after-disposal
Fix potential crash due to children being mutated after disposal
2021-12-10 15:38:34 +09:00
Dan Balasescu
de0f37b08d Separate editing and adding playlist items 2021-12-10 15:26:48 +09:00
Dean Herbert
88670c3b01 Document OpenSongSelection and mark null param 2021-12-10 14:14:22 +09:00
Dean Herbert
50bf2f368d
Merge branch 'master' into host-enqueue-2 2021-12-10 14:09:19 +09:00
Dean Herbert
9ac8e6c81c Add missing null check before attempting to populate bpm info 2021-12-10 13:53:48 +09:00
Dean Herbert
612f47bb9f Add the ability to create playlists of 2 weeks ~ 3 months in duration 2021-12-10 13:45:29 +09:00
Dean Herbert
1952819db2
Merge pull request #16019 from smoogipoo/cleanup-playlist-item-buttons
Cleanup duplicated classes in DrawableRoomPlaylistItem
2021-12-10 12:01:26 +09:00
Dan Balasescu
35a208a478
Merge pull request #15999 from peppy/restore-user-volume-muted-notification
Fix the unmute notification potentially overwriting user's volume levels unnecessarily
2021-12-10 02:58:59 +09:00
Dan Balasescu
671582a925 Allow host to enqeue items and items to be edited 2021-12-10 01:15:19 +09:00
Dan Balasescu
048a495115 Add edit button to DrawableRoomPlaylistItem 2021-12-10 01:08:54 +09:00
Dan Balasescu
4d1c06c061 Add support for host enqueueing in TestMultiplayerClient 2021-12-10 01:03:36 +09:00
Dan Balasescu
05aa9635a8 Privatise button again 2021-12-10 00:38:18 +09:00
Dan Balasescu
f9af239ed9 Cleanup duplicated classes in DrawableRoomPlaylistItem 2021-12-09 23:56:49 +09:00
Dean Herbert
538a822760
Merge branch 'master' into multiplayer-playlist-deletion 2021-12-09 19:04:06 +09:00
Dean Herbert
a3b53ac2f6 Change comparison to match in all locations 2021-12-09 18:58:47 +09:00
Dean Herbert
b393f83028
Merge pull request #16009 from smoogipoo/cleanup-drawable-playlist
Cleanup DrawableRoomPlaylist and DrawableRoomPlaylistItem
2021-12-09 18:54:16 +09:00
Dean Herbert
e7e61cd9ab Fix potential crash due to children being mutated after disposal
This is a bit of an unfortunate edge case where the unbind-on-disposal
doesn't help, since the binding is happening in BDL, and the usage is in
a nested `LoadComponentAsync` call. Combine those and you have a recipe
for disaster.
2021-12-09 18:52:00 +09:00
Dean Herbert
dfe19f3509 Minor code reformatting 2021-12-09 17:53:40 +09:00
Dan Balasescu
0963b00453 Disallow item selection in playlists song select 2021-12-09 17:33:59 +09:00
Dan Balasescu
17d676200b
Xmldoc fixes from code review
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-12-09 17:33:36 +09:00
Dan Balasescu
1a0945daba Siplify condition, allow host to always remove items 2021-12-09 14:33:50 +09:00
Bartłomiej Dach
083ee92dee
Adjust button vertical padding 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
2d739c95ea
Lay out extra card statistics in grid as per design 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
3ecfaa532c
Add source field to extra beatmap card 2021-12-08 22:56:28 +01:00
Bartłomiej Dach
419fee1380
Move mapper link to bottom content 2021-12-08 22:54:11 +01:00
Bartłomiej Dach
61e04f75cc
Resize extra card to design size 2021-12-08 22:54:10 +01:00
Bartłomiej Dach
a32492cdd5
Duplicate BeatmapCard{-> Extra} as blueprint for extra card size 2021-12-08 22:53:51 +01:00
Dan Balasescu
80b2768a5f Mirror recent server-side changes 2021-12-09 04:18:54 +09:00
Dan Balasescu
4df2047a58 Prevent removal of expired items in TestMultiplayerClient 2021-12-09 04:12:24 +09:00
Dan Balasescu
8398f86440 Don't consider expired items in visibility check 2021-12-09 04:02:16 +09:00
Dan Balasescu
c34c580ad4 Add client-side + interface implementation 2021-12-09 03:08:59 +09:00
Dan Balasescu
ce081c4acc Fix missing propagation of OwnerId in tests 2021-12-09 02:01:17 +09:00
Dan Balasescu
23332995d1 Invert naming of exposed actions 2021-12-09 01:52:59 +09:00
Dan Balasescu
273042aa16 Add virtual method for creating different DrawablePlaylistItem types 2021-12-09 01:49:34 +09:00
Dan Balasescu
3b4833ca8e A bit of cleanup + xmldocs on classes/members 2021-12-09 01:40:16 +09:00
Dan Balasescu
be2dbf42c3 Flatten DrawableRoomPlaylistWithResults into base class 2021-12-09 01:40:16 +09:00
Dan Balasescu
26f6c5e5a5 Remove ctor params from PlaylistsRoomPlaylist 2021-12-09 01:16:37 +09:00
Dan Balasescu
3be4d8b68d Remove ctor params from DrawableRoomPlaylist/DrawablePlaylistItem 2021-12-09 01:04:56 +09:00
Dean Herbert
8d9c37a825 Merge branch 'master' into primary-key-consistency 2021-12-08 21:34:38 +09:00
Dan Balasescu
beb5d61a42 Separate playlist item deletion to Playlists-specific class 2021-12-08 20:50:25 +09:00
Dean Herbert
8fa73fcbf6 Move helper method to end of class 2021-12-08 18:30:08 +09:00
Susko3
de89e321c8 Add sounds for IME composition 2021-12-08 09:57:53 +01:00
Susko3
af1e97b7c7 Move playing text added samples to private helper and fix it never playing the last sample
`RNG.Next` is exclusive of the upper bound, meaning that the last sample would never be played.
2021-12-08 09:49:36 +01:00
Dan Balasescu
65a09692da
Merge pull request #16001 from peppy/fix-own-rank-results-panel-in-multiplayer
Fix the local user's rank not showing on multiplayer/playlist results screen
2021-12-08 16:34:36 +09:00
Dean Herbert
872e0884c0 Fix the local user's rank not showing on multiplayer/playlist results screen
Applying the simple solution for now. Not sure how this will evolve over
time, but seems sane enough.
2021-12-08 15:22:10 +09:00
Dean Herbert
6ec3f41839 Fix LegacyComboCounter not handling non-default anchor/origin specifications correctly 2021-12-08 15:07:15 +09:00
Dean Herbert
0775053a18 Fix the unmute notification potentially overwriting user's volume levels unnecessarily
I've also changed the cutoffs to 5% rather than zero, as this seems like
a saner method of showing this dialog. With levels 5% or less, the game
is basically inaudible.

Arguably, the cutoff can be increased to 10%.
2021-12-08 13:38:43 +09:00
Dean Herbert
2e640ff2ad
Merge pull request #15989 from bdach/fix-editor-clipboard-test-failure
Fix editor crashing if paste is performed while composer is loading
2021-12-08 11:18:59 +09:00
Bartłomiej Dach
10dd64e07c
Fix being able to paste objects while composer is loading
Would lead to exceptions due to modification of `Beatmap.HitObjects`
during its enumeration by `DrawableRuleset`, which was happening as an
async load via `EditorScreenWithTimeline.CreateMainContent()`.
2021-12-07 21:00:25 +01:00
Susko3
0b0ff36154 Allow only number characters parseable by int.TryParse
char.IsNumber() is too broad, allowing full width and other numbers.
2021-12-07 20:06:22 +01:00
Bartłomiej Dach
8b7ed759e3
Merge branch 'master' into beatmap-card/scale-on-hover 2021-12-07 19:11:01 +01:00
Dan Balasescu
86eacfdbd8
Merge pull request #15879 from peppy/multiplayer-delayed-playlist-load-broken
Load playlist panels on demand to reduce initial load time when joining a room
2021-12-08 00:42:20 +09:00
Dean Herbert
25a0505c97 Scale card when expanding to better distinguish hovered card from other cards in listing 2021-12-07 23:48:14 +09:00
Dean Herbert
d6e68feadc
Merge pull request #15948 from bdach/beatmap-card/difficulty-dropdown
Add difficulty dropdown to beatmap card
2021-12-07 23:40:06 +09:00
Dan Balasescu
7e236c3a41 Remove unused dependency 2021-12-07 23:36:48 +09:00
Dan Balasescu
52230a6f00
Merge branch 'master' into multiplayer-delayed-playlist-load-broken 2021-12-07 22:45:05 +09:00
Dean Herbert
a8c20368c0
Merge pull request #15976 from smoogipoo/add-modes-to-room-panels
Add match type and queue mode to multiplayer room panels
2021-12-07 22:08:30 +09:00
Dan Balasescu
4683193f09 Move implementation to base class 2021-12-07 20:36:39 +09:00
Dan Balasescu
5ffe702dd6 Add match type and queue mode to multiplayer room panels 2021-12-07 18:57:13 +09:00
Dean Herbert
9978caab12 Update framework 2021-12-07 18:37:30 +09:00
Dean Herbert
dea7f2308c Fix participant panels potentially keeping a reference to an old user
If a user leave and then rejoins a multiplayer match while another user
is not at the lobby screen, there is a potential the `ParticipantPanel`
tracking the user will not correctly be recreated to reference the new
instance of the `MultiplayerUser`.

This happens because the `OnRoomUpdated` call is scheduled, which means
it is not running in the background, coupled with the local logic that
relies on `IEquatable(MultiplayerRoomUser)` (which in turn falls back to
a UserID comparison).

Changing this to a reference comparison is the easiest way to resolve
this. Whether we change the `IEquatable` implementation is up for
discussion.

Closes https://github.com/ppy/osu/issues/15970.
2021-12-07 17:24:04 +09:00
Dean Herbert
cfa712473d Use default timeout in GetPlayableBeatmap when provided CancellationToken is default 2021-12-07 13:33:41 +09:00
Dean Herbert
f3e9fb76fc Add the ability to pass a CancellationToken through DifficultyCalculator.CalculateAll
Was weirdly missing from this one method.
2021-12-07 13:32:47 +09:00
tbrose
882223b27f Using static call and verbatim symbol and optimizes regex pattern for username check 2021-12-07 02:38:10 +01:00
tbrose
b6d47a41f4 Adjusted RegEx pattern to also take special characters into account 2021-12-07 02:14:40 +01:00
Salman Ahmed
974987550f Move API request response size log to correct logging target 2021-12-07 04:01:56 +03:00
tbrose
7a0d4fca17 Fixes using Matches+Count instead of IsMatch negatively affecting performance 2021-12-07 01:41:21 +01:00
tbrose
f02e44d552 Fixes not matching coding style 2021-12-07 01:38:48 +01:00
tbrose
39594b7362 Fixes detection of mentioning of user falsely detects messages where the username is coincidentally contained in words of a message. 2021-12-06 23:32:21 +01:00
tbrose
0a6c221de4 Adds tests for checkContainsUsername function of MessageNotifier component 2021-12-06 22:07:47 +01:00
Bartłomiej Dach
999bba439f
Clarify usages of reverse child ID flow with inline comments 2021-12-06 21:02:40 +01:00
Bartłomiej Dach
82ed8eae6b
Ensure hover handling container always calls base on hover events 2021-12-06 21:02:40 +01:00
Bartłomiej Dach
ccfc361626
Apply naming suggestions 2021-12-06 21:02:38 +01:00
Bartłomiej Dach
4278a320e4
Fix skin setting resetting every launch
The reason this was happening was an unfortunate oversight in the
migration logic. The code that was attempting to parse the skin settings
as `int` was firing regardless of whether a skin migration from EF to
realm had already occurred. If it had occurred, the skin setting would
contain a GUID rather than an integer, and therefore fail to parse, and
therefore implicitly fallback to a EF skin ID of 0 which would be the
default skin.

Fix by not running the setting migrating logic at all when there are no
EF skins to migrate.
2021-12-06 20:12:02 +01:00
Dan Balasescu
d5cdb1bb87 Update test multiplayer client implementation 2021-12-07 00:01:07 +09:00
Dean Herbert
3e27859e4f Update framework 2021-12-06 22:47:07 +09:00
Dan Balasescu
7ef960839b
Merge pull request #15898 from peppy/skin-export-instntiation-info
Serialise and deserialise `SkinInfo.InstantiationInfo` to allow for more correct imports
2021-12-06 22:08:20 +09:00
Dean Herbert
9033169177
Merge pull request #15951 from peppy/fix-failing-recorder-tests-w
Fix intermittent test failures in scenes using `SpectatorClient`
2021-12-06 18:40:27 +09:00
Dean Herbert
07abcf04b4
Merge branch 'master' into realm-integration/skins-filename-lookup-performance 2021-12-06 17:13:33 +09:00
Dean Herbert
68b482fc48
Merge branch 'master' into skin-export-instntiation-info 2021-12-06 17:12:42 +09:00
Dean Herbert
cf34b3f70e
Merge pull request #15859 from peppy/realm-integration/skins-rebase
Use realm for skins
2021-12-06 17:12:23 +09:00
Dean Herbert
7a333ffdcc Add a paired schedule in SpectatorClient.BeginPlaying
Optimally, I would like to remove the `Schedule` in `EndPlaying`, but it
turns out quite a few test are relying on this at very least. Adding a
paired schedule ensure that order of operations is correct, at least.
2021-12-06 17:07:19 +09:00
Dan Balasescu
310e503b85
Merge pull request #15950 from peppy/fix-incorrect-match-current-beatmap
Ensure user is returned to the `RoomSubScreen` before gameplay is started
2021-12-06 16:34:46 +09:00
Dan Balasescu
991becdfa7
Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 16:34:31 +09:00
Dean Herbert
a13067eaa4
Merge pull request #15929 from smoogipoo/update-test-multiplayer-client
Update test multiplayer client to match server implementation
2021-12-06 15:57:08 +09:00
Dean Herbert
452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
Dan Balasescu
fae41b2182 Remove one more piece of code 2021-12-06 15:17:33 +09:00
Dan Balasescu
5be74af8fe Update addItem() implementation 2021-12-06 15:09:06 +09:00
Dean Herbert
0ea7a69084 Ensure user is returned to the RoomSubScreen before gameplay is started
This covers the scenario where a user may be at the song select screen
while another user (the room host) starts the match. This was only made
possible with the new queue modes, so is quite a recent regression.
2021-12-06 14:03:52 +09:00
Dean Herbert
a76cfbea21 Add test coverage of incorrect beatmap being used in multiplayer when match started from song select 2021-12-06 14:03:33 +09:00
Dean Herbert
ca1f96d2c2 Reword xmldoc of MultiplayerPlaylistItem.PlaylistOrder to better match actual behaviour 2021-12-06 13:03:14 +09:00
Dean Herbert
5ff452cc9a Update success bool to access Exception to stop exceptions from firing outwards 2021-12-06 12:29:11 +09:00
Dean Herbert
91aa38c4f6 Change playlist lookup to fail hard when failing 2021-12-06 12:28:48 +09:00
Bartłomiej Dach
0f74389389
Add scrolling for long difficulty lists in beatmap card 2021-12-05 20:17:59 +01:00
Bartłomiej Dach
af35652b8b
Disable beatmap card expansion on solo spectator screen 2021-12-05 20:07:58 +01:00
Bartłomiej Dach
af10223ac4
Add reverse fill flows & depth specs at usage sites for correct Z-ordering 2021-12-05 20:07:46 +01:00
Bartłomiej Dach
e451e43b90
Implement input handling behaviour of beatmap card dropdown 2021-12-05 16:31:45 +01:00
Bartłomiej Dach
250e5b47b7
Move "extra info" beatmap card row to separate component 2021-12-05 15:52:19 +01:00
Bartłomiej Dach
3fea8d5e62
Implement visual behaviour of expanded card state 2021-12-05 15:48:02 +01:00
Bartłomiej Dach
a07f8c74dc
Add basic structure for composable card dropdown 2021-12-05 15:26:37 +01:00
ColdVolcano
81215b9f0e Use correct effect points when EarlyActivationMilliseconds is not zero 2021-12-04 22:31:55 -06:00
Bartłomiej Dach
504210a6cd
Merge branch 'master' into multiplayer-room-composite-event-debounce-fix 2021-12-04 17:50:32 +01:00
Dean Herbert
e1897f9998 Don't debounce MultiplayerRoomComposite events
This avoids accidental usage which could result in data being lost or
ignored (as only the last `user` in a single frame would arrive).

This was added specifically to debounce sample playback, but given that
it's only debouncing on a single frame (hardly noticeable) I'm not going
to add back support for that yet. It should be handled by sample
playback concurrency or something more local to the usage.
2021-12-05 01:38:39 +09:00
Bartłomiej Dach
f051720fa1
Fix score encoder being dependent on current culture
As it turns out, on some cultures, the "negative integer" sign is not
encoded using the U+002D HYPHEN-MINUS codepoint. For instance, Swedish
uses U+2212 MINUS SIGN instead. This was confusing the legacy decoder,
since it is correctly depending on the serialisation being
culture-independent.

To fix, ensure that the special "end replay" frame, as well as the
replay MD5 hash, are generated in a culture-invariant manner.

Thankfully the replay MD5 hash is currently being discarded in
`LegacyScoreDecoder`, so it changing in future scores should not have
any negative effect on lazer operation.
2021-12-04 17:13:43 +01:00
Bartłomiej Dach
38702beabf
Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
Bartłomiej Dach
53a6ef22ce
Add null check to resolve inspection 2021-12-04 14:55:35 +01:00
Dan Balasescu
85d3b70d8c Update test multiplayer client to match server-side 2021-12-04 22:34:38 +09:00
Bartłomiej Dach
b3b239c9a1
Fix test failures due to beatmap lookup logic being active even when model is populated 2021-12-04 13:59:01 +01:00
Dean Herbert
517a344bcc
Merge branch 'master' into new-multiplayer-playlist 2021-12-04 13:16:09 +09:00
Dan Balasescu
f4e07f1483 Merge branch 'master' into diffcalc-cli-arg 2021-12-03 20:34:59 +09:00
Dan Balasescu
d5803e541b Give playlist items a PlayedAt date 2021-12-03 20:25:51 +09:00
Dan Balasescu
4145a16d5b
Merge pull request #15920 from peppy/clean-up-unused-resolves
Clean up unused resolved properties
2021-12-03 20:08:48 +09:00
Dan Balasescu
e350c68b5f
Merge pull request #15918 from peppy/volume-adjust-during-gameplay-alt-exception
Fix alt-scroll not adjusting volume in gameplay when scroll wheel is disabled
2021-12-03 19:09:20 +09:00
Dean Herbert
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
Dean Herbert
2acf46154a Remove many unused resolutions of RulesetStore 2021-12-03 18:16:29 +09:00
Dean Herbert
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
Dean Herbert
15db1372aa Add missing equality implementations on IRulesetInfo 2021-12-03 18:01:45 +09:00
Dean Herbert
675ecb603f Add IRulesetStore to allow for transitional usage in upcoming manager classes 2021-12-03 17:57:40 +09:00
Dean Herbert
6b73672403 Stop Player from blocking volume adjust when Alt it held
Similar case to what we already have in `OsuScrollContainer`, so there
is precedent for handling this locally in this fashion.
2021-12-03 17:18:07 +09:00
Dean Herbert
aaa46960b3 Reword mouse wheel disable setting to better explain its purpose 2021-12-03 17:18:07 +09:00
Dan Balasescu
9d6fe558c2 Update TestMultiplayerClient with expired item ordering 2021-12-03 17:01:33 +09:00
Dan Balasescu
487a71312e Split out code so base methods aren't called 2021-12-03 16:40:20 +09:00
Dean Herbert
e4b296e16e Use OptIn serialisation on SkinInfo to avoid writing unnecessary information 2021-12-03 16:36:27 +09:00
Dean Herbert
dad5b06e84 Avoid sending empty parameters in GetBeatmapRequest 2021-12-03 16:23:39 +09:00
Dan Balasescu
0a1304b92a Remove gameplay_order, use existing playlist_order 2021-12-03 15:45:13 +09:00
Dean Herbert
9c717ce7ec
Merge branch 'master' into diffcalc-cli-arg 2021-12-03 15:10:55 +09:00
Dan Balasescu
b75a5b778e Update history list to also sort by gameplay order 2021-12-03 15:05:56 +09:00
Dan Balasescu
1d2d1bfcf3 Add UpdatedAt to MultiplayerPlaylistItem 2021-12-03 15:05:56 +09:00
Dean Herbert
9803e63e6f Update IPC usage to return null 2021-12-03 14:30:15 +09:00
Dean Herbert
6142566974 Update resources 2021-12-03 14:26:53 +09:00
Dean Herbert
abf7735b84 Update framework 2021-12-03 14:18:03 +09:00
Dan Balasescu
806ca5d4de Update TestMultiplayerClient implementation to match server 2021-12-02 22:58:12 +09:00
Dan Balasescu
933fd49cff Fix missed callbacks due to AddOnce() schedules 2021-12-02 22:33:14 +09:00
Dan Balasescu
9760a2b087 Update MultiplayerQueueList to take advantage of GameplayOrder 2021-12-02 22:33:14 +09:00
Dan Balasescu
ba8af303cc Add GameplayOrder to MultiplayerPlaylistItem 2021-12-02 22:33:14 +09:00
Dean Herbert
cdf2fa9930 Serialise and deserialise SkinInfo.InstantiationInfo to allow for more correct imports
Until now, skins were always imported using the `LegacySkin`
instantiation type. For cases where a user has edited the lazer or
classic default (via the new skin editor), which would result in
incorrect fallback paths after exporting and importing the edited skin.
2021-12-02 18:05:16 +09:00
Dean Herbert
0e82e9355b Ensure skin is saved immediately after becoming mutable
Without doing this, the JSON content is not written to the file. A user
assumption is that as soon as a skin shows up in the skin list as
exportable, it should export correctly, so it makes sense that it should
be in a sane state even if the user has not made any changes in the skin
editor yet.

Going forward, we might move more of the json serialisation logic out,
and run for consistency as part of the import process. This seems like
the simplest way to guarantee things for now, though.
2021-12-02 17:42:17 +09:00
Dean Herbert
fe99d4e984 Standardise parameter naming across all file IO methods 2021-12-02 17:19:53 +09:00
Dean Herbert
ae3038ead4 Overwrite existing files if AddFile is called with an existing filename 2021-12-02 17:18:06 +09:00
Dean Herbert
512818648f Add some more breathing room between tab control and queue content 2021-12-02 16:56:30 +09:00
Dean Herbert
5976982b12 Add missing xmldoc for MultiplayerClient events 2021-12-02 16:45:26 +09:00
Dan Balasescu
c00684a2f7
Merge branch 'master' into new-multiplayer-playlist 2021-12-02 16:19:34 +09:00
Dean Herbert
bdddaba352 Remove unnecessary test request handling 2021-12-02 14:33:56 +09:00
Dean Herbert
624ec4580a Ensure updateLocalRoomSettings is only called after full population 2021-12-02 14:32:39 +09:00
Dean Herbert
505608ab12 Merge branch 'realm-integration/skins-rebase' into realm-integration/skins-filename-lookup-performance 2021-12-02 14:01:39 +09:00
Dean Herbert
e855a49833 Add test coverage of default skin edit and export 2021-12-02 14:01:18 +09:00
Dean Herbert
0a14acfd83 Fix incorrect conditional on export/mutate feasability of skin 2021-12-02 13:41:58 +09:00
Dean Herbert
65f0a80c97 Merge branch 'master' into realm-integration/skins-rebase 2021-12-02 13:37:20 +09:00
Dean Herbert
c82195390f Update usage of SubscribeForNotifications 2021-12-02 13:24:16 +09:00
Dean Herbert
9483a3013c Merge branch 'master' into realm-integration/skins-filename-lookup-performance 2021-12-02 13:20:56 +09:00
Dean Herbert
4f826589e5 Remove subscription logic for the time being 2021-12-02 12:20:07 +09:00
Bartłomiej Dach
8bef50cbba
Revert "Refactor migration precondition to read better"
Realm cannot translate `.All()` LINQ queries.

This reverts commit 0e0e8c25e8.
2021-12-01 19:39:44 +01:00
Dean Herbert
caa88950da
Merge pull request #15889 from smoogipoo/fix-multi-test-ids
Fix testable online IDs starting at 0
2021-12-01 22:51:24 +09:00
Dean Herbert
a8e17cb3a5 Add relative size specs so partially on-screen panels still start loading
Without this, panels at the top of the list but not fully on-screen
wouldn't begin their metadata loading process.
2021-12-01 22:46:38 +09:00
Dean Herbert
d262baefad Only query for the owner user metadata in the case it is actually required 2021-12-01 22:43:32 +09:00
Dean Herbert
a0ff86f5e8 Ensure all read and write operations on APIRoom are done on the update thread 2021-12-01 22:43:03 +09:00
Dan Balasescu
e5e2ae8ab4 Fix dangling line post-rebase 2021-12-01 21:36:25 +09:00
Dan Balasescu
89c47708a1 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:23 +09:00
Dan Balasescu
e87b0003fb Fix queue mode not being bound to in all cases 2021-12-01 21:35:23 +09:00
Dan Balasescu
ad35f3434b Fix queue list not considering expired items 2021-12-01 21:35:23 +09:00
Dan Balasescu
e2f289eeff Xmldocs 2021-12-01 21:35:23 +09:00
Dan Balasescu
93a7726f4a Remove now-unused parameter 2021-12-01 21:35:23 +09:00
Dan Balasescu
d70355237d Fix selected item not bound 2021-12-01 21:35:23 +09:00
Dan Balasescu
c3dfe10a8a Add new list to match subscreen 2021-12-01 21:35:22 +09:00
Dan Balasescu
1152c4e8e9 Fix tests 2021-12-01 21:35:22 +09:00
Dan Balasescu
7847ce6253 Redesign with tab control 2021-12-01 21:35:22 +09:00
Dan Balasescu
95050d6597 Extract class to file 2021-12-01 21:35:22 +09:00
Dan Balasescu
fc8c8685b8 Add playlist queue tests 2021-12-01 21:35:22 +09:00
Dan Balasescu
e0ca1af9b8 Remove ctor params 2021-12-01 21:35:22 +09:00
Dan Balasescu
bfd2dc28c8 Rename QueueList -> MultiplayerQueueList 2021-12-01 21:35:22 +09:00
Dan Balasescu
6b198ce112 Document simulation 2021-12-01 21:35:22 +09:00
Dan Balasescu
ef170471f0 Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:35:22 +09:00
Dan Balasescu
9806c75743 Implement better round robin algorithm 2021-12-01 21:35:12 +09:00
Dan Balasescu
68bb49fc1e Add QueueList tests 2021-12-01 21:33:48 +09:00
Dan Balasescu
0cb35e8b18 Separate out QueueList 2021-12-01 21:33:48 +09:00
Dan Balasescu
17bc0b51aa Merge branch 'playlist-item-add-owner' into new-multiplayer-playlist 2021-12-01 21:33:48 +09:00
Dan Balasescu
942e48ffbd Merge branch 'master' into new-multiplayer-playlist 2021-12-01 21:33:11 +09:00
Dan Balasescu
c38537a51a Initial implementation of MultiplayerPlaylist 2021-12-01 21:32:56 +09:00
Dan Balasescu
42ad726154
Merge branch 'master' into multiplayer-delayed-playlist-load-broken 2021-12-01 20:28:29 +09:00
Dan Balasescu
685bdd522e Replace 'skin' in comments with 'instance' 2021-12-01 20:17:38 +09:00
Dan Balasescu
c225f8f84c
Merge branch 'master' into realm-subscribe-helper-methods 2021-12-01 20:15:21 +09:00
Dan Balasescu
af704dfe5b
Merge pull request #15878 from peppy/beatmap-lookup-cache
Cache beatmap metadata lookups used by multiplayer
2021-12-01 20:13:21 +09:00
Dan Balasescu
7224f6bac5 Fix testable online IDs starting at 0 2021-12-01 20:00:31 +09:00
Dean Herbert
bf5a186a2b Add early abort to avoid sending empty lookup requests 2021-12-01 17:47:16 +09:00
Dean Herbert
81f82c24c3 Use new API endpoint to do batch lookups 2021-12-01 17:45:41 +09:00
Dean Herbert
09817ff161 Add missing returns additional documentation to main method call 2021-12-01 15:27:10 +09:00
Dean Herbert
4306420922 Add extension methods to add extra safety to realm subscriptions
Also adjusts the naming and documentation to make it (hopefully) easier
to understand what this method/process implies.
2021-12-01 15:09:53 +09:00
Dean Herbert
1cf1543866 Fix test failures due to attempting to subscribe to non-managed instances 2021-12-01 13:50:19 +09:00
Dean Herbert
ea66cd6c5e Add xmldoc and make realm ongoing transaction file op methods protected instead of public 2021-12-01 12:55:21 +09:00
Dean Herbert
8ce7467e97 Fix ordering of skins in dropdown being reverse of expected 2021-12-01 12:50:47 +09:00
Dean Herbert
0e0e8c25e8 Refactor migration precondition to read better 2021-12-01 12:48:49 +09:00
Dean Herbert
370135d484 Remove outdated TODO 2021-12-01 12:47:32 +09:00
Dean Herbert
fb2310f826 Specify config file default as DEFAULT_SKIN's guid 2021-12-01 12:45:47 +09:00
Dan Balasescu
7d0135063e
Merge pull request #15875 from peppy/fix-match-type-propagation
Fix match type not being propagated correctly to other users' settings
2021-12-01 11:23:28 +09:00
Dean Herbert
9411b42d0a Cache skin filename to path mapping to reduce realm lookups during gameplay skin changes 2021-12-01 02:27:41 +09:00
Dean Herbert
03e1305b3f Fix toast display potentially causing a child mutation before load complete 2021-12-01 01:55:17 +09:00
Dean Herbert
bba985e0e5 Merge branch 'beatmap-lookup-cache' into multiplayer-delayed-playlist-load-broken 2021-11-30 20:09:52 +09:00
Dean Herbert
0fae10500a Fix failing tests 2021-11-30 20:09:45 +09:00
Dean Herbert
ef3d0ee0db Merge branch 'master' into realm-integration/skins-rebase 2021-11-30 19:59:59 +09:00
Dan Balasescu
857e559f87
Merge pull request #15877 from peppy/log-response-sizes
Log output API request response sizes
2021-11-30 19:58:29 +09:00
Dean Herbert
e4ba66877d Improve transitions when loading new data into a playlist panel 2021-11-30 19:54:26 +09:00
Dean Herbert
fe119da044 Add fetching of beatmap and user data when playlist panels come on screen 2021-11-30 19:52:36 +09:00
Bartłomiej Dach
95373649a4 Skip null items in star rating range display 2021-11-30 19:44:50 +09:00
Bartłomiej Dach
695167a749 Add support for null item display in DrawableRoomPlaylistItem 2021-11-30 19:44:50 +09:00