1
0
mirror of https://github.com/ppy/osu.git synced 2024-12-16 04:22:54 +08:00
Commit Graph

94 Commits

Author SHA1 Message Date
Bartłomiej Dach
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
Dean Herbert
343af28ed5 Add extra legacy skin parsing tests 2019-09-03 18:59:23 +09:00
David Zhao
15a592e25e Just assert doesn't throw and don't catch at LegacyDecoder 2019-08-07 19:25:40 +09:00
David Zhao
497d2cb677 shorten tests and rename 2019-08-06 12:35:18 +09:00
David Zhao
cd6fe91882 Log error for invalid events 2019-08-06 10:05:21 +09:00
Dean Herbert
58efa7a177
Merge pull request #4729 from peppy/fix-control-point-ordering
Fix control points with same timestamp potentially being parsed incorrectly
2019-05-21 15:33:27 +09:00
smoogipoo
f1c9073338 Fix commented line check not working with whitespace 2019-05-14 16:16:55 +09:00
smoogipoo
19bc6b72cc More tests to showcase failures 2019-05-14 10:13:42 +09:00
smoogipoo
7aa10956b5 Add unit test 2019-05-14 09:46:42 +09:00
smoogipoo
a08086cc8a Fix volume not being considered for file samples 2019-03-05 18:21:29 +09:00
Dean Herbert
a6b2e9eb0b Remove unused pieces of ini 2019-02-05 18:08:27 +09:00
Dean Herbert
2f8f4fac64 Fix combo colour fallbacks when skin is not providing any 2019-02-05 17:54:14 +09:00
Dean Herbert
8d4faafdbe Rename file to match class 2019-01-28 18:41:57 +09:00
Dean Herbert
628b3e1119 Move osu-resources to nuget 2019-01-28 18:33:39 +09:00
Dean Herbert
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
smoogipoo
eb88768bd0 Fix incorrect controlpoint being applied to samples 2018-12-03 17:21:27 +09:00
smoogipoo
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
smoogipoo
92d570342c Fix sample additions not falling back to non-addition bank 2018-11-05 17:35:24 +09:00
smoogipoo
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
smoogipoo
8a2a6a3ecb Preserve the beatmap's version 2018-10-23 14:59:21 +09:00
smoogipoo
47be95ce0b Fix slider nodes using the wrong samples 2018-10-16 17:10:24 +09:00
smoogipoo
cb1703c6e2 Fix colours with alpha components not being parsed 2018-10-05 11:19:01 +09:00
smoogipoo
557a2ee39d Add more comprehensive tests 2018-08-17 10:04:00 +09:00
smoogipoo
05b5144dac Add parsing test 2018-08-15 13:36:22 +09:00
smoogipoo
e360985d73 Replace variables into the entire line 2018-08-14 18:15:09 +09:00
smoogipoo
c087a73f40 Implement per-hitobject custom sample banks 2018-07-20 15:12:44 +09:00
smoogipoo
967d0c3c72 Adjust testcase 2018-07-20 15:12:04 +09:00
smoogipoo
c1b8799253 Add simple testcase 2018-07-02 14:40:43 +09:00
smoogipoo
3a9a82c80c Add back legacy custom sample banks 2018-06-28 18:29:12 +09:00
Dean Herbert
32a74f95a5 Normalize all the line endings 2018-04-13 18:26:38 +09:00
Dean Herbert
37d393bca0 Update licence headers 2018-01-05 20:21:19 +09:00
smoogipoo
c99ea32574 Merge branch 'master' into beatmap-serialization 2017-12-21 13:39:39 +09:00
smoogipoo
b0684cb194 Add storyboard test case but disable for now 2017-12-07 12:02:34 +09:00
smoogipoo
499ecb4edd Add parity checking OsuJsonDecoder test cases 2017-12-07 11:11:38 +09:00
Aergwyn
2bbfe0dda1 expanded BeatmapDecoder tests, added StoryboardDecoder tests 2017-12-02 15:28:00 +01:00
Dean Herbert
1e6c480791 Add back missing tests 2017-09-25 11:58:37 +08:00
Dean Herbert
393aa12eec Remove old files 2017-09-19 16:06:59 +09:00
Dean Herbert
f207da6041
Add/update license headers. 2017-02-14 18:17:35 +09:00
Dean Herbert
6cc5407348 Fix path not being local enough for some unit tests. 2016-10-25 00:27:47 +09:00
John Leuenhagen
fedfb8a22a
Converted all .cs files to use CRLF line endings. 2016-10-13 23:33:58 -04:00
Drew DeVault
2f8fbee364 Moved test osz file into osu-resources 2016-10-13 12:18:29 +09:00
Drew DeVault
c0022f3515 Add more tests for legacy decoder 2016-10-13 12:17:31 +09:00
Drew DeVault
34b24e1399 Use embedded resources for test assets 2016-10-13 12:17:23 +09:00
Drew DeVault
2a3f047895 Start implementing legacy decoder 2016-10-13 12:16:48 +09:00