1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 01:52:55 +08:00
Commit Graph

40055 Commits

Author SHA1 Message Date
Bartłomiej Dach
ba518e1da8
Fix StoryboardResourceLookupStore dying on failure to unmap path
Before the introduction of `StoryboardResourceLookupStore`, missing
files would softly fail by use of null fallbacks. After the
aforementioned class was added, however, the fallbacks would not work
anymore if for whatever reason `GetStoragePathFromStoryboardPath()`
failed to unmap the storyboard asset name to a storage path.
2023-09-19 20:11:16 +02:00
Dean Herbert
aea7f81f1c
Merge pull request #24800 from sw1tchbl4d3r/invalid_bank
Default to normal bank if invalid sample bank is specified
2023-09-19 22:28:34 +09:00
Bartłomiej Dach
c4a0ca326e
Replace sample bank fix with more correct fix
stable does not treat unknown enum members as `None` / `Auto`, it treats
them as `Normal`:

    switch (sampleSet)
    {
        case SampleSet.Normal:
        default:
            sample = 0;
            break;
        case SampleSet.None:
        case SampleSet.Soft:
            sample = 1;
            break;
        case SampleSet.Drum:
            sample = 2;
            break;
    }

    (from 1531237b63/osu!/Audio/AudioEngine.cs#L1158-L1171).
2023-09-19 13:53:49 +02:00
Dean Herbert
4a7dc4d792 Fix storyboard UseSkinSprites being implemented incorrectly
This was implemented as a "fallback", but it's actually intended to be
an "override". As in it allows storyboarders to *prefer* a skin sprite
before falling back to a local version contained within the storyboard.

Can be tested with https://osu.ppy.sh/beatmapsets/832364#osu/1743837.

Closes https://github.com/ppy/osu/issues/24813.
2023-09-19 20:20:20 +09:00
Dean Herbert
773ec46989 Expose some storyboard pieces to allow better testability 2023-09-19 20:20:11 +09:00
Bartłomiej Dach
43ae26b8ef
Merge pull request #24809 from peppy/storyboard-resource-lookup-refactor
Refactor storyboard resource lookup to be more streamlined
2023-09-19 12:52:02 +02:00
Dean Herbert
067c487b21
Merge pull request #24450 from cdwcgt/missing-beatmap
Fetch missing beatmap when importing replay
2023-09-19 18:40:02 +09:00
Bartłomiej Dach
ed9039f60f
Fix notification text sets overwriting each other 2023-09-19 11:12:58 +02:00
Dean Herbert
05e05f8160 Increase transition speed slightly 2023-09-19 18:02:08 +09:00
Dean Herbert
cdb5fea513 Remove unused translations 2023-09-19 17:53:00 +09:00
Dean Herbert
f726c38215 Pass ArchiveReader instead of Stream to simplify resolution code 2023-09-19 17:49:15 +09:00
Dean Herbert
0593c76c57 Fix log output using incorrect name 2023-09-19 17:34:24 +09:00
Bartłomiej Dach
62f97a8d83
Adjust beatmap card thumbnail dim state to match web better 2023-09-19 10:28:08 +02:00
Dean Herbert
7f30354e61 Adjust sizing slightly to remove need for CollapsibleButtonContainerSlim 2023-09-19 17:20:58 +09:00
Dean Herbert
0555d22eb8 Add comment mentioning why hover is disabled on the notification type 2023-09-19 16:35:22 +09:00
Bartłomiej Dach
8e199de78a
Tweak nano beatmap card UX further to meet expectations 2023-09-19 08:36:32 +02:00
Magnus-Cosmos
73db68a49a
Check if path lists are empty 2023-09-19 02:28:28 -04:00
Bartłomiej Dach
0ffb906741
Merge pull request #24831 from peppy/update-deps
Update all dependencies (except for Moq)
2023-09-19 07:50:27 +02:00
Magnus-Cosmos
a9b45c6fdc
Fix slider path calculations for edge cases 2023-09-19 01:31:26 -04:00
Dean Herbert
aba98f2985
Merge pull request #24823 from bdach/scoring-test-scene-catch
Add scoring test scene for catch
2023-09-19 13:59:11 +09:00
Salman Ahmed
8e992de763 Fix crash when loading player instance without exiting previous instance 2023-09-19 05:09:01 +03:00
Salman Ahmed
922f6f36f2 Add size limitation for hit object numbers 2023-09-19 04:38:10 +03:00
Salman Ahmed
b823507b2a Add size limitation for approach circles 2023-09-19 04:38:10 +03:00
Salman Ahmed
291a91be66 Change extension from retrieval to post-processing instead 2023-09-19 03:40:30 +03:00
Salman Ahmed
57dc76b345 Revert "Update GetTexture signature rather than creating new overload"
This reverts commit 96f12cfbaa.
2023-09-19 03:21:19 +03:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points 2023-09-18 11:40:00 -04:00
Bartłomiej Dach
8b5a851f31
Merge branch 'master' into scoring-test-scene-catch 2023-09-18 15:15:03 +02:00
Dean Herbert
163b6df357
Merge pull request #24846 from bdach/get-reader-regression
Fix `MemoryStreamArchiveReader.GetStream()` failing in some cases
2023-09-18 22:06:33 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration) 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
Progress didn't work for several reasons:

- It was spinning when nothing was actually happening yet
  (especially egregious with autodownload off)

- It was blocking exits (as all progress notifications do)

- When actually going to download, two progress notifications would
  pertain to one thing

- It wasn't helping much with the actual implementation of score
  re-import, cancelling the progress notification would result in
  similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
47764b3012
Fix OsuTestScene.CreateAPIBeatmapSet() not backlinking set beatmaps to the set 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.

To that end, slim down the design (get rid of thumbnail, audio preview,
make expandable right side slimmer), as well as change the entire panel
so that it has only one action associated with it at all times, and
clicking the panel in any place triggers that action.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
67b5dfb9cf
Merge branch 'get-reader-regression' into missing-beatmap 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
06d1a2a316
Merge branch 'beatmap-card-nano' into missing-beatmap 2023-09-18 14:56:06 +02:00
Dean Herbert
f3b6aa5435
Merge pull request #24821 from bdach/scoring-test-scene-osu
Refactor scoring test scene for ruleset extensibility (and move existing instance to osu! ruleset project)
2023-09-18 19:54:14 +09:00
Bartłomiej Dach
e57d7d1205
Fix MemoryStreamArchiveReader.GetStream() failing in some cases
`MemoryStreamArchiveReader` introduced in
0657b55196 would previously use
`MemoryStream.GetBuffer()` to retrieve the underlying byte buffer with
stream data. However, this is not generally the method you would want,
for two reasons:

1. It can fail if the stream wasn't created in the way that supports it.
2. As per

	https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.getbuffer?view=net-7.0#system-io-memorystream-getbuffer,

   it will return the _raw_ contents of the buffer, including
   potentially unused bytes.

To fix, use `MemoryStream.ToArray()` instead, which avoids both
pitfalls. Notably, `ToArray()` always returns the full contents of the
buffer, regardless of `Position`, as documented in:

    https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card 2023-09-18 11:30:14 +02:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment 2023-09-18 10:46:14 +02:00
Bartłomiej Dach
3709861132
Merge pull request #24814 from LukynkaCZE/parse-only-supported-char-uris
Parse only supported schemes as URIs
2023-09-18 10:20:09 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much 2023-09-18 09:20:24 +02:00
Dean Herbert
be026f7ff1 Bump realm once more 2023-09-17 01:27:43 +09:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select 2023-09-15 20:26:17 -07:00
Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5eccc771c2
Turn off non-perfect judgements for catch scoring test scene 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point 2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0 Make not extension method 2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff Move to extension method and throw on non-legacy ruleset 2023-09-15 17:38:34 +09:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve 2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00
Lukynka CZE
9b8fdcbcdc somehow accidentally removed backslashes 2023-09-14 17:55:53 +02:00
Lukynka CZE
66751ef5bb add regex 2023-09-14 17:46:29 +02:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation 2023-09-14 16:23:30 +02:00
Dean Herbert
57f32b177d Fix incorrect handling of non-MemoryStream pathway 2023-09-14 22:19:18 +09:00
Bartłomiej Dach
94cdcfd7ce
Move collapsed bindable back to BeatmapAttributesDisplay for now
Better to have it only in one place that needs it, rather than have it
not work as expected when someone inherits
`ModFooterInformationDisplay`.
2023-09-14 14:56:58 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching 2023-09-14 12:12:23 +02:00
Bartłomiej Dach
3f7b8dbe58
Merge branch 'master' into move-mod-select-diff-multiplier 2023-09-14 11:26:22 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming 2023-09-14 11:24:53 +02:00
Bartłomiej Dach
2d3be819d0
Merge pull request #24796 from peppy/collapse-preset-column
Collapse mod presets column slightly when not in use
2023-09-14 11:07:36 +02:00
Bartłomiej Dach
18672e178f
Merge pull request #24795 from peppy/fix-mod-rate-adjust-tooltip-x
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-14 10:18:32 +02:00
Dean Herbert
900376b662 Refactor storyboard resource lookup to be more streamlined 2023-09-14 16:15:50 +09:00
Bartłomiej Dach
68323671ec
Update framework and resources 2023-09-14 08:24:18 +02:00
Dean Herbert
7bf0a22112 Improve flash effect 2023-09-14 13:57:56 +09:00
Dean Herbert
364094fcf2 Inline all archive reader pathing 2023-09-14 13:38:23 +09:00
Dean Herbert
541cd972e1 Rename ArchiveReader implementations to read better 2023-09-14 13:36:07 +09:00
Dean Herbert
0657b55196 Avoid MemoryStream.ToArray overhead in LegacyByteArrayReader 2023-09-14 13:33:25 +09:00
Dean Herbert
b5902a8736 Avoid MemoryStream overhead for incoming non-MemoryStream in ImportTask 2023-09-14 13:29:29 +09:00
Dan Balasescu
753c1c877c Revert masking SSBO changes 2023-09-13 23:10:13 +09:00
Dean Herbert
32946413de Change display text from "difficulty" to "score" multiplier 2023-09-13 20:01:19 +09:00
Dean Herbert
3e1388c73f Add vertical animation when difficulty multiplier is changed 2023-09-13 19:57:48 +09:00
Dean Herbert
824a3e4adc Update DifficultyMultiplierDisplay to use new shared design 2023-09-13 19:56:31 +09:00
sw1tchbl4d3
5b2af7f264 Default to none bank if invalid samplebank is specified 2023-09-13 12:44:00 +02:00
Dean Herbert
46d5aa59bf Split base design out of BeatmapAttributesDisplay 2023-09-13 19:33:30 +09:00
Dean Herbert
9a7d1ed98b Tidy up DifficultyMultiplierDisplay 2023-09-13 18:55:17 +09:00
Dean Herbert
35840bf671 Combine ModCounterDisplay and DifficultyMultiplierDisplay into one class 2023-09-13 18:51:56 +09:00
Dean Herbert
491d94c5ac Use local shear definition 2023-09-13 18:51:50 +09:00
Dean Herbert
41b0619533 Fix shear being included on wrong side of ModCounterDisplay 2023-09-13 18:19:42 +09:00
Dean Herbert
923c2a16ed Fix weird centering of multiplier "x" 2023-09-13 18:11:16 +09:00
Dean Herbert
21252c1c23 Fix animations 2023-09-13 18:06:50 +09:00
Dean Herbert
e241e41f2a Fix layout decision to account for new multiplier addition 2023-09-13 17:55:21 +09:00
Dean Herbert
49114430ed Move multiplier display to bottom of sceen to make visible while customising 2023-09-13 17:43:55 +09:00
Dean Herbert
be373391f8 Simplify multiplier display implementation 2023-09-13 17:43:41 +09:00
Dean Herbert
f5cee22db7 Collapse mod presets column slightly when not in use 2023-09-13 17:05:42 +09:00
Dean Herbert
d146da9546 Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip 2023-09-13 16:43:48 +09:00
Dean Herbert
4ecc4632aa Make rounding error even less precise
Basically matching the old code more closely to avoid too much precision
from doing math in a slightly different way.
2023-09-12 18:41:09 +09:00
Dean Herbert
0d7157f727
Merge branch 'master' into map_info_on_mod_settings 2023-09-12 17:16:47 +09:00
Dean Herbert
7e3652284d Adjust various class naming and add some xmldoc 2023-09-12 17:15:16 +09:00
Dean Herbert
3da30485b2 Move shear spec to correct location 2023-09-12 17:06:45 +09:00
Dean Herbert
e40eaa7377 Improve collapse/expand animations
Especially when on a screen resolution where it would start collapsed.
2023-09-12 17:06:45 +09:00
Dean Herbert
7aaf88ae84
Merge branch 'master' into overlays/profile/previous-usernames 2023-09-12 15:54:41 +09:00
Dean Herbert
23521ad394 Simplify container structure and mention why a zero-size container is being used 2023-09-12 15:53:27 +09:00
Dean Herbert
a6acd00908 Reword inline comment 2023-09-12 15:46:05 +09:00
Dean Herbert
b4bedee49e Adjust naming of component to give more context 2023-09-12 15:43:59 +09:00
Dean Herbert
04ab44bb7a
Reword xmldoc to read better
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-12 15:28:55 +09:00
tsrk.
f331f92151
chore: explain f6031bc1 2023-09-11 16:06:06 +02:00
tsrk.
8c989d77bd
revert: use OverlayColourProvider for B6
Refs: 293b81106261b1a3aad47d9461a8ba7f550c8b6
2023-09-11 16:03:15 +02:00
tsrk.
c6e8a77f08
refactor: slightly offset to make it look good 2023-09-11 15:22:23 +02:00
tsrk.
65f3feb044
refactor: remove container position 2023-09-11 15:21:51 +02:00
tsrk.
8c137353b6
feat: integrate previous usernames tooltip to profile overlay 2023-09-11 15:02:19 +02:00
tsrk.
200b3f87ff
fix: adjust values according to osu-web 2023-09-11 14:26:10 +02:00
tsrk.
f6031bc15f
fix: prevent flickering when hovering out 2023-09-11 13:41:32 +02:00
tsrk.
293b811062
feat(OsuColours): add B6 2023-09-11 13:09:49 +02:00
Bartłomiej Dach
eebacfb982
Make mod effect preview uncollapse on hover 2023-09-11 10:59:19 +02:00
Bartłomiej Dach
d51396fdaf
Collapse mod effect preview when it's not wide enough to fit 2023-09-11 10:46:07 +02:00
Bartłomiej Dach
3deb6cb4ec
Fix z-order of mod preview panel 2023-09-11 10:19:02 +02:00
Bartłomiej Dach
0822e8b925
Fix preview panel not being marked nullable 2023-09-11 10:18:37 +02:00
Bartłomiej Dach
f9d4fbee56
Add collapsed state to effect preview panel 2023-09-11 10:16:24 +02:00
Bartłomiej Dach
ff6bf0bc2c
Fix slightly wrong binding setup 2023-09-11 10:16:09 +02:00
Bartłomiej Dach
97665e029b
Remove weird fade 2023-09-11 10:00:44 +02:00
Bartłomiej Dach
589f56d20c
Merge branch 'master' into map_info_on_mod_settings 2023-09-11 09:55:54 +02:00
Bartłomiej Dach
76bf82d900
Do not show mod effects on free mod select 2023-09-11 09:55:45 +02:00
Bartłomiej Dach
53c30dca64
Fix data flow being sometimes incorrect 2023-09-11 09:53:58 +02:00
Bartłomiej Dach
552230af9d
Refactor layout of display 2023-09-11 09:44:52 +02:00
Bartłomiej Dach
f591a30ea7
Refactor preview panel to be more self-contained 2023-09-11 09:19:34 +02:00
Bartłomiej Dach
c1a2b86f3f
Extract constants properly 2023-09-11 08:29:37 +02:00
Bartłomiej Dach
23c4a03848
Fix code inspections 2023-09-11 08:26:05 +02:00
Bartłomiej Dach
e3a0a914e7
Merge pull request #24727 from peppy/fix-mania-skin-lookups-no-sprites
Fix osu!mania legacy skin configurations not working when notes are not skinned
2023-09-11 08:11:58 +02:00
Givikap120
507f9642cc Better counter formatization
Now CS and HP have 1 decimal point precision, while AR and OD is kept with 2 because of future support of rate-changed AR/OD
2023-09-08 22:15:30 +03:00
Givikap120
ed213dad6c minor format fix (again) 2023-09-08 20:38:24 +03:00
Givikap120
a01537c763 minor format fix 2023-09-08 20:37:07 +03:00
Givikap120
02e2b8546c fixed all stated problems 2023-09-08 20:32:55 +03:00
Bartłomiej Dach
2bb869732e
Delete outdated warning disables 2023-09-07 18:47:01 +02:00
Dan Balasescu
4198e025fa Fix overflow 2023-09-08 00:27:01 +09:00
Dan Balasescu
2334be1987 Split legacy scoring attributes into a separate object 2023-09-07 21:10:38 +09:00
Dean Herbert
dcbdc114ce Remove precision limitations of SliderVelocity 2023-09-07 17:41:58 +09:00
Dean Herbert
b34a36f6ce Remove all usage of LegacyDifficultyControlPoint 2023-09-07 17:41:57 +09:00
Dean Herbert
b1a9f50065
Merge pull request #24736 from isakvik/negative-ar-adjustment
Allow "Difficulty Adjust" mod's extended AR selection to go below zero
2023-09-07 17:17:59 +09:00
Dean Herbert
4d12678c9d
Merge pull request #24734 from Joehuu/hd-badges
Use `@2x` variant of profile badges
2023-09-07 15:26:58 +09:00
Bartłomiej Dach
9c6f77b26e
Fix too many things being exposed 2023-09-07 08:11:04 +02:00
Dean Herbert
281c2f6de1
Merge pull request #24733 from Joehuu/wedge-title-artist-link
Link new song select wedge title and artist to search text box
2023-09-07 14:51:43 +09:00
Dean Herbert
e05d7d5f8d Inline local control 2023-09-07 14:22:06 +09:00
Dean Herbert
d2a6235135 Fix code quality issues 2023-09-07 14:19:19 +09:00
Joseph Madamba
0bbe28dcc9
Update badge header background color in line with web 2023-09-06 16:43:32 -07:00
isakvik
2ab11ab568 adds new diffsetting control that shows millisecond values for approach rate override 2023-09-07 01:41:22 +02:00
Joseph Madamba
5ee412cc9a
Use @2x variant of profile badges 2023-09-06 16:17:53 -07:00
Joseph Madamba
d0780fb765
Add comment explaining the max width 2023-09-06 15:01:55 -07:00
Joseph Madamba
97bd90c0ff
Link new song select wedge title and artist to search text box 2023-09-06 14:41:10 -07:00
isakvik
3db0d0d341 extendable minimum AR value for osu!std diff adjust mod, set to -10 2023-09-06 23:26:34 +02:00
Bartłomiej Dach
ce4b523950
Merge branch 'master' into fix-mania-skin-lookups-no-sprites 2023-09-06 19:29:13 +02:00
Bartłomiej Dach
17e791d984
Merge branch 'master' into skin-lookup-debug 2023-09-06 18:44:50 +02:00
Bartłomiej Dach
fe3683ed5b
Adjust formatting slightly
The uneven spacing was bothering me...
2023-09-06 18:41:27 +02:00
Bartłomiej Dach
f9db0fad88
Ignore unused thing inspection harder 2023-09-06 18:37:17 +02:00
Dean Herbert
dce6adb895
Add text explanation of icons
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-07 01:23:56 +09:00
cdwcgt
68752f95e5
color friend score to pink 2023-09-06 22:58:03 +09:00
Dean Herbert
1a37543d28 Rename SliderVelocity to SliderVelocityMultiplier to distinguish from Velocity 2023-09-06 19:01:08 +09:00
Dean Herbert
88b9d3237a Fix osu!mania legacy skin configurations not working when notes are not skinned 2023-09-06 18:03:54 +09:00
Dean Herbert
14936677fc Ignore unused thing inspection 2023-09-06 18:03:40 +09:00
Dean Herbert
6c95b88589 Add debug output for skin configuration lookups
We've struggle with debugging these over the years so I think this was
worth a couple of hours of work.

Example of osu! lookups:

```log
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: SpinnerFrequencyModulate) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: SpinnerFrequencyModulate)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: SpinnerFrequencyModulate) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]:
[runtime] 2023-09-06 08:38:30 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: Vickeblanka - Lucky Ending (TV Size) (tears_) [Normal] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: ScorePrefix) 🟢
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: osu.Game.Skinning.ResourceStoreBackedSkin }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-osu.Game.Skinning.ResourceStoreBackedSkin.GetConfig(lookup: ScorePrefix) 🔴
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: TrianglesSkin{ Name: osu! "triangles" (2017) } }.GetConfig(lookup: ScorePrefix)
[runtime] 2023-09-06 08:38:30 [verbose]: |-|-|-TrianglesSkin{ Name: osu! "triangles" (2017) }.GetConfig(lookup: ScorePrefix) 🔴
```

Example of osu!mania lookups:

```log
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnWidth col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnWidth col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:
[runtime] 2023-09-06 08:28:34 [verbose]: BeatmapSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacyBeatmapSkin{ Name: antiPLUR - Runengon (Raveille) [Easy] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-RulesetSkinProvidingContainer.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: LegacySkin{ Name: Test Skin [test-skin] } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-LegacySkin{ Name: Test Skin [test-skin] }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🔴
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-SkinProvidingContainer+DisableableSkinSource{ skin: SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } } }.GetConfig(lookup: [ManiaSkinConfigurationLookup lookup:ColumnSpacing col:0])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-SkinTransformer{ Skin: DefaultLegacySkin{ Name: osu! "classic" (2013) } }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4])
[runtime] 2023-09-06 08:28:34 [verbose]: |-|-|-|-DefaultLegacySkin{ Name: osu! "classic" (2013) }.GetConfig(lookup: [LegacyManiaSkinConfigurationLookup lookup:ColumnSpacing col:0 totalcols:4]) 🟢
[runtime] 2023-09-06 08:28:34 [verbose]:

```
2023-09-06 18:03:40 +09:00
Bartłomiej Dach
eddb879973
Merge pull request #24722 from peppy/beatmap-status-pill-animation
Add animation support for beatmap status pills
2023-09-06 09:59:21 +02:00
Bartłomiej Dach
b5e812eb3e
Merge pull request #24723 from bdach/beatmap-carousel-split-missing-status
Fix status on carousel beatmap set not showing in split difficulty mode
2023-09-06 09:35:38 +02:00
Bartłomiej Dach
63e92f8fab
Fix status on carousel beatmap set not showing in split difficulty mode 2023-09-06 08:25:19 +02:00
Dean Herbert
dded7fe6ca
Merge branch 'master' into beatmap-options-popover 2023-09-06 15:16:34 +09:00
Dean Herbert
1ca713f649
Merge pull request #22116 from mk56-spn/beatmap_wedge_clean_ii
New beatmap information wedge design implementation
2023-09-06 15:10:29 +09:00
Dean Herbert
034c887dcb Add animation support for beatmap status pills
To be used in conjunction with https://github.com/ppy/osu/pull/22116
2023-09-06 15:04:25 +09:00
Joseph Madamba
73604d171a
Make "general" a common string 2023-09-05 23:00:07 -07:00
Joseph Madamba
701e24e8d3
Move hide button to end and make it work 2023-09-05 18:50:31 -07:00
Joseph Madamba
6d2e57b73e
Add localisation support to beatmap options popover 2023-09-05 18:43:42 -07:00
Joseph Madamba
69fa8747f0
Explicitly add beatmapinfo param to edit call 2023-09-05 18:35:35 -07:00
Joseph Madamba
9565039192
Hide beatmap options popover when beatmap changes 2023-09-05 18:24:54 -07:00
Joseph Madamba
9f10082ffc
Revert param removal of delete beatmap and clear scores methods 2023-09-05 18:24:53 -07:00
Joseph Madamba
8e8fae0fba
Fix left padding adding shear width 2023-09-05 15:21:23 -07:00
Joseph Madamba
3f92dae55c
Move star rating display and status pill out of reloadable content 2023-09-05 15:20:20 -07:00
Joseph Madamba
676240928e
Move actual star updating to star rating display 2023-09-05 14:57:55 -07:00
Joseph Madamba
5becac6431
Make beatmap non-nullable
Doesn't seem like it'll be null after first set: 5454d1caa1/osu.Game/OsuGameBase.cs (L363)
2023-09-05 14:43:43 -07:00
Joseph Madamba
b63c1e4257
Remove mods dependency
BPM is not in the wedge anymore.
2023-09-05 12:14:17 -07:00
Joseph Madamba
6e6dd86a51
Remove buffered container comment
While it is true that there is a transparency overlap, it is only seen when entering/exiting song select. And there are other components game-wide that exhibit the same issue when transparency changes. Should be reconsidered another time.
2023-09-05 11:10:06 -07:00
Dean Herbert
96f12cfbaa Update GetTexture signature rather than creating new overload 2023-09-05 18:01:19 +09:00
Bartłomiej Dach
691c08ebde
Update spectator server development endpoint URLs
With the way `dev.ppy.sh` was previously configured, the `osu-web`
`/multiplayer` routes and `osu-server-spectator` `/multiplayer` routes
would conflict with each other, with the `osu-server-spectator` route
taking precedence. This would mean that some `osu-web` pages would just
straight up not be available on dev.

To counteract this, the `osu-server-spectator` routes are now exposed
under `https://dev.ppy.sh/signalr/`. This PR updates the client-side
configuration to use these new routes.
2023-09-05 10:30:12 +02:00
Dean Herbert
4cd4eb3b0a Move "general" to top for key binding compatibility 2023-09-05 16:46:49 +09:00
Dean Herbert
84d8d33ad7 Add headers and generally improve the UI of the popover 2023-09-05 16:44:55 +09:00
Dean Herbert
4ff3630484 Add a slight delay before hiding the popover to better visualise button click 2023-09-05 16:14:01 +09:00
Dean Herbert
a8c9c2bf17 Remove buffered container (doesn't seem like it's doing anything anymore) 2023-09-05 15:59:00 +09:00
Dean Herbert
1215ad7ace Update framework 2023-09-05 15:40:00 +09:00
Joseph Madamba
98d027d207
Fix star counter animating weird and delayed 2023-09-04 21:39:41 -07:00
Joseph Madamba
9accd0ded2
Fix star rating rolling counter regression 2023-09-04 21:21:56 -07:00
Joseph Madamba
82fb9dc2ef
Simplify text initialization 2023-09-04 12:59:21 -07:00
Joseph Madamba
e70510ef19
Move drawable and binding logic to standard places 2023-09-04 12:56:20 -07:00
Joseph Madamba
2df2002735
Move negative corner radius margin to constructor 2023-09-04 12:42:01 -07:00
Joseph Madamba
e8a793425b
Use right padding instead of negative x offset 2023-09-04 12:38:40 -07:00
Joseph Madamba
bf71099e57
Fix truncating sprite text usage 2023-09-04 12:04:20 -07:00
Joseph Madamba
2fbd67cf26
Merge branch 'master' into beatmap_wedge_clean_ii 2023-09-04 11:24:20 -07:00
Joseph Madamba
f616648730 Remove icon blending 2023-09-04 09:40:35 -07:00
cdwcgt
fd1fce486a
ensure dispose realmSubscription 2023-09-05 00:21:08 +09:00
cdwcgt
87aa191c12
use realm Subscription instead of Beatmap Download Tracker 2023-09-04 17:53:31 +09:00
cdwcgt
f68a12003a
check beatmap hash before try to import 2023-09-04 17:37:31 +09:00
Bartłomiej Dach
a200d043be
Merge pull request #24698 from Wleter/skin-editor-closest-anchor
Fix closest anchor for rotated/flipped selections in skin editor
2023-09-04 10:29:05 +02:00
cdwcgt
164f61f590
clean up 2023-09-04 17:14:04 +09:00
cdwcgt
3decadaf51
use realm query 2023-09-04 17:13:46 +09:00
Joseph Madamba
6c0bd13308
Add xmldoc to newly exposed methods 2023-09-04 00:53:14 -07:00
Joseph Madamba
5abf271b56
Implement beatmap options popover 2023-09-04 00:53:09 -07:00
cdwcgt
58844092d6
post a notification instead a screen 2023-09-04 16:17:21 +09:00
Hồ Nguyên Minh
d5a89c4c45 Fix formatting 2023-09-04 13:32:42 +07:00
Hồ Nguyên Minh
b17a55d6a8 Add length check for slider velocity 2023-09-04 10:43:05 +07:00
cdwcgt
dfecddbf5d
Merge branch 'master' into missing-beatmap 2023-09-04 12:41:23 +09:00
Givikap120
8281ed5173 Fixed "no animations" issue 2023-09-03 14:51:53 +03:00
Givikap120
0797926448 Update VerticalAttributeDisplay.cs 2023-09-03 12:19:03 +03:00
Magnus-Cosmos
40dbf098d2
Use existing localisation for "view profile" 2023-09-02 22:51:08 -04:00
Magnus-Cosmos
d674856e29
Use existing localisations in BeatmapInfoWedge 2023-09-02 22:49:29 -04:00
Salman Ahmed
6674c70280 Add support for limiting skin texture/animation dimensions 2023-09-03 02:21:47 +03:00
Givikap120
5e5fe84a88 Update AdvancedStats.cs 2023-09-03 02:19:02 +03:00
Givikap120
0779cd8f4f minor design fixes 2023-09-03 02:17:04 +03:00
Givikap120
2e2d4d0d60 Merge branch 'map_info_on_mod_settings' of https://github.com/Givikap120/osu into map_info_on_mod_settings 2023-09-03 02:09:18 +03:00
Givikap120
b0398b6259 functionality is done 2023-09-03 02:09:01 +03:00
Bartłomiej Dach
76954f6e91
Merge branch 'master' into skin-editor-selection-negative-scaling 2023-09-01 21:30:24 +02:00
Wleter
fc4069f794 let SelectionBox perform flip with scale handles 2023-09-01 13:01:51 +02:00
Dean Herbert
37c2b330a2 Move toggle implementation to work on all scrolling rulesets automatically 2023-09-01 19:53:10 +09:00
Dean Herbert
6ce251fbb5 Expose base VisualisationMethod so we don't need to new it locally per ruleset 2023-09-01 19:17:53 +09:00
Dean Herbert
0f5eff1230 Merge branch 'master' into mania-edit-disable-sv 2023-09-01 19:08:48 +09:00
Wleter
47160f7744 make getClosestAnchor work with rotated drawable 2023-08-31 20:24:26 +02:00
Dean Herbert
038e618af0 Merge branch 'master' into switch-to-new-score-download-endpoint 2023-08-31 00:15:57 +09:00
Wleter
f277909470 maintain rotated selection's centre position 2023-08-30 09:16:16 +02:00
Dean Herbert
96a5443813
Merge branch 'master' into carousel-difficulty-split 2023-08-30 14:24:30 +09:00
Dean Herbert
cbd4b91feb
Merge pull request #24678 from Nabile-Rahmani/bot-scores
Fix and use score user's IsBot property in results screen animation
2023-08-30 14:00:35 +09:00
Nabile Rahmani
270e2a6600
Update osu.Game/Rulesets/Mods/ModExtensions.cs
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-08-29 23:59:08 +02:00
Nabile Rahmani
b658b0e346 Fix and use score user's IsBot property in results screen animation
While a mod-created replay did flag itself as performed by a bot, the extension method converting it into a Score did not copy all the generated properties.

As noted, it might be preferable for ModCreatedUser to inherit APIUser and forward it as-is to the Score instance.

Related to PR #24675
2023-08-29 23:28:50 +02:00
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