Commit Graph

95 Commits

Author SHA1 Message Date
5b0d75ee56 Only trim trailing spaces to avoid breakage in storyboard parsing 2021-03-18 16:30:30 +09:00
dff1d80f39 Update HasFlag usages to HasFlagFast 2021-02-25 15:38:56 +09:00
25af091409 Fix storyboard animations of very old beatmaps playing too slow
Closes https://github.com/ppy/osu/issues/10772.
2020-11-12 17:03:43 +09:00
fd4bab85cf Merge branch 'master' into epilepsy-warning 2020-10-20 01:06:46 +02:00
a9f27a71a2 Fix code formatting issues 2020-10-19 23:53:41 +02:00
d536a1f75e Fix breaks being culled too early 2020-10-09 21:04:56 +09:00
acbf13ddc4 add epilepsy warning field 2020-07-20 17:36:42 +07:00
0ea13dea55 Introduce legacy timing point fp errors 2020-07-13 17:06:00 +09:00
f3b5149648 Move some suggestions to warnings, resolve issues 2020-06-03 16:48:44 +09:00
72fb34f82c Fix overriding control points incorrectly 2020-04-21 14:19:05 +09:00
0eaea8ef9d Create a constructor for break period
For simple construction of break periods (e.g. filling a method with an array of break periods inside a test case)
2020-04-05 21:29:03 +03:00
76c832518f Render video as a part of the storyboard 2020-03-07 21:32:03 -08:00
d68d7edea3 Start background video playback based on provided offset 2020-03-07 14:08:13 -08:00
5b452293d6 Minor cleanups for legacy beatmap decoders
Replaces some string.StartsWith(string, StringComparison.Ordinal) calls with ring.StartsWith(char) , when only one char is compared. Possible since .NET-Standard 2.1

And another LegacyStoryboardDecoder.handleEvents() cleanup, saves some MB of allocations.
2020-02-08 18:05:27 +01:00
219e14baa2 Address review and fix InspectCode 2020-01-24 17:05:27 +01:00
6658bdb223 Fix CodeFactor issues 2020-01-23 16:34:43 +01:00
316a764f6f Minor cleanups for Legacy Storyboard/Beatmap decoder 2020-01-23 16:23:53 +01:00
abf3f341b7 Merge remote-tracking branch 'refs/remotes/origin/master' into legacy-beatmap-saving 2019-12-13 19:01:25 +09:00
b86a3dbfab PathStandardise -> ToStandardisedPath 2019-12-11 16:06:56 +08:00
6b3c7c8421 Remove usages of FileSafety class. 2019-12-11 16:05:35 +08:00
c378e525da Extract the rest of legacy enums 2019-12-10 20:23:15 +09:00
3c18872a16 Extract legacy effect flags enum 2019-12-10 20:19:31 +09:00
31cc0d13da Use 'out var'. 2019-11-12 19:55:26 +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
1a4817879e Fix precision changes in legacy control point types 2019-10-28 19:10:39 +09:00
8baf569f59 Remove necessity of AutoGenerated flag 2019-10-25 19:58:42 +09:00
e987db37ec Add grouping of ControlPoints 2019-10-25 19:52:02 +09: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
6e5cb8a318 implement video parsing 2019-08-30 23:19:34 +03:00
ac2060f1cf Throw exceptions and let LegacyDecoder handle them 2019-08-08 14:44:04 +09:00
7bcec31ea3 mention that the event was the type 2019-08-07 17:08:41 +09:00
669c2462ec Don't consider the type 2019-08-07 16:25:38 +09:00
66b02c0283 log type as well 2019-08-06 12:27:10 +09:00
cd6fe91882 Log error for invalid events 2019-08-06 10:05:21 +09:00
7e38aabe75 Remove equivalence check from controlpoint parsing 2019-05-21 14:27:41 +09:00
92f6f4d21a Apply same fix to other methods which were missed 2019-05-13 19:04:12 +09:00
66ebdbbe4c Fix control points with same timestamp potentially being parsed incorrectly 2019-05-08 18:13:07 +09:00
612db31c38 Apply newline additions 2019-04-01 12:16:32 +09:00
8f00f2290a Log issues 2019-03-13 14:56:41 +09:00
241e336c21 Fix break parsing 2019-03-13 14:22:16 +09:00
f4c505709a Use parsing methods in more places
Limiting scope to beatmap decoding for this pass. Can expand to skin/storyboard in the future.
2019-03-13 13:56:31 +09:00
93b774104a Fix NaN handling 2019-03-13 11:30:33 +09:00
cc09ecbfcf Increase validation performed on .osu files to avoid hard crashes 2019-03-12 20:31:15 +09:00
8617aaa2a7 Update licence header (and remove year) 2019-01-24 17:43:03 +09:00
a2b8904b1e Merge branch 'master' into database-standardize-paths 2018-10-18 16:21:45 +09:00
bb07630743 Merge branch 'master' into database-standardize-paths 2018-10-12 14:08:25 +02:00
bd99a87298 Use ordinal comparison in LegacyBeatmapDecoder 2018-10-11 17:48:47 +09:00
b35f88b8ba Standardize AudioFile and BackgroundImage paths 2018-10-09 17:49:18 +02:00