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

69466 Commits

Author SHA1 Message Date
OliBomby
2d95c0b0bb remove tail recursion form welzl 2024-09-24 18:45:52 +02:00
Dean Herbert
84d7fed23d
Merge pull request #29985 from bdach/user-statistics-update-too-fast
Fix statistics update not being shown on results screen if it arrives too fast
2024-09-25 01:35:28 +09:00
Bartłomiej Dach
20e7ade3b0
Fix statistics update not being shown on results screen if it arrives too fast
As reported in
https://discord.com/channels/188630481301012481/1097318920991559880/1288160137286258799.
2024-09-24 17:52:19 +02:00
Bartłomiej Dach
555d4ffe89
Add failing test case 2024-09-24 17:51:54 +02:00
Marvin Schürz
99a80b399c Animate SelectionBox buttons on unfreeze 2024-09-24 16:42:37 +02:00
Bartłomiej Dach
9f4e48dde7
Actually use bindables rather than stick things in Update() 2024-09-24 15:15:28 +02:00
Bartłomiej Dach
16fc413a4a
Apply NRT to directory & file selectors 2024-09-24 14:55:05 +02:00
Bartłomiej Dach
7f8b64bb6d
Redesign directory & file selector (and update usages accordingly) 2024-09-24 14:54:48 +02:00
Dean Herbert
b7d8cb2371
Merge pull request #29968 from bdach/cache-for-spectate-screen
Use cache for beatmap lookups on spectate screen
2024-09-24 20:59:33 +09:00
Marvin Schürz
15c4b1dc8f Move mouse horizontally in test to make sure it doesn't accidentally maintain aspect ratio 2024-09-24 13:45:03 +02:00
Marvin Schürz
3ad7342964 Add tests for shift and alt modifiers in select box 2024-09-24 13:35:56 +02:00
Bartłomiej Dach
4f57a67ea4
Merge branch 'master' into skinning-colour-customisation 2024-09-24 13:02:22 +02:00
Bartłomiej Dach
145f2b6de7
Merge pull request #29942 from minetoblend/fix/slider-scale-origin
Fix scaling sliders ignoring the scale origin
2024-09-24 13:02:04 +02:00
Bartłomiej Dach
4c2ebdb2db
Simplify accent colour assignment in argon wedge piece 2024-09-24 12:53:54 +02:00
Marvin Schürz
b54b4063be Rename parameter 2024-09-24 12:40:28 +02:00
OliBomby
3031b68552 add TestMinimumEnclosingCircle 2024-09-24 11:56:04 +02:00
Bartłomiej Dach
86432078dd
Remove usage of switch expression syntax
It's not universally accepted here and a `when` crept in that can be
bypassed entirely using rather clean baseline language constructs, so
why bother at this point.
2024-09-24 11:53:02 +02:00
OliBomby
c857de3a9a Revert "add a max depth to prevent stack overflow"
This reverts commit bf245aa9d6.
2024-09-24 11:44:02 +02:00
OliBomby
b274ed9427 fix warnings 2024-09-23 17:34:45 +02:00
OliBomby
0f0f490598 Don't snap to global grid while placing grid 2024-09-23 17:24:09 +02:00
OliBomby
fe10621771 Clarify criteria of grid spacing subdivision 2024-09-23 16:39:09 +02:00
Dean Herbert
f08134f443
Merge pull request #29966 from bdach/unsafe-deep-clone
Fix score being cloned in async method causing random errors (again)
2024-09-23 23:37:46 +09:00
OliBomby
0a5a463380 Convert 'grid from points' button to placement tool 2024-09-23 16:36:45 +02:00
OliBomby
1a81e12192 Refactor PlacementBlueprint to not be hitobject specific 2024-09-23 16:33:36 +02:00
Dean Herbert
31e423058d
Merge pull request #29972 from bdach/editor/setup-screen-dropdown
Implement "form" dropdown control
2024-09-23 23:30:25 +09:00
Bartłomiej Dach
d6c17f6ac0
Implement "form" dropdown control 2024-09-23 14:41:39 +02:00
Bartłomiej Dach
e8a394f894
Fix argon volume-aware hitsounds not correctly playing immediately after object placement
Closes https://github.com/ppy/osu/issues/29832.

The underlying reason for the incorrect sample playback was an equality
comparer failure.

Samples are contained in several pools which are managed by the
playfield. In particular, the pools are keyed by `ISampleInfo`
instances. This means that for correct operation, `ISampleInfo` has to
implement `IEquatable<ISampleInfo>` and also provide an appropriately
correct `GetHashCode()` implementation. Different audible samples must
not compare equal to each other when represented by `ISampleInfo`.

As it turns out, `VolumeAwareHitSampleInfo` failed on this, due to not
overriding equality members. Therefore, a `new
HitSampleInfo(HitSampleInfo.HIT_NORMAL, HitSampleInfo.BANK_NORMAL,
volume: 70)` was allowed to compare equal to a
`VolumeAwareHitSampleInfo` wrapping it, *even though they correspond to
completely different sounds and go through entirely different lookup
path sequences*.

Therefore, to fix, provide more proper equality implementations for
`VolumeAwareHitSampleInfo`.

When testing note that this issue *only occurs immediately after
placing an object*. Saving and re-entering editor makes this issue go
away. I haven't looked too long into why, but the general gist of it is
ordering; it appears that a `normal-hitnormal` pool exists at point
of query of a new object placement, but does not seem to exist when
entering editor afresh. That said I'm not sure that ordering aspect of
this bug matters much if at all, since the two `IHitSampleInfo`s should
never be allowed to alias with each other at all wrt equality.
2024-09-23 13:38:26 +02:00
Bartłomiej Dach
41826d0606
Add failing test case to demonstrate failure 2024-09-23 13:17:46 +02:00
OliBomby
bf245aa9d6 add a max depth to prevent stack overflow 2024-09-23 13:16:45 +02:00
OliBomby
eead6b9eae return to stackalloc because its faster 2024-09-23 13:13:33 +02:00
OliBomby
203951780e use collection expression instead of stackalloc 2024-09-23 12:15:42 +02:00
OliBomby
86817d0cfc Add benchmark for minimum enclosing circle 2024-09-23 12:15:31 +02:00
Bartłomiej Dach
4b349ba387
Use cache for beatmap lookups on spectate screen
@peppy noticed recently that attempting to spectate just a few users was
very likely to end up in requests very quickly being rejected with code
429 ("Too Many Requests").

I'm somewhat certain that the reason for that is that a significant
number of players is wont to retry a lot in quick succession. That means
that spectator server is going to note a lot of gameplay start and end
messages in quick succession, too. And as it turns out, every gameplay
start would end up triggering a new beatmap set fetch request:

	ccf1acce56/osu.Game/Screens/Spectate/SpectatorScreen.cs (L131-L134)
	ccf1acce56/osu.Game/Screens/Play/SoloSpectatorScreen.cs (L168-L172)
	ccf1acce56/osu.Game/Screens/Play/SoloSpectatorScreen.cs (L243-L256)

To attempt to curtail that, use the beatmap cache instead, which should
prevent these unnecessary requests from firing in the first place,
therefore reducing the chance of the client getting throttled.

This technically means that a different endpoint is used to fetch the
data (`GET /beatmaps/?ids[]=` rather than `GET
/beatmapsets/lookup?beatmap_id={id}`), but docs claim that both should
return the same data, and it looks to work fine in practice.
2024-09-23 12:15:19 +02:00
OliBomby
42549e81aa use RNG.Next 2024-09-23 11:44:07 +02:00
OliBomby
40cfaabc53 verify n<=3 in minCircleTrivial 2024-09-23 11:43:36 +02:00
OliBomby
d0f12006a4 update wikipedia url 2024-09-23 11:42:28 +02:00
OliBomby
447d178e01 use named tuple members 2024-09-23 11:42:02 +02:00
OliBomby
0d06b122c1 rename region 2024-09-23 11:39:42 +02:00
OliBomby
a9ebfbe431 Assert default origin not null in rotation handle 2024-09-23 11:37:42 +02:00
Bartłomiej Dach
0f758ca25f
Continue displaying storyboard even if fully dimmed in specific circumstances
Closes https://github.com/ppy/osu/issues/9315.
Closes https://github.com/ppy/osu/issues/29867.

Notably, this does nothing about
https://github.com/ppy/osu/issues/25075, but I'm not sure what to do
with that one in the first place.
2024-09-23 11:19:31 +02:00
OliBomby
92b5650ff8 fix outdated comment 2024-09-23 10:56:03 +02:00
Bartłomiej Dach
881c9dfbba
Fix score being cloned in async method causing random errors (again)
Compare: https://github.com/ppy/osu/pull/24548.

I don't have a reproduction scenario (judging from the stack trace
of the crash it's likely to be nigh-impossible to concoct a reliable
one), but there is some circumstantial evidence that this might help,
namely that that previous fix above worked, and the pathway that's
failing here is similarly async to the one that pull fixed. So I'm just
gonna start with that and hope that it does the job.
2024-09-23 09:51:02 +02:00
Givikap120
2995df7903 removed unnecessary includes 2024-09-22 15:04:21 +03:00
Givikap120
1b77b3912b initial commit 2024-09-22 15:01:58 +03:00
Marvin Schürz
1095f35025 Only store position instead of entire draw quad 2024-09-21 15:25:37 +02:00
Marvin Schürz
0077ba72ec Freeze select box buttons in place as long as they are hovered 2024-09-21 14:59:47 +02:00
Marvin Schürz
3180468db1 Prevent the distance snap grid from being activated by alt key while dragging select box handle 2024-09-21 14:22:17 +02:00
Marvin Schürz
2dbbbe270d Scale around center when pressing alt while dragging selection box scale handle 2024-09-21 13:37:41 +02:00
Daniel Cios
59df9cbf0f Remove nullable disable 2024-09-20 18:07:26 +02:00
Marvin Schürz
8bca8d6072 Restore previous scale behavior when using scale popover 2024-09-20 17:38:49 +02:00