1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-15 16:25:32 +08:00
Commit Graph

43302 Commits

Author SHA1 Message Date
Dean Herbert
0067450b22
Change volume parameter to double 2024-07-08 13:47:57 +09:00
Dean Herbert
5907e0d1eb
Make DuckDuration non-zero by default 2024-07-05 18:39:13 +09:00
Dean Herbert
7efb4ce30a
Fix multiple disposals resulting in assert being hit 2024-07-05 18:39:12 +09:00
Dean Herbert
717f7ba9f0
Better support multiple concurrent ducking operations 2024-07-05 18:12:40 +09:00
Bartłomiej Dach
4c59ec1d94
Fix incorrect ternary state computation for bank toggles
Closes https://github.com/ppy/osu/issues/28741.

Regressed in a7b066f3ee.

The intent of the original change there was to ensure that addition
banks being set will put the ternary state toggles in indeterminate
state (to at least provide a visual indication that the selection does
not use a single bank). This would previously not be the case due to
the use of `.All()` in the original condition (a single object/node
was considered to have a bank enabled if and only if *all* samples
within it used it). However the attempt to fix that via switching
to `Any()` was not correct.

The logic used in the offending commit operates on extracted `Samples`
and `NodeSamples` from the selection, and would consider the ternary
toggle:

- fully off if none of the samples/node samples contained a sample with
  the given bank,
- indeterminate if the some of the samples/node samples contained a
  sample with the given bank,
- fully on if at least one sample from every samples/node samples
  contained a sample with the given bank.

This is a *two-tiered* process, as in first a *binary* on/off state is
extracted from each object's samples/node samples, and *then* a ternary
state is extracted from all objects/nodes. This is insufficient to
express the *desired* behaviour, which is that the toggle should be:

- fully off if *none of the individual samples in the selection* use
  the given bank,
- indeterminate if *at least one individual sample in the selection*
  uses the given bank,
- fully on if *all individual samples in the selection* use the given
  bank.

The second wording is flattened, and no longer tries to consider "nodes"
or "objects", it just looks at all of the samples in the selection
without concern as to whether they're from separate objects/nodes
or not.

To explain why this discrepancy caused the bug, consider a single object
with a `soft` normal bank and `drum` addition bank. Selecting the object
would cause a ternary button state update; as per the incorrect logic,
there were two samples on the object and each had its own separate
banks, so two ternary toggles would have their state set to `True`
(rather than the correct `Indeterminate`), thus triggering a bindable
feedback loop that would cause one of these banks to win and actually
overwrite the other.

Note that the addition indeterminate state computation *still* needs
to do the two-tiered process, because there it actually makes sense (for
a selection to have an addition fully on rather than indeterminate,
*every* object/node *must* contain that addition).
2024-07-05 09:27:21 +02:00
Bartłomiej Dach
6907d3d3b5
Merge branch 'master' into nodesample-inherit 2024-07-05 08:12:47 +02:00
Bartłomiej Dach
ab8623ec48
Merge pull request #28727 from OliBomby/inherit-addition
Allow inheriting addition bank from previous hitobject when using auto bank assignment
2024-07-05 08:12:30 +02:00
Dean Herbert
20ba6ca867
Add mention of return type for Duck method 2024-07-05 15:11:11 +09:00
Dean Herbert
554740af10
Adjust ducking API to use a parameters record 2024-07-05 15:04:40 +09:00
Dean Herbert
0d858ce8f8
Change default easings to In/Out for all ducking operations 2024-07-05 13:51:41 +09:00
Dean Herbert
ec4623d49f
Reduce duck length slightly on toolbar ruleset selector 2024-07-05 13:51:29 +09:00
Dean Herbert
4528daf7fa
Update resources 2024-07-05 13:15:15 +09:00
Dean Herbert
0696e2df32
Apply nullability to ducking methods 2024-07-05 12:58:34 +09:00
Dean Herbert
7f84e377ab
Merge branch 'music-controller-nullability' into audio-ducking-fx 2024-07-05 12:57:39 +09:00
Dean Herbert
d21eec9542
Apply nullability to MusicController 2024-07-05 12:50:15 +09:00
Dan Balasescu
aaef5c189d
Merge pull request #28739 from peppy/fix-skin-fallbacks
Fix incorrect skin fallback order when beatmap skin is present
2024-07-05 12:05:57 +09:00
Dean Herbert
f201cc3fea
Expand explanation in inline comment 2024-07-05 10:09:06 +09:00
Dean Herbert
f0ad7a97cb
Merge branch 'master' into daily-challenge/better-results 2024-07-04 23:56:09 +09:00
Dean Herbert
aa72c09c3a
Merge pull request #28659 from bdach/daily-challenge/integration
Use room watching functionality to receive realtime daily challenge updates
2024-07-04 23:55:46 +09:00
Bartłomiej Dach
c524c23db6
Merge branch 'master' into inherit-addition 2024-07-04 15:24:59 +02:00
Bartłomiej Dach
ea9dd841c0
Merge pull request #28728 from OliBomby/inherit-volume
Always inherit the volume from the previous hit object on placement
2024-07-04 15:24:34 +02:00
Bartłomiej Dach
652d2e9633
Adjust code style 2024-07-04 15:19:36 +02:00
Bartłomiej Dach
8b4155fc0a
Merge branch 'inherit-addition' into nodesample-inherit 2024-07-04 15:13:20 +02:00
Bartłomiej Dach
faedf268ec
Merge branch 'inherit-volume' into inherit-addition 2024-07-04 14:52:05 +02:00
Bartłomiej Dach
72492a79cd
Reduce duplication in new logic 2024-07-04 14:45:46 +02:00
Bartłomiej Dach
5fa586848d
Replace old bad daily challenge leaderboard with new implementation
- Actually shows scores rather than playlist aggregates (which are
  useful... in playlists, where there is more than one item)
- Actually allows scores to be shown by clicking on them
- Doesn't completely break down visually on smaller window sizes

The general appearance is not as polished as the old one in details but
I wanted something quick that we can get out by next weekend.

Also includes the naive method of refetching scores once a new top 50
score is detected. I can add a stagger if required.
2024-07-04 13:52:08 +02:00
Bartłomiej Dach
8e8909c999
Adjust daily challenge screen background colour 2024-07-04 13:49:33 +02:00
Bartłomiej Dach
b29e535ca5
Add results screen for displaying arbitrary daily challenge scores
At this point its primary usage is the daily challenge event feed, but
the leaderboard will be using this too shortly.

Because the playlists results screen that exists in `master` is
hard-coupled to showing the *local user's* best result on a given
playlist by way of hard-coupling itself to the relevant API request,
allowing show of *arbitrary* score by ID requires a whole bunch of
subclassery as things stand. Oh well.

Class naming is... best effort, due to the above.
2024-07-04 13:45:24 +02:00
Dean Herbert
e3c8bee7d0
Fix nullability failure 2024-07-04 20:17:40 +09:00
Dean Herbert
b2af49c102
Fix classic fallback not having a transformer (and only add if required) 2024-07-04 20:17:39 +09:00
Salman Ahmed
207ee8a2ee Fix editor not updating ruleset when switching difficulty 2024-07-04 14:06:36 +03:00
Jamie Taylor
a5077fcb3f
Rename TimedDuck -> DuckMomentarily 2024-07-04 17:22:33 +09:00
Dean Herbert
a4c575f77a
Merge pull request #28521 from bdach/tempo-adjust-editor
Change editor speed adjustment back to adjusting tempo
2024-07-04 16:42:55 +09:00
Dean Herbert
3f138489a1
Merge pull request #28509 from bdach/slider-anchor-type-switching
Add ability to cycle slider control point types via keyboard
2024-07-04 16:11:37 +09:00
Jamie Taylor
82e4e884d7
Change overlapping Duck() usages to be a noop instead of a throw 2024-07-04 15:51:50 +09:00
Jamie Taylor
753463fadb
Fix code style 2024-07-04 15:01:37 +09:00
Jamie Taylor
681398059e
Merge branch 'master' into audio-ducking-fx 2024-07-04 14:28:37 +09:00
Jamie Taylor
d948193757
Change Duck() to be IDisposable and prevent overlapping usages 2024-07-04 14:23:35 +09:00
Dean Herbert
73d71d3d77
Merge pull request #28705 from bdach/editor-test-play
Reimplement missing gameplay test hotkeys from stable
2024-07-04 13:44:25 +09:00
Salman Ahmed
585e09981f Allow scrollbar to overlap content
The content is already padded enough to have the scrollbar sit on top.
Having the content change padding when the scrollbar appears gives an
unpleasent experience (especially when the scrollbar is hidden at first
but the user increases the content's height by clicking on a dropdown or
something)
2024-07-04 07:36:31 +03:00
Salman Ahmed
33711ba616 Remove scroll-dropdown-into-view logic 2024-07-04 07:34:19 +03:00
Salman Ahmed
8658389854 Clarify how the panel blocks input 2024-07-04 07:34:19 +03:00
Salman Ahmed
899c8d39fe
Merge branch 'master' into verify-title-markers 2024-07-04 07:07:59 +03:00
OliBomby
e754668daa Always inherit the volume from the previous hit object 2024-07-04 01:09:06 +02:00
OliBomby
8f3a30b0b9 inherit addition bank from last hitobject 2024-07-04 00:56:53 +02:00
OliBomby
8dd04b6e9a update nodesamples on placement 2024-07-04 00:39:12 +02:00
Bartłomiej Dach
00a0058fc7
Fix typo 2024-07-03 16:13:47 +02:00
Bartłomiej Dach
bcb479d4f7
Use one less regex 2024-07-03 16:13:30 +02:00
Bartłomiej Dach
5696e85b68
Adjust conditionals
The fact that checking the unicode title was gated behind a
`hasRomanisedTitle` guard was breaking my brain.
2024-07-03 15:52:05 +02:00
Bartłomiej Dach
32b3d3d7df
Compile regexes for speed 2024-07-03 15:49:21 +02:00
Bartłomiej Dach
901fec65ef
Address code quality issues 2024-07-03 15:49:17 +02:00
Dean Herbert
88375694a3
Merge branch 'master' into slider-anchor-type-switching 2024-07-03 22:36:57 +09:00
Bartłomiej Dach
0ab13e4486
Use alternative method of releasing user-pressed keys when activating autoplay 2024-07-03 14:37:07 +02:00
Bartłomiej Dach
e73faaefd2
Merge branch 'master' into editor-test-play 2024-07-03 13:54:47 +02:00
Dean Herbert
56cdd83451
Adjust padding and round corners of hover layer 2024-07-03 20:42:34 +09:00
Dean Herbert
5f56ed6872
Merge branch 'master' into navigate-to-timestamp 2024-07-03 20:42:32 +09:00
Bartłomiej Dach
17ce9cd162
Merge branch 'master' into grids-2 2024-07-03 10:57:05 +02:00
Bartłomiej Dach
84c7d34b77
Fix user-pressed keys remaining pressed whtn autoplay is turned on 2024-07-03 10:32:08 +02:00
Bartłomiej Dach
294aa09c41
Clear pressed keys and last replay frame when detaching replay from ruleset input manager 2024-07-03 10:19:59 +02:00
Bartłomiej Dach
29c3ff0677
Enable NRT in RulesetInputManager 2024-07-03 09:33:48 +02:00
Dean Herbert
824a00b018
Merge pull request #28707 from bdach/remove-breaks
Add option to remove breaks via timeline context menu
2024-07-03 16:29:25 +09:00
Dan Balasescu
537e3a1642
Merge pull request #28619 from bdach/fix-tail-volume-not-saving
Fix slider tail volume not saving
2024-07-03 16:13:18 +09:00
Dean Herbert
abfcac7466
Fix nullability 2024-07-03 15:31:46 +09:00
Dean Herbert
b6dc483fc1
Add missing change handler to ensure undo/redo works for break removal 2024-07-03 14:23:31 +09:00
Jamie Taylor
d29d114133
Match prior ducking behaviour 2024-07-03 13:52:20 +09:00
Jamie Taylor
b972632e4f
Change default easing to match prior behaviour 2024-07-03 13:50:35 +09:00
Jamie Taylor
153138cdac
Use null to disable audio filter instead 2024-07-03 13:47:59 +09:00
Salman Ahmed
f1012070c4
Merge branch 'master' into mod-select-customisation-panel 2024-07-03 07:36:52 +03:00
Salman Ahmed
cb350470e5
Merge branch 'master' into update-framework-has-flag 2024-07-03 07:06:13 +03:00
Arthur Araujo
7143ff523f Make MarkerChecks and MarkerCheck class private 2024-07-02 21:09:49 -03:00
Arthur Araujo
7cdad20119 Fix explicit array type specification in MarkerChecks 2024-07-02 20:55:52 -03:00
Arthur Araujo
7cb3d7445c Add verify checks for title markers 2024-07-02 17:20:00 -03:00
Dean Herbert
5350945340
Update HasFlag usages 2024-07-03 00:19:04 +09:00
Dean Herbert
9034f6186b
Update framework 2024-07-03 00:15:34 +09:00
Bartłomiej Dach
a7b066f3ee
Include node samples when changing additions and banks 2024-07-02 16:22:15 +02:00
Bartłomiej Dach
9414aec8bf
Add capability to remove breaks via context menu 2024-07-02 14:55:04 +02:00
Bartłomiej Dach
d85c467856
Implement quick exit hotkeys for editor test play 2024-07-02 14:34:36 +02:00
Bartłomiej Dach
e28befb98d
Implement quick pause toggle for editor test play 2024-07-02 14:34:35 +02:00
Bartłomiej Dach
1e4db77925
Implement autoplay toggle for editor test play
Contains some hacks to fix weird behaviours like rewinding to the start
on enabling autoplay, or gameplay cursor hiding.
2024-07-02 14:34:31 +02:00
Salman Ahmed
1d94c96a8e Display customisation header in disabled state when no customisable mod selected 2024-07-02 14:40:16 +03:00
Bartłomiej Dach
d4a8f6c8b0
Do not add extra sample control point after end of IHasRepeats objects 2024-07-02 09:13:07 +02:00
Dan Balasescu
31edca866c
Remove unused code 2024-07-02 12:21:24 +09:00
Dan Balasescu
04da1209f7
Revert "Change breaks list to IReadOnlyList"
This reverts commit 2c3b411bb5.
2024-07-02 12:16:11 +09:00
Dan Balasescu
db84711214
Revert "Move break cloning back to non-virtual method"
This reverts commit f69bc40a4b.
2024-07-02 12:16:10 +09:00
Dean Herbert
f69bc40a4b
Move break cloning back to non-virtual method 2024-07-02 12:07:13 +09:00
Dean Herbert
2c3b411bb5
Change breaks list to IReadOnlyList 2024-07-02 11:59:24 +09:00
Dean Herbert
f694ae416e
Fix typo in xmldoc 2024-07-02 11:47:40 +09:00
Dean Herbert
005af280f2
Isolate bindable breaks list to EditorBeatmap 2024-07-02 11:31:55 +09:00
Dan Balasescu
f942595829
Fix ManiaModInvert permanently messing up the beatmap 2024-07-01 15:02:00 +09:00
Dean Herbert
9aec1de4c2
Merge branch 'master' into daily-challenge/integration 2024-07-01 10:37:33 +09:00
Dean Herbert
8bb51d5a4f
Fix summary timeline not correctly updating after changes to breaks
Closes https://github.com/ppy/osu/issues/28678.

Oops.
2024-06-30 20:32:16 +09:00
Salman Ahmed
a65af8249c Fix first-run setup buttons reset after reopening from dismiss 2024-06-30 07:27:35 +03:00
Salman Ahmed
58c7d1e772 Bind game-wide mods bindable to mod select overlay in new song select screen 2024-06-30 06:50:36 +03:00
Salman Ahmed
e57a0029f1 Remove local footer from ShearedOverlayContainer 2024-06-30 06:50:36 +03:00
Salman Ahmed
5dd822ea38 Migrate first-run setup overlay footer content 2024-06-30 06:50:36 +03:00
Salman Ahmed
48bf3f1385 Migrate mod select overlay footer content 2024-06-30 06:50:36 +03:00
Salman Ahmed
467d7c4f54 Refactor game-wide layout order of footer to fix depth issues with overlays and improve UX
With this new order, the logo can be easily moved to display in front of the footer in `SongSelectV2` without breaking experience when footer-based overlays are present. Such overlays (i.e. mod select overlay) will also be dimmed alongside the current screen when a game-wide overlay is open (e.g. settings).
2024-06-30 06:50:36 +03:00
Salman Ahmed
900d15e777 Add test coverage 2024-06-30 06:50:22 +03:00
Salman Ahmed
56d1255f8a Fix footer button transforms getting interrupted by consecutive method calls 2024-06-30 06:15:54 +03:00
Salman Ahmed
fb77260afc Fix footer buttons receiving input while put away from screen 2024-06-30 04:32:36 +03:00
Salman Ahmed
b8816bfc28 Update colour scheme of footer in line with visible overlay 2024-06-30 04:32:36 +03:00
Salman Ahmed
2319fa11ec Support performing custom overlay-specific action with back button 2024-06-30 04:32:36 +03:00
Salman Ahmed
916d0bfcc2 Temporarily show screen footer if hidden while overlay is present 2024-06-30 04:32:36 +03:00
Salman Ahmed
68b8a4fb2a Use ScreenFooter for displaying footer buttons from overlays 2024-06-30 04:32:36 +03:00
Salman Ahmed
892659de0f Adjust footer design to display well with the rest of the game 2024-06-30 04:32:05 +03:00
Salman Ahmed
c6c75ae48d Merge branch 'master' into footer-v2-side-buttons 2024-06-29 08:19:49 +03:00
Bartłomiej Dach
df97215298
Use room watching functionality to receive realtime daily challenge updates 2024-06-28 13:35:16 +02:00
Bartłomiej Dach
81c6da98c2
Merge pull request #26465 from LeNitrous/fix/editor-test-exit
Fix editor test play not marking hit objects before its start time as judged.
2024-06-28 12:12:17 +02:00
Dean Herbert
4bb8a45d75
Merge pull request #28636 from bdach/daily-challenge/watch-room
Add client/server models for allowing clients to receive realtime playlist updates
2024-06-28 17:51:40 +09:00
Bartłomiej Dach
007bd3973a
Merge pull request #28653 from peppy/featured-artist-even-more-visible
Update beatmap listing filter overlay to better imply selected filters
2024-06-28 09:50:21 +02:00
Bartłomiej Dach
a3ea36d2b2
Fix formatting 2024-06-28 09:45:45 +02:00
Bartłomiej Dach
7ac5bd4d37
Ensure past drawable objects also get their results populated in editor test play 2024-06-28 09:37:10 +02:00
Bartłomiej Dach
b36e0f0875
Merge branch 'master' into fix/editor-test-exit 2024-06-28 09:17:40 +02:00
Bartłomiej Dach
030bbf2641
Fix vertical overlaps on multiselection filters when they wrap 2024-06-28 09:07:29 +02:00
Dean Herbert
fa1527f446
Update design for selected filters to better imply that they are selected 2024-06-28 15:45:09 +09:00
Dan Balasescu
77b00dac7e
Fix low pass filter sometimes not applied in dialog overlays 2024-06-28 15:20:55 +09:00
Dean Herbert
c1bec7a7c3
Simplify colour logic for beatmap overlay filter rows 2024-06-28 14:55:55 +09:00
Salman Ahmed
86b8357b8b Improve UX & input handling when customisation panel is open 2024-06-28 08:53:31 +03:00
Dean Herbert
d370f50cc1
Syncrhronise colours across mod and preset tooltips 2024-06-28 13:16:54 +09:00
Dean Herbert
28d5278935
Show preset description text in tooltip popup
As proposed in https://github.com/ppy/osu/discussions/28610.
2024-06-28 13:16:53 +09:00
Dan Balasescu
3b3f914cd2
Merge branch 'master' into pp_counter_fix 2024-06-28 12:40:56 +09:00
Salman Ahmed
167ffac218 Reorder container layout for popovers to recognize clicks on customisation panel
Basically moves `PopoverContainer` to cover both the columns and the customisation panel, so that if the customisation panel is clicked on, the popover container will notice that and hide popovers like the mod preset popover.
2024-06-28 06:35:21 +03:00
Dean Herbert
fd6b77ea92
Fix distance snap control being removed 2024-06-27 23:59:38 +09:00
Bartłomiej Dach
1b741dada3
Show distance in pixels to previous/next object in osu! hitobject inspector 2024-06-27 14:46:57 +02:00
Bartłomiej Dach
e35744118c
Merge pull request #28638 from OliBomby/beat-divisor
Fix editor not loading arbitrary beat divisors
2024-06-27 13:31:44 +02:00
OliBomby
29412bb29b Fix editor setting arbitrary beat divisor 2024-06-27 12:22:00 +02:00
Bartłomiej Dach
d6e7781be1
Add client/server models for allowing clients to receive realtime playlist updates 2024-06-27 11:32:18 +02:00
Dean Herbert
76a1f19233
Merge pull request #28613 from bdach/control-point-table-is-bad
Improve performance of editor tables
2024-06-27 18:22:56 +09:00
Bartłomiej Dach
9e07c8fff7
Update framework again 2024-06-27 10:31:26 +02:00
Bartłomiej Dach
9384cbcdd8
Fix scroll-into-view on control point table not working as it is supposed to 2024-06-27 09:46:35 +02:00
Bartłomiej Dach
a5aedded16
Remove commented code 2024-06-27 09:44:55 +02:00
Dean Herbert
f07a635447
Merge pull request #28630 from peppy/fix-long-note-break-woes 2024-06-27 15:50:25 +09:00
Bartłomiej Dach
b1baa49459
Add note about implicit reliance on sort by start time 2024-06-27 07:56:57 +02:00
Bartłomiej Dach
ef952bcd65
Use GetLastObjectTime() for safety
Due to other circumstances this has no real effect, but may as well.
2024-06-27 07:48:06 +02:00
Dan Balasescu
e6a5131b67
Merge pull request #28632 from frenzibyte/fix-dropdown-enter-key
Fix osu! dropdown no longer handling `Enter` key to select items
2024-06-27 14:36:24 +09:00
Dean Herbert
8f9b2106d6
Merge pull request #28620 from normalid-awa/ui/mod-select-color-improvement
Optimize Text Color For Mod Multiplier Text
2024-06-27 13:56:12 +09:00
Salman Ahmed
811621325f Fix osu! dropdown search text box having commits disabled
I've also removed inheritance from `SearchTextBox` because it contains
logic that might interfere with the internal implementation of dropdown
search bars (focus logic and stuff).
2024-06-27 07:09:46 +03:00
Dean Herbert
7ef7e5f163
Fix break generation not accounting for concurrent hitobjects correctly 2024-06-27 12:10:26 +09:00
Dean Herbert
ec86cc1333
Merge pull request #28608 from bdach/daily-challenge/carousel
Implement carousel container for daily challenge screen
2024-06-27 10:45:23 +09:00
Bartłomiej Dach
847946937e
Fix test failures 2024-06-26 16:56:43 +02:00
Dean Herbert
1998742e42
Update framework 2024-06-26 22:56:43 +09:00
Bartłomiej Dach
fff27e619d
Fix slider tail volume not saving
Closes https://github.com/ppy/osu/issues/28587.

As outlined in the issue thread, the tail volume wasn't saving because
it wasn't actually attached to a hitobject properly, and as such the
`LegacyBeatmapEncoder` logic, which is based on hitobjects, did not
pick them up on save.

To fix that, switch to using `NodeSamples` for objects that are
`IHasRepeats`. That has one added complication in that having it work
properly requires changes to the decode side too. That is because the
intent is to allow the user to change the sample settings for each node
(which are specified via `NodeSamples`), as well as "the rest of the
object", which generally means ticks or auxiliary samples like
`sliderslide` (which are specified by `Samples`).

However, up until now, `Samples` always queried the control point
which was _active at the end time of the slider_. This obviously can't
work anymore when converting `NodeSamples` to legacy control points,
because the last node's sample is _also_ at the end time of the slider.
To bypass that, add extra sample points after each node (just out of
reach of the 5ms leniency), which are supposed to control volume of
ticks and/or slides.

Upon testing, this *sort of* has the intended effect in stable, with
the exception of `sliderslide`, which seems to either respect or _not_
respect the relevant volume spec dependent on... not sure what, and not
sure I want to be debugging that. It might be frame alignment, or it
might be the phase of the moon.
2024-06-26 15:52:16 +02:00
normalid
936a8d800d Swap the low and high multiplier color 2024-06-26 21:39:14 +08:00
Dean Herbert
2a839b3697
Make action required init 2024-06-26 21:50:34 +09:00
Dean Herbert
fd91210c1c
Remove unnecessary setter on bindable 2024-06-26 21:47:33 +09:00
Dean Herbert
6beae91d53
Ensure carousel panel depth is consistent based on vertical position
I thought this was already being handled, but it turns out that changing
sort mode (and potentially other operations) could break the depth of
display of panels due to pooling and what not.

This ensures consistency and also employs @bdach's suggestion of
reversing the depth above and below the current selection for a better
visual effect.
2024-06-26 21:10:29 +09:00
Bartłomiej Dach
9dfd6cf9ef
Remove EditorTable
Begone, foul beast.
2024-06-26 10:40:02 +02:00
Bartłomiej Dach
b12db8fbe2
Rewrite IssueTable to use virtualised list 2024-06-26 10:40:02 +02:00
Bartłomiej Dach
5c2d446767
Rewrite ControlPointTable to use virtualised list 2024-06-26 10:40:02 +02:00
Dan Balasescu
276d8fe158
Truncate break times for legacy beatmap export 2024-06-26 16:20:56 +09:00
Bartłomiej Dach
006184ed2f
Implement carousel container for daily challenge screen 2024-06-26 08:49:00 +02:00
Dan Balasescu
173c4f430a
Merge pull request #28601 from peppy/adjust-carousel-panel-spacing
Adjust beatmap carousel's spacing to remove dead-space
2024-06-26 15:35:52 +09:00
Dan Balasescu
2e03afb2ed
Always log missing official build attribute 2024-06-26 14:49:04 +09:00
Dan Balasescu
0379abd714
Prevent multiple invocations of failure procedure 2024-06-26 13:57:18 +09:00
Dean Herbert
e84daedbea
Reduce length of fade-out when hiding beatmap panels 2024-06-26 12:01:38 +09:00
Dean Herbert
5d4509150b
Adjust beatmap carousel's spacing to remove dead-space
As discussed in https://github.com/ppy/osu/discussions/28599.

I think this feels better overall, and would like to apply the change
before other design changes to the carousel.
2024-06-26 11:56:58 +09:00
Dean Herbert
aadb104851
Merge pull request #28589 from bdach/scale-handling-crash
Fix crashes when opening scale/rotation popovers during selection box operations
2024-06-26 00:11:03 +09:00
Dean Herbert
d722be16e3
Add missing base calls for safety 2024-06-25 23:41:43 +09:00
Dean Herbert
3d22f700a7
Merge pull request #28561 from bdach/daily-challenge/score-breakdown
Implement score breakdown display for daily challenge screen
2024-06-25 23:34:47 +09:00
Dean Herbert
0a44022697
Update framework 2024-06-25 23:03:37 +09:00
Bartłomiej Dach
2fda45cad4
Fix crashes when opening scale/rotation popovers during selection box operations 2024-06-25 15:20:59 +02:00
Dean Herbert
6cd1367329
Merge pull request #28580 from bdach/fix-breaks
Fix crash when attempting to adjust duration of break that has no preceding/succeeding objects
2024-06-25 20:24:27 +09:00
Dean Herbert
a12f32519d
Merge pull request #28572 from bdach/fix-playlist-duration-death
Fix crash on calculating playlist duration when rate-changing mods are present
2024-06-25 20:15:26 +09:00
Bartłomiej Dach
fae6dcfffa
Remove manual breaks at the start/end of beatmap
This is the secondary cause of https://github.com/ppy/osu/issues/28577,
because you could do the following:

- Have a break autogenerate itself
- Adjust either end of it to make it mark itself as manually-adjusted
- Remove all objects before or after said break

to end up in a state wherein there are no objects before or after a
break.

The direct fix is still correct because it is still technically possible
to end up in a state wherein a break is before or after all objects
(obvious one is manual `.osu` editing), but this behaviour is also
undesirable for the autogeneration logic.
2024-06-25 12:49:17 +02:00
Bartłomiej Dach
03cdfd0660
Fix timeline break piece crashing on drag if there are no objects before start or after end
This fixes the direct cause of https://github.com/ppy/osu/issues/28577.
2024-06-25 12:25:37 +02:00
PercyDan54
2de0852551
Fix transient rank value applied to bindable 2024-06-25 18:06:50 +08:00
Bartłomiej Dach
0d2a47167c
Fix crash on calculating playlist duration when rate-changing mods are present
Regressed in https://github.com/ppy/osu/pull/28399.

To reproduce, enter a playlist that has an item with a rate-changing mod
(rather than create it yourself).

This is happening because `APIRuleset` has `CreateInstance()`
unimplemented:

    b4cefe0cc2/osu.Game/Online/API/Requests/Responses/APIBeatmap.cs (L159)

and only triggers when the playlist items in question originate from
web.

This is why it is bad to have interface implementations throw outside of
maybe mock implementations for tests. `CreateInstance()` is a scourge
elsewhere in general, we need way less of it in the codebase (because
while convenient, it's also problematic to implement in online contexts,
and also expensive because reflection).
2024-06-25 11:28:10 +02:00
Dean Herbert
2de42854c3
Fix corner radius looking bad when graph bars are too short 2024-06-25 15:43:52 +09:00
Salman Ahmed
a277d9df13 Kill focus from components when clicking on an empty space in the panel 2024-06-25 07:13:36 +03:00
Salman Ahmed
7ddb6cb7e7 Scroll mod setting dropdown into view when open 2024-06-25 06:56:48 +03:00
Salman Ahmed
3f06a0ef9e Block certain operations when customisation panel is open
Normally I would just block keyboard input from going past `ModCustomisationPanel`, but it's a little complicated here since I'm dealing with global action key binding presses, and I also still want actions like `GlobalAction.Back` to get past the customisation panel even if it's expanded.
2024-06-25 06:16:46 +03:00
Salman Ahmed
57ee794398 Add extra margin to avoid 1px artifacts 2024-06-25 06:08:13 +03:00
Salman Ahmed
0a72394c8a Fix customisation panel conflicting with beatmap attributes when collapsed 2024-06-25 06:04:39 +03:00
Bartłomiej Dach
66b093b17e
Implement score breakdown display for daily challenge screen 2024-06-24 10:09:10 +02:00
Salman Ahmed
7cbd04db9c
Merge branch 'master' into fix-key-binding-corruption 2024-06-24 05:30:21 +03:00
Dean Herbert
1dc9f10235
Fix scale control key binding breaking previous defaults
Oops from ppy/osu#28309.
2024-06-24 09:46:23 +08:00
Salman Ahmed
e23da93c09 Use new display on mod select overlay and remove old display 2024-06-23 08:22:50 +03:00
Salman Ahmed
04efa61156 Add different display for mod customisation 2024-06-23 08:22:13 +03:00
Dean Herbert
c58bb62408
Merge branch 'master' into hit-animations 2024-06-23 04:32:47 +09:00
Jamie Taylor
2ffeb1b361
Add fallback behaviour for custom rulesets 2024-06-23 02:20:51 +09:00
Dean Herbert
80907acaa6
Update resources 2024-06-22 22:01:05 +08:00
Jamie Taylor
0d11b2b91c
Replace manual usages of AudioFilter with new ducking methods 2024-06-22 01:57:14 +09:00
Jamie Taylor
a56751511e
Apply a ducking effect to the currently playing track when switching ruleset 2024-06-22 01:36:30 +09:00
sometimes
89d3f67eb3
fix accuracyProcess typo 2024-06-20 22:06:00 -04:00
Olivier Schipper
74399542d2
Use math instead of hardcoded constant values
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2024-06-20 17:27:15 +02:00
Bartłomiej Dach
ad2cd0ba8f
Adjust behaviour of hit animations toggle to match user expectations 2024-06-20 13:42:32 +02:00
Dean Herbert
57774ae767
Merge branch 'master' into slider-anchor-type-switching 2024-06-20 19:01:22 +09:00
Dean Herbert
14104e57d4
Merge branch 'master' into timeline-drag-selection-crash 2024-06-20 15:16:10 +09:00
Dean Herbert
0eb533f2fd
Merge pull request #28444 from bdach/scrolling-ruleset-editor-reloads
Reload scrolling hitobject composer on control point changes
2024-06-20 15:15:26 +09:00
OliBomby
d5397a2139 fix alpha value in disabled state 2024-06-19 20:59:14 +02:00
Dean Herbert
a718af8af5
Adjust break colours to match closer to stable 2024-06-19 22:02:10 +08:00
Bartłomiej Dach
617c1341d7
Make (Manual)BreakPeriod a class again
CodeFileSanity doesn't like records and it being a record wasn't doing
much anymore anyway.
2024-06-19 14:53:09 +02:00
Dean Herbert
00443403b6
Merge branch 'master' into break-autogeneration 2024-06-19 21:49:17 +09:00
Dean Herbert
32a7885f10
Merge pull request #28523 from bdach/break-display-and-adjustment
Display breaks on editor timeline & allow manually adjusting their duration
2024-06-19 21:48:54 +09:00
Dean Herbert
00a866b699
Change colour to match bottom timeline (and adjust tween sligthly) 2024-06-19 20:30:43 +08:00
Bartłomiej Dach
8757e08c2c
Fix test failures due to automatic break generation kicking in 2024-06-19 11:32:08 +02:00
Bartłomiej Dach
2d9c3fbed2
Remove no-longer-necessary null propagation 2024-06-19 11:21:57 +02:00
Bartłomiej Dach
7311a7ffd7
Purge manual breaks if they intersect with an actual hitobject 2024-06-19 10:51:37 +02:00
Bartłomiej Dach
7ed587b783
Fix summary timeline not reloading properly on break addition/removal 2024-06-19 10:26:01 +02:00
Bartłomiej Dach
58701b17f8
Add patcher support for breaks 2024-06-19 10:22:14 +02:00