Commit Graph

57 Commits

Author SHA1 Message Date
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
a5c17ae26d Don't use GetDecoder 2019-08-06 10:14:36 +09:00
cd6fe91882 Log error for invalid events 2019-08-06 10:05:21 +09:00
60ea3d4e1a Fix skinning support for combobreak 2019-06-30 21:58:30 +09:00
7e38aabe75 Remove equivalence check from controlpoint parsing 2019-05-21 14:27:41 +09:00
e3ae858c87 Adjust testcase to avoid potential rounding issues 2019-05-21 14:01:41 +09:00
19bc6b72cc More tests to showcase failures 2019-05-14 10:13:42 +09:00
7aa10956b5 Add unit test 2019-05-14 09:46:42 +09:00
d7c09e7dbd Merge remote-tracking branch 'origin/master' into fix-new-inspections
# Conflicts:
#	osu.Game.Rulesets.Catch/Judgements/CatchDropletJudgement.cs
#	osu.Game.Rulesets.Catch/Judgements/CatchJudgement.cs
#	osu.Game.Rulesets.Mania/Scoring/ManiaScoreProcessor.cs
#	osu.Game.Rulesets.Osu/Replays/OsuAutoGenerator.cs
#	osu.Game.Rulesets.Osu/UI/Cursor/CursorTrail.cs
#	osu.Game.Tests/Visual/SongSelect/TestCaseBeatmapScoresContainer.cs
#	osu.Game/Graphics/OsuFont.cs
#	osu.Game/Online/API/Requests/Responses/APILegacyScoreInfo.cs
#	osu.Game/Overlays/Profile/Header/BadgeContainer.cs
#	osu.Game/Overlays/Profile/ProfileHeader.cs
#	osu.Game/Screens/Select/PlaySongSelect.cs
#	osu.Game/Skinning/LegacySkinDecoder.cs
2019-05-07 13:20:17 +09:00
0222424aef Make mods IReadOnlyList<Mod> gamewide
Prevents potential multiple evaluations of enumerable.
2019-04-10 17:20:36 +09:00
c584967eb1 Remove mods from workingbeatmap 2019-04-09 12:59:32 +09:00
c39c37a18d Apply more missed cases 2019-04-01 12:44:46 +09:00
a08086cc8a Fix volume not being considered for file samples 2019-03-05 18:21:29 +09:00
628b3e1119 Move osu-resources to nuget 2019-01-28 18:33:39 +09:00
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
eb88768bd0 Fix incorrect controlpoint being applied to samples 2018-12-03 17:21:27 +09:00
f27bd3ef3e OpenTK -> osuTK 2018-11-20 17:14:59 +09:00
ace1dce281 Merge remote-tracking branch 'origin/master' into fix-slider-samples
# Conflicts:
#	osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
2018-11-05 18:10:22 +09:00
92d570342c Fix sample additions not falling back to non-addition bank 2018-11-05 17:35:24 +09:00
a4caaf56ef Merge remote-tracking branch 'origin/master' into fix-slider-samples
# Conflicts:
#	osu.Game.Tests/Beatmaps/Formats/LegacyBeatmapDecoderTest.cs
#	osu.Game/Rulesets/Objects/Legacy/Catch/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Mania/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Osu/ConvertHitObjectParser.cs
#	osu.Game/Rulesets/Objects/Legacy/Taiko/ConvertHitObjectParser.cs
2018-11-05 16:38:28 +09:00
8a2a6a3ecb Preserve the beatmap's version 2018-10-23 14:59:21 +09:00
47be95ce0b Fix slider nodes using the wrong samples 2018-10-16 17:10:24 +09:00
cb1703c6e2 Fix colours with alpha components not being parsed 2018-10-05 11:19:01 +09:00
557a2ee39d Add more comprehensive tests 2018-08-17 10:04:00 +09:00
05b5144dac Add parsing test 2018-08-15 13:36:22 +09:00
c087a73f40 Implement per-hitobject custom sample banks 2018-07-20 15:12:44 +09:00
967d0c3c72 Adjust testcase 2018-07-20 15:12:04 +09:00
65d351c31a Fix failing test cases 2018-07-10 16:26:04 +09:00
c1b8799253 Add simple testcase 2018-07-02 14:40:43 +09:00
9fd9af22f0 Remove unused using 2018-06-28 18:40:12 +09:00
94f1b2eeb8 Only custom sample banks > 1 modify the filename 2018-06-28 18:29:17 +09:00
3a9a82c80c Add back legacy custom sample banks 2018-06-28 18:29:12 +09:00
955a78e76d Remove OnlineBeatmapSetID from BeatmapInfo
It should now be retrieved via the linked BeatmapSetInfo
2018-06-08 15:26:27 +09:00
8220e0c79a Remove OnlineBeatmapSetID from BeatmapMetadata 2018-06-08 12:46:34 +09:00
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
9a0fc9e29a Move combo colours completely out of beatmap 2018-03-20 16:24:06 +09:00
e43de68ad3 Move colour parsing to LegacyDecoder 2018-03-13 19:13:50 +09:00