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
f925e781a9
Refactor HitWindows for legibility
2019-09-06 15:24:14 +09:00
94b5caf740
Fix build issues
2019-08-23 15:18:56 +03: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
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
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
f1c9073338
Fix commented line check not working with whitespace
2019-05-14 16:16:55 +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
4c77899738
Add storyboard ordering test
2019-03-26 16:37:52 +09:00
0241148385
Add extensive tests
2019-03-13 11:30:38 +09:00
cfac47413c
Disable failing tests temporarily
2019-03-08 10:42:25 +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
6eff79913b
remove blank lines
2019-01-11 10:34:56 +01: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
e360985d73
Replace variables into the entire line
2018-08-14 18:15:09 +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
c78bfbfa55
Fix failing json conversion testcases
2018-07-02 13:34:19 +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