1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-14 23:37:26 +08:00
Commit Graph

1844 Commits

Author SHA1 Message Date
smoogipoo
69fb984e71 Remove EquivalentTo() and Equals() 2020-04-17 17:04:09 +09:00
smoogipoo
6935221463 Improve logic for CSB transfer 2020-04-14 21:05:07 +09:00
Dan Balasescu
eb968d2bdb
Merge branch 'master' into timing-equivalence 2020-04-14 14:02:02 +09:00
Dean Herbert
081a02f748
Merge branch 'master' into catch-hyperdash-fruit-colouring 2020-04-14 10:01:15 +09:00
smoogipoo
cee4b005e6 Fix custom sample set 0 not falling back to default samples 2020-04-13 20:00:06 +09:00
Alchyr
f115fecb23 Fix formatting 2020-04-09 09:34:40 -07:00
smoogipoo
b900f229e7 Fix possible legacy beatmap encoder nullref 2020-04-09 20:21:42 +09:00
Alchyr
65823fb2e1 Use redundancy test 2020-04-08 01:42:35 -07:00
Alchyr
66a474619c Adjust TimingControlPoint equivalency 2020-04-07 18:13:26 -07:00
Salman Ahmed
1b76a53d32 Move CatchTheBeat section handling to LegacySkinDecoder
Best place to reside at
2020-04-05 22:10:35 +03: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
Salman Ahmed
10e65c4f53 Add handling for legacy CatchTheBeat section in LegacyDecoder 2020-04-05 00:10:12 +03:00
Will Kennedy
57944bd335 fix(?) InspectCode warnings 2020-04-02 21:36:31 -04:00
Will Kennedy
c042e709a5 Fix GetDecoder getting fallback decoder too often 2020-04-02 20:43:54 -04:00
smoogipoo
a77933f5e0 Add support for parsing mania skin colours 2020-04-02 17:56:12 +09:00
Dan Balasescu
8964001423
Merge branch 'master' into fix-invalid-set-ids-on-import 2020-03-30 22:24:12 +09:00
smoogipoo
4719aac235 Add basic mania skin parsing 2020-03-30 17:18:09 +09:00
Dean Herbert
f71c8cb30f Only drop online set ID if beatmap IDs were stripped in online retrieval 2020-03-30 15:07:56 +09:00
Dean Herbert
7ecce713bb Keep provided IDs where possible if not online 2020-03-30 15:07:39 +09:00
Dean Herbert
09d860d5f5 Fix imports with no matching beatmap IDs still retaining a potentially invalid set ID 2020-03-30 11:52:25 +09:00
voidedWarranties
b8f20831a1 Video no longer modifies storyboard resolution 2020-03-24 20:04:09 -07:00
Dean Herbert
f2e0fba164 Remove VideoFile from BeatmapMetadata
Leaving in database because it's a pain to drop columns.
2020-03-25 12:00:02 +09:00
Dean Herbert
729e006c3a
Merge branch 'master' into video-offset 2020-03-21 20:03:46 +09:00
smoogipoo
9c5423734a Throw timeout exceptions instead 2020-03-16 11:33:26 +09:00
Dan Balasescu
f390c1995d
Apply comment suggestions
Co-Authored-By: Dean Herbert <pe@ppy.sh>
Co-Authored-By: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2020-03-16 11:29:28 +09:00
voidedWarranties
c27751050b Switch back to strings and update setting labels 2020-03-12 23:29:11 -07:00
smoogipoo
f7c036726a Add beatmap loading timeout 2020-03-13 13:52:40 +09:00
smoogipoo
40ab860ab5 Remove unused using 2020-03-11 18:23:30 +09:00
smoogipoo
9667934ed9 Remove unlimited timing points in difficulty calculation 2020-03-11 18:17:32 +09:00
Dan Balasescu
1d556bfc5f
Merge branch 'master' into video-offset 2020-03-11 15:13:18 +09:00
smoogipoo
e6858bf130 Fix crashes on some storyboards 2020-03-10 11:58:33 +09:00
voidedWarranties
4624582703 Revert position offset change for separate pull 2020-03-08 14:40:36 -07:00
voidedWarranties
22dd93a4f6 Code quality, read position offsets 2020-03-08 14:02:39 -07: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
smoogipoo
dd2bd5c19d Add delay for loading multiplayer beatmap covers 2020-02-27 20:01:23 +09:00
Dean Herbert
db4fe4f728
Merge branch 'master' into adjust-beatmap-overlay 2020-02-21 09:52:44 +09:00
TheWildTree
62227ad856 Add MaxCombo to BeatmapInfo 2020-02-19 17:58:10 +01:00
TheWildTree
64a9b9c6fb Remove redundant using directives 2020-02-16 21:52:08 +01:00
TheWildTree
dd5e713c0c Adjust colours 2020-02-16 21:42:05 +01:00
Dean Herbert
006c52bbe5 Fix visible error being thrown when playing a no-video beatmap 2020-02-16 15:08:37 +09:00
recapitalverb
a7c2fd078f Fix remaining cases 2020-02-14 20:27:21 +07:00
Dean Herbert
e022352812
Merge pull request #7784 from smoogipoo/fix-beatmap-disposal
Fix disposal-related errors by making WorkingBeatmap non-disposable
2020-02-13 18:52:47 +09:00
Tree
b694b0c90c
Merge branch 'master' into adjust-beatmap-overlay 2020-02-11 21:07:26 +01:00
smoogipoo
0ab3982494 Unify error handling 2020-02-10 17:25:11 +09:00
smoogipoo
668f36d7f3 Clean up logging 2020-02-10 17:04:31 +09:00
smoogipoo
cef682aa03 Make WorkingBeatmap non-disposable 2020-02-10 17:02:01 +09:00
smoogipoo
a988a53d69 Better handle beatmap task cancel exception 2020-02-10 17:02:00 +09:00
Dan Balasescu
1f3d4e1f72 Merge branch 'master' into string_cleanup 2020-02-10 13:37:17 +09:00
Dean Herbert
96574a98ad Use non-zero length for fallback virtual track (allows tests to work as expected) 2020-02-09 21:34:56 +09:00
Dean Herbert
d73ef7c37e Change DummyBeatmap's track to be 0 length 2020-02-09 21:25:11 +09: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
TheWildTree
76037e4ffd Recolour ranked status pill 2020-02-05 16:31:14 +01:00
Dean Herbert
eabb5a8701 Use ToString instead of Substring 2020-01-26 17:40:38 +09:00
Dean Herbert
50ab5a7d07 Merge remote-tracking branch 'upstream/master' into LegacyDecoder_changes 2020-01-26 17:38:44 +09: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
c25fefa3ca Add beatmap package export 2020-01-15 13:44:46 +09:00
smoogipoo
4fe5ea8e92 Clear working beatmap cache on save 2020-01-14 19:24:53 +09:00
smoogipoo
a255832195 Add beatmapmanager method for saving 2020-01-14 19:24:53 +09:00
smoogipoo
681a43a318 Refactor to support beatmap updates 2020-01-14 19:24:53 +09:00
Berkan Diler
34d8740ec4 Remove remaining usage of osuTK.MathHelper 2020-01-08 20:21:13 +01:00
Ganendra Afrasya
e433e8b78f Remove unused variable 2020-01-06 17:12:10 +07:00
Dan Balasescu
9702cc9809
Merge branch 'master' into remove-legacy-id 2019-12-25 21:01:12 +09:00
Dean Herbert
504a55e803
Merge branch 'master' into better-beatmap-conversion 2019-12-25 19:52:06 +09:00
Dean Herbert
145ac8e0b5 Remove redundant setter 2019-12-25 14:55:05 +09:00
Dean Herbert
0677f746aa Provide the ruleset to converter classes 2019-12-24 16:02:16 +09:00
smoogipoo
3e03916c39 Add length check back to workingbeatmap 2019-12-23 17:45:59 +09:00
smoogipoo
6e7426a098 Simplify/improve beatmap conversion precheck 2019-12-23 17:44:18 +09:00
Salman Ahmed
55be4478aa Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours 2019-12-21 12:36:09 +03:00
smoogipoo
1802e0ff11 Fix storyboard incorrectly re-ordering elements 2019-12-20 16:04:05 +09:00
Dean Herbert
5cdc7d3b18
Merge pull request #7183 from smoogipoo/legacy-beatmap-saving
Add initial implementation of a legacy beatmap encoder
2019-12-18 18:43:14 +09:00
Dean Herbert
51a01c7006
Merge pull request #7256 from peppy/remove-ruleset-ctor-param
Remove RulesetInfo parameter from Ruleset constructor
2019-12-18 18:42:42 +09:00
Dean Herbert
1f3e1b3085 Remove unused using 2019-12-18 17:59:07 +09:00
Dean Herbert
4befabc257 Split out complex method 2019-12-18 17:35:51 +09:00
smoogipoo
602ce698d5 Fix storyboard vectorscale and scale cross-pollution 2019-12-18 17:21:38 +09:00
Dean Herbert
fa067b8799
Merge branch 'master' into legacy-beatmap-saving 2019-12-18 17:17:03 +09:00
Dean Herbert
6e0802e50c Remove RulesetInfo parameter from Ruleset constructor 2019-12-18 14:49:09 +09:00
Dean Herbert
036efb9947
Merge branch 'master' into fix-effect-points 2019-12-18 01:43:15 +09:00
Dean Herbert
886db8eb22
Merge branch 'master' into fix-local-score-availability 2019-12-18 01:15:20 +09:00
smoogipoo
946a202ee5 Fix online replays not being available locally 2019-12-17 15:47:08 +09:00
Huo Yaoyuan
caf3f774ba CA1309: compare strings correctly. 2019-12-17 13:00:15 +08:00
Huo Yaoyuan
ecfc6dfa3d CA1825: use Array.Empty. 2019-12-17 12:59:48 +08:00
Dean Herbert
272d7d0ca9
Merge branch 'master' into fallback-to-skin-combo-colours 2019-12-17 12:36:20 +09:00
smoogipoo
be7b00cc34 Fix potentially incorrect custom sample bank 2019-12-16 17:12:31 +09:00
smoogipoo
3c9884456f Use writeline 2019-12-16 17:08:46 +09:00
smoogipoo
5278236458 Use invariant ToLower() 2019-12-16 17:07:30 +09:00
smoogipoo
27150d6bbc Use char concatenation for performance 2019-12-16 17:06:52 +09:00
smoogipoo
9fa6954ac2 Refactor getSampleBank a bit 2019-12-16 17:05:24 +09:00
smoogipoo
98dd1c2590 Use SingleOrDefault() where possible 2019-12-16 17:03:58 +09:00
smoogipoo
d56e99865c Throw not implemented exceptions 2019-12-16 16:57:49 +09:00
smoogipoo
596fda3c1f Refactor switch 2019-12-16 16:57:40 +09:00
smoogipoo
58e3fb0d0f Coalesce to -1 2019-12-16 16:43:20 +09:00
Huo Yaoyuan
c457571da6 Use index and range expressions 2019-12-15 20:17:35 +08:00
smoogipoo
ea4eb6b204 CI cleanups 2019-12-13 21:29:10 +09:00
smoogipoo
9bc02f489e Add missing headers 2019-12-13 19:14:49 +09:00
smoogipoo
0ad28a9400 Start at version 128 2019-12-13 19:11:45 +09:00
smoogipoo
abf3f341b7 Merge remote-tracking branch 'refs/remotes/origin/master' into legacy-beatmap-saving 2019-12-13 19:01:25 +09:00
smoogipoo
87a7f340e3 Fix first sample point being treated as redundant 2019-12-13 18:14:01 +09:00
smoogipoo
654499d8b0 Remove whitespace 2019-12-13 17:33:18 +09:00
smoogipoo
97158fce7d Always attach a new combo to spinners 2019-12-13 17:02:10 +09:00
smoogipoo
0b7c4f252c Fix artist being written in place of version 2019-12-13 17:01:59 +09:00
smoogipoo
53a665a034 Fix sound types and banks not being written correctly 2019-12-13 17:01:44 +09:00
smoogipoo
ac984423bb Fix only single sound type being written 2019-12-12 19:53:30 +09:00
smoogipoo
dedae69db8 Prefer legacy curve format if possible 2019-12-12 19:52:15 +09:00
smoogipoo
d35d34c01b Fix hanging semicolon for per-node bank output 2019-12-12 19:01:43 +09:00
smoogipoo
4760307bbb Don't output the first slider control point 2019-12-12 19:01:15 +09:00
smoogipoo
60063eefd2 Fix up background/video events 2019-12-12 18:51:05 +09:00
smoogipoo
51bdb73b91 Don't write empty file names 2019-12-12 18:49:47 +09:00
smoogipoo
f89042cd0a Add missing section header 2019-12-12 18:48:22 +09:00
smoogipoo
e09bbf0315 Implement background/video/break encoding 2019-12-12 18:47:28 +09:00
smoogipoo
d1dc3456d1 Fix incorrect repeat point count 2019-12-12 18:42:48 +09:00
smoogipoo
c3475a2dde Write control points in absolute coordinates 2019-12-12 18:41:13 +09:00
smoogipoo
8f03599a62 Write default sampleset by name 2019-12-12 18:40:33 +09:00
Salman Ahmed
a9125f6544 Merge remote-tracking branch 'upstream/master' into fallback-to-skin-combo-colours 2019-12-12 12:37:51 +03:00
smoogipoo
be000e13e4 Implement initial legacy beatmap encoding support 2019-12-12 18:34:40 +09:00
smoogipoo
5861eca80d Make DrawableRuleset take a converted beatmap 2019-12-12 15:58:11 +09:00
Huo Yaoyuan
cffeceb229 Remove unnecessary comment. 2019-12-11 16:24:22 +08: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
smoogipoo
e3f925f69a Extract legacy hitobject type enum 2019-12-10 20:19:16 +09:00
smoogipoo
8012b21ffa Extract legacy sound type enum 2019-12-10 20:18:44 +09:00
Ganendra Afrasya
8be6abf607 Add param to let function return lighter colour for some diff 2019-12-06 10:07:16 +07:00
Ganendra Afrasya
0e97871461 Change colour if difficulty is ExpertPlus 2019-12-05 14:53:01 +07:00
Huo Yaoyuan
5375af7820 Remove other Equals(object) calls. 2019-12-03 20:23:27 +08:00
Dean Herbert
c49aeb08c4 Add API methods to perform requests out-of-queue 2019-11-29 20:03:14 +09:00
Huo Yaoyuan
c0fe91a84c Merge branch 'master' into sharpen 2019-11-26 18:21:50 +08:00
Dean Herbert
709ec1404f Centralise End/StartTime retrieval to extension method 2019-11-25 19:09:14 +09:00
iiSaLMaN
1e24ee7956 Remove ClearComboColours() 2019-11-24 02:07:56 +03:00
Dean Herbert
4e53bca8dd Simplify tests 2019-11-21 18:50:38 +09:00
Huo Yaoyuan
374ef6ff83 Merge branch 'master' into sharpen 2019-11-20 17:30:58 +08:00
Huo Yaoyuan
4d1513cef6 Sadly, xmldoc doesn't support tuple elements. 2019-11-17 21:01:56 +08:00
Huo Yaoyuan
b1b234c6fb Use paramref. 2019-11-17 20:49:36 +08:00
Huo Yaoyuan
f05b83d7d4 Use typeparamref. 2019-11-17 20:48:23 +08:00
Dean Herbert
0e587cb9f5 Merge branch 'master' into fix-duplicate-online-ids 2019-11-15 10:18:53 +09:00
Dean Herbert
6d54846462 Null online id on lookup failure 2019-11-15 10:18:47 +09:00
Dean Herbert
12243aaa9a Dedupe .osu files with same hash in same set 2019-11-14 19:38:20 +09:00
Dean Herbert
fbf81207d4 Don't assign server-fetched online id if it was assigned elsewhere 2019-11-14 18:55:12 +09:00
Dean Herbert
1bc0eae2a6 Fix beatmap online retrieval response running incorrectly scheduled 2019-11-14 18:53:45 +09:00
Dean Herbert
81033e1fdf Add extra logging 2019-11-14 18:52:07 +09:00
Huo Yaoyuan
dcfa98414f Use ??=. 2019-11-12 19:56:51 +08:00
Huo Yaoyuan
8a1b70513c No this. qualification. 2019-11-12 19:55:29 +08:00
Huo Yaoyuan
31cc0d13da Use 'out var'. 2019-11-12 19:55:26 +08:00
Dean Herbert
758c304d92
Merge branch 'master' into fallback-to-skin-combo-colours 2019-11-12 19:00:05 +09:00
Huo Yaoyuan
e9b8cbb516 Apply other styles. 2019-11-11 20:27:04 +08:00
Huo Yaoyuan
ccc8aa6fa4 Apply brace style. 2019-11-11 20:13:13 +08:00
iiSaLMaN
cee16e9419 Merge remote-tracking branch 'refs/remotes/upstream/master' into fallback-to-skin-combo-colours 2019-11-07 19:11:29 +03:00
iiSaLMaN
808543885f Change ComboColours type to IReadOnlyList<Color4>
Also exposes functions to modify the internal list (AddComboColours, ClearComboColours)
2019-11-07 15:54:30 +03:00
Dean Herbert
143f316cbe
Merge branch 'master' into fix-network-stalls 2019-11-06 17:54:08 +09:00
Dan Balasescu
b5a8bbaa60
Merge branch 'master' into editor-timing-screen 2019-11-06 12:02:00 +09:00
Dean Herbert
ddd58ea3da Use LongRunningLoad on network load components 2019-11-01 19:40:45 +09:00
Dean Herbert
0cd912fcd3 Cover all non-APIAccess APIRequest calls with exception handling 2019-10-31 15:04:13 +09:00
Dean Herbert
5899bbd8a6 Fix merge regressions 2019-10-30 18:45:50 +09:00
Dean Herbert
93076ad6a1
Merge branch 'master' into editor-timing-screen 2019-10-30 18:42:20 +09: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
Dan Balasescu
ced6042b3e
Use internal type name 2019-10-30 15:51:09 +09:00
Dean Herbert
1a4817879e Fix precision changes in legacy control point types 2019-10-28 19:10:39 +09:00
Dean Herbert
090881cf6f Add default bindable values 2019-10-28 16:23:43 +09:00
Dean Herbert
8f87957c70 Make all control point attributes bindable
Properties are left intact for compatibility reasons.
2019-10-28 16:23:43 +09:00
Dean Herbert
43ad4a3a3c Tidy up string output 2019-10-28 12:31:38 +09:00
Dean Herbert
8069674824 Merge remote-tracking branch 'upstream/master' into bindable-control-points 2019-10-28 11:52:04 +09:00
Dean Herbert
45da22afe9 Add xmldoc and combine GroupAt / CreateGroup 2019-10-28 11:40:33 +09:00
Dean Herbert
2a6b3fd67c Disallow inserting a group if one already exists with the current time value 2019-10-28 11:40:10 +09:00
Dean Herbert
59d983b66e Allow binding to ControlPointInfo's Groups 2019-10-28 11:39:53 +09:00
Dean Herbert
10033239c7 Allow binding to ControlPointGroup's ControlPoints 2019-10-28 11:39:17 +09:00
Dean Herbert
814b520e5e Avoid potential mis-cast in comparison 2019-10-27 11:35:45 +09:00
Dean Herbert
4290a71f44 Add special case for timing points
Timing points can't fallback to defaults and must be added at least once.
2019-10-26 11:38:05 +09:00
Dean Herbert
7502b64541 Merge branch 'control-point-grouping' into no-auto-gen 2019-10-26 10:35:34 +09:00
Dean Herbert
d6a49b9e93 Add back autogeneration rules
Will be removed in https://github.com/ppy/osu/pull/6604
2019-10-26 10:25:37 +09:00
Dean Herbert
7100319858 Fix incorrect control point retrieval in non-lookup cases 2019-10-26 08:31:41 +09:00
Dean Herbert
b52be3d639 Merge branch 'control-point-grouping' into no-auto-gen 2019-10-26 01:20:08 +09:00
Dean Herbert
d25f7f4c27 Correctly clear other lists 2019-10-26 01:19:23 +09:00
Dean Herbert
c031aeb14c Fix inspection 2019-10-26 00:06:05 +09:00
Dean Herbert
eefa411182 Merge branch 'control-point-grouping' into no-auto-gen 2019-10-25 23:15:25 +09:00
Dean Herbert
d4fed43be7 Merge branch 'equivalent-to' into control-point-grouping 2019-10-25 23:15:15 +09:00
Dean Herbert
e39016bf01 Fix known non-nulls 2019-10-25 20:04:27 +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
Dean Herbert
e2f2638212 Replace local Equatable implementations with abstract EquivalentTo 2019-10-25 19:44:28 +09:00
iiSaLMaN
405ab07800 Check equality by ID -> OnlineBeatmapSetID -> Hash -> ReferenceEquals 2019-10-17 01:18:29 +03:00
iiSaLMaN
14c72f85fa Fix incorrect beatmap set info equality check on non-online set info 2019-10-15 23:40:48 +03:00
iiSaLMaN
5e3f0f6c95 Return default combo colours if none provided 2019-10-09 21:08:07 +03:00
Bartłomiej Dach
7c2c537bc9 Allow fallback decoder overwrite
To fix the runtime crashes in difficulty calculation components, remove
the check for pre-existing fallback registration along with
the exception. The xmldoc for the registration function has been
extended to make users aware of possible consequences of calling it.
2019-10-04 18:20:20 +02:00
smoogipoo
ffde389641 Add difficulty calculator beatmap decoder fallback 2019-10-04 13:28:32 +09:00
Dean Herbert
6268bbcfc8
Merge branch 'master' into beatmap-parsing-fallback-v2 2019-10-03 15:12:21 +08:00
smoogipoo
cc533e8fe4 Remove BindableBeatmap 2019-10-01 17:24:47 +09:00
smoogipoo
04ac414249 Fix memory leaks due to audio track recycle order 2019-10-01 13:49:09 +09:00
smoogipoo
45f2bcc440 Fix combo bindings not being bound to nested hitobjects 2019-09-26 17:39:19 +09:00
Dean Herbert
a06cb54732
Merge branch 'master' into beatmap-parsing-fallback-v2 2019-09-20 15:28:08 +09:00
Dean Herbert
cffee1fd5e Fix imported beatmap paths not correctly matching files 2019-09-19 20:02:45 +09:00
Dean Herbert
92556db9cd Add query-based filter modes to song select search field 2019-09-19 02:48:28 +09:00
Bartłomiej Dach
dd9f620c23 Fix misleading xmldoc 2019-09-15 01:28:07 +02: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
Dean Herbert
65aa7b2016 Recreate beatmap video on each consumption
Should not be shared over multiple usages
2019-09-14 00:07:06 +09:00
Andrei Zavatski
437e121056 Merge remote-tracking branch 'refs/remotes/ppy/master' into beatmap-video 2019-09-13 13:39:58 +03:00
Dean Herbert
b80a8296cd Fix unavailable rulesets crashing at song select 2019-09-04 20:28:52 +09:00
Dean Herbert
043034a6ce Merge remote-tracking branch 'upstream/master' into beatmapset-genre-language 2019-09-02 13:45:25 +09:00
Andrei Zavatski
94512fea8e Apply naming suggestions 2019-08-31 16:20:33 +03:00
Andrei Zavatski
6e5cb8a318 implement video parsing 2019-08-30 23:19:34 +03:00
Dean Herbert
84e4748268 Remove duplicate getAnimation function and improve namespacing 2019-08-30 12:59:58 +09:00
Dean Herbert
dc1046bf0c Merge remote-tracking branch 'upstream/master' into add-ruleset-legacy-skin 2019-08-30 12:53:05 +09:00
smoogipoo
ae0a5504d7 Revert unnecessary change 2019-08-29 19:43:33 +09:00
smoogipoo
6ab2b20c70 Add an interface for working beatmaps 2019-08-29 19:38:44 +09:00
StanR
68ee7346b2 Remove usings 2019-08-29 12:49:44 +03:00
StanR
d303083179 Update to match api 2019-08-29 12:29:31 +03:00
Dean Herbert
98626018fd
Encapsulate editor hitobject additions/removals (#5878)
Encapsulate editor hitobject additions/removals
2019-08-29 18:20:24 +09:00
StanR
3347ee8170 Merge branch 'master' into beatmapset-genre-language 2019-08-29 09:57:53 +03:00
Dean Herbert
c6e757fdae Remove redundant qualifier 2019-08-28 22:11:23 +09:00
Dean Herbert
f6ad95018a Centralise default beat length specification 2019-08-28 20:22:16 +09:00
smoogipoo
348d88846d Add IBeatmap<T> interface for typed hitobject retrieval 2019-08-28 20:19:22 +09:00
Dean Herbert
01aede3e29 Add comprehensive skin fallback integration testing 2019-08-28 19:57:17 +09:00
Dean Herbert
66223b9954
Merge branch 'master' into allow-fallback-to-samples-without-bank 2019-08-27 14:44:16 +09:00
Dean Herbert
289bd8e6b0 Don't return DefaultSkin on beatmap skin parsing failure 2019-08-26 14:25:35 +09:00
Dean Herbert
1d34124667 Revert all DifficultyIcon changes 2019-08-25 11:56:07 +09:00
Dean Herbert
a19a9b90ed Simplify group filter display 2019-08-25 11:39:26 +09:00
iiSaLMaN
af4adb6339 Add xmldoc 2019-08-24 09:43:55 +03:00
iiSaLMaN
f6feef6b56 Remove redundant using directive 2019-08-24 00:33:14 +03:00
iiSaLMaN
83b6e0f30c Implement grouped difficulty icon 2019-08-23 23:36:23 +03:00
iiSaLMaN
d4236c574f Allow difficulty icon to be updateable 2019-08-23 23:30:54 +03:00
iiSaLMaN
f639df849f Allow for difficulty icon to contain content 2019-08-23 23:11:36 +03:00
iiSaLMaN
7b04fb1690 StoryboardSample -> StoryboardSampleInfo 2019-08-23 14:54:39 +03:00
Dean Herbert
48716f8f2b Update framework 2019-08-21 13:29:50 +09:00
Ganendra Afrasya
7143497441 Match up tooltip background color with OsuTooltipContainer 2019-08-19 10:32:01 +07:00
Dean Herbert
ecc04baf14 Merge branch 'refactor-difficulty-colours' into difficulty-icon-tooltip 2019-08-17 15:35:28 +09:00
Dean Herbert
87dc6499fa Fix json decoding being a bit too eager to consume 2019-08-17 15:34:02 +09:00
Dean Herbert
097763bb1c Add auto size duration 2019-08-17 15:29:39 +09:00
Dean Herbert
50046d5f69 Use new tooltip style 2019-08-17 15:20:27 +09:00
Dean Herbert
3dc81bdad5 Merge branch 'refactor-difficulty-colours' into difficulty-icon-tooltip 2019-08-17 15:19:46 +09:00
Dean Herbert
4fa9abeece Replace DifficultyColouredContainer with a more scalable solution 2019-08-17 15:16:24 +09:00
Dean Herbert
f355cff8bc Apply reviews 2019-08-15 12:11:54 +09:00
Dean Herbert
7e74953784 Merge remote-tracking branch 'upstream/master' into difficulty-icon-tooltip 2019-08-15 11:54:59 +09:00
Dean Herbert
ff4b271f64 Add extra quotations around output 2019-08-12 01:42:05 +09:00
Dean Herbert
ce62f6b56e ToString should never return null 2019-08-12 01:40:11 +09:00
Unknown
cc4ee2df05 add ToString() override to Beatmap class 2019-08-11 16:41:56 +02:00
Dean Herbert
dbb3b583cf
Log error for invalid beatmap/storyboard events instead of thro… (#5611)
Log error for invalid beatmap/storyboard events instead of throwing

Co-authored-by: Dan Balasescu <smoogipoo@smgi.me>
2019-08-09 12:56:47 +09:00
Dean Herbert
7e9c100c9b Apply new resharper refactors 2019-08-09 12:29:33 +09:00
smoogipoo
ac2060f1cf Throw exceptions and let LegacyDecoder handle them 2019-08-08 14:44:04 +09:00
Dan Balasescu
54ee0cabd8
Merge branch 'master' into beatmap-events 2019-08-08 14:25:41 +09:00
Dean Herbert
a2e3ab6463
Merge branch 'master' into add-bindable-for-break-times 2019-08-08 10:13:14 +09:00
iiSaLMaN
ba269a49ee Expose break fade duration and add it in the calculation 2019-08-07 16:59:35 +03:00
David Zhao
bde89adcb7 show exception message 2019-08-07 19:45:29 +09:00
David Zhao
b8ccba02f2 Log to runtime instead 2019-08-07 19:33:54 +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
da15e19912 return on storyboard side 2019-08-07 18:40:58 +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
Dean Herbert
69c2723d90
Merge branch 'master' into refactor-conversion-test 2019-08-02 05:34:05 +02:00
smoogipoo
e2420af10c Fix applying mods to the wrong beatmap 2019-08-01 13:37:52 +09:00
smoogipoo
0108700793 Make beatmap conversion test use WorkingBeatmap 2019-08-01 12:44:10 +09:00
smoogipoo
bc80fa11bb Mode IApplicableToBeatmap application to WorkingBeatmap 2019-08-01 12:41:46 +09:00
Dean Herbert
53ecb2ae82 Reduce notification span during beatmap imports 2019-07-26 13:48:29 +09:00
Andrei Zavatski
2a17ed5e18 Merge remote-tracking branch 'refs/remotes/ppy/master' into favourite-beatmap 2019-07-22 14:32:37 +03:00
smoogipoo
a631aac664 Fix workingbeatmap's disposal potentially null-refing 2019-07-22 15:01:01 +09:00
Andrei Zavatski
de8ac9a428 Simple implementation 2019-07-21 21:41:07 +03:00
StanR
1e04fcc6b5 Apply fixes 2019-07-11 17:47:09 +03:00
Dean Herbert
72da615dde
Fix track transfer not running when beatmap is retrieved from c… (#5296)
Fix track transfer not running when beatmap is retrieved from cache
2019-07-11 22:53:07 +09:00
StanR
cd7c03c13a Add genre and language sections to beatmapset overlay 2019-07-11 16:44:48 +03:00
iiSaLMaN
e73f22eff8 Convert length retrieved from online to milliseconds 2019-07-09 17:53:34 +03:00
iiSaLMaN
1485c273ab Describe the xmldoc mo 2019-07-09 17:31:15 +03:00
iiSaLMaN
f3329f4d79 Use a more readable code for calculating length 2019-07-09 17:22:21 +03:00
iiSaLMaN
11ef65e3e2 Remove unnecessary extension 2019-07-08 11:57:02 +03:00
iiSaLMaN
b62e69d170 Calculate length inside BeatmapManager 2019-07-08 11:56:48 +03:00
Dean Herbert
16c993579b Fix track transfer not running when beatmap is retrieved from cache 2019-07-08 17:12:34 +09:00
iiSaLMaN
129899f419 Add a BPM property in BeatmapInfo 2019-07-08 10:43:35 +03:00
iiSaLMaN
2d0c924bdf Add xmldoc for MaxStarDifficulty and MaxLength 2019-07-08 09:35:12 +03:00
iiSaLMaN
79ddb8d5d3 Change to a more convenient xmldoc 2019-07-08 09:23:01 +03:00
iiSaLMaN
90d5484818 Return BPM back to OnlineInfo
Revert commit of "Move BPM out of OnlineInfo"
2019-07-08 09:10:41 +03:00
iiSaLMaN
729f0901f7 Move Length out of OnlineInfo 2019-07-07 20:25:36 +03:00
iiSaLMaN
3ea9629daf Move BPM out of OnlineInfo 2019-07-07 20:11:44 +03:00
iiSaLMaN
b4ef64fa61 Add sorting by Length 2019-07-07 18:26:56 +03:00
iiSaLMaN
65c8249c94 Add beatmap extension for calculating length 2019-07-07 18:25:52 +03:00
iiSaLMaN
188c80374e Add sorting by BPM 2019-07-07 18:14:23 +03:00
Salman Ahmed
040dbfd2c1
Merge branch 'master' into remove-unnecessary-fading 2019-07-06 15:59:44 +03:00
iiSaLMaN
6fd3ad5c1d Remove unnecessary fading 2019-07-06 12:10:30 +03:00
Dean Herbert
598b0d668b
Merge branch 'master' into import-stable-scores 2019-07-05 15:54:33 +09:00
Dean Herbert
8346c50ce1 Rename delete method and improve xmldoc 2019-07-05 13:55:25 +09:00
Dean Herbert
32bb963393 Lock WorkingBeatmap cache to avoid threading issues 2019-07-04 14:33:00 +09:00
Dean Herbert
7575047db8
Merge branch 'master' into import-stable-scores 2019-07-04 01:00:42 +09:00
Dean Herbert
8e0b5f1622 Fix weird merge conflict 2019-07-02 23:21:13 +09:00
Dan Balasescu
2fafe9a651
Merge branch 'master' into async-beatmap-load 2019-07-02 23:19:10 +09:30
Dean Herbert
089eadb008
Add weak WorkingBeatmap cache (#5163)
Add weak WorkingBeatmap cache

Co-authored-by: Dan Balasescu <1329837+smoogipoo@users.noreply.github.com>
2019-07-02 22:40:47 +09:00
Dean Herbert
e7a7f2f660 Add statistic for count of alive WorkingBeatmaps 2019-07-02 22:39:49 +09:00
Dean Herbert
9e33fb35e9 Fix typo 2019-07-02 22:26:08 +09:00
Dean Herbert
a6acc1f99f Catch exception and return null for safety
.
2019-07-02 22:26:08 +09:00
Dean Herbert
0b66f13902 Add todo about beatmap load cancellation 2019-07-02 22:22:33 +09:00
Dean Herbert
a26b14a4f8 Move finaliser inside disposal region 2019-07-02 22:21:56 +09:00
Dean Herbert
31b1480263
Merge branch 'master' into async-beatmap-load 2019-07-02 20:44:53 +09:00
Dean Herbert
60ea3d4e1a Fix skinning support for combobreak 2019-06-30 21:58:30 +09:00
HoLLy
12350d18b5 Don't remove imported archives by default 2019-06-27 14:41:11 +02:00
HoLLy
55216dffb7 Merge remote-tracking branch 'origin/master' into import-stable-scores 2019-06-27 14:07:17 +02:00
naoey
61260cf599
Hand off comparison logic for database query to implementors
Equals overrides are not used in EF queries without running the comaprison locally instead of on the database, so to preserve that the comparison logic is instead implemented on a per manager basis.
2019-06-27 15:32:27 +05:30
Dean Herbert
ef384b8667 Add simple (weak) WorkingBeatmap cache 2019-06-27 14:09:09 +09:00
Dean Herbert
0bad86f6d9 Merge remote-tracking branch 'upstream/master' into async-beatmap-load 2019-06-27 13:58:59 +09:00