Commit Graph

29862 Commits

Author SHA1 Message Date
9978caab12 Update framework 2021-12-07 18:37:30 +09:00
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
cfa712473d Use default timeout in GetPlayableBeatmap when provided CancellationToken is default 2021-12-07 13:33:41 +09:00
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
974987550f Move API request response size log to correct logging target 2021-12-07 04:01:56 +03:00
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
d5cdb1bb87 Update test multiplayer client implementation 2021-12-07 00:01:07 +09:00
3e27859e4f Update framework 2021-12-06 22:47:07 +09:00
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
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
07abcf04b4 Merge branch 'master' into realm-integration/skins-filename-lookup-performance 2021-12-06 17:13:33 +09:00
68b482fc48 Merge branch 'master' into skin-export-instntiation-info 2021-12-06 17:12:42 +09:00
cf34b3f70e Merge pull request #15859 from peppy/realm-integration/skins-rebase
Use realm for skins
2021-12-06 17:12:23 +09:00
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
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
991becdfa7 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 16:34:31 +09:00
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
452fa93444 Merge branch 'master' into realm-integration/skins-rebase 2021-12-06 15:21:02 +09:00
fae41b2182 Remove one more piece of code 2021-12-06 15:17:33 +09:00
5be74af8fe Update addItem() implementation 2021-12-06 15:09:06 +09:00
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
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
ca1f96d2c2 Reword xmldoc of MultiplayerPlaylistItem.PlaylistOrder to better match actual behaviour 2021-12-06 13:03:14 +09:00
81215b9f0e Use correct effect points when EarlyActivationMilliseconds is not zero 2021-12-04 22:31:55 -06:00
504210a6cd Merge branch 'master' into multiplayer-room-composite-event-debounce-fix 2021-12-04 17:50:32 +01:00
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
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
38702beabf Merge branch 'master' into i-ruleset-store 2021-12-04 15:05:39 +01:00
53a6ef22ce Add null check to resolve inspection 2021-12-04 14:55:35 +01:00
85d3b70d8c Update test multiplayer client to match server-side 2021-12-04 22:34:38 +09:00
517a344bcc Merge branch 'master' into new-multiplayer-playlist 2021-12-04 13:16:09 +09:00
f4e07f1483 Merge branch 'master' into diffcalc-cli-arg 2021-12-03 20:34:59 +09:00
d5803e541b Give playlist items a PlayedAt date 2021-12-03 20:25:51 +09:00
4145a16d5b Merge pull request #15920 from peppy/clean-up-unused-resolves
Clean up unused resolved properties
2021-12-03 20:08:48 +09:00
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
1eed2436e6 Clean up unused resolved properties 2021-12-03 18:49:49 +09:00
2acf46154a Remove many unused resolutions of RulesetStore 2021-12-03 18:16:29 +09:00
e75e209053 Cache and consume IRulesetStore where feasible 2021-12-03 18:16:01 +09:00
15db1372aa Add missing equality implementations on IRulesetInfo 2021-12-03 18:01:45 +09:00
675ecb603f Add IRulesetStore to allow for transitional usage in upcoming manager classes 2021-12-03 17:57:40 +09:00
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
aaa46960b3 Reword mouse wheel disable setting to better explain its purpose 2021-12-03 17:18:07 +09:00
9d6fe558c2 Update TestMultiplayerClient with expired item ordering 2021-12-03 17:01:33 +09:00
487a71312e Split out code so base methods aren't called 2021-12-03 16:40:20 +09:00
e4b296e16e Use OptIn serialisation on SkinInfo to avoid writing unnecessary information 2021-12-03 16:36:27 +09:00
dad5b06e84 Avoid sending empty parameters in GetBeatmapRequest 2021-12-03 16:23:39 +09:00
0a1304b92a Remove gameplay_order, use existing playlist_order 2021-12-03 15:45:13 +09:00
9c717ce7ec Merge branch 'master' into diffcalc-cli-arg 2021-12-03 15:10:55 +09:00
b75a5b778e Update history list to also sort by gameplay order 2021-12-03 15:05:56 +09:00
1d2d1bfcf3 Add UpdatedAt to MultiplayerPlaylistItem 2021-12-03 15:05:56 +09:00