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