1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-18 04:32:55 +08:00
Commit Graph

32422 Commits

Author SHA1 Message Date
Dan Balasescu
62f5409191
Merge pull request #17725 from peppy/multiplayer-hotifx
Avoid multiplayer crashes when events arrive in unexpected order
2022-04-08 20:23:37 +09:00
Dan Balasescu
1f5e435bb3
Merge pull request #17726 from peppy/update-framework
Update framework
2022-04-08 19:48:24 +09:00
Dean Herbert
ea4ca6d2ad Update framework 2022-04-08 18:09:57 +09:00
Dean Herbert
5c571996d8 Avoid multiplayer crashes when events arrive in unexpected order
Intended to be a temporary fix for
https://github.com/ppy/osu/issues/17713 while a more permanent solution
is established. A proper fix is actually quite simple, but updating the
test to work with it is... *slightly* more complicated.

This hotfix will mean that if a `UserJoined` event arrives during the
unobserved window during room join (of the local user), the local user
still won't see the joining user, but the game won't crash as a result.
2022-04-08 17:55:47 +09:00
Dean Herbert
6bb8243212 Fix potential assert failure due to Room access from disconnection event 2022-04-08 17:41:03 +09:00
Dan Balasescu
975bb8cc2a
Merge pull request #17703 from peppy/fix-storyboard-fallback-animation-frame-count-weirdness
Fix `DrawableStoryboardAnimation` to handle skin fallback frame count similar to stable
2022-04-08 17:01:17 +09:00
Dan Balasescu
c48f8d7b9b
Merge pull request #17714 from bdach/mod-overlay/multimod-incompatibility
Ensure that mods grouped into multi mods are pairwise incompatible
2022-04-08 16:43:06 +09:00
Dean Herbert
933a722cfc Remove secondary null checks which cannot exist (were on wrong thread) 2022-04-08 14:56:04 +09:00
Dean Herbert
24c2d465a9 Move null assert in MultiplayerPlayer on to update thread 2022-04-08 14:53:14 +09:00
Dean Herbert
64c63fe93a Move null check in JoinRoom on to update thread 2022-04-08 14:52:56 +09:00
Dean Herbert
d50f41225f Rename scheduleAsync to runOnUpdateThreadAsync 2022-04-08 14:43:53 +09:00
Dean Herbert
9ba99ed57d Ensure all access to MultiplayerClient.Room is on the update thread
This was an implicit requirement until now, but not well documented
everywhere. Adding this makes it much easier to understand the
requirement (and probably safer).
2022-04-08 14:42:56 +09:00
Bartłomiej Dach
282b220d94
Fix test failure due to checking incompaatibility of flattened multi mods 2022-04-08 00:16:50 +02:00
Bartłomiej Dach
6630b38c08
Make all ModRateAdjust implementations incompatible with each other 2022-04-07 22:38:46 +02:00
Bartłomiej Dach
8175741a6c
Merge branch 'master' into fix-storyboard-fallback-animation-frame-count-weirdness 2022-04-07 21:49:32 +02:00
Bartłomiej Dach
71c0216c55
Add null check guards to unsubscriptions in Dispose() 2022-04-07 21:37:42 +02:00
Bartłomiej Dach
3016ce7817
Merge branch 'master' into bindable-safety-skin-editor 2022-04-07 20:59:44 +02:00
Bartłomiej Dach
e658b63dbc
Merge branch 'master' into clock 2022-04-07 20:27:23 +02:00
Salman Ahmed
a616f5bc2a Fix regressed digital clock width conditional 2022-04-07 19:24:15 +03:00
Dean Herbert
11b4c5ca87 Fix potential null ref if UpdateTargetScreen is called too early 2022-04-07 23:42:42 +09:00
Salman Ahmed
c323020fcf Fix Use24HourDisplay conditional flipped 2022-04-07 15:56:28 +03:00
Salman Ahmed
fb9fe4213d Fix skin texture lookups not handling paths with extensions 2022-04-07 15:07:30 +03:00
Dean Herbert
a4d3afd06d Fix multiple issues with bindable safety in SkinEditor components 2022-04-07 19:12:12 +09:00
Dean Herbert
b2c0eaeab4 Make string read better 2022-04-07 18:20:15 +09:00
Dean Herbert
555aee7b6a Remove incorrect and pointless complexity to width changes 2022-04-07 18:16:14 +09:00
Dean Herbert
7530fe5adf Move default specification to configuration initial value 2022-04-07 18:13:23 +09:00
Dean Herbert
37509e04a9 Rename variable and fix inspections 2022-04-07 18:11:30 +09:00
Dean Herbert
040afff670 Change DrawableStoryboardAnimation to derive from TextureAnimation 2022-04-07 17:35:59 +09:00
Dean Herbert
cbc4e5319d Fix DrawableStoryboardAnimation to handle skin fallback frame count similar to stable
Reasoning is explained in the inline comment (basically, stable doesn't
care what the user specifies as the frame count when falling back to
skin resources).

This change also removes on to two layers of drawables, which should be
a win in heavy storyboards.
2022-04-07 17:35:56 +09:00
Dean Herbert
93bdca5211 Split out GetTextures helper function for LegacySkins 2022-04-07 17:28:48 +09:00
Dan Balasescu
f0698937b7
Merge pull request #17700 from peppy/fix-skin-lookups-extension-specified
Fix filename lookups on `LegacySkin`s going awry when extension is specified
2022-04-07 17:03:27 +09:00
Dan Balasescu
5af93bd85d
Merge pull request #17701 from peppy/fix-storyboard-animation-sizing
Fix storyboard animations getting incorrect positioning due to size not being set
2022-04-07 17:00:39 +09:00
Dean Herbert
a7e262627f Fix DrawableStoryboardAnimation not specifying sizing correctly
Usually this would be handled by `TextureAnimation`, but because we are
inheriting from `DrawableAnimation` here for reasons, we needed to
implement this ourselves. Follows the implementation in
`TextureAnimation`.
2022-04-07 15:18:55 +09:00
Dean Herbert
eb0653fa7b
Merge pull request #17698 from Joehuu/fix-replay-button-local-being-disabled
Fix replay button being disabled when available locally but not online
2022-04-07 14:18:02 +09:00
Dean Herbert
205edb65a2 Fix filename lookups on LegacySkins going awry when extension is specified
Due to the logic present to handle `@2x` fallback, the extension was
potentially being added at the wrong point in the filename. This change
ensures that the lookup filenames are always correct.

Closes https://github.com/ppy/osu/issues/17690.
2022-04-07 14:16:19 +09:00
Dean Herbert
9ed4f31048 Update resources 2022-04-07 13:35:07 +09:00
Joseph Madamba
358931842f Move enabled setting to each case 2022-04-06 21:22:56 -07:00
Jamie Taylor
8a73831115
Add MP lobby 'warning' SFX for the final seconds of countdown 2022-04-07 13:12:33 +09:00
Joseph Madamba
4432a93d09 Fix replay button being disabled when available locally but not online 2022-04-06 20:43:56 -07:00
Dan Balasescu
c997d0fcf0
Merge pull request #17631 from bdach/mod-overlay/full-screen
Implement basic layout & behaviour of new mod select screen
2022-04-07 10:23:49 +09:00
Dan Balasescu
4c20e67478
Merge pull request #17683 from huoyaoyuan/remove-outdated
Remove some outdated packages
2022-04-07 10:13:15 +09:00
Dan Balasescu
c440d89ef9
Merge pull request #17678 from peppy/get-virtual-time-length
Change `WorkingBeatmap.GetVirtualTrack` to use length provided by `BeatmapInfo`
2022-04-07 09:32:59 +09:00
Dan Balasescu
4b3569ea79
Merge pull request #17576 from peppy/fix-multiplayer-unobserved
Centralise exception handling of `MultiplayerClient` calls
2022-04-07 09:09:55 +09:00
Huo Yaoyuan
ec4f1bcbc8 Remove outdated NETCore packages. 2022-04-06 19:18:18 +08:00
Dean Herbert
c42ef43faa Ensure intro beatmap has protected flag set
In cases this isn't set, the beatmap has likely entered a bad state.

Closes https://github.com/ppy/osu/issues/17659.
2022-04-06 16:46:53 +09:00
Dean Herbert
2b8a5833dd Fix back-to-front conditional check 2022-04-06 15:13:02 +09:00
Dean Herbert
552ec5282f Change WorkingBeatmap.GetVirtualTrack to use length provided by BeatmapInfo
A lot of tests are using test resources that populate the length field,
but do not populate hitobjects. The general expectation is that
components should be using the cached length in cases where hitobjects
are not relevant, but `GetVirtualTrack` was doing its own local
calculation.

This could cause tests to fail due to `MusicController` changing track
in the background.
2022-04-06 14:51:15 +09:00
Dean Herbert
f795f77cf9 Add missing newline 2022-04-06 14:00:54 +09:00
Dean Herbert
a3695c7e97
Merge branch 'master' into fix-spectator-seeks 2022-04-06 12:58:43 +09:00
Dean Herbert
c540810943
Merge branch 'master' into fix-multiplayer-unobserved 2022-04-06 11:33:10 +09:00
Dean Herbert
01da3924cc Simplify IsCurrentScreen check to only apply to relevant call 2022-04-06 11:32:35 +09:00
Perry MacMurray
2525ec0d18 Switch 24H toggle from UI settings to language settings 2022-04-05 17:07:58 -04:00
Perry MacMurray
9d475f7b33 Add config in settings for forcing 24H time, determines default off CurrentCulture 2022-04-05 16:21:28 -04:00
Bartłomiej Dach
9c91e6d8f5
Merge branch 'master' into mod-overlay/full-screen 2022-04-05 21:29:40 +02:00
Perry MacMurray
74706f72e6 Add 12-hour display setting (TODO add toggle) 2022-04-05 15:10:55 -04:00
Dean Herbert
ac799aaf7a Add missing newline 2022-04-05 19:25:47 +09:00
Dean Herbert
32daf64a31 Use newly exposed framework helper function to find closest parent 2022-04-05 19:24:34 +09:00
Dean Herbert
631aa2a6ec Remove left padding to allow left-most column to exist further to the.. left 2022-04-05 18:44:25 +09:00
Dean Herbert
54715885af Adjust animation metrics slightly 2022-04-05 18:41:01 +09:00
Dean Herbert
7a1820e6bb Fix multiplier display resetting transformations 2022-04-05 18:40:48 +09:00
Dean Herbert
9fdeb20537 Animate individual ModColumns during togle of oerlay 2022-04-05 18:27:34 +09:00
Dean Herbert
901032bfa2 Animate multiplier display 2022-04-05 18:25:27 +09:00
Dan Balasescu
7623f3b90b
Merge branch 'master' into skin-editor-import-at-cursor 2022-04-05 17:39:11 +09:00
Dan Balasescu
2b59f76b2d
Merge pull request #17596 from peppy/skin-editor-sprites
Allow importing sprites into a skin via drag-and-drop
2022-04-05 17:38:58 +09:00
Dean Herbert
497e5e3a36 Slightly adjust scroll handling and also apply to ModSettingsContainer 2022-04-05 17:19:33 +09:00
Dean Herbert
a408776734 Limit FillFlow of columns to applicable direction 2022-04-05 17:15:05 +09:00
Dean Herbert
388322cd61 Speed up customisation panel toggle a bit 2022-04-05 16:56:24 +09:00
Dean Herbert
58e9147b12 Simplify and better comment nested scroll conditionals 2022-04-05 16:48:25 +09:00
Dan Balasescu
2ec15a1ebe Fix lookup through transformers 2022-04-05 16:47:15 +09:00
Dean Herbert
f156cb797d Improve nested scroll behaviour 2022-04-05 16:46:09 +09:00
Dean Herbert
23dad7bdc4 Move scroll view padding to content level
Without doing this, there is a non-masked but also non-interactive area
to the left or right of the view.
2022-04-05 16:43:00 +09:00
Dan Balasescu
c973d33bfd
Merge pull request #17604 from nekodex/mp-countdown-sfx
Add SFX for multiplayer lobby countdown timer
2022-04-05 16:40:26 +09:00
Dean Herbert
3d8ae0465f Reword comment slightly 2022-04-05 15:51:04 +09:00
Dean Herbert
8e543204cd Remove debounce logic (not required after switching to Update clock time) 2022-04-05 15:49:47 +09:00
Dean Herbert
5f415cbe53 Full potential null reference and add better commentary on countdown scheduling 2022-04-05 15:48:18 +09:00
Dean Herbert
d0f83885ce Appease the CI 2022-04-05 13:20:34 +09:00
Dean Herbert
31bf0c4a9b Disable "final" sample in countdown for the time being 2022-04-05 13:16:06 +09:00
Dean Herbert
174dc1641c Fix multiple issues with timekeeping
- Using realtime (`DateTimeOffset.Now`) meant that values would be
  changing in the same frame, causing misfirings or incorrect displays
- No debounce on sample playback meant that scheduling edge cases could
  potentially cause samples to be played more than once.
2022-04-05 11:49:58 +09:00
Dean Herbert
3ca365ad7f
Merge branch 'master' into dangerous-delete-actions 2022-04-05 10:55:01 +09:00
Ame
32c89f8643 Handle repeated OnPressed() on FooterButton (without FooterButtonRandom) 2022-04-05 00:33:41 +02:00
Bartłomiej Dach
f73062a0d6
Revert "Remove nullable on RealmBackedResourceStore realm parameter"
This reverts commit 09e15f5496.
2022-04-04 22:22:55 +02:00
Bartłomiej Dach
9b367d645d
Always play pop in sequence 2022-04-04 20:02:47 +02:00
CenTdemeern1
9a07a95d39 Make several delete confirmation buttons dangerous buttons
Includes:
- Mass deletion
- Beatmap deletion
- Local score deletion
2022-04-04 19:22:53 +02:00
Dean Herbert
3708f2b744 Update resources 2022-04-05 01:05:04 +09:00
Dean Herbert
64ba24c4f7 Merge branch 'master' into mp-countdown-sfx 2022-04-05 01:04:57 +09:00
Dan Balasescu
cbcbcd1a4a
Merge pull request #17643 from peppy/stable-countdown
Stabilise countdown updates to be based on when whole seconds change
2022-04-04 22:19:06 +09:00
Dean Herbert
6b5ee6d89d Update framework 2022-04-04 20:44:05 +09:00
Dean Herbert
57b8c32f25 Remove unused fields 2022-04-04 20:42:14 +09:00
Dean Herbert
5f358a04e9 Return a valid "lighting" response from DefaultSkin
This is temporary to allow the new sprite lookup flow to potentially be
merged before hit lighting skinnability is addressed.
2022-04-04 20:40:20 +09:00
Dean Herbert
8185020f12 Improve the visual of the missing sprite sprite 2022-04-04 20:35:48 +09:00
Dean Herbert
de30a42558 Add region for import methods and move Dispose to end of time 2022-04-04 20:30:14 +09:00
Dean Herbert
dac5dfde8f Remove unnecessary LazyThreadSafetyMode specification 2022-04-04 20:28:43 +09:00
Dean Herbert
300feadf6a Update SkinnableSprite to match more broad usage 2022-04-04 20:27:46 +09:00
Dean Herbert
09e15f5496 Remove nullable on RealmBackedResourceStore realm parameter 2022-04-04 20:27:03 +09:00
Dean Herbert
bc53adb72a Adjust customisation transition slightly 2022-04-04 15:50:40 +09:00
Dean Herbert
b5df350007 Adjust pop in/out transitions 2022-04-04 15:45:44 +09:00
Dean Herbert
f00dc5e156
Merge pull request #17598 from smoogipoo/playlist-quick-reorder
Fix playlist refreshing all items on order change
2022-04-04 14:48:05 +09:00
Dean Herbert
0abebe4d23 Stabilise countdown updates to be based on when whole seconds change 2022-04-04 14:41:32 +09:00
Dean Herbert
ee8451c8ca
Merge branch 'master' into osu-diff-calc-max-combo 2022-04-04 14:20:44 +09:00
Dean Herbert
39c6eed819 Update resources 2022-04-04 14:10:57 +09:00
Dean Herbert
d6625413fa
Merge pull request #17617 from ajiiisai/proper-toggable-shortcuts-for-overlays
Make overlay shortcuts able to be toggled instead of repeatable
2022-04-04 13:46:42 +09:00
Dan Balasescu
e1f147a207 Mutate playlist in EditUserPlaylistItem 2022-04-04 13:46:41 +09:00
Bartłomiej Dach
cd776d21a6
Fix propagation of selected mods to columns 2022-04-03 20:12:34 +02:00
Bartłomiej Dach
e46c2df409
Add testing for customisation panel show/hide logic 2022-04-03 20:12:33 +02:00
Bartłomiej Dach
293ef44836
Implement new mod select screen 2022-04-03 20:12:33 +02:00
Bartłomiej Dach
1393e3628b
Invert operands for better readability 2022-04-03 15:24:00 +02:00
Dean Herbert
969f7e121a
Merge pull request #17545 from jai-x/new-chat-textbox
Implement `ChatTextBox` for new chat design
2022-04-03 22:12:12 +09:00
Bartłomiej Dach
970b1951ac
Rewrite logic slightly to better convey meaning of textbox clear 2022-04-03 14:26:08 +02:00
Jai Sharma
94fa5e2ef2 Use Action<string> for event OnChatMessageCommitted & clear textbox internally 2022-04-02 21:58:54 +01:00
Ame
35629e9be8 General fix for ToolbarButton toggle repetition 2022-04-02 20:45:00 +02:00
Ame
0f94616890 Make overlay shortcuts able to be toggled instead of repeatable 2022-04-02 19:41:15 +02:00
Bartłomiej Dach
28ba437d24
Merge branch 'master' into sucess-rate-tooltip 2022-04-02 19:31:45 +02:00
Jai Sharma
9e152cd3fd Fix code quality issues 2022-04-02 17:27:44 +01:00
Jai Sharma
2297073b7e Use OnChatMessageCommit & OnSearchTermsChanged events in ChatTextBar 2022-04-02 17:15:19 +01:00
Jai Sharma
b9421d1415 Simplify text clear and placeholder change in ChatTextBox 2022-04-02 17:14:27 +01:00
Salman Ahmed
beb8426d3b Save beatmap listing card size to game config 2022-04-02 18:36:49 +03:00
Salman Ahmed
ced5be33e6 Display pass/play count in success rate percentage tooltip 2022-04-02 18:08:57 +03:00
Jamie Taylor
0f4b75ab15
Add multiplayer lobby countdown SFX 2022-04-01 21:33:57 +09:00
Dan Balasescu
6776c37bbc
Merge pull request #17592 from peppy/skin-mutation-better-naming
Fix automatically created "(modified)" skins getting conflicting names
2022-04-01 21:25:10 +09:00
Dean Herbert
43d03f2825 Put ToArray call in correct place in brackets 2022-04-01 19:30:16 +09:00
Dan Balasescu
6e6271d0c0 Fix "server-side" room playlist not updated
Remove unused using
2022-04-01 18:32:10 +09:00
Dan Balasescu
16d4544ff9 Prevent reloads when playlist item order changes 2022-04-01 17:06:37 +09:00
Dean Herbert
01681ee874 Add missing ToArray call
Not sure where this went, was there in my original commit.
2022-04-01 16:19:02 +09:00
Dean Herbert
f0821ce1fc Import new skin editor sprites to the cursor location 2022-04-01 16:16:49 +09:00
Dan Balasescu
cabf6f501f
Merge pull request #17594 from peppy/move-skin-component-error-handling
Move `SkinnableInfo` error handling to lower level
2022-04-01 16:04:00 +09:00
Dean Herbert
6afed5e865 Fix new SettingsItem attribute not playing well with non-Drawables 2022-04-01 16:01:33 +09:00
Dean Herbert
bfd3406f5f Ensure that file is imported and caches are invalidated before placing new sprites 2022-04-01 16:01:33 +09:00
Dean Herbert
314ad63c6e Simplify available file lookup and include file extension 2022-04-01 16:01:33 +09:00
Dean Herbert
2b7105ac4f Add a default sprite representation to allow better placeholder display in skin editor toolbox 2022-04-01 16:01:33 +09:00
Dean Herbert
52eeaffce3 Limit lookup resources to images 2022-04-01 16:01:33 +09:00
Dean Herbert
d1be229d74 Combine SkinSprite into SkinnableSprite 2022-04-01 16:01:33 +09:00
Dean Herbert
762de3cc97 Replace invalidation logic with local realm notification subscription 2022-04-01 16:01:33 +09:00
Dean Herbert
9c3dad9fbf Add proof of concept flow to ensure RealmBackedResourceStore is invalidated on realm file changes
I'm not at all happy with this, but it does work so let's go with it for
now.
2022-04-01 16:01:33 +09:00
Dean Herbert
66f5eae530 Hook up a dropdown to show all available sprites for the current skin 2022-04-01 15:01:43 +09:00
Dean Herbert
fca9faac9b Add SkinnableSprite for arbitrary sprite additions 2022-04-01 14:36:36 +09:00
Dean Herbert
3a16483214 Add prioritised user lookups for default skin
This allows user resources to be consumed before falling back to the
game bundled assets.
2022-04-01 14:36:36 +09:00
Dean Herbert
01829cf2d8 Move SkinnableInfo error handling to lower level
Handling was recently added to handle the usage in
`Skin.GetDrawableCompoent`, but it turns out this is also required for
`DrawableExtensions.ApplySkinnableInfo` which can throw in a similar
fashion.

Found while working on sprite support for the editor, where this becomes
an actual issue (ie. switching to a branch where the new sprite support
is not present can cause unexpected crashes).
2022-04-01 14:30:04 +09:00
Dean Herbert
88306a6180 Disable ability to select random skin from within the skin editor
Reasoning is explained in inline comment.

I knowingly only applied this to the shortcut key. It's still feasible a
user can choose the option from the skin dropdown while the editor is
open, but that's less of an issue (because a user won't get the same
compulsion that I get to mash the key, only to be greeted with 100 new
mutable skins created).
2022-04-01 14:22:32 +09:00
Dean Herbert
69d4f86122 Fix automatically created "(modified)" skins getting conflicting names
Applies the already tested and proven method that is used in the editor
to the mutable skin creation flow.
2022-04-01 14:11:55 +09:00
Dean Herbert
6b9f5812a5
Merge pull request #17579 from CenTdemeern1/clock-button
Make the toolbar clock feel more like a button
2022-04-01 13:12:48 +09:00
Dean Herbert
10f15f2bdb
Merge pull request #17559 from bdach/mod-overlay/sheared-toggle
Implement sheared toggle button
2022-04-01 13:06:22 +09:00
Dean Herbert
338a21f4f0
Merge pull request #17581 from CenTdemeern1/remove-bpm-slider
Remove BPM slider
2022-04-01 11:59:16 +09:00
CenTdemeern1
86d262a355
Merge branch 'ppy:master' into clock-button 2022-03-31 23:08:30 +02:00
Bartłomiej Dach
1c7b259f8e
Merge branch 'master' into mod-overlay/sheared-toggle 2022-03-31 22:20:20 +02:00
Bartłomiej Dach
e180db145d
Add constructor argument to facilitate fixed width/autosizing 2022-03-31 22:19:08 +02:00
Bartłomiej Dach
b3896257ca
Move shear amount to constant 2022-03-31 22:09:03 +02:00
Bartłomiej Dach
e14d5b8adb
Remove unused using directives 2022-03-31 21:20:30 +02:00
CenTdemeern1
a6875383fc Rebind SaveState() to bpmTextEntry 2022-03-31 21:06:05 +02:00
CenTdemeern1
bdb21b17f7 Fix my code according to the changes @bdach requested 2022-03-31 20:39:26 +02:00
CenTdemeern1
52d723aaa6 Remove BPM slider 2022-03-31 20:11:07 +02:00
CenTdemeern1
c64a90b39e Remove a newline to comply with codefactor 2022-03-31 17:21:50 +02:00
CenTdemeern1
f1aa60c0f1 Make the clock feel more like a button 2022-03-31 16:26:53 +02:00
Dean Herbert
0b6db31511 Guard other multiplayer client calls with exception handling 2022-03-31 19:45:38 +09:00
Dean Herbert
e0c125a628 Replace existing usage with helper method 2022-03-31 19:27:45 +09:00
Dean Herbert
5b3eb2d6f4 Add helper class to handle firing async multiplayer methods 2022-03-31 19:27:45 +09:00
Dean Herbert
0a34ce2509 Increase font weight for runtime clock
Fonts this small are required to be `SemiBold` by design guidelines.
Somehow missed this.
2022-03-31 19:07:30 +09:00
Dan Balasescu
bc4d6a3ace
Merge pull request #17570 from peppy/fix-settings-textbox-focus
Focus focus not being transferred correctly to parent settings panel on exiting nested panel
2022-03-31 18:07:51 +09:00
Dean Herbert
ef5e37c47a Fix multiplayer sounds playing too much after gameplay
Regressed in https://github.com/ppy/osu/pull/15936.

Closes #17295.
2022-03-31 16:18:28 +09:00
Dean Herbert
ad14b7cac5
Merge pull request #17565 from smoogipoo/fix-gameplay-leaderboard-allocations
Remove ScoreInfo allocations in multiplayer leaderboard
2022-03-31 15:48:14 +09:00
Dean Herbert
726b49fdf3 Focus focus not being transferred correctly to parent settings panel on exiting nested panel
Seemingly harmless schedule delay ommission meant that the textbox may
not be in a state it can handle the incoming focus event. Regressed in
https://github.com/ppy/osu/pull/14345#discussion_r690697501.
2022-03-31 15:24:21 +09:00
Dean Herbert
e8a295a61b Add test coverage of textbox focus in settings panels when switching between nested panels 2022-03-31 15:24:21 +09:00
Dan Balasescu
40b6f3ff0a Rename method to CalculateAllLegacyCombinations() 2022-03-31 15:09:06 +09:00
Dan Balasescu
32e55e7d78 Merge branch 'master' into osu-diff-calc-max-combo 2022-03-31 15:08:08 +09:00
Joseph Madamba
36c02573a8 Fix osu! logo being clicked when exiting via cmd-q on initial state 2022-03-30 21:26:30 -07:00
Salman Ahmed
9c19ae1df8 Remove no longer necessary ruleset field 2022-03-31 06:40:38 +03:00
Dan Balasescu
6e94a9780b Remove ScoreInfo allocations in multi leaderboard 2022-03-31 12:23:00 +09:00
Dean Herbert
e0d434b89f Remove unused using statement 2022-03-31 11:34:32 +09:00
Dean Herbert
0cac935939 Shorten class name of ModCreatedReplayUser 2022-03-31 11:34:23 +09:00
Dean Herbert
2c1ccc7d36
Update obsolete message to match targeted developers' use case
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2022-03-31 11:33:26 +09:00
Dean Herbert
234bec45cc Remove unnecessary logging 2022-03-31 11:32:00 +09:00
Salman Ahmed
6874cdf0c8 Remove unnecessary public prefix in interface method 2022-03-31 01:50:46 +03:00
Bartłomiej Dach
3ac0da2da3
Implement sheared toggle button 2022-03-30 22:50:21 +02:00
Bartłomiej Dach
436dec68c9
Use provided extension method instead of reimplementing locally 2022-03-30 22:04:54 +02:00
Bartłomiej Dach
83bae81095
Fill out ICreateReplayData xmldocs 2022-03-30 22:04:54 +02:00
Jai Sharma
fff30e8a6e Simplify show/hide of text and search in ChatTextBar 2022-03-30 21:02:12 +01:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
Jai Sharma
eec3fef7a6 Remove the enter box in ChatTextBar 2022-03-30 20:25:23 +01:00
Salman Ahmed
0f144f6801
Merge branch 'master' into fix-countdown-refresh 2022-03-30 16:26:12 +03:00
Dan Balasescu
b60c253831
Merge pull request #17556 from peppy/fix-multiplayer-unobserved
Fix `MultiplayerMatchSongSelect` potentially attempting to exit when not the current screen
2022-03-30 21:10:11 +09:00
Dean Herbert
671386ba6c Fix MultiplayerMatchSongSelect potentially attempting to exit when not the current screen 2022-03-30 20:36:12 +09:00
Dan Balasescu
cb1ee05539
Merge pull request #17555 from peppy/remove-source-from-wedge
Remove song source from main wedge display
2022-03-30 18:57:25 +09:00
Dean Herbert
f9f6248101 Simplify string bindings 2022-03-30 17:59:45 +09:00
Dean Herbert
bc0b982102 Remove song source from main wedge display
This was definitely added at someone's request, since I wouldn't have
put it here. But it's displayed below in the details section already and
also not displayed in the updated "wedge" in the new design.

See https://github.com/ppy/osu/discussions/17537 for discussion.
2022-03-30 17:59:40 +09:00
Dean Herbert
99f141d396
Merge pull request #17546 from frenzibyte/autoplay-cinema-incompatibility
Mark both "Autoplay" and "Cinema" mods as mutually exclusive
2022-03-30 16:41:07 +09:00
Dean Herbert
bd3c401363
Merge pull request #17550 from smoogipoo/fix-score-display-race
Fix scores sometimes shown with incorrect scoring mode
2022-03-30 16:05:28 +09:00
Dean Herbert
975883da5c Move all usages of client.realm filename to a single const 2022-03-30 13:34:48 +09:00
Dan Balasescu
c311e11496
Merge pull request #17527 from peppy/switch-osu-folder
Add ability to "migrate" data to another folder which has an existing install
2022-03-30 13:20:49 +09:00
Dan Balasescu
4df63a4900 Prevent scores being calculated twice 2022-03-30 13:15:41 +09:00
Dan Balasescu
bd9c0076df Fix scores sometimes shown with incorrect scoring mode 2022-03-30 13:03:12 +09:00
Dan Balasescu
e869b7286a
Merge pull request #17547 from frenzibyte/m1-ignore-realm-migration
Ignore EF-to-realm migration tests on M1 ARM architectures
2022-03-30 11:47:29 +09:00
Dean Herbert
555e127bc2
Merge pull request #17510 from Wieku/combo-counter
Adjust legacy combo counter appearance to closer match stable
2022-03-30 11:17:30 +09:00
Jai Sharma
e7d2d94eee Fix code quality issues in ChatTextBar 2022-03-30 02:16:50 +01:00
Sebastian Krajewski
cb62d3d4b9 Remove skin dependency as component is reinitialized on skin change 2022-03-30 01:09:05 +02:00
Sebastian Krajewski
7582c943a4 Use In/Out instead of {In/Out}Quad 2022-03-30 00:48:59 +02:00
Salman Ahmed
986aad4bd5 Fix potential nullref on OsuGameTestScene.TearDownSteps 2022-03-30 01:15:24 +03:00
Salman Ahmed
cef1b93471 Improve behaviour of "Autoplay" shortcut during gameplay start
This also opens up the way to adding shortcut for "Cinema" mod
(Ctrl+Shift+Enter), but will leave adding that until there's a demand
for it.
2022-03-30 01:07:48 +03:00
Jai Sharma
f049d7cb67 Implement ChatTextBox for new chat design
Reference design: https://www.figma.com/file/f8b2dHp9LJCMOqYP4mdrPZ/Client%2FChat?node-id=1%3A297

Adds new component `ChatTextBox`.
Exposes `BindableBool` `ShowSearch` to change text input behaviour
between normal and search behaviour.

Adds new component `ChatTextBar`.
Exposes `BindableBool` `ShowSearch` which toggles between showing current
chat channel or search icon.
Additionally binds to child `ChatTextBox` components.
Requires a cached `Bindable<Channel>` instance to be managed by a parent
component.
2022-03-29 22:33:38 +01:00
Salman Ahmed
8d4356f23b Mark "autoplay" and "cinema" mods as mutually exclusive 2022-03-29 17:26:02 +03:00
Salman Ahmed
26b72fc449
Merge branch 'master' into fix-countdown-refresh 2022-03-29 16:16:36 +03:00
Salman Ahmed
9a09c97457 Fix "Barrel Roll" tooltip not limiting decimal places for spin speed 2022-03-29 16:11:44 +03:00
Dean Herbert
4741679a94
Change confirmation message to be more clear about intentions
Co-authored-by: Henry Lin <henry.ys.lin@gmail.com>
2022-03-29 19:03:50 +09:00
Salman Ahmed
cdc2ae7991
Merge branch 'master' into m1-migration-information 2022-03-29 13:03:36 +03:00
Dean Herbert
1fb3d11591 Add ability to "migrate" data to another folder which has an existing install
Until now, migrating would always attempt to move files.

There's a chance that a user is reinstalling osu! but has their data at
a custom location. We want to allow the chance for them to continue
using the external data. This seems like the easiest way to make it
work.

Would be nice if we had a `Game.Restart()` method, but maybe this is
enough for now?

Note that further down the road we will probably prompt the user to
potentially select a custom install path (including one with existing
data) before osu! gets to writing anything.
2022-03-29 18:04:31 +09:00
Dean Herbert
ea9495eb74 Update all existing calls to extension method with correct fallback handling 2022-03-29 16:51:30 +09:00
Dean Herbert
7d716adf39 Create new ICreateReplayData interface and obsolete ICreateReplay 2022-03-29 16:51:30 +09:00
Dean Herbert
3fc8c23fe4 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:51:30 +09:00
Dean Herbert
327477d050 Remove unnecessary SetReplayScore call in ModCinema 2022-03-29 16:50:05 +09:00
Dean Herbert
8948bcce19 Restructure transforms slightly 2022-03-29 13:18:31 +09:00
Dean Herbert
0433d2fe6a Add safety to realm instance retrieval in RealmAccess 2022-03-29 11:40:58 +09:00
Dan Balasescu
375a752e24 Fix countdown timer not refreshing on new countdown 2022-03-29 11:27:26 +09:00
Sebastian Krajewski
caf641e1ab Remove redundant ClearTransforms 2022-03-28 23:50:35 +02:00
Sebastian Krajewski
981ef735cf Always start small pop out from its initial size 2022-03-28 19:57:59 +02:00
Sebastian Krajewski
e3289bb080 Don't scale big pop out as much 2022-03-28 19:33:00 +02:00
Sebastian Krajewski
265b2111ef Remove comment 2022-03-28 18:08:51 +02:00
Sebastian Krajewski
001a98e069 Fix LegacyComboCounter not unsubscribing from skin 2022-03-28 18:08:35 +02:00
Dean Herbert
ea46e024c1 Avoid deadlock during migration failed exit process 2022-03-29 00:04:13 +09:00
Dean Herbert
b6ae0ebb6f Limit macOS specific log output to macOS platforms specifically 2022-03-28 23:46:07 +09:00
Sebastian Krajewski
05a978ce8c Update LegacyComboCounter layout and scaling 2022-03-28 16:36:37 +02:00
Dean Herbert
dc7dc7f65a Update UserProfileOverlay and ClickableAvatar to treat system users more correctly 2022-03-28 22:57:16 +09:00
Dean Herbert
a0692ce477 Add a const for system users which should never display a profile 2022-03-28 22:22:56 +09:00
Dean Herbert
b5834dabdb Fix skin editor not exiting correctly when using the menu
Closes https://github.com/ppy/osu/issues/17489.
2022-03-28 20:43:26 +09:00
Dean Herbert
a98aac3bf2 Better inform users of migration failure reason when running Apply Silicon build
As mentioned in https://github.com/ppy/osu/discussions/17409#discussioncomment-2445464?
2022-03-28 17:34:36 +09:00
Dean Herbert
01980effe2
Merge pull request #17449 from smoogipoo/countdown-button-ux
Improve multiplayer ready button/countdown button UX
2022-03-27 13:42:10 +09:00
Dean Herbert
1edf1d8f40
Merge pull request #17464 from smoogipoo/fix-logo-thread-safety
Fix LogoVisualisation draw thread safety
2022-03-27 09:50:42 +09:00
Dean Herbert
e198d71818
Merge pull request #17466 from bdach/multi-settings-z-ordering
Fix multiplayer match settings overlay dropdown Z-ordering
2022-03-27 09:50:21 +09:00
Bartłomiej Dach
f400249f32
Fix multiplayer match settings overlay dropdown Z-ordering 2022-03-26 18:28:38 +01:00
Dan Balasescu
6384531317 Fix LogoVisualisation draw thread safety 2022-03-27 01:43:47 +09:00
Salman Ahmed
b6822f8190 Remove redundant/outdated Origin line 2022-03-26 14:55:19 +03:00
Dean Herbert
9b7b897b3c Adjust padding to fit better 2022-03-26 20:34:50 +09:00
Dean Herbert
ab8db3b7dc Move nested classes to own files 2022-03-26 20:34:17 +09:00
Dean Herbert
4ddf3cb1d9 Add ability to cycle between clock display modes 2022-03-26 19:18:41 +09:00
Dean Herbert
97e9049a2c Adjust metrics and colours to better match the actual toolbar 2022-03-26 18:56:40 +09:00
Dean Herbert
252d1924e7 Adjust metrics for better legibility at small sizes 2022-03-26 18:13:33 +09:00
Dean Herbert
999ae88af2 Show game time display in clock 2022-03-26 18:13:20 +09:00
Dean Herbert
e8f5a8e3d6 Refactor hands for legibility (visual and code) 2022-03-26 18:13:13 +09:00
Dean Herbert
0d8a7246dd Add basic implementation of clock 2022-03-26 18:13:13 +09:00
Dean Herbert
5725cc36ff Add animation to countdown button when countdown is active 2022-03-26 14:29:53 +09:00
Dean Herbert
03f24c8b58
Merge branch 'master' into countdown-button-ux 2022-03-26 10:34:51 +09:00
Dean Herbert
a30d6256f4
Merge pull request #17447 from peppy/countdown-button-icon
Use more appropriate icon on countdown button (and give tooltip)
2022-03-26 10:20:07 +09:00
Dean Herbert
f92a31cd39
Merge pull request #17402 from smoogipoo/multiplayer-auto-countdown
Add multiplayer auto-start countdown timer
2022-03-25 20:31:14 +09:00
Dan Balasescu
6c172bac3c
Merge pull request #17448 from peppy/fix-skin-component-crash-on-instantiation-failure
Avoid crashing if a skin component cannot be instantiated correctly
2022-03-25 19:41:52 +09:00
Dan Balasescu
1ff5fc98f5
Merge pull request #17445 from peppy/fix-test-realm-failures
Fix visual test crashes due to local realm not having update thread
2022-03-25 19:41:13 +09:00
Dan Balasescu
11ee78b395
Merge branch 'master' into countdown-button-icon 2022-03-25 19:40:25 +09:00
Dan Balasescu
3986dfd160
Merge pull request #17444 from peppy/fix-countdown-counting
Update multiplayer countdown button text more often
2022-03-25 19:40:04 +09:00
Dean Herbert
ed239d7016
Merge pull request #17421 from peppy/skin-nullable
Apply `nullable` to skin classes
2022-03-25 19:39:04 +09:00
Dean Herbert
f989158a31 Add back playlist availability control (because it's hooked up half way?) 2022-03-25 19:20:16 +09:00
Dan Balasescu
9963efce51 Improve ready/countdown button UX 2022-03-25 18:40:32 +09:00
Dean Herbert
320110f179 Remove "room visibility" from playlists settings to match 2022-03-25 18:37:46 +09:00
Dean Herbert
b13408aed0 Add back "room visibility" control commented out for now 2022-03-25 18:37:20 +09:00
Dean Herbert
a0a3bba46e Avoid crashing if a skin component cannot be instantiated correctly 2022-03-25 18:31:26 +09:00
Dan Balasescu
3ad092d808 Always show the countdown button when host 2022-03-25 18:29:00 +09:00
Dean Herbert
463091bde2 Use more appropriate icon on countdown button (and give tooltip) 2022-03-25 18:25:48 +09:00
Dean Herbert
1acfbf490b
Merge branch 'master' into mod-overlay/settings-area 2022-03-25 17:37:39 +09:00
Dan Balasescu
2553cfed75 Match new server ready/unready logic 2022-03-25 17:04:45 +09:00
Dean Herbert
aa9e642e40
Merge branch 'master' into pin-multiplayer-host 2022-03-25 16:49:35 +09:00
Dean Herbert
6b22e5774f Remove conditional access on known non-null 2022-03-25 16:42:35 +09:00
Dean Herbert
5fcd3b07f1 Fix visual test crashes due to local realm not having update thread 2022-03-25 16:35:32 +09:00
Dean Herbert
4a30b6ef56 Update multiplayer countdown button text more often
At once a second, it regularly skips whole seconds (because scheduler
isn't guaranteed to run exactly as often as specified). 10 updates a
second seems amicable and less noticeable to my eye.
2022-03-25 16:25:20 +09:00
Dan Balasescu
8553adc401
Merge pull request #17443 from peppy/fix-unexpected-immediate-exit
Fix game unexpectedly exiting without outro sequence occasionally on macOS
2022-03-25 15:57:57 +09:00
Dan Balasescu
23c4f9910e Apply notnull constraint 2022-03-25 15:54:01 +09:00
Dean Herbert
792e79265b Add ignore rule for new helper property 2022-03-25 15:46:27 +09:00
Dean Herbert
b1f0f89fdd Simplify AutoStart and Host checks 2022-03-25 15:41:01 +09:00
Dan Balasescu
2d8d177807
Merge branch 'master' into skin-nullable 2022-03-25 15:36:21 +09:00
Dan Balasescu
478174dd58
Merge pull request #17416 from peppy/skin-fuck
Refactor skin construction
2022-03-25 15:36:06 +09:00
Dean Herbert
de4c04ef80 Fix non-matching json propert for AutoStartDuration 2022-03-25 15:34:33 +09:00
Dean Herbert
416b57ea69 Fix main menu buttons handling keys when super (cmd) is held 2022-03-25 15:13:22 +09:00
Dean Herbert
816fcae3a1 Rename Button to MainMenuButton to differentiate better 2022-03-25 15:12:39 +09:00
Dan Balasescu
c6182c2b09
Merge pull request #17432 from peppy/realm-subscription-any-thread
Allow realm subscriptions to be initiated from any thread
2022-03-25 14:05:03 +09:00
Dean Herbert
09c5325b08 Update resources 2022-03-25 13:18:49 +09:00
Dean Herbert
b4c0155b3d Update framework 2022-03-25 13:07:21 +09:00
Dan Balasescu
def2ce243f
Merge pull request #17431 from peppy/fix-participants-panel-null-ref
Guard against potential null `CurrentItem` in `ParticipantPanel`
2022-03-25 11:47:43 +09:00
Bartłomiej Dach
5f730c0cd4
Merge branch 'master' into fix-old-legacy-replays 2022-03-24 23:21:50 +01:00
Bartłomiej Dach
878e8d21a3
Remove assertion to fix "expression always true" inspection 2022-03-24 21:51:10 +01:00
Dean Herbert
b04ca111c6 Allow realm subscriptions to be initiated from a non-update thread 2022-03-24 23:41:07 +09:00
Dean Herbert
2938f44e6c Update PresentExternally usages in line with framework changes 2022-03-24 23:41:07 +09:00
Dan Balasescu
1abf3f7bf4 Fix cancel tooltip showing for autostart countdowns 2022-03-24 20:25:17 +09:00
Dan Balasescu
d3a957d64e Fix test client not receiving initial value 2022-03-24 20:24:09 +09:00
Dan Balasescu
0d88af19ae Fix local setting not being updated 2022-03-24 20:23:58 +09:00
Dan Balasescu
f80692f342 Add missing TestMultiplayerClient coverage 2022-03-24 20:19:05 +09:00
Dan Balasescu
5fe46a73cb Update room state in more situations 2022-03-24 20:17:16 +09:00
Dan Balasescu
209de886ce Add method to stop countdown 2022-03-24 20:17:16 +09:00
Dan Balasescu
ea9de0199d Split countdown start into separate method 2022-03-24 20:09:32 +09:00
Dan Balasescu
40eca0fbe2 Merge branch 'master' into multiplayer-auto-countdown 2022-03-24 18:11:51 +09:00
Dean Herbert
2d58feebb1 Guard against potential null CurrentItem in ParticipantPanel 2022-03-24 17:54:21 +09:00
Dean Herbert
e889d93441 Add asserts of playlist being non-empty after client operations 2022-03-24 17:52:20 +09:00
Dean Herbert
0275e974e5
Merge branch 'master' into multiplayer-countdown-timers-2 2022-03-24 17:24:00 +09:00
Dean Herbert
e3f8bc0588 Revert Availability to private 2022-03-24 17:15:17 +09:00
Dan Balasescu
528ffea38d Fix incorrect event binding 2022-03-24 17:11:08 +09:00
Dean Herbert
a7554dcdf7 Use a constant for the early version timing offset 2022-03-24 16:43:41 +09:00
Dan Balasescu
dfa076c169 Refactor cancellation logic 2022-03-24 16:29:59 +09:00
Dean Herbert
a7d5f2281c Apply beatmap offsets to legacy replay frame handling 2022-03-24 16:16:40 +09:00
Dan Balasescu
4c0d76573c Asserate code is running on update thread 2022-03-24 15:51:30 +09:00
Dan Balasescu
f0d132b16e Rename FinishCountdown() -> SkipToEndOfCountdown() 2022-03-24 15:21:46 +09:00
Dan Balasescu
d2ecc100e5 Revert unnecessary async change 2022-03-24 15:07:24 +09:00
Dan Balasescu
8f3a4df70a Add explanation for try-catch 2022-03-24 15:07:24 +09:00
Dan Balasescu
d36944ac95 Dispose token manually
Cover more branches with cancellation source disposal
2022-03-24 15:07:24 +09:00
Dean Herbert
8ca9cbc866 Set a more correct initial value for pauseFreqAdjust
As the `GameplayClock` now starts paused, this value needs to match to
ensure things work correctly.

For a better explanation of how we got here, see discussion at
https://github.com/ppy/osu/pull/17302#discussion_r830017735.
2022-03-24 14:50:00 +09:00
Dan Balasescu
96a447f68b Rename Multiplayer prefix to button classes 2022-03-24 14:28:38 +09:00
Dan Balasescu
90c7945bca Re-remove PopoverButton class with better test fix 2022-03-24 14:26:31 +09:00
Dean Herbert
6f529cf7a4 Merge branch 'master' into fix-spectator-seeks 2022-03-24 14:24:20 +09:00