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
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
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
Bartłomiej Dach
f7156599a6
Merge pull request #24802 from peppy/mod-select-difficulty-multiplier-animation
...
Rename "difficulty multiplier" to "score multiplier" and add more animation hinting
2023-09-14 19:21:20 +02:00
Lukynka CZE
9b8fdcbcdc
somehow accidentally removed backslashes
2023-09-14 17:55:53 +02:00
Lukynka CZE
2a18f76b02
add visual test
2023-09-14 17:48:10 +02:00
Lukynka CZE
25926af782
add unit test
2023-09-14 17:46:42 +02:00
Lukynka CZE
66751ef5bb
add regex
2023-09-14 17:46:29 +02:00
Bartłomiej Dach
6aff1d4063
Merge branch 'master' into mod-select-difficulty-multiplier-animation
2023-09-14 16:23:30 +02:00
Bartłomiej Dach
bb32368426
Merge pull request #24801 from peppy/mod-select-diff-multiplier-visual-matching
...
Simplify multiplier display implementation
2023-09-14 16:22:46 +02:00
Dean Herbert
57f32b177d
Fix incorrect handling of non-MemoryStream
pathway
2023-09-14 22:19:18 +09:00
Bartłomiej Dach
94cdcfd7ce
Move collapsed bindable back to BeatmapAttributesDisplay
for now
...
Better to have it only in one place that needs it, rather than have it
not work as expected when someone inherits
`ModFooterInformationDisplay`.
2023-09-14 14:56:58 +02:00
Bartłomiej Dach
44461b4eff
Merge branch 'master' into mod-select-diff-multiplier-visual-matching
2023-09-14 12:12:23 +02:00
Bartłomiej Dach
5bda9a3024
Merge pull request #24799 from peppy/move-mod-select-diff-multiplier
...
Move mod overlay difficulty multiplier display to bottom of screen
2023-09-14 12:11:50 +02:00
Bartłomiej Dach
3f7b8dbe58
Merge branch 'master' into move-mod-select-diff-multiplier
2023-09-14 11:26:22 +02:00
Bartłomiej Dach
25dbd0a1d3
Rename variable to reflect new "beatmap attributes display" naming
2023-09-14 11:24:53 +02:00
Bartłomiej Dach
2d3be819d0
Merge pull request #24796 from peppy/collapse-preset-column
...
Collapse mod presets column slightly when not in use
2023-09-14 11:07:36 +02:00
Dean Herbert
cf9ca60b09
Change slider body to not animate snaking until head circle is (successfully) hit
2023-09-14 17:49:41 +09:00
Dean Herbert
ec82414090
Allow testing hitting sliders are certain points in tests
2023-09-14 17:49:41 +09:00
Dean Herbert
1ef0c92962
Inverse snaking toggle
2023-09-14 17:49:41 +09:00
Dean Herbert
e3e7a81ad9
Remove slider head circle movement (and remove setting from "classic" mod)
2023-09-14 17:49:41 +09:00
Dean Herbert
46126719eb
Fix slider tests not correctly passing slider velocity to slideres
2023-09-14 17:49:41 +09:00
Bartłomiej Dach
18672e178f
Merge pull request #24795 from peppy/fix-mod-rate-adjust-tooltip-x
...
Fix rate adjust mods not showing "x" prefix on customisation slider's tooltip
2023-09-14 10:18:32 +02:00
Dean Herbert
900376b662
Refactor storyboard resource lookup to be more streamlined
2023-09-14 16:15:50 +09:00