Dan Balasescu
5ef1fe6948
Merge branch 'master' into fix-replay-date
2021-07-19 21:58:37 +09:00
Dan Balasescu
f3bcaf7f11
Merge pull request #13929 from peppy/i-deep-cloneable
...
Create a deep clone of score for score submission purposes
2021-07-19 21:58:27 +09:00
Dean Herbert
b3f60c8253
Fix date being updated on replays unexpectedly
2021-07-19 19:28:35 +09:00
Dean Herbert
f16b4957aa
Move clone to earlier in the process
2021-07-19 19:18:34 +09:00
Dean Herbert
3c028ce05c
Add IDeepCloneable
interface and update existing CreateCopy
methods to use it
2021-07-19 12:54:17 +09:00
Dean Herbert
d7f997a7f3
Set score's rank on a failed submission
...
As we don't have a `RankInfo.F`, this is the next best choice. I am also
adding a check osu-web side for this - this is just to make sure we
aren't sending scores with SS when they are not actually completed.
I'm working on a separate PR to ensure this does not get mutated during
the player exit process.
2021-07-19 12:36:15 +09:00
Dean Herbert
74c63e15be
Mark score failed on fail and exit
2021-07-01 17:48:09 +09:00
Salman Ahmed
b12adc6073
Remove all test skinning changes in favour of the ISkinSource.AllSources
path
2021-06-22 10:48:03 +03:00
Dean Herbert
1b0aadcc6f
Merge branch 'master' into transformers-per-skin
2021-06-22 16:03:15 +09:00
Dean Herbert
0bc68a7018
Move xmldoc to method
2021-06-18 16:50:31 +09:00
Dean Herbert
19507e107e
Reorder methods to make more sense
2021-06-18 16:46:40 +09:00
Dean Herbert
a7f40dc6d4
Merge branch 'remove-synchronous-prepare-score-method' into storyboard-outro-logic-refactor
2021-06-18 16:45:01 +09:00
Dean Herbert
45122594e5
Remove the synchronous version of PrepareScoreForResults
...
Replaces all existing usages with the `async` version.
2021-06-18 16:24:08 +09:00
Dean Herbert
f3426e38b4
Add note about delay parameter
2021-06-18 16:18:20 +09:00
Dean Herbert
3819a1f03b
Remove exit override behaviour
...
I don't actually know under what scenario this could have been hit, and
actually caused expected behaviour. Consider that in the scenario I
describe in the comment (which I added yesterday), the user is
requesting a pause or exit which would be "cancelled showing the results
instead". But in such a scenario, `PerformExit` would first be run,
which cancels the `resultsDisplayDelegate` in the first place.
The only special case would be pressing the close button on the window
decoration? Which I don't think should be a special case in the first
place, so I'm just going to remove this for the time being to keep
things simple.
2021-06-18 16:12:35 +09:00
Dean Herbert
7ef8eac773
Remove unnecessary (and no longer correct) exception
2021-06-18 16:08:31 +09:00
Dean Herbert
2bf855fcca
Move all storyboard outro skip logic out of updateCompletionState
...
This method should only be called to trigger the score completion
portion of player progression. The storyboard skip/end logic is now
handled separately in `progressToResults`.
2021-06-18 15:50:43 +09:00
Bartłomiej Dach
f282326f9a
Move score preparations back below ShowResults
check
2021-06-17 19:04:52 +02:00
Bartłomiej Dach
3a1444e75d
Fix malformed xmldoc tag
...
Oops. Made a typo in the PR suggestion.
2021-06-17 19:02:56 +02:00
Dean Herbert
9facfe8964
Apply suggestions from code review
...
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2021-06-18 01:07:54 +09:00
Dean Herbert
e0a3696145
Merge branch 'master' into player-completion-refactoring
2021-06-17 23:51:42 +09:00
Bartłomiej Dach
10b0d066be
Reword comments slightly
2021-06-17 16:04:58 +02:00
Bartłomiej Dach
561dbea9e1
Use xmldoc-specific syntax for nicer formatting
2021-06-17 15:26:50 +02:00
Dean Herbert
d03c6da60c
Refactor and redocument updateCompletionState()
and surrounding methods
2021-06-17 19:13:53 +09:00
Dean Herbert
246ab41cc6
Remove special casing for user exit during storyboard outro
2021-06-17 18:11:15 +09:00
Dean Herbert
7cbebe6d11
Rewrite xmldoc and inline comments for PerformExit
2021-06-17 18:10:59 +09:00
Salman Ahmed
ef2c4fd0d8
Make RulesetSkinProvidingContainer
able to be overriden for testing purposes
2021-06-10 16:36:46 +03:00
Salman Ahmed
1aaad7bfd4
Apply few adjustments to skinning overlays comment
2021-06-09 22:49:31 +03:00
Salman Ahmed
e30f6581b3
Wrap gameplay content within a RulesetSkinProvidingContainer
2021-06-09 22:49:31 +03:00
Dean Herbert
a7ef0173e9
Add safety to ensure background is correct tint when entering gameplay
2021-06-09 17:07:28 +09:00
Dean Herbert
23096c58bb
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-04 15:06:15 +09:00
Dean Herbert
d444fed46f
Detach gameplay score from replay recorder before importing
...
Closes #13320 .
2021-06-04 02:00:02 +09:00
smoogipoo
e887807ae7
Apply review fixes
2021-06-03 18:32:05 +09:00
smoogipoo
be03a2d7d2
Fix multiple calls to seek method potentially not working
2021-06-03 17:47:22 +09:00
smoogipoo
c3280083a2
Merge branch 'master' into fix-spectator-frame-conversion
2021-06-03 17:42:01 +09:00
smoogipoo
420df124b5
Add framestable-bypassing seek for spectator
2021-06-03 17:27:21 +09:00
Dean Herbert
a15cac6f53
Change the way Score
is initialised in Player
to better lend to population of metadata
2021-06-02 15:44:04 +09:00
Dean Herbert
14570b6fb1
Merge branch 'master' into autoplay-pause-support
2021-06-01 14:19:21 +09:00
smoogipoo
d2d0896298
Expose GameplayBeatmap and GameplayRuleset from Player
2021-05-31 19:22:20 +09:00
Dean Herbert
7f9318d976
Expose GameplayBeatmap
to derived Player
classes
2021-05-25 18:36:47 +09:00
Dean Herbert
c2b938a29f
Remove autoplay consideration from Player
2021-05-25 18:09:37 +09:00
Dean Herbert
100e2d14a5
Move call inside conditional
2021-05-24 15:14:55 +09:00
Dean Herbert
a69a1b5211
Fix Player
potentially running MakeCurrent
when already removed from the screen stack
...
Closes #12919 .
2021-05-24 13:53:53 +09:00
smoogipoo
895eb14c5a
Forcefully end playing to fix test failures
2021-05-21 14:09:30 +09:00
smoogipoo
c6160d5304
Only ignore online score id for database import
2021-05-18 21:17:41 +09:00
Dan Balasescu
ea4dfd3374
Merge pull request #12842 from peppy/song-progress-skinnable
...
Add layout customisation support for `SongProgress`
2021-05-17 20:15:01 +09:00
Dean Herbert
b80768b44a
Hook up seeking flow
2021-05-17 18:52:56 +09:00
Dean Herbert
da0913ca2d
Make SongProgress
a skinnable component
2021-05-17 18:52:56 +09:00
Dean Herbert
1f3ae901ce
Expose DrawableRuleset
for consupmtion by HUD components
2021-05-17 18:23:01 +09:00
Dean Herbert
f5dd18f266
Use existing LoadedBeatmapSuccessfully
bool instead
...
Co-authored-by: Salman Ahmed <frenzibyte@gmail.com>
2021-05-14 16:53:51 +09:00
Dean Herbert
dc576c19b4
Fix a potential nullref when starting Player
with autoplay enabled and beatmap fails to load
2021-05-14 15:10:02 +09:00
Dean Herbert
3c3500d070
Merge branch 'skin-components-bind-outwards-health' into remove-hud-overlay-unused-pieces
2021-05-10 12:23:18 +09:00
Dean Herbert
1bbbe80420
Fix missing instances of HealthProcessor
caching
2021-05-10 12:22:24 +09:00
Dean Herbert
b274fdf20d
Merge branch 'master' into skin-components-bind-outwards-health
2021-05-10 11:13:44 +09:00
Dean Herbert
2bcf1ed306
Merge pull request #12715 from Cublibre/fix-early-exit-crash
...
Fix InvalidOperationException when exiting a map at the end
2021-05-09 23:21:19 +09:00
Christine Chen
25312b3e88
Don't restart completion delegate on exit, revert exit behavior to lazer
2021-05-08 11:47:44 -04:00
Christine Chen
8c564a69ed
Fix InvalidOperationException when exiting a map at the end
2021-05-07 21:11:03 -04:00
Dean Herbert
1cb10c2a22
Remove unnecessary binding logic from HUDOverlay
2021-05-07 17:51:46 +09:00
Dean Herbert
755588258e
Update HealthDisplay
components to use DI to attach data source
2021-05-07 17:22:45 +09:00
Dean Herbert
17b93361d5
Merge branch 'master' into skin-components-bind-outwards
2021-05-07 16:20:24 +09:00
Christine Chen
1472960319
Hide and disable skip outro overlay on rewind
2021-05-04 21:35:36 -04:00
Dean Herbert
b380be7169
Add xmldoc for updateCompletionState
2021-05-04 16:43:51 +09:00
Dean Herbert
4c7a4239f8
Fix AllowGameplayOverlays
potentially not working for outro skip overlay
2021-05-04 16:36:07 +09:00
Dean Herbert
b30145de40
Specify explicit primitive type
2021-05-04 16:35:50 +09:00
Dean Herbert
bb9fa1a25e
Merge branch 'master' into play-storyboard-outro
2021-05-04 14:01:34 +09:00
Dean Herbert
625890381f
Update ComboCounter
components to use DI to attach data source
2021-05-03 17:43:00 +09:00
smoogipoo
c7183f92f7
Rename Restart() -> Reset()
2021-04-19 19:57:00 +09:00
Christine Chen
abfa6aec87
Remove completionState parameter
2021-04-19 01:58:19 -04:00
Christine Chen
0b36dd9bce
Skip outro overlay and PerformExit() call updateCompletionState() instead of scheduleCompletion()
...
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-19 01:23:21 -04:00
Christine Chen
99fab456b5
Storyboard completion calls updateCompletionState
...
- If the storyboard ends after the beatmap, call updateCompletionState as if the score processor has completed at that time. (completionProgressDelegate is null here since earlier when the score processor actually completed, updateCompletionState returned after showing the skip overlay.)
- If the storyboard ends before the beatmap does, updateCompletionState simply returns and waits until the score processor is completed.
- If the storyboard and beatmap end at the exact same time, make sure updateCompletionState() is called only once by the score processor completion.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-18 23:25:20 -04:00
Salman Ahmed
f45aed1259
Remove new line between skip overlay fields
2021-04-18 07:25:52 +03:00
Salman Ahmed
a73bae7a66
Schedule completion when storyboard has actually ended
2021-04-18 07:25:33 +03:00
Christine Chen
c77f838fb0
HasStoryboardEnded doesn't trigger updateCompletionState()
...
Scores won't be shown prematurely if the storyboard ends before the playable portion of the beatmap.
2021-04-17 21:49:07 -04:00
Christine Chen
fdcb5e924c
Initialize skipOutroOverlay with alpha 0, other small changes
2021-04-17 17:45:38 -04:00
Christine Chen
81be562379
Read StoryboardEndTime directly from Beatmap
2021-04-17 12:28:31 -04:00
smoogipoo
5e82f40d67
Merge branch 'master' into gcc-abstraction
2021-04-16 20:14:53 +09:00
Christine Chen
33a665224e
Clean up skipOutroOverlay if skipping is disabled
2021-04-16 01:03:15 -04:00
Christine Chen
b15838b220
Move storyboard outro logic to DrawableStoryboard
2021-04-16 00:59:10 -04:00
Christine Chen
45c2b72a25
Merge branch 'master' into play-storyboard-outro
2021-04-15 15:11:35 -04:00
Christine Chen
25b8c2f257
Allow skipping storyboard outro
...
Reuses SkipOverlay by calculating the endtime of the storyboard and using that as a "start point". Upon skipping the outro the score is instantly shown.
When the end of the storyboard is reached the score screen automatically shows up. If the player holds ESC (pause) during the outro, the score is displayed
The storyboard endtime is calculated by getting the latest endtime of the storyboard's elements, or simply returning 0 if there is no storyboard.
Co-Authored-By: Marlina José <marlina@umich.edu>
2021-04-15 13:20:40 -04:00
smoogipoo
1aa36818df
Abstractify GameplayClockContainer
2021-04-14 17:47:11 +09:00
Salman Ahmed
36510309d1
Merge EnableUserDim
and IgnoreUserSettings
to one bindable
2021-04-13 10:58:56 +03:00
Dean Herbert
571124669d
Remove all references to "score submission" from Player
2021-03-23 18:20:55 +09:00
Dean Herbert
6cb14e91c9
Make Player abstract and introduce SoloPlayer
2021-03-23 18:18:49 +09:00
Dean Herbert
b1cd01ceb8
Apply ConfigureAwait changes to game side
2021-03-08 14:36:35 +09:00
Dean Herbert
6a5c6febc5
Add inline comment explaining the retry loop
2021-02-23 13:23:32 +09:00
Salman Ahmed
5493c55da7
Fix silly mistake
2021-02-22 16:59:35 +03:00
Salman Ahmed
5e9040c291
Use "pausing supported" conditional instead
2021-02-22 16:26:35 +03:00
Salman Ahmed
6bac83964a
Merge branch 'master' into fix-pofl-on-cooldown
2021-02-22 10:03:27 +03:00
Dean Herbert
38a2124921
Support instant exit if pausing is not allowed in the current game mode
2021-02-20 14:26:50 +09:00
Salman Ahmed
0771154dd2
Make PauseCooldownActive
protected and expose on test class
2021-02-19 11:42:30 +03:00
Salman Ahmed
ddd1dcff88
Attempt pausing every single frame
2021-02-19 11:33:26 +03:00
Dean Herbert
82cc06ca57
Fix new logic not considering fail overlay correctly
2021-02-19 17:26:54 +09:00
Dean Herbert
4c214b74ce
Merge branch 'master' into fix-error-exit-during-results-transition
2021-02-19 17:13:55 +09:00
Salman Ahmed
4436585aa4
Keep attempting to pause gameplay while window not active
2021-02-19 10:46:32 +03:00
Salman Ahmed
772471a6d8
Add failing test case
2021-02-19 10:46:31 +03:00
Dean Herbert
9cba350337
Refactor again to better cover cases where the pause dialog should definitely be shown
2021-02-15 15:57:36 +09:00
Dean Herbert
1aea840504
Add missing return in early exit scenario (MakeCurrent isn't compatible with the following Exit)
2021-02-15 15:03:12 +09:00
Dean Herbert
2b69c7b325
Fix incorrect order of operation in pause blocking logic
2021-02-15 14:24:08 +09:00
smoogipoo
d3f0c0730d
Merge branch 'master' into non-concurrent-sample-playback
2021-02-12 17:22:15 +09:00
Dean Herbert
2c052d70e8
Only trigger pause cooldown on pause (not exit)
2021-02-09 17:29:18 +09:00
Dean Herbert
cba116ff09
Fix incorrect call parameter for quick exit
2021-02-09 17:28:57 +09:00
Dean Herbert
61b9539864
Fix regression in quick exit logic
2021-02-09 17:14:16 +09:00
Dean Herbert
5bd4f74ddf
Fix a potential crash when exiting play during the results screen transition
2021-02-09 16:24:29 +09:00
Dean Herbert
156f5bd5df
Add newline between statements
2021-02-08 20:05:16 +09:00
smoogipoo
19368f87fb
Fix failing test
2021-02-08 19:59:07 +09:00
Dean Herbert
9e0724b138
Remove unnecessary double resolution of OsuGame
2021-02-08 15:58:41 +09: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
f29938e15d
Make last binding game activity more sensible
2021-02-05 20:39:57 +03:00
Salman Ahmed
e1789c29b1
Use Pause()
instead of performUserRequestedExit()
to avoid unexpected operations
2021-02-05 10:28:13 +03:00
Salman Ahmed
730e66f0ee
Make pausing on window focus lose instant
2021-02-05 09:07:59 +03: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
smoogipoo
de9d075f94
Initial sample + samplechannel rework
2021-01-19 17:11:40 +09:00
Dean Herbert
b3f08b29ca
Ensure that all changes to screen backgrounds are on the correct thread
2021-01-05 15:22:50 +09:00
Bartłomiej Dach
d5fc517fab
Merge branch 'master' into disallow-skipping
2020-12-24 12:35:22 +01:00
Bartłomiej Dach
ee5a6ff9fa
Merge branch 'master' into improved-loading-experience
2020-12-24 11:59:46 +01:00
Dean Herbert
6bd6888a93
Disallow skipping in multiplayer for now
2020-12-24 16:29:51 +09:00
Dean Herbert
e86e9bfae6
Don't begin gameplay until all users are in a completely prepared state
2020-12-24 15:32:55 +09:00
Dean Herbert
76935b93b6
Merge branch 'master' into disallow-multiplayer-restart-retry
2020-12-24 13:31:54 +09:00
Bartłomiej Dach
980e85ce25
Refactor player exit logic to convey intention better
2020-12-23 16:16:24 +01:00
Dean Herbert
f9fd909187
Fix missed inspections
2020-12-23 18:07:38 +09:00
Dean Herbert
3c8f871b28
Move player constructor configuration to dedicated class; add AllowRestart parameter
2020-12-23 17:47:46 +09:00
Dean Herbert
f5d27b40a8
Standardise flow for aborting realtime player exit to avoid double-exit call
2020-12-23 16:35:39 +09:00
Dean Herbert
beaced3211
Remove unnecessary async state machine
2020-12-19 13:58:56 +09:00
smoogipoo
772dd0287e
Split submission and import into two methods
2020-12-19 03:32:05 +09:00
smoogipoo
eccfc8ccd2
Fix potential cross-reference access
2020-12-18 18:31:49 +09:00
smoogipoo
8826d01559
Create completion progress delegate immediately
2020-12-18 18:20:36 +09:00
smoogipoo
1369b75a86
Fix potential multiple submission
2020-12-18 17:48:42 +09:00
smoogipoo
2958cab239
Remove GotoRanking
2020-12-18 17:47:33 +09:00
smoogipoo
2db7433c0b
Refactor player score creation and submission process
2020-12-18 16:51:59 +09:00
smoogipoo
c80ecec0b4
Reorder methods
2020-12-18 15:36:24 +09: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
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
72b8eef36e
Add ability to pause/resume replay playback
2020-11-24 15:41:56 +09:00
Dean Herbert
2db42f8e67
Remove default allowRetry parameter value from ResultsScreen
2020-11-20 14:35:44 +09:00
Bartłomiej Dach
d55eae55ad
Merge branch 'master' into fix-combo-break-rewind-replay
2020-11-13 21:46:32 +01:00
Dean Herbert
4b5743d993
Fix combo break sound not playing after rewind
2020-11-13 13:38:14 +09:00
smoogipoo
66213f2ed0
Add pooling support to DrawableRuleset + Playfield
2020-11-10 23:56:32 +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
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
Dean Herbert
4fca7675b0
Don't send spectate data when an autoplay mod is active
2020-10-23 14:47:21 +09:00
Dean Herbert
80b1f816c7
Merge branch 'master' into hide-hud-during-break-time
2020-10-20 14:19:04 +09:00
Dean Herbert
8a3bce3cc3
Fix osu!catch showing two combo counters for legacy skins
2020-10-16 18:20:17 +09:00
Dean Herbert
e3eaba7b2c
Move ISampleDisabler implementation to Player and FrameStabilityContainer
2020-10-14 19:39:48 +09:00
Dean Herbert
de6fe34361
Bind to local bindable and combine dual bindings
2020-10-11 21:51:48 +09:00