Dan Balasescu
f8830c6850
Automated #nullable processing
2022-06-17 16:37:17 +09:00
Dan Balasescu
7e7716f942
Support undo/redo for control points
2022-06-13 15:45:08 +09:00
Dean Herbert
e53c8518de
Don't output beatmap parse failures in a visible manner
...
The user can't do much about this. When a user reports a beatmap issue,
the logs will still contain this useful information. Should be fine I
think.
As mentioned in
https://github.com/ppy/osu/discussions/18426
https://github.com/ppy/osu/issues/750
https://github.com/ppy/osu/issues/18372
etc.
2022-05-27 19:18:38 +09:00
Dan Balasescu
731f0960ec
Don't merge adjacent legacy Catmull segments
2022-05-18 17:16:24 +09:00
ekrctb
dcf0d5a9d5
Fix slider velocity wrongly decoded as scrolling speed in osu!catch
2022-05-08 21:49:42 +09:00
ekrctb
3eeedd8024
Fix per-hit object slider velocity ignored in osu!catch
2022-05-08 13:45:21 +09:00
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
cf1dd1ebd3
Disallow registering a null RulesetStore
2022-02-18 16:52:34 +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
Dean Herbert
c3758047fd
Don't include nested hit objects' DifficultyControLPoints
in legacy encoder logic
...
The editor doesn't currently propagate velocity to nested objects. We're
not yet sure whether it should or not. For now, let's just ignore nested
objects' `DifficultyControlPoints` for simplicity.
Note that this only affects osu! ruleset due to the pre-check on
`isOsuRuleset`.
2022-01-24 19:54:08 +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
dcd69e852e
Add back settable RulesetID
for now
2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366
Update model manager and many related classes to get things compiling again
2022-01-12 17:00:00 +09:00
Dean Herbert
213d89b479
Update null fallback cases involving OnlineID
2022-01-12 16:39:36 +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
Dean Herbert
ed07ee8c61
Update all existing usages of AuthorString
/AuthorId
...
Unfortunately the getters need to be left in place else EF breaks.
2021-11-04 18:59:37 +09:00
Dean Herbert
67d9590a79
Fix new inspections
2021-11-04 14:02:09 +09:00
Dean Herbert
15c770e155
Remove no longer used Section.None
2021-11-02 14:01:41 +09:00
Dean Herbert
ab28948744
Default legacy decoder to General
section, rather than none
...
This is mainly to reach parity with how stable handles such cases for
skins specifically. It was brought to our attention after finding a skin
with a malformed `\[General]` tag which did not break further parsing of
the file on stable, but did on lazer.
Note that stable defaults to an "unknown" section for beatmaps, but
functionally I can't think of a regression case from changing this to a
"general" default.
2021-11-02 13:59:13 +09:00
Dean Herbert
6944151486
Apply batch fixing of built-in types using var
2021-10-27 13:04:41 +09:00
Dean Herbert
e92def0ba2
Fix LegacyBeatmapEncoder
using incorrect path length value
2021-10-26 17:34:52 +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
4c28749d73
Fix incorrect legacy decoder usage
2021-10-01 19:05:08 +09:00
Dean Herbert
3faafd7200
Rename parameter to repeatCount
and add guards
2021-10-01 18:26:29 +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
76ccdd1340
Collect and sort points from nested objects before extracting
2021-09-18 14:38:38 +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
af7c2b93e6
Add encoding support for SamplesMatchPlaybackRate
2021-09-12 16:47:38 +02:00
Bartłomiej Dach
cd181452be
Add decoding support for SamplesMatchPlaybackRate
2021-09-12 16:45:27 +02:00
Dean Herbert
943e0d49f7
Handle control point flattening of nested hit objects
2021-09-10 17:29:09 +09: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
0e6660da30
Replace todo with permanent comment
2021-09-03 17:11:12 +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
4eb09ea1a9
Update decoder to also extract DifficultyControlPoint
s from HitObject
s
2021-09-03 16:58:16 +09:00
Dean Herbert
9fa8bee094
Remove outdated TODO
2021-08-31 14:51:19 +09:00
Dean Herbert
ce0d7cce2d
Merge branch 'remove-ijsonserializable' into no-more-sample-control-points-info
2021-08-31 14:40:54 +09:00
Dean Herbert
015df282fe
Simplify copy operations
2021-08-30 18:32:55 +09:00
Dean Herbert
d35c4da906
Add new control point to legacy regeneration logic
2021-08-30 17:14:53 +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
Dean Herbert
da7a871afa
Update inline comment to point to new variable location
...
Co-authored-by: PercyDan <50285552+PercyDan54@users.noreply.github.com>
2021-08-30 16:27:24 +09:00
Dean Herbert
ee49305cad
Move taiko legacy speed multiplier to osu.Game
project
...
Allows it to be used in local case in `LegacyBeatmapEncoder`.
2021-08-30 15:13:31 +09:00
Dean Herbert
6dcd9427ac
Remove bindable usage in PathControlPoint
...
This is quite a breaking change, but I think it is beneficial due to the large amount of usage of this class.
I originally intended just to remove the allocations of the two delegates handling the `Changed` flow internally, but as nothing was really using the bindables for anything more than a general "point has changed" case, this felt like a better direction.
2021-08-26 12:33:53 +09:00
Bartłomiej Dach
a6c2cbd2e5
Add countdown settings to beatmap info model
2021-08-24 21:55:10 +02:00
Bartłomiej Dach
d602dc9d90
Enable epilepsy warning setting persistence in encoder
2021-08-22 17:43:20 +02:00
Bartłomiej Dach
e744629a41
Fix broken obsoletion message
2021-08-16 01:01:56 +02:00
Bartłomiej Dach
7c88a1c6de
Add a way to change custom combo colours via IHasComboColours
...
`IHasComboColours` was already mutable (via a strange
`AddComboColours()` method) and exposing a straight list is easier to
work with. `IHasCustomColours` is also similarly externally mutable (in
a way which is not easily removable).
2021-08-15 20:06:06 +02:00
ekrctb
7f432665e5
Preserve Y position of hit objects in osu!catch
2021-07-14 14:38:38 +09:00
smoogipoo
9b0ce2999f
Fix legacy encoder
2021-04-09 15:28:42 +09:00
Leon Gebler
dd902441b0
Add tests for consecutive perfect-curve segments
2021-04-06 13:32:17 +02:00
Leon Gebler
d81f270e21
Always encode perfect curves as explicit segments
2021-04-06 13:29:31 +02:00
smoogipoo
a2544100d4
Fix floating point error in slider path encoding
2021-04-06 14:10:59 +09:00
smoogipoo
d0510222ae
Fix legacy beatmap encoding
2021-04-05 19:59:54 +09:00
Dean Herbert
4f8edcd336
Don't strip comments from metadata during parsin
2021-03-25 13:35:54 +09:00
Dean Herbert
5b0d75ee56
Only trim trailing spaces to avoid breakage in storyboard parsing
2021-03-18 16:30:30 +09:00
Dean Herbert
bb3c3f302a
Fix skin parser not stripping whitespace before parsing
2021-03-18 15:36:11 +09:00
Dean Herbert
6d4c1ba2ae
Fix a couple of new inspections introduced in Rider EAPs
2021-03-15 13:35:08 +09:00
smoogipoo
dff1d80f39
Update HasFlag usages to HasFlagFast
2021-02-25 15:38:56 +09:00
Bartłomiej Dach
b9a49d5589
Coerce undefined animation loop types to Forever
2021-01-31 15:43:58 +01:00
smoogipoo
9a22df2b88
Fix BPM multiplier not working in all cases
2021-01-12 17:50:22 +09:00
Dean Herbert
00dc98e3ab
Make legacy control point's BpmMultiplier setter private again
2021-01-07 19:06:52 +09:00
Dean Herbert
afab35a31a
Fix missing copy implementation in LegacySampleControlPiont
2021-01-05 13:41:31 +09:00
Dean Herbert
ba4e411422
Clone and copy ControlPointInfo when retrieving a playable beatmap
2021-01-04 16:37:07 +09:00
smoogipoo
2150cf1c52
Rename parameters
2020-12-02 10:55:48 +09:00
smoogipoo
5760e1c1fc
Make HitSampleInfo immutable
2020-12-01 15:37:51 +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
Dean Herbert
c5b6908e71
Always write [HitObjects] to file
...
I think this is expected. If not, there's an alternative solution.
2020-11-08 00:18:27 +09:00
Bartłomiej Dach
3090b6ccb5
Resolve CA2249 inspections
...
"Use `string.Contains` instead of `string.IndexOf` to improve
readability"
2020-11-01 18:54:44 +01:00
Bartłomiej Dach
ca5de22ca5
Resolve CA1834 inspection
...
"Use `StringBuilder.Append(char)` instead of
`StringBuilder.Append(string)` when the input is a constant unit string"
2020-11-01 18:50:13 +01:00
Bartłomiej Dach
e2552d4c36
Merge branch 'master' into storyboard-skin-sprites
2020-10-20 23:01:54 +02:00
Bartłomiej Dach
cdd56ece87
Read UseSkinSprites when decoding storyboards
2020-10-20 22:49:56 +02: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
Dean Herbert
cc41845f56
Add missing string function ordinal specifications
2020-10-16 12:49:31 +09:00
smoogipoo
d536a1f75e
Fix breaks being culled too early
2020-10-09 21:04:56 +09:00
Craftplacer
c2ade44656
Change types back
2020-09-01 17:58:06 +02:00
Craftplacer
fb37a14d57
Update LegacyBeatmapEncoder.cs
2020-08-31 17:24:03 +02:00
Craftplacer
eafa97af17
Revert changes done to SkinConfiguration and IHasCustomColours
2020-08-31 17:23:42 +02:00
Craftplacer
7e668fc31a
Update osu.Game/Beatmaps/Formats/LegacyBeatmapEncoder.cs
...
Co-authored-by: Salman Ahmed <email@iisalman.me>
2020-08-30 16:11:49 +02:00
Craftplacer
1fdf8e6200
Fix xmldoc in LegacyBeatmapEncoder
2020-08-30 16:07:58 +02:00
Craftplacer
e428144f73
Use IBeatmapSkin
2020-08-30 11:34:50 +02:00
Craftplacer
00b68b050c
Merge remote-tracking branch 'upstream/master' into combo-colors
2020-08-30 10:16:38 +02:00
Craftplacer
e6646b9877
Resolve review comments
2020-08-23 15:08:02 +02:00
smoogipoo
88d50b6c47
Remove alpha mangling from LegacyDecoder
2020-08-22 00:15:37 +09:00
Craftplacer
c4a7fac760
Add required parameters and other various changes
2020-08-15 22:03:24 +02:00
Craftplacer
8ffaa49839
Handle additional null case
2020-08-12 06:40:21 +02:00
Craftplacer
139c0c75f8
Add documentation for constructor
2020-08-12 06:40:21 +02:00
Craftplacer
78692dc684
Initial commit
2020-08-10 05:21:10 +02: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
ekrctb
3278a1d7d8
Standardize osu!catch coordinate system
...
There were two coordinate systems used:
- 0..512 (used in osu!stable)
- 0..1 (relative coordinate)
This commit replaces the usage of
the relative coordinate system to
the coordinate system of 0..512.
2020-07-02 00:21:45 +09:00
Dean Herbert
d0787ddf99
Merge pull request #9369 from smoogipoo/fix-hyperdash-alpha
2020-06-26 14:46:46 +09:00
smoogipoo
4ff9a91012
Adjust at parse time instead
2020-06-25 14:15:26 +09:00
smoogipoo
6bc507d49e
Increase coordinate parsing limits
2020-06-24 18:53:52 +09:00
smoogipoo
f3b5149648
Move some suggestions to warnings, resolve issues
2020-06-03 16:48:44 +09:00
Dan Balasescu
64d1b4b11b
Merge branch 'master' into move-setter-to-duration
2020-06-01 15:55:48 +09:00
Dean Herbert
81b8898272
Fix incorrect type cast in encoder
2020-05-31 22:30:55 +09:00
Dean Herbert
cbd563e80b
Rename to IHasDuration
2020-05-27 12:38:39 +09:00
Dean Herbert
6b5b215299
Split out IHasPath from IHasCurve to better define hitobjects
2020-05-26 17:44:47 +09:00
Tim Oliver
c1c930c472
Fixed linting warnings
2020-04-25 13:47:20 +08:00
smoogipoo
3b805daa0b
Fix hold note end time being written incorrectly
2020-04-22 16:40:07 +09:00
smoogipoo
7cdc9a599c
Fix mania holds written as spinners
2020-04-22 16:27:07 +09:00
smoogipoo
d8fdd73e17
Implement IHasCurve on DrumRoll
2020-04-22 09:06:04 +09:00
smoogipoo
ea0ebc8527
Implement beatmap encoding for all legacy rulesets
2020-04-22 09:06:04 +09:00
smoogipoo
516e6a4bb1
Fix overlapping control points not written correctly
2020-04-22 09:04:44 +09:00
smoogipoo
1421e876b1
Remove implicit new combo from spinners
2020-04-22 09:04:44 +09:00
smoogipoo
d8d85e5b08
Don't output certain properties if they don't exist
2020-04-22 09:04:44 +09:00
smoogipoo
3093c3e185
Fix custom sample set not being written correctly
2020-04-22 09:04:44 +09:00
smoogipoo
72fb34f82c
Fix overriding control points incorrectly
2020-04-21 14:19:05 +09:00
Dan Balasescu
367c3e69c4
Merge pull request #8788 from peppy/fix-editor-hard-crash
...
Fix hard crash in editor on legacy modes without encoder implementation
2020-04-20 15:25:48 +09:00
Dean Herbert
48cf7becd1
Merge branch 'master' into catch-hyperdash-fruit-colouring
2020-04-19 21:48:41 +09:00
Dean Herbert
6b16908c05
Move todo to appease dotnet-format
2020-04-18 21:51:37 +09:00
Dean Herbert
c00a386ff6
Remove exceptions instead
2020-04-18 21:46:04 +09:00
Dan Balasescu
4e22e569f5
Merge branch 'master' into timing-equivalence
2020-04-17 17:12:38 +09:00
smoogipoo
9aac98664c
Remove unnecessary time property
2020-04-17 17:06:12 +09:00
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
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
smoogipoo
b900f229e7
Fix possible legacy beatmap encoder nullref
2020-04-09 20:21:42 +09: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
smoogipoo
4719aac235
Add basic mania skin parsing
2020-03-30 17:18:09 +09:00
voidedWarranties
b8f20831a1
Video no longer modifies storyboard resolution
2020-03-24 20:04:09 -07:00
Dean Herbert
729e006c3a
Merge branch 'master' into video-offset
2020-03-21 20:03:46 +09:00
voidedWarranties
c27751050b
Switch back to strings and update setting labels
2020-03-12 23:29:11 -07: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