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
1864da00e6
Add extension method to handle cases of fire-and-forget async usage
2020-12-23 17:10:02 +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
Dean Herbert
91021eb8c4
Remove unused using
2020-12-23 16:49:17 +09:00
Dean Herbert
d7279dab40
Merge pull request #11226 from peppy/fix-legacy-skin-texture-loader-store
...
Fix incorrectly provided texture loader store to skins
2020-12-23 16:41:01 +09:00
Dean Herbert
f5d27b40a8
Standardise flow for aborting realtime player exit to avoid double-exit call
2020-12-23 16:35:39 +09:00
Dean Herbert
569c4092ef
Move notification to stateful client so it is only shown to the user from one location
2020-12-23 16:35:39 +09:00
Dean Herbert
a1d42dc4a0
Don't allow creating or joining a room when not connected to server
2020-12-23 16:35:39 +09:00
Dean Herbert
12df3056e6
Ensure appropriate screens handle exiting when the server gets disconnected
...
I would have liked for this to be handled via the `OnRoomChanged` event
flow, but this isn't present in RealtimeMatchSubScreen due to
inheritence woes.
2020-12-23 16:35:39 +09:00
Dean Herbert
00d50150de
Ensure the current room is left at a mutliplayer client level on client disconnection
2020-12-23 16:35:39 +09:00
Salman Ahmed
286884421d
Apply track looping and play on track change
2020-12-23 08:47:34 +03:00
Dean Herbert
b632e44bac
Merge pull request #11256 from frenzibyte/disallow-joining-ended-realtime-room
...
Disallow joining ended rooms in realtime multiplayer
2020-12-23 14:30:00 +09:00
Dean Herbert
be427a4ec0
Fix realtime leaderboard showing accuracy based on final base score, not rolling
2020-12-23 14:20:35 +09:00
Dean Herbert
45dcd3242d
Add comment explaining why things are done where they are
2020-12-23 13:57:48 +09:00
Salman Ahmed
3aa2b22838
Add early check for room status before joining
2020-12-23 05:52:10 +03:00
Salman Ahmed
7751ef4f3e
Revert previous logic of join guarding
2020-12-23 05:50:15 +03:00
Bartłomiej Dach
08d87ccb1e
Merge branch 'master' into present-recommended
2020-12-22 23:36:13 +01:00
Bartłomiej Dach
3272804704
Fix potential crash when no submission token
...
Can happen because `TimeshiftPlayer` will schedule a screen exit on
token retrieval failure, and `RealtimePlayer`'s BDL won't even attempt
to create a leaderboard in that case.
2020-12-22 22:34:26 +01:00
Bartłomiej Dach
3ae9dd8491
Merge branch 'master' into show-all-participant-states
2020-12-22 21:50:36 +01:00
Bartłomiej Dach
5efc3b9496
Start state display as hidden
...
Would otherwise flicker for a few frames when a new user was added to
the list of participants.
2020-12-22 21:49:42 +01:00
Salman Ahmed
a64ffcd294
Refrain from joining room if not allowed
2020-12-22 16:38:10 +03:00
Salman Ahmed
91d5c53643
Add method for checking room joinability
2020-12-22 16:36:17 +03:00
Salman Ahmed
e3483147e2
Move track looping logic into subscreens
2020-12-22 13:55:46 +03:00
Dean Herbert
6517acc510
Add leaderboard display to realtime player
2020-12-22 19:10:08 +09:00
Dean Herbert
5c3df55cdf
Merge pull request #11247 from frenzibyte/fix-resolution-dropdown
...
Fix resolution dropdown not respecting current display changes
2020-12-22 18:28:01 +09:00
Dean Herbert
ce806dd880
Replace the ready mark display with a state display, showing all participant states
2020-12-22 18:25:45 +09:00
Dean Herbert
3c33ea7f1c
Merge pull request #11239 from smoogipoo/realtime-multiplayer-2
...
Implement realtime multiplayer
2020-12-22 18:23:03 +09:00
Dean Herbert
4f02928601
Change sorting to better handle portrait screens
2020-12-22 17:36:56 +09:00
Dean Herbert
3d5783a0ea
Improve variable names
2020-12-22 17:34:51 +09:00
Dean Herbert
a1d67f0cf6
Merge branch 'master' into fix-resolution-dropdown
2020-12-22 17:26:53 +09:00
Dean Herbert
59734229ff
Remove unused using
2020-12-22 17:21:53 +09:00
Dean Herbert
7d6b2df586
Merge branch 'master' into fix-legacy-skin-texture-loader-store
2020-12-22 17:09:44 +09:00
Dean Herbert
7da3420e07
Merge pull request #11216 from Joehuu/fix-selected-highlight-on-some-dropdowns
...
Fix selected item not being highlighted on some setting dropdowns
2020-12-22 17:09:22 +09:00
Dean Herbert
30357a9447
Add loading layer to multi song select to show during settings confirmation
2020-12-22 17:08:04 +09:00
Dean Herbert
12876d7fb6
Add very basic error handling on ChangeSettings calls
2020-12-22 16:50:30 +09:00
smoogipoo
2d7174d99c
Add padding to song select
2020-12-22 16:23:06 +09:00
Dean Herbert
3cf889b7c5
Fix some errors being completely ignored
2020-12-22 16:19:19 +09:00
Dean Herbert
34421c9232
Update framework
2020-12-22 15:58:57 +09:00
Dean Herbert
17d924c755
Move timeshift settings overlay to correct namespace
2020-12-22 15:52:47 +09:00
Dean Herbert
8201fa8e34
Split out common implementation and private classes in MatchSettingsOverlay
2020-12-22 15:51:24 +09:00
smoogipoo
27e64bdb34
Schedule callback continuations
2020-12-22 15:31:07 +09:00
smoogipoo
ab90db7c8d
Fix stuck lounge on join failure
2020-12-22 15:27:49 +09:00
Dean Herbert
85e93c5dde
Fix main menu multiplayer icons being back to front
2020-12-22 15:22:27 +09:00
Dean Herbert
3f966386ed
Fix compile time failure due to potentially null connection
2020-12-22 15:15:32 +09:00
smoogipoo
81e2edc73f
Use MRE with timeout to wait on match start
2020-12-22 14:59:11 +09:00
smoogipoo
dece41d050
Add todo
2020-12-22 14:58:47 +09:00
Dean Herbert
807c1ecd1f
Refactor recommendation iteration code to read better
2020-12-22 14:57:32 +09:00
smoogipoo
3bf670510a
Split into two actions
2020-12-22 14:55:25 +09:00
Dean Herbert
df5e1d83bd
Allow recommender to potentially be null
2020-12-22 14:36:52 +09:00
Dean Herbert
8cc2ed3fae
Move from OsuGameBase to OsuGame
...
Also moves to a more suitable namespace.
2020-12-22 14:28:27 +09:00
Dean Herbert
626b7615ad
Move and rename some fields for better readability
2020-12-22 14:23:33 +09:00
Dean Herbert
dff865f335
Tidy up comments, code, and multiple linq enumeration
2020-12-22 14:12:02 +09:00
Salman Ahmed
dab5924a63
Fix resolution dropdown not respecting current display changes
2020-12-22 08:02:42 +03:00
Dean Herbert
d229fbba6e
Merge branch 'master' into present-recommended
2020-12-22 13:52:29 +09:00
Dean Herbert
7c5964fad8
Revert window modes to previous code to correctly apply framework restrictions
2020-12-22 13:04:39 +09:00
Dean Herbert
ce2b96afc5
Merge branch 'master' into fix-selected-highlight-on-some-dropdowns
2020-12-22 13:00:06 +09:00
Dean Herbert
9de42f8646
Merge pull request #11238 from peppy/editor-timeline-selection-ux
...
Improve drag and selection UX on editor timeline
2020-12-22 12:58:24 +09:00
Dean Herbert
78a53bf245
Merge pull request #11237 from peppy/fix-editor-background-sticking
...
Fix editor background not being correctly cleaned up on forced exit
2020-12-22 12:15:20 +09:00
Dean Herbert
b5e21a6885
Merge pull request #11233 from peppy/fix-chat-threading-crash
...
Fix potential cross-thread operation during chat channel load
2020-12-22 12:10:27 +09:00
Dean Herbert
a7f78d706a
Merge branch 'master' into fix-legacy-skin-texture-loader-store
2020-12-22 12:09:35 +09:00
Dean Herbert
13ef097a53
Annotate potentially null parameters in protected ctor of LegacySkin
2020-12-22 12:08:40 +09:00
Dean Herbert
85518b4d99
Enforce non-null for BeatmapManager WorkingBeatmap resources
2020-12-22 12:06:10 +09:00
Dean Herbert
a97a2b2a66
Add nullability to BeatmapManager's GameHost reference
2020-12-22 12:03:25 +09:00
Dean Herbert
10c2745682
Add region specifications around implicit interface implementations
2020-12-22 12:01:09 +09:00
Bartłomiej Dach
4eec4c1fe0
Merge branch 'master' into fix-editor-background-sticking
2020-12-21 20:31:59 +01:00
Bartłomiej Dach
f96d2f4ba4
Merge branch 'master' into fix-texture-loader-usages
2020-12-21 18:35:34 +01:00
smoogipoo
c07b2d89e6
Merge branch 'master' into realtime-multiplayer-2
2020-12-21 18:44:03 +09:00
smoogipoo
8427ee1b8e
Fix incorrect cached type
2020-12-21 18:42:23 +09:00
smoogipoo
0566ed1a9b
Add button to main menu
2020-12-21 18:38:44 +09:00
Dean Herbert
423c6158e1
Highlight timeline drag area when hovered for better visibility
2020-12-21 18:10:11 +09:00
Dean Herbert
d1be7c23d9
Increase height of timeline drag area
2020-12-21 18:09:56 +09:00
Dean Herbert
d11d754715
Increase size of circle display on timeline
2020-12-21 18:09:37 +09:00
Dean Herbert
3e3d5b2e37
Merge pull request #11235 from smoogipoo/fix-apibeatmapset-deserialisation
...
Fix metadata lost in beatmapset deserialisation
2020-12-21 18:03:30 +09:00
Dean Herbert
44af32dc47
Merge pull request #11234 from smoogipoo/fix-category-serialisation
...
Fix room category being serialised as int
2020-12-21 18:03:10 +09:00
Dean Herbert
83f1350d7d
Fix editor background not being correctly cleaned up on forced exit
...
Closes #11214 . Should be pretty obvious why.
2020-12-21 17:49:11 +09:00
Dean Herbert
5ec64c0348
Merge pull request #11232 from smoogipoo/participant-count-serialisation
...
Make participant count non-nullable
2020-12-21 17:34:01 +09:00
smoogipoo
9fa1f60b7d
Fix incorrect footer being used
2020-12-21 17:31:15 +09:00
Dean Herbert
1dcee2fb39
Merge pull request #11228 from smoogipoo/nullable-endsat
...
Make room Duration/EndDate nullable
2020-12-21 17:24:40 +09:00
smoogipoo
93cac000e5
Merge branch 'fix-apibeatmapset-deserialisation' into realtime-multiplayer-2
2020-12-21 17:16:28 +09:00
smoogipoo
eb46c9ce9b
Fix metadata lost in beatmapset deserialisation
2020-12-21 17:11:30 +09:00
Dean Herbert
d5644c7f86
Merge pull request #11229 from smoogipoo/fix-non-abstract-test
...
Make RealtimeMultiplayerTestScene abstract
2020-12-21 16:58:04 +09:00
smoogipoo
04af072da7
Merge branch 'fix-category-serialisation' into realtime-multiplayer-2
2020-12-21 16:57:22 +09:00
smoogipoo
e23d81bfc6
Use enum property
2020-12-21 16:56:45 +09:00
smoogipoo
a021aaf546
Fix room category being serialised as ints
2020-12-21 16:42:21 +09:00
Dean Herbert
d096f2f8f6
Fix potential cross-thread operation during chat channel load
...
The callbacks are scheduled to the API thread, but hooked up in BDL
load. This causes a potential case of cross-thread collection
enumeration.
I've tested and it seems like the schedule logic should be fine for
short term. Longer term, we probably want to re-think how this works so
background operations aren't performed on the `DrawableChannel` in the
first place (chat shouldn't have an overhead like this when not
visible).
Closes #11231 .
2020-12-21 16:39:50 +09:00
smoogipoo
5d73359bd7
Make participant count non-nullable
2020-12-21 16:35:19 +09:00
smoogipoo
64a32723f3
One more case
2020-12-21 16:23:42 +09:00
Dean Herbert
06d4b323d1
Merge pull request #11221 from bdach/taiko-hitobject-application
...
Add support for hitobject application to taiko DHOs
2020-12-21 16:23:40 +09:00
smoogipoo
6d483ff0e6
Merge branch 'fix-non-abstract-test' into realtime-multiplayer-2
2020-12-21 16:22:18 +09:00
smoogipoo
14ea49a14d
Merge branch 'nullable-endsat' into realtime-multiplayer-2
2020-12-21 16:22:16 +09:00
smoogipoo
dbffe735de
Merge branch 'master' into realtime-multiplayer-2
2020-12-21 16:22:14 +09:00
smoogipoo
c3d1eaf36d
Make RealtimeMultiplayerTestScene abstract
2020-12-21 16:21:05 +09:00
smoogipoo
a59124dd93
Make room duration/endsat nullable
2020-12-21 16:18:39 +09:00
smoogipoo
82cf58353c
Fix incorrect joinedroom null checks
2020-12-21 15:38:20 +09:00
Dean Herbert
a5bcf1dc20
Expose resources to skin via interface (and share common pieces with beatmap)
2020-12-21 15:18:52 +09:00
Dean Herbert
0ffbe12fcc
Expose resources to beatmaps in a saner way
2020-12-21 14:22:34 +09:00
Dean Herbert
7c804be4d3
Rename textureStore to make its purpose more clear
2020-12-21 14:06:33 +09:00
Dean Herbert
bc212b2538
Merge branch 'master' into fix-texture-loader-usages
2020-12-21 13:51:55 +09:00
Dean Herbert
a8569fe15c
Fix a couple of simple cases of incorrect TextureLoaderStore initialisation
2020-12-21 13:35:46 +09:00
Dean Herbert
27623822c4
Merge branch 'master' into realtime-ready-button
2020-12-21 11:19:03 +09:00
Bartłomiej Dach
bcd140b8df
Merge branch 'master' into realtime-ready-button
2020-12-20 18:20:57 +01:00
Bartłomiej Dach
b76ec79a70
Merge branch 'master' into realtime-participants-list
2020-12-20 18:20:22 +01:00
Bartłomiej Dach
4e8e4f0343
Merge branch 'master' into realtime-room-composite
2020-12-20 17:46:10 +01:00
smoogipoo
b31f4e9e85
Merge branch 'stateful-multiplayer-client' into realtime-multiplayer-2
2020-12-21 00:41:42 +09:00
smoogipoo
a893360c0e
Reword comment
2020-12-21 00:41:14 +09:00
smoogipoo
d127494c2d
Fix thread-unsafe room removal
2020-12-21 00:39:31 +09:00
smoogipoo
3af702453f
Implement realtime match song select
2020-12-21 00:37:13 +09:00
smoogipoo
275efd12b8
Fix room manager reference
2020-12-21 00:21:48 +09:00
smoogipoo
959959dbed
Add multiplayer client to OsuGameBase
2020-12-21 00:21:41 +09:00
smoogipoo
15480c006b
Create the correct room subscreen
2020-12-21 00:21:30 +09:00
smoogipoo
5b4197a9ef
Disable watching replays from realtime results screen
2020-12-21 00:14:54 +09:00
smoogipoo
07077b8f4e
Add realtime player
2020-12-21 00:13:05 +09:00
smoogipoo
945ba59c8e
Make timeshift player able to not allow pause
2020-12-21 00:06:44 +09:00
smoogipoo
1fdc19ee0f
Add realtime match subscreen and related components
2020-12-21 00:05:38 +09:00
smoogipoo
536df074a9
Don't attempt to re-map existing beatmap/ruleset (for testing)
2020-12-21 00:02:49 +09:00
smoogipoo
55cdff5be7
Renamespace ready button
2020-12-20 23:54:04 +09:00
Bartłomiej Dach
a31e8d137f
Add guard when clearing samples
2020-12-20 15:42:24 +01:00
smoogipoo
a1ba4b6979
Split MatchSubScreen into abstract component + timeshift implementation
2020-12-20 23:40:19 +09:00
smoogipoo
b9e4a7196e
Add realtime lounge subscreen
2020-12-20 23:36:56 +09:00
smoogipoo
455a84c73f
Add realtime multiplayer screen
2020-12-20 23:32:57 +09:00
smoogipoo
1d7d8bd6fc
Hook up a realtime multiplayer client
2020-12-20 23:26:31 +09:00
smoogipoo
fdfe3c2b36
Merge branch 'realtime-ready-button' into realtime-multiplayer-2
2020-12-20 23:11:06 +09:00
smoogipoo
a2ad0b0329
Merge branch 'realtime-participants-list' into realtime-multiplayer-2
2020-12-20 23:11:06 +09:00
smoogipoo
594db76cf3
Fix compilation errors
2020-12-20 23:10:45 +09:00
smoogipoo
4ada0e17c0
Merge branch 'abstract-room-manager' into stateful-multiplayer-client
2020-12-20 23:10:05 +09:00
smoogipoo
c33e693b8e
Refactor InitialRoomsReceived to avoid extra bindables
2020-12-20 23:05:17 +09:00
smoogipoo
9d13a5b06a
Fix potential cross-thread list access
2020-12-20 22:53:07 +09:00
smoogipoo
f876a329b1
Fire-and-forget leave-room request
2020-12-20 22:51:33 +09:00
Lucas A
f1aefcdf86
Handle multiple extensions in the import files.
2020-12-20 10:57:47 +01:00
smoogipoo
b002c46666
Add number of ready users to button
2020-12-20 18:49:51 +09:00
smoogipoo
19db35501e
Fix incorrect end date usage in timeshift ready button
2020-12-20 18:44:36 +09:00
smoogipoo
ce2560b545
Extract value into const
2020-12-20 18:36:31 +09:00
smoogipoo
45107280a0
Make TimeBetweenPolls into a bindable
2020-12-20 18:34:54 +09:00
smoogipoo
0cf078562d
Split method up and remove nested scheduling
2020-12-20 18:30:00 +09:00
smoogipoo
508f73d949
Fix up comment
2020-12-20 18:25:54 +09:00
smoogipoo
8b1f5ff492
Only instantiate ruleset once
2020-12-20 18:25:23 +09:00
smoogipoo
ba4307a74c
Directly return task
2020-12-20 18:24:13 +09:00
smoogipoo
724e4b83fe
Fix nullability and remove early check
2020-12-20 18:21:03 +09:00
smoogipoo
fb61cdfd41
Remove unnecessary first-frame polling + address concerns
2020-12-20 18:20:45 +09:00
smoogipoo
812a1d2b4f
Fix onSuccess callback potentially being called on failure
2020-12-20 18:03:30 +09:00
smoogipoo
d74485704a
Reset intial rooms received on filter change
2020-12-20 17:46:45 +09:00
smoogipoo
7c7f15089a
Make CreateRoomManager return the drawable version
2020-12-20 17:42:23 +09:00
smoogipoo
d20eb368f5
Make return into IEnumerable
2020-12-20 17:36:23 +09:00
smoogipoo
3a4878558f
Merge branch 'master' into abstract-room-manager
2020-12-20 17:35:01 +09:00
Dean Herbert
8ac76bd524
Merge pull request #11199 from smoogipoo/refactor-player-score-creation
...
Asyncify player score creation and submission
2020-12-20 17:30:11 +09:00
Joehu
5b8e35c98c
Make settings dropdown abstract
2020-12-19 19:04:14 -08:00
Joehu
b87f89986a
Fix selected item not being highlighted on some setting dropdowns
2020-12-19 19:04:13 -08:00
Bartłomiej Dach
4e5064c4f6
Start accuracy at 1
2020-12-19 21:31:17 +01:00
Bartłomiej Dach
ee33c0be93
Extract combo & accuracy ratio calculation helpers
2020-12-19 19:08:29 +01:00
Bartłomiej Dach
c738a57b39
Fix username overflow in new leaderboard design
2020-12-19 18:48:17 +01:00
Dean Herbert
b3bff281ce
Merge branch 'master' into spectator-driven-leaderboard
2020-12-20 01:13:59 +09:00
Bartłomiej Dach
3de03d279e
Merge branch 'master' into gameplay-leaderboard-update
2020-12-19 15:20:04 +01:00
Bartłomiej Dach
06a17a9d8c
Rename other constant to be distinguishable
2020-12-19 15:18:05 +01:00
Bartłomiej Dach
315a957a0c
Extract constant for text transition duration
2020-12-19 15:17:31 +01:00
Bartłomiej Dach
e2cc401c12
Move BDL above LoadComplete()
2020-12-19 15:05:59 +01:00
Bartłomiej Dach
d392e0f27e
Extract shared rank-formatting helper
2020-12-19 15:04:22 +01:00
Bartłomiej Dach
22a2c3efdf
Add back xmldoc of AddPlayer
2020-12-19 15:04:18 +01:00
Bartłomiej Dach
28ca21b432
Seal banned method & throw better exception
2020-12-19 14:50:09 +01:00
Dean Herbert
28674cedd6
Merge pull request #11196 from Grrum/alignSelectionBoxCirclesToCenterOfBorder
...
Align selection box circles to center of border
2020-12-19 21:22:26 +09:00
Lucas A
4fba0c8e6a
Remove not used using statement.
2020-12-19 10:55:39 +01:00
Lucas A
a397db4f15
Resolve merge conflicts
2020-12-19 10:55:18 +01:00
Lucas A
926281831b
Fix missing XMLDoc bit.
2020-12-19 10:36:27 +01:00
Dean Herbert
beaced3211
Remove unnecessary async state machine
2020-12-19 13:58:56 +09:00
Bartłomiej Dach
f1878eff63
Use yet another solution leveraging padding
2020-12-18 23:45:42 +01:00
smoogipoo
772dd0287e
Split submission and import into two methods
2020-12-19 03:32:05 +09:00
smoogipoo
cc22efaa6b
Use tcs instead of delay-wait
2020-12-19 03:17:04 +09:00
smoogipoo
6efe24695b
Add the realtime multiplayer ready button
2020-12-19 02:59:11 +09:00
smoogipoo
4e0113afbf
Abstractify ready button and add a timeshift implementation
2020-12-19 02:55:48 +09:00
smoogipoo
e4a54dc6cd
Renamespace ready button
2020-12-19 02:52:51 +09:00
smoogipoo
11a903a206
Add test for many users and disable scrollbar
2020-12-19 02:47:24 +09:00
smoogipoo
1e5c32410a
Add the realtime multiplayer participants list
2020-12-19 02:41:37 +09:00
smoogipoo
4d051818a1
Add base class for all realtime multiplayer classes
2020-12-19 02:41:23 +09:00
smoogipoo
9b08f573ba
Fix room not created before being joined
2020-12-19 02:41:04 +09:00
smoogipoo
3f4a66c4ae
Add realtime multiplayer test scene abstract class
2020-12-19 02:23:42 +09:00
smoogipoo
0fb8615f95
Implement room parting
2020-12-19 02:02:04 +09:00
smoogipoo
7d1fe7955e
Small improvements to testable room manager
2020-12-19 01:57:40 +09:00
smoogipoo
9b0ca8fc3b
Make real time room manager not poll while inside a room
2020-12-19 01:57:30 +09:00
smoogipoo
2fc5561b7e
Add handling for GetRoomRequest()
2020-12-19 01:22:52 +09:00
smoogipoo
c6da680c80
Add a container for testing purposes
2020-12-19 01:19:08 +09:00
smoogipoo
c6555c53cc
Add a testable realtime room manager
2020-12-19 01:17:24 +09:00
smoogipoo
50a35c0f63
Add connection/disconnection capability
2020-12-19 01:16:00 +09:00
smoogipoo
1e2163f55e
Add a testable realtime multiplayer client
2020-12-19 01:14:50 +09:00
smoogipoo
a6520d3d44
Clear rooms and poll only when connected to multiplayer server
2020-12-19 01:01:09 +09:00
smoogipoo
cf2340cafb
Add a realtime room manager
2020-12-19 00:53:06 +09:00
smoogipoo
9ceb090f04
Fix ambiguous reference
2020-12-19 00:53:06 +09:00
smoogipoo
ab9158c306
Add a stateful multiplayer client
2020-12-19 00:53:06 +09:00
smoogipoo
f4e9703deb
Fix incorrect comparison
2020-12-19 00:52:42 +09:00
smoogipoo
4494bb1eb5
Abstract RoomManager and Multiplayer
2020-12-19 00:52:27 +09:00
Graham Johnson
122250f454
replace drag cirle function with dictionary
2020-12-18 10:45:23 -05:00
Salman Ahmed
030dce5559
Increase leaderboard score width a bit
2020-12-18 13:09:50 +03:00
Salman Ahmed
c9e75e7908
Add user avatar to leaderboard scores
2020-12-18 13:09:05 +03:00
smoogipoo
eccfc8ccd2
Fix potential cross-reference access
2020-12-18 18:31:49 +09:00
smoogipoo
8826d01559
Create completion progress delegate immediately
2020-12-18 18:20:36 +09:00
smoogipoo
1369b75a86
Fix potential multiple submission
2020-12-18 17:48:42 +09:00
smoogipoo
2958cab239
Remove GotoRanking
2020-12-18 17:47:33 +09:00
Dean Herbert
75c5b99ac5
Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard
2020-12-18 17:33:25 +09:00
Dean Herbert
fdad5e86d3
Remove stray newline
2020-12-18 17:33:18 +09:00
Dean Herbert
0abe2b36b2
Merge pull request #11197 from smoogipoo/refactor-multiplayer-test-scene
...
Refactor multiplayer test scenes
2020-12-18 17:30:50 +09:00
Dean Herbert
470c68d6a5
Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard
2020-12-18 17:30:21 +09:00
Dean Herbert
615352c1e4
Fix shear offset not being included in GameplayLeaderboard's own size
2020-12-18 17:30:11 +09:00
Dean Herbert
668536ce56
Fix vertical size potentially changing during relayout
2020-12-18 17:25:48 +09:00
Dean Herbert
5cc2156801
Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard
2020-12-18 17:20:20 +09:00
Dean Herbert
e82986b763
Fix panel x positions getting weird duration relayouts
...
Also adjust the transitions a bit to feel better.
2020-12-18 17:19:55 +09:00
Dean Herbert
4cf013c005
Fix animation replacing itself even when score position hasn't changed
2020-12-18 17:19:55 +09:00
Dean Herbert
bca4d83af7
Revert previous player add flow via interface
2020-12-18 17:19:55 +09:00
Dean Herbert
cb3f89d0a5
Hook up with new leaderboard design
2020-12-18 17:13:51 +09:00
Dean Herbert
5e83605026
Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard
2020-12-18 17:07:43 +09:00
Dean Herbert
157a72ec5d
Revert previous player add flow via interface
2020-12-18 17:07:38 +09:00
smoogipoo
97ff500b0d
Make timeshift wait on score submission
2020-12-18 16:56:22 +09:00
Dean Herbert
96f23a1135
Merge branch 'master' into gameplay-leaderboard-update
2020-12-18 16:56:21 +09:00
Dean Herbert
70cda680c0
Update to match new implementation
2020-12-18 16:55:55 +09:00
Dean Herbert
869cac819d
Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard
2020-12-18 16:55:44 +09:00
smoogipoo
2db7433c0b
Refactor player score creation and submission process
2020-12-18 16:51:59 +09:00
Dean Herbert
9226a67f16
Merge branch 'master' into spectator-driven-leaderboard
2020-12-18 16:47:46 +09:00
Dean Herbert
99f2032fdf
Merge branch 'master' into gameplay-leaderboard-update
2020-12-18 16:44:52 +09:00
Dean Herbert
9618f512d7
Merge pull request #11190 from frenzibyte/api-friends-list
...
Add global friends list to API providers
2020-12-18 16:44:29 +09:00
Dean Herbert
e6a38ffbce
Fix test failure due to polluted bindable value from previous test
2020-12-18 16:39:30 +09:00
Dean Herbert
c84807ed5c
Refactor implementation
2020-12-18 16:20:54 +09:00
Dean Herbert
91fbdc3aed
Merge branch 'api-friends-list' into gameplay-leaderboard-update
2020-12-18 15:43:24 +09:00
Dean Herbert
a749dca20b
Remove left over using statement
2020-12-18 15:43:15 +09:00
smoogipoo
c80ecec0b4
Reorder methods
2020-12-18 15:36:24 +09:00
Dean Herbert
4af508235e
Rename long variable
2020-12-18 15:35:18 +09:00
Dean Herbert
20175a884a
Merge branch 'api-friends-list' into gameplay-leaderboard-update
2020-12-18 15:28:07 +09:00
Dean Herbert
99b670627a
Remove unused placeholder friend in DummyAPI implementation
2020-12-18 15:25:12 +09:00
Dean Herbert
57c5d45c02
Standardise and extract common connection failure handling logic
2020-12-18 15:19:38 +09:00
Dean Herbert
d36169f697
Move friend request to a more understandable place in connection flow
2020-12-18 15:16:48 +09:00
Dean Herbert
206bf3713e
Make IAPIProvider read-only bindables into IBindables
2020-12-18 15:16:36 +09:00
smoogipoo
208a9e596e
Set new room for each test iteration
2020-12-18 14:58:58 +09:00
Dean Herbert
fa524d64f8
Merge branch 'master' into spectator-driven-leaderboard
2020-12-18 13:34:03 +09:00
Dean Herbert
9079d33412
X before Y for sanity
2020-12-18 11:20:21 +09:00
Dean Herbert
44f4ed4fd3
Fix spacing
2020-12-18 11:19:40 +09:00
Graham Johnson
a0235a06e6
update comment
2020-12-17 19:40:21 -05:00
Salman Ahmed
92bf74ba29
localUser -> localOrReplayPlayer
2020-12-18 03:37:24 +03:00
Salman Ahmed
a8abefcd66
Make GameplayLeaderboardScore a model class
2020-12-18 03:34:33 +03:00
Graham Johnson
a01ed1827a
Align the drag circles on the selction box in the editor to be on the center of the border
2020-12-17 19:34:16 -05:00
Salman Ahmed
8a01e567a1
Fix API potentially getting stuck in connecting state
2020-12-18 03:06:28 +03:00
Salman Ahmed
9c22753f3f
Remove unnecessary inheritance to OverlayView
2020-12-18 02:51:19 +03:00
Salman Ahmed
5e4f667cff
Revert "Allow OverlayView fetching with no API requests required"
...
This reverts commit 449b9a21ae
.
2020-12-18 01:27:58 +03:00
Bartłomiej Dach
569caa9500
Merge branch 'master' into add-bundle-header
2020-12-17 20:55:24 +01:00
Dean Herbert
bb586f3175
Merge pull request #11193 from smoogipoo/add-multiplayer-beatmap-checksum
...
Add beatmap checksum to MultiplayerRoomSettings
2020-12-17 23:55:38 +09:00
smoogipoo
c15bb6b928
Add beatmap hash to MultiplayerRoomSettings
2020-12-17 22:04:24 +09:00
Salman Ahmed
0faf3fdfd3
Update gameplay leaderboard scores with the new design
2020-12-17 15:19:10 +03:00
Salman Ahmed
5d180753fa
Complete connection once friends list is succesfully fetched
2020-12-17 13:44:30 +03:00
Salman Ahmed
904a4daa98
Add todo comment reminding of updating friends list along
2020-12-17 13:33:49 +03:00
Salman Ahmed
94175d0532
Use global friends list instead of always fetching
2020-12-17 13:33:17 +03:00
Salman Ahmed
449b9a21ae
Allow OverlayView fetching with no API requests required
2020-12-17 13:31:57 +03:00
Salman Ahmed
78ce6f1cd2
Add friends list to API providers
2020-12-17 13:30:55 +03:00
Dean Herbert
3ff70d331a
Mark recordingScore as nullable
2020-12-17 16:17:13 +09:00
Dean Herbert
81b0db0401
Remove double construction of empty replay object
2020-12-17 16:17:08 +09:00
Dean Herbert
fe76a00621
Merge branch 'master' into add-bundle-header
2020-12-17 16:13:40 +09:00
Dean Herbert
f13683dc90
Correctly account for max combo of the input, rather than the global
2020-12-17 16:05:41 +09:00
Dean Herbert
de9c21e7d1
Tenatively mark leaderboard class as LongRunningLoad until final integration
2020-12-17 15:48:53 +09:00
Dean Herbert
41d8b84bd7
Revert MaxBaseScore to being a private field (no longe required to be public)
2020-12-17 15:47:20 +09:00
Lucas A
cc0442a9a1
Fix CI inspections.
2020-12-16 20:42:30 +01:00
Lucas A
5d7294451f
Refactor Import() overload to take a list of import tasks instead.
2020-12-16 14:28:16 +01:00
smoogipoo
9571157841
Use ints for userid parameters
2020-12-16 20:04:36 +09:00
Dan Balasescu
7321e59c4b
Merge pull request #11186 from peppy/mania-clamp-hit-position-offset
...
Clamp osu!mania's HitPosition offset to match osu-stable implementation
2020-12-16 18:52:59 +09:00
Dean Herbert
39957382f7
Merge pull request #11099 from Game4all/android-add-import-support
...
Add support for importing files on Android
2020-12-16 18:25:08 +09:00
Dean Herbert
c002184768
Clamp osu!mania's HitPosition offset to match osu-stable implementation
...
Closes #11184 .
2020-12-16 18:08:19 +09:00
Dean Herbert
a01bb3d5a3
Better limit bindable exposure of data class
2020-12-16 16:20:29 +09:00
Dean Herbert
6bce587b59
Pass users in via constructor and correctly unbind on disposal
2020-12-16 16:20:29 +09:00
Dean Herbert
6e2131c164
Don't track local user score in any special way
2020-12-16 16:20:29 +09:00
Dean Herbert
09d0ceb766
Add testing setup to get a better visual idea of how scoreboard will work
...
fixup! Add method to ScoreProcessor to calculate score and accuracy from statistics
2020-12-16 16:20:29 +09:00
Dean Herbert
d009a0be51
Move class to final location
2020-12-16 16:20:29 +09:00
Dean Herbert
2954218897
Add method to ScoreProcessor to calculate score and accuracy from statistics
2020-12-16 16:20:29 +09:00
Dean Herbert
72d296f412
Add received timestamp and basic xmldoc for header class
2020-12-16 16:19:53 +09:00
Dean Herbert
84a0770789
Change frame header to use dictionary for compatibility
2020-12-16 15:35:46 +09:00
Dean Herbert
88b3bf06e8
Merge branch 'master' into add-bundle-header
2020-12-16 13:40:15 +09:00
Dean Herbert
ef57ae6f40
Merge pull request #11127 from peppy/realtime-multiplayer
...
Add client-side models and interfaces required for multiplayer
2020-12-16 13:22:01 +09:00
smoogipoo
31fe28b8b3
Remove IStatefulMultiplayerClient
2020-12-16 12:32:53 +09:00
smoogipoo
4cd290af11
Split server interfaces
2020-12-16 12:31:11 +09:00
Bartłomiej Dach
f5eab1047c
Merge branch 'master' into android-add-import-support
2020-12-15 21:26:12 +01:00
Dean Herbert
ea6c196f81
Remove unused using statement
2020-12-15 16:03:18 +09:00
Dean Herbert
e37089af5e
Further code cleanup
2020-12-15 15:44:56 +09:00
Dean Herbert
8b68ccc0ff
Rename class and move inside HUD namespace
2020-12-15 15:34:11 +09:00
Dean Herbert
dd5572b20a
Remove unnecessary methods and event
2020-12-15 15:26:20 +09:00
Dean Herbert
8362ad37e3
Bring up-to-date with code changes
2020-12-15 15:22:14 +09:00
Dean Herbert
70e5d4495a
Merge branch 'master' into ingame-leaderboard-general-implementation
2020-12-15 15:14:56 +09:00
Dean Herbert
3faf7db068
Merge pull request #10882 from PercyDan54/import-screen
...
Add File Import screen
2020-12-15 15:03:15 +09:00
Gagah Pangeran
f0e6b6eaf8
sort by ruleset id first then star diff
2020-12-15 11:09:09 +07:00
Dean Herbert
10ee8ed8e8
Reorder functions and simplify transform logic
2020-12-15 13:04:11 +09:00
Dean Herbert
0d4ac2f748
Refresh view after import completes
2020-12-15 12:57:28 +09:00
Dean Herbert
db4f2d5ffb
Refresh view after import succeeds
2020-12-15 12:52:45 +09:00
Dean Herbert
cafe81ab97
Further refactoring and bindable simplification
2020-12-15 12:52:38 +09:00
Dean Herbert
33f77f81f2
Disable the import button when no file is selected, rather than weird flash logic
2020-12-15 12:43:48 +09:00
Dean Herbert
cba4657021
Get handled file extensions from game itself, rather than duplicating locally
2020-12-15 12:37:41 +09:00
Dean Herbert
26fa010fed
Merge branch 'master' into import-screen
2020-12-15 12:37:27 +09:00
Dean Herbert
0d9c1cb5d3
Fix issues with data serialisation
2020-12-14 18:41:24 +09:00
Dean Herbert
c5112edd08
Add comment regarding the reasoning for encapsulating the task in another
2020-12-14 18:03:01 +09:00
Dean Herbert
f3e6c586f7
Change waitForReady back to private implementation
2020-12-14 17:59:04 +09:00
Dean Herbert
79768f0aa4
Update framework
2020-12-14 17:52:38 +09:00
Dean Herbert
29f3e8e486
Merge branch 'master' into fix-load-too-fast
2020-12-14 17:52:35 +09:00
Dean Herbert
ae22f75406
Bind replay recording score to judgement changes
2020-12-14 17:33:33 +09:00
Dean Herbert
64a2526678
Add header class and basic flow for propagating data updates
2020-12-14 17:33:23 +09:00
Dean Herbert
1793385e96
Pass a score to the replay recorder to allow reading more general scoring data
2020-12-14 16:52:14 +09:00
Dean Herbert
51e8a05f18
Seal SetRecordTarget method to simplify modification
2020-12-14 16:44:29 +09:00
Dean Herbert
558955d65d
Merge pull request #11167 from Firmatorenio/mania-legacyskin-scoreposition
...
Adjust mania judgement position in legacy skins according to their ScorePosition setting
2020-12-14 16:36:11 +09:00
Dean Herbert
0d7f53b0b9
Fix gameplay loading too fast the first time entering a beatmap
2020-12-14 14:21:21 +09:00
smoogipoo
2e88e283d8
Remove unused using
2020-12-14 13:20:51 +09:00
smoogipoo
028909353c
Revert one more change
2020-12-14 13:15:52 +09:00
smoogipoo
e01b41b7d1
Merge branch 'master' into mania-legacyskin-scoreposition
2020-12-14 13:10:48 +09:00
smoogipoo
1794bfeddb
Move offset into legacy mania judgement
2020-12-14 13:07:55 +09:00
smoogipoo
ca11eeefdf
Merge branch 'master' into mania-legacyskin-scoreposition
2020-12-14 11:25:34 +09:00
Firmatorenio
6b78045ff1
fix codefactor empty line complaint
2020-12-14 06:57:43 +06:00
Firmatorenio
c83c3e92fc
apply a private setter in a protected property
2020-12-14 01:53:20 +06:00
Firmatorenio
3741c2339a
simplify implementation and adjust the default values
2020-12-13 22:43:36 +06:00
Firmatorenio
2108844319
apply ScorePosition to the judgement container
2020-12-13 22:01:08 +06:00
Firmatorenio
f14e49c72e
fetch ScorePosition from the skin
2020-12-13 21:59:04 +06:00
Grrum
635608ee3d
Merge branch 'master' into selectionRotation
2020-12-13 08:01:44 -05:00
Graham Johnson
7d2b77cdbd
improve selection box rotation UX
2020-12-13 07:58:58 -05:00
Lucas A
08b79bb921
Store and return unstarted task for consumers to await on.
2020-12-12 17:12:15 +01:00
Bartłomiej Dach
51840121b9
Merge branch 'master' into update-framework
2020-12-12 13:02:34 +01:00
Dean Herbert
f20c5a2bda
Update framework (again)
2020-12-12 15:29:26 +09:00
Bartłomiej Dach
d457926523
Merge branch 'master' into fix-player-load-stuck-at-empty-screen
2020-12-11 20:49:27 +01:00
Bartłomiej Dach
01833e8c9b
Merge branch 'master' into fix-single-threaded-seeking
2020-12-11 20:14:28 +01:00
Dan Balasescu
31ae79a140
Merge pull request #11149 from peppy/add-cache-suffix-online-db
...
Add a simple cache-busting query string to online.db retrieval
2020-12-11 20:20:52 +09:00
Dean Herbert
aedb18b9f2
Make RulesetID non-nullable
2020-12-11 18:14:33 +09:00
Dean Herbert
b5f6baf341
Update framework
2020-12-11 18:03:48 +09:00
Dean Herbert
a35060ea7a
Add a simple cache-busting query string to online.db retrieval
...
As we are finally pushing updates for this database, this adds a minimum
level of guarantee that a client will request a new version (without
having to worry about multiple levels of server-side caching).
2020-12-11 17:56:02 +09:00
Dean Herbert
2dd5911256
Rename method to better match purpose
2020-12-11 14:44:01 +09:00
Dean Herbert
d3b2e2b36e
Change locking method to better allow cross-thread locking
2020-12-11 14:43:39 +09:00
Dean Herbert
719b08b22f
Make room setting's BeatmapID non-nullable
2020-12-11 14:11:42 +09:00
Dean Herbert
c1c0b9a9db
Add realtime to room categories
2020-12-11 14:10:45 +09:00
Dean Herbert
3fb41a20b5
Add room name to settings
2020-12-11 13:27:52 +09:00
Firmatorenio
b3d8347315
add support for ScorePosition into LegacyManiaSkin
2020-12-10 20:11:08 +06:00
Dean Herbert
01bd765384
Simplify pause handling by moving transform logic to bindable change event
2020-12-10 17:42:47 +09:00
Dean Herbert
679a550d83
Fix single threaded seeking not working due to unnecessary seek call
2020-12-10 17:42:28 +09:00
Dean Herbert
53da137425
Merge branch 'master' into net5.0
2020-12-10 17:14:21 +09:00
Dean Herbert
437c0506ce
Refactor to allow for special disposal handling to still work
2020-12-10 16:56:56 +09:00
Dean Herbert
67dd7be71a
Move cancelLoad call to OnResuming
...
This has no real effect; it just feels more readable to me.
2020-12-10 16:34:59 +09:00
Dean Herbert
491ab74059
Schedule pushWhenLoaded once ever
...
Previously it was being scheduled another time each OnResume, resulting
in more and more calls as a user retries the same beatmap multiple
times.
To simplify things I've decided to just schedule once ever. This means
that on resuming there's no 400ms delay any more, but in testing this
isn't really an issue (load time is still high enough that it will never
really be below that anyway). Even if gameplay was to load faster, the
animation should gracefully proceed.
2020-12-10 16:33:30 +09:00
Dean Herbert
cc996ec7fc
Ensure player is consumed at the point of scheduled push running the first time
2020-12-10 16:32:14 +09:00
Lucas A
6da854e37c
Move scheduled import logic to OsuGame.
2020-12-09 13:32:59 +01:00
Dean Herbert
c8e3c7e77b
Add stateful client interface
2020-12-09 17:45:07 +09:00
Dean Herbert
bb97eae8b1
Update outdated exception references in xmldoc
2020-12-09 16:02:37 +09:00
Dean Herbert
1e08b298b8
Remove unnecessary exception type
2020-12-09 16:01:09 +09:00
Dean Herbert
578e5cb92e
Also make InvalidStateException serializable
2020-12-09 15:59:13 +09:00
Dean Herbert
ab00a15555
Add JsonConstructor specs to allow for correct deserialization of readonly fields
2020-12-09 15:05:57 +09:00
Dean Herbert
bef52af1da
Move client state class to server implementation
...
Never used by client.
2020-12-09 15:05:33 +09:00
Dean Herbert
e09715d71e
Add ToString implementation to MultiplayerRoom for easier debug
2020-12-09 14:47:26 +09:00
Dean Herbert
c92c2cbfc0
Change exceptions which should be returned to the user to HubException type
...
See
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.signalr.hubexception?view=aspnetcore-5.0 .
2020-12-09 14:46:44 +09:00
Dean Herbert
48129c52d6
Change get-only property for now
2020-12-09 12:38:24 +09:00
Dean Herbert
427d41bab5
Add missing licence headers
2020-12-09 12:17:37 +09:00
Dean Herbert
0eb5b16454
Remove Empty() implementation for RoomSettings until otherwise necessary
2020-12-09 12:12:03 +09:00
Dean Herbert
1013749a83
Change user id type to int
2020-12-09 12:10:47 +09:00
Dean Herbert
fd4fa963ac
Standardise exception naming
2020-12-09 12:07:19 +09:00
Dean Herbert
2046cbe2d9
Add missing exceptions to server xmldoc
2020-12-09 12:05:50 +09:00
Dean Herbert
ff5150a14d
Fix typo in IMultiplayerClient xmldoc
2020-12-09 12:03:52 +09:00
Lucas A
aa7d22460d
Override Import() instead.
2020-12-08 19:46:55 +01:00
Lucas A
d8838ddbfb
Remove duplicated overload.
2020-12-08 18:48:50 +01:00
Lucas A
0610adca0a
Fix merge conflicts.
2020-12-08 18:03:58 +01:00
Dean Herbert
02f5fda330
Add missing final newline in file
2020-12-08 21:15:10 +09:00
Dean Herbert
aa68ae4ff2
Change locking mechanism for multiplayer rooms to use using-disposal pattern
...
Was required to lock over `await` calls server-side.
2020-12-08 20:43:18 +09:00
Dean Herbert
d76fabedf9
Add note about LoadRequested only being sent to a subset of room users
2020-12-08 20:43:18 +09:00
Dean Herbert
021a116093
Add extra xmldoc covering the fact that MatchStarted is received by all users
2020-12-08 20:43:18 +09:00
Dean Herbert
df908f90b2
Add exception to be thrown when an operation is requested requiring host when not host
2020-12-08 20:43:18 +09:00
Dean Herbert
2433838d58
Add methods covering match start / end
2020-12-08 20:43:18 +09:00
Dean Herbert
2aedd82e27
Document room states and remove unnecessary WaitingForResults state
2020-12-08 20:43:18 +09:00
Dean Herbert
147db0abe2
Fix client naming and xmldoc
2020-12-08 20:43:18 +09:00
Dean Herbert
60550b73f7
Add missing states and xmldoc for all states' purposes
2020-12-08 20:43:18 +09:00
Dean Herbert
8eccfa476c
Add loading states
2020-12-08 20:43:18 +09:00
Dean Herbert
345352be67
Mark PerformUpdate as an instant handle method (doesn't really help with anything)
2020-12-08 20:43:18 +09:00
Dean Herbert
11a7057289
Add notification flow for user state changes in room
2020-12-08 20:43:18 +09:00
Dean Herbert
dbe048cdc6
Add client method for notifying about host changes
2020-12-08 20:43:18 +09:00
Dean Herbert
a4ca8d2998
Ensure multiplayer rooms are instantiated with a room ID
2020-12-08 20:43:18 +09:00
Dean Herbert
71de7ce0a3
Add missing methods to server interface
2020-12-08 20:43:18 +09:00
Dean Herbert
5f5c0d5533
Return room model when joining
2020-12-08 20:43:18 +09:00
Dean Herbert
5d2ca7fc39
Make remaining model classes nullable and serializable
2020-12-08 20:43:18 +09:00
Dean Herbert
2365d65610
Move business logic out of MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
42b1e9d6a4
Add xmldoc coverage of MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
4f449ba821
Rename idle state
2020-12-08 20:43:18 +09:00
Dean Herbert
5a231cef15
Add thread safety for external operations on MultiplayerRoom
2020-12-08 20:43:18 +09:00
Dean Herbert
327799c263
Rename multiplayer server file to match class
2020-12-08 20:43:18 +09:00
Dean Herbert
b3bdaaa7b5
Move exceptions to common code
2020-12-08 20:43:18 +09:00
Dean Herbert
e193f8214d
Remove unnecessary room id from leave room request
2020-12-08 20:43:18 +09:00
Dean Herbert
882ace6efe
Make MultiplayerRoomUser equatable
2020-12-08 20:43:18 +09:00
Dean Herbert
baf16cfbc3
Add room settings related model and event flow
2020-12-08 20:43:18 +09:00
Dean Herbert
6e5846d91b
Fix serialization failure due to missing set
2020-12-08 20:43:18 +09:00
Dean Herbert
ff52a5ddc6
Add callbacks for join/leave events to notify other room occupants
2020-12-08 20:43:18 +09:00
Dean Herbert
ca86524c92
Add locking on join/leave operations
2020-12-08 20:43:18 +09:00
Dean Herbert
fdf025942b
Ensure room is locked when mutating users
2020-12-08 20:43:18 +09:00
Dean Herbert
8ebdb5723b
Add models for users and rooms
2020-12-08 20:43:18 +09:00
Dean Herbert
f4ccbbd092
Add basic server implementation
2020-12-08 20:43:18 +09:00
Dean Herbert
daed27460c
Add simple user state class
2020-12-08 20:43:18 +09:00
Dean Herbert
be4a668e0b
Add basic structure for multiplayer state and model components
2020-12-08 20:43:18 +09:00
Dan Balasescu
f9afb7f335
Merge branch 'master' into archive-model-manager-stream-import-support
2020-12-08 16:11:11 +09:00
Dean Herbert
58d7e41978
Enable nullable on ImportTask
2020-12-08 12:52:34 +09:00
Dean Herbert
77279a7e56
Update stale xmldoc on import method
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-12-08 12:48:59 +09:00
smoogipoo
10c1823534
Remove now unused files
2020-12-07 22:07:11 +09:00
smoogipoo
34f3672750
Make ctor protected
2020-12-07 22:04:41 +09:00
smoogipoo
f599427080
Implement TimeshiftFilterControl
2020-12-07 22:04:35 +09:00
smoogipoo
1b3836aeef
Re-implement multiplayer FilterControl
2020-12-07 21:59:26 +09:00
smoogipoo
5be0672fe9
Split out enums
2020-12-07 21:54:42 +09:00
smoogipoo
fa65874763
Limit room name to 100 characters
2020-12-07 21:09:38 +09:00
Dan Balasescu
87da6b3270
Merge pull request #11113 from ekrctb/fix-scrolling-wrong-layout-one-frame
...
Fix scrolling hit object displayed in wrong position for one frame
2020-12-07 18:48:24 +09:00
Dan Balasescu
cdc7ef8c15
Merge pull request #10925 from peppy/fix-multiple-playback-on-skin-change
...
Fix skinnable sounds playing more than once on skin change
2020-12-07 18:45:19 +09:00
Dean Herbert
eb38bc4b4c
Add the ability to import into ArchiveModelManagers from a stream
2020-12-07 18:09:18 +09:00
ekrctb
a548269c34
Fix scrolling hit object displayed in wrong position for one frame
2020-12-07 17:26:12 +09:00
Dean Herbert
a5e2509d52
Merge pull request #11105 from Joehuu/mod-settings-fade-in/out
...
Add fade in/out animations to mod settings container
2020-12-07 17:12:29 +09:00
Dean Herbert
454e94574c
Add corner rounding and positional transform
2020-12-07 16:43:07 +09:00
Dean Herbert
7253866e17
Move customisation panel to be in same area as main content
2020-12-07 16:42:55 +09:00
ekrctb
f4eb17d398
Update osu.Game/Overlays/Settings/Sections/Input/MouseSettings.cs
...
Set mouse confine mode at initialization
Co-authored-by: Dean Herbert <pe@ppy.sh>
2020-12-07 16:09:14 +09:00
ekrctb
2469608c10
Fix possible null reference due to bindable change before variable is initialized
2020-12-07 15:19:18 +09:00
Joehu
0f9b38da08
Add fade in/out animations to mod settings container
2020-12-06 11:35:14 -08:00
Bartłomiej Dach
f6d15b9757
Invert back-to-front logic
2020-12-06 18:59:38 +01:00
Lucas A
2ea8b105d5
Apply review suggestions
2020-12-06 18:46:30 +01:00
Bartłomiej Dach
fcd9483ffa
Merge branch 'master' into fix-multiple-playback-on-skin-change
2020-12-06 18:21:24 +01:00
Bartłomiej Dach
71edada623
Hide confine setting entirely in fullscreen
2020-12-05 22:15:41 +01:00
Bartłomiej Dach
08f23cc424
Revert leasing logic
2020-12-05 22:15:41 +01:00
Bartłomiej Dach
0a745144e3
Disable confine mode dropdown when full-screen
...
After hard-locking the mouse confine mode to `Always` in full-screen to
prevent confine issues from popping up, the confine mode dropdown in
settings had confusing UX due to seemingly having no effect when
full-screen.
2020-12-05 13:49:09 +01:00
Lucas A
dd21de0cd5
Fix code inspections.
2020-12-04 22:07:45 +01:00
Lucas A
825120fed3
Display import state in a notification.
2020-12-04 18:49:01 +01:00
PercyDan
60d8102a77
Merge branch 'master' into import-screen
2020-12-04 21:20:14 +08:00
Dean Herbert
9064ca9064
Merge pull request #11066 from ekrctb/fix-sample-expire
...
Fix DrawableHitObjects potentially expiring before their hit samples finish playback
2020-12-04 21:52:36 +09:00
MATRIX-feather
7104230ae3
Add "onCurrentDirectoryChanged"
2020-12-04 19:52:25 +08:00
Dean Herbert
7c0edb796e
Always confine mouse to screen when running fullscreen
2020-12-04 20:49:18 +09:00
Joehu
b8c284b34f
Fix one more key binding string not being sentence cased
2020-12-04 00:51:46 -08:00
Dean Herbert
a0f92628ac
Merge branch 'master' into fix-sample-expire
2020-12-04 13:49:08 +09:00
Dean Herbert
48c42e4247
Merge pull request #11083 from LittleEndu/recommend-if-filtered
...
Select recommended beatmap if last selection is filtered
2020-12-04 13:22:34 +09:00
Dean Herbert
5ded4b9faa
Merge branch 'master' into dho-remove-onparentreceived
2020-12-04 11:04:56 +09:00
Bartłomiej Dach
15d9147edd
Ensure equality member consistency for SampleInfo
...
The previous implementation of `SampleInfo`'s equality members was not
completely correct in its treatment of the `sampleNames` array. While
`Equals()` compared the values of `sampleNames` using `SequenceEqual()`,
therefore performing a structural check that inspects the contents of
both arrays, `GetHashCode()` used `HashCode.Combine()` directly on the
arrays, therefore operating on reference equality. This could cause the
pooling mechanism of samples to fail, as pointed out in #11079 .
To resolve, change the `GetHashCode()` implementation such that it also
considers the contents of the array rather than just the reference to
the array itself. This is achieved by leveraging
`StructuralEqualityComparer`.
Additionally, as a bonus, an array sort was added to the constructor of
`SampleInfo`. This is intended to be a "canonicalisation" processing
step for the array of sample names. Thanks to that sort, two instances
of `SampleInfo` that have the same sample names but permutated will also
turn out to be equal and have the same hash codes, given the
implementation of both equality members. This gives `SampleInfo`
set-like semantics.
2020-12-03 23:25:53 +01:00
Endrik Tombak
c25e2c3dd5
Select recommended beatmap if last selection is filtered
2020-12-03 23:13:14 +02:00
MATRIX-feather
fb080284d2
Simplify UI implementation
2020-12-04 04:10:08 +08:00
MATRIX-feather
85de1a1d20
Animation changes
2020-12-04 03:19:20 +08:00
MATRIX-feather
abe5a67bc5
Simplify implementation
2020-12-04 03:14:31 +08:00
Endrik Tombak
49be4978bd
Avoid calling ToList twice
2020-12-03 19:53:41 +02:00
Endrik Tombak
4cd2e207ac
Document getBestRulesetOrder
2020-12-03 19:53:06 +02:00
Endrik Tombak
48dad61a46
Apply review suggestions
2020-12-03 19:44:12 +02:00
Endrik Tombak
cbbcf36eaa
Merge branch 'master' of https://github.com/ppy/osu into present-recommended
2020-12-03 19:38:32 +02:00
Dan Balasescu
1d92800761
Merge pull request #11068 from peppy/fix-carousel-edge-masking
...
Fix beatmap carousel panels getting masked away when out of scroll bounds
2020-12-03 20:40:44 +09:00
smoogipoo
0bdf99b97a
Remove OnParentReceived()
2020-12-03 20:08:42 +09:00
smoogipoo
73e99718bc
Change order of OnParentReceived()
2020-12-03 20:06:26 +09:00
Dean Herbert
37d550f42a
Merge pull request #11035 from smoogipoo/add-playlist-length
2020-12-03 18:39:54 +09:00
Dean Herbert
1c15c4bcee
Merge pull request #11072 from peppy/update-framework
2020-12-03 18:32:45 +09:00
smoogipoo
8245bb85dc
Invoke on initial bind
2020-12-03 18:06:55 +09:00
smoogipoo
62b1e37f73
Use async overloads
2020-12-03 18:04:53 +09:00
smoogipoo
3e62da119e
Add to inspector also
2020-12-03 17:59:39 +09:00
Dean Herbert
c64343c7d7
Update framework
2020-12-03 17:42:41 +09:00
Dean Herbert
d7cfaa38f1
Merge branch 'master' into hit-sample-pooling
2020-12-03 17:08:13 +09:00
Dean Herbert
3550e5b30f
Add length display to room screen as well
2020-12-03 16:42:06 +09:00
smoogipoo
31f7f7072d
Fix song select panels not loading if partially offscreen
2020-12-03 15:13:20 +09:00
Dean Herbert
897f593b37
Fix beatmap carousel panels getting masked away when out of scroll bounds
...
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.
Closes #11067 .
2020-12-03 13:26:28 +09:00
ekrctb
6c46046c24
Fix DHO expires while hit sound is playing
2020-12-03 12:32:49 +09:00
Dean Herbert
a5bb194cb8
Merge pull request #11060 from FamousPig/fix-raw-input
...
Fix MouseHandler not being ignored when Raw Input is enabled
2020-12-03 12:15:51 +09:00
Bartłomiej Dach
7fd385efe6
Remove unused using directive
2020-12-02 20:01:58 +01:00
Leon Gebler
a2a10d4e13
Don't use nameof(MouseHandler)
2020-12-02 19:45:59 +01:00
Leon Gebler
bbde1f6b9c
Fix MouseHandler not being ignored when raw input is enabled
2020-12-02 18:56:59 +01:00
Bartłomiej Dach
2b828faecb
Merge branch 'master' into update-resources
2020-12-02 18:07:46 +01:00
Lucas A
827e957568
Allow importing osz files / osk files from Downloads directory.
2020-12-02 18:03:49 +01:00
smoogipoo
d5dccbc3d7
Fix spectator not being thread-safe
2020-12-02 19:13:09 +09:00
Dean Herbert
32188418f4
Update resources
2020-12-02 15:28:39 +09:00
Dan Balasescu
297283491a
Merge pull request #11031 from peppy/editor-fix-beat-snapping-new-beatmap
...
Fix editor beat snapping not working correctly when starting with a new beatmap
2020-12-02 15:17:09 +09:00
smoogipoo
e831c797f3
Merge branch 'master' into hit-sample-pooling
2020-12-02 14:45:24 +09:00
Dean Herbert
71a121389b
Merge pull request #11033 from smoogipoo/immutable-hit-samples
...
Make HitSampleInfo immutable
2020-12-02 14:44:26 +09:00
Dan Balasescu
bd4d4c5355
Merge pull request #10983 from ekrctb/pseudo-random
...
Add `StatelessRNG` to be used for randomly-looking visual elements
2020-12-02 14:42:22 +09:00
Dean Herbert
d6e0dc2216
Merge branch 'master' into editor-fix-beat-snapping-new-beatmap
2020-12-02 14:37:00 +09:00
Dean Herbert
e84dab8589
Move new beatmap construction above beat divisor binding
2020-12-02 14:36:52 +09:00
Dan Balasescu
2e0fdf9bca
Merge pull request #11011 from ekrctb/catch-pooling-initial
...
Initial implementation of hit object pooling in osu!catch ruleset
2020-12-02 13:02:22 +09:00
smoogipoo
2de3e655e0
Rename NextUlong -> NextULong
2020-12-02 12:59:45 +09:00
Dean Herbert
0cd404b6d3
Merge pull request #11051 from smoogipoo/update-dependencies
...
Update dependencies
2020-12-02 12:56:29 +09:00
Dan Balasescu
878ded4dd6
Merge pull request #11032 from peppy/editor-fix-ticks-updating-after-timing-change
...
Fix timeline not updating ticks correctly after arbitrary timing control point changes
2020-12-02 10:58:44 +09:00
smoogipoo
2150cf1c52
Rename parameters
2020-12-02 10:55:48 +09:00
smoogipoo
e19ef9627a
Fix potentially incorrect override
2020-12-02 10:54:26 +09:00
smoogipoo
9ac310c1c4
Merge remote-tracking branch 'upstream/dependabot/nuget/Dapper-2.0.78' into update-dependencies
2020-12-02 10:37:40 +09:00
smoogipoo
4a5b707104
Merge remote-tracking branch 'upstream/dependabot/nuget/Sentry-2.1.8' into update-dependencies
2020-12-02 10:37:21 +09:00
smoogipoo
728574f0c7
Merge remote-tracking branch 'upstream/dependabot/nuget/System.ComponentModel.Annotations-5.0.0' into update-dependencies
2020-12-02 10:37:19 +09:00
Dan Balasescu
9d71095a2b
Merge pull request #11004 from Yoyolick/master
...
Add ability to customise key binding for in-game overlay toggle
2020-12-02 10:34:24 +09:00
dependabot-preview[bot]
989ddd40b4
Bump System.ComponentModel.Annotations from 4.7.0 to 5.0.0
...
Bumps [System.ComponentModel.Annotations](https://github.com/dotnet/runtime ) from 4.7.0 to 5.0.0.
- [Release notes](https://github.com/dotnet/runtime/releases )
- [Commits](https://github.com/dotnet/runtime/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:13 +00:00
dependabot-preview[bot]
249793d10a
Bump Sentry from 2.1.6 to 2.1.8
...
Bumps [Sentry](https://github.com/getsentry/sentry-dotnet ) from 2.1.6 to 2.1.8.
- [Release notes](https://github.com/getsentry/sentry-dotnet/releases )
- [Changelog](https://github.com/getsentry/sentry-dotnet/blob/main/CHANGELOG.md )
- [Commits](https://github.com/getsentry/sentry-dotnet/compare/2.1.6...2.1.8 )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:09 +00:00
dependabot-preview[bot]
64dfa9f928
Bump Dapper from 2.0.35 to 2.0.78
...
Bumps [Dapper](https://github.com/StackExchange/Dapper ) from 2.0.35 to 2.0.78.
- [Release notes](https://github.com/StackExchange/Dapper/releases )
- [Commits](https://github.com/StackExchange/Dapper/commits )
Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-02 00:56:06 +00:00
Pennek
477de1bab0
change min/max values
2020-12-02 01:11:24 +01:00
Lucas A
005fa3a7ee
Add ability to import files from a stream.
2020-12-01 20:28:15 +01:00
Bartłomiej Dach
94a8784e04
Allow editor change handler to be null
2020-12-01 20:08:31 +01:00
smoogipoo
598572195c
Add playlist length to match settings overlay
2020-12-01 19:57:25 +09:00
Dean Herbert
76035718bb
Merge pull request #11034 from peppy/update-framework
...
Update framework (with SDL2 default)
2020-12-01 18:32:10 +09:00
smoogipoo
2840405112
Volume should be 0 by default
2020-12-01 18:14:14 +09:00
smoogipoo
6b4a6c12c8
Fix bad equality comparer implementations
2020-12-01 18:13:53 +09:00
smoogipoo
c61f00525d
Ignore lookup types for JSON serialisation
2020-12-01 18:13:53 +09:00
smoogipoo
17560aeeea
Volume should be 0 by default
2020-12-01 18:09:28 +09:00
smoogipoo
dda4d76d72
Fix bad equality comparer implementations
2020-12-01 18:09:21 +09:00
smoogipoo
b780fdbe4c
Ignore lookup types for JSON serialisation
2020-12-01 18:08:59 +09:00
Dan Balasescu
1cea39ed55
Merge pull request #11017 from peppy/fix-song-select-temporary-selection-loss
...
Fix current beatmap temporarily becoming empty during ruleset change
2020-12-01 17:55:08 +09:00
Dean Herbert
285e62be9a
Bring code in line with SDL2 defaults
2020-12-01 17:47:07 +09:00
Dean Herbert
d5a60ed335
Update framework
2020-12-01 17:30:42 +09:00
smoogipoo
4900589af4
Remove unused method
2020-12-01 17:02:45 +09:00
Dean Herbert
190c6ef45e
Fix timeline not updating ticks correctly after arbitrary timing control point changes
2020-12-01 16:44:08 +09:00
Dean Herbert
2b268ee012
Fix editor beat snapping not working correctly when starting with a new beatmap
2020-12-01 16:16:26 +09:00
smoogipoo
2bb7484608
Merge branch 'immutable-hit-samples' into hit-sample-pooling
2020-12-01 16:05:28 +09:00
smoogipoo
199710b941
Implement equality comparers for HitSampleInfo
2020-12-01 16:04:08 +09:00
smoogipoo
5760e1c1fc
Make HitSampleInfo immutable
2020-12-01 15:37:51 +09:00
Dean Herbert
a147b7186d
Remove unnecessary call to updateVisibility
2020-12-01 14:01:34 +09:00
Dean Herbert
63ff722963
Fix code formatting
2020-12-01 14:00:54 +09:00
Ryan Zmuda
8f6607ffec
Merge branch 'master' into master
2020-11-30 21:42:15 -05:00
Ryan Zmuda
e102f2e8fa
Moved enum to bottom, change defualt bind to Shift-Tab, Fixed Notification
2020-11-30 21:38:16 -05:00
ekrctb
604619ba47
Generalize legacy skin player test.
2020-12-01 09:49:04 +09:00