1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 23:37:26 +08:00
Commit Graph

7687 Commits

Author SHA1 Message Date
Dean Herbert
96f23a1135 Merge branch 'master' into gameplay-leaderboard-update 2020-12-18 16:56:21 +09:00
Dean Herbert
70cda680c0 Update to match new implementation 2020-12-18 16:55:55 +09:00
Dean Herbert
869cac819d Merge branch 'gameplay-leaderboard-update' into spectator-driven-leaderboard 2020-12-18 16:55:44 +09:00
smoogipoo
2db7433c0b Refactor player score creation and submission process 2020-12-18 16:51:59 +09:00
Dean Herbert
9226a67f16 Merge branch 'master' into spectator-driven-leaderboard 2020-12-18 16:47:46 +09:00
Dean Herbert
99f2032fdf
Merge branch 'master' into gameplay-leaderboard-update 2020-12-18 16:44:52 +09:00
Dean Herbert
9618f512d7
Merge pull request #11190 from frenzibyte/api-friends-list
Add global friends list to API providers
2020-12-18 16:44:29 +09:00
Dean Herbert
c84807ed5c Refactor implementation 2020-12-18 16:20:54 +09:00
smoogipoo
c80ecec0b4 Reorder methods 2020-12-18 15:36:24 +09:00
Dean Herbert
4af508235e Rename long variable 2020-12-18 15:35:18 +09:00
Dean Herbert
20175a884a Merge branch 'api-friends-list' into gameplay-leaderboard-update 2020-12-18 15:28:07 +09:00
Dean Herbert
206bf3713e Make IAPIProvider read-only bindables into IBindables 2020-12-18 15:16:36 +09:00
Dean Herbert
fa524d64f8
Merge branch 'master' into spectator-driven-leaderboard 2020-12-18 13:34:03 +09:00
Dean Herbert
9079d33412 X before Y for sanity 2020-12-18 11:20:21 +09:00
Dean Herbert
44f4ed4fd3 Fix spacing 2020-12-18 11:19:40 +09:00
Graham Johnson
a0235a06e6 update comment 2020-12-17 19:40:21 -05:00
Salman Ahmed
92bf74ba29 localUser -> localOrReplayPlayer 2020-12-18 03:37:24 +03:00
Salman Ahmed
a8abefcd66 Make GameplayLeaderboardScore a model class 2020-12-18 03:34:33 +03:00
Graham Johnson
a01ed1827a Align the drag circles on the selction box in the editor to be on the center of the border 2020-12-17 19:34:16 -05:00
Salman Ahmed
0faf3fdfd3 Update gameplay leaderboard scores with the new design 2020-12-17 15:19:10 +03:00
Dean Herbert
3ff70d331a Mark recordingScore as nullable 2020-12-17 16:17:13 +09:00
Dean Herbert
81b0db0401 Remove double construction of empty replay object 2020-12-17 16:17:08 +09:00
Dean Herbert
de9c21e7d1 Tenatively mark leaderboard class as LongRunningLoad until final integration 2020-12-17 15:48:53 +09:00
Dean Herbert
a01bb3d5a3 Better limit bindable exposure of data class 2020-12-16 16:20:29 +09:00
Dean Herbert
6bce587b59 Pass users in via constructor and correctly unbind on disposal 2020-12-16 16:20:29 +09:00
Dean Herbert
6e2131c164 Don't track local user score in any special way 2020-12-16 16:20:29 +09:00
Dean Herbert
09d0ceb766 Add testing setup to get a better visual idea of how scoreboard will work
fixup! Add method to ScoreProcessor to calculate score and accuracy from statistics
2020-12-16 16:20:29 +09:00
Dean Herbert
d009a0be51 Move class to final location 2020-12-16 16:20:29 +09:00
Dean Herbert
88b3bf06e8 Merge branch 'master' into add-bundle-header 2020-12-16 13:40:15 +09:00
Dean Herbert
ea6c196f81 Remove unused using statement 2020-12-15 16:03:18 +09:00
Dean Herbert
e37089af5e Further code cleanup 2020-12-15 15:44:56 +09:00
Dean Herbert
8b68ccc0ff Rename class and move inside HUD namespace 2020-12-15 15:34:11 +09:00
Dean Herbert
dd5572b20a Remove unnecessary methods and event 2020-12-15 15:26:20 +09:00
Dean Herbert
8362ad37e3 Bring up-to-date with code changes 2020-12-15 15:22:14 +09:00
Dean Herbert
70e5d4495a
Merge branch 'master' into ingame-leaderboard-general-implementation 2020-12-15 15:14:56 +09:00
Dean Herbert
10ee8ed8e8 Reorder functions and simplify transform logic 2020-12-15 13:04:11 +09:00
Dean Herbert
0d4ac2f748 Refresh view after import completes 2020-12-15 12:57:28 +09:00
Dean Herbert
db4f2d5ffb Refresh view after import succeeds 2020-12-15 12:52:45 +09:00
Dean Herbert
cafe81ab97 Further refactoring and bindable simplification 2020-12-15 12:52:38 +09:00
Dean Herbert
33f77f81f2 Disable the import button when no file is selected, rather than weird flash logic 2020-12-15 12:43:48 +09:00
Dean Herbert
cba4657021 Get handled file extensions from game itself, rather than duplicating locally 2020-12-15 12:37:41 +09:00
Dean Herbert
26fa010fed Merge branch 'master' into import-screen 2020-12-15 12:37:27 +09:00
Dean Herbert
29f3e8e486 Merge branch 'master' into fix-load-too-fast 2020-12-14 17:52:35 +09:00
Dean Herbert
ae22f75406 Bind replay recording score to judgement changes 2020-12-14 17:33:33 +09:00
Dean Herbert
1793385e96 Pass a score to the replay recorder to allow reading more general scoring data 2020-12-14 16:52:14 +09:00
Dean Herbert
0d7f53b0b9 Fix gameplay loading too fast the first time entering a beatmap 2020-12-14 14:21:21 +09:00
Grrum
635608ee3d
Merge branch 'master' into selectionRotation 2020-12-13 08:01:44 -05:00
Graham Johnson
7d2b77cdbd improve selection box rotation UX 2020-12-13 07:58:58 -05:00
Bartłomiej Dach
d457926523
Merge branch 'master' into fix-player-load-stuck-at-empty-screen 2020-12-11 20:49:27 +01:00
Bartłomiej Dach
01833e8c9b
Merge branch 'master' into fix-single-threaded-seeking 2020-12-11 20:14:28 +01:00
Dean Herbert
2dd5911256 Rename method to better match purpose 2020-12-11 14:44:01 +09:00
Dean Herbert
01bd765384 Simplify pause handling by moving transform logic to bindable change event 2020-12-10 17:42:47 +09:00
Dean Herbert
679a550d83 Fix single threaded seeking not working due to unnecessary seek call 2020-12-10 17:42:28 +09:00
Dean Herbert
437c0506ce Refactor to allow for special disposal handling to still work 2020-12-10 16:56:56 +09:00
Dean Herbert
67dd7be71a Move cancelLoad call to OnResuming
This has no real effect; it just feels more readable to me.
2020-12-10 16:34:59 +09:00
Dean Herbert
491ab74059 Schedule pushWhenLoaded once ever
Previously it was being scheduled another time each OnResume, resulting
in more and more calls as a user retries the same beatmap multiple
times.

To simplify things I've decided to just schedule once ever. This means
that on resuming there's no 400ms delay any more, but in testing this
isn't really an issue (load time is still high enough that it will never
really be below that anyway). Even if gameplay was to load faster, the
animation should gracefully proceed.
2020-12-10 16:33:30 +09:00
Dean Herbert
cc996ec7fc Ensure player is consumed at the point of scheduled push running the first time 2020-12-10 16:32:14 +09:00
Dan Balasescu
f9afb7f335
Merge branch 'master' into archive-model-manager-stream-import-support 2020-12-08 16:11:11 +09:00
smoogipoo
10c1823534 Remove now unused files 2020-12-07 22:07:11 +09:00
smoogipoo
34f3672750 Make ctor protected 2020-12-07 22:04:41 +09:00
smoogipoo
f599427080 Implement TimeshiftFilterControl 2020-12-07 22:04:35 +09:00
smoogipoo
1b3836aeef Re-implement multiplayer FilterControl 2020-12-07 21:59:26 +09:00
smoogipoo
5be0672fe9 Split out enums 2020-12-07 21:54:42 +09:00
smoogipoo
fa65874763 Limit room name to 100 characters 2020-12-07 21:09:38 +09:00
Dean Herbert
eb38bc4b4c Add the ability to import into ArchiveModelManagers from a stream 2020-12-07 18:09:18 +09:00
PercyDan
60d8102a77
Merge branch 'master' into import-screen 2020-12-04 21:20:14 +08:00
MATRIX-feather
7104230ae3 Add "onCurrentDirectoryChanged" 2020-12-04 19:52:25 +08:00
Endrik Tombak
c25e2c3dd5 Select recommended beatmap if last selection is filtered 2020-12-03 23:13:14 +02:00
MATRIX-feather
fb080284d2 Simplify UI implementation 2020-12-04 04:10:08 +08:00
MATRIX-feather
85de1a1d20 Animation changes 2020-12-04 03:19:20 +08:00
MATRIX-feather
abe5a67bc5 Simplify implementation 2020-12-04 03:14:31 +08:00
Endrik Tombak
49be4978bd Avoid calling ToList twice 2020-12-03 19:53:41 +02:00
Endrik Tombak
4cd2e207ac Document getBestRulesetOrder 2020-12-03 19:53:06 +02:00
Endrik Tombak
48dad61a46 Apply review suggestions 2020-12-03 19:44:12 +02:00
Endrik Tombak
cbbcf36eaa Merge branch 'master' of https://github.com/ppy/osu into present-recommended 2020-12-03 19:38:32 +02:00
Dan Balasescu
1d92800761
Merge pull request #11068 from peppy/fix-carousel-edge-masking
Fix beatmap carousel panels getting masked away when out of scroll bounds
2020-12-03 20:40:44 +09:00
Dean Herbert
37d550f42a
Merge pull request #11035 from smoogipoo/add-playlist-length 2020-12-03 18:39:54 +09:00
smoogipoo
8245bb85dc Invoke on initial bind 2020-12-03 18:06:55 +09:00
smoogipoo
3e62da119e Add to inspector also 2020-12-03 17:59:39 +09:00
Dean Herbert
3550e5b30f Add length display to room screen as well 2020-12-03 16:42:06 +09:00
smoogipoo
31f7f7072d Fix song select panels not loading if partially offscreen 2020-12-03 15:13:20 +09:00
Dean Herbert
897f593b37 Fix beatmap carousel panels getting masked away when out of scroll bounds
Regressed in https://github.com/ppy/osu/pull/10973 due to removed masking specification.

Closes #11067.
2020-12-03 13:26:28 +09:00
Dan Balasescu
297283491a
Merge pull request #11031 from peppy/editor-fix-beat-snapping-new-beatmap
Fix editor beat snapping not working correctly when starting with a new beatmap
2020-12-02 15:17:09 +09:00
Dean Herbert
71a121389b
Merge pull request #11033 from smoogipoo/immutable-hit-samples
Make HitSampleInfo immutable
2020-12-02 14:44:26 +09:00
Dean Herbert
d6e0dc2216 Merge branch 'master' into editor-fix-beat-snapping-new-beatmap 2020-12-02 14:37:00 +09:00
Dean Herbert
e84dab8589 Move new beatmap construction above beat divisor binding 2020-12-02 14:36:52 +09:00
Dan Balasescu
878ded4dd6
Merge pull request #11032 from peppy/editor-fix-ticks-updating-after-timing-change
Fix timeline not updating ticks correctly after arbitrary timing control point changes
2020-12-02 10:58:44 +09:00
Dan Balasescu
9d71095a2b
Merge pull request #11004 from Yoyolick/master
Add ability to customise key binding for in-game overlay toggle
2020-12-02 10:34:24 +09:00
Pennek
477de1bab0 change min/max values 2020-12-02 01:11:24 +01:00
Bartłomiej Dach
94a8784e04 Allow editor change handler to be null 2020-12-01 20:08:31 +01:00
smoogipoo
598572195c Add playlist length to match settings overlay 2020-12-01 19:57:25 +09:00
Dan Balasescu
1cea39ed55
Merge pull request #11017 from peppy/fix-song-select-temporary-selection-loss
Fix current beatmap temporarily becoming empty during ruleset change
2020-12-01 17:55:08 +09:00
Dean Herbert
190c6ef45e Fix timeline not updating ticks correctly after arbitrary timing control point changes 2020-12-01 16:44:08 +09:00
Dean Herbert
2b268ee012 Fix editor beat snapping not working correctly when starting with a new beatmap 2020-12-01 16:16:26 +09:00
smoogipoo
5760e1c1fc Make HitSampleInfo immutable 2020-12-01 15:37:51 +09:00
Dean Herbert
a147b7186d Remove unnecessary call to updateVisibility 2020-12-01 14:01:34 +09:00
Dean Herbert
63ff722963 Fix code formatting 2020-12-01 14:00:54 +09:00
Ryan Zmuda
8f6607ffec
Merge branch 'master' into master 2020-11-30 21:42:15 -05:00
Ryan Zmuda
e102f2e8fa Moved enum to bottom, change defualt bind to Shift-Tab, Fixed Notification 2020-11-30 21:38:16 -05:00
Dean Herbert
a852a27dfb Fix current beatmap temporarily becoming empty during ruleset change
When changing the ruleset at song select, there was a scenario where it
would be set to default (empty) for one debounce length where this was
not actually required. This occurs when the currently selected beatmap
set has other difficulties which match the target ruleset, specifically.
2020-11-30 19:36:30 +09:00
Dean Herbert
c17d67bc7d Merge branch 'master' into editor-beat-snap-always 2020-11-30 18:34:38 +09:00
Dan Balasescu
b0637cebd1
Merge branch 'master' into song-select-track-selected-better-2 2020-11-30 17:26:15 +09:00
Dan Balasescu
5a276f8577
Merge branch 'master' into fix-editor-reapply-same-state-change 2020-11-30 13:34:03 +09:00
Ryan Zmuda
9145557522 Revert "Revert "forgot to remove something... sorry""
This reverts commit 6478bed431.
2020-11-29 23:15:12 -05:00
Ryan Zmuda
6478bed431 Revert "forgot to remove something... sorry"
This reverts commit a780a8bbd8.
2020-11-29 23:14:43 -05:00
Ryan Zmuda
a780a8bbd8
forgot to remove something... sorry 2020-11-29 21:52:58 -05:00
Ryan Zmuda
3994cf082d add keybind for in game overlay 2020-11-29 20:59:02 -05:00
Dean Herbert
7e34c5e239 Fix state application always checking newest state for early abort, rather than current 2020-11-27 16:57:11 +09:00
Dean Herbert
7edbba58f7 Avoid updating hitobjects unnecessarily for start time changes
This was firing regardless of whether the start time was changed, such
as where beat snap provided the same time the object already has.

The case where a change actually occurs is already handled by
EditorBeatmap (see `startTimeBindables`), so it turns out this local
handling is not required at all.
2020-11-27 16:31:06 +09:00
Dean Herbert
792934f2c4 Allow scroll type to be specified
This brings back the ability for the carousel to scroll in a classic
way. It turns out this is generally what we want for "seek" operations
like "random", else it's quite hard to get the expected animation.

I did experiment with applying the animation after the pooled panels are
retrieved, but in a best-case scenario there is still a gap where no
panels are displayed during the random seek operation.
2020-11-27 13:54:38 +09:00
Dean Herbert
018957c244 Merge branch 'master' into song-select-track-selected-better-2 2020-11-27 12:54:40 +09:00
Dan Balasescu
220657c2cc
Merge branch 'master' into replay-pausing-support 2020-11-27 00:09:40 +09:00
Dean Herbert
3346c06aca Rename variable/text to be more verbose as to toggle purpose 2020-11-26 20:04:44 +09:00
Dean Herbert
741902f1b3
Merge pull request #10971 from smoogipoo/fix-timeline-combo-colour
Fix timeline blueprints sometimes not receiving combo colours
2020-11-26 19:47:21 +09:00
Dean Herbert
da6bccc812 Apply beat snap if positional snap doesn't give a time result 2020-11-26 19:20:51 +09:00
Dean Herbert
91592cf32d Expose EditorClock for consumption 2020-11-26 19:20:39 +09:00
Dean Herbert
9811c46e35 Rename application method to better describe what it actually does 2020-11-26 19:16:18 +09:00
Dean Herbert
0a48dd8f76 Delegate scroll animation to panels themselves 2020-11-26 18:42:51 +09:00
Dean Herbert
ad258e2e52 Update scroll position before applying any panel animations
In the case of automatic scroll requirements (ie. scroll to selected) we
are delegating the animation logic to the panels themselves. In order to
make this work correctly, the scroll operation needs to take effect
before any animation updates are run.
2020-11-26 18:33:41 +09:00
Dean Herbert
6058c66edb Move drawable carousel set movement logic into panels themselves 2020-11-26 18:32:43 +09:00
Dean Herbert
f8db7a9902 Remove ScrollableContent container from carousel
This was causing multiple issues with masking and sizing and really
didn't need to exist in the first place. Also not sure why the pool was
nested inside the scroll container, but it isn't any more. Probably for
the best.
2020-11-26 18:28:54 +09:00
smoogipoo
e53f849aa0 Completely separate combo colours from DHOs 2020-11-26 18:14:25 +09:00
smoogipoo
f562854feb Fix timeline objects sometimes not receiving combo colours 2020-11-26 17:22:22 +09:00
Dan Balasescu
aad6cf4ad3
Merge branch 'master' into editor-multiple-object-positional-snap 2020-11-26 17:06:47 +09:00
Dean Herbert
0ddeff648d Fix incorrect index lookup on non-ordered selections 2020-11-25 17:25:54 +09:00
Dean Herbert
d4c6d6275e Fix volume not being adjustable in the editor using alt-scroll
We do this in other places so I think it's fine to handle like this for
now (until we come up with a better global solution).

Closes #10958.
2020-11-25 16:46:22 +09:00
PercyDan54
0009724c1a
Fix CI 2020-11-24 18:48:32 +08:00
PercyDan54
739c18a34d
dotnet format 2020-11-24 18:25:38 +08:00
PercyDan54
7ab27399bf
Fix CI errors 2020-11-24 18:04:34 +08:00
PercyDan54
0b735b84cf
Remove unused enum 2020-11-24 17:23:53 +08:00
PercyDan54
07ee36a4ef
Simplify code 2020-11-24 17:18:19 +08:00
Dean Herbert
c9a41f9dae Make all objects in selection candidates for spatial snapping
Closes #10898.
2020-11-24 17:35:54 +09:00
Dan Balasescu
5d65665b42
Merge pull request #10943 from peppy/editor-setup-scroll-to-file-selector
Scroll editor setup screen to file selector on display
2020-11-24 16:26:25 +09:00
Dean Herbert
bd1dad5477 Remove null allowance for now 2020-11-24 15:54:27 +09:00
Dean Herbert
1d82557d9f Avoid blocking global actions when skip overlay is not actually active 2020-11-24 15:42:14 +09:00
Dean Herbert
72b8eef36e Add ability to pause/resume replay playback 2020-11-24 15:41:56 +09:00
Dean Herbert
898e2dae27 Restore kiai time flashing behaviour 2020-11-23 14:27:02 +09:00
Dean Herbert
3ed7868801 Scroll editor setup screen to file selector on display
Previously the file selector would potentially display off-screen,
making for confusing UX.

Closes #10942.
2020-11-23 13:49:14 +09:00
Dean Herbert
ae609b9d48 Remove unnecessary local variable 2020-11-23 13:35:13 +09:00
Dean Herbert
2ae5a95d77 Change opacity value to match master implementation 2020-11-23 13:35:02 +09:00
Derrick Timmermans
61078e9ae1
Use 0.2f instead of .2f 2020-11-22 18:59:16 +01:00
Derrick Timmermans
ba7ce4c933
Make colour readonly 2020-11-22 18:37:49 +01:00
Derrick Timmermans
458016d17d
Remove AccentColour member variable from LogoVisualisation 2020-11-22 17:36:59 +01:00
Derrick Timmermans
1551402a8d
Change IntroWelcome visualiser to use Colour instead of AccentColour 2020-11-22 17:33:40 +01:00
Derrick Timmermans
b468f061f1
Remove unused using 2020-11-22 17:20:00 +01:00
Derrick Timmermans
cc33b0f2c6
Apply MenuGlow to Visualisation Colour instead of AccentColour 2020-11-22 16:53:53 +01:00
Bartłomiej Dach
b62a873502
Merge branch 'master' into remove-default-retry-balue 2020-11-22 10:54:40 +01:00
Bartłomiej Dach
875f986979 Remove default from base ResultsScreen too 2020-11-21 14:38:38 +01:00
Endrik Tombak
72d9da5fac Apply review suggestions 2020-11-21 14:26:09 +02:00
Endrik Tombak
6c5a6b42e5 Only calculate recommended SR once 2020-11-21 14:09:32 +02:00
Endrik Tombak
944f3480c2 Merge branch 'master' of https://github.com/ppy/osu into present-recommended
 Conflicts:
	osu.Game/OsuGameBase.cs
	osu.Game/Screens/Select/DifficultyRecommender.cs
	osu.Game/Screens/Select/SongSelect.cs
2020-11-21 14:01:01 +02:00
Dean Herbert
2db42f8e67 Remove default allowRetry parameter value from ResultsScreen 2020-11-20 14:35:44 +09:00
Dean Herbert
8c32d3f781 Don't play flair animations / sounds when watching autoplay or viewing a result directly
I think this is a pretty good place to be for now. The flair will play
if you just watched a play (local, replay or spectator) but will not
play if you are coming from song select (viewing a replay's result
screen from the leaderboard) or in the case of autoplay.

Closes #10762.
2020-11-20 14:32:31 +09:00
Bartłomiej Dach
6356b2dde9 Prevent editor from crashing for rulesets with no compose screen implementation 2020-11-19 22:11:52 +01:00
PercyDan54
9a3dd12f30
Move to debug settings 2020-11-18 18:15:56 +08:00
smoogipoo
f00c23b4a0 Add comment + xmldoc 2020-11-18 13:37:15 +09:00
smoogipoo
783c172b5d Make sealed and cleanup comparator 2020-11-18 13:33:22 +09:00
smoogipoo
58c8184ad7 Define blueprint order similarly to hitobjects 2020-11-17 22:56:31 +09:00
PercyDan54
dcaebd2621
Add license text 2020-11-17 21:39:29 +08:00
PercyDan54
809338a280
Init Import screen 2020-11-17 20:19:12 +08:00
Dean Herbert
7b79b9b9c1
Merge branch 'master' into fix-quick-delete-crash 2020-11-16 13:54:54 +09:00
Bartłomiej Dach
399a1a16a0 Refactor beginClickSelection in a slightly different way 2020-11-15 21:06:47 +01:00
kamp
1db303b159 Revert beginClickSelection logic 2020-11-15 16:54:48 +01:00
Dean Herbert
34f09e2e20 Merge branch 'master' into fix-spectator-preview-crash 2020-11-15 13:16:10 +09:00
Bartłomiej Dach
b344a13734 Add support for previewing tracks on spectator screen 2020-11-14 17:08:27 +01:00
Bartłomiej Dach
8a78d408db Add more missed null checks 2020-11-14 15:52:12 +01:00
Bartłomiej Dach
610ed99ae3 Add null checks to unguarded resolved-as-null fields 2020-11-14 14:52:58 +01:00
kamp
4d2bc790fd Fix crash on shift+right-click deleting objects 2020-11-14 13:20:16 +01:00
Bartłomiej Dach
d55eae55ad
Merge branch 'master' into fix-combo-break-rewind-replay 2020-11-13 21:46:32 +01:00
Bartłomiej Dach
405407ff9e
Merge branch 'master' into fix-combo-break-sounds 2020-11-13 21:07:34 +01:00
smoogipoo
0219aff7bc Add timeline visible range adjustment 2020-11-13 17:10:29 +09:00
smoogipoo
3957697c48 Add pooling support to the editor 2020-11-13 17:08:20 +09:00
smoogipoo
4ef2e9548c Pass HitObjectComposer to BlueprintContainer via ctor 2020-11-13 16:59:37 +09:00
Dean Herbert
4b5743d993 Fix combo break sound not playing after rewind 2020-11-13 13:38:14 +09:00
Dean Herbert
43626573df Fix combo break sounds playing when seeking 2020-11-13 13:36:19 +09:00
smoogipoo
6f7a1dd57d Merge branch 'master' into hitobject-pooling-base 2020-11-11 17:09:18 +09:00
Dean Herbert
11cf04eed1 Fix frames potentially getting added to spectator replay in wrong format
The way spectator currently works, the `Spectator` screen is responsible
for adding new frames to the replay, even when it has a child
(`SpectatorPlayer`) present.

There was a possibility that a new play had already started, and on
returning to the Spectator screen (to initialise the new play) there
would be a brief period where the Player instance is still reading from
the replay, the `userBeganPlaying` call had not yet finished
initialising the new target replay, and `userSentFrames` is run
(asynchronously), writing frames to the previous replay using the
incorrect ruleset instance).

To make this work, it doesn't `Schedule` frame addition to the replay
(making things a bit unsafe). Changing this itself isn't such a simple
one to do, so I instead opted to fix this via locking.

Closes https://github.com/ppy/osu/issues/10777.
2020-11-11 13:39:43 +09:00
Bartłomiej Dach
546249b071 Temporarily fix crash on deleting control point groups 2020-11-10 21:32:47 +01:00
smoogipoo
66213f2ed0 Add pooling support to DrawableRuleset + Playfield 2020-11-10 23:56:32 +09:00
Dean Herbert
de6fcd1792 Fix BlueprintContainer triggering assert when left and right mouse button are pressed together 2020-11-10 17:16:28 +09:00
Dean Herbert
a012105dac Fix editor quick delete being triggerable from left mouse button
Closes https://github.com/ppy/osu/issues/10629.
2020-11-10 16:54:37 +09:00
Dean Herbert
85d641c630
Merge pull request #10740 from Game4all/add-multi-statuses 2020-11-10 14:23:26 +09:00
Lucas A
b8c63e7944 Apply review suggestions. 2020-11-09 13:39:50 +01:00
Dan Balasescu
a2877fb00a
Merge pull request #10730 from peppy/fix-patcher-no-object-crash
Fix legacy patcher crash on no objects present
2020-11-09 18:51:00 +09:00
Lucas A
e44951969f Use ??= operator instead of null check. 2020-11-08 18:22:19 +01:00
Lucas A
d8d4022119 Precise XMLDoc 2020-11-08 14:39:56 +01:00
Lucas A
48fce8c4b9 Add user activities to multi subscreens. 2020-11-08 13:21:21 +01:00
Lucas A
89b98b5388 Make multiplayer screen handle user activity updates from subscreens. 2020-11-08 13:16:27 +01:00
Lucas A
55070556a7 Move activity setup to BDL. 2020-11-08 12:53:19 +01:00
Lucas A
790a2ca97d Extract UserActivity logic to OsuGame. 2020-11-08 12:29:52 +01:00
Bartłomiej Dach
ddbd6df24d Unbind bindable lists for general safety 2020-11-07 20:59:57 +01:00
Bartłomiej Dach
e078b78dcc Ensure callbacks don't fire when restoring default beatmap 2020-11-07 20:59:57 +01:00
Dean Herbert
b0052210b6 Add asserts of HitObjects indices 2020-11-08 00:18:38 +09:00
Dean Herbert
84e090583d
Merge pull request #10712 from peppy/move-cache-logic-to-base-impl
Move cache and lookup logic to base MemoryCachingComponent class
2020-11-07 00:06:43 +09:00
Dan Balasescu
f230250faf
Merge branch 'master' into editor-slider-control-point-quick-delete 2020-11-06 21:47:37 +09:00
Dean Herbert
9bb32f0914 Merge branch 'master' into move-cache-logic-to-base-impl 2020-11-06 16:56:35 +09:00
Dean Herbert
c5b172d0dd Remove synchronous lookup path from BeatmapDifficultyCache 2020-11-06 14:53:15 +09:00
Dan Balasescu
972fc54c2d
Merge pull request #10710 from peppy/user-id-as-int
Use int instead of long for user_id fields for now
2020-11-06 14:35:14 +09:00
Dean Herbert
07166ec819 Fix a couple of remaining unnecessary casts 2020-11-06 13:29:47 +09:00
Dean Herbert
0103b12575 Add basic base class to begin to standardise function across caching components 2020-11-06 13:26:39 +09:00
Dean Herbert
14bb079feb Rename ScorePerformanceManager to ScorePerformanceCache 2020-11-06 13:15:33 +09:00
Dean Herbert
5113d4af8f Rename BeatmapDifficultyManager to BeatmapDifficultyCache 2020-11-06 13:14:29 +09:00
Dan Balasescu
ea2fd831ab
Merge branch 'master' into editor-slider-control-point-quick-delete 2020-11-05 00:38:42 +09:00
Dean Herbert
d19b799f44 Invert boolean logic 2020-11-04 17:53:03 +09:00
Dan Balasescu
3322c2bbc5
Merge branch 'master' into ios-editor-crash-fix 2020-11-04 15:56:40 +09:00
Dean Herbert
487a5ecdba Replace all usage of IBindableList.GetBoundCopy 2020-11-04 15:29:14 +09:00
Dan Balasescu
42c543f5b9
Merge branch 'master' into fix-editor-play-after-drag 2020-11-04 14:45:20 +09:00
Dan Balasescu
98c992004b
Merge pull request #10660 from peppy/fix-song-select-first-track-looping
Fix looping mode not being set on first track after entering song select
2020-11-04 14:37:27 +09:00
Dan Balasescu
c6779b414e
Merge pull request #10611 from peppy/spectator-listing
Add "currently playing" player listing and spectator UI flow
2020-11-04 14:08:11 +09:00
Dean Herbert
cfe3218239 Move scheduler call to inside method itself for added safety 2020-11-04 10:23:06 +09:00
Dean Herbert
29e8e5ab94 Merge branch 'master' into fix-load-async-after-disposal-beatmap-wedge 2020-11-04 10:23:05 +09:00
Dean Herbert
9dc2ca666d
Merge branch 'master' into spectator-listing 2020-11-04 09:30:15 +09:00
Bartłomiej Dach
3bb86ce127
Merge branch 'master' into editor-waveform-opacity 2020-11-03 23:04:19 +01:00
Bartłomiej Dach
13f729916a
Merge branch 'master' into editor-timeline-scroll-mousewheel 2020-11-03 22:27:35 +01:00
Bartłomiej Dach
ddf0d75c38 Don't fall through to seek if handling zoom 2020-11-03 21:49:21 +01:00
Bartłomiej Dach
4b528e80d0 Use AltPressed shorthand 2020-11-03 21:49:04 +01:00
Bartłomiej Dach
18428dff8e Ensure hotkey actions are executable in handler 2020-11-03 18:01:12 +01:00
Dean Herbert
83c004bbde Add key bindings for flip and reverse patterns 2020-11-03 21:10:31 +09:00
Dean Herbert
9f333ac58a Add the ability to delete slider control points using shift+right click
Closes https://github.com/ppy/osu/issues/10672.

In two minds about how this should be implemented but went in this
direction initially. The other way would be to add local handling of
Shift-Right Click inside PathControlPointPiece (which is already doing
mouse handling itself).
2020-11-03 20:46:33 +09:00
Dean Herbert
1b2bd6a8c9 Remove redundant base call 2020-11-03 20:10:13 +09:00
Dean Herbert
3e29e468ea Ensure "start watching" button starts in a disabled state 2020-11-03 20:06:42 +09:00
Dean Herbert
a3c67aabe2 Merge branch 'master' into spectator-listing 2020-11-03 19:56:25 +09:00
Dean Herbert
d788931661 Fix LoadComponentAsync calls potentially occuring after beatmap wedge disposal
As seen in https://ci.appveyor.com/project/peppy/osu/builds/36109658/tests.

Also adds cancellation logic for good measure.
2020-11-03 19:53:45 +09:00
Dean Herbert
df9ff76f23 Reduce assert to guard in the outwards direction 2020-11-03 16:49:13 +09:00
Dean Herbert
f701a38e20 Merge branch 'master' into fix-song-select-first-track-looping 2020-11-03 16:48:20 +09:00
Dean Herbert
c2ffc18379 Change editor timeline mouse wheel handling to scroll by default (and zoom with alt held) 2020-11-03 16:30:11 +09:00
Dean Herbert
0dcb4ea441 Add handling of opacity to timeline waveform display 2020-11-03 16:07:01 +09:00
Dean Herbert
7e4314684b Add editor waveform opacity selection to menu 2020-11-03 16:01:14 +09:00
Dean Herbert
6bf35d5767 Fix editor menu not supporting stateful item drawables 2020-11-03 16:00:07 +09:00
Dean Herbert
34aa59f237 Fix editor clock not always remaining stopped when dragging timeline
Closes https://github.com/ppy/osu/issues/10461.
2020-11-03 15:00:01 +09:00
Dean Herbert
ab308d28d2 Debounce calls to UpdateTernaryStates
Just something I noticed in passing recently which may help with
reducing performance overhead of some batch operations.
2020-11-03 01:08:36 +09:00
Dean Herbert
d5c95a8b46 Centralise into methods and add assertions for safety 2020-11-03 00:45:55 +09:00
Dean Herbert
c3d3856a64 Fix looping mode not being set on first track after entering song select
Closes #10656.
2020-11-02 23:51:02 +09:00
smoogipoo
3956a0669a Fix editor seek transform seeking too much 2020-11-02 21:08:58 +09:00
smoogipoo
6f623d8cca Rename IsUserPaused -> UserPauseRequested 2020-11-02 16:08:59 +09:00
Dean Herbert
414f65c1ef Merge branch 'master' into spectator-listing 2020-11-02 15:48:21 +09:00
Dean Herbert
8adf146f53
Merge pull request #10640 from bdach/fix-music-paused-on-multi-exit 2020-11-02 15:46:19 +09:00
Dean Herbert
ab9e0aac58
Merge pull request #10258 from Game4all/results-dynamic-pp-calc 2020-11-02 15:40:55 +09:00
Dean Herbert
8f2cd0e8c5 Add matching requestedByUser parameter to Play method 2020-11-02 15:01:30 +09:00
Dean Herbert
d2f6303988 Change default value of requestedByUser to false 2020-11-02 14:56:50 +09:00
Dean Herbert
ecad85b5f5 Merge branch 'master' into fix-music-paused-on-multi-exit 2020-11-02 14:55:15 +09:00
Dan Balasescu
04178e9458
Merge branch 'master' into spectator-replay-watcher 2020-11-02 14:54:51 +09:00
Dean Herbert
73b290aca3 Merge branch 'master' into results-dynamic-pp-calc 2020-11-02 14:47:33 +09:00
smoogipoo
bd7c3d0d9f Merge branch 'master' into results-screen-applause 2020-11-02 13:38:19 +09:00
Dan Balasescu
1b53e6c782
Merge branch 'master' into sample-lookup-improvements 2020-11-02 13:04:35 +09:00
Dan Balasescu
8a768669ad
Merge pull request #10606 from FamousPig/fix-timeline-drag-select-weirdness
Fix timeline zoom during drag-select causing unexpected behaviour
2020-11-02 13:04:26 +09:00
Dean Herbert
6cfaee0f0b
Merge pull request #10631 from bdach/shift-delete-all-selected 2020-11-02 12:04:58 +09:00
Dean Herbert
6e2d722b8a
Merge pull request #10649 from ppy/dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1 2020-11-02 11:52:38 +09:00
Dan Balasescu
5ae3da9399
Merge branch 'master' into fix-timeline-drag-select-weirdness 2020-11-02 11:18:37 +09:00
Dean Herbert
61c9bb3245
Merge branch 'master' into dependabot/nuget/Microsoft.CodeAnalysis.FxCopAnalyzers-3.3.1 2020-11-02 10:56:09 +09:00
Dan Balasescu
b1b52f9073
Merge branch 'master' into fix-resume-beatmap-options-edit 2020-11-02 10:46:31 +09:00
Dan Balasescu
ba726c6291
Merge pull request #10623 from cadon0/fix-beatmap-details-metadata-bounce
Fix "bounce" when metadata container text is empty in song select
2020-11-02 10:45:14 +09:00
Joehu
71d55f16f3 Fix edit beatmap options button not resuming back to song select 2020-11-01 13:50:38 -08:00
Bartłomiej Dach
432282e8de Use alternative solution to avoid storing last zoom 2020-11-01 21:25:05 +01:00
Bartłomiej Dach
3090b6ccb5 Resolve CA2249 inspections
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
Bartłomiej Dach
716458344f Ensure spectator player is unsubscribed to prevent leak 2020-11-01 16:13:19 +01:00
Bartłomiej Dach
23d9fa4dfa Merge branch 'master' into spectator-replay-watcher 2020-11-01 15:53:37 +01:00
Bartłomiej Dach
b7696c85ad Add more xmldocs 2020-11-01 15:23:03 +01:00
Dean Herbert
1f8d627af4
Merge branch 'master' into shift-delete-all-selected 2020-11-01 23:03:01 +09:00
Dean Herbert
e1b8875553
Merge pull request #10634 from bdach/fix-leftover-selection-box-tooltip
Fix selection box action tooltips still being visible after object deletion
2020-11-01 23:02:29 +09:00
Lucas A
6bfff43634 Extract StatisticCounter to a separate class and use it instead. 2020-11-01 13:25:36 +01:00
Bartłomiej Dach
f3e0480e77
Merge branch 'master' into fix-beatmap-details-metadata-bounce 2020-10-31 17:36:40 +01:00
Bartłomiej Dach
19023e7d43 Fix player restart invoking user-level pause 2020-10-31 16:08:15 +01:00
Dean Herbert
a9a3489e92 Fix potential null reference when loading background
As seen in
https://discordapp.com/channels/188630481301012481/188630652340404224/772094427342569493.
Caused due to async load of the loader, which means it may not be ready
before Next() is called.
2020-10-31 22:51:35 +09:00
Bartłomiej Dach
007c27d3ff Schedule visibility update once per frame 2020-10-31 14:45:11 +01:00
Bartłomiej Dach
d74c19e2d7 Shorten show/hide code 2020-10-31 13:54:02 +01:00
Bartłomiej Dach
3322b8a7ea Run OnSelectionChanged() on each change 2020-10-31 13:54:02 +01:00
Bartłomiej Dach
003994ab75 Bind UpdateVisibility() directly to source of truth 2020-10-31 13:54:02 +01:00
Bartłomiej Dach
129b1bc6d3 Delete all selected objects if shift-clicked on one 2020-10-31 11:46:25 +01:00
Dean Herbert
6a293dd536 Add missing ctor parameters back 2020-10-31 18:56:30 +09:00
Dean Herbert
979eb1685b
Merge branch 'master' into results-screen-applause 2020-10-31 18:47:49 +09:00
Dean Herbert
f0b80d245e Merge branch 'master' into spectator-listing 2020-10-31 16:22:49 +09:00
Dean Herbert
a088151e58 Merge branch 'spectator-replay-watcher' into spectator-listing 2020-10-31 16:22:10 +09:00
Bartłomiej Dach
78842ab95a Improve look & behaviour of background transitions 2020-10-30 22:40:24 +01:00
Bartłomiej Dach
38cf90a69b Change background to seasonal right after login 2020-10-30 22:03:26 +01:00
Bartłomiej Dach
67a325f47d Move config setting logic to background loader 2020-10-30 21:22:22 +01:00
Max Hübner
d5dfd1dffe Insert optional parentheses 2020-10-30 18:07:07 +01:00
Max Hübner
0b46c19b23 Move seasonalBackgroundMode check up and early return if available 2020-10-30 17:16:51 +01:00
Max Hübner
6f6a8e2a8f Convert switch to if 2020-10-30 16:06:48 +01:00
Max Hübner
d19dd4eef6 IsInSeason() -> IsInSeason 2020-10-30 15:56:19 +01:00
Max Hübner
4e3fb615d2 Rename "SeasonalBackgrounds" to "SeasonalBackgroundMode" 2020-10-30 15:54:10 +01:00
Dean Herbert
1db8dfd03e
Merge branch 'master' into seasonal-backgrounds 2020-10-30 22:53:51 +09:00
cadon0
a1fa6588f6 Fix "bounce" when metadata container text is empty 2020-10-31 01:06:19 +13:00
Max Hübner
f27ce7521d Make "Sometimes" setting depend on season end date, rather than chance 2020-10-30 10:27:43 +01:00
Dean Herbert
79aecc9a98
Merge branch 'master' into spectator-replay-watcher 2020-10-30 16:31:24 +09:00
Dan Balasescu
0ef1459f4b
Merge pull request #10621 from peppy/hud-momentary-visibility
Add momentary HUD toggle
2020-10-30 15:40:54 +09:00
Dan Balasescu
b14291a312
Merge branch 'master' into tracked-hud-visibility-settings 2020-10-30 14:58:45 +09:00
Dean Herbert
8928aa6d92 Add key binding to show HUD while held 2020-10-30 14:19:40 +09:00
Dean Herbert
b4eda65383 Commit missing pieces 2020-10-30 13:53:51 +09:00
Dean Herbert
9bb86ccb83 Change shift-tab to cycle available HUD visibility modes 2020-10-30 13:09:22 +09:00
Dean Herbert
46d89d55f4 Add note about ScheduleAfterChildren requirement 2020-10-30 12:47:04 +09:00
Dean Herbert
823230f06a Merge branch 'sample-lookup-improvements' into results-screen-applause 2020-10-30 12:17:36 +09:00
Dean Herbert
2ea4aa0a37 Fix incorrect specification on some sample lookups 2020-10-30 11:59:41 +09:00
Dean Herbert
0c1d12460f Remove unused parameter 2020-10-30 10:30:11 +09:00
Max Hübner
fb1e09b3e7 Load seasonal backgrounds according to setting 2020-10-29 18:04:48 +01:00
Max Hübner
34371b8888 Show next Background on showSeasonalBackgrounds.ValueChanged 2020-10-29 17:44:23 +01:00
Max Hübner
bf4d99dfe7 Load SeasonalBackgroundLoader asynchronously 2020-10-29 17:43:10 +01:00
Dean Herbert
87be7d162b
Merge branch 'master' into spectator-replay-watcher 2020-10-30 00:25:17 +09:00
Max Hübner
b189e0b7cf Revert "Load SeasonalBackgroundLoader asynchronously"
This reverts commit 81ebcd8796.
2020-10-29 16:01:22 +01:00
Dean Herbert
404885af89 Merge branch 'results-screen-animate-once' into results-screen-applause 2020-10-29 18:52:54 +09:00
Dean Herbert
3491dea9e2 Fix scroll logic running before children may be alive in flow 2020-10-29 18:51:54 +09:00
Dean Herbert
f1b8a8f7f5 Remove unused using 2020-10-29 18:16:04 +09:00
Dean Herbert
0a0239a7c7 Only play results panel animation once (and only for the local user) 2020-10-29 17:08:59 +09:00
Dean Herbert
11f85779d5 Fix panel expanded state being updated multiple times unnecessarily 2020-10-29 17:08:59 +09:00
Dean Herbert
71e373ff51 Make results panels aware of whether they are a local score that has just been set 2020-10-29 17:08:59 +09:00
Dean Herbert
4a26084df8 Only play results panel animation once (and only for the local user) 2020-10-29 17:04:33 +09:00
Dean Herbert
f1ce09930e Fix panel expanded state being updated multiple times unnecessarily 2020-10-29 17:03:45 +09:00
Dean Herbert
5d5b0221e5 Add skinning support for legacy applause playback 2020-10-29 16:32:29 +09:00
Dean Herbert
fb82c043a5 Add rank appear sound (new default) 2020-10-29 16:11:37 +09:00
Dean Herbert
a8e9c62583 Make results panels aware of whether they are a local score that has just been set 2020-10-29 16:11:25 +09:00
Dan Balasescu
8ccc3c2ec8
Merge pull request #10596 from charlie-gray/right-click-circle-delete
Add support for deleting objects when Shift is held down
2020-10-29 11:37:22 +09:00
Bartłomiej Dach
a1696942f0 Merge branch 'master' into right-click-circle-delete 2020-10-28 22:12:14 +01:00
Bartłomiej Dach
202fe09306 Group selection actions back up in SelectionHandler 2020-10-28 22:06:48 +01:00
Dean Herbert
bca317b151 Remove excess using statement 2020-10-28 23:43:16 +09:00
Dean Herbert
e1bf751dac Merge branch 'spectator-replay-watcher' into spectator-listing 2020-10-28 23:17:50 +09:00
Dean Herbert
5d02de29ca Fix attempt to change ruleset/beatmap bindables while screen is not active 2020-10-28 22:50:45 +09:00
Dean Herbert
25ab3a5fea Construct replay after being sure a ruleset is available to avoid nullrefs 2020-10-28 22:10:37 +09:00
Dean Herbert
dd2f44f393 Add basic "currently watching" text to player to signify that spectator is active 2020-10-28 19:43:06 +09:00
Dean Herbert
93fd913876 Add setting to allow automatically downloading during a spectating session 2020-10-28 19:43:06 +09:00
Dean Herbert
9807089834 Fix screen exit potentially occuring during transition 2020-10-28 19:43:06 +09:00
Dean Herbert
4df8119852 Add missing schedule 2020-10-28 19:43:06 +09:00
Dean Herbert
93e3e1a4db Don't inherit ReplayPlayer to make results screen work correctly 2020-10-28 19:02:38 +09:00
Dean Herbert
344ff8f4bc "Improve" visuals of spectator screen 2020-10-28 19:02:38 +09:00
Dean Herbert
2d73dfbe39 Add more safety around beatmap panel and button display logic 2020-10-28 19:02:38 +09:00
Dean Herbert
c97feb09bf Allow continuing to automatically spectate user from results screen 2020-10-28 19:02:38 +09:00
Dean Herbert
16b0a7b33e Add button flow to allow resuming watching after exiting manually 2020-10-28 19:02:38 +09:00
Dean Herbert
6169349f7c Fix switching to new beatmap not working correctly 2020-10-28 17:44:11 +09:00
Dean Herbert
730cc645fb Avoid reconstructing ruleset for each frame bundle 2020-10-28 16:33:52 +09:00
Dean Herbert
48b0357e7d Fix "finished playing" events handled for potentially incorrect user 2020-10-28 16:11:14 +09:00
Dean Herbert
77d807d0f5 Merge branch 'frame-stability-clean-up' into spectator-replay-watcher 2020-10-28 15:26:02 +09:00
Dean Herbert
351acce698 Merge branch 'master' into fix-editor-bindable-crash 2020-10-28 13:34:54 +09:00
Dean Herbert
01b576c861 Fix editor crash on exit when forcing exit twice in a row 2020-10-28 13:32:39 +09:00
Dean Herbert
0a7f3dc19b
Avoid null reference on finalization
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-10-28 07:29:07 +09:00
Leon Gebler
0ddf840a63 Merge branch 'master' into fix-timeline-drag-select-weirdness 2020-10-27 15:31:55 +01:00
Leon Gebler
983a2774e8 Code Formatting 2020-10-27 15:09:10 +01:00
Leon Gebler
064c50c3ac Expose currentZoom to fix selection box wiggle 2020-10-27 14:38:35 +01:00
Dean Herbert
d5e0fa322b Fix a couple of inspections 2020-10-27 22:30:45 +09:00
Dan Balasescu
26a7545534
Merge branch 'master' into fix-editor-samples-not-pausing-screen-swap 2020-10-27 21:29:16 +09:00
Dean Herbert
2cacdaa11b Add basic beatmap download and play flow 2020-10-27 19:28:34 +09:00
Dean Herbert
42b3aa3359 Fix spectating when starting from a point that isn't at the beginning of the beatmap 2020-10-27 18:58:37 +09:00
Dean Herbert
851d45d2eb Add sane pausing logic 2020-10-27 18:58:37 +09:00
Dean Herbert
3ec3321a3d Add missing space 2020-10-27 18:58:37 +09:00
Dean Herbert
b737a8bf6e Add field to Replay denoting whether the full replay have been received or not 2020-10-27 18:58:37 +09:00
Dean Herbert
9bac8f3792 Add null check on replay as safety measure 2020-10-27 18:58:37 +09:00
Dean Herbert
ac4671c594 Add basic implementation of spectator screen 2020-10-27 18:58:37 +09:00
Dean Herbert
5fd97bd043 Add basic spectator screen 2020-10-27 18:58:37 +09:00
Dean Herbert
df5348cd93
Merge pull request #10601 from peppy/move-sample-pause-logic 2020-10-27 17:49:32 +09:00
Dean Herbert
e0ad005cc1 Move editor sample disabling logic to editor class (and support screen switching) 2020-10-27 14:33:44 +09:00
Dean Herbert
9cfb81589e Use bindable flow instead 2020-10-27 14:10:12 +09:00
Dean Herbert
6853da459d Move sample pausing logic out of FrameStabilityContainer 2020-10-27 13:54:33 +09:00