Commit Graph

93 Commits

Author SHA1 Message Date
9259aa94f1 Fix Catmull slider parsing with duplicate initial point 2022-05-24 11:47:42 +09:00
fe49a7e678 Add failing tests 2022-05-18 17:10:19 +09:00
bda3cdc9a7 Add tests 2022-01-28 19:29:30 +09:00
7dc3940dee Add test coverage for preserving legacy beatmap info defaults 2022-01-27 21:49:26 +01:00
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
735414bc49 Replace TimeSignatures enum with struct for storage of arbitrary meter 2022-01-22 20:50:31 +01:00
b2d09b7b10 Fix further warnings 2022-01-12 23:42:12 +09:00
692e846acd Rename BeatmapSetInfo.OnlineBeatmapSetID to OnlineID to match interface 2021-11-12 17:52:44 +09:00
6a098a8634 Rename BeatmapInfo.OnlineBeatmapID to OnlineID to match interface 2021-11-12 17:46:24 +09:00
51a353e12d Rename BeatmapInfo.Version to DifficultyName to match underlying interface 2021-11-11 17:20:53 +09:00
ed07ee8c61 Update all existing usages of AuthorString/AuthorId
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
09f9731d74 Add temporary disable of failing r# inspection 2021-11-04 15:09:04 +09:00
aa0762ebe2 Add test coverage for failing slider case 2021-10-26 17:35:03 +09:00
bc37cb6f43 Merge branch 'master' into no-more-difficulty-control-points-info 2021-10-08 18:41:17 +09:00
b339c149d8 Copy BaseDifficulty to Beatmap<T> and move all write operations across 2021-10-06 15:10:45 +09:00
46bafb6252 Merge branch 'master' into no-more-difficulty-control-points-info 2021-09-28 13:53:56 +09:00
cd181452be Add decoding support for SamplesMatchPlaybackRate 2021-09-12 16:45:27 +02:00
8ffcea2e51 Remove unnecessary null checks 2021-09-06 21:32:43 +09:00
3c7a34bdbd Move mania-specific conversion to converter 2021-09-06 21:06:13 +09:00
b2a14b13dc Update outdated tests 2021-09-03 17:11:12 +09:00
a3d9ab1e2e Move approach rate to EffectControlPoint 2021-09-03 16:58:16 +09:00
071c56e90b Update usages of DifficultyPointAt 2021-09-03 16:58:16 +09:00
ccacf56dd8 Move to legacy namespace 2021-08-30 17:14:53 +09:00
7257aae7f2 Move samples to LegacyControlPointInfo 2021-08-30 17:14:53 +09:00
6dcd9427ac Remove bindable usage in PathControlPoint
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.

I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
a6c2cbd2e5 Add countdown settings to beatmap info model 2021-08-24 21:55:10 +02:00
399c3b0be8 Rename property, reword xmldoc and improve readability of update code 2021-07-21 17:32:56 +09:00
9d92b795fa Revert making ComboOffsets legacy and define BeatmapSkinComboIndex instead 2021-07-20 14:15:43 +03:00
bf6e98345c Remove and update pre-existing test cases 2021-05-05 14:23:18 +03:00
dd902441b0 Add tests for consecutive perfect-curve segments 2021-04-06 13:32:17 +02:00
42e816fcae Add failing tests 2021-04-05 17:48:29 +09:00
fed4accfea Update tests to refect new mappings 2020-10-30 12:12:30 +09:00
58194b4a31 Fix incorrect blank lines 2020-10-12 19:36:35 +09:00
36a8f61d26 Add failing test for implicit segments 2020-10-12 18:58:07 +09:00
e70d261474 Add failing test 2020-10-12 18:03:41 +09:00
6b5b215299 Split out IHasPath from IHasCurve to better define hitobjects 2020-05-26 17:44:47 +09:00
72fb34f82c Fix overriding control points incorrectly 2020-04-21 14:19:05 +09:00
0677f746aa Provide the ruleset to converter classes 2019-12-24 16:02:16 +09:00
144812669d Use static local functions. 2019-11-12 19:56:54 +08:00
cf2d885099 Fix control points being flushed too late 2019-10-30 18:02:18 +09:00
514c9f1eef Merge branch 'master' into bindable-control-points 2019-10-30 16:20:54 +09:00
7c6ccce3ba Add tests covering precision case 2019-10-29 18:02:30 +09:00
8baf569f59 Remove necessity of AutoGenerated flag 2019-10-25 19:58:42 +09:00
76c74719a4 Add test for fallback decoder overwrite
LegacyDifficultyCalculatorBeatmapDecoder was registered as a fallback
decoder in commit ffde389 for future use in the server-side difficulty
calculation components. Due to the pre-existing fallback registrations
this causes a runtime crash when the diffcalc components are started.
Add a test reproducing this scenario to prevent the issue from
resurfacing in the future.
2019-10-04 17:00:51 +02:00
86588778b1 Implement fallback decoder registration
After the preparatory introduction of LineBufferedReader, it is now
possible to introduce registration of fallback decoders that won't drop
input supplied in the first line of the file.

A fallback decoder is used when the magic in the first line of the file
does not match any of the other known decoders. In such a case,
the fallback decoder is constructed and provided a LineBufferedReader
instance. The process of matching magic only peeks the first non-empty
line, so it is available for re-reading in Decode() using ReadLine().

There can be only one fallback decoder per type; a second attempt of
registering a fallback will result in an exception to avoid bugs.

To address the issue of parsing failing on badly or non-headered files,
set the legacy decoders for Beatmaps and Storyboards as the fallbacks.

Due to non-trivial logic, several new, passing unit tests with possible
edge cases also included.
2019-09-15 01:28:07 +02:00
11eda44d34 Migrate decoding to line-buffered reader
Migrate all usages of StreamReader in the context of decoding beatmaps,
storyboards or skins to the new LineBufferedReader.
2019-09-15 01:28:07 +02:00
15a592e25e Just assert doesn't throw and don't catch at LegacyDecoder 2019-08-07 19:25:40 +09:00
497d2cb677 shorten tests and rename 2019-08-06 12:35:18 +09:00
2c32d886d7 Add better asserts 2019-08-06 10:39:54 +09:00
b8c38d4dfd remove unnecessary assert 2019-08-06 10:36:26 +09:00