Dean Herbert
a7554dcdf7
Use a constant for the early version timing offset
2022-03-24 16:43:41 +09:00
Dean Herbert
a029e418cf
Use internal
instead of protected internal
2022-02-18 17:06:04 +09:00
Dean Herbert
420e2c538f
Automatically use an AssemblyRulesetStore
if no custom store is registered
2022-02-18 16:52:34 +09:00
Dean Herbert
5477af08c5
Register an AssemblyRulesetStore
in tests which don't use OsuGameBase
2022-02-16 17:21:57 +09:00
Dean Herbert
13086541f0
Add static RulesetStore
to LegacyBeatmapDecoder
2022-02-16 17:13:54 +09:00
Dean Herbert
142a67e163
Fix approach rate not being transferred from OD on older beatmaps
2022-01-28 18:53:28 +09:00
Bartłomiej Dach
1b8136e3e0
Change some BeatmapInfo
defaults in a backwards compatible manner
2022-01-27 21:49:37 +01:00
Dean Herbert
5288eedd31
Update all usages of RulesetID
and Ruleset.ID
to use Ruleset.OnlineID
2022-01-27 15:38:03 +09:00
Bartłomiej Dach
735414bc49
Replace TimeSignatures
enum with struct for storage of arbitrary meter
2022-01-22 20:50:31 +01:00
Dean Herbert
67bf95bc91
Remove all usage of AuthorString
2022-01-18 23:30:40 +09:00
Dean Herbert
3e0e01abdb
Move bookmark parsing logic into LegacyBeatmapDecoder
2021-11-24 16:29:51 +09:00
Dean Herbert
692e846acd
Rename BeatmapSetInfo.OnlineBeatmapSetID
to OnlineID
to match interface
2021-11-12 17:52:44 +09:00
Dean Herbert
6a098a8634
Rename BeatmapInfo.OnlineBeatmapID
to OnlineID
to match interface
2021-11-12 17:46:24 +09:00
Dean Herbert
51a353e12d
Rename BeatmapInfo.Version
to DifficultyName
to match underlying interface
2021-11-11 17:20:53 +09:00
smoogipoo
bc37cb6f43
Merge branch 'master' into no-more-difficulty-control-points-info
2021-10-08 18:41:17 +09:00
Dean Herbert
b339c149d8
Copy BaseDifficulty
to Beatmap<T>
and move all write operations across
2021-10-06 15:10:45 +09:00
Dean Herbert
46bafb6252
Merge branch 'master' into no-more-difficulty-control-points-info
2021-09-28 13:53:56 +09:00
Bartłomiej Dach
80197bae48
Revert not decoding legacy difficulty points on scrolling rulesets for now
2021-09-18 15:32:08 +02:00
Bartłomiej Dach
8026968939
Move difficulty -> effect point conversion back to decoder
2021-09-18 14:38:38 +02:00
Bartłomiej Dach
cd181452be
Add decoding support for SamplesMatchPlaybackRate
2021-09-12 16:45:27 +02:00
Dean Herbert
3c7a34bdbd
Move mania-specific conversion to converter
2021-09-06 21:06:13 +09:00
Dean Herbert
766d789845
Rename ApproachRate
to ScrollSpeed
for now (to reduce complexity/confusion)
2021-09-06 21:06:13 +09:00
Dean Herbert
d587dc6203
Populate new approach rate where required
2021-09-03 17:11:12 +09:00
Dean Herbert
a3d9ab1e2e
Move approach rate to EffectControlPoint
2021-09-03 16:58:16 +09:00
Dean Herbert
015df282fe
Simplify copy operations
2021-08-30 18:32:55 +09:00
Dean Herbert
6ee4a6526c
Don't block sample points from still being added to ControlPointInfo
2021-08-30 17:14:53 +09:00
Dean Herbert
7257aae7f2
Move samples to LegacyControlPointInfo
2021-08-30 17:14:53 +09:00
Bartłomiej Dach
a6c2cbd2e5
Add countdown settings to beatmap info model
2021-08-24 21:55:10 +02:00
Dean Herbert
5b0d75ee56
Only trim trailing spaces to avoid breakage in storyboard parsing
2021-03-18 16:30:30 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Dean Herbert
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
Bartłomiej Dach
fd4bab85cf
Merge branch 'master' into epilepsy-warning
2020-10-20 01:06:46 +02:00
Bartłomiej Dach
a9f27a71a2
Fix code formatting issues
2020-10-19 23:53:41 +02:00
smoogipoo
d536a1f75e
Fix breaks being culled too early
2020-10-09 21:04:56 +09:00
Gagah Pangeran
acbf13ddc4
add epilepsy warning field
2020-07-20 17:36:42 +07:00
smoogipoo
0ea13dea55
Introduce legacy timing point fp errors
2020-07-13 17:06:00 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
smoogipoo
72fb34f82c
Fix overriding control points incorrectly
2020-04-21 14:19:05 +09:00
Salman Ahmed
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
voidedWarranties
76c832518f
Render video as a part of the storyboard
2020-03-07 21:32:03 -08:00
voidedWarranties
d68d7edea3
Start background video playback based on provided offset
2020-03-07 14:08:13 -08:00
Berkan Diler
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
Berkan Diler
219e14baa2
Address review and fix InspectCode
2020-01-24 17:05:27 +01:00
Berkan Diler
6658bdb223
Fix CodeFactor issues
2020-01-23 16:34:43 +01:00
Berkan Diler
316a764f6f
Minor cleanups for Legacy Storyboard/Beatmap decoder
2020-01-23 16:23:53 +01:00
smoogipoo
abf3f341b7
Merge remote-tracking branch 'refs/remotes/origin/master' into legacy-beatmap-saving
2019-12-13 19:01:25 +09:00
Huo Yaoyuan
b86a3dbfab
PathStandardise -> ToStandardisedPath
2019-12-11 16:06:56 +08:00
Huo Yaoyuan
6b3c7c8421
Remove usages of FileSafety class.
2019-12-11 16:05:35 +08:00
smoogipoo
c378e525da
Extract the rest of legacy enums
2019-12-10 20:23:15 +09:00
smoogipoo
3c18872a16
Extract legacy effect flags enum
2019-12-10 20:19:31 +09:00
Huo Yaoyuan
31cc0d13da
Use 'out var'.
2019-11-12 19:55:26 +08:00
smoogipoo
cf2d885099
Fix control points being flushed too late
2019-10-30 18:02:18 +09:00
Dan Balasescu
514c9f1eef
Merge branch 'master' into bindable-control-points
2019-10-30 16:20:54 +09:00
Dean Herbert
1a4817879e
Fix precision changes in legacy control point types
2019-10-28 19:10:39 +09:00
Dean Herbert
8baf569f59
Remove necessity of AutoGenerated flag
2019-10-25 19:58:42 +09:00
Dean Herbert
e987db37ec
Add grouping of ControlPoints
2019-10-25 19:52:02 +09:00
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
Bartłomiej Dach
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
Andrei Zavatski
6e5cb8a318
implement video parsing
2019-08-30 23:19:34 +03:00
smoogipoo
ac2060f1cf
Throw exceptions and let LegacyDecoder handle them
2019-08-08 14:44:04 +09:00
David Zhao
7bcec31ea3
mention that the event was the type
2019-08-07 17:08:41 +09:00
David Zhao
669c2462ec
Don't consider the type
2019-08-07 16:25:38 +09:00
David Zhao
66b02c0283
log type as well
2019-08-06 12:27:10 +09:00
David Zhao
cd6fe91882
Log error for invalid events
2019-08-06 10:05:21 +09:00
smoogipoo
7e38aabe75
Remove equivalence check from controlpoint parsing
2019-05-21 14:27:41 +09:00
Dean Herbert
92f6f4d21a
Apply same fix to other methods which were missed
2019-05-13 19:04:12 +09:00
Dean Herbert
66ebdbbe4c
Fix control points with same timestamp potentially being parsed incorrectly
2019-05-08 18:13:07 +09:00
Dean Herbert
612db31c38
Apply newline additions
2019-04-01 12:16:32 +09:00
Dean Herbert
8f00f2290a
Log issues
2019-03-13 14:56:41 +09:00
Dean Herbert
241e336c21
Fix break parsing
2019-03-13 14:22:16 +09:00
Dean Herbert
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
Dean Herbert
93b774104a
Fix NaN handling
2019-03-13 11:30:33 +09:00
Dean Herbert
cc09ecbfcf
Increase validation performed on .osu files to avoid hard crashes
2019-03-12 20:31:15 +09:00
Dean Herbert
8617aaa2a7
Update licence header (and remove year)
2019-01-24 17:43:03 +09:00
Dean Herbert
a2b8904b1e
Merge branch 'master' into database-standardize-paths
2018-10-18 16:21:45 +09:00
HoLLy
bb07630743
Merge branch 'master' into database-standardize-paths
2018-10-12 14:08:25 +02:00
smoogipoo
bd99a87298
Use ordinal comparison in LegacyBeatmapDecoder
2018-10-11 17:48:47 +09:00
HoLLy
b35f88b8ba
Standardize AudioFile and BackgroundImage paths
2018-10-09 17:49:18 +02:00
smoogipoo
b7499fa956
Allow TimingControlPoint to be overridden
2018-10-09 11:34:38 +09:00
smoogipoo
551581e5cd
Skip invalid hitobject types, log error instead
2018-08-22 15:59:58 +09:00
smoogipoo
ce77473910
Simplify usage of ConvertHitObjectParser
2018-08-15 10:24:56 +09:00
smoogipoo
b8824a41b5
Fix certain control points not being replaced
2018-08-14 11:44:53 +09:00
Dean Herbert
da8fc0ee5d
ToLower -> ToLowerInvariant
2018-07-25 07:37:05 +02:00
Dean Herbert
84c13174d9
Merge branch 'master' into use-has-flags
2018-07-17 03:50:40 +09:00
morguldir
fc77e01ba9
Fix formatting, make StripComments protected
...
Don't strip comments when calling ParseLine
2018-07-16 16:35:55 +02:00
Dean Herbert
98cddc0c04
Fix some legacy cases
2018-07-16 16:26:37 +09:00
Dean Herbert
dbc538abbe
Use Enum.HasFlag
...
With .NET core 2.0+ this is as efficient as the ugly code we've been using.
2018-07-16 16:18:46 +09:00
morguldir
429306aa87
Fix casing, use ordinal string comparison when stripping comments
2018-07-16 01:54:20 +02:00
morguldir
6c861a1638
Strip comments from everything except metadata
2018-07-16 01:04:41 +02:00
Dean Herbert
44aecdc3a0
Rename method to EquivalentTo
2018-07-05 15:00:02 +09:00
smoogipoo
b664d3ef81
Fix time being a part of controlpoint change comparisons
2018-07-02 13:34:25 +09:00
smoogipoo
3a9a82c80c
Add back legacy custom sample banks
2018-06-28 18:29:12 +09:00
smoogipoo
2882981f9c
Implement and use equality comparers for ControlPoint
2018-06-28 18:28:59 +09:00
Dean Herbert
955a78e76d
Remove OnlineBeatmapSetID from BeatmapInfo
...
It should now be retrieved via the linked BeatmapSetInfo
2018-06-08 15:26:27 +09:00
Dean Herbert
8220e0c79a
Remove OnlineBeatmapSetID from BeatmapMetadata
2018-06-08 12:46:34 +09:00
smoogipoo
8ae2a3696f
Apply platform universal offset at player level
2018-05-28 03:31:46 +09:00
smoogipoo
0f817d18d4
Add explanatory comment
2018-05-16 13:59:51 +09:00
smoogipoo
cf44357bdb
Use a stable sort for hitobjects
2018-05-16 13:30:48 +09:00
Adonais Romero González
06c6f55995
Apply offset to end times on legacy converter
2018-04-30 00:43:32 -07:00
Dean Herbert
32a74f95a5
Normalize all the line endings
2018-04-13 18:26:38 +09:00