Bartłomiej Dach
cadd487c75
Use switch statement in AttemptHardLink()
2022-12-28 21:20:49 +01:00
Bartłomiej Dach
2c346eae0d
Revert inlining of hard link creation into condition
...
Just feels bad. Mixing data access with actual underlying logic.
2022-12-28 21:19:28 +01:00
BlauFx
d63be3ff17
Change name of variable
2022-12-28 15:02:44 +01:00
BlauFx
c6da7248ba
Remove unnecessary directive
2022-12-28 14:40:32 +01:00
BlauFx
53bca947d1
Move duplicated code into its own method
2022-12-28 14:34:27 +01:00
BlauFx
f32564652b
Mention the filesystem should be NTFS on Windows
2022-12-28 14:33:38 +01:00
BlauFx
5c5e84f931
Fix formatiing
2022-12-28 14:06:50 +01:00
Dean Herbert
ea8beffa61
Merge pull request #21871 from bdach/solo-statistics-watcher-reliability
...
Improve reliability of solo statistics watcher
2022-12-28 21:05:38 +08:00
BlauFx
16165b1f67
Remove blank line
2022-12-28 13:58:52 +01:00
Bartłomiej Dach
e4c060fc3a
Merge pull request #21854 from peppy/fix-website-root
...
Fix `osu.ppy.sh` links no longer opening in-game
2022-12-28 13:43:24 +01:00
BlauFx
b2aa2e1602
Add hardlink support for Linux
2022-12-28 13:32:49 +01:00
Bartłomiej Dach
4b71ccf315
Merge pull request #21879 from frenzibyte/first-object-visbility-keywords
...
Add keywords to ease search of "first object visibility" setting
2022-12-28 12:15:34 +01:00
Salman Ahmed
b4c5e18da0
Add keywords to ease search of "first object visibility" setting
2022-12-28 13:23:50 +03:00
Bartłomiej Dach
3c0b8af8f1
Allow unsubscribing from solo statistics updates
...
This is more of a safety item. To avoid potential duplicate key in
dictionary errors (and also avoid being slightly memory-leaky), allow
`SoloStatisticsWatcher` consumers to dispose of the subscriptions they
take out.
2022-12-28 08:07:48 +01:00
Bartłomiej Dach
04f9a354c3
Convert SoloResultsScreen
to NRT
2022-12-28 07:54:36 +01:00
Bartłomiej Dach
a0a26b1e8c
Ignore statistics update subscriptions with invalid score ID
...
If score submission fails, the score will not receive a correct online
ID from web, but will still be passed on to the solo statistics watcher
on the results screen. This could lead to the watcher subscribing to
changes with score ID equal to the default of -1. If this happened more
than once, that would cause a crash due to duplicate keys in the
`callbacks` dictionary.
Closes #21837 .
2022-12-28 07:54:01 +01:00
Bartłomiej Dach
e9d32fca18
Fix various failures in initial statistics fetch
...
- If the local user is restricted, then attempting to fetch their data
from the `/users` endpoint would result in an empty response.
- Even if the user was successfully fetched, their `RulesetsStatistics`
may not be populated (and instead be `null`). Curiously this was not
picked up by static analysis until the first issue was fixed.
Closes #21839 .
2022-12-28 07:31:36 +01:00
Dean Herbert
0d78bc2248
Fix osu.ppy.sh
links no longer opening in-game
...
Addresses https://github.com/ppy/osu/discussions/21838 .
2022-12-28 06:42:35 +08:00
Bartłomiej Dach
e90619244d
Fix incorrect accuracy display on overall ranking view
2022-12-27 19:51:51 +01:00
Bartłomiej Dach
ae2058b55e
Merge branch 'master' into split_trimentries
2022-12-27 18:07:36 +01:00
Salman Ahmed
1a4489edb2
Move version pinning of system packages to osu.Game
2022-12-27 14:58:18 +03:00
Dean Herbert
61029b126d
Add link to hard link explanation wiki page
2022-12-27 17:56:23 +08:00
Dean Herbert
b3e44f20bc
Use new lazer API endpoint
...
This is a temporary change to target the new experimental/next deploy.
The main change that should result from this is having the user profile
show the pp^next values from the new domain.
2022-12-27 17:20:40 +08:00
Berkan Diler
182f36c434
Use StringSplitOptions.TrimEntries for string.Split() when possible
2022-12-27 09:41:58 +01:00
Dean Herbert
df6f2ad0a1
Merge pull request #21804 from bdach/hide-global-rankings-when-presenting-scores
...
Only show global rankings on solo results screen when progressing from gameplay
2022-12-27 16:39:26 +08:00
Joseph Madamba
777ffcf805
Highlight "open" option on external link button context menu
2022-12-26 20:47:24 -08:00
Joseph Madamba
bb58976838
Merge remote-tracking branch 'upstream/master' into overlay-panels-context-menu
2022-12-26 17:54:15 -08:00
Joseph Madamba
8bc8b0d0af
Remove redundant context menu container
2022-12-26 15:38:07 -08:00
Joseph Madamba
84e3858a86
Move context menu / popover container one level to account for header
2022-12-26 15:37:46 -08:00
Bartłomiej Dach
01cf96e240
Only show global rankings on results screen when progressing from gameplay
2022-12-26 23:35:45 +01:00
Bartłomiej Dach
cb2b0d4178
Remove redundant type specs
2022-12-26 23:12:53 +01:00
Berkan Diler
fcbb21c75e
Fix typo
2022-12-26 20:38:35 +01:00
Berkan Diler
c7ca4bbba5
Use generic Enum methods
2022-12-26 20:36:39 +01:00
Bartłomiej Dach
e416bdd06b
Merge branch 'master' into remove_obsolete_star_colours
2022-12-26 16:35:47 +01:00
mk56-spn
fbff5d8d69
Remove obsoleted "ForDifficultyRating" method
2022-12-26 16:16:52 +01:00
Dean Herbert
5dd03c6c60
Update framework
2022-12-26 21:53:52 +08:00
Dan Balasescu
786d94c149
Merge pull request #21792 from Joehuu/fix-parameters-inspection
...
Fix parameters with the same default value inspection
2022-12-26 15:41:54 +09:00
Dean Herbert
09cc41604f
Merge branch 'master' into score-stats-on-results
2022-12-26 13:37:36 +08:00
Joseph Madamba
144144c40c
Revert removing redundant font parameter
2022-12-25 20:47:05 -08:00
Salman Ahmed
ee77b8cad3
Merge branch 'master' into fix-parameters-inspection
2022-12-26 05:17:40 +03:00
Salman Ahmed
2d57ea6f15
Merge branch 'master' into link-title-and-artist
2022-12-26 03:23:05 +03:00
Joseph Madamba
973fd90af2
Fix parameters with the same default value inspection
2022-12-25 16:15:02 -08:00
Joseph Madamba
f959b02dc8
Use empty drawables for spacing badges instead
2022-12-25 16:05:59 -08:00
Joseph Madamba
8e899c2e92
Use localisation parameters to find preferred string instead
2022-12-25 16:03:44 -08:00
Joseph Madamba
1a571e1c7f
Remove nullable disable on user panel
2022-12-25 15:03:08 -08:00
Joseph Madamba
b9dfb8b602
Add localisation for context menu strings
2022-12-25 10:12:02 -08:00
Joseph Madamba
2c2f347e25
Add context menus to overlay panels/cards
2022-12-25 09:57:42 -08:00
Joseph Madamba
b871d6f078
Remove unused fields
2022-12-24 13:35:17 -08:00
Joseph Madamba
ae967e08b0
Add badges when needed instead of using alpha
2022-12-24 13:27:46 -08:00
Joseph Madamba
4f6b3644f3
Fix title/artist overflowing to right side
2022-12-24 12:40:32 -08:00
Joseph Madamba
df645ef3cb
Change title/artist idle colour to white
2022-12-24 11:42:05 -08:00
Joseph Madamba
9d073f4228
Link beatmap set title and artist to listing search
2022-12-24 11:26:09 -08:00
Bartłomiej Dach
36a6f3685e
Don't show global rankings display when not logged in
2022-12-24 14:35:11 +01:00
Bartłomiej Dach
145130ba80
Register solo statistics watcher at game level
2022-12-24 14:35:07 +01:00
Bartłomiej Dach
da519acb20
Add overall ranking display to solo results
2022-12-24 14:35:04 +01:00
Bartłomiej Dach
3abdf557ea
Add protected method for customising statistics panel rows
2022-12-24 14:35:00 +01:00
Bartłomiej Dach
600ada46be
Add protected method for customising statistics panel
2022-12-24 14:34:54 +01:00
Bartłomiej Dach
cf0b3ec879
Merge branch 'master' into score-stats-display
2022-12-24 14:32:08 +01:00
Dean Herbert
209d44746a
Merge pull request #21762 from bdach/score-stats-updates
...
Add solo statistics watcher component to deliver incremental global user statistics updates
2022-12-24 21:30:34 +08:00
Bartłomiej Dach
e961af20cc
Merge branch 'score-stats-updates' into score-stats-display
2022-12-24 13:56:10 +01:00
Bartłomiej Dach
78c47a3695
Add callback to dictionary rather than overwrite
...
Attempting to overwrite will henceforth throw an exception.
2022-12-24 13:45:04 +01:00
Bartłomiej Dach
6c4ca387e0
Fix wrong handling of missing ruleset statistics
2022-12-24 13:44:11 +01:00
Bartłomiej Dach
3c26016b61
Ensure latest stats are cleared on successful profile fetch
2022-12-24 13:44:08 +01:00
Bartłomiej Dach
fd9110a61e
Fix solo statistics watcher firing requests for invalid user with id 1
...
Can happen during login flow (see `APIAccess.attemptConnect()`).
2022-12-24 13:44:05 +01:00
Bartłomiej Dach
d6e079a2b4
Ignore statistics update requests from third-party rulesets for now
2022-12-24 13:43:57 +01:00
Bartłomiej Dach
83a50816b6
Remove unused constructor param
2022-12-24 10:44:38 +01:00
Bartłomiej Dach
4bcc2b832c
Merge branch 'master' into add-help-button
2022-12-24 10:40:35 +01:00
Bartłomiej Dach
301eb71e22
Fix wrong member names
2022-12-24 10:39:05 +01:00
Dean Herbert
2c060ac8d4
Add localisation support for new button's strings
2022-12-24 17:32:04 +08:00
Bartłomiej Dach
4e5109a649
Use plain bindable flow instead of binding to watcher directly
2022-12-24 10:27:28 +01:00
Bartłomiej Dach
75ddeaeeb8
Merge branch 'master' into argon-pro-skin-hide-highest-judgement
2022-12-24 09:41:18 +01:00
Bartłomiej Dach
80de5dac66
Fix judgement text never being added to hierarchy
2022-12-24 09:37:40 +01:00
Bartłomiej Dach
f973befcd4
Remove unused resolved member
2022-12-24 09:34:30 +01:00
Dean Herbert
91bde14fb3
Add button to settings to show lazer upgrade guide
2022-12-24 15:42:24 +08:00
Dean Herbert
5e9fb1063a
Move judgement text creation to base class and tidy things up
2022-12-24 12:22:36 +08:00
Bartłomiej Dach
c7f248e13c
Implement overall ranking display for solo results screen
2022-12-24 00:30:38 +01:00
Bartłomiej Dach
3e782c5f5f
Extract interface for solo statistics watcher
2022-12-23 23:46:41 +01:00
Dean Herbert
727ac00f6d
Combine base class for JudgementPiece
2022-12-24 03:32:13 +08:00
Joseph Madamba
2dbcf05fe4
Use enum values as ids in fallback instead
2022-12-23 11:13:27 -08:00
Joseph Madamba
494886ef92
Rename Text
to Metadata
2022-12-23 11:11:15 -08:00
Bartłomiej Dach
94d78a47a4
Merge branch 'master' into upgrade-guide-help
2022-12-23 17:22:04 +01:00
Bartłomiej Dach
9a2cc04361
Fix wrong path being used in fail handler
2022-12-23 16:44:03 +01:00
Bartłomiej Dach
67aea34e7e
Merge branch 'master' into fix-breadcrumb-tab-item-click-area
2022-12-23 16:36:58 +01:00
Dean Herbert
a677c8be06
Change path on error
2022-12-23 21:17:42 +08:00
Dean Herbert
5eccafe190
Fix wiki overlay showing error message when load is cancelled
2022-12-23 16:45:40 +08:00
ansel
f25439e359
Move track change subscription to LoadComplete
2022-12-23 01:54:49 +03:00
Bartłomiej Dach
676d4a0d6d
Merge branch 'master' into fix-waveform-zoom-reload
2022-12-22 23:48:50 +01:00
Salman Ahmed
0cb9b79834
Fix ZoomableScrollContainer
potentially not updating content width on setup
2022-12-23 00:56:38 +03:00
Salman Ahmed
30de9ba795
Dispose previous waveform on track reload
2022-12-23 00:35:59 +03:00
Berkan Diler
08d2fbeb8e
Use new ArgumentNullException.ThrowIfNull throw-helper API
2022-12-22 21:27:59 +01:00
Bartłomiej Dach
fa2d50fe31
Limit tracking unhandled scores to just the last one
2022-12-22 19:59:39 +01:00
Bartłomiej Dach
48dc2332fd
Refactor test to be easier to work with
2022-12-22 19:59:35 +01:00
Bartłomiej Dach
ac872fac9e
Implement solo statistics watcher
2022-12-22 19:59:07 +01:00
ansel
20370bd5ae
Invalidate waveform on track load
2022-12-22 20:49:09 +03:00
Salman Ahmed
8be6350c01
Remove no longer necessary assert
2022-12-22 20:07:53 +03:00
Flutterish
5df440e20e
dont use is..or
syntax
2022-12-22 17:27:55 +01:00
Flutterish
422fdd8ae5
dont post notifications from custom log targets
2022-12-22 16:56:27 +01:00
ansel
d0645ce151
Rewrite waveform invalidation
2022-12-22 15:59:51 +03:00
ansel
f2e8776529
Bind to clock instead of music controller
2022-12-22 15:35:53 +03:00
Salman Ahmed
28fc2f34b5
Merge branch 'master' into restore-default-button-hit-area
2022-12-22 13:32:57 +03:00
Bartłomiej Dach
f5b3988dd2
Add data structure for delivering statistics updates
2022-12-22 08:01:59 +01:00
Dean Herbert
11321f1a41
Merge pull request #21738 from bdach/spectator-user-score-processed
...
Add score processed callback to spectator client
2022-12-22 13:55:43 +08:00
ansel
a18ece8610
Listen for track reload in timing screen
2022-12-22 01:24:23 +03:00
ansel
7089bb6c23
Listen for track reload in timeline
2022-12-22 01:23:59 +03:00
ansel
66a02374da
Clear cached waveform on track change in editor
2022-12-22 01:23:24 +03:00
Bartłomiej Dach
6948035a3c
Ensure score submission attempt completion before notifying spectator server when exiting play early
...
When a `SubmittingPlayer` gameplay session ends with the successful
completion of a beatmap, `PrepareScoreForResultsAsync()` ensures that
the score submission request is sent to and responded to by osu-web
before calling `ISpectatorClient.EndPlaying()`.
While previously this was mostly an implementation detail, this becomes
important when considering that more and more server-side flows (replay
upload, notifying about score processing completion) hook into
`EndPlaying()`, and assume that by the point that message arrives at
osu-spectator-server, the score has already been submitted and has been
assigned a score ID that corresponds to the score submission token.
As it turns out, in the early-exit path (when the user exits the play
midway through, retries, or just fails), the same ordering guarantees
were not provided. The score's submission ran concurrently to the
spectator client `EndPlaying()` call, therefore creating a network
race. osu-server-spectator components that implciitly relied on the
ordering provided by the happy path, could therefore fail to unmap the
score submission token to a score ID.
Note that as written, the osu-server-spectator replay upload flow is
not really affected by this, as it self-corrects by essentially polling
the database and trying to unmap the score submission token to a score
ID for up to 30 seconds. However, this change would have the benefit of
reducing the polls required in such cases to just one DB retrieval.
2022-12-21 22:23:26 +01:00
Joseph Madamba
e1e6d76f30
Check id for genre/language instead and fallback to name if not defined
2022-12-21 11:02:04 -08:00
Bartłomiej Dach
3ec31a5f51
Fix language selector in first run dialog not updating after changing language in settings
2022-12-21 19:30:21 +01:00
Joseph Madamba
1d39e8d0ce
Refactor MetadataSection
to use generics and inheritance
2022-12-21 10:18:47 -08:00
Dean Herbert
19f66c806e
Fix language dropdown in settings not updating after changing language in first run dialog
...
Closes #21744 .
2022-12-21 16:31:55 +08:00
Bartłomiej Dach
b03291330f
Add score processed callback to spectator client
2022-12-20 21:23:50 +01:00
Bartłomiej Dach
cebd5f6dc2
Fix restore default button having a minuscule hit area
...
Another casualty of edc78205d5
. This
particular button was actually *relying* on receiving positional events
from its entire bounding box rather than `Content`, in order for the
button to be htitable more easily, which broke as other buttons were
fixed to behave more in line with expectations.
Upon closer inspection this is another case of a weird carried-over
construction. The button doesn't really need to inherit `OsuButton` or
do any of the arcane stuff that it was doing, so it's now a plain
`OsuClickableContainer` with less `Content` hackery.
2022-12-20 20:47:58 +01:00
Bartłomiej Dach
378486cbe0
Merge branch 'master' into argon-pro-skin
2022-12-20 19:34:56 +01:00
Bartłomiej Dach
bf074adb13
Remove unused using directive
2022-12-20 18:24:26 +01:00
Bartłomiej Dach
8ead606065
Merge branch 'master' into ui-scale-only-show-one-screen
2022-12-20 18:23:37 +01:00
Dean Herbert
2c402d4740
Update resources
2022-12-21 01:24:41 +09:00
Jamie Taylor
f7c854f1b0
Change asset folder
2022-12-20 21:18:51 +09:00
Dean Herbert
2f0c772dcb
Add argon pro skin
2022-12-20 21:18:51 +09:00
wiskerz76
439b8ac56a
Fix file select popup getting stuck when switching first run screens while selecting
...
Closes #21663
Supersedes #21724
2022-12-20 17:59:23 +09:00
Dean Herbert
c119d41a2d
Only show song select for now at ui scale adjust first run screen
...
Having both was a bit too much. Still not happy with this but it's a bit
less sensory overload.
I think while it's cool being able to show nested screens like this, it
needs more thought to actually be a good experience.
2022-12-20 17:52:56 +09:00
Joseph Madamba
01f09529a8
Link beatmap set genre and language to listing filters
2022-12-19 22:54:33 -08:00
Bartłomiej Dach
64a45aa0e0
Merge branch 'master' into wiki-heading-id-attributes
2022-12-20 06:34:47 +01:00
Dean Herbert
4a9b58adda
Merge branch 'master' into markdown-footnote-support
2022-12-20 13:48:35 +09:00
Bartłomiej Dach
7c282d9def
Enable generic attribute support for wiki markdown containers
2022-12-19 21:32:38 +01:00
Bartłomiej Dach
db1380a346
Refactor markdown extension management
2022-12-19 20:19:51 +01:00
Bartłomiej Dach
a88812861e
Implement bidirectional footnote link navigation
2022-12-19 19:34:47 +01:00
Bartłomiej Dach
73a4310935
Add styling for footnote groups
2022-12-19 19:34:40 +01:00
Bartłomiej Dach
112613c2f0
Add styling for footnote links
2022-12-19 19:28:01 +01:00
Bartłomiej Dach
0dce899634
Throw on OsuClickableContainer.ClearInternal()
invocations
...
As they may cause critical failure due to getting rid of the `Content`.
2022-12-19 18:25:45 +01:00
Bartłomiej Dach
186ccc64fd
Fix welcome screen language buttons not working
2022-12-19 18:19:26 +01:00
Dean Herbert
ecac6299c6
Update framework
2022-12-19 22:01:20 +09:00
Dean Herbert
4a7d7c6ed9
Use MaxBy
in all locations that can and update inspection level to match dotnet-build
2022-12-19 16:47:10 +09:00
Dean Herbert
8a01a22612
Fix two null refrences in OsuGame
2022-12-19 16:47:10 +09:00
Dean Herbert
877413524f
Cherry-picked android changes from #17462
2022-12-19 15:46:54 +09:00
Dean Herbert
b64a5cbda6
Merge branch 'master' into guard-url-protocols
2022-12-19 15:46:45 +09:00
Joseph Madamba
6e62033bc4
Fix some comment actions not being lowercased
2022-12-18 20:20:15 -08:00
Bartłomiej Dach
fea0895f16
Call spectator EndPlaying()
immediately after score submission
...
As it turns out, in current `master`, if a gameplay session ends
normally (i.e. by the player completing the beatmap in full), then
the spectator server `EndPlaying()` method will not be called until
`SubmittingPlayer.OnExiting()`, which in practice turns out to be
the moment where the user exits from the post-gameplay results screen
back to song select.
There is seemingly no reasonable cause for not calling this earlier. In
fact the solo spectator flow looks more broken without this call than
with, because without it the spectator view just hangs until the
spectated player exits gameplay, and *only then* shows results, rather
than do it upon normal gameplay completion.
2022-12-17 21:35:43 +01:00
Joseph Madamba
813c351607
Fix breadcrumb tab item click area not extending to background height
2022-12-16 21:44:10 -08:00
Dean Herbert
192536643c
Fix some more inspections
2022-12-16 20:21:19 +09:00
Dean Herbert
dd9a418549
Fix assembly location lookups
2022-12-16 19:19:59 +09:00
Dean Herbert
de079e08dc
Fix incorrect ConfigureAwait
call in ImportAsUpdate
2022-12-16 18:54:56 +09:00
Dean Herbert
ba54551313
Merge branch 'master' into guard-url-protocols
2022-12-16 18:23:16 +09:00
Dean Herbert
27c497145f
Fix the MOTHERLOAD of undetected issues that are now visible thanks to net6.0
2022-12-16 18:16:26 +09:00
Jamie Taylor
d5b2c7dfe9
Clamp SFX panning on results screen
2022-12-16 17:19:07 +09:00
Dean Herbert
d6cae991da
Update netstandard2.1
references to net6.0
2022-12-16 17:16:13 +09:00
Dean Herbert
e63b544167
Update framework
2022-12-16 17:02:51 +09:00
Dean Herbert
ce408eaac0
Merge branch 'net6-ios' into guard-url-protocols
2022-12-16 17:02:32 +09:00
Dan Balasescu
cbee72897a
Merge pull request #21654 from Susko3/use-localisable-strings-for-dates-and-times
...
Use `LocalisableString`s for date and time formats
2022-12-16 16:17:14 +09:00
Dean Herbert
232f590ba3
Merge pull request #21628 from peppy/go-hard-file-writes
...
Use hard links on windows when importing beatmaps from a legacy osu! install
2022-12-16 14:52:57 +09:00
cdwcgt
a4d28aff6d
fix typo
2022-12-16 10:48:56 +09:00