1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-07 16:07:25 +08:00
Commit Graph

7770 Commits

Author SHA1 Message Date
Dean Herbert
99701a6d9b Add null check on beatmapContainer for safety 2021-01-06 21:06:33 +09:00
Dean Herbert
ffafdf2209 Merge branch 'master' into fix-transform-carousel 2021-01-06 21:03:22 +09:00
Bartłomiej Dach
25b4628672
Merge branch 'master' into fix-transform-mutation-from-background 2021-01-06 11:04:51 +01:00
Dean Herbert
07cff70387 Add specific messaging for when there's no background stack available 2021-01-06 18:19:03 +09:00
Dean Herbert
550ef3f133 Aggressively dispose ownedBackground if it was not used, because we can 2021-01-06 15:28:01 +09:00
Dean Herbert
e9d4e4d1d5 Add xmldoc and throw a local exception on null background 2021-01-06 15:26:44 +09:00
Dean Herbert
11a0c637bc Mark background properties as nullable 2021-01-06 15:26:00 +09:00
Bartłomiej Dach
52687fc37c Merge branch 'master' into fix-transform-mutation-loading-layer 2021-01-05 23:10:51 +01:00
Bartłomiej Dach
2b253f6d01 Remove now-unused fields & locals 2021-01-05 22:56:53 +01:00
Bartłomiej Dach
fbbc26d7d8
Merge branch 'master' into fix-carousel-centering-on-window-resize 2021-01-05 21:30:39 +01:00
Dean Herbert
4b539b01c1 Match code between updateSelectedBeatmap/Ruleset 2021-01-05 20:38:58 +09:00
Dean Herbert
83dbba3cbf Fix carousel beatmap set panels applying transforms to difficulties while they are loading 2021-01-05 18:41:45 +09:00
Dean Herbert
54982dcdd7 Refactor LoadingLayer to avoid applying effects to external drawables
In theory this seemed like a good idea (and an optimisation in some
cases, due to lower fill rate), but in practice this leads to weird edge
cases.

This aims to do away with the operations on external drawables by
applying a dim to the area behind the `LoadingLayer` when required.
I went over each usage and ensured they look as good or better than
previously.

The specific bad usage here was the restoration of the colour on dispose
(if the `LoadingLayer` was disposed in a still-visible state).

I'm aware that the `BeatmapListingOverlay` will now dim completely during
load. I think this is fine for the time being.
2021-01-05 17:31:45 +09:00
Dean Herbert
9bac791a57 Fix deselection of autoplay mod failing 2021-01-05 16:17:58 +09:00
Dean Herbert
60fc60fa00
Merge pull request #11415 from frenzibyte/fix-ready-button-crash
Fix multiplayer ready button crashing when deleting selected beatmap set
2021-01-05 15:58:09 +09:00
Dean Herbert
b3f08b29ca Ensure that all changes to screen backgrounds are on the correct thread 2021-01-05 15:22:50 +09:00
Dean Herbert
a3e4e2f6c3 Switch ResultsScreen and SongSelect inheritance and remove local implementation 2021-01-05 15:22:50 +09:00
Dean Herbert
ed6ffe2ef1 Remove hacky code 2021-01-05 14:54:59 +09:00
Dean Herbert
6b8e1913ee Fix dependency not always available due to nested LoadComponentAsync call 2021-01-05 13:27:45 +09:00
Dean Herbert
deb1ad7bca
Merge branch 'master' into disable-repeat-multi-actions 2021-01-04 23:38:29 +09:00
Dean Herbert
b7dd54847f Move resolved usage of WorkingBeatmap in editor components as local as possible to avoid misuse 2021-01-04 16:56:37 +09:00
Dean Herbert
7fdf876b4c Fix editor timing screen mutating the WorkingBeatmap instead of EditorBeatmap 2021-01-04 16:38:15 +09:00
Dean Herbert
b4a779108e Ensure working beatmap is reloaded on exiting the editor 2021-01-04 16:37:49 +09:00
Dean Herbert
ba4e411422 Clone and copy ControlPointInfo when retrieving a playable beatmap 2021-01-04 16:37:07 +09:00
Salman Ahmed
485a57776b Fix hasBeatmap potentially checking on outdated DeletePending value 2021-01-04 10:28:41 +03:00
Salman Ahmed
ea38b00b29 Schedule all calls to updateBeatmapState() 2021-01-04 10:27:08 +03:00
Dean Herbert
20d04d6933 Fix Storyboard's FirstEventTime not finding the true earliest event 2021-01-04 15:16:01 +09:00
Salman Ahmed
445a4bd01c Re-query beatmap info on database changes 2021-01-04 09:00:16 +03:00
Dean Herbert
53e6a349bb Fix incorrect initial conditional
Turns out this wasn't actually required.
2021-01-03 22:44:32 +09:00
Dean Herbert
efb71713ef Fix null condition inhibiting deselection events 2021-01-03 22:43:02 +09:00
Dean Herbert
a6d4992997 Ensure SelectionChanged events are only sent once when selection is null 2021-01-03 12:53:25 +09:00
Dean Herbert
caa5109e3a Add precautionary null checks to update methods in SongSelect 2021-01-03 12:18:35 +09:00
Lucas A
324f80d994 Fix merge conflicts. 2021-01-02 19:14:10 +01:00
Dean Herbert
e2de5bb8f9 Fix the beatmap carousel not returning to centre correctly after resizing window 2021-01-02 22:05:41 +09:00
mcendu
17abe90c27 move SkinnableHealthDisplay
Similar components are in osu.Game.Screens.Play.HUD while this is not
2020-12-31 20:23:13 +08:00
Bartłomiej Dach
7d9a61fbc1 Handle unobserved exceptions from ready button properly 2020-12-31 11:57:13 +01:00
Bartłomiej Dach
f800448c87 Move game start logic to a higher level 2020-12-30 18:15:48 +01:00
Bartłomiej Dach
d34609b98e Rename On{ToggleReady -> ReadyClick} 2020-12-30 16:29:36 +01:00
Bartłomiej Dach
59f2017a13 Move BindValueChanged subscriptions to LoadComplete 2020-12-30 16:22:11 +01:00
Bartłomiej Dach
05f212eb3c Merge branch 'master' into remove-multiplayer-selection-poller 2020-12-29 12:51:33 +01:00
Bartłomiej Dach
361d215ab4 Reword notification messages to match new logic 2020-12-29 10:56:59 +01:00
Bartłomiej Dach
5d23199233 Trim redundant IsLoggedIn checks 2020-12-29 10:56:29 +01:00
Bartłomiej Dach
cafa241ef3 Fix ready-up button getting stuck if server operation fails 2020-12-29 09:44:30 +01:00
Bartłomiej Dach
e9b0652359 Move ready-up operation logic again to client
To salvage ready up button tests.
2020-12-29 09:16:02 +01:00
Dean Herbert
906a9b79b5 Show an error when forcefully exiting online play due to API failure 2020-12-29 16:47:36 +09:00
Dean Herbert
4d04e0dee7 Disallow entering the playlists/multiplayer screens if API is failing 2020-12-29 16:25:51 +09:00
Bartłomiej Dach
db52255bbe Adjust tracker usages to match new API 2020-12-29 08:20:43 +01:00
Bartłomiej Dach
f59ba799d3 Adjust operation tracker implementation 2020-12-29 07:54:27 +01:00
Bartłomiej Dach
9ff2140232 Move ready-up logic to match sub-screen 2020-12-29 07:52:15 +01:00
Bartłomiej Dach
903dca875e Make localUser a client property 2020-12-29 07:46:22 +01:00
Bartłomiej Dach
f68e4fc88f Merge branch 'master' into disable-repeat-multi-actions 2020-12-29 07:42:20 +01:00
Dean Herbert
45c578b857 Remove selection polling from multiplayer
Looks like this was just copy-paste without any thought into whether it
should exist. It really shouldn't exist.

This is a thing for the playlists system because the *whole system*
there relies on polling the web API to get updated information. In the
case of mutliplayer, we hand off all communications to the realtime
server at the point of joining the rooms.

The argument that this was there to do faster polling on the selection
isn't valid since the polling times were the same for both cases.

Closes #11348.
2020-12-29 15:10:09 +09:00
Dean Herbert
e3a41f6118 Rename variable to make more sense
It needs to be explicitly stated that the users in this list are related
to the *joined* room. Especially since it's sharing its variable name
with `SpectatorStreamingClient` where it has the opposite meaning (is a
list of *globally* playing players).
2020-12-29 14:27:35 +09:00
Bartłomiej Dach
540dec2e7c Allow null tracker in lounge screen for tests 2020-12-28 22:54:52 +01:00
Bartłomiej Dach
6dc0f6af50 Disable setting apply button for duration of operation 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
af66e45311 Disable create room button after triggering join 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
47ab7c9fd6 Disable ready button after host click 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
9e6994166c Add helper to track ongoing operations in UI 2020-12-28 22:48:03 +01:00
Bartłomiej Dach
a014d0ec18 Use PlayingUsers when constructing player directly 2020-12-28 19:27:56 +01:00
Dean Herbert
9155671557
Merge pull request #11341 from peppy/fix-leaderboard-user-handling
Fix incorrect null handling in GameplayLeaderboard
2020-12-28 22:44:55 +09:00
Dean Herbert
2e88036f39
Merge pull request #11342 from bdach/fix-beatmap-not-reverting
Fix user changes in multi song select not reverting on exit without confirmation
2020-12-28 21:56:07 +09:00
Bartłomiej Dach
a376a23ed7
Merge branch 'master' into fix-leaderboard-user-handling 2020-12-28 13:43:53 +01:00
Bartłomiej Dach
a9822800fc Add more null hinting in GameplayLeaderboard 2020-12-28 13:00:05 +01:00
Bartłomiej Dach
f16b516e58 Revert user changes if no selection was made 2020-12-28 12:35:17 +01:00
Dean Herbert
447a55ce11 Fix incorrect null handling in GameplayLeaderboard 2020-12-28 20:16:53 +09:00
Bartłomiej Dach
20ae84a466
Merge branch 'master' into fix-user-lookup-failure-crashes 2020-12-28 12:15:06 +01:00
Dean Herbert
046a76cb1d Allow null users to still be displayed in the participant list
The fix here is correcting the access of `user.Country`. The deicision
to have null users display is because this is the best we can do (if
osu-web could not resolve the user). We still want the users in the
lobby to be aware of this user's presence, rather than hiding them from
view.

osu-stable does a similar thing, showing these users as `[Loading]`. I
decided to go with blank names instead because having *any* text there
causes confusion. We can iterate on this in future design updates.
2020-12-28 15:03:44 +09:00
Lucas A
7ae4979882 Fix merge conflicts. 2020-12-27 13:52:45 +01:00
Bartłomiej Dach
2ff49f4758 Merge branch 'master' into fix-quit-user-showing-in-leaderboard 2020-12-27 13:02:40 +01:00
Bartłomiej Dach
f75dccc9e4 Explicitly use discard in value changed callback 2020-12-27 13:00:27 +01:00
Bartłomiej Dach
6b6b1514e2 Rename method to be less misleading
As it doesn't only change colour, but also width.
2020-12-27 12:58:37 +01:00
Dean Herbert
1b34f2115f Remove dignostics using 2020-12-27 16:57:23 +09:00
Dean Herbert
d14a8d24b5 Remove assert for now 2020-12-27 16:42:20 +09:00
Dean Herbert
fa0576f47f Move quit colour change implementation to updateColour for better coverage 2020-12-27 13:40:02 +09:00
Bartłomiej Dach
15948de2f0 Fix gameplay leaderboard avatars being clickable 2020-12-26 14:35:14 +01:00
Dean Herbert
71dcbeaf7c Mark user as quit visually on the leaderboard 2020-12-26 12:11:09 +09:00
Dean Herbert
116acc2b5e Add flow for marking user as quit for further handling 2020-12-26 11:35:51 +09:00
Dean Herbert
ff57562956 Fix multiplayer leaderboard not unsubscribing from quit users 2020-12-26 11:35:31 +09:00
Dean Herbert
fe1bbb1cac Don't fail if the local user is not present in room users when updating ready button state 2020-12-26 10:49:22 +09:00
Dean Herbert
f9900720d5 Rename OnRoomChanged to OnRoomUpdated to avoid confusion 2020-12-26 10:49:02 +09:00
Bartłomiej Dach
2e4b1b95c2 Rename {Multiplayer -> OnlinePlay}BackgroundSprite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
ed4b8482b6 Rename {Multiplayer -> OnlinePlay}Composite 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
4c43a67b68 Rename I{Multiplayer -> OnlinePlay}SubScreen 2020-12-25 18:07:34 +01:00
Bartłomiej Dach
e5064ee930 Rename {Multiplayer -> OnlinePlay}SubScreen 2020-12-25 17:02:35 +01:00
Bartłomiej Dach
eb0f125fef Rename {Multiplayer -> OnlinePlay}SubScreenStack 2020-12-25 17:00:31 +01:00
Bartłomiej Dach
4caf75850b Rename {Multiplayer -> OnlinePlay}Screen 2020-12-25 17:00:00 +01:00
Bartłomiej Dach
83fb7c7a1a Re-namespace all files in OnlinePlay directory 2020-12-25 16:50:09 +01:00
Bartłomiej Dach
e797e5ce7a Rename Multi directory to OnlinePlay 2020-12-25 16:50:02 +01:00
Dean Herbert
9de1a67e03 Move PlaylistsResultsScreen to correct namespace 2020-12-25 23:47:32 +09:00
Dean Herbert
836d1491d0 PlaylistsMultiplayer -> Playlists 2020-12-25 23:47:18 +09:00
Dean Herbert
8a36eab060 Move missed file from Play namespace 2020-12-25 23:42:02 +09:00
Dean Herbert
e421b6d34e Update some missed variables 2020-12-25 23:36:09 +09:00
Dean Herbert
e49dce2c86 Fix some missed renames 2020-12-25 15:34:13 +09:00
Dean Herbert
5d4b73baa5 RealtimeMultiplayer -> Multiplayer 2020-12-25 14:10:59 +09:00
Dean Herbert
a1384942b1 Timeshift -> Playlists at a code level 2020-12-25 13:11:21 +09:00
Dean Herbert
4e21bd0108
Merge pull request #11286 from peppy/rename-timeshift
Rename "timeshift" to "playlists"
2020-12-25 00:45:06 +09:00
Dean Herbert
60c7c8b63b
Pluralise playlists in tip 2020-12-25 00:44:42 +09:00
Bartłomiej Dach
6ec045f235 Distinguish primary multi screen titles in header 2020-12-24 16:18:35 +01:00
Bartłomiej Dach
db1c11073f Rename back to "room" for "realtime" multiplayer 2020-12-24 16:10:29 +01:00
Bartłomiej Dach
7f0f6d86b0 Rename {room -> playlist} on playlist room screen 2020-12-24 16:08:45 +01:00
Dean Herbert
fa14438671
Merge pull request #11285 from peppy/resort-leaderboard-less
Re-sort the leaderboard order a maximum of once a second
2020-12-25 00:05:13 +09:00
Dean Herbert
61be6197e7
Merge pull request #11290 from bdach/looping-mp-at-end-of-game
Fix multiplayer gameplay potentially looping audio after reaching end
2020-12-25 00:04:56 +09:00
Bartłomiej Dach
a97681a5da Proxy screen transition events to subscreens in multiplayer 2020-12-24 15:07:03 +01:00
Bartłomiej Dach
76a7aabfe8 Always create realtime-specific player elements regardless of token 2020-12-24 14:32:30 +01:00
Dean Herbert
3a46e210d4 Change low-hanging references of "room" to "playlist" 2020-12-24 21:59:10 +09:00
Dean Herbert
aec25e2d73 Rename "timeshift" to "playlists"
This only covers the user-facing instances. Code and class name changes
will happen once things have calmed down.
2020-12-24 21:53:20 +09:00
Dean Herbert
f991448a3e Re-sort the leaderboard order a maximum of once a second 2020-12-24 21:49:38 +09:00
Dean Herbert
21a4e6a3f9
Merge pull request #11282 from peppy/disallow-skipping
Disallow skipping in multiplayer
2020-12-24 21:31:02 +09:00
Dean Herbert
647cb8310a
Merge pull request #11281 from peppy/fix-ruleset-pollution
Schedule UpdateFilter calls to avoid operations occuring while at a sub screen
2020-12-24 21:30:47 +09:00
Dean Herbert
9b654c741b
Merge pull request #11283 from peppy/add-match-start-sound
Play a sound when starting a timeshift or multiplayer room
2020-12-24 21:30:24 +09:00
Dean Herbert
25ff32cdf8
Merge pull request #11284 from peppy/add-ready-changed-sound
Add sound when players change ready state
2020-12-24 21:30:06 +09:00
Bartłomiej Dach
49103a4421
Merge branch 'master' into add-match-start-sound 2020-12-24 13:22:06 +01:00
Bartłomiej Dach
40b9d1bc5e Invert if & early-return to reduce nesting 2020-12-24 12:45:01 +01:00
Bartłomiej Dach
d5fc517fab
Merge branch 'master' into disallow-skipping 2020-12-24 12:35:22 +01:00
Bartłomiej Dach
ee5a6ff9fa Merge branch 'master' into improved-loading-experience 2020-12-24 11:59:46 +01:00
Bartłomiej Dach
261c250b46 Update outdated comment 2020-12-24 11:33:49 +01:00
Bartłomiej Dach
4fb2610c82
Merge branch 'master' into frame-bundle-accuracy 2020-12-24 11:20:06 +01:00
Dean Herbert
c35454081c Add sound when players change ready state 2020-12-24 17:17:45 +09:00
Dean Herbert
3148c04fb8 Play a sound when starting a timeshift or multiplayer room 2020-12-24 16:53:25 +09:00
Dean Herbert
6bd6888a93 Disallow skipping in multiplayer for now 2020-12-24 16:29:51 +09:00
Dean Herbert
5457e4598b Schedule UpdateFilter calls to avoid operations occuring while at a sub screen 2020-12-24 16:20:38 +09:00
Dean Herbert
e86e9bfae6 Don't begin gameplay until all users are in a completely prepared state 2020-12-24 15:32:55 +09:00
Dean Herbert
d66e218318 Source display accuracy from header and remove from ScoreProcessor function 2020-12-24 14:57:23 +09:00
Dean Herbert
61a5d3ef4a Remove double handling of restart allowance on results screen (already handled locally) 2020-12-24 13:32:35 +09:00
Dean Herbert
76935b93b6 Merge branch 'master' into disallow-multiplayer-restart-retry 2020-12-24 13:31:54 +09:00
Dean Herbert
b29a5e2073
Merge pull request #11270 from bdach/better-error-handling
Improve error handling at realtime room settings screen
2020-12-24 13:23:49 +09:00
Dean Herbert
15cef44351
Merge pull request #11275 from peppy/safer-user-ids
Send multiplayer user IDs via ctor for better thread safety
2020-12-24 12:20:48 +09:00
Dean Herbert
1ac93d4eeb
Merge pull request #11268 from bdach/fix-room-song-select-stuck
Fix realtime multiplayer song select getting stuck after selecting invalid beatmap
2020-12-24 11:26:07 +09:00
Dean Herbert
d6dadd12fa Send multiplayer user IDs via ctor for better thread safety 2020-12-24 10:39:15 +09:00
Bartłomiej Dach
414f886b02 Split timeshift & multiplayer "create" buttons
Multiplayer button gets new, different "Create match" text, and disable
logic in case of a dropped connection to the multiplayer server.
2020-12-23 22:03:57 +01:00
Bartłomiej Dach
c13acb609a Move out sizing logic to multiplayer screen 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
05d9f23762 Move out create room button to separate class 2020-12-23 22:03:30 +01:00
Bartłomiej Dach
152df2ad84
Merge branch 'master' into better-error-handling 2020-12-23 18:13:50 +01:00
Bartłomiej Dach
e7a91b3dca
Merge branch 'master' into fix-room-song-select-stuck 2020-12-23 18:13:27 +01:00
Bartłomiej Dach
b1fb906773 Merge branch 'master' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 17:37:49 +01:00
Bartłomiej Dach
e4959489b7 Improve user-facing error messages in room settings 2020-12-23 17:10:53 +01:00
Bartłomiej Dach
6c421b873d
Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 16:55:22 +01:00
Bartłomiej Dach
980e85ce25 Refactor player exit logic to convey intention better 2020-12-23 16:16:24 +01:00
Dean Herbert
60be1bedc9
Merge pull request #11254 from frenzibyte/fix-multi-songselect-looping
Fix beatmap track not looping on multiplayer song selects
2020-12-23 22:35:11 +09:00
Bartłomiej Dach
c5692a5d6a Re-enable carousel selection after error 2020-12-23 14:19:30 +01:00
Bartłomiej Dach
582b0d2a74 Revert logic to be closer to original
Note the reversal of the order of operations in `endHandlingTrack()`
(done for extra safety, to ensure no more value changed events can be
fired at the point of cancelling looping).
2020-12-23 13:47:28 +01:00
Bartłomiej Dach
74f0c50d82 Merge branch 'fix-multiplayer-server-disconnection-flow' into fix-hard-crash-on-signal-r-exceptions 2020-12-23 13:31:36 +01:00
Bartłomiej Dach
c839892a4c Merge branch 'master' into fix-multiplayer-server-disconnection-flow 2020-12-23 11:57:43 +01:00
Dean Herbert
f9fd909187 Fix missed inspections 2020-12-23 18:07:38 +09:00
Bartłomiej Dach
64095307de
Merge branch 'master' into realtime-leaderboard 2020-12-23 09:56:47 +01:00
Dean Herbert
3c8f871b28 Move player constructor configuration to dedicated class; add AllowRestart parameter 2020-12-23 17:47:46 +09:00
Dean Herbert
0ddcab574f Rename method to avoid weird code analysis rule 2020-12-23 17:14:58 +09:00
Dean Herbert
7cc38f03d1 Use extension method in all call sites of fire-and-forget async usage 2020-12-23 17:10:34 +09:00
Dean Herbert
c3c3364d39 Simplify error handling of JoinRoom call 2020-12-23 16:56:57 +09:00
Dean Herbert
d27b83d678 More correctly handle fire-and-forget async call 2020-12-23 16:51:11 +09:00