1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-15 09:07:25 +08:00
Commit Graph

62854 Commits

Author SHA1 Message Date
Magnus-Cosmos
bd7dab1d86
Add test for slider path edge case 2023-09-18 12:02:20 -04:00
Magnus-Cosmos
83584519e6
Fix extension check using control points instead of path points 2023-09-18 11:40:00 -04:00
Bartłomiej Dach
8b5a851f31
Merge branch 'master' into scoring-test-scene-catch 2023-09-18 15:15:03 +02:00
Dean Herbert
163b6df357
Merge pull request #24846 from bdach/get-reader-regression
Fix `MemoryStreamArchiveReader.GetStream()` failing in some cases
2023-09-18 22:06:33 +09:00
Bartłomiej Dach
25e43bd7d7
Auto-close notification after successful download 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
4cdd19bb5a
Use different copy when auto-downloading 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
3bddf4bf9a
Rename spectator-specific settings to more generic (with backwards migration) 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
27471ad170
Make missing beatmap notification simple
Progress didn't work for several reasons:

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

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

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

- It wasn't helping much with the actual implementation of score
  re-import, cancelling the progress notification would result in
  similarly jank UX of beatmap importing but not the score.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
b2c98da330
Reword and localise copy 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
2709c6cd67
Integrate nano beatmap card into the notification 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
775f96f061
Add very basic visual tests for missing beatmap notification
The full-stack test using the whole 9 `OsuGameTest` yards is unusable
for rapid development. I don't really get how you could ever design
anything using it without tossing your computer out the window.
2023-09-18 14:56:06 +02:00
Bartłomiej Dach
47764b3012
Fix OsuTestScene.CreateAPIBeatmapSet() not backlinking set beatmaps to the set 2023-09-18 14:56:06 +02:00
Bartłomiej Dach
5fcd736332
Redo nano beatmap card design to fit needs better
Wanting to use this inside notification, it turns out that the original
design did not work very well at such narrow widths, and additionally
the typical button setup borrowed from elsewhere resulted in teeny tiny
action buttons.

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

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

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

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

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

    https://learn.microsoft.com/en-us/dotnet/api/system.io.memorystream.toarray?view=net-7.0#system-io-memorystream-toarray
2023-09-18 11:50:36 +02:00
Bartłomiej Dach
5c2413c06b
Implement nano beatmap card 2023-09-18 11:30:14 +02:00
Bartłomiej Dach
59b9a636d3
Fix grammar in comment 2023-09-18 10:46:14 +02:00
Bartłomiej Dach
0985bb0577
Merge pull request #24739 from peppy/fix-slider-tick-misssing
Fix sliders not always being the correct length
2023-09-18 10:21:50 +02:00
Bartłomiej Dach
3709861132
Merge pull request #24814 from LukynkaCZE/parse-only-supported-char-uris
Parse only supported schemes as URIs
2023-09-18 10:20:09 +02:00
Bartłomiej Dach
d3cc6dbaa0
Fix link protocol allowlist allowing too much 2023-09-18 09:20:24 +02:00
Bartłomiej Dach
a2df123c6d
Add failing test case for fake (but still incorrectly allowed) protocol 2023-09-18 09:19:12 +02:00
Dean Herbert
be026f7ff1 Bump realm once more 2023-09-17 01:27:43 +09:00
Dean Herbert
56b5f52e83 Update all dependencies (except for Moq) 2023-09-16 15:37:31 +09:00
Dean Herbert
5eebc879d1
Merge pull request #24828 from Joehuu/fix-dummy-ar5
Fix dummy beatmap showing AR 5 on song select
2023-09-16 15:01:47 +09:00
Joseph Madamba
c2685da94c
Fix dummy beatmap showing AR 5 on song select 2023-09-15 20:26:17 -07:00
Bartłomiej Dach
5640dd2f74
Add mania scoring test scene 2023-09-15 13:45:05 +02:00
Bartłomiej Dach
aa8aa14a57
Add catch scoring algorithms to test scene 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
c6445a327b
Add taiko scoring test scene 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
ebdc501e5b
Add example scenarios and configurable score multiplier 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5eccc771c2
Turn off non-perfect judgements for catch scoring test scene 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
0c22ff2a80
Refactor further to allow extensibility to other rulesets 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
27b6bc3062
Add skeleton of catch scoring test 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
45751dd1f2
Minimum viable changes for ruleset-specific scoring test scenes 2023-09-15 12:58:29 +02:00
Bartłomiej Dach
5c6cd879dd
Adjust slider calculations to new method API
Code originally read

	Velocity = scoringDistance / beatLength
		 = BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength

Given (mathematically, floats are not generally as forgiving):

	GetPrecisionAdjustedBeatLength() = beatLength / GetPrecisionAdjustedSliderVelocityMultiplier()

it follows that (inverting both sides):

	1 / GetPrecisionAdjustedBeatLength() = GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength

and therefore

	Velocity = BASE_SCORING_DISTANCE * SliderMultiplier * GetPrecisionAdjustedSliderVelocityMultiplier() / beatLength
		 = BASE_SCORING_DISTANCE * SliderMultiplier / GetPrecisionAdjustedBeatLength()

and to recover `scoringDistance`

	scoringDistance = Velocity * beatLength
2023-09-15 12:30:25 +02:00
Bartłomiej Dach
4275af1343
Merge branch 'master' into fix-slider-tick-misssing 2023-09-15 12:09:54 +02:00
Bartłomiej Dach
86c46a5b3f
Manually reorder objects in expected mapping
The test added in 64baa4d01a was
previously failing despite applying a fix. This was caused by the fact
that in stable, the last `sliderScoreTimingPoint` (i.e. the
`LegacyLastTick` is pulled back by 36ms, but the list of all of them
is not re-sorted afterwards, causing objects to be exported in
non-chronological order to the resultant conversion mapping.
lazer correctly sorts the objects, causing a false positive.
2023-09-15 12:07:59 +02:00
Bartłomiej Dach
1ae8665a08
Merge pull request #24738 from peppy/no-legacy-difficulty-control-point
Remove `LegacyDifficultyControlPoint` / `LegacyBpmMultiplier`
2023-09-15 12:01:56 +02:00
Dan Balasescu
2abef4ade5
Expand comment to justify maximising bonus score
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2023-09-15 18:35:17 +09:00
Bartłomiej Dach
a6fab28461
Merge branch 'master' into no-legacy-difficulty-control-point 2023-09-15 11:14:28 +02:00
Dean Herbert
56cc2b62f0 Make not extension method 2023-09-15 18:13:04 +09:00
Dean Herbert
0031da76ff Move to extension method and throw on non-legacy ruleset 2023-09-15 17:38:34 +09:00
Dan Balasescu
ed295effc5 Maximise bonus score 2023-09-15 15:51:05 +09:00
Bartłomiej Dach
b2b18092cf
Merge pull request #24807 from peppy/import-task-improve
Clean up `ImportTask` / `ArchiveReader` implementations
2023-09-14 20:24:32 +02:00
Bartłomiej Dach
9b391cd661
Merge branch 'master' into import-task-improve 2023-09-14 19:37:01 +02:00
Bartłomiej Dach
c8b18acd4d
Bring back disposal of stream after copy-out to MemoryStream
Was there in previous code and got removed in the refactor. I'd rather
have it than not.
2023-09-14 19:36:35 +02:00