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

39833 Commits

Author SHA1 Message Date
Wleter
ce1bc71567 formatting 2023-08-29 18:41:56 +02:00
Wleter
586ce6e8d3 fix multiple selected 2023-08-29 17:47:42 +02:00
Wleter
14ee0ee395
Merge branch 'ppy:master' into skin-editor-selection-negative-scaling 2023-08-29 17:30:55 +02:00
Wleter
d56ab0fe9a change names 2023-08-29 17:25:52 +02:00
Wleter
3c575516ab add correct scaling for 90 degrees rotation 2023-08-29 17:06:23 +02:00
Bartłomiej Dach
d07530b241
Mark "Score V2" mod as not user-playable
The mod generally will only be present on scores imported from stable.
As such, it's probably ok to mark it as such.

The primary reason for this change is to address #24436 (Score V2 being
visible on beatmap overlay leaderboard mod selector).

There is one possibly-unintended consequence of this change, namely that
the results screen uses `UserPlayable` to determine as to whether
animations should be played back, with the intention of turning off the
animation playback for autoplay scores specifically. Therefore, turning
off this flag will mean that the results screen animations will not play
out for Score V2 scores - but I tend to consider this as either largely
unimportant, or something that should be fixed in some other way
(possibly by checking against the autoplay mod directly).

Other usages of `UserPlayable` are either innocuous, or straight-up good
safeties going forward in the context of Score V2 (guards against
selection in mod select overlays, against score submission with
the mod).
2023-08-29 11:52:11 +02:00
Givikap120
f8adc911cd
Merge branch 'ppy:master' into map_info_on_mod_settings 2023-08-28 23:17:04 +03:00
Givikap120
50235cc245 somewhat working prototype 2023-08-28 23:16:33 +03:00
Wleter
07e126241d working negative scaling 2023-08-28 16:41:55 +02:00
Bartłomiej Dach
99d5ff9efb
Switch download requests to new API endpoint
This API endpoint is intended for usage with the entire `solo_scores`
machinery and ID schema, rather than the legacy `*_scores_high` ID
schema. It also supports automagically falling back to downloading
legacy replays if a stable-imported score is requested for download
(internally this happens via `legacy_score_id` in the `data` json).

This change will allow replays to be downloaded, but it will still not
yield 100% correct behaviour, as there is further work to be done in
that respect. The download tracker is expecting score hashes to arrive
from web to verify the integrity of the incoming download, but the API
does not expose such a facility right now; we will have to decide as to
whether we want to add one web-side, or whether we want to disable the
checking client-side.
2023-08-28 13:50:52 +02:00
Bartłomiej Dach
97d1c6e9fc
Merge branch 'master' into carousel-difficulty-split 2023-08-28 11:07:43 +02:00
Bartłomiej Dach
b9795eb3d4
Fix changes to beatmap sets being undone on switching sort mode 2023-08-28 11:02:22 +02:00
Bartłomiej Dach
80ec18d117
Fix incorrect selection restore code in split case
The fallback to "any of the added sets" needs to be applied after
they've all been added, rather than with every added one. Otherwise, in
flows that expect a particular difficulty to be selected in the end
(such as exiting from editor) would end up switching away from the
edited beatmap.
2023-08-28 10:06:26 +02:00
Bartłomiej Dach
0af6cc1394
Fix online ID not being propagated in split difficulty mode
Would result in failures to re-download the beatmap in update flows, for
instance.
2023-08-28 10:05:59 +02:00
Givikap120
8a1fc7c340 Basic stuff (not working for now) 2023-08-26 01:20:41 +03:00
Dean Herbert
10b1450138 Rename remove method to better explain return type being IEnumerable 2023-08-25 18:10:54 +09:00
Dean Herbert
bf0f4fddad Localise non-overridden samples 2023-08-25 01:08:22 +09:00
Dean Herbert
35cdd6d866 Use string.Empty 2023-08-25 01:07:07 +09:00
Dean Herbert
89eeff515b Reduce complexity of selection restore 2023-08-25 00:52:54 +09:00
Dean Herbert
9e94f38091 Fix typo in local variable 2023-08-24 18:33:15 +09:00
Dean Herbert
081fb308e1 Merge branch 'master' into new-overlay-sfx 2023-08-24 18:29:00 +09:00
Jamie Taylor
f4415a5bab
Add more detail to comment 2023-08-24 18:20:36 +09:00
Jamie Taylor
7ef5a71e91
Move PopIn/PopOut sample playback from WaveOverlayContainer to WaveContainer (so Multiplayer/Lounge plays the samples) 2023-08-24 18:13:23 +09:00
Jamie Taylor
2e27a476bb
Re-enable sample playback for PasswordEntryPopover and remove sampleJoin playback instead 2023-08-24 18:04:47 +09:00
Dean Herbert
a8e4237e34 Enable sentry "global mode" as per recommendation
Sentry documentation suggests this should be on for a client-facing app.

We haven't run into issues without it until now, but might as well set it correctly?
2023-08-24 03:23:18 +09:00
Dean Herbert
72d2715222 Show mod settings as "on" or "off" rather than "True" or "False" 2023-08-23 20:21:43 +09:00
Dean Herbert
d6aded3ac3 Update framework 2023-08-23 20:11:55 +09:00
Dean Herbert
91c2cadb47 Add missing colon in mod settings tooltip 2023-08-23 19:13:32 +09:00
Dean Herbert
018be4c20f Fix selection not being retained when switching between split mode 2023-08-22 18:49:02 +09:00
Dean Herbert
ecbf0f138e Fix incorrect handling when new beatmaps arrive 2023-08-22 18:48:07 +09:00
Dean Herbert
2b1c6ae612 Ensure ID is maintained in temporary BeatmapSetInfos 2023-08-22 18:48:07 +09:00
Dean Herbert
290d18ad69 Split out difficulties in beatmap carousel in a bit of a hacky way
Seems like the simplest path forward for now, without a full rewrite.
2023-08-22 18:47:41 +09:00
Bartłomiej Dach
8cd9f0822a
Merge branch 'master' into judge-fix 2023-08-22 09:44:58 +02:00
Bartłomiej Dach
5be5335784
Reword comment to be better 2023-08-22 09:37:54 +02:00
Bartłomiej Dach
142abe1fd0
Make highlight messages important in order to trigger window flash 2023-08-22 09:01:32 +02:00
Bartłomiej Dach
aa29e00578
Remove FlashTaskbar and use IsImportant directly instead 2023-08-22 08:58:48 +02:00
Bartłomiej Dach
be1a712f33
Make OsuGame dependency nullable 2023-08-22 08:54:41 +02:00
Bartłomiej Dach
71b5be2568
Merge branch 'master' into ux/notifications/flash-on-message 2023-08-22 08:20:08 +02:00
Dean Herbert
f09b818418 Update resources 2023-08-22 13:17:12 +09:00
Dan Balasescu
e8337c592a Update framework and apply changes to support masking SSBO 2023-08-22 12:50:13 +09:00
Dean Herbert
2937dcef1a
Merge pull request #24610 from bdach/remove-global-action-container-hack
Remove global action container input queue workaround
2023-08-22 12:44:26 +09:00
tsrk
96c58c86ea
refactor: make flashing available in Notifications
This will be used in `NotificationOverlay` when a `Notification` is posted.
2023-08-21 23:36:54 +02:00
Wleter
9f4f81c150 accumulating negative scaling 2023-08-21 19:36:11 +02:00
Bartłomiej Dach
5454d1caa1
Remove global action container input queue workaround
As described in #24248, the workaround employed by
`GlobalActionContainer`, wherein it tried to handle actions with
priority before its children by being placed in front of the children
and not _actually containing_ said children, is blocking the resolution
of some rather major input handling issues that allow key releases to be
received by deparented drawables.

To resolve, migrate `GlobalActionContainer` to use `Prioritised`, which
can be done without regressing certain mouse button flows after
ppy/osu-framework#5966.
2023-08-21 17:54:08 +02:00
Bartłomiej Dach
273dcf9150
Also update the reference to added flag in schema change breakdown 2023-08-21 17:44:35 +02:00
Bartłomiej Dach
99c862f894
Merge branch 'master' into fix-score-import-fail-fail-fail 2023-08-21 17:28:10 +02:00
Bartłomiej Dach
8533cba0bf
Fix mismatching schema version in comment 2023-08-21 17:27:05 +02:00
Bartłomiej Dach
aa5680a8aa
Merge pull request #24527 from Pasi4K5/fix-slider-reversing
Fix sliders being reversed incorrectly in the editor
2023-08-21 17:12:00 +02:00
Bartłomiej Dach
6cd48e9db5
Merge pull request #24604 from peppy/fix-star-fountain-directions
Fix star fountain directions not matching stable
2023-08-21 17:00:51 +02:00
tsrk
bdac052631
refactor(MessageNotifier): apply changes required by framework 2023-08-21 15:29:41 +02:00
OliBomby
e283aa2843 Update inline comments 2023-08-21 13:09:31 +02:00
OliBomby
5bc11ed358 Revert "Ensure invariant of monotone time"
This reverts commit 5d1ccc2601.
2023-08-21 13:02:23 +02:00
OliBomby
c7b1c75379 Revert "Fix typo"
This reverts commit 90f2acaf0a.
2023-08-21 13:00:01 +02:00
Dean Herbert
b3e7416972 Rename new flag and update xmldoc to match 2023-08-21 19:36:22 +09:00
Dean Herbert
662073c472
Fix some incorrect comments / test step descriptions
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-21 19:35:04 +09:00
Dean Herbert
db893f3dc7 Merge branch 'master' into fix-score-import-fail-fail-fail 2023-08-21 19:34:12 +09:00
Dean Herbert
5f040a991b Fix potential crash when loading menu items due to cross-thread ops 2023-08-21 19:05:20 +09:00
Dean Herbert
e7d61e0002 Fix star fountain directions not matching stable 2023-08-21 17:59:24 +09:00
Dean Herbert
4915b2563c
Merge pull request #24366 from Joehuu/supporter-playlist-duration
Always show supporter-only playlist durations
2023-08-21 17:46:26 +09:00
Bartłomiej Dach
1d657a8844
Merge branch 'master' into fix-slider-reversing 2023-08-21 09:29:46 +02:00
Bartłomiej Dach
90bef267c8
Merge pull request #24581 from OliBomby/fix-segment-ends
Fix `SliderPath.GetSegmentEnds`
2023-08-21 09:29:13 +02:00
Bartłomiej Dach
dd1ac461db
Reformat xmldoc 2023-08-21 08:29:51 +02:00
Bartłomiej Dach
c27f06c0a7
Merge branch 'master' into formats-nrt 2023-08-21 08:17:34 +02:00
Bartłomiej Dach
de9a4448fc
Merge branch 'master' into fix-export-slider 2023-08-21 07:28:16 +02:00
Bartłomiej Dach
a942b6ff74
Replace inline comment with actual explanation of what's happening 2023-08-21 07:27:02 +02:00
Wleter
d2798c7a1c don't allow negative scaling 2023-08-20 17:55:19 +02:00
OliBomby
56b1062c2f expand xmldoc 2023-08-19 19:39:29 +02:00
Dean Herbert
8120c3f87a
Merge branch 'master' into precise-rotation-2 2023-08-19 23:25:42 +09:00
Bartłomiej Dach
0a55830c16
Add braces for clarification
I like no-braces for single-line ifs as much as anyone, but with inline
comments involved it gets rather dicey.
2023-08-19 14:34:20 +02:00
tsrk
548e6dc23b
feat(MessageNotifier): flash window on PM or mention 2023-08-19 03:04:09 +02:00
Pasi4K5
44a85139e4 Update Reverse() based on the changes in #24581 2023-08-19 02:40:18 +02:00
Pasi4K5
47d787b359 Merge remote-tracking branch 'OliBomby/fix-segment-ends' into fix-slider-reversing 2023-08-19 02:38:34 +02:00
Pasi4K5
0e691d5935 Revert changes in SliderPath 2023-08-19 00:16:05 +02:00
OliBomby
ff07fbae15 fix GetSegmentEnds 2023-08-18 12:20:40 +02:00
Dean Herbert
cbee7c7146
Merge branch 'master' into import-stable-date-added 2023-08-18 18:01:06 +09:00
Dean Herbert
5e0b89a1a8 Rename GetPath to GetFullPath to better match expectations 2023-08-18 17:56:43 +09:00
Dean Herbert
864f1bdb3e Move population of import time to the Populate method
Feels like a better place to be doing this. I think we want to keep any
kind of potentially expensive work in the `Populate` method.
2023-08-18 17:56:11 +09:00
Dean Herbert
eb2460d180 Remove dead metadata transfer code 2023-08-18 17:40:00 +09:00
Dean Herbert
9023059bc0 Convert to switch statement 2023-08-18 17:27:09 +09:00
Dean Herbert
75750957c7 Add note about why pop in samples are disabled for PasswordEntryPopover 2023-08-18 17:11:30 +09:00
Dean Herbert
fc2fac577f Inverse and xmldoc ShearedToggleButton sample allowance bool 2023-08-18 17:05:25 +09:00
Pasi4K5
3481c41a22 Fix segmentEnds being calculated incorrectly 2023-08-18 04:34:10 +02:00
OliBomby
360f9750e1 Allow selecting empty control point groups 2023-08-17 16:30:18 +02:00
Dean Herbert
c811546868 Update resources 2023-08-17 21:09:50 +09:00
Jamie Taylor
d10d7b6ea4
Change some component samples to go better with overlay pop-in samples 2023-08-17 18:36:37 +09:00
Jamie Taylor
3d7ba0e18c
Add pop-in/pop-out sfx to more overlays 2023-08-17 18:36:37 +09:00
Jamie Taylor
04a1f6a508
Add panning to certain overlay pop-in/pop-outs 2023-08-17 18:36:37 +09:00
Jamie Taylor
b15a54c914
Use new overlay pop-in/pop-out samples 2023-08-17 18:36:36 +09:00
Dean Herbert
e2cb0d7afb Update framework 2023-08-17 17:59:22 +09:00
Dean Herbert
a78c03bd5b Merge branch 'master' into precise-rotation-2 2023-08-17 17:59:13 +09:00
cdwcgt
0db82e5286
beatmapSetInfo never be null 2023-08-17 17:27:50 +09:00
cdwcgt
61a1460f09
remove useless Using 2023-08-17 17:27:14 +09:00
cdwcgt
3a3951ebf4
remove useless api resolved 2023-08-17 17:26:00 +09:00
Krzysztof Gutkowski
59abb59ee8 Set correct date added value when importing stable beatmapsets 2023-08-17 00:49:48 +02:00
OliBomby
8686b6b1e6 fix The last slider point has effect on previous inherited 2023-08-16 16:44:08 +02:00
Dean Herbert
59a31cc868
Merge pull request #24431 from bdach/slider-with-textbox-instantaneous
Add instantaneous mode to `SliderWithTextBoxInput`
2023-08-16 20:10:52 +09:00
Bartłomiej Dach
ed84be2f26
Merge pull request #24566 from peppy/multiplayer-spectator-score-diff
Add score difference display to multiplayer spectator
2023-08-16 12:57:17 +02:00
Dean Herbert
49fc9655d2 Apply NRT to osu.Game.Betamaps.Formats namespace 2023-08-16 19:37:24 +09:00
Bartłomiej Dach
f9ca7f3e0e
Merge pull request #24564 from peppy/multi-spectator-test-improvements
Add various testing improvements to various tournament components
2023-08-16 12:29:36 +02:00
Bartłomiej Dach
19f892687a
Add precise rotation control to osu! editor 2023-08-16 11:37:52 +02:00
Bartłomiej Dach
bdf87e43db
Merge branch 'master' into slider-with-textbox-instantaneous 2023-08-16 10:48:45 +02:00
Bartłomiej Dach
35af15f491
Merge branch 'master' into multi-spectator-fix-startup-delay 2023-08-16 10:34:20 +02:00
Dean Herbert
8b9759c569 Apply nullability to MatchScoreDisplay 2023-08-16 17:26:10 +09:00
Dean Herbert
ab826c35b7 Add score diff display to multiplayer spectator
Basically pulling changes over from the tournament client implementation
2023-08-16 17:26:10 +09:00
Dean Herbert
56eb44d15b Change TestSpectatorClient to provide some better fake data for score / acc 2023-08-16 17:14:42 +09:00
Bartłomiej Dach
add1ef77d0
Fix typo in comment 2023-08-16 10:07:12 +02:00
Bartłomiej Dach
4f47b196c1
Merge branch 'master' into fix-unsafe-realm-access 2023-08-16 09:59:17 +02:00
Bartłomiej Dach
d70a9a5bc4
Fill out xmldoc and adjust inline commentary 2023-08-16 09:40:46 +02:00
Dean Herbert
bb98f10ff6 Use CurrentTime instead of StartTime for hotfix seek (and update comment) 2023-08-16 16:38:49 +09:00
Dean Herbert
184eabb902 Merge branch 'master' into multi-spectator-fix-startup-delay 2023-08-16 16:27:49 +09:00
Dean Herbert
caf0fd0742 Refactor migration to read the same as previous one 2023-08-16 16:21:42 +09:00
Dean Herbert
68db112882 Re-date migration 2023-08-16 16:20:17 +09:00
Dean Herbert
c885b71f3a Add leaderboard toggle as tracked setting to give better use visibility 2023-08-16 16:17:56 +09:00
Dean Herbert
31c2b7f925 Merge branch 'master' into leaderboard-toggle 2023-08-16 15:49:55 +09:00
Dean Herbert
6e11162ab1 Add helper method for safer realm Find<T> 2023-08-16 15:37:09 +09:00
Bartłomiej Dach
88295a49aa
Fix invalid reference in xmldoc 2023-08-16 07:38:31 +02:00
Bartłomiej Dach
6c4c76350f
Remove unused using directive 2023-08-16 07:36:56 +02:00
Dean Herbert
531794b26b Fix ModelManager not correctly re-retrieving realm objects before performing operations
Falls into the age-old trap of attempting to retrieve an item from realm
without first ensuring that realm is in an up-to-date state.

Consider this scenario:

- Editor is entered from main menu, causing it to create a new beatmap
  from its async `load()` method.
- Editor opens correctly, then main thread performs a file operations on
  the same beatmap.
- Main thread is potentially not refreshed yet, and will result in `null`
  instance when performing the re-fetch in `performFileOperation`.

I've fixed this by using the safe implementation inside `RealmLive<T>`.
Feels like we want this is one place which is always used as the correct
method.

On a quick search, there are 10-20 other usages of `Realm.Find<T>` which
could also have similar issues, but it'll be a bit of a pain to go
through and fix each of these. In 99.9% of cases, the accesses are on
instances which couldn't have just been created (or the usage of
recently-imported/created is blocked by realm subscription flows, ie.
baetmap import) so I'm not touching them for now.

Something to keep in mind when working with realm going forward though.
2023-08-16 14:23:32 +09:00
Dean Herbert
5bd7370439 Add log output when editor is creating a fresh beatmap 2023-08-16 14:23:17 +09:00
Dean Herbert
502844a858 Add ability to construct RealmLive from ID 2023-08-16 14:23:01 +09:00
Dean Herbert
6001f7e5c7 Rename "dummy" local user to something more descriptive
This created weird cases in logs which are very hard to understand. The
one which really got me was this:

```
[runtime] 2023-08-13 07:48:27 [verbose]: Invalidating working beatmap cache for unknown artist - unknown title (Dummy)
```

Which looks like a dummy working beatmap was invalidated, but it turns
out that's just the local user which was populated when creating a new
local beatmap.
2023-08-16 13:52:27 +09:00
Pasi4K5
58bffa13cd Fix possible IndexOutOfRangeException 2023-08-16 01:19:41 +02:00
Pasi4K5
e7e0c49f42 Replace .Distinct() with truncateEndingDuplicates() 2023-08-16 01:14:25 +02:00
Pasi4K5
6346872c39 Improve code readability and add assertion to test scene 2023-08-15 23:27:12 +02:00
Dean Herbert
e8bde6504a Fix score being cloned in async method causing random crashes
Closes https://github.com/ppy/osu/issues/24445.
2023-08-15 16:08:13 +09:00
Dean Herbert
526a145b93
Merge pull request #24546 from peppy/update-framework
Update framework
2023-08-15 15:34:56 +09:00
Bartłomiej Dach
ab1d523528
Fix kiai stars flickering on and off during gameplay
Closes #24503.

The problematic reset of `lastParticleAdded` has been moved to a place
that should hopefully (a) not cause such problems and (b) be much more
explicit about what's happening.
2023-08-15 07:44:05 +02:00
Dean Herbert
8c14ff674e Update framework 2023-08-15 14:33:21 +09:00
Pasi4K5
449bee98cc Code cleanup 2023-08-14 21:56:08 +02:00
Pasi4K5
19c8b74a47 Remove unnecessary circle arc approximation 2023-08-14 21:09:58 +02:00
Bartłomiej Dach
9e7cc05138
Merge branch 'master' into remove-fps-fade-in-out 2023-08-14 18:46:30 +02:00
Dan Balasescu
90d7e46e20 Fix incorrect truncation to int 2023-08-15 00:58:13 +09:00
Dean Herbert
34c761946c Don't completely fade FPS counter out when running at full FPS
I've heard multiple times from uses that this is distracting or
confusing.
2023-08-14 23:55:57 +09:00
Pasi4K5
55ac942e7a Fix IndexOutOfRangeException when trying to reverse a zero-length slider 2023-08-14 14:09:08 +02:00
Pasi4K5
f42b3603b3 Fix linear sliders sometimes being reversed incorrectly
Extract control point reversing to separate method
2023-08-14 14:08:02 +02:00
Dan Balasescu
d1a4a46fd3 Temporarily allow new difficulty attributes to not exist 2023-08-14 16:59:01 +09:00
cdwcgt
e7b34cd4da
declare BeatmapSet is not null 2023-08-14 03:43:16 +09:00
Pasi4K5
8912a0e91e Fix sliders being reversed incorrectly in the editor. 2023-08-12 20:30:48 +02:00
QuantumSno
a0543d97bd
Merge branch 'master' into leaderboard-toggle 2023-08-12 11:21:02 -04:00
Dean Herbert
0eaa383120 Update framework 2023-08-12 17:54:05 +09:00
Bartłomiej Dach
253392409e
Fix LegacyBeatmapExporter not converting beatmap between decode and re-encode 2023-08-12 00:50:31 +02:00
Bartłomiej Dach
37361cd683
Repurpose Flat{File -> }WorkingBeatmap 2023-08-12 00:49:42 +02:00
OliBomby
90f2acaf0a Fix typo 2023-08-11 23:50:00 +02:00
OliBomby
5d1ccc2601 Ensure invariant of monotone time 2023-08-11 23:39:28 +02:00
OliBomby
d2f5e696e7 Fix DrawableHitObject state not synchronizing with hitobject edits 2023-08-11 22:34:04 +02:00
Dean Herbert
896cbb0ba0 Update framework 2023-08-11 21:34:59 +09:00
Bartłomiej Dach
2b738edb93
Reword / fix comments 2023-08-10 22:55:02 +02:00
Bartłomiej Dach
1b3806539a
Merge branch 'master' into leaderboard-toggle 2023-08-10 22:50:55 +02:00
QuantumSno
5d6ebb4df9 Removed comments organizing GlobalActionContainer.cs, since they were incorrectly grouping actions 2023-08-10 10:18:15 -04:00
QuantumSno
71c42167e7 Updated wording on realm comments 2023-08-10 10:17:12 -04:00
Bartłomiej Dach
2698ec9206
Merge branch 'master' into block-exit-if-save-failed 2023-08-08 23:41:03 +02:00
Bartłomiej Dach
500a1363ec
Merge branch 'master' into fix-break-info-decimal-separator 2023-08-08 22:49:00 +02:00
Joseph Madamba
49f5d6813e
Block beatmap editor from testing/exiting/exporting when saving fails 2023-08-04 22:08:25 -07:00
cdwcgt
09047538c7
remove all memory stream dispose 2023-08-04 20:02:22 +09:00
cdwcgt
7989286528
scoreStream never been null 2023-08-04 20:02:03 +09:00
Joseph Madamba
d179fe3d96
Add support for changelog entries with url attached 2023-08-03 23:24:37 -07:00
Bartłomiej Dach
785d2ed9b1
Merge branch 'master' into multi-spectator-better-start-time 2023-08-03 22:07:47 +02:00
Bartłomiej Dach
52b1073d93
Fix playfield skin layer not rotating correctly with barrel roll mod 2023-08-03 21:08:00 +02:00
Bartłomiej Dach
dde03b7d46
Merge branch 'master' into playfield-skin-layer 2023-08-03 20:42:15 +02:00
Dean Herbert
d39ef48b71 Return null intead of FileNotFoundException on missing file in ZipArchiveReader 2023-08-03 09:01:11 +09:00
Dean Herbert
71f6e5731d
Fix potential null reference if no frames found
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-03 08:58:19 +09:00
Dean Herbert
f38b21110f
Add missing parenthesis to comment
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-03 08:57:43 +09:00
Bartłomiej Dach
f48b1ebdbf
Merge branch 'master' into fix-transparent-player-background 2023-08-03 00:41:42 +02:00
Joseph Madamba
aab462fd95
Fix valueText being replaced even if current is not binding to anything 2023-08-02 09:40:22 -07:00
cdwcgt
0e7e36f114
don't passing stream by exception 2023-08-02 22:04:29 +09:00
Dean Herbert
87fee001c7 Fix multiplayer spectator potentially taking too long to start
When watching from the middle of gameplay, due to a series of failures,
`SpectatorClock` would not get seeked to the current time, causing all
clients to look like they were out of sync.

This is a hotfix for the issue. A better fix will require framework
changes or considerable restructuring.

I'd recommend testing this works in practice and agreeing that while it
is a hack, it's likely not going to cause issues and is something we
want to see fixed sooner rather than later.
2023-08-02 19:05:43 +09:00
cdwcgt
6637a5e7bc
ensure Performer not null 2023-08-02 18:53:27 +09:00
Dean Herbert
75c1d5ad7f Add lenience to FramedBeatmapClock workaround 2023-08-02 18:49:24 +09:00
Dean Herbert
14d87e49c7 Improve choice of where to start playback of multiplayer spectator 2023-08-02 18:46:35 +09:00
cdwcgt
1bdd054bd6
extract method 2023-08-02 18:16:39 +09:00
cdwcgt
4c43c92329
ensure dispose stream 2023-08-02 17:58:17 +09:00
cdwcgt
c07a1ec91e
retrun DefaultBeatmap when beatmapset already delete pending
reimplement https://github.com/ppy/osu/pull/22741
2023-08-02 17:58:17 +09:00
cdwcgt
eef63b41da
fetch missing beatmap when import score with missing beatmap 2023-08-02 17:58:05 +09:00
Dean Herbert
0e510088f9 Ensure background of gameplay is black when storyboard is overriding background display 2023-08-02 15:50:15 +09:00
Dean Herbert
a618ed140e Move StoryboardReplacesBackground bindable more local to usage 2023-08-02 15:29:18 +09:00
QuantumSno
5443f89dca Assuming its still set to tab, removes binding for toggle chat so itll be set to the new default 2023-08-01 16:58:52 -04:00
QuantumSno
426bc52fd5 Updated schema_version number and added braces around some migration cases to help with re-using variable names 2023-08-01 14:27:37 -04:00
Bartłomiej Dach
5b6c3321cf
Merge branch 'master' into multi-spectator-flow-fixes 2023-08-01 19:03:48 +02:00
Bartłomiej Dach
a75f42f5a9
Merge branch 'master' into multi-spectator-extended-results 2023-08-01 18:25:41 +02:00
Bartłomiej Dach
d65f08a048
Merge pull request #24427 from peppy/fix-skin-editor-crash-multi-spectator
Fix game crashing when entering skin editor in multiplayer spectator
2023-08-01 18:25:11 +02:00
Bartłomiej Dach
f7d5ac9f92
Privatise setter 2023-08-01 18:09:48 +02:00
QuantumSno
054ca5e59c
Merge branch 'master' into leaderboard-toggle 2023-08-01 10:06:03 -04:00
Dean Herbert
70bd1d3cf4 Fix centred player not animating correctly 2023-08-01 20:18:21 +09:00
Dean Herbert
df504e1fc2 Show extended statistics in multiplayer spectator automatically 2023-08-01 20:02:36 +09:00
Dean Herbert
fe47dc291b Fix onLoadRequested getting early-exited too early in spectator scenarios
In some scenarios, multiplayer spectator would not tick over to the next
beatmap.

Here's an example:

- Room has two items queued
- Local user starts download of both
- First beatmap starts and download is complete
- First beatmap ends (spectating is active)
- Second beatmap starts but download is not complete

In this scenario, the local client will get stuck at the spectator
screen due to the `onLoadRequested`-invoked screen change being early
exited.

It would require manual recovery (clicking back button) to return to a
sane state.
2023-08-01 19:22:41 +09:00
Dean Herbert
9fe9ea2c90 Fix potential crash on multiple StartGameplay calls in multiplayer spectator 2023-08-01 19:22:41 +09:00
Bartłomiej Dach
4fb0ff8800
Implement instantaneous SliderWithTextBoxInput mode 2023-08-01 01:02:16 +02:00
Bartłomiej Dach
ca81f23356
Add test covering non-instantaneous behaviour 2023-08-01 01:01:37 +02:00
Bartłomiej Dach
2e2b0c4e41
Move SliderWithTextBoxInput to more general namespace 2023-08-01 01:01:36 +02:00
Dean Herbert
d78cc60851 Update framework 2023-08-01 07:12:40 +09:00
Dean Herbert
a3afb198a1
Merge pull request #24341 from bdach/selection-operations-refactor
Refactor rotation handling in editor to facilitate reuse
2023-07-31 17:18:05 +09:00
Dean Herbert
72005bef7c Fix skin editor crashing if the same component is provided twice 2023-07-31 15:10:58 +09:00
Bartłomiej Dach
ebe5dd2ac9
Interface with SelectionRotationHandler via DI rather than explicit passing 2023-07-30 20:21:41 +02:00
Bartłomiej Dach
262f25dce8
Make SelectionRotationHandler a Component 2023-07-30 20:18:33 +02:00
Bartłomiej Dach
821cd08f34
Merge branch 'master' into selection-operations-refactor 2023-07-30 19:29:06 +02:00
Bartłomiej Dach
7763f3dd40
Fix osu! logo suddenly disappearing during rapid exit 2023-07-30 19:05:37 +02:00
Bartłomiej Dach
d3435483eb
Fix multiplayer match screen being exited from when not current
This was supposed to be fixed by #24255, but has popped up as a
regression on Sentry since:

	https://sentry.ppy.sh/organizations/ppy/issues/22749/?project=2&referrer=regression_activity-email

On a fifteen-minute check I cannot figure out how to reproduce, so
rather than spending further brain cycles on this, just apply the same
explicit guard that like fifteen other places do.
2023-07-30 15:50:10 +02:00
Bartłomiej Dach
1f7f336fd5
Merge branch 'master' into fix-replay-export-queued-op 2023-07-30 14:58:14 +02:00
Bartłomiej Dach
1981e49a40
Fix nullability inspection 2023-07-30 14:28:16 +02:00
Bartłomiej Dach
b51e577239
Merge pull request #24418 from peppy/now-playing-async-fix
Fix now playing overlay background occasionally showing incorrect background
2023-07-30 14:05:49 +02:00
Bartłomiej Dach
898913f32a
Merge pull request #24415 from peppy/multi-spectator-improvements
General visual improvements to mutliplayer spectatator screen
2023-07-30 12:43:26 +02:00
Bartłomiej Dach
e208f38bcb
Merge pull request #24361 from peppy/fix-editor-global-music-hotkey-conflicts
Disallow interacting with the global track state in `Player` and `Editor`
2023-07-30 12:28:53 +02:00
Dean Herbert
6d5b3617b3 Remove pending export operation if active score is changed 2023-07-30 16:41:45 +09:00
Dean Herbert
35ec55c1f6 Don't queue export replay operations if button is disabled 2023-07-30 16:41:33 +09:00
Dean Herbert
de61b74e91 Add proper cancellation and out-of-order blocking logic to NowPlayingOverlay's background carousel 2023-07-30 16:21:35 +09:00
Dean Herbert
07d224ecb6 Apply NRT to NowPlayingOverlay 2023-07-30 16:17:04 +09:00
Dean Herbert
4f83c8661a Remove unnecessary async fetch of beatmap in NowPlayingOverlay
No idea if this was historically required for some reason, but it's
definitely not required now.
2023-07-30 16:16:25 +09:00
Dean Herbert
45ceaba00d Disable multiplayer spectator zoom when there's only one player's screen visible 2023-07-30 14:40:58 +09:00
Dean Herbert
7138291636 Adjust xmldoc to explicitly metnion it only affects end user control 2023-07-30 13:52:58 +09:00
Dean Herbert
945d89e955 Move disables to loading screens for better coverage of edge cases 2023-07-30 13:45:42 +09:00
Joseph Madamba
4ddf05602f Update BreakInfoLine to formatting standards 2023-07-29 11:05:15 -07:00
Joseph Madamba
6ebfafa9c3 Remove unnecessary text comparison 2023-07-29 11:02:04 -07:00
Joseph Madamba
740898dffb Remove unnecessary prefix parameter 2023-07-29 10:40:18 -07:00
Joseph Madamba
9d928c0225 Apply NRT to BreakInfoLine 2023-07-29 10:39:50 -07:00
Dean Herbert
75625f089e Hide toolbar when entering multiplayer spectator 2023-07-30 02:29:14 +09:00
Dean Herbert
38244c081f Further refactorings along with shadow implementation 2023-07-30 02:29:14 +09:00
Dean Herbert
84bc14c1dd Improve animation and sizing of maximised screen display 2023-07-30 02:29:14 +09:00
Dean Herbert
1826819663 Move Facade to nested class 2023-07-30 02:29:14 +09:00
Dean Herbert
5fa0a21b56 Add corner radius around player areas 2023-07-30 02:29:14 +09:00
QuantumSno
65b4ae506e Moved enum to bottom of enumeration table 2023-07-29 13:18:47 -04:00
Bartłomiej Dach
579b0bc570
Merge branch 'master' into fix-autoplay-mod-revert 2023-07-29 16:12:11 +02:00
Joseph Madamba
a3301dc7ff Fix accuracy break info decimal separator being incorrect in certain languages 2023-07-28 23:26:07 -07:00
Bartłomiej Dach
1fd4a6dc96
Fix tests crashing due to HUDOverlay not finding DrawableRuleset in Update() 2023-07-29 01:07:49 +02:00
Bartłomiej Dach
4db203ecc3
Merge branch 'master' into playfield-skin-layer 2023-07-29 00:01:06 +02:00
Bartłomiej Dach
c6f0cf50ca
Use better safety in rectangular grid
- Checking `DrawSize != Vector2.Zero` is too specific. It could also
  crash on zero-height-but-non-zero-width, or
  zero-width-but-non-zero-height.

- Take the `gridCache.Validate()` call out of the zero checks, because
  even if the width or height are zero, not generating anything is valid
  and there is no reason to validate every frame until `gridCache` gets
  invalidated again.
2023-07-28 22:57:02 +02:00
Bartłomiej Dach
0c10d875ce
Merge branch 'master' into ladder-grid-expand 2023-07-28 22:51:33 +02:00
Bartłomiej Dach
caad931a16
Move comment to more fitting place 2023-07-28 22:10:10 +02:00
Bartłomiej Dach
6d018c08af
Rename Apply{Vertical -> Horizontal}Centering to match common understanding 2023-07-28 22:09:28 +02:00
QuantumSno
a4065486c1 bound bind during gameplay 2023-07-28 14:39:41 -04:00
QuantumSno
26c128a093 added keybind and localization string 2023-07-28 14:39:30 -04:00
Dean Herbert
c9155f85ab Fix playfield not taking up full width correclty when not vertically centered 2023-07-28 16:40:14 +09:00
Dean Herbert
d26164e9fe Merge branch 'master' into fix-taiko-alignment 2023-07-28 16:32:37 +09:00
Dean Herbert
0e4db9b439 Add safety in RectangularPositionSnapGrid that size is greater than zero
Would crash otherwise
2023-07-28 16:25:40 +09:00
Dean Herbert
6cf065f6d1 Add playfield layer to skin editor 2023-07-28 15:50:44 +09:00
Dean Herbert
5bd06832d0 Fix skin component toolbox not working correctly for ruleset matching
Until now, the only usage of ruleset layers was where there is both a
ruleset specific and non-ruleset-specific layer present. The matching
code was making assumptions about this.

As I tried to add a new playfield layer which breaks this assumption,
non-ruleset-specifc components were not being displayed in the toolbox.
This turned out to be due to a `target` of `null` being provided due to
the weird `getTarget` matching (that happened to *just* do what we
wanted previously due to the equals implementation, but only because
there was a container without the ruleset present in the available
targets).

I've changed this to be a more appropriate lookup method, where the
target for dependency sourcing is provided separately from the ruleset
filter.
2023-07-28 15:50:44 +09:00
Dean Herbert
06fe5583cb Expose a new SSDQ from playfield for skinnable area bounds 2023-07-28 15:47:57 +09:00
Dean Herbert
f15394fb6d Fix temporary auto mod (ctrl+enter at song select) not reverting in all scenarios 2023-07-28 14:49:06 +09:00
Bartłomiej Dach
22163020c3
Merge pull request #24367 from peppy/fix-replay-export-from-results
Fix attempting to export replay from results screen after play not working
2023-07-27 20:47:07 +02:00
Bartłomiej Dach
973e6ded2a
Update wrong comment, too 2023-07-26 21:56:04 +02:00
Bartłomiej Dach
992f78b158
Use more consistent way of closing overlay 2023-07-26 21:54:35 +02:00
Dean Herbert
8d5efc9612 Add back the ability to close mod select using enter key
I've seen this brought up a few times (with people thinking
the fact it's not working is a bug) so we'll need to keep this
behaviour for now.
2023-07-27 02:36:25 +09:00
Dean Herbert
deba6e2508 Fix osu!taiko editor playfield missing a piece
Regressed with recent centering changes in https://github.com/ppy/osu/pull/24220
2023-07-27 02:24:10 +09:00
Joseph Madamba
9d87ff2986
Improve supporter-only duration notice and fix max duration of non-supporter
See 3c54229256/.env.example (L230). Might have more duration options in the future.
2023-07-26 01:37:55 -07:00
Dean Herbert
30baac0f3d Avoid reprocessing scores which already failed an upgrade previously
Closes https://github.com/ppy/osu/issues/24301.
2023-07-26 16:22:10 +09:00
Dean Herbert
c1ba8fe175 Rename BackgroundBeatmapProcessor to BackgroundDataStoreProcessor 2023-07-26 16:22:10 +09:00
Dean Herbert
4889864478 Fix files references not correctly being copied after replay import in Player 2023-07-26 15:22:00 +09:00
Dean Herbert
e26afc2b89 Fix ReplayDownloadButton handling key repeat 2023-07-26 15:21:43 +09:00
Joseph Madamba
30e0e00c52
Rename selectedAvailableDuration to hasValidDuration 2023-07-25 22:57:01 -07:00
Dean Herbert
7fd6bb9d5f Fix a couple of code style issues in SelectionBox 2023-07-26 14:04:38 +09:00
Dean Herbert
39c2bb240b Apply NRT to SelectionBoxRotationHandle. 2023-07-26 14:04:21 +09:00