1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-19 20:02:54 +08:00
Commit Graph

23705 Commits

Author SHA1 Message Date
Dean Herbert
5fbed05d04
Merge pull request #11551 from smoogipoo/fix-leave-room-race-2
Fix client potentially not leaving a room on exiting multiplayer
2021-02-08 19:23:14 +09:00
smoogipoo
a08c51f213 Remove duplicate code 2021-02-08 19:23:10 +09:00
Lucas A
f0dfa9f8f3 Use the newest config file available (where the local username matches the filename) 2021-02-08 11:12:25 +01:00
smoogipoo
6e34e7d750 Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-08 19:08:53 +09:00
smoogipoo
18e3f8c233 Sort beat lengths rather than linear search 2021-02-08 19:03:19 +09:00
smoogipoo
b40b159acb Round beatlength 2021-02-08 18:52:50 +09:00
smoogipoo
69ca440ae5 Merge branch 'master' into more-accurate-most-common-bpm 2021-02-08 18:40:58 +09:00
Joehu
5e7823b289 Fix attributes content being zero size and disappearing after being half off-screen 2021-02-08 01:37:34 -08:00
Joehu
6b26a18a23 Fix attributes header not being aligned with content in editor timing mode 2021-02-08 01:34:32 -08:00
smoogipoo
fb8e31a303 Fix incorrect connection building due to bad merges 2021-02-08 17:52:03 +09:00
Dean Herbert
59dc148a48
Merge pull request #11680 from frenzibyte/instant-pause-on-focus-loss
Make pausing on window focus loss instantaneous
2021-02-08 17:00:17 +09:00
Dean Herbert
9e0724b138 Remove unnecessary double resolution of OsuGame 2021-02-08 15:58:41 +09:00
Dan Balasescu
e8f08b09dc
Merge pull request #11552 from vmaggioli/zero-spinner-slider
Fix being able to set zero or negative hitobject duration via timeline
2021-02-08 14:52:35 +09:00
Dean Herbert
93f1a3c1bf
Merge branch 'master' into instant-pause-on-focus-loss 2021-02-08 14:31:40 +09:00
smoogipoo
da85fb372d Merge branch 'master' into fix-multiplayer-client-connection-reliability 2021-02-08 13:43:24 +09:00
Joehu
d74a1437be Fix player loader metadata not being centred 2021-02-07 15:14:08 -08:00
Bartłomiej Dach
0229851c9c Apply rounding to ModTimeRamp to improve SPM consistency 2021-02-07 19:02:09 +01:00
Bartłomiej Dach
7daeacaff2 Add and implement IApplicableToRate interface 2021-02-07 18:35:34 +01:00
Bartłomiej Dach
68c20a2a37 Allow autoplay score generation to access mod list 2021-02-07 18:35:34 +01:00
Salman Ahmed
d0ca2b99a8 Remove unnecessary injected dependency 2021-02-06 20:57:01 +03:00
Salman Ahmed
40ddccf0c7 Do not consider replays for "pause on focus lost"
Replays are not pausable as can be seen in the `canPause` check.
2021-02-06 20:56:08 +03:00
Salman Ahmed
c9db0bf886 Call break time update when loaded 2021-02-06 20:54:13 +03:00
Lucas A
f6d08f54e6 Use the oldest user config file available when there happens to be multiple config files available. 2021-02-05 21:19:13 +01:00
Salman Ahmed
f29938e15d Make last binding game activity more sensible 2021-02-05 20:39:57 +03:00
Dean Herbert
34a1918d03
Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-06 00:27:55 +09:00
Vincent Maggioli
96652e07cd
Merge branch 'master' into zero-spinner-slider 2021-02-05 09:40:55 -05:00
Dean Herbert
dd4207cb4e
Merge pull request #11661 from peppy/playlist-max-room-attempts
Add support for setting the maximum attempt count for a playlist
2021-02-05 23:40:38 +09:00
vmaggioli
5061231e59
Switch to beat length 2021-02-05 09:39:14 -05:00
Dean Herbert
7f82a06a61 Remove no longer used using directive 2021-02-05 23:08:31 +09:00
Dean Herbert
0679901e4d Update error handling 2021-02-05 22:53:40 +09:00
Dean Herbert
3ca64a1cb2 Merge branch 'master' into playlist-max-room-attempts 2021-02-05 22:13:13 +09:00
smoogipoo
95ad7ea8f7 Fix mods on participant panels flashing when changed 2021-02-05 18:44:33 +09:00
Dean Herbert
f338fa114b
Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-05 18:02:40 +09:00
Dean Herbert
dad32da415 Add rate limiting on sending download progress updates 2021-02-05 17:34:05 +09:00
Dean Herbert
110458612d Avoid handling null playlist items when updating avaialability display 2021-02-05 17:19:23 +09:00
Dean Herbert
791cbb7f03 Don't reset ready state if the map is locally available 2021-02-05 17:17:29 +09:00
Dean Herbert
630c5bb747 Avoid potential crashes when lease is held on SelectedMods 2021-02-05 16:46:21 +09:00
Dean Herbert
3e750feaa4 Subclass LocalPlayerModSelectOverlay to correctly deselect incompatible mods on free mod selection 2021-02-05 16:42:35 +09:00
Salman Ahmed
8d18c7e929 Fix BreakTracker.IsBreakTime not updated properly on breaks set
Causes a pause from focus lose when playing a beatmap that has a break section at the beginning, due to `IsBreakTime` incorrectly set to `false`
2021-02-05 10:28:35 +03:00
Salman Ahmed
e1789c29b1 Use Pause() instead of performUserRequestedExit() to avoid unexpected operations 2021-02-05 10:28:13 +03:00
Dean Herbert
be91f54349 Add back edge case with comment 2021-02-05 16:19:45 +09:00
Dean Herbert
9ba5ae3db7 Remove lots of unnecessary client side logic 2021-02-05 16:17:02 +09:00
Dean Herbert
1b6a052798 Refactor logic to suck a bit less 2021-02-05 15:46:03 +09:00
Dean Herbert
d1f9aa52a4 Inline variable 2021-02-05 15:33:48 +09:00
Dean Herbert
4bc324f040 Rename parameter to make more sense 2021-02-05 15:29:32 +09:00
Dean Herbert
9e9e382bee Merge branch 'master' into user-beatmap-downloading-states-2 2021-02-05 15:27:17 +09:00
Dean Herbert
2fc3a97f56
Merge pull request #11516 from frenzibyte/ready-button-clean-up
Replace ready button beatmap logic with using `MultiplayerBeatmapTracker` instead
2021-02-05 15:09:25 +09:00
Salman Ahmed
730e66f0ee Make pausing on window focus lose instant 2021-02-05 09:07:59 +03:00
Dean Herbert
de8724b1f6 Use AddRangeInternal for simplicity, but disallow ClearInternal for safety 2021-02-05 14:39:25 +09:00
Dean Herbert
fc37d8b7df Refactor content redirection logic to be easier to parse 2021-02-05 14:25:19 +09:00
Dean Herbert
c5fa818630 Actually handle case of failing to achieve lock on SemaphoreSlim 2021-02-05 14:08:13 +09:00
Dean Herbert
cd67fe1091 Merge branch 'master' into fix-multiplayer-client-connection-reliability 2021-02-05 14:04:57 +09:00
Dean Herbert
9258836f10
Merge pull request #11641 from smoogipoo/freemods
Add support for optional per-user mods in multiplayer (aka freemod)
2021-02-05 13:59:30 +09:00
Salman Ahmed
78ea2d50bb Merge branch 'master' into ready-button-clean-up 2021-02-05 07:23:11 +03:00
smoogipoo
df2da5950f Add back vertical spacer 2021-02-05 13:09:13 +09:00
smoogipoo
2e85ce5b82 Rename UserMods -> Mods for MultiplayerRoomUser 2021-02-05 12:40:16 +09:00
smoogipoo
85e63afcb4 Rename Mods -> RequiredMods 2021-02-05 12:36:25 +09:00
Dan Balasescu
a71d6a4c97
Merge branch 'master' into multiplayer-beatmap-tracker 2021-02-05 12:25:36 +09:00
smoogipoo
a2fdba3e51 Rename to OnlinePlayBeatmapAvailabilityTracker 2021-02-05 12:24:38 +09:00
Salman Ahmed
d62bbbb762
Enhance documentation
Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2021-02-05 00:38:56 +03:00
Joehu
4e530d2eaf Remove old alpha hack from nub fill 2021-02-04 13:05:37 -08:00
smoogipoo
dbea6d4cee Remove unused using 2021-02-05 00:57:23 +09:00
smoogipoo
18e5081523 Fix test failures 2021-02-05 00:42:38 +09:00
smoogipoo
cf5233c6ab Merge branch 'master' into freemods 2021-02-05 00:27:14 +09:00
Dean Herbert
06a3a72e43
Merge pull request #11670 from smoogipoo/mania-constant-speed-mod
Implement mania constant speed mod
2021-02-05 00:26:04 +09:00
Dean Herbert
4730cf02d0
Merge pull request #11666 from smoogipoo/freemod-select-overlay
Implement the freemod selection overlay
2021-02-05 00:25:43 +09:00
Dean Herbert
0750c3cb6a Add back immediate deselection flow to ensure user selections can occur without contention 2021-02-04 23:44:46 +09:00
Dean Herbert
794f9e5e93 Add missing centre anchor/origin 2021-02-04 22:53:41 +09:00
Dan Balasescu
e374aebc5f
Merge branch 'master' into fix-mod-settings-serlisation-signalr50 2021-02-04 22:27:54 +09:00
Dean Herbert
8f2f1a444f Avoid resetting selection on deselecting incompatibile types 2021-02-04 19:55:09 +09:00
Dean Herbert
bf239f8bef Flush animation on closing mod overlay 2021-02-04 19:12:37 +09:00
Dean Herbert
a2674f3c3f Add comments 2021-02-04 18:58:56 +09:00
Dean Herbert
223b858227 Ramp the animation speed 2021-02-04 18:56:40 +09:00
Dean Herbert
f23ca7c7cf Centralise selection animation logic 2021-02-04 18:10:55 +09:00
Dean Herbert
4bfe3aabdc Simplify sound debounce logic 2021-02-04 17:06:11 +09:00
Dean Herbert
daf7ab9422 Apply the expected font to the checkbox's label 2021-02-04 16:58:15 +09:00
Dean Herbert
b32e10514d Fix padding on label text not being double-applied (meaning no padding between nub and text) 2021-02-04 16:58:02 +09:00
Dean Herbert
48a58e790e Don't specify arbitrary width 2021-02-04 16:57:39 +09:00
Dean Herbert
3148bbda2a Allow custom font to be used in OsuCheckbox 2021-02-04 16:54:17 +09:00
Dean Herbert
b2f1e133f8 Allow checkbox nub to be moved to the left 2021-02-04 16:53:55 +09:00
Dean Herbert
d165344070 Force newer version of MessagePack for fixed iOS compatibility 2021-02-04 15:19:57 +09:00
Dean Herbert
76cfeae7e9 Add support for Bindable int in config 2021-02-04 15:10:56 +09:00
Salman Ahmed
db3f9e7cbe Apply documentation suggestion 2021-02-04 02:20:18 +03:00
Bartłomiej Dach
cb87da2bb8
Merge branch 'master' into freemod-select-overlay 2021-02-03 22:19:35 +01:00
Dean Herbert
b06f4ee124
Merge branch 'master' into solo-mod-select-overlay 2021-02-03 23:44:08 +09:00
Dean Herbert
17072a5dda
Merge pull request #11664 from smoogipoo/modselect-dynamic-isvalid
Make it possible to change IsValidMod in mod selection
2021-02-03 23:43:36 +09:00
Dan Balasescu
75801097ea
Merge pull request #11632 from bdach/ongoing-tracker-fix-more
Fix ongoing operation tracker double-returning internal lease after screen exit
2021-02-03 23:17:53 +09:00
Dean Herbert
2a52851e68
Merge branch 'master' into modselect-dynamic-isvalid 2021-02-03 22:11:33 +09:00
Dean Herbert
77735ac9dc
Merge pull request #11663 from smoogipoo/modselect-disable-stacking
Allow mod buttons to not be stacked
2021-02-03 22:11:02 +09:00
Dean Herbert
b27557f278
Merge pull request #11667 from smoogipoo/fix-mod-icon
Fix ModIcon not updating background colour correctly
2021-02-03 22:06:29 +09:00
Dean Herbert
e3d323989c Switch to SignalR 5.0 and implement using better API 2021-02-03 22:04:14 +09:00
Dean Herbert
9d7164816c Add reverse binding for max attempts (currently unused but good for safety) 2021-02-03 22:02:40 +09:00
Dean Herbert
3fe190cfbe Show original error message on web exceptions (or is no message is returned) 2021-02-03 22:00:16 +09:00
Dan Balasescu
f24a6178bc
Merge branch 'master' into ongoing-tracker-fix-more 2021-02-03 21:00:45 +09:00
smoogipoo
65d45ec74c Unschedule cancellation 2021-02-03 20:50:22 +09:00
Dean Herbert
1380717ebb Use PrimitiveObjectFormatter to simplify code 2021-02-03 20:19:27 +09:00
Dean Herbert
d3f056f188 Add missing licence header 2021-02-03 20:06:25 +09:00
Dean Herbert
75f1ebd5f9 Add custom resolver for mod settings dictionary 2021-02-03 19:46:47 +09:00
smoogipoo
8295fb9081 Implement mania constant speed mod 2021-02-03 16:28:22 +09:00
smoogipoo
21d5f842fc Re-layout to reduce movement 2021-02-03 14:53:55 +09:00
Dan Balasescu
2a4488c11b
Merge branch 'master' into freemods 2021-02-03 14:12:39 +09:00
Bartłomiej Dach
fc84ec1313 Move anchor specification to central place 2021-02-02 22:18:14 +01:00
Bartłomiej Dach
181d2c672b Fix outdated comment 2021-02-02 22:05:25 +01:00
Bartłomiej Dach
fe7f4f7222
Merge branch 'master' into playlists-item-visual-improvements 2021-02-02 21:26:16 +01:00
Salman Ahmed
62d0036c81 Fix using private constructor on MessagePack object 2021-02-02 17:45:11 +03:00
Salman Ahmed
50d57a3931 Move tracker loading into BDL 2021-02-02 17:22:48 +03:00
Dean Herbert
abb32d11b5
Merge pull request #11662 from smoogipoo/refactor-mod-sections
Refactor mod sections and make them overridable
2021-02-02 23:12:34 +09:00
smoogipoo
aeb3ed8bb3 Renamespace footer button 2021-02-02 21:46:22 +09:00
smoogipoo
6453367a9c Merge branch 'freemod-select-overlay' into freemods 2021-02-02 21:43:35 +09:00
Dean Herbert
b76116d943
Merge branch 'master' into modselect-disable-stacking 2021-02-02 21:41:33 +09:00
smoogipoo
097ce37e96 Merge branch 'fix-mod-icon' into freemods 2021-02-02 21:37:24 +09:00
smoogipoo
921f008217 Fix ModIcon not updating background colour correctly 2021-02-02 21:35:08 +09:00
smoogipoo
6ff8e8dd37 Disable a few mods by default 2021-02-02 21:29:08 +09:00
smoogipoo
5a56e2ba4b Fix sound duplication due to checkbox 2021-02-02 21:29:00 +09:00
smoogipoo
f25535548a Fix buzzing on select all/deselect all 2021-02-02 21:20:16 +09:00
smoogipoo
643c0605d8 Implement the freemod selection overlay 2021-02-02 21:14:38 +09:00
smoogipoo
8b3a85daa7 Merge branch 'refactor-mod-sections' into freemod-select-overlay 2021-02-02 21:09:51 +09:00
smoogipoo
728f8599b2 Move incompatible mod deselection to SoloModOverlay 2021-02-02 21:06:32 +09:00
smoogipoo
e58ece9e10 Make ModSelectOverlay abstract 2021-02-02 21:06:04 +09:00
smoogipoo
50e92bd0ed Fix selection not being preserved when IsValidMod changes 2021-02-02 20:50:54 +09:00
smoogipoo
10ceddf3ff Make IsValidMod adjustable 2021-02-02 20:47:50 +09:00
smoogipoo
75f81bfa06 Add back mod validation 2021-02-02 20:35:41 +09:00
smoogipoo
6d620264f4 Allow mod buttons to not be stacked 2021-02-02 20:27:41 +09:00
smoogipoo
3741f05ab3 Refactor mod sections and make them overridable 2021-02-02 20:11:40 +09:00
Dean Herbert
ac5662b1aa
Merge branch 'master' into mod-consistency-function 2021-02-02 20:01:42 +09:00
Dean Herbert
4ecbe058f7
Merge pull request #11640 from smoogipoo/add-mod-utils
Add ModUtils class for validating mod usages
2021-02-02 20:01:20 +09:00
smoogipoo
2dece12a7c Disable/disallow freemods on incompatible/selected mods 2021-02-02 19:57:42 +09:00
Dean Herbert
41593ff09e Privatise protected property setters 2021-02-02 19:14:44 +09:00
smoogipoo
4fee762a4f Merge branch 'add-mod-utils' into freemods 2021-02-02 19:02:45 +09:00
smoogipoo
a2e3b1c0e4 Move Mods reset code to OnlinePlaySongSelect 2021-02-02 19:02:39 +09:00
smoogipoo
180af3c7f8 Add codeanalysis attribute 2021-02-02 19:02:09 +09:00
smoogipoo
8cc4de2396 Merge branch 'add-mod-utils' into freemods 2021-02-02 18:53:21 +09:00
Dean Herbert
fc3adaf612 Show maximum attempt count in room display (when not unlimited) 2021-02-02 18:45:05 +09:00
Dean Herbert
9b209d67dc Match size of participants text with host display 2021-02-02 18:45:05 +09:00
Dean Herbert
96d20bf607 Reduce height of ModeTypeInfo to match adjacent text sections 2021-02-02 18:45:05 +09:00
Dean Herbert
90acdd4361 Display the correct error message on score submission failure
The server will return a valid error message in most cases here. We may
eventually want to add some fallback message for cases an error may
occur that isn't of
[InvariantException](3169b33ccc/app/Exceptions/InvariantException.php (L9-L10)) type, but I'm not 100% sure
how to identify these just yet.
2021-02-02 18:45:05 +09:00
Dean Herbert
6fdaf02518 Hook up room-level max attempts to UI 2021-02-02 18:45:05 +09:00
smoogipoo
052cf1abae Reuse existing method 2021-02-02 18:42:02 +09:00
smoogipoo
5881b8be96 Merge branch 'add-mod-utils' into mod-consistency-function 2021-02-02 18:41:35 +09:00
Dean Herbert
c41c854ce3
Merge pull request #11637 from frenzibyte/improve-chat-autoscroll
Improve auto-scrolling logic for drawable channels
2021-02-02 18:40:25 +09:00
smoogipoo
12f52316cd Prevent multiple enumeration 2021-02-02 18:37:11 +09:00
smoogipoo
1df412a03c Fix incorrect handling of multi-mod incompatibilities 2021-02-02 18:31:08 +09:00
smoogipoo
d0655c21c6 Simplify implementation of CheckCompatibleSet 2021-02-02 18:18:57 +09:00
smoogipoo
8232d9d2fe Fix incorrect implementation 2021-02-02 18:01:38 +09:00
Dean Herbert
40233fb47c Make font bolder 2021-02-02 17:09:59 +09:00
Dean Herbert
6d9ac4d0f0 Increase darkness of gradient on buttons to make text readability (slightly) better 2021-02-02 16:57:27 +09:00
Dean Herbert
fb52ac8c69 Share remove from playlist button design with adjacent download button 2021-02-02 16:57:08 +09:00
Dean Herbert
bdc05af4b7 Make playlist settings area taller to better match screen aspect ratio 2021-02-02 16:30:45 +09:00
Dean Herbert
a76314a876 Use Update instead of UpdateAfterChildren (no need for the latter) 2021-02-02 15:57:17 +09:00
Dean Herbert
bb0753f68d Use a better method of cancelling user scroll 2021-02-02 15:44:03 +09:00
Dean Herbert
398ab9c2c2 Use UserTrackingScrollContainer instead 2021-02-02 15:29:38 +09:00
Dean Herbert
ed63b571d2 Add "new" override for ScrollToEnd To UserTrackingScrollContainer 2021-02-02 15:16:28 +09:00
Dean Herbert
1c645601d4 Fix typo in xmldoc 2021-02-02 14:14:31 +09:00
smoogipoo
0bce9d6833 Clear freemods when ruleset is changed 2021-02-02 13:54:58 +09:00
smoogipoo
4194c9308e Add xmldoc 2021-02-02 13:50:05 +09:00
smoogipoo
173e20938c Revert changes to ModDisplay 2021-02-02 13:49:58 +09:00
smoogipoo
53cfc3bc6e Make ModIcon a bit more safe 2021-02-02 13:42:45 +09:00
smoogipoo
1d3dff8c75 Refactor ModDisplay flag usage 2021-02-02 13:41:01 +09:00
smoogipoo
87f9e46b16 Add option to select all 2021-02-02 13:37:25 +09:00
smoogipoo
9c3c0895cf Hide customise button + multiplier label 2021-02-02 13:36:58 +09:00
Dean Herbert
0d5353008c Update sentry sdk usage 2021-02-02 13:34:37 +09:00
smoogipoo
7a14e14e67 Refactor condition
This won't make any noticeable difference, but is the more correct way
to handle MultiMod because flattening works through infinite recursion levels.
2021-02-02 12:54:26 +09:00
smoogipoo
b54f65c282 Exclude more mods from multiplayer 2021-02-02 12:48:15 +09:00
smoogipoo
4cf52077b6 Make checkbox also respond to all mods selected 2021-02-02 11:11:28 +09:00
dependabot-preview[bot]
216b0d89a7
Bump Sentry from 2.1.8 to 3.0.1
Bumps [Sentry](https://github.com/getsentry/sentry-dotnet) from 2.1.8 to 3.0.1.
- [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.8...3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 19:16:51 +00:00
Salman Ahmed
5c28c030c8 Unconditionally set "autoscroll" state 2021-02-01 22:08:57 +03:00
Salman Ahmed
15fcabb128
Add documentation to auto-scroll leniency
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-02-01 22:04:44 +03:00
dependabot-preview[bot]
286726feb0
Bump SharpCompress from 0.26.0 to 0.27.1
Bumps [SharpCompress](https://github.com/adamhathcock/sharpcompress) from 0.26.0 to 0.27.1.
- [Release notes](https://github.com/adamhathcock/sharpcompress/releases)
- [Commits](https://github.com/adamhathcock/sharpcompress/compare/0.26...0.27.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 17:44:30 +00:00
Dan Balasescu
c70dd2edfc
Merge pull request #11569 from peppy/fix-editor-new-beatmap-crash
Fix a potential crash when exiting the editor before a new beatmap is added to the database
2021-02-01 21:01:51 +09:00
Dean Herbert
425dc8a210 Ensure mods are always in a valid state at a game level 2021-02-01 20:20:19 +09:00
Dean Herbert
ead8262257 Add function to check for (and return) invalid mods 2021-02-01 20:20:10 +09:00
smoogipoo
97e3023df9 Renamespace/rename MatchSongSelect -> PlaylistsSongSelect 2021-02-01 20:16:58 +09:00
smoogipoo
97247b7a67 Fix unset key 2021-02-01 19:59:18 +09:00
smoogipoo
b9832c1b2d Add ModUtils class for validating mod usages 2021-02-01 19:37:24 +09:00
smoogipoo
e5ca9b1e50 Remove usage of removed method 2021-02-01 19:28:33 +09:00
smoogipoo
9c4c47599f Merge branch 'master' into freemods 2021-02-01 19:28:10 +09:00
smoogipoo
76ebb3811a Fix mod icons potentially having incorrect colours 2021-02-01 19:08:52 +09:00
smoogipoo
ee92ec0a5c Disallow local user mod customisation 2021-02-01 18:54:47 +09:00
smoogipoo
89a42d60fb General cleanup 2021-02-01 18:50:32 +09:00
smoogipoo
3a906a89fc Pin mod position in participant panels 2021-02-01 18:27:15 +09:00
smoogipoo
51cb288717 Reduce mod selection height 2021-02-01 18:18:59 +09:00
smoogipoo
e134af82f5 Stack freemods for the local user 2021-02-01 18:16:38 +09:00
smoogipoo
3e74f8fd9e Disable customisation of freemods, move stacking to property 2021-02-01 18:11:20 +09:00
smoogipoo
3cd30d284e Renamespace 2021-02-01 18:08:49 +09:00
smoogipoo
f538963607 Extra mods -> user mods 2021-02-01 17:57:32 +09:00
smoogipoo
ac2a995041 Add user and panel states 2021-02-01 17:54:56 +09:00
Dean Herbert
328bd191d4
Merge pull request #11561 from Mysfit/fix-storyboard-samples
Fix storyboard samples continuing to play when the beatmap is paused or intro is skipped
2021-02-01 17:48:08 +09:00
Dean Herbert
1d8de2f718 Rename class to better match purpose 2021-02-01 17:32:54 +09:00
Dean Herbert
fabb0eeb29 Add signalr messagepack key attribute 2021-02-01 17:27:14 +09:00
Dean Herbert
c73a05d0b5
Merge branch 'master' into multiplayer-beatmap-tracker 2021-02-01 17:24:24 +09:00
Salman Ahmed
49e62c3a4b
Apply documentation changes
Co-authored-by: Dean Herbert <pe@ppy.sh>
2021-02-01 11:02:08 +03:00
Dean Herbert
05982f42ab Add more comprehensive commenting and simplify base call logic
We can call the base method regardless for better safety. Worst case
it's just going to run `Stop()` twice anyway.
2021-02-01 16:43:54 +09:00
Dean Herbert
25614c7923
Merge pull request #11636 from bdach/fix-time-ramp-calculation
Fix incorrect speed change calculation in time ramp mods
2021-02-01 16:32:44 +09:00
smoogipoo
0909c73ead Once again disallow DT/etc as allowable mods 2021-02-01 15:07:56 +09:00
smoogipoo
b43e529964 Fix allowed mods being copied into required mods 2021-02-01 15:07:43 +09:00
smoogipoo
426569c2a9 Move common song select implementation for online play 2021-02-01 14:57:39 +09:00
smoogipoo
b846146f16 Update mods when resuming room subscreen 2021-02-01 13:58:44 +09:00
smoogipoo
4ae10b1e1c Add initial UI for selecting extra mods 2021-02-01 13:40:59 +09:00
smoogipoo
e02e3cf19a Disallow selecting DT/HT/WU/WD as allowable freemods 2021-02-01 13:35:48 +09:00
smoogipoo
797a810287 Allow unstacking mods 2021-02-01 13:24:56 +09:00
smoogipoo
230b347c1e Move ModSelectOverlay.IsValidMod to a property 2021-02-01 12:18:11 +09:00
Salman Ahmed
e806e5bcd1 Improve robustness of chat auto-scrolling logic
Fix auto-scrolling state changing by old messages removal logic
2021-01-31 23:45:49 +03:00
Bartłomiej Dach
a0de1cbfd0 Handle no-duration single-object edge case 2021-01-31 21:09:41 +01:00
Bartłomiej Dach
547b3d8bed Fix speed change calculation in time ramp mods 2021-01-31 20:34:56 +01:00
Bartłomiej Dach
81b052b866 Add failing test cases 2021-01-31 20:34:22 +01:00
Bartłomiej Dach
b9a49d5589 Coerce undefined animation loop types to Forever 2021-01-31 15:43:58 +01:00
Bartłomiej Dach
90ba8ae234 Don't part room if join task was cancelled 2021-01-30 23:39:01 +01:00
Bartłomiej Dach
5f320cd426 Move lease check inside schedule
Theoretically safer due to avoiding a potential data race (change in
`leasedInProgress` between the time of the check and start of schedule
execution).
2021-01-30 21:03:09 +01:00
Bartłomiej Dach
96f56d1c94 Return tracker lease via UnbindAll()
Improves reliability by being fail-safe in case of multiple returns,
which can happen if the operation tracker is part of a screen being
exited (as is the case with its current primary usage in multiplayer).
2021-01-30 21:00:13 +01:00
Bartłomiej Dach
c3ba92f057 Set canceled result in scheduleAsync
Was holding up the task completion source, and in consequence,
potentially the entire task chain.
2021-01-30 16:13:50 +01:00
Bartłomiej Dach
9ab1ad25eb Merge branch 'master' into fix-leave-room-race-2 2021-01-30 13:41:04 +01:00
Bartłomiej Dach
6a1387191a
Merge branch 'master' into fix-skin-dropdown-update-crash 2021-01-30 13:01:52 +01:00
Dean Herbert
16f3d1815f Fix SQLite exception thrown is a beatmap lookup is attempted without an OnlineBeatmapID present
It turns out the SQLite API isn't smart enough to handle nullables
directly, so we need to help it out a bit.

Stops the following from being thrown:

```
System.InvalidOperationException: Value must be set.
   at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt) = 3
at
   at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt
stmt) = 3 at
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior
behavior)
   at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader()
   at
osu.Game.Beatmaps.BeatmapManager.BeatmapOnlineLookupQueue.checkLocalCache(BeatmapSetInfo
set, BeatmapInfo beatmap) in
/Users/dean/Projects/osu/osu.Game/Beatmaps/BeatmapManager_BeatmapOnlineLookupQueue.cs:line
166 = 166
```
2021-01-29 19:53:57 +09:00
Dean Herbert
18e6afbec0 Ensure the item is present before trying to select it 2021-01-29 19:17:12 +09:00
Dean Herbert
1ce383fc20 Merge branch 'master' into fix-skin-dropdown-update-crash 2021-01-29 19:16:20 +09:00
smoogipoo
ab9a3e6dd0 Pass allowed mods and consume on server callback 2021-01-29 18:21:22 +09:00
Dean Herbert
a61444690e Remove all usage of CatchUnobservedExceptions
This should no longer be required with the recent framework side change
that stops a game from crashing on unobserved exceptions
(https://github.com/ppy/osu-framework/pull/4171).
2021-01-29 16:32:29 +09:00
Dean Herbert
1ec305e10d Update TaskChain to use ContinueWithSequential internally
It turns out we may still want to use TaskChain for its locking
behaviour, so I've made it internally use the refactored version I
implemented, while keeping the general structure.
2021-01-29 16:19:46 +09:00
Bartłomiej Dach
0f1d72e073 Merge branch 'master' into ios-signalr-use-json 2021-01-28 23:28:49 +01:00
Bartłomiej Dach
386f9f7842 Fix typos in comments 2021-01-28 22:36:07 +01:00
Bartłomiej Dach
8afd1bce21
Merge branch 'master' into fix-ios-beatmap-cache-lookups 2021-01-28 22:33:58 +01:00
Dean Herbert
34f8e4b672
Merge pull request #11613 from bdach/order-attribute-move
Remove game-local enum `[Order]` attribute
2021-01-29 00:41:43 +09:00
Dean Herbert
a616688a47 Update framework 2021-01-28 23:55:03 +09:00
Dean Herbert
c3d4044017 Avoid using Dapper to fix iOS compatibility of beatmap lookup cache 2021-01-28 16:53:56 +09:00
Dean Herbert
90a82f986b Fallback to using json for signalr communication if JIT is unavailable 2021-01-28 16:20:19 +09:00
Bartłomiej Dach
2c08ce05fa Remove game-local enum [Order] attribute
In favour of the newly-added framework one.
2021-01-27 22:29:52 +01:00
Salman Ahmed
63f057a525 Fix dotnet run/publish with runtime specified not working again 2021-01-27 20:45:52 +03:00
Dean Herbert
45395cb5e8 Update framework 2021-01-27 23:00:14 +09:00
smoogipoo
b79d1c7b81 Add mods to footer 2021-01-27 22:33:03 +09:00
smoogipoo
ff8ee379fb Fix possible nullref 2021-01-27 22:27:31 +09:00
smoogipoo
c408b46a21 Add AllowedMods to MultiplayerRoomSettings model 2021-01-27 22:25:14 +09:00
smoogipoo
4c256f1fb3 Actually populate the playlist item 2021-01-27 22:23:38 +09:00
smoogipoo
45e41aaeac Initial implementation of freemod selection overlay 2021-01-27 22:15:53 +09:00
smoogipoo
4019cc38e5 Allow footer buttons to be customised 2021-01-27 22:03:51 +09:00
smoogipoo
91d34d86f7 Abstractify ModSelectOverlay 2021-01-27 22:02:23 +09:00
smoogipoo
0ff300628e Fix type not being set 2021-01-27 20:07:22 +09:00
Dean Herbert
a30aecbafe Comment and add xmldoc 2021-01-27 20:01:21 +09:00
smoogipoo
f2fa51bf5e Make ModSections overrideable 2021-01-27 19:59:28 +09:00
Dean Herbert
fcfb0d52c2 Proposal to use extension method instead of TaskChain class 2021-01-27 19:50:16 +09:00
smoogipoo
a800955bb1 Add mod validation utilities 2021-01-27 19:46:25 +09:00
Mysfit
ee89aa159c Removed blank line 2021-01-26 23:12:26 -05:00
Mysfit
690feb1c1e Allow looping storyboard samples to follow the base samplePlaybackDisabled event logic. 2021-01-26 23:08:51 -05:00
Dan Balasescu
7d06af916c
Merge branch 'master' into add-messagepack 2021-01-27 13:00:46 +09:00
Bartłomiej Dach
4d4d97661e Fix connection loop always getting a cancelled token 2021-01-26 21:26:50 +01:00
Lucas A
383c40b992 Address remaining reviews suggestions. 2021-01-26 20:35:42 +01:00
Lucas A
2a2b6f347e Use a lazy for delegating Songs directory locating until it is actually used. 2021-01-26 19:07:05 +01:00
Lucas A
043385f919 Rename const and fix unintended tabbing. 2021-01-26 18:45:04 +01:00
Lucas A
9f9206726a Fix typos. 2021-01-26 18:11:54 +01:00
smoogipoo
248989b3eb wip 2021-01-27 01:20:50 +09:00
smoogipoo
085115cba5 Make threading even more thread safe 2021-01-26 22:49:01 +09:00
smoogipoo
8c3b0a3167 Fix TaskChain performing the action in-line, add test 2021-01-26 22:47:37 +09:00
Dean Herbert
67014018fc
Merge pull request #11589 from MiraiSubject/osu-mod-icon-fallbacks
Allow tournament client to use default mod icons if custom icons are not present
2021-01-26 19:57:21 +09:00
Dean Herbert
a5f3418e56 Avoid tooltip display 2021-01-26 19:11:19 +09:00
Dean Herbert
b573c96c07 Move disconnect logic inside connection loop to ensure previous connection is disposed 2021-01-26 18:59:42 +09:00
Dean Herbert
fedcbf79fa
Merge pull request #11572 from EVAST9919/comment-pill
Make VotePill background transparent for own comments
2021-01-26 18:57:00 +09:00
Dean Herbert
15885c17af Remove unused usings 2021-01-26 18:07:43 +09:00
Dean Herbert
468dfbecbe
Merge branch 'master' into fix-beatmap-listing-2 2021-01-26 17:56:37 +09:00
Dean Herbert
fcf4d4ee18
Merge pull request #11604 from frenzibyte/fix-beatmap-listing
Fix beatmap listing placeholder potentially getting disposed
2021-01-26 17:56:19 +09:00
Dean Herbert
20cfa991bf Switch clients to MessagePack mode 2021-01-26 17:41:21 +09:00
Dean Herbert
9537090d28 Setup all spectator model classes for MessagePack 2021-01-26 16:39:35 +09:00
Dean Herbert
e4fc604163 Setup all multiplayer model classes for MessagePack support 2021-01-26 16:26:03 +09:00
Dean Herbert
60ae87ec38 Add MessagePack package 2021-01-26 16:25:49 +09:00
Salman Ahmed
93bb2611d6 Merge branch 'fix-beatmap-listing' into fix-beatmap-listing-2 2021-01-26 09:43:49 +03:00
Dean Herbert
ca0242debe Tidy up logic to correctly expire in cases where expiry is expected 2021-01-26 15:42:48 +09:00
Mysfit
3307e8357f DrawableStoryboardSample event method override for SamplePlaybackDisabledChanged 2021-01-26 00:36:32 -05:00
Salman Ahmed
0d8d0d6852 Apply alternative way of fixing 2021-01-26 01:03:29 +03:00
Salman Ahmed
c317d60169 Add offline test scene for beatmap listing overlay 2021-01-26 00:03:20 +03:00
Salman Ahmed
75d6dbdbb7 Fix beatmap listing placeholder potentially getting disposed 2021-01-26 00:03:20 +03:00
Salman Ahmed
9efce5717f Fix beatmap listing placeholder disappearing on second time display 2021-01-26 00:03:20 +03:00
Lucas A
a4a7f0c578 Address CI inspections. 2021-01-25 19:05:16 +01:00
Dan Balasescu
30f7e4c794
Merge branch 'master' into fix-timeline-parts-working-beatmap 2021-01-25 21:22:45 +09:00
smoogipoo
c17774e23c Add xmldoc 2021-01-25 21:01:39 +09:00
smoogipoo
bb44fcfe31 Prevent some data races 2021-01-25 21:01:39 +09:00
smoogipoo
964976f604 Use a task chain and fix potential misordering of events 2021-01-25 21:01:39 +09:00
Dean Herbert
b489e92c9e Fix TimelineParts not using correct beatmap 2021-01-25 18:44:36 +09:00
Dean Herbert
4ac362ee1a Move cloning local to editor 2021-01-25 18:29:00 +09:00
Dean Herbert
f054b38105 Merge branch 'master' into revert-beatmap-controlpointinfo-cloning 2021-01-25 18:25:53 +09:00
Dan Balasescu
803ada42ea
Merge pull request #11595 from peppy/leaderboard-bind-handlers-later
Bind MultiplayerGameplayLeaderboard to player updates later in load process
2021-01-25 18:18:54 +09:00
Dan Balasescu
c0ea610e2e
Merge pull request #11594 from peppy/fix-mod-select-appear-animation
Fix mod select footer not animating correctly on first reveal
2021-01-25 18:16:37 +09:00
Dean Herbert
91ce3df3a9 Bind MultiplayerGameplayLeaderboard to player updates later in load process 2021-01-25 17:44:01 +09:00
Dean Herbert
0f09a7feb9 Avoid semaphore potentially getting held forever 2021-01-25 17:17:04 +09:00
Dean Herbert
994fb2667d Call DisposeAsync instead of StopAsync 2021-01-25 17:11:04 +09:00
Dean Herbert
c05ae3497a Make connect/disconnect private 2021-01-25 17:02:24 +09:00
Dean Herbert
13e0423ed8 Merge branch 'master' into fix-multiplayer-client-connection-reliability 2021-01-25 17:00:35 +09:00
Dean Herbert
10e8b7082e Rework logic to avoid custom disposal early return handling 2021-01-25 16:53:58 +09:00
Dean Herbert
2db0da6e94
Merge branch 'master' into ongoing-tracker-disposal 2021-01-25 16:22:36 +09:00
Dean Herbert
bb8113fb51 Fix mod select footer not animating correctly on first reveal 2021-01-25 14:47:47 +09:00
Dean Herbert
dee0d3c33a
Merge branch 'master' into apply-sv-to-taiko-hr-ez 2021-01-25 14:28:06 +09:00
Lucas A
51d4da565c Fix ArchiveModelManagers lookup paths. 2021-01-24 22:25:49 +01:00
Lucas A
f0fdad2f83 Construct a DesktopStorage pointing to the absolute path of the song directory. 2021-01-24 22:04:46 +01:00
Lucas A
d71ac83428 Use StableStorage in ArchiveModelManager. 2021-01-24 19:46:10 +01:00
Lucas A
9a5790cd31 Implement StableStorage class. 2021-01-24 19:18:16 +01:00
Bartłomiej Dach
d22f557a3b Remove possibility of double-disposal interference 2021-01-23 16:14:58 +01:00
Bartłomiej Dach
7f89d9117d Make disposal of tracker idempotent for operations 2021-01-23 16:04:12 +01:00
Bartłomiej Dach
18b309a195 Make disposal of tracker operation idempotent 2021-01-23 16:02:51 +01:00
Andrei Zavatski
e9d10bb6e7 Revert "Minor refactoring"
This reverts commit 3d42cc1f91.
2021-01-22 22:49:49 +03:00
Bartłomiej Dach
b692abd3c2 Simplify condition from two to one operand 2021-01-22 20:35:34 +01:00
Andrei Zavatski
3d42cc1f91 Minor refactoring 2021-01-22 22:27:26 +03:00
Bartłomiej Dach
360f26c13d Merge branch 'master' into scroll-to-20 2021-01-22 19:58:36 +01:00
Bartłomiej Dach
f3192877fe Update outdated comment 2021-01-22 19:48:33 +01:00
Andrei Zavatski
20161aea6a Show LoginOverlay if not logged-in when clicking on a pill 2021-01-22 21:47:53 +03:00
Bartłomiej Dach
61fcb486a8 Trim unnecessary parentheses 2021-01-22 19:47:38 +01:00
Andrei Zavatski
6379381f95 Make VotePill background transparent for own comments 2021-01-22 20:46:20 +03:00
Mysfit
e0f8f6a23f introduce overrideable bool instead of copying event logic entirely 2021-01-22 12:09:40 -05:00
Dan Balasescu
26779a9403
Merge pull request #11567 from peppy/fix-chat-local-echo-effect
Fix local echo messages remaining permanently dimmed when chatting via multiplayer
2021-01-22 21:58:55 +09:00
Dean Herbert
b44bd8c4ee Remove unused using statement 2021-01-22 18:03:33 +09:00
Dean Herbert
a9c8f9bd4a Fix a potential crash when exiting the editor before a new beatmap is added to the database 2021-01-22 17:47:38 +09:00
Dean Herbert
d69a4914e0 Add method to block all realm access during migration operation 2021-01-22 17:28:47 +09:00
Dean Herbert
a5f7ca485b Fix unintended xmldoc tag edit 2021-01-22 16:53:31 +09:00
Dean Herbert
bfabb1fdea Change offset value to 10% 2021-01-22 16:50:22 +09:00
Dean Herbert
fca6b15d2f Fix local echo messages remaining permanently dimmed when chatting via multiplayer 2021-01-22 16:05:45 +09:00
Dean Herbert
65b7075984 Limit the effect of parallax when outside the bounds of the ParallaxContainer
This fixes the visual issues that still remain when mouse confining
fails. I think it also feels more correct in general.
2021-01-22 15:43:19 +09:00
Dean Herbert
d24d236468 Make OperationCanceledException throwing behaviour consistent 2021-01-22 14:34:58 +09:00
Dean Herbert
9f89b4e6d7 Rewrite connection logic to better handle failure cases
The main goal here is to ensure the connection is built each connection
attempt. Previously, the access token would never be updated, leading to
outdated tokens failing repeatedly (in the connection retry loop) and
never being able to establish a new connection as a result.

Due to threading considerations, this isn't as simple as I would hope it
to be. I'm open to proposals as to a better way of handling this.

Also, keep in mind that this logic will need to be abstracted and
(re)used in `SpectatorClient` as well. I've intentionally not done that
yet until we agree that this is a good direction forward.
2021-01-22 14:25:23 +09:00
Mysfit
5b1bdfbdc5 Use callback method override 2021-01-21 20:06:24 -05:00
Mysfit
b53ad50cd4 Remove redundant variable 2021-01-21 18:00:37 -05:00
Mysfit
07ec0c0e0b Updated DrawableStoryboardSample to use GetBoundCopy() 2021-01-21 17:46:47 -05:00
Mysfit
b220939650 Fix storyboard samples continuing to play when the beatmap is paused or the intro is skipped. 2021-01-21 17:10:11 -05:00
Andrei Zavatski
2eba2a9abf Rename FriendsButton to FollowersButton 2021-01-21 23:40:23 +03:00
Andrei Zavatski
c631354b57 Rename property 2021-01-21 23:39:19 +03:00
Andrei Zavatski
4555b9ff70 Make ProfileHeaderButton height defined 2021-01-21 22:56:12 +03:00
Andrei Zavatski
e87197c7fc Adjust text size 2021-01-21 22:48:31 +03:00
Andrei Zavatski
343166f158 Make CreateIcon a property 2021-01-21 22:47:44 +03:00
Andrei Zavatski
a7c22ebe88 Implement MappingSubscribersButton component 2021-01-21 22:02:54 +03:00
Andrei Zavatski
966440f109 Add MappingFollowerCount field to User 2021-01-21 22:02:19 +03:00
Andrei Zavatski
2aa1df9ea4 Implement ProfileHeaderStatisticsButton component 2021-01-21 21:38:52 +03:00
Andrei Zavatski
05d3914fee Rename friends tooltip to followers 2021-01-21 21:26:33 +03:00
Dean Herbert
47a9d2b1c2 Add missing licence header 2021-01-21 20:53:16 +09:00
Dan Balasescu
0fa0e70bff
Merge branch 'master' into leave-channel-on-exiting-multiplayer 2021-01-21 19:04:33 +09:00
Dean Herbert
34a7ce912e Correctly close context before attempting migration 2021-01-21 19:02:09 +09:00
Dean Herbert
d2bf3a5805 Add ignore files to avoid copying realm management/pipes 2021-01-21 19:01:58 +09:00
Dan Balasescu
04095cd5b9
Merge branch 'master' into fix-editor-scroll-interruption 2021-01-21 17:46:18 +09:00
Dan Balasescu
9eb74e86ed
Apply comment suggestion
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-21 17:40:15 +09:00
Dean Herbert
259f6504fb Merge branch 'master' into realm-key-binding-store 2021-01-21 15:45:59 +09:00
Dean Herbert
e6980688f6 Leave the multiplayer channel when leaving multiplayer 2021-01-21 15:42:23 +09:00
Dean Herbert
8853ac04d9 Rename some variable and add xmldoc for scroll centre position 2021-01-21 15:08:36 +09:00
Dean Herbert
c650cbd2a7 Rename variable to something slightly better 2021-01-21 15:01:23 +09:00
Dean Herbert
9daf29fedc Extract out commonly used variables 2021-01-21 15:01:23 +09:00
Dean Herbert
a85f952a38 Inline single use function 2021-01-21 15:01:23 +09:00
Dean Herbert
e5eec27e95 Simplify selected section resolution 2021-01-21 15:01:23 +09:00
Dean Herbert
6d167b7865 Remove the need to store the smallest section 2021-01-21 14:40:55 +09:00
Dean Herbert
555abcdc36 Replace nan usage with nullable float 2021-01-21 14:31:31 +09:00
Dean Herbert
8f9089d1ae Move constant to a better place 2021-01-21 14:30:22 +09:00
Dean Herbert
0fcf61d352 Replace null check with assert 2021-01-21 14:29:49 +09:00
Dean Herbert
a6516e3be5 Merge branch 'master' into scroll-to-20 2021-01-21 14:28:17 +09:00
Andrei Zavatski
65ece1aa72 Mark OverlayHeader as NotNull in FullscreenOverlay 2021-01-21 07:50:41 +03:00
Dean Herbert
7c4a072568 Merge branch 'master' into scroll-to-20 2021-01-21 13:48:26 +09:00
Andrei Zavatski
da0066e7b0 Merge master with conflicts resolved 2021-01-21 07:30:47 +03:00
Dan Balasescu
76e1f6e57b
Fix locking on incorrect object
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-21 12:45:44 +09:00
Dan Balasescu
c3675293fa
Merge branch 'master' into beatmapset-refactor 2021-01-21 12:38:34 +09:00
Bartłomiej Dach
1d9aaac2c2 Fix HOC not propagating DHO results applied on kill
`DrawableHitObject.OnKilled()` calls `UpdateResult()` to clean up a
hitobject's state definitively with regards to the judgement result
before returning the DHO back to the pool.

As it turns out, if a consumer was relying on this code path (as taiko
was in the case of nested strong hit objects), it would not work
properly with pooling, due to `HitObjectContainer` unsubscribing from
`On{New,Revert}Result` *before* calling the DHO's `OnKilled()`.

This in turn would lead to users potentially getting stuck in gameplay,
due to `ScoreProcessor` not receiving all results via that event path.

To resolve, change the call ordering to allow hit result changes applied
in `OnKilled()` to propagate normally.
2021-01-21 00:05:37 +01:00
vmaggioli
5ee3a5f230
Use AlmostEquals 2021-01-20 13:00:25 -05:00
vmaggioli
ce3c2f07dc
Fix zero length spinners and sliders 2021-01-20 12:19:52 -05:00
Dan Balasescu
7da7079ef2
Merge pull request #11537 from Mysfit/mp-initial-creation-screen-fix
Fix match/playlist room screen showing briefly behind initial room settings window on creation.
2021-01-20 22:05:14 +09:00
Dan Balasescu
95f52ae054
Merge pull request #11536 from rednir/sort-skins-alphabetically
Sort SkinSection in alphabetical order
2021-01-20 21:49:31 +09:00
Dan Balasescu
455383c3c0
Merge pull request #11528 from peppy/fix-autoplay-in-multiplayer
Fix multiplayer mod select showing autoplay as a choice
2021-01-20 21:49:16 +09:00
Dan Balasescu
12f2067357
Merge branch 'master' into sort-skins-alphabetically 2021-01-20 21:15:16 +09:00
smoogipoo
eb85efcea2 Add check to playlists too 2021-01-20 20:59:28 +09:00
Dan Balasescu
250727cbd1
Merge branch 'master' into mp-initial-creation-screen-fix 2021-01-20 20:53:33 +09:00
smoogipoo
6b139d4cf3 Reset task post-execution 2021-01-20 20:27:58 +09:00
smoogipoo
e005a1cc9f Remove unnecessary condition blocking the part 2021-01-20 20:16:34 +09:00
smoogipoo
5261c01849 Tie JoinRoom() and PartRoom() together 2021-01-20 19:43:42 +09:00
smoogipoo
8ffbcc9860 Fix test failures and general discrepancies 2021-01-20 14:05:35 +09:00
smoogipoo
bdb9d4f7d0 Restart sound on play 2021-01-20 13:59:30 +09:00
smoogipoo
58269f9314 Update with framework changes 2021-01-20 13:35:43 +09:00
Andrei Zavatski
2ca3ccad06 Move all the content to BeatmapSetHeaderContent drawable 2021-01-20 04:56:46 +03:00
Andrei Zavatski
94fee3800d Merge remote-tracking branch 'refs/remotes/ppy/master' into beatmapset-refactor 2021-01-20 04:32:56 +03:00
Dean Herbert
2fabfe54a0
Merge pull request #11546 from bdach/mark-test-as-abstract
Mark legacy beatmap skin colour test as abstract
2021-01-20 10:03:40 +09:00
Bartłomiej Dach
82e5a5bf6f Mark legacy beatmap skin colour test as abstract 2021-01-19 23:10:15 +01:00
Bartłomiej Dach
3b49b7461e Schedule entire operation for safety
Also removes a redundant list copy.
2021-01-19 19:35:53 +01:00
Bartłomiej Dach
78e590d25d Refactor skin sorting method
* Rename to `sortUserSkins` to convey meaning better.
* Sort in-place instead of slicing the list.
* Change to `void` to avoid misleading users that the method returns
  a new list instance.
* Fix typo in comment.
2021-01-19 18:36:42 +01:00
Bartłomiej Dach
b00c6a1d60 Make first non-default skin index a property
The previous code was very brittle - it was not always updating
properly, and seems to have worked either by a carefully crafted set of
circumstances, or just plain coincidence.

Having this be a get-only property avoids potential error in the future
caused by not updating the index properly, at the expense of an added
linear lookup.
2021-01-19 18:31:37 +01:00
Salman Ahmed
34612ae233 Forward internal management to a container alongside tracker 2021-01-19 20:01:22 +03:00
rednir
206a0b8bac Fix firstNonDefault staying as -1 2021-01-19 16:55:50 +00:00
rednir
a880b8d21d Satisfy AppVeyor 2021-01-19 16:11:16 +00:00
Mysfit
052e9eef02 Added inline comments 2021-01-19 09:16:39 -05:00
rednir
b265d2dab4 Remove another whitespace 2021-01-19 14:16:22 +00:00
rednir
1d4c813ff6 Merge branch 'sort-skins-alphabetically' of https://github.com/rednir/osu into sort-skins-alphabetically 2021-01-19 14:03:31 +00:00
rednir
31e61326e1 Only user skins are sorted 2021-01-19 14:00:17 +00:00
Mysfit
33677f5770 Use BindValueChanged to show main content for new multiplayer and playlist rooms when the settings overlay is hidden. 2021-01-19 08:52:43 -05:00
Mysfit
6d1d488831 Revert "Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action."
This reverts commit cbfb999c28.
2021-01-19 08:24:14 -05:00
Mysfit
9b7187e3c8 Revert "Use fades instead of event listening. Fixed same issue in the playlist room creation."
This reverts commit 3a7608275d.
2021-01-19 08:23:31 -05:00
rednir
f1894a8bac fixed itemUpdated() 2021-01-19 12:17:56 +00:00
Dean Herbert
f6c2009509 Remove unused using 2021-01-19 20:10:10 +09:00
Dean Herbert
68f2e7f61a Use realm support for Guid 2021-01-19 18:22:36 +09:00
Dean Herbert
15db0e97d7 Update realm version 2021-01-19 18:22:36 +09:00
Dean Herbert
f1a785f407 Merge branch 'master' into realm-key-binding-store 2021-01-19 18:22:34 +09:00
Salman Ahmed
63b4c529a6 Add xmldoc explaining what the multiplayer beatmap tracker is for 2021-01-19 11:59:07 +03:00
Salman Ahmed
5a64abee64 Inline with above method 2021-01-19 11:59:07 +03:00
smoogipoo
de9d075f94 Initial sample + samplechannel rework 2021-01-19 17:11:40 +09:00
Mysfit
3a7608275d Use fades instead of event listening. Fixed same issue in the playlist room creation. 2021-01-19 00:35:56 -05:00
Andrei Zavatski
f0add0a7cf Make BeatmapSetOverlay use OverlayHeader 2021-01-19 01:34:37 +03:00
Mysfit
cbfb999c28 Use the client.RoomUpdated action instead of binding the value of the settings overlay visibility and creating an event from it based on its ValueChanged action. 2021-01-18 17:13:24 -05:00
Bartłomiej Dach
b35d224efb
Merge branch 'master' into less-black-confirm-to-exit 2021-01-18 23:03:24 +01:00
Mysfit
5233a0449a Hide main room subscreen on initial mp room creation. Toggle mp room subscreen visibility based on settings overlay visibility before room is created. 2021-01-18 16:08:06 -05:00
rednir
0b65c0cd25 Remove whitespace 2021-01-18 20:17:42 +00:00
rednir
da89426a3b Merge branch 'master' of https://github.com/ppy/osu into sort-skins-alphabetically 2021-01-18 20:09:15 +00:00
Salman Ahmed
63ca9de7e4
Rewerite beatmap term properly
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-18 23:00:07 +03:00
rednir
7476cb3047 Sort SkinSection in alphabetical order 2021-01-18 19:51:42 +00:00
Salman Ahmed
5e476fa189 Enforce one missed property back to single-floating type 2021-01-18 22:07:25 +03:00
Salman Ahmed
25f511fd5b Remove unnecessary full querying 2021-01-18 21:34:24 +03:00
Andrei Zavatski
c6b0f3c247 Implement TabbableOnlineOverlay component 2021-01-18 21:22:50 +03:00
Andrei Zavatski
70420b56d3 Merge remote-tracking branch 'refs/remotes/ppy/master' into overlay-header-refactor 2021-01-18 20:09:51 +03:00
Salman Ahmed
4a1acdece2 Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up 2021-01-18 20:06:47 +03:00
Salman Ahmed
dc91cebce9 Merge branch 'master' into multiplayer-beatmap-tracker 2021-01-18 19:15:45 +03:00
Dean Herbert
fda271d9d9
Merge pull request #11520 from frenzibyte/fix-item-download-button
Fix playlist item download button never shown back after hiding
2021-01-18 23:37:33 +09:00
Salman Ahmed
e6ceaad732 Revert user state back to idle upon availability change 2021-01-18 17:23:51 +03:00
Dean Herbert
ced7a36788 Update namespaces 2021-01-18 21:24:10 +09:00
Dean Herbert
12443e39ae Update framework 2021-01-18 19:16:32 +09:00
Dean Herbert
707d5346c9 Merge branch 'master' into fix-spinner-spinning-weirdness 2021-01-18 18:26:44 +09:00
Dean Herbert
0560eb4120 Reduce final fill alpha of main menu confirm-to-exit 2021-01-18 18:22:21 +09:00
Dean Herbert
0b165dce4b Fix multiplayer mod select showing autoplay as a choice 2021-01-18 17:50:32 +09:00
Andrei Zavatski
6e34ab5d15 Rename WebOverlay to OnlineOverlay 2021-01-18 11:13:38 +03:00
Andrei Zavatski
b27b18f70f Merge remote-tracking branch 'refs/remotes/ppy/master' into overlay-header-refactor 2021-01-18 11:10:55 +03:00
Salman Ahmed
6deb10e075 Add UI state display for each client's beatmap availability 2021-01-18 11:10:02 +03:00
Salman Ahmed
bd44bf8c0b Extract disabling progress bar user-interactivity 2021-01-18 10:51:39 +03:00
Salman Ahmed
4e6c1a3906 Update client beatmap availability in-line with tracker 2021-01-18 10:51:39 +03:00
Salman Ahmed
88abee705b Add missing event mapping for user beatmap availability change 2021-01-18 10:49:02 +03:00
Andrei Zavatski
27ffc98445 Implement WebOverlay component 2021-01-18 10:48:12 +03:00
Dean Herbert
94fee8c31d Avoid doing a config lookup if initial conditional fails 2021-01-18 16:13:58 +09:00
Dean Herbert
1364de1166
Merge branch 'master' into beatmap-colour-setting 2021-01-18 16:07:46 +09:00
Salman Ahmed
38588ab96b Merge branch 'multiplayer-beatmap-tracker' into ready-button-clean-up 2021-01-18 10:00:31 +03:00
Salman Ahmed
b6a37c1c15 Make TriggerSuccess(filename) protected and expose in test instead 2021-01-17 22:10:30 +03:00
Salman Ahmed
ccef50e2a2 Log important message if user imported bad-checksum beatmap 2021-01-17 22:10:30 +03:00
Salman Ahmed
0425a659a8 Add null-permissive operator to manager back 2021-01-17 21:19:55 +03:00
Salman Ahmed
d93a853dfd Enforce float type in the download progress path instead 2021-01-17 21:16:48 +03:00
Salman Ahmed
585aa87c53 Fix playlist item download button never shown back after hiding 2021-01-17 19:17:14 +03:00
Dean Herbert
5e0fcc4a6c
Merge pull request #11473 from frenzibyte/explicit-search-control
Add "explicit maps" search filter control to beatmap listing
2021-01-17 23:27:15 +09:00
Dean Herbert
5278cad393 Reword setting to make more sense 2021-01-17 22:42:48 +09:00
Dean Herbert
5fd644fc57 Unify variable names 2021-01-17 22:42:48 +09:00
Bartłomiej Dach
eb53e32792 Use task completion source for room join flow
On Android, users were unable to join or create multiplayer rooms. The
root cause of that was that the both the wait and set of the
`ManualResetEvent` in `getRoomUsers` occurred on the same thread, which
created a chicken-and-egg situation - the set could not proceed until
the wait had actually completed.

Resolve by substituting the `ManualResetEvent` for a
`TaskCompletionSource` to achieve a promise-style task, which the
previous code was a crude approximation of anyway.

Closes #11385.
2021-01-17 14:40:22 +01:00
Dean Herbert
addd463d26
Merge branch 'master' into explicit-search-control 2021-01-17 21:44:25 +09:00
Dean Herbert
edb6d3907b
Merge pull request #11472 from frenzibyte/explicit-beatmap-markers
Add explicit content markers to beatmap panels and overlay
2021-01-17 21:44:10 +09:00
Bartłomiej Dach
816cc7a59b Adjust explicit label spacing on beatmap set overlay 2021-01-17 00:35:23 +01:00
Bartłomiej Dach
dee46d7ba2 Use GroupBy() instead 2021-01-16 23:42:28 +01:00
Bartłomiej Dach
bb0d289993 Split variable for readability 2021-01-16 23:24:28 +01:00
Bartłomiej Dach
1d7be6a604 Merge branch 'master' into android-multiple-import-support-suppot 2021-01-16 23:13:11 +01:00
Salman Ahmed
59ae50b0e5 Clean up ready button logic into using MultiplayerBeatmapTracker 2021-01-17 01:11:03 +03:00
Salman Ahmed
adb2605d5d Enforce double type in the download progress path
Wasn't sure where to exactly put this, or whether to split it, but it's very small change to worry about, so I guess it's fine being here
2021-01-17 00:12:14 +03:00
Salman Ahmed
23c7afa573 Expose method for setting progress of archive download request 2021-01-17 00:05:51 +03:00
Salman Ahmed
4778686dc4 Expose method for triggering filename-backed success in APIDownloadRequest
Exactly like in `APIRequest<T>`
2021-01-17 00:01:11 +03:00
Salman Ahmed
96feaa027d Make ArchiveModelManager import method overridable (for testing purposes) 2021-01-17 00:01:11 +03:00
Salman Ahmed
cf23781036 Cache beatmap tracker and bind to selected item in RoomSubScreen 2021-01-17 00:01:11 +03:00
Salman Ahmed
da9c23f347 Add beatmap availability tracker component for multiplayer 2021-01-17 00:01:11 +03:00
Salman Ahmed
7ad8b167cc Add overridable method for checking local availability of current model 2021-01-17 00:01:11 +03:00
Salman Ahmed
04d17aadfa Add overridable method for verifying models in database 2021-01-17 00:01:11 +03:00
Salman Ahmed
d9034eab26 Make model manager in DownloadTrackingComposite protected 2021-01-16 22:54:54 +03:00
Bartłomiej Dach
0f8f0434f9 Remove EF store again after mis-merge
Was originally deleted in 536e7229d0.
2021-01-16 17:03:58 +01:00
Bartłomiej Dach
7296a6dd84 Merge branch 'master' into realm-key-binding-store 2021-01-16 16:48:54 +01:00
Bartłomiej Dach
ddc63662ba Dispose realm in RealmWriteUsage cleanup 2021-01-16 16:39:04 +01:00
Bartłomiej Dach
c80e9c08fd
Merge branch 'master' into net5.0 2021-01-16 16:07:44 +01:00
Mysfit
a3535f4b79 Further simplified beatmap colouring tests. 2021-01-16 02:09:35 -05:00
Mysfit
112967c1e8 Created base class for testing beatmap colours. 2021-01-15 23:46:46 -05:00
Bartłomiej Dach
d9b671667b Merge branch 'master' into fix-judgement-animation-conditional 2021-01-15 22:10:17 +01:00
Bartłomiej Dach
3c1a86d11d Trim braces for consistency 2021-01-15 22:04:45 +01:00
Dean Herbert
d6e6b4bbee Revert forced cloning of ControlPointInfo
This reverts commit 3c3e860dbc.

Closes https://github.com/ppy/osu/issues/11491.
2021-01-15 17:34:59 +09:00
Dean Herbert
8a6857f151 Add support for playing a SkinnableSample without restarting it 2021-01-15 17:16:12 +09:00
Dean Herbert
b5e784ed42 Fix possibility of crash when selecting a random skin during skin import 2021-01-15 16:34:28 +09:00
Dean Herbert
831c06a3c7 Expose and consume boolean covering whether an ongoing smooth seek is running 2021-01-15 16:14:38 +09:00
Dean Herbert
04fa32bc34 Rename and add xmldoc for smooth seeking method 2021-01-15 16:14:21 +09:00
Dean Herbert
ed78be825f Fix editor timeline not snapping on non-precise wheel scroll
For wheel input with precision, we still prefer exact tracking for now.
May change this in the future based on feedback from mappers, but it
makes little sense to do non-snapped scrolling when input is coming from
a non-precise source.
2021-01-15 15:47:42 +09:00
Dean Herbert
c3049f431a
Merge branch 'master' into net5.0 2021-01-15 15:23:41 +09:00
Dean Herbert
2b578e97e5 Fix deadlock scenario when calculating fallback difficulty
The previous code would run a calcaulation for the beatmap's own ruleset
if the current one failed. While this does make sense, with the current
way we use this component (and the implementation flow) it is quite unsafe.

The to the call on `.Result` in the `catch` block, this would 100%
deadlock due to the thread concurrency of the `ThreadedTaskScheduler`
being 1. Even if the nested run could be run inline (it should be), the
task scheduler won't even get to the point of checking whether this is
feasible due to it being saturated by the already running task.

I'm not sure if we still need this fallback lookup logic. After removing
it, it's feasible that 0 stars will be returned during the scenario that
previously caused a deadlock, but I don't necessarily think this is
incorrect. There may be another reason for this needing to exist which
I'm not aware of (diffcalc?) but if that's the case we may want to move
the try-catch handling to the point of usage.

To reproduce the deadlock scenario with 100% success (the repro
instructions in the linked issue aren't that simple and require some
patience and good timing), the main portion of the lookup can be changed
to randomly trigger a nested lookup:

```
if (RNG.NextSingle() > 0.5f)
    return GetAsync(new
DifficultyCacheLookup(key.Beatmap, key.Beatmap.Ruleset,
key.OrderedMods)).Result;
else
    return new StarDifficulty(attributes);
```

After switching beatmap once or twice, pausing debug and viewing the
state of threads should show exactly what is going on.
2021-01-15 15:19:12 +09:00
Dean Herbert
ede5abdba4 Fix unstable multiplayer room ordering when selection is made 2021-01-15 15:19:12 +09:00
Dean Herbert
b8c85ef017 Revert polling changes to fix participant list display
It turns out this polling was necessary to get extra data that isn't
included in the main listing request. It was removed deemed useless, and
in order to fix the order of rooms changing when selecting a room.
Weirdly, I can't reproduce this happening any more, and on close
inspection of the code can't see how it could happen in the first place.

For now, let's revert this change and iterate from there, if/when the
same issue arises again.

I've discussed avoiding this second poll by potentially including more
data (just `user_id`s?) in the main listing request, but not 100% sure
on this - even if the returned data is minimal it's an extra join
server-side, which could cause performance issues for large numbers of
rooms.
2021-01-15 15:19:12 +09:00
Dean Herbert
e0a4a666c8 Remove unnecessary workaround (mentioned package is pinned by SignalR to a working version) 2021-01-15 15:01:16 +09:00
Dean Herbert
f42a6270bb Update framework (again) for native libs fix 2021-01-15 14:57:01 +09:00
Dean Herbert
86f66727de Update KeyBinding usages in line with interface changes 2021-01-15 14:57:01 +09:00
Dean Herbert
ebbc32adfa Change conditional used to decide legacy judgement animation to match stable
In stable, the type of legacy judgement to show is based on the presence
of particle textures in the skin. We were using the skin version
instead, which turns out to be incorrect and not what some user skins
expect.

Closes #11078.
2021-01-15 14:51:27 +09:00
Dan Balasescu
40f020c683
Merge pull request #11494 from peppy/fix-beatmap-carousel-incorrect-sample
Fix the beatmap carousel playing the difficulty change sample on beatmap change
2021-01-15 14:47:00 +09:00
smoogipoo
24e991a5ef Actually return beat length and not BPM 2021-01-15 14:35:09 +09:00
smoogipoo
c6e9a6cd5a Make most common BPM more accurate 2021-01-15 14:28:49 +09:00
Dean Herbert
3e366b1f15 Ensure the main realm context is closed when the factory is disposed 2021-01-15 14:26:06 +09:00
Dean Herbert
0a65ae8f1e Fix the beatmap carousel playing the difficulty change sample on beatmap change 2021-01-15 14:07:24 +09:00
Mysfit
0c01a3a685 Found a better solution than TValue type checking for additional beatmap colour settings. Added unit tests for Catch Beatmap Skin settings. 2021-01-14 23:30:24 -05:00
Dean Herbert
4cccde9007 Update framework 2021-01-15 13:20:46 +09:00
Salman Ahmed
dc8e38cf4d Remove pointless inline comment 2021-01-15 07:20:13 +03:00
Dan Balasescu
67b5ebadf5
Merge branch 'master' into fix-is-connected-thread-safety 2021-01-15 12:56:21 +09:00
Mysfit
99e43c77c2 Simplified colour config checks in SkinProvidingContainer.cs 2021-01-14 16:53:55 -05:00
Dan Balasescu
3e8732a59f
Merge branch 'master' into fix-participants-list 2021-01-14 21:30:53 +09:00
Dan Balasescu
063acefd5c
Merge branch 'master' into fix-difficulty-calculation-deadlock 2021-01-14 20:32:43 +09:00
Roman Kapustin
0ea4e221b2 Merge branch 'master' into net5.0 2021-01-14 14:02:51 +03:00
Dean Herbert
862cb1412c
Merge pull request #11410 from frenzibyte/user-beatmap-downloading-states
Add change state methods for multiplayer user beatmap availability
2021-01-14 18:42:26 +09:00
Dean Herbert
8a0b975d71 Fix deadlock scenario when calculating fallback difficulty
The previous code would run a calcaulation for the beatmap's own ruleset
if the current one failed. While this does make sense, with the current
way we use this component (and the implementation flow) it is quite unsafe.

The to the call on `.Result` in the `catch` block, this would 100%
deadlock due to the thread concurrency of the `ThreadedTaskScheduler`
being 1. Even if the nested run could be run inline (it should be), the
task scheduler won't even get to the point of checking whether this is
feasible due to it being saturated by the already running task.

I'm not sure if we still need this fallback lookup logic. After removing
it, it's feasible that 0 stars will be returned during the scenario that
previously caused a deadlock, but I don't necessarily think this is
incorrect. There may be another reason for this needing to exist which
I'm not aware of (diffcalc?) but if that's the case we may want to move
the try-catch handling to the point of usage.

To reproduce the deadlock scenario with 100% success (the repro
instructions in the linked issue aren't that simple and require some
patience and good timing), the main portion of the lookup can be changed
to randomly trigger a nested lookup:

```
if (RNG.NextSingle() > 0.5f)
    return GetAsync(new
DifficultyCacheLookup(key.Beatmap, key.Beatmap.Ruleset,
key.OrderedMods)).Result;
else
    return new StarDifficulty(attributes);
```

After switching beatmap once or twice, pausing debug and viewing the
state of threads should show exactly what is going on.
2021-01-14 18:25:34 +09:00
Dean Herbert
2988700bea
Merge branch 'master' into realm-key-binding-store 2021-01-14 16:37:09 +09:00
Dean Herbert
f26c6210f3 Remove unnecessary Take() call and refactor default group logic naming 2021-01-14 16:36:24 +09:00
Dean Herbert
fd582f521c Reduce lifetime of realm context usage in detach scenario 2021-01-14 16:33:55 +09:00
Dean Herbert
8d071f97fb Early return 2021-01-14 16:33:03 +09:00
Dean Herbert
df08d964a5 Mark the types which have been migrated in OsuDbContext 2021-01-14 16:31:18 +09:00
Dean Herbert
e3c5a909e4 Fix known non-null variable 2021-01-14 16:30:57 +09:00
Dean Herbert
8a08d3f4ef Fix transactions not actually being committed 2021-01-14 16:13:10 +09:00
Dean Herbert
af1509d892 Remove unused variable (but add back pending writes counter) 2021-01-14 15:51:19 +09:00
Dean Herbert
4759797d15 Update framework 2021-01-14 15:51:07 +09:00
Dean Herbert
6eca8eac65
Merge pull request #11479 from smoogipoo/fix-judgement-1-frame-issue
Fix default judgement text mispositioned for one frame
2021-01-14 13:14:50 +09:00
smoogipoo
d5878db615 Fix default judgement text mispositioned for one frame 2021-01-14 12:33:33 +09:00
Salman Ahmed
6281c1086a Space out explicit marker in beatmap overlay 2021-01-14 05:41:09 +03:00
Salman Ahmed
abf718242b Make explicit marker font semi-bold 2021-01-14 05:40:43 +03:00
Jesse Myers
562634dfd2
Improve naming around the config lookup with fallback private method.
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-01-13 16:49:14 -05:00
Mysfit
8b95817f7a Moved SkinProvidingContainer bindable fetching to common method. Replaced redundant test boolean declarations with inline values. 2021-01-13 16:05:46 -05:00
Salman Ahmed
95acc457aa Fix stupid mistake
fuck.
2021-01-13 22:35:21 +03:00
Salman Ahmed
560b1e970c
Merge branch 'master' into user-beatmap-downloading-states 2021-01-13 22:31:31 +03:00
Mysfit
1248d39d7e Reverted change to AllowConfigurationLookup and added a separate AllowColourLookup bool with config case based on lookup type in SkinProvidingContainer GetConfig call. 2021-01-13 13:07:07 -05:00
Salman Ahmed
1f12b2bd09 Rename download state Downloaded to Importing 2021-01-13 18:04:53 +03:00
Salman Ahmed
43daa7c7c0 Use Colour2 of orange theme for explicit pill 2021-01-13 17:07:42 +03:00
Salman Ahmed
e275dd02e0 Create static colour properties for now 2021-01-13 17:07:11 +03:00
Salman Ahmed
9d59d784f8 Add Colour{1-4} properties to OverlayColourProvider 2021-01-13 17:06:44 +03:00
Salman Ahmed
a5f99ed8e6 Merge branch 'explicit-beatmap-markers' into explicit-search-control 2021-01-13 12:53:57 +03:00
Dean Herbert
674e78fd93 Fix broken xmldoc 2021-01-13 18:38:30 +09:00
Dean Herbert
9bf9a8c351 Remove Live<> wrapper until it is needed 2021-01-13 18:36:37 +09:00
Dean Herbert
8442b34e84 Tidy up write usage class 2021-01-13 18:36:37 +09:00
Dean Herbert
5fa3a22f28 Remove unused RealmBackedStore base class 2021-01-13 18:36:37 +09:00
Dean Herbert
fcb4a53f37 Rename realm persisted properties to avoid casting necessity 2021-01-13 18:36:37 +09:00
Dean Herbert
9086d75542 Update write usages 2021-01-13 18:36:37 +09:00
Dean Herbert
9d744d629f Update existing usages to use the main realm context where applicable 2021-01-13 18:36:37 +09:00
Dean Herbert
542f535247 Pull out thread local contexts and have main realm refresh in update loop 2021-01-13 18:36:37 +09:00
Dean Herbert
78707c3b06 Remove unused event 2021-01-13 18:36:37 +09:00
Dean Herbert
192e58e0c6 Update all read queries to use direct realm subscriptions/queries 2021-01-13 18:36:37 +09:00
Salman Ahmed
f827c62081 Add empty online info to test beatmap
This is for `BeatmapSetOverlay` to not eat a null reference trying to access `Beatmap.OnlineInfo`.
2021-01-13 12:27:15 +03:00
Salman Ahmed
1502b07ea8 Add explicit pill to playlist items 2021-01-13 12:27:15 +03:00
Salman Ahmed
78631323ba Add explicit pill to beatmap overlay 2021-01-13 12:13:14 +03:00
Salman Ahmed
f6637eec36 Add explicit pill to beatmap panels 2021-01-13 12:13:14 +03:00
Salman Ahmed
ee6baeb57e Add "explicit" marker pill 2021-01-13 12:13:14 +03:00
Salman Ahmed
e8daea91d2 Add online beatmap "explicit content" property 2021-01-13 12:13:14 +03:00
Mysfit
7bfb5954a8 Fix whitespace formatting. 2021-01-13 00:25:54 -05:00
Mysfit
5f10bcce02 Added beatmap colour settings checkbox and associated tests. 2021-01-13 00:09:22 -05:00
Bartłomiej Dach
2d3cacca11 Fix non-hosts crashing on load requested
`onLoadRequested()` always released the `readyClickOperation` ongoing
operation, without checking whether it actually needs to/should (it
should only do so if the action initiating the operation was starting
the game by the host). This would crash all other consumers, who already
released the operation when their ready-up operation completed server
side.

To resolve, relax the constraint such that the operation can be ended
multiple times in any order. At the end of the day the thing that
matters is that the operation is done and the ready button is unblocked.
2021-01-13 00:58:53 +01:00
Dean Herbert
7298adc9d9 Fix non-threadsafe usage of MultiplayerClient.IsConnected 2021-01-12 19:04:16 +09:00
Dean Herbert
b51b07c3a9 Fix unstable multiplayer room ordering when selection is made 2021-01-12 18:05:29 +09:00
smoogipoo
9a22df2b88 Fix BPM multiplier not working in all cases 2021-01-12 17:50:22 +09:00
Dean Herbert
422260797b Revert polling changes to fix participant list display
It turns out this polling was necessary to get extra data that isn't
included in the main listing request. It was removed deemed useless, and
in order to fix the order of rooms changing when selecting a room.
Weirdly, I can't reproduce this happening any more, and on close
inspection of the code can't see how it could happen in the first place.

For now, let's revert this change and iterate from there, if/when the
same issue arises again.

I've discussed avoiding this second poll by potentially including more
data (just `user_id`s?) in the main listing request, but not 100% sure
on this - even if the returned data is minimal it's an extra join
server-side, which could cause performance issues for large numbers of
rooms.
2021-01-12 17:26:00 +09:00
Salman Ahmed
24c1839739 Add global web setting for allowing explicit content 2021-01-12 11:10:25 +03:00
Salman Ahmed
249be461d5 Add "explicit maps" search filter control 2021-01-12 11:09:55 +03:00
Dean Herbert
765d9cfae1 Use direct access for query pattern 2021-01-12 17:01:40 +09:00
Dean Herbert
46a1d99c74 Allow detach to be run against an IQueryable directly 2021-01-12 17:01:16 +09:00
Dean Herbert
f0a9688baa Remove unnecessary mapped type 2021-01-12 15:50:09 +09:00
Dean Herbert
7769d95e7b Add xmldoc for extension methods 2021-01-12 15:48:26 +09:00
Dean Herbert
a6997a6fc6 Move ruleset key binding registration to an explicit method rather than the constructor 2021-01-12 15:21:02 +09:00
Dean Herbert
ff16d2f490 Mark classes nullable 2021-01-12 15:21:02 +09:00
Dean Herbert
2e4c3c8e39 Avoid closing initial context after migrations (unnecessary) 2021-01-12 14:45:36 +09:00
Dean Herbert
0dca9c8c46 Tidy up RealmContextFactory; remove delete/dispose method which wouldn't work due to threading 2021-01-12 14:45:36 +09:00
Dean Herbert
8cbad1dc1c Add logging of opened and created contexts 2021-01-12 14:45:36 +09:00
Dean Herbert
ffb42c37df Move schema version to const 2021-01-12 14:45:36 +09:00
Dean Herbert
0789621b85 Elaborate on comment mentioning migrations 2021-01-12 14:45:36 +09:00
Dean Herbert
8f9b19a76e Detach at point of usage, rather than point of retrieval 2021-01-12 14:45:36 +09:00
Dean Herbert
536e7229d0 Remove unused EF class and unnecessary interface 2021-01-12 14:45:36 +09:00
Dean Herbert
fc55d67c66 Add helper method for detaching lists from realm 2021-01-12 14:45:36 +09:00
Dean Herbert
d810af82ec Expose Live.Detach() method for ease of use 2021-01-12 14:45:36 +09:00
Dean Herbert
dd50b5870e Move extensions methods into own class 2021-01-12 14:45:36 +09:00
Dean Herbert
6736db327a Remove scheduler being passed in for now 2021-01-12 14:45:36 +09:00
Dean Herbert
a13b6abcff Remove incorrect default specification from IRealmFactory interface 2021-01-12 14:45:36 +09:00
Dean Herbert
70689eee2b Perform initial lookup if original is not managed 2021-01-12 14:45:36 +09:00
Dean Herbert
406e640fa9 Make key binding update method support all kinds of realm object states 2021-01-12 14:45:36 +09:00
Dean Herbert
05ca016deb Make Live implement IHasGuidPrimaryKey 2021-01-12 14:45:36 +09:00
Bartłomiej Dach
0d5fbb15ac Fix up code comments
Default value restated in xmldoc was snipped because it's made redundant
by the initialiser and possibly bound to be outdated at some point.
2021-01-11 20:31:52 +01:00
Salman Ahmed
90fb67b377 Update code in-line with decided direction 2021-01-11 20:52:24 +03:00
Dean Herbert
20584c9e16 Add full xmldoc for Live class 2021-01-11 19:28:19 +09:00
Dean Herbert
dd809df076
Merge pull request #11118 from MiraiSubject/tourney-switching-ui
Add the ability to switch tournaments to the SetupScreen
2021-01-11 16:36:45 +09:00
Dean Herbert
9f64f6059f Rename RealmWrapper to Live 2021-01-11 16:31:36 +09:00
Dean Herbert
5bb4d35982 Make RealmWrapper nullable enabled 2021-01-11 16:31:36 +09:00
Dean Herbert
cdb3d20fc6 Remove unnecessary warning suppression 2021-01-11 16:31:36 +09:00
Dean Herbert
6c90f9ceed Move RealmWrapper to own file 2021-01-11 16:31:36 +09:00
Dean Herbert
6fd098ca7c Add full xmldoc to RealmKeyBindingStore 2021-01-11 16:31:36 +09:00
Dean Herbert
f9717e8b69 Don't migrate existing key bindings across if realm is already populated 2021-01-11 16:31:36 +09:00
Dean Herbert
56d34432f9 Move public members up 2021-01-11 16:31:36 +09:00
Dean Herbert
1abed11fb7 Add basic migration logic of key bindings to realm 2021-01-11 16:31:36 +09:00
Dean Herbert
a1cb6d8c54 Remove unnecesssary local conversion method 2021-01-11 16:31:36 +09:00
Dean Herbert
86daf65630 Fix primary key not being populated for KeyBinding 2021-01-11 16:31:35 +09:00
Dean Herbert
8765aaf9e6 Use IKeyBinding for all key binding usages (and add update flow via primary key) 2021-01-11 16:31:35 +09:00
Dean Herbert
a77519c6bd Store KeyBinding action to its own field in realm
Also improve the Query method for action types by using generic field
2021-01-11 15:52:49 +09:00
Dean Herbert
43f417b53a Add and consume IKeyBindingStore interface 2021-01-11 15:52:49 +09:00
Dean Herbert
a9a3a95991 Replace KeybindingStore with realm version 2021-01-11 15:52:49 +09:00
Dean Herbert
382a40b243 Tidy up some missed inspections in RealmContextFactory 2021-01-11 15:52:49 +09:00
Dean Herbert
391259c713 Add missing implementation details to realm keybinding store 2021-01-11 15:52:49 +09:00
Dean Herbert
ee6a26bd6e Initialise new key bindings with a primary key 2021-01-11 15:52:49 +09:00
Dean Herbert
845d5cdea2 Switch guid to store as string until fody issues are resolved
See
https://github.com/realm/realm-dotnet/issues/740#issuecomment-755898968
2021-01-11 15:52:49 +09:00
Dean Herbert
ae76eca564 Add basic realm migration support 2021-01-11 15:52:49 +09:00
Dean Herbert
5d7ab4a7f1 Rename global statistics to be specific to realm 2021-01-11 15:52:49 +09:00
Dean Herbert
d5ac97ece8 Add realm store / key binding implementations 2021-01-11 15:52:49 +09:00
Dean Herbert
5372d95d16 Initialise FodyWeavers 2021-01-11 15:52:49 +09:00
Dean Herbert
9cfede2e7e Setup context, write usage, wrapper classes 2021-01-11 15:52:49 +09:00
Dean Herbert
dce9937e9b Add automapper for detaching support 2021-01-11 15:52:49 +09:00
Dean Herbert
ee103c9a1e Add prerelease realm package 2021-01-11 15:52:49 +09:00
Salman Ahmed
2286e3679f Downloaded -> Importing 2021-01-11 08:21:07 +03:00
Salman Ahmed
a8dfa5e2a9 Rename typo'd method 2021-01-11 08:04:00 +03:00
Salman Ahmed
e99310b59c Add JsonConstructor attribute 2021-01-11 08:02:57 +03:00
Dean Herbert
d2ca6da0fd Remove unused constant 2021-01-11 01:56:09 +09:00
Dean Herbert
bd37723788 Expose as IBindable for added safety 2021-01-11 01:55:54 +09:00
Dean Herbert
e4eb44df6e Merge branch 'master' into fix-play-button-crashes 2021-01-11 01:46:41 +09:00
Shivam
959696c296 Merge branch 'master' into tourney-switching-ui 2021-01-10 17:34:03 +01:00
Shivam
e5c670f843 Merge branch 'master' into tourney-switching-ui 2021-01-10 17:33:52 +01:00
Bartłomiej Dach
d110ed9e95 Merge branch 'master' into fix-mod-buttons-not-copying-settings 2021-01-10 15:42:33 +01:00
Bartłomiej Dach
4b4adc927c Rename param to match method body 2021-01-10 15:35:53 +01:00
Dean Herbert
4e32b0d6de
Merge branch 'master' into ongoing-operation-tracker-safety 2021-01-10 23:05:03 +09:00
Dean Herbert
95ad324a39
Merge branch 'master' into fix-mod-buttons-not-copying-settings 2021-01-10 23:01:54 +09:00
Dean Herbert
e81f9e358e
Merge pull request #11448 from bdach/fix-editor-enter-crash
Fix editor crashing on enter if login overlay was previously opened
2021-01-10 12:59:47 +09:00
Bartłomiej Dach
8c3955d341 Improve safety of ongoing operation tracker
Finishing an operation started via
`OngoingOperationTracker.BeginOperation()` was risky in cases where the
operation ended at a callback on another thread (which, in the case of
multiplayer, is *most* cases). In particular, if any consumer registered
a callback that mutates transforms when the operation ends, it would
result in crashes after the framework-side safety checks.

Rework `OngoingOperationTracker` into an always-present component
residing in the drawable hierarchy, and ensure that the
`operationInProgress` bindable is always updated on the update thread.
This way consumers don't have to add local schedules in multiple places.
2021-01-09 22:45:24 +01:00
Dean Herbert
b69fe8a274
Merge branch 'master' into disable-repeat-multi-actions 2021-01-09 10:15:20 +09:00
Salman Ahmed
0aad0c7c6c Target logic at this and adjust variables 2021-01-09 00:31:18 +03:00
Bartłomiej Dach
ff60d652ed Move out test ongoing operation tracker to higher level 2021-01-08 22:28:21 +01:00
Salman Ahmed
375ecf92ed Merge remote-tracking branch 'upstream/master' into fix-mod-buttons-not-copying-settings 2021-01-09 00:26:18 +03:00
Bartłomiej Dach
c2eeb822b8 Rename {joiningRoom -> operationInProgress} 2021-01-08 22:23:38 +01:00
Bartłomiej Dach
dad5dd3667 Remove unnecessary permissiveness wrt null 2021-01-08 22:21:54 +01:00
Bartłomiej Dach
284d30d336 Move screen activity update to LoadComplete()
Fixes a potential crash when moving from main menu to editor after
having previously opened the login settings overlay. Setting the
activity in BDL as done before is unsafe, as that set can trigger value
change callbacks, which in turn can trigger adding transforms, which
should always be done on the update thread.

Semantically it also makes sense, as the user activity should change
once the screen they're moving to has actually loaded and displayed to
the user.
2021-01-08 21:18:15 +01:00
Bartłomiej Dach
274a045d8d Remove Dispose() override
Culls another non-thread-safe mutation of the `Playing` bindable.
It seems to be a weird vestige from an earlier revision of the old
"direct" panel, which relied on `DisposeOnDeathRemoval` to finish track
playback (and then was removed in
6c150c9ed7). The play button is no longer
responsible for managing preview track lifetime anyway;
`PreviewTrackManager`'s method are intended for that.
2021-01-08 20:08:19 +01:00
Bartłomiej Dach
52789118a3 Schedule play button state update
Revealed by the framework-side transform thread safety checks. `Stopped`
is even annotated as not being thread-safe (but was annotated as such
long after the class's nascence).
2021-01-08 20:08:19 +01:00
Dean Herbert
8a7a1fc40a
Merge pull request #11439 from peppy/improve-hover-sounds-debounce
Improve hover sounds playback (to reduce volume saturation and delay)
2021-01-09 02:31:02 +09:00
Bartłomiej Dach
49c6abcb5c Remove mention of default value in xmldoc
Just bound to get outdated with every change anyway. Look at the actual
default value declaration to see what the default is.
2021-01-08 18:26:41 +01:00
Bartłomiej Dach
d507a08951 Start with null last hover playback time 2021-01-08 18:16:03 +01:00
Dean Herbert
3bb71e4b77
Merge branch 'master' into fix-transform-mutation-mod-selection 2021-01-09 01:44:52 +09:00
Dean Herbert
8feaf3fb6a Update framework 2021-01-09 01:24:18 +09:00
Dean Herbert
05ba5d4c31
Merge pull request #11438 from bdach/difficulty-adjust-defaults
Fix difficulty adjust mod treating default values as user overrides
2021-01-09 01:18:34 +09:00
Bartłomiej Dach
0cf5be3ef4 Fix selection change event being invoked with wrong mod 2021-01-08 17:02:57 +01:00
Dean Herbert
edd328c8fe Move bindable closer to source class 2021-01-08 17:24:55 +09:00
Dean Herbert
c208800150 Fix auto selection scenario regressing due to scheduling too much 2021-01-08 14:17:14 +09:00
Dean Herbert
e156bcdcae Remove unnecessary (and broken) requiresDebounce check 2021-01-08 14:05:34 +09:00
Dean Herbert
11801d61c1 Use nullable doubule to better represent initial playback case 2021-01-08 14:05:22 +09:00
Dean Herbert
22981a667c Merge branch 'master' into fix-transform-mutation-mod-selection 2021-01-08 11:16:22 +09:00
Dean Herbert
4973e23003 Merge branch 'master' into fix-transform-mutation-mod-selection 2021-01-08 11:16:15 +09:00
Dean Herbert
2cfd1e8b47
Merge branch 'master' into fix-control-point-pollution 2021-01-08 00:02:45 +09:00
Dean Herbert
3c3e860dbc Move ControlPointInfo copying to base Beatmap.Clone method (and remove setter) 2021-01-07 23:52:04 +09:00
Dean Herbert
77b55212a3 Change access of beatmap to use working for consistency in file 2021-01-07 19:11:51 +09:00
Dean Herbert
42643fbaf6 Use already resolved EditorBeatmap rather than resolving a second time locally 2021-01-07 19:10:19 +09:00
Dean Herbert
00dc98e3ab Make legacy control point's BpmMultiplier setter private again 2021-01-07 19:06:52 +09:00
Dean Herbert
69ac22dd7f Fix incorrectly copy pasted xmldoc 2021-01-07 19:06:10 +09:00
Dean Herbert
8f52a83b29 Share hover sound debounce across all instances via SessionStatics 2021-01-07 18:47:20 +09:00
Dean Herbert
6620eadec3 Reduce default hover sound debounce interval 2021-01-07 18:47:03 +09:00
Bartłomiej Dach
303cc62ee7 Transfer flags indicating if settings were changed 2021-01-06 22:46:46 +01:00
Bartłomiej Dach
4998aaaa98 Remove outdated warning disable
Does not trigger any more on Rider 2020.3.2.
2021-01-06 18:38:25 +01:00
Bartłomiej Dach
68352782db Change .StartsWith() to .Equals()
In line with planned-but-delayed breaking change.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
9cc63e8dce Remove obsoleted IHasEndTime 2021-01-06 18:38:24 +01:00
Bartłomiej Dach
539785e422 Remove obsoleted IHasCurve 2021-01-06 18:38:24 +01:00
Bartłomiej Dach
09742998cd Fix mistaken obsoletion notice
It was added in c9f38f7bb6, which
specified 2021 in another place (and was committed in October of 2020
anyway). Update the year so that it doesn't get culled prematurely.
2021-01-06 18:38:24 +01:00
Bartłomiej Dach
a761ec952a
Merge branch 'master' into remove-osu-direct 2021-01-06 17:32:12 +01:00
Dean Herbert
866fb28d6c
Merge pull request #11411 from LavaDesu/feature/discord-presence-toggle
Add ability to toggle discord rich presence
2021-01-07 00:52:38 +09:00
Bartłomiej Dach
4c2caec72e
Merge branch 'master' into remove-osu-direct 2021-01-06 16:49:38 +01:00
Dean Herbert
35be7ec0e1 Add back button but rename to "browse" 2021-01-06 23:28:14 +09:00
Dean Herbert
cfbfb8d58b Revert "Remove related events"
This reverts commit 59025e9d50.
2021-01-06 23:21:46 +09:00
Dean Herbert
283c69a68f Update enum name in line with changes 2021-01-06 23:12:56 +09:00
Dean Herbert
59025e9d50 Remove related events 2021-01-06 23:09:58 +09:00
Dean Herbert
32accc8eab Remove "osu!direct" button 2021-01-06 22:56:10 +09:00
Bartłomiej Dach
7651d4554a
Merge branch 'master' into fix-transform-carousel 2021-01-06 13:49:05 +01:00
Bartłomiej Dach
43b9fde457 Add some nullability annotations for good measure 2021-01-06 13:15:15 +01:00
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
Bartłomiej Dach
6572bb18de
Merge branch 'master' into fix-transform-mutation-display-settings 2021-01-06 10:09:14 +01: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