Dean Herbert
9db8e0b7ac
Merge branch 'master' into friend-notification-samples
2025-01-29 17:43:56 +09:00
Dean Herbert
bf40f071eb
Code quality pass
2025-01-29 17:43:49 +09:00
Dean Herbert
4c83ef83ee
Update resources
2025-01-29 17:34:03 +09:00
Dean Herbert
fd1d90cbd9
Update framework
...
Update framework
2025-01-29 17:32:05 +09:00
Dean Herbert
d8ec3b77e4
Fix incremental unstable rate calculation not matching expectations
...
The `EventCount` variable wasn't factoring in that some results do not
affect unstable rate. It would therefore become more incorrect as the
play continued.
Closes https://github.com/ppy/osu/issues/31712 .
2025-01-29 17:11:12 +09:00
Dean Herbert
a3685da250
Merge branch 'master' into enable-sentry-caching
2025-01-29 11:55:23 +09:00
Bartłomiej Dach
b84a9f7820
Merge pull request #31711 from peppy/change-friend-notification-icons
...
Change friend online notifications' icon and colours
2025-01-28 15:38:27 +01:00
Dean Herbert
a3a08832b4
Add keywords to make lighten-during-breaks setting discoverable to stable users
...
See https://github.com/ppy/osu/discussions/31671 .
2025-01-28 21:31:51 +09:00
Dean Herbert
017d38af3d
Change friend online notifications' icon and colours
...
The previous choices made it seem like potentially destructive actions
were being performed. I've gone with neutral colours and more suiting
icons to attempt to avoid this.
---
Addresses concerns in
https://github.com/ppy/osu/discussions/31621#discussioncomment-11948377 .
I chose this design even though it wasn't the #1 most popular because I
personally feel that using green/red doesn't work great for these.
2025-01-28 21:29:17 +09:00
Dean Herbert
6d39ee2918
Merge pull request #31696 from bdach/do-not-bundle-explicit-beatmaps
...
Do not bundle explicit beatmaps
2025-01-28 20:39:21 +09:00
Dan Balasescu
a863230983
Merge pull request #31697 from bdach/corrupt-mp3s-should-not-crash-game
...
Catch and display user-friendly errors regarding corrupted audio files
2025-01-28 14:00:01 +09:00
Bartłomiej Dach
bb8f58f6d6
Work around rare sharpcompress failure to extract certain archives
...
Closes https://github.com/ppy/osu/issues/31667 .
See https://github.com/ppy/osu/issues/31667#issuecomment-2615483900 for
explanation.
For whatever it's worth, I see rejecting this change and telling
upstream to fix it as an equally agreeable outcome, but after I spent an
hour+ tracking this down, writing this diff was nothing in comparison.
2025-01-27 12:28:53 +01:00
Dan Balasescu
fc73037d9f
Add pill displaying current freestyle status
2025-01-27 18:46:45 +09:00
Dan Balasescu
ca979d3542
Adjust xmldocs
2025-01-27 18:32:12 +09:00
Bartłomiej Dach
be9c96c041
Fix infinite loop when switching audio tracks fails on an existing beatmap
...
Bit ugly, but appears to work in practice...
2025-01-27 10:27:06 +01:00
Bartłomiej Dach
01ae1a58f1
Catch and display user-friendly errors regarding corrupted audio files
...
Addresses lack of user feedback as indicated by
https://github.com/ppy/osu/issues/31693 .
2025-01-27 10:25:22 +01:00
Bartłomiej Dach
e24af4b341
Add inline comments for sets that are not marked FA but should be
2025-01-27 09:40:53 +01:00
Bartłomiej Dach
836a9e5c25
Remove explicit beatmap set from list of bundled beatmap sets
2025-01-27 09:40:20 +01:00
Salman Alshamrani
4d7b071027
Specifiy second-factor authentication code text box with Code
type
2025-01-25 23:58:56 -05:00
Salman Alshamrani
c18128e974
Remove OrientationManager
and the entire mobile namespace
2025-01-25 20:01:18 -05:00
Salman Alshamrani
bb7daae080
Simplify orientation locking code magnificently
2025-01-25 19:12:43 -05:00
Salman Alshamrani
ffc37cece0
Avoid extra unnecessary DI
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2025-01-25 19:12:42 -05:00
Salman Alshamrani
dac7d21302
Be explicit on nullability in RequiresPortraitOrientation
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2025-01-25 19:12:36 -05:00
Jamie Taylor
79df094f17
Add unique samples for friend online/offline notifications
2025-01-24 23:20:04 +09:00
Bartłomiej Dach
092c7b4253
Merge branch 'master' into beatmap-carousel-v2-split-panels
2025-01-24 15:16:23 +01:00
Bartłomiej Dach
55ab3c72f6
Remove unused field
2025-01-24 15:15:50 +01:00
Dean Herbert
82c5f37c2c
Remove selection animation on set panel
2025-01-24 22:45:08 +09:00
Bartłomiej Dach
7845c5cfb7
Merge pull request #31645 from peppy/offset-adjust-more-lenience
...
Make offset adjust more lenient
2025-01-24 14:01:25 +01:00
Bartłomiej Dach
daec91f61d
Refactor further to avoid weird non-virtual common method
2025-01-24 13:14:31 +01:00
Dean Herbert
a94681158d
Merge pull request #31623 from Layendan/room-context-menu
...
Add view in browser context menu functionality to multiplayer/playlist rooms
2025-01-24 20:31:49 +09:00
Dean Herbert
da762384f8
Fix breakage from reordering co-reliant variable sets (and guard against it)
2025-01-24 20:20:18 +09:00
Dean Herbert
175eb82ccf
Split out beatmaps and set panels into two separate classes
2025-01-24 20:10:41 +09:00
Dean Herbert
0164a2e4dc
Move pool item preparation / cleanup duties to Carousel
2025-01-24 20:10:41 +09:00
Bartłomiej Dach
269ade178e
Fix tests
2025-01-24 11:59:07 +01:00
Bartłomiej Dach
32d341a468
Remove IPositionSnapProvider
2025-01-24 11:59:07 +01:00
Bartłomiej Dach
a6987f5c95
Remove dependence of placement blueprints on IPositionSnapProvider
2025-01-24 11:59:07 +01:00
Bartłomiej Dach
15b6e28ebe
Remove dependence of blueprint containers on IPositionSnapProvider
2025-01-24 11:59:05 +01:00
Bartłomiej Dach
2d46da1520
Merge pull request #31634 from peppy/beatmap-carousel-v2-selection
...
Add selection support to beatmap carousel v2
2025-01-24 11:43:17 +01:00
Dean Herbert
9366bfbf0d
Move activation drawable flow portion to ICarouselPanel
2025-01-24 18:40:48 +09:00
Dean Herbert
92429b2ed9
Adjust comments on ICarouselPanel
to imply external use
2025-01-24 18:34:04 +09:00
Dean Herbert
17b1739ae4
Combine countless update methods all called together into a single method
2025-01-24 18:00:05 +09:00
Dean Herbert
1bfb4d4c2b
Merge branch 'master' into multiplayer-free-style
2025-01-24 17:23:35 +09:00
Dean Herbert
721b2dfbba
Fix average button not correctly becoming disabled where it previously would
2025-01-24 17:17:34 +09:00
Dean Herbert
56a611b47e
Merge branch 'master' into mobile-fix-mania
2025-01-24 17:03:00 +09:00
Dean Herbert
28a59f4e29
Move line to correct location
2025-01-24 16:45:14 +09:00
Dean Herbert
05b1002e9d
Adjust layout and code quality slightly
2025-01-24 15:57:13 +09:00
Dean Herbert
8f8a6455b4
Bypass offset disallowed status when handling realm callbacks
...
Hopefully don't need to overthink this one.
2025-01-24 15:49:47 +09:00
Dean Herbert
ee78e1b223
Add safeties against attempting to apply previous play while offset adjust is not allowed
...
This should theoretically not be possible, but while we are sharing this
control's implementation between gameplay and non-gameplay usages, let's
ensure nothing weird can occur.
2025-01-24 15:49:47 +09:00
Dean Herbert
fb10996951
Consume GameplayStartTime
for more lenient offset adjustments
2025-01-24 15:30:02 +09:00
Dean Herbert
5cc8181bad
Expose GameplayStartTime
in IGameplayClock
2025-01-24 15:29:49 +09:00
Layendan
d326f23576
Remove unused method
2025-01-23 15:39:18 -07:00
Layendan
b0a7237fd6
Fix formatting
2025-01-23 15:37:30 -07:00
Layendan
13c64b59af
Inherit menu items from parent class
2025-01-23 15:36:20 -07:00
Dean Herbert
f4270ab3b9
Simplify selection handling logic
2025-01-23 23:58:51 +09:00
Dean Herbert
d5369d3508
Add regions to BeatmapCarousel
2025-01-23 23:53:09 +09:00
Dean Herbert
0716b73d2a
ActivateSelection
-> TryActivateSelection
2025-01-23 22:44:39 +09:00
Dean Herbert
2feab31426
Adjust inline commentary based on review feedback
2025-01-23 22:41:20 +09:00
Dean Herbert
ffca90779f
Fix sort direction being flipped
2025-01-23 18:51:24 +09:00
Dean Herbert
2f94456a06
Add selection and activation flow
2025-01-23 18:51:24 +09:00
Dean Herbert
ecef5e5d71
Add set-difficulty tracking in BeatmapCarouselFilterGrouping
...
Rather than tracking inside individual items, let's just maintain a
single dictionary which is refreshed every time we regenerate filters.
2025-01-23 18:48:44 +09:00
Dean Herbert
980f6cf18e
Make CarouselItem
sealed
and remove BeatmapCarouselItem
concept
...
Less abstraction is better. As far as I can tell, we don't need a custom
model for this. If there's any tracking to be done, it should be done
within `BeatmapCarousel`'s implementation (or a filter).
2025-01-23 18:48:44 +09:00
Dean Herbert
c67c0a7fc0
Move Selected
status to drawables
...
Basically, I don't want bindables in `CarouselItem`. It means there
needs to be a bind-unbind process on pooling. By moving these to the
drawable and just updating every frame, we can simplify things a lot.
2025-01-23 18:48:43 +09:00
Dean Herbert
ded1d9f019
displayedCarouselItems
-> carouselItems
2025-01-23 15:58:35 +09:00
Dean Herbert
d526835627
Only show loading when doing a user triggered filter
2025-01-23 15:51:54 +09:00
Dean Herbert
6ac2dbc818
Reorder carousel methods into logical regions
2025-01-23 15:50:57 +09:00
Layendan
f673d16a1f
Fix formatting
2025-01-22 11:42:11 -07:00
Dean Herbert
bf23c67603
Merge pull request #31509 from bdach/local-metadata-cache-corruption
...
Refetch local metadata cache if corruption is detected
2025-01-23 02:43:14 +09:00
Dan Balasescu
11e84f325c
Merge pull request #31616 from bdach/fix-new-combo-button-crash
...
Fix crash from new combo colour selector when there are no combo colours present
2025-01-22 20:48:02 +09:00
Bartłomiej Dach
3da220b8f6
Fix crash from new combo colour selector when there are no combo colours present
...
Closes https://github.com/ppy/osu/issues/31615 .
2025-01-22 11:39:32 +01:00
Dean Herbert
218720bca5
Merge pull request #31588 from minetoblend/feature/paste-snapped
...
Snap to beat divisor when pasting hitobjects in editor
2025-01-22 18:38:12 +09:00
Dean Herbert
6ceb348cf6
Adjust code again to avoid weird throw
mishandling
2025-01-22 18:24:01 +09:00
Dan Balasescu
63e6b0e050
Merge pull request #31603 from peppy/input-amendments
...
Tidy up various input handling anomalies
2025-01-22 18:05:06 +09:00
Bartłomiej Dach
2623d8dcac
Merge pull request #31604 from peppy/fix-song-select-right-click-handling
...
Fix song select right click handling
2025-01-22 10:00:03 +01:00
Dean Herbert
26ef23c9a9
Remove outdated ef related catch-when usage
2025-01-22 17:04:30 +09:00
Dean Herbert
910c0022e3
Adjust code style slightly
2025-01-22 17:03:01 +09:00
Dean Herbert
9e023340b0
Mark friend notifications as non-important
2025-01-22 16:41:27 +09:00
Dean Herbert
4cf4b8c73d
Switch IsImportant
to init
property isntead of virtual
2025-01-22 16:41:26 +09:00
Dean Herbert
fde2b22bbc
Add transient flag for notifications which shouldn't linger in history
2025-01-22 16:41:26 +09:00
Layendan
2a5a2738e1
Add context menu to open in browser to rooms
2025-01-21 12:45:23 -07:00
Dean Herbert
459847cb80
Perform client side validation that the selected beatmap and ruleset have valid online IDs
...
This is local to playlists, since in multiplayer the validation is
already provided by `osu-server-spectator`.
2025-01-21 19:51:55 +09:00
Dan Balasescu
8f8246278a
Merge pull request #31527 from bdach/spectator-list-ready
...
Show spectating users during gameplay
2025-01-21 18:54:11 +09:00
Dean Herbert
f88102610d
Add tooltips explaining multiplayer mod selection buttons
2025-01-21 18:35:59 +09:00
Bartłomiej Dach
0265a29000
Move bindings to LoadComplete()
2025-01-21 10:02:16 +01:00
Dean Herbert
c68a0bc7e3
Merge branch 'master' into multiplayer-free-style
2025-01-21 17:49:21 +09:00
Dean Herbert
704c2ea0cc
Merge pull request #31026 from frenzibyte/ios-system-file-import
...
Add special handling for file import button on iOS
2025-01-21 17:33:03 +09:00
Dean Herbert
6c27e87714
Add back explicit right click handling of carousel absolute scrolling
2025-01-21 17:24:42 +09:00
Dean Herbert
66be9f2d1b
Remove right click default for absolute scroll
2025-01-21 17:24:41 +09:00
Dean Herbert
b6e7b43b11
Remove unnecessary input blocking
...
This was already done by `OverlayContainer`.
2025-01-21 16:40:36 +09:00
Dean Herbert
aeca91cde2
Fix main menu osu logo being activated by function keys and escape
2025-01-21 16:40:21 +09:00
Dean Herbert
9a12f48dcc
Fix ComposeBlueprintContainer
handling nudge keys when it can't nudge
2025-01-21 16:40:16 +09:00
Dean Herbert
3a37817ab2
Don't block Popover
escape handling (just let it work in addition to GlobalAction.Back
)
2025-01-21 16:39:45 +09:00
Salman Alshamrani
3f51626f07
Simplify code immensely
...
Co-authored-by: Dean Herbert <pe@ppy.sh>
2025-01-21 02:20:51 -05:00
Dean Herbert
0a97fb6359
Merge pull request #31586 from minetoblend/feature/metronome-decimals
...
Display up to 2 decimal places for bpm in timing screen metronome
2025-01-21 16:13:10 +09:00
Dean Herbert
a7c9f84a93
Adjust visuals slightly
2025-01-21 15:14:39 +09:00
Salman Alshamrani
f133042936
Fix silly mistake
2025-01-21 01:14:18 -05:00
Dean Herbert
748e631976
Merge branch 'master' into ios-system-file-import
2025-01-21 14:22:56 +09:00
Dean Herbert
46ff9d1aad
Fix beat snap grid being lines not being corectly centered to time
...
This was pointed out as an issue in the osu!taiko editor, but actually
affects all rulesets. Has now been fixed everywhere.
---
Closes https://github.com/ppy/osu/issues/31548 .
osu!mania could arguable be consdiered "more correct" with the old
display, but I don't think it's a huge deal either way (subjective at
best).
2025-01-21 14:20:56 +09:00
Dean Herbert
6b524aba60
Enable sentry caching to avoid sentry writing outside of game directory
...
See https://github.com/ppy/osu/discussions/31412 . Probably safe enough.
2025-01-20 23:45:39 +09:00
Rudi Herouard
89586d5ab2
Fix settings in replay hiding when dragging a slider
2025-01-20 13:43:45 +01:00
Dean Herbert
c20b836d9c
Merge pull request #31543 from bdach/daily-challenge-completion-marker
...
Add completion marker to daily challenge profile counter
2025-01-20 19:29:35 +09:00
Dean Herbert
cf032e5e7f
Merge pull request #31547 from bdach/editor/precise-move
...
Add precise movement tool to osu! editor
2025-01-20 19:29:22 +09:00
Salman Alshamrani
2b5ea4e6e0
Fix recent editor textbox regressions
2025-01-20 03:17:01 -05:00
Dean Herbert
dcdb8d13a9
Always select text when an editor slider-textbox is focused
2025-01-20 16:17:39 +09:00
Dean Herbert
7fd4adc7ec
Merge pull request #31583 from turbedi/cleanup
...
Remove redundant ToArray() calls in Osu/ManiaHitObjectComposer
2025-01-20 15:48:46 +09:00
Dean Herbert
04ba686be5
Add basic animation
2025-01-20 15:47:47 +09:00
Dean Herbert
c4509bbe12
Merge pull request #31539 from Rudicito/seek-in-replay-scaled-by-replay-speed
...
Seek in replay scaled by replay speed
2025-01-20 15:15:50 +09:00
Dean Herbert
525e16ad1d
Fix one more new inspection in EAP 2025
2025-01-20 15:00:35 +09:00
Marvin Schürz
e386c9e373
Apply snapping when pasting hitobjects
2025-01-20 01:25:22 +01:00
Marvin Schürz
8f33b4cc61
Add comment
2025-01-20 01:14:21 +01:00
Marvin Schürz
3532ce1636
Olibomby insisted on it being like this so i concede
2025-01-20 01:07:13 +01:00
Marvin Schürz
a6ca9ba9fb
Display up to 2 decimal places in MetronomeDisplay
2025-01-20 00:51:43 +01:00
CloneWith
72e1b2954c
Don't highlight friends' scores under beatmap's friend score leaderboard
2025-01-20 00:21:10 +08:00
Dean Herbert
e753e3ee2f
Update framework (except android)
2025-01-18 00:40:32 +09:00
Bartłomiej Dach
ebca2e4b4f
Implement precise movement tool
...
As mentioned in one of the points in
https://github.com/ppy/osu/discussions/31263 .
2025-01-17 14:28:57 +01:00
Bartłomiej Dach
b79e937d2d
Fix code quality
2025-01-17 13:34:16 +01:00
Bartłomiej Dach
3c4bfc0a01
Merge spectator list classes into one skinnable
2025-01-17 11:23:14 +01:00
Bartłomiej Dach
a67a68c596
Remove unnecessary masking spec
...
It was clipping the daily challenge completion checkmark, and it
originates in some veeeeery old code where the profile overlay looked
and behaved very differently (0fa0271878
).
2025-01-17 10:40:26 +01:00
Bartłomiej Dach
b215073957
Add completion marker to daily challenge profile counter
2025-01-17 10:26:59 +01:00
Dean Herbert
43b54623d9
Add required padding on either side of panels so selection can remain centered
2025-01-17 18:08:20 +09:00
Dean Herbert
54f9cb7f68
Add overlapping spacing support
2025-01-17 18:07:54 +09:00
Dean Herbert
a1c5fad6d4
Add curvature to new carousel implementation
2025-01-17 18:07:54 +09:00
Dean Herbert
6bbfd362b8
Merge branch 'master' into user-panel-status
2025-01-17 17:37:09 +09:00
Dean Herbert
a8456ce9ac
Merge pull request #31513 from smoogipoo/remove-status-from-apiuser
...
Remove `Status` and `Activity` bindables from `APIUser`
2025-01-17 17:36:47 +09:00
Dean Herbert
66a72bffa8
Merge branch 'remove-status-from-apiuser' into user-panel-status
2025-01-17 17:32:39 +09:00
Dean Herbert
c8b38f05d5
Add note about the visibility logic because it tripped me up
2025-01-17 17:14:06 +09:00
Dean Herbert
f59762f0cb
Playing
-> PlayingState
2025-01-17 17:11:40 +09:00
Dan Balasescu
88829d5321
Merge pull request #31535 from peppy/beatmap-carousel-v2-right-click-scroll
...
Refactor absolute scrolling at song select
2025-01-17 17:02:14 +09:00
Dean Herbert
41c603b56f
Fix double-retrieval of user presence from dictionary in online display
2025-01-17 16:41:02 +09:00
Dean Herbert
311f08b962
Update TestMetadataClient
to correctly set local user state in line with changes
2025-01-17 16:29:02 +09:00
Dean Herbert
3bb4b0c2b8
Rename fields from State
to Presence
when presence is involved
2025-01-17 16:25:48 +09:00
Bartłomiej Dach
7d026761fc
Merge pull request #31533 from peppy/fix-gameplay-offset-adjust-limitations
...
Fix gameplay offset adjustment limits not being enforced
2025-01-17 08:21:24 +01:00
Dan Balasescu
79fff136a9
Merge branch 'master' into beatmap-carousel-v2-right-click-scroll
2025-01-17 16:12:52 +09:00
Dan Balasescu
626be9d780
Return local user state where appropriate
2025-01-17 16:01:11 +09:00
Dan Balasescu
fe5b807e7d
Merge branch 'remove-status-from-apiuser' into user-panel-status
2025-01-17 15:59:39 +09:00
Dan Balasescu
a51938f4e9
Separate the local user state
2025-01-17 15:59:34 +09:00
Dan Balasescu
5425d62186
Merge branch 'master' into remove-status-from-apiuser
2025-01-17 15:42:40 +09:00
Rudi Herouard
5fc277aa7f
Seek in replay scaled by replay speed
2025-01-16 21:53:56 +01:00
Bartłomiej Dach
5c799d733f
Bind to playing state via GameplayState
instead to fix more tests
2025-01-16 15:25:56 +01:00
Bartłomiej Dach
1f1e940ada
Restore virtual modifier to fix tests (and mark for posterity)
2025-01-16 15:13:16 +01:00
Bartłomiej Dach
0c54853710
Merge branch 'spectator-list-visuals' into spectator-list-ready
2025-01-16 15:13:04 +01:00
Bartłomiej Dach
81f54507dd
Fix potential index accounting mistake when creating spectator list with spectators already present
...
Noticed by accident, but if the `BindCollectionChanged()` callback fires
immediately in `LoadComplete()` when set up and there are spectators
present already, then `NewStartingIndex` in the related event is -1:
b03f83de36/src/libraries/System.ObjectModel/src/System/Collections/Specialized/NotifyCollectionChangedEventArgs.cs (L84-L92)
which kinda breaks the math introducing off-by-ones and in result causes
11 items to be displayed together rather than 10.
2025-01-16 14:29:41 +01:00
Bartłomiej Dach
e3b780d0fb
Merge branch 'master' into spectator-list-visuals
2025-01-16 14:07:53 +01:00
Dean Herbert
a6057a9f54
Move absolute scroll support local to carousel and allow custom bindings
2025-01-16 20:47:59 +09:00
Dan Balasescu
94db39317b
Add xmldoc
2025-01-16 20:43:22 +09:00
Dan Balasescu
65b88ab365
Use MetadataClient for local user status
2025-01-16 20:34:45 +09:00
Dan Balasescu
be892e2baa
Merge branch 'remove-status-from-apiuser' into user-panel-status
2025-01-16 20:34:37 +09:00
Dean Herbert
1c2621d88e
Add support to CarouselV2 for right mouse button scrolling
2025-01-16 20:27:38 +09:00
Dean Herbert
56b450c4a6
Remove setting for right-mouse scroll (make it always applicable)
2025-01-16 20:27:38 +09:00
Bartłomiej Dach
6b921fc4e4
Merge pull request #31471 from peppy/beatmap-carousel-v2
...
Add basic framework for carousel displays (aka `BeatmapCarouselV2`)
2025-01-16 12:21:53 +01:00
Dan Balasescu
8400726887
Move bindables to OsuConfigManager & SessionStatics
2025-01-16 19:33:42 +09:00
Dean Herbert
e47244989a
Adjust animations a bit
...
Removed autosize duration stuff because it looks weird when the list is
shown from scratch where users are already fully populated in it.
2025-01-16 19:23:54 +09:00
Dean Herbert
32906aefde
Add gradient on final spectator if more than list capacity are displayed
2025-01-16 19:05:19 +09:00
Dean Herbert
996798d2df
Avoid list width changing when spectator count changes
2025-01-16 19:02:14 +09:00
Dean Herbert
cde8e7b82e
Fix idle/hover colour handling weirdness in OsuHoverContainer
2025-01-16 18:54:51 +09:00
Dean Herbert
42e5cb58b7
Merge branch 'master' into mobile-fix-mania
2025-01-16 18:08:46 +09:00
Dean Herbert
1d240eb405
Fix gameplay limitations for adjusting offset not actually being applied
2025-01-16 18:05:59 +09:00
Dan Balasescu
fd75ae2614
Merge branch 'remove-status-from-apiuser' into user-panel-status
2025-01-16 17:16:43 +09:00
Dan Balasescu
c1f0c47586
Allow setting of DummyAPIAccess status
2025-01-16 17:06:54 +09:00
Dan Balasescu
b54d959263
Expose as IBindable from IAPIProvider, writes via config
2025-01-16 17:05:18 +09:00
Dan Balasescu
409ea53ad9
Send beatmap_id
when creating score
2025-01-16 15:51:53 +09:00
Dan Balasescu
46e9da7960
Fix style display refreshing on all room updates
2025-01-16 15:34:25 +09:00
Shawn Presser
6008c3138e
Typo fix
2025-01-15 19:29:41 -06:00
Bartłomiej Dach
99c7e164dc
Add skinnable spectator list to default skins
2025-01-15 14:29:53 +01:00
Bartłomiej Dach
12b2631e5e
Add a skinnable variant of spectator list & hook it up to online data
2025-01-15 14:29:53 +01:00
Bartłomiej Dach
43fc48a3f3
Add client methods allowing users to be notified of who is watching them
2025-01-15 14:18:01 +01:00
Bartłomiej Dach
582c5180b9
Implement spectator list display
...
- First step for https://github.com/ppy/osu/issues/22087
- Supersedes / closes https://github.com/ppy/osu/pull/22795
Roughly uses design shown in
https://github.com/ppy/osu/pull/22795#issuecomment-1579936284 with some
modifications to better fit everything else, and some customisation
options so it can fit better on other skins.
2025-01-15 14:17:53 +01:00
Dean Herbert
e22dc09149
Update framework
2025-01-15 20:42:46 +09:00
Dan Balasescu
2763cb0b4e
Fix inspection
2025-01-15 17:14:16 +09:00
Dean Herbert
6027947657
Move animation handling to Carousel
implementation to better handle add/removes
...
With the animation logic being external, it was going to make it very
hard to apply the scroll offset when a new panel is added or removed
before the current selection.
There's no real reason for the animations to be local to beatmap
carousel. If there's a usage in the future where the animation is to
change, we can add more customisation to `Carousel` itself.
2025-01-15 17:01:07 +09:00
Dan Balasescu
8985a38734
Display up-to-date online status in user panels
2025-01-15 16:55:25 +09:00
Bartłomiej Dach
614243fef4
Merge pull request #31506 from peppy/fix-storyboard-break-overhead
...
Fix stutter on intensive storyboards when entering break time with 100% background dim
2025-01-15 08:23:58 +01:00
Dean Herbert
0b764e6372
Fix substring of GetHashCode
potentially failing
2025-01-15 16:18:34 +09:00
Dan Balasescu
b9f3a1de6a
Merge pull request #31523 from Rudicito/apply-offset-when-same-audio
...
Apply beatmap offset to all difficulties only if they have the same audio
2025-01-15 14:20:16 +09:00
Dean Herbert
ef7982fbfa
Merge pull request #31446 from EVAST9919/new-combo-editor
...
Fix performance degradation while trying to place object with a new combo in the editor.
2025-01-15 12:56:06 +09:00
Rudi Herouard
57a9911b22
Apply beatmap offset on every beatmap set difficulty if they have the same audio
2025-01-15 04:12:54 +01:00
Dan Balasescu
b7a9b77efe
Make config the definitive status value
2025-01-15 00:01:19 +09:00
Dan Balasescu
20108e3b74
Remove Status and Activity bindables from APIUser
...
As for the tests, I'm (ab)using the `IsOnline` state for the time being
to restore functionality.
2025-01-14 23:45:30 +09:00
Dan Balasescu
ad14720714
Merge pull request #31508 from peppy/api-startup-state
...
Fix replays not correctly pre-importing beatmap when arriving from a cold start
2025-01-14 22:43:08 +09:00
Dean Herbert
0e20c0e307
Merge pull request #31473 from bdach/colorhax
...
Add combo colour override control to editor
2025-01-14 20:52:15 +09:00
Dean Herbert
e871f02350
Fix inspections that don't show in rider
2025-01-14 20:43:03 +09:00
Dean Herbert
91fa2e70d8
Revert name change
2025-01-14 20:41:18 +09:00
Dean Herbert
3523a2fe61
Merge branch 'master' into api-startup-state
2025-01-14 20:39:05 +09:00
Dan Balasescu
f2b7984e5a
Merge pull request #31507 from peppy/api-startup-user
...
Ensure API starts up with `LocalUser` in correct state
2025-01-14 20:36:55 +09:00
Dean Herbert
900237c1ed
Add loading overlay and refine filter flow
2025-01-14 20:23:53 +09:00
Dean Herbert
cc8941a94a
Add animation and depth control
2025-01-14 20:12:09 +09:00
Plextora
31d7c6a22e
Merge branch 'master' into colour-for-friend-lb
2025-01-14 05:57:44 -05:00
Dean Herbert
7e8a80a0e5
Add difficulty, artist and title sort examples
...
Also:
- Adds hinting at grouping and header status of items
- Passes through criteria and prepare for grouping tests.
- Makes `Filters` list `protected` because naming clash with `Filter()`
on `BeatmapCarousel`.
2025-01-14 19:52:48 +09:00
Bartłomiej Dach
b0c0c98c5d
Refetch local metadata cache if corruption is detected
...
Addresses one of the points in https://github.com/ppy/osu/issues/31496 .
Not going to lie, this is mostly best-effort stuff (while the refetch is
happening, metadata lookups using the local source *will* fail), but I
see this as a marginal scenario anyways.
2025-01-14 11:20:52 +01:00
Dean Herbert
d97a3270a5
Split out BeatmapCarousel
classes and drop V2
suffix
2025-01-14 19:18:02 +09:00
Dean Herbert
8d41eda91a
Merge branch 'master' into beatmap-carousel-v2
2025-01-14 19:06:52 +09:00
Dean Herbert
3ddff19337
Fix potential nullref due to silly null handling and too much OOP
2025-01-14 19:03:58 +09:00
Dean Herbert
b4d054fdc0
Merge pull request #31444 from smoogipoo/friend-presence-2
...
Add notifications for when friends go online or offline
2025-01-14 18:58:19 +09:00
Bartłomiej Dach
459577cc32
Merge pull request #31474 from peppy/scroll-container-double-precision
...
Update game `ScrollContainer` usage in line with framework changes
2025-01-14 10:56:55 +01:00
Dean Herbert
55ae0403d8
Ensure API state is Connecting
immediately on startup when credentials are present
...
Currently, there's a period where the API is `Offline` even though it is
about to connect (as soon as the `run` thread starts up).
This can cause any `Queue`d requests to fail if they arrive too early.
To avoid this, let's ensure the `Connecting` state is set as early as
possible.
2025-01-14 18:18:53 +09:00
Dan Balasescu
156207d347
Remove unused using
2025-01-14 17:54:40 +09:00
Dan Balasescu
51c7c218bf
Simplify operations on local list
2025-01-14 17:52:26 +09:00
Bartłomiej Dach
92cc45dc05
Merge branch 'text-input-properties' into scroll-container-double-precision
2025-01-14 09:51:48 +01:00
Dean Herbert
f6073d4ac0
Ensure API starts up with LocalUser
in correct state
...
I noticed in passing that in a very edge case scenario where the API's
`run` thread doesn't run before it is loaded into the game, something
could access it and get a guest `LocalUser` when the local user actually
has a valid login.
Put another way, the `protected HasLogin` could be `true` while
`LocalUser` is `Guest`.
I think we want to avoid this, so I've moved the initial set of the
local user earlier in the initialisation process.
If this is controversial in any way, the PR can be closed and we can
assume no one is ever going to run into this scenario (or that it
doesn't matter enough even if they did).
2025-01-14 17:43:43 +09:00
Bartłomiej Dach
8211c4ee98
Merge branch 'master' into colorhax
2025-01-14 08:56:52 +01:00
Bartłomiej Dach
8ffd254719
Adjust initialisation code to start with combo colour picker hidden
2025-01-14 08:54:46 +01:00
Dean Herbert
3c913c9f6d
Merge branch 'master' into colour-for-friend-lb
2025-01-14 16:34:05 +09:00
Dean Herbert
904a08af26
Update textbox usage in line with framework changes
2025-01-14 16:29:56 +09:00
Dean Herbert
2c57cd59a5
Update framework
2025-01-14 16:26:56 +09:00
Dean Herbert
77db355809
Ensure storyboards are still updated even when dim is 100%
...
This avoids piled-up overhead when entering break time. It's not great,
but it is what we need for now to avoid weirdness.
2025-01-14 16:22:10 +09:00
Bartłomiej Dach
8968ab19d9
Merge branch 'master' into fix-skin-editor-undo
2025-01-13 12:39:51 +01:00
Bartłomiej Dach
fc069e060c
Only show colour on new combo selector button if overridden
...
As proposed in
https://discord.com/channels/188630481301012481/188630652340404224/1327309179911929936 .
2025-01-13 12:38:28 +01:00
Salman Alshamrani
c1ac27d658
Fix failing tests
...
- Caches `DrawableRuleset` in editor compose screen for mania playfield adjustment container (because it's used to wrap the blueprint container as well)
- Fixes `ManiaModWithPlayfieldCover` performing a no-longer-correct direct cast with a naive-but-working approach.
2025-01-12 22:56:40 -05:00
Salman Alshamrani
f718696102
Allow landscape orientation on tablet devices in osu!mania
2025-01-12 02:34:36 -05:00
Salman Alshamrani
f121b03a78
Merge branch 'master' into mobile-fix-mania
2025-01-12 02:00:49 -05:00
Dean Herbert
cf55fe16ab
Generic type instead of raw object
?
2025-01-11 01:43:47 +09:00
Dean Herbert
6fbab1bbce
Stop exposing CarouselItem
externally
2025-01-11 01:43:47 +09:00
Dean Herbert
ad04681b28
Add scroll position maintaining
2025-01-11 01:43:47 +09:00
Dean Herbert
288be46b17
Add basic selection support
2025-01-11 01:43:47 +09:00
Dean Herbert
5e9a7532d3
Add basic implementation of new beatmap carousel
2025-01-11 01:43:47 +09:00
Dean Herbert
94ea003d90
Update game ScrollContainer
usage in line with framework changes
...
See https://github.com/ppy/osu-framework/pull/6467 .
2025-01-11 01:42:59 +09:00
Bartłomiej Dach
933f5db208
Merge branch 'master' into new-combo-editor
2025-01-10 14:13:14 +01:00
Bartłomiej Dach
48196949e0
Add combo colour override control to editor
...
Closes https://github.com/ppy/osu/issues/25608 .
Logic mostly matching stable. All operations are done on `ComboOffset`
which still makes overridden combo colours weirdly relatively dependent
on each other rather than them be an "absolute" choice, but alas...
As per stable, two consecutive new combos can use the same colour only
if they are separated by a break:
52f3f75ed7/osu
!/GameModes/Edit/Modes/EditorModeCompose.cs#L4564-L4571
This control is only available once the user has changed the combo
colours from defaults; additionally, only a single new combo object
must be selected for the colour selector to show up.
2025-01-10 13:40:56 +01:00
Dean Herbert
73adc4dfd7
Merge pull request #31364 from bdach/editor-storyboard-display-2
...
Display storyboard in editor background
2025-01-10 15:09:44 +09:00
Dan Balasescu
38d95abc24
Merge pull request #31462 from bdach/ternary-button-is-bad
...
Simplify editor "ternary button" structure
2025-01-10 14:24:41 +09:00
Bartłomiej Dach
5c8ae6f851
Simplify editor "ternary button" structure
...
As I look into re-implementing the ability to choose combo colour for an
object (also known as "colourhax") from the editor UI, I stumble upon
these wretched ternary items again and sigh a deep sigh of annoyance.
The structure is overly rigid. `TernaryItem` does nothing that
`DrawableTernaryItem` couldn't, except make it more annoying to add
specific sub-variants of `DrawableTernaryItem` that could do more
things.
Yes you could sprinkle more levels of virtuals to
`CreateDrawableButton()` or something, but after all, as Saint Exupéry
says, "perfection is finally attained not when there is no longer
anything to add, but when there is no longer anything to take away."
So I'm leaning for taking one step towards perfection.
2025-01-09 13:41:22 +01:00
Dan Balasescu
7268b2e077
Add separate path for friend presence notifications
...
It proved to be too difficult to deal with the flow that clears user
states on stopping the watching of global presence updates. It's not
helped in the least that friends are updated via the API, so there's a
third flow to consider (and the timings therein - both server-spectator
and friends are updated concurrently).
Simplest is to separate the friends flow, though this does mean some
logic and state duplication.
2025-01-09 17:31:01 +09:00
Dean Herbert
c8f72fdbe9
Fix rate adjustments changing the spacing between replay frames
2025-01-09 13:30:04 +09:00
Dan Balasescu
f4d83fe685
Keep friend states when stopping watching global activity
2025-01-09 13:23:16 +09:00
Bartłomiej Dach
bcd35c8899
Merge branch 'master' into editor-storyboard-display-2
2025-01-08 15:46:08 +01:00
Bartłomiej Dach
5a2024777d
Select closest timing point every time the timing screen is changed to
...
No issue thread for this, was pointed out internally:
https://discord.com/channels/90072389919997952/1259818301517725707/1316604605777444905
Due to the custom setup that editor has with its nested
"screens-that-aren't-screens", the logic that selects the closest
timing point to the current time would only fire on the first open of
the screen. Seems like a good idea to have it fire every time instead.
2025-01-08 14:24:46 +01:00
Bartłomiej Dach
e7070bd812
Merge pull request #31448 from bdach/automatic-new-combo-after-break
...
Force new combo on objects succeeding a break
2025-01-08 11:22:30 +01:00
Dan Balasescu
be33addae1
Fix possible null reference
2025-01-08 18:57:25 +09:00
Dan Balasescu
9c05837b3a
Change to using a 'FreeStyle' boolean
2025-01-08 18:47:01 +09:00
Bartłomiej Dach
7c70dc4dc3
Only update combo information when any changes happened
2025-01-08 10:28:06 +01:00
Dean Herbert
f216c22806
Merge pull request #31445 from bdach/reset-speed-on-test-play
...
Reset playback speed to 100% on entering test play
2025-01-08 16:16:28 +09:00
Bartłomiej Dach
d9f0f0d729
Merge branch 'master' into editor-storyboard-display-2
2025-01-08 08:12:55 +01:00
Dean Herbert
d5f2bdf6cd
Appease message pack new inspections
2025-01-08 03:13:29 +09:00
Dean Herbert
6f42b59e31
Upgrade more packages again
...
This also downgrades nunit to be aligned across all projects. Getting it
up-to-date is a bit high effort.
2025-01-08 03:13:11 +09:00
Dean Herbert
125d652dd8
Update realm xmldoc references
2025-01-08 01:35:56 +09:00
Dean Herbert
18ff25bc6d
Merge branch 'master' into upgrade-packages
2025-01-08 01:23:28 +09:00
Bartłomiej Dach
d0a39a7733
Merge pull request #31442 from peppy/supporter-button-always-warns
...
Always show dialog when clicking supporter icon before opening browser
2025-01-07 15:14:53 +01:00
Bartłomiej Dach
5431a08b35
Merge pull request #31435 from peppy/star-range-display-quality
...
Fix star range display looking a bit bad when changing opacity
2025-01-07 14:58:00 +01:00
Bartłomiej Dach
c93b87583a
Force new combo on objects succeeding a break
...
No issue thread for this again. Reported internally on discord:
https://discord.com/channels/90072389919997952/1259818301517725707/1320420768814727229
Placing this logic in the beatmap processor, as a post-processing step,
means that the new combo force won't be visible until a placement has
been committed. That can be seen as subpar, but I tried putting this
logic in the placement and it sucked anyway:
- While the combo number was correct, the colour looked off, because it
would use the same combo colour as the already-placed objects after
said break, which would only cycle to the next, correct one on
placement
- Not all scenarios can be handled in the placement. Refer to one of the
test cases added in the preceding commit, wherein two objects are
placed far apart from each other, and an automated break is inserted
between them - the placement has no practical way of knowing whether
it's going to have a break inserted automatically before it or not.
2025-01-07 14:06:23 +01:00
Andrei Zavatski
8f4eafea4e
Fix combo properties multiple reassignments
2025-01-07 14:00:31 +03:00
Bartłomiej Dach
98bb723438
Do not expose track directly in EditorClock
...
Intends to stop people from mutating it directly, and going through
`EditorClock` members like `AudioAdjustments` instead.
2025-01-07 11:40:18 +01:00
Dan Balasescu
45e0adcd25
Add config option
2025-01-07 19:32:30 +09:00
Bartłomiej Dach
275e8ce7b7
Remove unused protected field
2025-01-07 11:26:08 +01:00
Bartłomiej Dach
a5036cd092
Re-route editor tempo adjustment via EditorClock
and remove it on gameplay test
2025-01-07 11:25:00 +01:00
Bartłomiej Dach
3c03406b45
Add failing test
2025-01-07 11:23:47 +01:00
Dan Balasescu
51b62a6d8e
Display notification on friend presence changes
2025-01-07 19:12:33 +09:00
Dean Herbert
383fda7431
Fix star range display looking a bit bad when changing opacity
2025-01-07 16:42:06 +09:00
Bartłomiej Dach
01e9c0f15e
Merge pull request #31418 from peppy/intro-file-integrity
...
Ensure intro files exist in storage during startup
2025-01-07 08:14:40 +01:00
Dan Balasescu
77d9c955ea
Merge pull request #31306 from bdach/aspire-slider-breakage
...
Fix slider event generator incorrectly not generating repeats when tick distance is zero
2025-01-07 11:50:18 +09:00
Andrei Zavatski
d35b308745
Use cleaner array creation expression
2025-01-07 01:23:19 +03:00
Andrei Zavatski
791ca915e4
Fix allocations in updateSamplePointContractedState
2025-01-07 00:48:58 +03:00
Andrei Zavatski
e8dc09f5bc
Reduce HitSampleInfo constants allocations
2025-01-07 00:36:58 +03:00
Bartłomiej Dach
3a4497af32
Constrain range of usable characters in romanised metadata to ASCII only
...
Closes https://github.com/ppy/osu/issues/31398 .
Rationale given in issue.
Compare stable logic:
- 2280c4c436/osu
!/GameModes/Edit/Forms/SongSetup.cs#L118-L122
- 2280c4c436/osu
!common/Helpers/GeneralHelper.cs#L410-L423
The control character check is a bit gratuitous (text boxes will already
not allow insertion of those, see
e05cb86ff6/osu.Framework/Graphics/UserInterface/TextBox.cs (L92)
),
but as it's a general helper I figured might as well.
2025-01-06 14:04:47 +01:00
Dean Herbert
4f1a6b4688
Always show dialog when clicking supporter icon before opening browser
...
I managed to do this by accident three times today while testing using
the dashboard display, so it's time to action on it.
Touched on in
https://github.com/ppy/osu/discussions/30740#discussioncomment-11345996 .
Was also mentioned recently in discord or another discussion explicitly
but I can't find that.
2025-01-06 17:51:04 +09:00
Dan Balasescu
448790a76f
Merge pull request #31386 from peppy/fix-applying-offset
...
Fix not being able to apply last play offset after returning to song select
2025-01-06 11:40:12 +09:00
Dean Herbert
37da72d764
Reduce nesting slightly
2025-01-05 00:32:06 +09:00
Salman Alshamrani
21389820c5
Fix player no longer handling non-loaded beatmaps
2025-01-04 02:35:48 -05:00
Dean Herbert
72dfdac2e2
Ensure intro files exist in storage
...
Guards against user interdiction.
See
[https://discord.com/channels/188630481301012481/1097318920991559880/1324765503012601927 ](recent)
but not only case of this occurring.
2025-01-04 15:27:49 +09:00
Dean Herbert
e15978cc65
Add test coverage of user deleting intro files
2025-01-04 15:26:42 +09:00
Salman Alshamrani
3fc86f60ee
Fix mobile release dialog obstructed by the software keyboard
2025-01-03 22:01:06 -05:00
Dean Herbert
2cd86cbf91
Localise text
2025-01-04 01:28:33 +09:00
Dean Herbert
da85517036
Adjust popup icon animation slightly
2025-01-04 01:28:09 +09:00
Dean Herbert
60fd0be481
Make popup body text left aligned when multiple lines of text are provided
2025-01-04 01:19:56 +09:00
Dean Herbert
1d81dade25
Update copy and require actually clicking button to confirm
2025-01-04 01:13:03 +09:00
Dean Herbert
97d065d887
Only flip value if popup was definitely shown
2025-01-04 00:58:19 +09:00
Salman Alshamrani
c40371c052
Move dialog class location
2025-01-03 00:27:26 -05:00
Salman Alshamrani
039800550c
Display popup disclaimer about game state and performance on mobile platforms
2025-01-03 00:20:50 -05:00
Dean Herbert
2a28c5f4de
Add static memory of last applied offset score
...
I don't really like adding this new session static, but we don't have a
better place to put this.
2025-01-02 16:20:25 +09:00
Dean Herbert
58dcb25bd5
Revert "Clear previous LastLocalUserScore
when returning to song select"
...
This reverts commit ced8dda1a2
.
2025-01-02 15:59:00 +09:00
Dan Balasescu
1cb2c86104
Merge pull request #31383 from peppy/editor-toolbar-scrolling-weird
...
Always block scroll input above editor toolbox areas
2025-01-02 15:11:11 +09:00
Dean Herbert
cca63b599e
Always block scroll input above editor toolbox areas
...
Originally this was an intentional choice (see
https://github.com/ppy/osu/pull/18088 ) when these controls were more
transparent and didn't for a solid toolbox area.
But this is no longer the case, so for now let's always block scroll to
match user expectations.
Closes #31262 .
2025-01-02 14:31:27 +09:00
Dean Herbert
1211f6cf4c
Add auto-start setting for 10 seconds
...
As touched on in
https://github.com/ppy/osu/discussions/31205#discussioncomment-11671185 .
Doesn't require server-side changes as the server just uses a
`TimeSpan`.
2025-01-02 13:06:34 +09:00
Dan Balasescu
9da27b5fe5
Merge pull request #31305 from bdach/round-coordinates-on-legacy-export
...
Round object coordinates to nearest integers on legacy export rather than truncating
2025-01-01 21:05:18 +09:00
Salman Alshamrani
c221a0c9f9
Improve UI scale on iOS devices
2025-01-01 02:06:26 -05:00
Salman Alshamrani
0cd7f1b2d4
Abstractify orientation handling and add Android support
2024-12-31 12:25:58 -05:00
Salman Alshamrani
d7e4038f4a
Keep game in portrait mode when restarting
2024-12-31 12:25:58 -05:00
Bartłomiej Dach
929173c971
Merge pull request #31342 from minetoblend/feature/speedy-metronome
...
Speed up metronome in timing screen when pressing control key
2024-12-31 14:49:48 +01:00
Bartłomiej Dach
1803ee4025
Rename method
2024-12-31 14:09:36 +01:00
Bartłomiej Dach
88311f5442
Remove unused method
2024-12-31 14:02:07 +01:00
Bartłomiej Dach
21dba621f0
Display storyboard in editor background
...
Fixes the main part of https://github.com/ppy/osu/issues/31144 .
Support for selecting a video will come later.
Making this work was an absolutely awful time full of dealing with
delightfully kooky issues, and yielded in a very weird-shaped
contraption. There is at least one issue remaining wherein storyboard
videos do not actually display until the track is started in editor, but
that is 99% a framework issue and I do not currently have the mental
fortitude to diagnose further.
2024-12-31 13:57:50 +01:00
Dean Herbert
6ff3110433
Consolidate variable
2024-12-31 21:14:15 +09:00
Unili
acd51c8e9d
Merge branch 'ppy:master' into master
2024-12-31 11:35:55 +08:00
CuNO3
22c8229993
Ignore whitespace while 2FA authentication
2024-12-31 10:43:48 +08:00
Marvin Schürz
0641d2b510
Remove turboweird function and update displayed bpm text
2024-12-30 19:12:21 +01:00
Bartłomiej Dach
693db097ee
Take custom bank name length into account when collapsing sample point indicators
...
Would close https://github.com/ppy/osu/issues/31312 .
Not super happy with the performance overhead of this, but this is
already a heuristic-based implementation to avoid every-frame
`.ChildrenOfType<>()` calls or similar, so not super sure how to do
better. The `Array.Contains()` check stands out in profiling, but
without it the indicators can collapse *too* eagerly sometimes.
2024-12-30 12:04:41 +01:00
Bartłomiej Dach
f18114d2fb
Merge pull request #31282 from peppy/fix-volume-key-repeat
...
Fix volume adjust key repeat not working as expected
2024-12-30 08:49:35 +01:00
Salman Alshamrani
7563a18c7f
Allow locking orientation on iOS in certain circumstances
2024-12-29 22:15:21 -05:00
Marvin Schürz
9ea7afb38e
Use return value instead of field to force weight position update
2024-12-30 03:59:54 +01:00
Marvin Schürz
aa6763785c
Use 3x speed instead when beat snap divisor is divisible by 3
2024-12-30 03:21:52 +01:00
Marvin Schürz
8be500535d
Speed up metronome when holding control
2024-12-30 03:13:22 +01:00
Dean Herbert
10ee2e28c2
Merge pull request #31303 from bdach/pause-on-gameplay-test
...
Pause playback when entering gameplay test from editor
2024-12-28 04:41:28 +09:00
Dean Herbert
1b2a223a5f
Fix failing test scene due to new dependency
2024-12-28 01:02:15 +09:00
Bartłomiej Dach
6a6db5a22b
Populate metadata from ID3 tags when changing beatmap audio track in editor
...
- Closes https://github.com/ppy/osu/issues/21189
- Supersedes / closes https://github.com/ppy/osu-framework/pull/5627
- Supersedes / closes https://github.com/ppy/osu/pull/22235
The reason why I opted for a complete rewrite rather than a revival of
that aforementioned pull series is that it always felt quite gross to me
to be pulling framework's audio subsystem into the task of reading ID3
tags, and I also partially don't believe that BASS is *good* at reading
ID3 tags. Meanwhile, we already have another library pulled in that is
*explicitly* intended for reading multimedia metadata, and using it
does not require framework changes. (And it was pulled in explicitly for
use in the editor verify tab as well.)
The hard and dumb part of this diff is hacking the gibson such that
the metadata section on setup screen actually *updates itself*
after the resources section is done doing its thing. After significant
gnashing of teeth I just did the bare minimum to make work by caching
a common parent and exposing an `Action?` on it. If anyone has better
ideas, I'm all ears.
2024-12-27 15:16:03 +01:00
Dean Herbert
a9a5bb2c6a
Remove duplicated block
2024-12-27 21:36:07 +09:00
Bartłomiej Dach
e7225399a2
Fix slider event generator incorrectly not generating repeats when tick distance is zero
...
RFC. This closes https://github.com/ppy/osu/issues/31186 .
To explain why: The issue occurs on
https://osu.ppy.sh/beatmapsets/594828#osu/1258033 , specifically on the
slider at time 128604. The failure site is
fa0d2f4af2/osu.Game.Rulesets.Osu/Edit/Blueprints/Sliders/SliderCircleOverlay.cs (L65-L66)
wherein `LastRepeat` is `null`, even though the slider's `RepeatCount`
is 1 and thus `SpanCount` is 2.
In this case, `SliderEventGenerator` is given a non-zero `tickDistance`
but a zero `length`. The former is clamped to the latter:
fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L34)
Because of this, a whole block of code pertaining to tick generation
gets turned off, because of zero tick spacing - however, that block also
includes within it *repeat* generation, for seemingly very little reason
whatsoever:
fa0d2f4af2/osu.Game/Rulesets/Objects/SliderEventGenerator.cs (L47-L77)
While a zero tick distance would indeed cause `generateTicks()` to loop
forever, it should have absolutely no effect on repeats.
While this *is* ultimately an aspire-tier bug caused by people pushing
things to limits, I do believe that in this case a fix is warranted
because of how hard the current behaviour violates invariants. I do not
like the possibility of having a slider with multiple spans and no
repeats.
2024-12-27 12:38:31 +01:00
Bartłomiej Dach
e9762422b3
Round object coordinates to nearest integers rather than truncating
...
Addresses https://github.com/ppy/osu/issues/31256 .
2024-12-27 11:10:29 +01:00
Bartłomiej Dach
0d16ed028b
Add setters to hitobject coordinate interfaces
2024-12-27 11:01:47 +01:00
Bartłomiej Dach
5abad07412
Pause playback when entering gameplay test from editor
...
Closes https://github.com/ppy/osu/issues/31290 .
Tend to agree that this is a good idea for gameplay test at least. Not
sure about other similar interactions like exiting - I don't think it
matters what's done in those cases, because for exiting timing is in no
way key, so I just applied this locally to gameplay test.
2024-12-27 09:08:16 +01:00
Dean Herbert
2a374c0695
Add migration
2024-12-26 15:46:12 +09:00
Dean Herbert
e752531aec
Fix volume adjust key repeat not working as expected
...
Regressed in https://github.com/ppy/osu/pull/31146 .
Closes part of https://github.com/ppy/osu/issues/31267 .
2024-12-26 15:05:59 +09:00
kongehund
1f60adbaf1
Switch scroll direction for beat snap
...
Matches stable better
2024-12-26 00:35:21 +01:00