mirror of https://github.com/ppy/osu
86588778b1
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. |
||
---|---|---|
.. | ||
Himeringo - Yotsuya-san ni Yoroshiku (RLC) [Winber1's Extreme].osu | ||
Kozato snow - Rengetsu Ouka (_Kiva) [Yuki YukI].osu | ||
Soleily - Renatus (Gamu) [Insane].osu | ||
TestResources.cs | ||
Within Temptation - The Unforgiving (Armin) [Marathon].osu | ||
beatmap-version.osu | ||
comments.osu | ||
controlpoint-custom-samplebank.osu | ||
corrupted-header.osu | ||
empty-line-instead-of-header.osu | ||
empty-lines-at-start.osu | ||
hitobject-combo-offset.osu | ||
hitobject-custom-samplebank.osu | ||
hitobject-file-samples.osu | ||
hitobject-no-addition-bank.osu | ||
invalid-events.osu | ||
missing-header.osu | ||
no-empty-line-after-header.osu | ||
overlapping-control-points.osu | ||
skin-empty.ini | ||
skin.ini | ||
slider-samples.osu | ||
variable-with-suffix.osb |