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

14798 Commits

Author SHA1 Message Date
Dean Herbert
212be6b9a7
Merge branch 'master' into grids-1 2024-06-05 15:20:04 +09:00
Bartłomiej Dach
ecfcf7a2c0
Add xmldoc mention about performance overhead of PerformOnSelection() 2024-06-04 10:36:30 +02:00
Bartłomiej Dach
f13ca28d5e
Fix performance overhead from ternary state bindable callbacks when selection is changing
Closes https://github.com/ppy/osu/issues/28369.

The reporter of the issue was incorrect; it's not the beat snap grid
that is causing the problem, it's something far stupider than that.

When the current selection changes,
`EditorSelectionHandler.UpdateTernaryStates()` is supposed to update the
state of ternary bindables to reflect the reality of the current
selection. This in turn will fire bindable change callbacks for said
ternary toggles, which heavily use `EditorBeatmap.PerformOnSelection()`.

The thing about that method is that it will attempt to check whether any
changes were actually made to avoid producing empty undo states, *but*
to do this, it must *serialise out the entire beatmap to a stream* and
then *binary equality check that* to determine whether any changes were
actually made:

	7b14c77e43/osu.Game/Screens/Edit/EditorChangeHandler.cs (L65-L69)

As goes without saying, this is very expensive and unnecessary, which
leads to stuff like keeping a selection box active while a taiko beatmap
is playing under it dog slow. So to attempt to mitigate that, add
precondition checks to every single ternary callback of this sort to
avoid this serialisation overhead.

And yes, those precondition checks use linq, and that is *still* faster
than not having them.
2024-06-04 10:32:12 +02:00
Bartłomiej Dach
4fcb902341
Merge branch 'master' into grids-1 2024-06-03 12:33:51 +02:00
Dean Herbert
96514132c1
Fix occasional test failures on new menu content tests
Scheduled data transfer could still overwrite test data.
2024-06-03 12:24:56 +09:00
Bartłomiej Dach
69990c35cb
Add commentary on presence of IsPresent override 2024-05-31 08:47:19 +02:00
Dean Herbert
53b7c29488
Add test coverage of menu banner link opening 2024-05-31 03:15:26 +09:00
Bartłomiej Dach
50bd0897f6
Fix main menu button backgrounds not covering their entire width sometimes
I thought I had fixed this already once but it still looks broken.
Basically when hovering over main menu buttons every now and then it
will look like their backgrounds are not covering their entire width
when they expand.

The removed X position set looks wrong to me when inspecting the draw
visualiser with the element because the element looks to be off centre
horizontally, and removing it fixes that.
2024-05-30 10:38:22 +02:00
Bartłomiej Dach
7b7e439d03
Merge branch 'master' into scale-tool 2024-05-29 10:15:48 +02:00
Bartłomiej Dach
4c881b5633
Use better name if we're renaming 2024-05-29 09:40:29 +02:00
OliBomby
d143a697d2 refactor CanScaleFromPlayfieldOrigin and GetClampedScale to derived class 2024-05-28 17:12:16 +02:00
OliBomby
8eb23f8a60 remove redundant CanScaleFromSelectionOrigin 2024-05-28 16:19:57 +02:00
OliBomby
a89ba33b47 rename CanScaleSelectionOrigin/PlayfieldOrigin to make clear its not the origin being scaled 2024-05-28 16:14:16 +02:00
Dean Herbert
8c4931eeec
Merge branch 'master' into footer-v2-transitions 2024-05-28 18:49:39 +09:00
Dean Herbert
4408039b3e
Merge branch 'master' into footer-v2-back-button 2024-05-28 15:50:34 +09:00
Bartłomiej Dach
405c72c0d6
Fix mod display not being aligned with mapper text 2024-05-27 13:36:44 +02:00
Dean Herbert
75d961e6f2
Pass the same thing in twice for better maybe 2024-05-27 20:30:01 +09:00
Dean Herbert
d976224912
Standardise padding on both sides of difficulty icon 2024-05-27 19:59:25 +09:00
Bartłomiej Dach
1e2cac3e92
Remove unused using directive 2024-05-27 11:44:55 +02:00
Dean Herbert
740a3377fa
Merge branch 'master' into LeaderBoardScore_clean 2024-05-27 17:18:41 +09:00
Dean Herbert
b6471f0b9c
Allow previewing audio of playlist items 2024-05-27 17:09:37 +09:00
Bartłomiej Dach
bdfce4b9da
Fix xmldoc reference 2024-05-27 08:26:00 +02:00
Dean Herbert
11c3d11db9
Fix cinema mod not hiding playfield skin layer 2024-05-27 14:52:28 +09:00
Joseph Madamba
8e14c24ee3 Follow slanted flow logic precedent in test
See `ModSelectOverlay` components.
2024-05-26 00:24:03 -07:00
OliBomby
37530eebcc Enable scale buttons at the correct times 2024-05-25 20:35:06 +02:00
OliBomby
4eeebdf60c calculate max scale bounds for scale slider 2024-05-25 20:17:27 +02:00
Salman Ahmed
2c18c10ac8 Move to SelectV2 namespace 2024-05-25 17:20:10 +03:00
OliBomby
497701950d fix nitpick 2024-05-24 18:11:28 +02:00
Dean Herbert
2134ff7a1b
Merge pull request #28071 from Fabiano1337/lazer-speedkeys
Make ctrl-up/down change speed modifier of mods
2024-05-24 23:20:04 +09:00
Bartłomiej Dach
9f19ab092d
Merge branch 'master' into grids-1 2024-05-24 14:39:55 +02:00
Bartłomiej Dach
c800bb5339
Merge branch 'master' into lazer-speedkeys 2024-05-24 13:19:26 +02:00
Bartłomiej Dach
b1b207960a
Actually use return value 2024-05-24 13:09:44 +02:00
Bartłomiej Dach
63406b6feb
Rewrite implementation 2024-05-24 13:03:42 +02:00
Bartłomiej Dach
7255cc3344
Fix tests dying on a nullref 2024-05-24 11:25:29 +02:00
Bartłomiej Dach
807d982a72
Move workaround to subscreen 2024-05-24 10:35:33 +02:00
Bartłomiej Dach
a80dbba9d0
Update to not use obsoleted method 2024-05-24 10:35:31 +02:00
Bartłomiej Dach
4089071299
Merge branch 'master' into fix-editor-didnt-save 2024-05-24 10:16:46 +02:00
Bartłomiej Dach
8a2dd4d816
Merge branch 'master' into scaling 2024-05-23 15:10:40 +02:00
Bartłomiej Dach
128029e2af
Fix aspect ratio lock applying when shift pressed on a non-corner anchor
It doesn't make sense and it wasn't doing the right thing.
2024-05-23 15:08:43 +02:00
Bartłomiej Dach
9e86a08405
Simplify scale origin computation 2024-05-23 14:07:43 +02:00
Bartłomiej Dach
070668c96f
Use ShiftPressed instead of explicitly checking both physical keys
Not only is this simpler, but it also is more correct (for explanation
why, try holding both shift keys while dragging, and just releasing one
of them - the previous code would briefly turn aspect ratio off).
2024-05-23 13:57:34 +02:00
Bartłomiej Dach
bfa23ec7a4
Fix main menu button animation not playing on initial show 2024-05-23 11:46:48 +02:00
Dean Herbert
357e55ae1f
Make gradient layer a bit more dynamic 2024-05-23 17:39:59 +08:00
Dean Herbert
a3639e0ce3
Remove unused field 2024-05-23 17:19:11 +08:00
Dean Herbert
88a2f74326
Adjust animation 2024-05-23 16:00:23 +08:00
Dean Herbert
f85a1339d9
Unload daily challenge background less aggressively 2024-05-23 14:23:02 +08:00
Dean Herbert
6c37560842
Merge branch 'master' into daily-challenge-mvp 2024-05-23 10:57:05 +08:00
Dean Herbert
66ceda1d67
Update focus specifications in line with framework changes 2024-05-22 21:32:49 +08:00
Fabian van Oeffelt
0df634574f Improve readability 2024-05-22 13:59:33 +02:00
Dean Herbert
d0b1ebff5a
Revert "Temporary rollback of framework / SDL3"
This reverts commit d7d569cf4e.
2024-05-22 16:29:39 +08:00
Dean Herbert
1fdebe94ac
Merge branch 'master' into lazer-speedkeys 2024-05-22 12:05:04 +08:00
Dean Herbert
02a388cba6
Fix enum not being at end (and adjust naming) 2024-05-22 12:03:48 +08:00
Dean Herbert
99d99cede0
Basic cleanup
Before I gave up on attempting to fix the method.
2024-05-22 11:59:34 +08:00
Fabian van Oeffelt
3403789c6f Toast now only shows when speed is actually changed 2024-05-21 16:11:20 +02:00
Fabian van Oeffelt
148afd1201 Change Speedchange behaviour to keep changing while holding key, Add Toast to nofity user what just happend 2024-05-21 14:47:34 +02:00
Dean Herbert
d7d569cf4e
Temporary rollback of framework / SDL3 2024-05-21 14:36:16 +08:00
Fabian van Oeffelt
3fdbd735ce change to single Function,
Nightcore now switches into Daycore, keep Adjustpitch after change
2024-05-18 18:40:51 +02:00
Salman Ahmed
0a391d5c4e Remove duplicate back button class 2024-05-18 08:39:45 +03:00
Bartłomiej Dach
c9b7aaf442
Fix formatting 2024-05-17 11:50:23 +02:00
Bartłomiej Dach
a4f8ed2a0e
Add button to access daily challenge playlist from main menu 2024-05-17 11:15:52 +02:00
Salman Ahmed
8b285f5b1e Add dummy SongSelectV2 screen to house new footer buttons (and new components going forward) 2024-05-16 07:48:58 +03:00
Salman Ahmed
2b5818a4d7 Fix DI crash in beatmap options popover 2024-05-16 07:48:58 +03:00
Salman Ahmed
03220598b8 Move screen footer to OsuGame 2024-05-16 07:48:58 +03:00
Salman Ahmed
921be3ca01 Add back receptor, logo tracking, and own colour provider to screen footer 2024-05-16 07:48:58 +03:00
Salman Ahmed
d0e8632fbf Refactor ScreenFooter to prepare for global usage and add transitions 2024-05-16 07:48:10 +03:00
Salman Ahmed
a2794922d5 Add TopLevelContent layer for applying external transforms on footer buttons 2024-05-16 07:48:10 +03:00
Salman Ahmed
820cfbcb00 Remove unused using directives 2024-05-16 07:47:57 +03:00
Salman Ahmed
310b4d90cc Move SHEAR constant to OsuGame and revert back to 0.2x (i.e. master)
Discussed in [discord](https://discord.com/channels/188630481301012481/188630652340404224/1240490608934653984).
2024-05-16 07:28:02 +03:00
Salman Ahmed
9265290acf Change shear factor everywhere to 0.15x 2024-05-16 05:33:01 +03:00
Salman Ahmed
7fce4cc494 Make ScreenFooterButtonMods share shear factor with base class 2024-05-16 05:30:28 +03:00
Salman Ahmed
9446f45acf Fix shear factor of ScreenFooterButtons not matching anything else
When shear factors differ between components that are close to each other (`BackButtonV2` and `ScreenFooterButton` in this case), they look completely ugly.
2024-05-16 05:30:28 +03:00
Salman Ahmed
7e8d5a5b0a Add new footer back button 2024-05-16 05:30:28 +03:00
Salman Ahmed
21f5d891bb Rename and move footer classes to appropriate places 2024-05-16 04:41:16 +03:00
OliBomby
c4ac6d20a0 fix code quality 2024-05-15 23:40:51 +02:00
OliBomby
8df5f22b4e Merge remote-tracking branch 'upstream/master' into scaling 2024-05-15 23:05:19 +02:00
Dean Herbert
cff865b556
Continue loading even when osu! logo is being dragged at loading screen
Closes https://github.com/ppy/osu/issues/28130.
2024-05-14 23:54:07 +08:00
Bartłomiej Dach
ee9144c3bd
Apply NRT to results statistics displays 2024-05-14 15:21:12 +02:00
Bartłomiej Dach
414f023817
Apply NRT to RankText 2024-05-14 15:21:05 +02:00
Bartłomiej Dach
b937b94bd2
Apply NRT to RankBadge 2024-05-14 15:20:56 +02:00
Bartłomiej Dach
ced1c79490
Apply NRT to AccuracyCircle 2024-05-14 15:20:47 +02:00
Bartłomiej Dach
e7721b073c
Apply NRT to ContractedPanelTopContent 2024-05-14 15:20:36 +02:00
Bartłomiej Dach
8e16b57d09
Apply NRT to SimpleStatisticTable 2024-05-14 15:20:26 +02:00
Bartłomiej Dach
237ae8b46a
Apply NRT to SimpleStatisticsItem 2024-05-14 15:20:17 +02:00
Bartłomiej Dach
2f2257f6ce
Apply NRT to PerformanceBreakdownChart 2024-05-14 15:20:07 +02:00
Bartłomiej Dach
77a7f475ee
Apply NRT to ScorePanel 2024-05-14 15:19:58 +02:00
Bartłomiej Dach
10a8e84046
Apply NRT to StatisticsPanel 2024-05-14 15:19:46 +02:00
Bartłomiej Dach
cb49147d1e
Apply NRT to ScorePanelList 2024-05-14 15:19:43 +02:00
Dean Herbert
5a362be190
Merge branch 'master' into glow 2024-05-12 12:58:57 +08:00
Salman Ahmed
fa6ccc854d Revert behavioural changes on options button 2024-05-12 05:24:45 +03:00
Thomas Mok
5e8f6df799
Add glow to footerV2 buttons 2024-05-12 01:55:18 +01:00
Dean Herbert
69d699a218
Merge branch 'master' into footer-v2-button-animation 2024-05-11 21:41:50 +08:00
Dean Herbert
6cfe1356cd
Merge pull request #28141 from frenzibyte/footer-v2-mods-display
Add mod display and unranked indicator to new song select footer
2024-05-11 21:41:25 +08:00
Dean Herbert
a988bbd3cb
Tidy up UnrankedBadge implementation 2024-05-11 20:58:51 +08:00
Dean Herbert
ac7598cb68
Move localisation to existing file to avoid silly new class 2024-05-11 20:25:47 +08:00
Salman Ahmed
da096376af Fix DI error in mod tooltip 2024-05-11 09:31:36 +03:00
Salman Ahmed
f64cf5c037 Fix button extending beyond unranked indicator width 2024-05-11 09:29:09 +03:00
Salman Ahmed
09c52f03d8 Fix "options" button behaving weirdly when clicking on it while open 2024-05-10 08:25:16 +03:00
Salman Ahmed
b6d6a8940b Improve animation of new song select footer buttons 2024-05-10 08:24:39 +03:00
Salman Ahmed
0392f7b04c Add tooltip to unranked indicator 2024-05-10 07:37:08 +03:00
Salman Ahmed
f5ab9a7ff8 Make unranked indicator orange to match mod select overlay 2024-05-10 07:12:28 +03:00
Salman Ahmed
e5b2023155 Remove unappealing fade transition between mod display and count text
Fading out the mod display looks quite ugly, since alpha is applied per mod sprite, introducing bad visual on the intersection between mods.
2024-05-10 07:05:36 +03:00
Salman Ahmed
6ddf8f8498 Few cleanups 2024-05-10 06:55:02 +03:00
Salman Ahmed
c1ea9d2c9f Adjust unranked badge height 2024-05-10 06:48:18 +03:00
Salman Ahmed
bff34a1c04 Add localisation and tooltip for mods count text 2024-05-10 06:48:18 +03:00
Salman Ahmed
49692e168e Fix ModDisplay expanding on load with "always contracted/expanded" modes
This is especially visible when reloading `SongSelectFooterV2` while multiple mods are already selected. The mods will appear expanded then contract.
2024-05-10 06:48:18 +03:00
Salman Ahmed
6b91b4abf4 Add simple implementation for extended mods display in new footer design 2024-05-10 02:20:48 +03:00
Dan Balasescu
3b8b56cbcb
Apply required changes after framework masking updates 2024-05-09 20:18:53 +09:00
Dean Herbert
0ddd3cbdc5
Randomise which menu content is shown on arriving at the menu 2024-05-07 17:02:25 +08:00
Joseph Madamba
1665c5e0e1 Use existing AutomaticallyDownloadMissingBeatmaps localisation on solo spectator screen 2024-05-05 14:41:48 -07:00
Bartłomiej Dach
221b4cd599
Remove unused cache 2024-05-03 11:37:09 +02:00
Dean Herbert
42e49067e5
Move Room.Status updates to a common location 2024-05-03 17:10:59 +08:00
Fabian van Oeffelt
4b5ea6bd0b Fix Code Inspection 2024-05-02 19:41:00 +02:00
Fabian van Oeffelt
fa0b6311b0
Merge branch 'master' into osu-lazer-speedkeys 2024-05-02 19:17:15 +02:00
Fabian van Oeffelt
7527ddbc68 Comment, make code more readable, functions are now private 2024-05-02 19:05:43 +02:00
Fabian van Oeffelt
f534c4aada Initial implementation 2024-05-02 18:42:35 +02:00
Dean Herbert
f9ef689492
Don't hide playfield layer with HUD 2024-05-02 15:36:40 +08:00
Salman Ahmed
16bae4f004 Update naming of enum fields in StartMode 2024-05-01 17:22:42 +03:00
Bartłomiej Dach
fe9e6168fe
Merge pull request #28050 from peppy/delay-resume-visibility
Tweak resume overlay to allow better visibility of hit objects underneath
2024-05-01 15:49:31 +02:00
Bartłomiej Dach
72b59c01f7
Merge branch 'master' into preserve-storyboard 2024-05-01 15:21:45 +02:00
Dean Herbert
b8209b92f6
Add delay before delayed resume starts
It was previously a bit sudden after dismissing the pause screen. Now
there's a short delay before the actual countdown begins.
2024-05-01 20:30:48 +08:00
Dean Herbert
87e814e201
Fix incorrect xmldoc and adjust colour provider to match Player 2024-05-01 20:30:36 +08:00
Dean Herbert
67c0d7590a
Decrease alpha of delayed resume overlay as count approaches zero
Allows better visibility of playfield underneath it.
2024-05-01 20:29:28 +08:00
Dean Herbert
ff108416d8
Fix incorrect background being loaded due to async race
If the API login (and thus user set) completed between `load` and
`LoadComplete`, the re-fetch on user change would not yet be hooked up,
causing an incorrect default background to be used instead.

Of note, moving this out of async load doesn't really affect load
performance as the bulk of the load operation is already scheduled and
`LoadComponentAsync`ed anyway
2024-05-01 00:05:14 +08:00
Dean Herbert
fd3f4a9e7b
Preserve storyboard events when saving a beatmap in the editor
Until we have full encoding support for storyboards, this stop-gap
measure ensures that storyboards don't just disappear from existence.
2024-04-30 00:01:56 +08:00
Dean Herbert
fb2d28f7e0
Fix audio being paused in a spectator session when all players finish playing 2024-04-26 15:30:26 +08:00
Dean Herbert
21d6556865
Remove managed clocks from SpectatorSyncManager on gameplay completion / abort 2024-04-26 15:29:59 +08:00
Dean Herbert
e0e790fa94
Fix a couple of xmldoc typos 2024-04-26 15:28:52 +08:00
Dan Balasescu
459f97891d
Merge pull request #27994 from bdach/timing-distribution-graph-only-basic
Do not show non-basic results in timing distribution graph
2024-04-26 01:36:16 +09:00
Dan Balasescu
52addc775e
Merge pull request #27965 from bdach/generic-math
Apply generic math-related changes
2024-04-26 01:33:54 +09:00
Dean Herbert
5ccc745235
Merge pull request #27997 from bdach/refetch-when-entering-editor
Fully refetch working beatmap when entering editor
2024-04-25 22:20:33 +08:00
Dean Herbert
387fcb8781
Add a brief inline comment to make sure we don't undo the fix 2024-04-25 21:31:36 +08:00
Dean Herbert
6a8a6fa79d
Merge pull request #27996 from bdach/delete-dirty-difficulty-droken
Fix deleting modified difficulty via editor leaving user in broken state
2024-04-25 21:20:09 +08:00
Bartłomiej Dach
c1107d2797
Fully refetch working beatmap when entering editor
Closes https://github.com/ppy/osu/issues/21794.

I'm not actually super sure as to what the exact mode of failure is
here, but it's 99% to do with working beatmap cache invalidation. Likely
this can be even considered as another case of
https://github.com/ppy/osu/issues/21357, but because this is a one-liner
"fix," I'm PRing it anyways.

The issue is confusing to understand when working with the swap scenario
given in the issue, but it's a little easier to understand when
performing the following:

1. Have a beatmap set with 2 difficulties. Let's call them "A" and "B".
2. From song select, without ever exiting to main menu, edit "A". Change
   the difficulty name to "AA". Save and exit back to song select; do
   not exit out to main menu.
3. From song select, edit "B". Change the difficulty name to "BB". Save
   and exit back to song select.
4. The difficulty names will be "A" and "BB".

Basically what I *think* is causing this, is the fact that even though
editor invalidates the working beatmap by refetching it afresh on exit,
song select is blissfully unaware of this, and continues working with
its own `BeatmapInfo` instances which have backlinks to
`BeatmapSetInfo`.

When editing the first of the two difficulties and then the second,
the editing of the first one only invalidates the first one rather than
the entire set, and the second difficulty continues to have a stale
reference to the first one via the beatmap set, and as such ends up
overwriting the changes from the first save when passed into the editor
and modified again.
2024-04-25 14:31:13 +02:00
Bartłomiej Dach
19d006d818
Fix deleting modified difficulty via editor leaving user in broken state
Closes https://github.com/ppy/osu/issues/22783.

If the difficulty being edited has unsaved changes, the editor exit flow
would prompt for save *after* the deletion method has run. This is
undesirable from a UX standpoint, and also leaves the user in a broken
state.

Thus, just fake an update of the last saved hash of the beatmap to fool
the editor into thinking that it's not dirty, so that the exit flow will
not show a save dialog.
2024-04-25 12:55:34 +02:00
Bartłomiej Dach
b250a924b1
Do not show non-basic results in timing distribution graph
Closes https://github.com/ppy/osu/issues/24274.

Bit of an ad-hoc resolution but maybe fine? This basically proposes to
bypass the problem described in the issue by just not showing tick hits
at all on the distribution graph.
2024-04-25 11:20:07 +02:00
Bartłomiej Dach
da953b34a7
Apply nullability annotations to ResultsScreen & inheritors 2024-04-25 10:58:28 +02:00
Joseph Madamba
4f7c9f2970 Remove unused using 2024-04-24 01:00:03 -07:00
Joseph Madamba
f97c519451 Add chevron to distinguish all menus with submenus 2024-04-24 00:19:10 -07:00
Dean Herbert
221af74f95
Merge branch 'master' into generic-math 2024-04-23 22:21:31 +08:00
Dean Herbert
436203a8c1
Add a chevron to distinguish editor menus with submenus 2024-04-23 21:37:01 +08:00
Dean Herbert
804b1b0d88
Fix settings colour scheme wrong when viewing gameplay from skin editor button
Closes https://github.com/ppy/osu/issues/27949.
2024-04-23 20:54:48 +08:00
Bartłomiej Dach
12acdeebf1
Merge pull request #27866 from Joehuu/fix-online-score-export
Fix replay export not working correctly from online leaderboards
2024-04-23 09:08:04 +02:00
Joseph Madamba
49154c0e23 Fix code quality 2024-04-22 11:23:38 -07:00
Bartłomiej Dach
09b0f3005e
Apply generic math-related changes 2024-04-22 10:15:56 +02:00
Dan Balasescu
89a4a6878f
Merge pull request #27922 from peppy/quick-exit-from-results
Add ability to quick exit from results screen
2024-04-22 16:01:13 +09:00
Andrei Zavatski
1d3fd65d86 Adjust execution order 2024-04-22 07:02:49 +03:00
Andrei Zavatski
722fa228ce Don't consider editor table content for input 2024-04-21 17:40:35 +03:00
Dean Herbert
4cffc39dff
Don't require hold for quick exit at results screen 2024-04-20 04:53:31 +08:00
Dean Herbert
f92833b588
Add ability to quick exit from results screen 2024-04-18 12:02:49 +08:00
Salman Ahmed
9e69268676 Change editor screen selection logic to use SelectItem for sound feedback 2024-04-17 11:20:17 +03:00